Git Product home page Git Product logo

lipstick2vnc's Introduction

A vncserver for Sailfish devices

Don't install this package if you care about security. There is no protection in this VNC server.

Build in Sailfish OS SDK for an armv7hl device

  • you need libVNCServer in the SDK, follow the instructions in the libVNCServer README

  • Check out the code (if not done already)

git clone https://github.com/mer-qa/lipstick2vnc.git
  • Start the Sailfish OS SDK Qt-Creator and open the file lipstick2vnc.pro

  • In kit selection make sure you enable MerSDK-SailfishOS-armv7hl

  • In the build settings (on the left side, the Sailfish OS icon above the play button) configure MerSDK-SailfishOS-armv7hl -> Release -> Deploy By Building An RPM Package

  • In the Build menu choose Deploy All, the created RPM file can now be installed on the device

Run on device

Systemd ensures that the VNC server is launched when a client connects to port 5900. So it's logs go into the systemd journal. To spare resources the VNC server just runs while clients are connected.

There is no authendication! So connections are just accepted from usb network. So e.g. on Jolla phone you have to enable developer mode and when asked choose "Developer mode", default ip address is then 192.168.2.15 to connect to with the VNC client.

Debug on device

If you want to run the server in the forground, to follow any output, you need to stop the systemd socket listener, see below.

For all these commands you must be user, not root.

To verify the systemd socket listener is active:

systemctl --user status vnc.socket

To restart the systemd socket listener:

systemctl --user stop vnc.socket
systemctl --user start vnc.socket

To stop the systemd socket listener:

systemctl --user stop vnc.socket

To start the systemd socket listener:

systemctl --user start vnc.socket

Follow log entries in the systemd journal, just for the VNC server, run this as root:

journalctl -f -a /usr/bin/lipstick2vnc

Verify if the server is running (just running/active when a client is connected):

systemctl --user status vnc.service

lipstick2vnc's People

Contributors

izh1979 avatar mkosola avatar pvuorela avatar teleshoes avatar thaodan avatar tomin1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lipstick2vnc's Issues

feature request: autodetect orientation

  • find a way to figure out the device orientation
  • allow user to rotate (like with --landscape/etc), based on the detected orientation
    • add a cmdline option --auto-orientation to enable this feature
    • or make this the default behavior, overriding with --portrait cmdline arg to disable (which is currently a no-op)

implement clipboard

again, i know nothing about this, just making feature requests for the big missing features vs xorg to document whats missing

landscape mode

cmdline arg to lipstick2vnc to rotate image 90 degrees ccw before sending. (im assuming it would be implemented the same way as --scale)

implement keyboard input

dunno how feasible this is, or what the proper approach would be. is there some nice way to do this in lipstick/wayland? maybe write some kinda horrible wrapper around /dev/uinput?

How can we increase FPS?

lipstick2vnc works okay but FPS is too low and is not comfortable for use. How can we increase it?

uinput keyboard handler now requires net_bt_stack group

/dev/uinput device is owned by the group net_bt_stack
running lipstick2vnc as non-root user with --keyboard-handler will result in the keyboard device not loading.

workaround: append net_bt_stack group to user defaultuser/nemo
usermod -G net_bt_stack nemo

(or chown system.privileged /dev/uinput at boot or on the fly since SGID bit is set)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.