# wayviewer A small Wayland-friendly VNC viewer written in C++. ## Build Dependencies: - CMake 3.16+ - C++17 compiler - SDL2 development files - libvncclient development files - pkg-config ## Install ```sh ./install.sh ``` Uninstall: ```sh ./install.sh uninstall ``` System install: ```sh ./install.sh --system ``` Custom prefix: ```sh ./install.sh --prefix /path/to/prefix ``` ## Build Manually ```sh cmake --preset default cmake --build --preset default ``` For a debug build: ```sh cmake --preset debug cmake --build --preset debug ``` ## Run ```sh ./build/wayviewer HOST:5900 ``` Use `./build/wayviewer --help` for all options. ## Launcher Launching `wayviewer` without arguments from wofi opens graphical prompts for: - server address - username - password - quality Install the binary and desktop entry into your user prefix: ```sh cmake --install build ``` Then open wofi in `drun` mode and choose `wayviewer`. ## Source Layout - `src/main.cpp`: process entry point - `src/options.*`: command-line parsing and wofi or terminal prompts - `src/vnc_client.*`: VNC client setup and callbacks - `src/viewer_state.*`: framebuffer state and dirty rectangles - `src/input.*`: SDL input translation - `src/sdl_app.*`: SDL window, rendering, and event loop ## Why? Because I needed a VNC viewer that didnt suck and so here it is. Provided with no warranty to anyone who wants to build off of this hunk of complete trash