{"id":13772178,"url":"https://github.com/matteodelabre/vnsee","last_synced_at":"2025-10-04T00:33:20.002Z","repository":{"id":45139452,"uuid":"254500272","full_name":"matteodelabre/vnsee","owner":"matteodelabre","description":"VNC client for the reMarkable tablet allowing you to use the device as a second screen","archived":false,"fork":false,"pushed_at":"2021-08-29T13:39:12.000Z","size":772,"stargazers_count":231,"open_issues_count":21,"forks_count":19,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-05-02T01:22:02.859Z","etag":null,"topics":["remarkable-tablet","vnc-client"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matteodelabre.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"custom":"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=EW73JWKUKRZEN","github":"matteodelabre","liberapay":"matteodelabre"}},"created_at":"2020-04-09T23:33:36.000Z","updated_at":"2024-04-28T16:23:35.000Z","dependencies_parsed_at":"2022-07-13T10:00:28.917Z","dependency_job_id":null,"html_url":"https://github.com/matteodelabre/vnsee","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteodelabre%2Fvnsee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteodelabre%2Fvnsee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteodelabre%2Fvnsee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matteodelabre%2Fvnsee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matteodelabre","download_url":"https://codeload.github.com/matteodelabre/vnsee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253172536,"owners_count":21865532,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["remarkable-tablet","vnc-client"],"created_at":"2024-08-03T17:01:00.982Z","updated_at":"2025-10-04T00:33:14.970Z","avatar_url":"https://github.com/matteodelabre.png","language":"C++","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=EW73JWKUKRZEN","https://github.com/sponsors/matteodelabre","https://liberapay.com/matteodelabre"],"categories":["Screen Sharing/Streaming"],"sub_categories":["Template Builders"],"readme":"# VNSee\n\n[![Install from Toltec](https://img.shields.io/badge/Toltec-vnsee-blue)](https://toltec-dev.org)\n[![reMarkable 1 is supported](https://img.shields.io/badge/rM1-supported-green)](https://remarkable.com/store/remarkable)\n[![reMarkable 2 is supported](https://img.shields.io/badge/rM2-supported-green)](https://remarkable.com/store/remarkable-2)\n\n[VNC](https://en.wikipedia.org/wiki/Virtual_Network_Computing) client for the [reMarkable tablet](https://remarkable.com) allowing you to use the device as a second screen.\\\n(Previously called _rmvncclient_.)\n\n\u003cimg alt=\"Illustration of a reMarkable tablet connected to a computer, showing half of a terminal window through its E-Ink screen\" src=\"media/setup.gif\" width=\"700\"\u003e\n\n## Disclaimer\n\nThis project is not affiliated to, nor endorsed by, [reMarkable AS](https://remarkable.com/).\\\n**I assume no responsiblitiy for any damage done to your device due to the use of this software.**\n\n## Background\n\nVNC is a desktop-sharing system that enables a client to see the screen of another computer and act on it remotely.\nIt relies on a well-established protocol supporting multiple platforms including Windows, Linux and Android.\nThe reMarkable is a writer tablet featuring an E-Ink display, a Wacom pen digitizer and a touchscreen, that can be used for reading, sketching or note-taking.\nIt runs a fully open, Linux-based, system.\n\nVNSee brings both worlds together by allowing the tablet to connect to a remote VNC server, show the remote screen on its E-Ink display and interact with it through the pen digitizer and touchscreen.\nThis can effectively turn the tablet into a second screen for your computer.\nApplications include reading web-based content, typing documents, drawing, or previewing [LaTeX documents](https://www.latex-project.org/) as you compose them.\n\n## Install on the reMarkable\n\n**The recommended way of installing VNSee is through the [Toltec package manager](https://toltec-dev.org).**\nThis will automatically take care of installing the required dependencies and will allow you to cleanly uninstall VNSee if needed.\nAfter installing Toltec, simply run `opkg install vnsee` and you should be all set.\nTo remove VNSee, run `opkg remove vnsee`.\n\nYou can also install this program manually.\nDownload the latest build from the [releases page](https://github.com/matteodelabre/vnsee/releases) (or build the binary yourself by following the [build guide](docs/build.md)), then copy the `vnsee` and `vnsee-gui` executables to the tablet [using SSH](https://remarkablewiki.com/tech/ssh).\nIf you’re using a reMarkable 2, you’ll need to setup the [remarkable2-framebuffer](https://github.com/ddvk/remarkable2-framebuffer) before proceeding.\nTo run `vnsee-gui`, you’ll also need to install [simple](https://rmkit.dev/apps/sas) and, optionally, [nmap](https://nmap.org/book/install.html).\n\nThis VNC client is compatible with all VNC servers that are capable of sending pixels in the RGB565 format.\nIt has been successfully tested with [x11vnc](https://github.com/LibVNC/x11vnc), [TigerVNC](https://github.com/TigerVNC/tigervnc), and [wayvnc](https://github.com/any1/wayvnc).\nIf your server’s resolution is higher than the one on the reMarkable (1404x1872 pixels), the screen will be cropped to fit, so make sure to adjust the server size beforehand.\n\n## Setup as a Second Screen\n\nAlthough this client can connect to any compatible VNC server, the most common scenario is using the tablet as a second screen for the computer it is attached to.\nFor this scenario, you will need to configure your system to create a virtual second screen and then start a VNC server on your computer that the tablet can connect to.\n\nThe details are specific to the operating system you’re using:\n\n* [Linux with X11](docs/second-screen/linux-x11.md)\n* [Linux with Sway](docs/second-screen/linux-sway.md)\n* macOS (not officially supported yet, see [workarounds from users](https://github.com/matteodelabre/vnsee/issues/21))\n* Windows (not officially supported yet, see [workarounds from users](https://github.com/matteodelabre/vnsee/issues/13))\n\n## Using the Client\n\nYou can quit VNSee at any time using the “Power” button (the one above the screen).\nActivity on the touchscreen will be translated to mouse interactions following the mapping in the table below.\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003cth colspan=\"3\"\u003e\n    Interactions\n\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"media/tap.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eTap\u003c/strong\u003e → Left click\u003cbr\u003e\n        \u003cstrong\u003eLong press\u003c/strong\u003e → Right click\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"media/scroll-x.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eHorizontal swipe\u003c/strong\u003e\u003cbr\u003e\n        Horizontal scroll\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"media/scroll-y.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eVertical swipe\u003c/strong\u003e\u003cbr\u003e\n        Vertical scroll\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"media/button-home.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eHome button\u003c/strong\u003e\u003cbr\u003e\n        Force refresh (rM1 only)\n    \u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\n        \u003cimg src=\"media/button-power.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003ePower button\u003c/strong\u003e\u003cbr\u003e\n        Quit app\n    \u003c/td\u003e\n    \u003ctd align=\"center\" colspan=\"3\"\u003e\n        \u003cimg src=\"media/pen.svg\" width=\"200\" alt=\"\"\u003e\u003cbr\u003e\n        \u003cstrong\u003eDraw with pen\u003c/strong\u003e\u003cbr\u003e\n        Mouse click and drag\n    \u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nWhile the client is running, frames will be displayed on the tablet’s screen as they are received from the server.\nDue to the properties of E-Ink, there will be some extra latency (up to 1s) between the time of a change on the computer and the moment it appears on the screen.\nOn dark background apps, there will be some ghosting on the screen: use the “Home” button (the one in the middle of the button row below the screen) to force a refresh and clear those artifacts out.\n\n## Technologies\n\nThis client was built in C++ using [libvncserver](https://github.com/LibVNC/libvncserver), which implements the [RFB protocol](https://tools.ietf.org/html/rfc6143) behind the VNC system.\n\n## Acknowledgments\n\nMany thanks to:\n\n- [libremarkable](https://github.com/canselcik/libremarkable) and [FBInk](https://github.com/NiLuJe/FBInk), on which input/output handling in this client is based.\n- [Damien Challet](https://github.com/damienchallet) and [Qwertystop](https://news.ycombinator.com/item?id=13115739) for providing the inspiration of a VNC client for the reMarkable.\n- The [Discord developer community](https://discord.gg/JSSGnFY) for providing initial feedback and testing.\n- [Florian Magin](https://github.com/fmagin) for contributing a driver-generic way of setting up Linux/X11 systems.\n- [@asmanur](https://github.com/asmanur) for improving the repaint latency.\n- [@mhhf](https://github.com/mhhf) for helping with TigerVNC compatibility.\n- [@rowancallahan](https://github.com/rowancallahan) and [@Axenntio](https://github.com/Axenntio) for contributing a guide for setting up second-screen on Sway.\n- [@torwag](https://github.com/torwag) for writing the initial version of the `vnsee-gui` script.\n\n[Martin Sandsmark](https://github.com/sandsmark) also built [a VNC client for the reMarkable](https://github.com/sandsmark/revncable) which only depends on Qt.\n\n## License\n\nThis work is licensed under the GPL v3.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteodelabre%2Fvnsee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatteodelabre%2Fvnsee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatteodelabre%2Fvnsee/lists"}