All Projects → any1 → Wayvnc

any1 / Wayvnc

Licence: isc
A VNC server for wlroots based Wayland compositors

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Wayvnc

Multivnc
MultiVNC is a cross-platform Multicast-enabled VNC viewer using wxWidgets and libvncclient . It runs on Unix, Mac OS X and Windows. Features include support for most encodings, ZeroConf service discovery and a seamless edge control mode á la x2vnc. There also is a mobile (Android) version with a different feature set available.
Stars: ✭ 134 (-50.92%)
Mutual labels:  remote-desktop, vnc
X11vnc
a VNC server for real X displays
Stars: ✭ 272 (-0.37%)
Mutual labels:  wayland, vnc
Headmore
Top geek’s VNC client that runs in Linux terminal (Linux VT console, xterm, and more)
Stars: ✭ 82 (-69.96%)
Mutual labels:  remote-desktop, vnc
Libvncserver
LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
Stars: ✭ 695 (+154.58%)
Mutual labels:  remote-desktop, vnc
RabbitRemoteControl
Remote control. Support VNC, RDP, Terminal, SSH, TELNET etc
Stars: ✭ 82 (-69.96%)
Mutual labels:  remote-desktop, vnc
Greenfield
HTML5 Wayland compositor 🌱
Stars: ✭ 296 (+8.42%)
Mutual labels:  wayland, remote-desktop
Premotem
Personal Remote Manager
Stars: ✭ 161 (-41.03%)
Mutual labels:  remote-desktop, vnc
easy-novnc
Single-binary noVNC instance, web UI, and multi-host proxy.
Stars: ✭ 142 (-47.99%)
Mutual labels:  remote-desktop, vnc
docker-chromium
Docker container with Chromium desktop and a Web VNC client allowing you to run Chromium on any server you have
Stars: ✭ 64 (-76.56%)
Mutual labels:  remote-desktop, vnc
X11docker
Run GUI applications and desktops in docker and podman containers. Focus on security.
Stars: ✭ 3,797 (+1290.84%)
Mutual labels:  wayland, vnc
vernacular-vnc
A pure Java VNC client library
Stars: ✭ 55 (-79.85%)
Mutual labels:  remote-desktop, vnc
avnc
VNC Client for Android
Stars: ✭ 207 (-24.18%)
Mutual labels:  remote-desktop, vnc
go-wayland
Wayland Client in Pure Go
Stars: ✭ 38 (-86.08%)
Mutual labels:  wayland
docker-images
Kali and Parrot OS docker images accessible via VNC, RDP and Web
Stars: ✭ 66 (-75.82%)
Mutual labels:  vnc
guacamole-auth-jwt
Guacamole authentication extension based on JWT.
Stars: ✭ 28 (-89.74%)
Mutual labels:  vnc
dextop
Dextop - Linux-based distribution workstation on Android
Stars: ✭ 24 (-91.21%)
Mutual labels:  vnc
workfromhome-with-docker
HTML5 based remote desktop gateway using Apache Guacamole and Traefik Reverse Proxy including AD authentication and 2-FA
Stars: ✭ 42 (-84.62%)
Mutual labels:  remote-desktop
gobble
Rust rewrite of Devour
Stars: ✭ 23 (-91.58%)
Mutual labels:  wayland
tessen
an interactive menu to autotype and copy pass and gopass data
Stars: ✭ 37 (-86.45%)
Mutual labels:  wayland
librfxcodec
JPEG2000 codec for RDP
Stars: ✭ 18 (-93.41%)
Mutual labels:  remote-desktop

wayvnc

Introduction

This is a VNC server for wlroots based Wayland compositors. It attaches to a running Wayland session, creates virtual input devices and exposes a single display via the RFB protocol. The Wayland session may be a headless one, so it is also possible to run wayvnc without a physical display attached.

Please check the FAQ for answers to common questions. For further support, join the #wayvnc IRC channel on freenode, or ask your questions on the GitHub discussion forum for the project.

Installing

# archlinux
yay -S wayvnc

# FreeBSD
pkg install wayvnc

# Fedora
dnf install wayvnc

# openSUSE Tumbleweed
zypper install wayvnc

# Void Linux
xbps-install wayvnc

Building

Runtime Dependencies

  • aml
  • drm
  • gbm (optional)
  • libxkbcommon
  • neatvnc
  • pam (optional)
  • pixman

Build Dependencies

  • GCC
  • meson
  • ninja
  • pkg-config

For archlinux

pacman -S base-devel libglvnd libxkbcommon pixman gnutls

For fedora 31

dnf install -y meson gcc ninja-build pkg-config egl-wayland egl-wayland-devel \
	mesa-libEGL-devel mesa-libEGL libwayland-egl libglvnd-devel \
	libglvnd-core-devel libglvnd mesa-libGLES-devel mesa-libGLES \
	libxkbcommon-devel libxkbcommon libwayland-client libwayland \
	wayland-devel gnutls-devel

The easiest way to satisfy the neatvnc and aml dependencies is to link to them in the subprojects directory:

git clone https://github.com/any1/wayvnc.git
git clone https://github.com/any1/neatvnc.git
git clone https://github.com/any1/aml.git

mkdir wayvnc/subprojects
cd wayvnc/subprojects
ln -s ../../neatvnc .
ln -s ../../aml .
cd -

mkdir neatvnc/subprojects
cd neatvnc/subprojects
ln -s ../../aml .
cd -

meson build
ninja -C build

Running

Wayvnc can be run from the build directory like so:

./build/wayvnc

☢️ The server only accepts connections from localhost by default. To accept connections via any interface, set the address to 0.0.0.0 like this:

./build/wayvnc 0.0.0.0

⚠️ Do not do this on a public network or the internet without user authentication enabled. The best way to protect your VNC connection is to use SSH tunneling while listening on localhost, but users can also be authenticated when connecting to Wayvnc.

Encryption & Authentication

You'll need a private X509 key and a certificate. A self signed key with a certificate can be generated like so:

openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
	-keyout key.pem -out cert.pem -subj /CN=localhost \
	-addext subjectAltName=DNS:localhost,DNS:localhost,IP:127.0.0.1

Replace localhost and 127.0.0.1 in the command above with your public facing host name and IP address, respectively, or just keep them as is if you're testing locally.

Create a config with the authentication info and load it using the --config command line option or place it at the default location $HOME/.config/wayvnc/config.

address=0.0.0.0
enable_auth=true
username=luser
password=p455w0rd
private_key_file=/path/to/key.pem
certificate_file=/path/to/cert.pem

Compatible Software

See https://github.com/any1/neatvnc#client-compatibility

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].