TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Low-latency remote desktop and game streaming for Linux. KMS capture, hardware encoding (VAAPI, NVENC) with AV1, HEVC and H.264, Vulkan display, about 10 ms in the LAN. Self-hosted, written in Rust.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Low-latency remote desktop and game streaming for Linux – self-hosted, written in Rust.
The latency of Sunshine/Moonlight or Parsec, the comfort of TeamViewer: pair once with a PIN, then click and play.
AMD, Intel and NVIDIA · Wayland and X11 · AV1, HEVC and H.264 in hardware · end-to-end encrypted.查看完整 README ↗Low-latency remote desktop and game streaming for Linux – self-hosted, written in Rust. The latency of Sunshine/Moonlight or Parsec, the comfort of TeamViewer: pair once with a PIN, then click and play. AMD, Intel and NVIDIA · Wayland and X11 · AV1, HEVC and H.264 in hardware · end-to-end encrypted.
Install • Features • Screenshots • Performance • Compared • FAQ • Documentation • Development
[!NOTE] Fernsicht is young. The core works and is tested on real hardware every night, but some parts have not been used by many people yet. See the status for what is done and what was not tried live.
Download the AppImage from the latest release and start it on both computers:
chmod +x Fernsicht-*-x86_64.AppImage
./Fernsicht-*-x86_64.AppImage
On the computer you want to control, open “Dieser Rechner” (this computer) and click “Diesen Rechner freigeben” (share this computer): the host runs as a system service from then on. On the other computer the host shows up in the list; pair with the PIN and click Desktop or Gaming. The app's interface is in German for now.
On a server you reach over SSH, install the host alone (any distribution with systemd; a .deb and
an .rpm are in the release too), then pair with sudo fernsicht-host-agent pair and open
http://<server>:47800 in a browser:
curl -fsSL https://github.com/firsttris/fernsicht/releases/latest/download/install.sh | sudo sh
Building from source, the browser and everything else: the installation guide.
| Notes | ||
|---|---|---|
| ✅ | AMD (RADV, VAAPI) | host and client, AV1/HEVC/H.264 with an RX 6000/7000 and newer |
| ✅ | NVIDIA (proprietary driver) | host (NVENC, screen via Vulkan → CUDA) and client (NVDEC); GTX 10xx and newer |
| ✅ | Intel (iHD, VAAPI) | the same path as AMD; not tested on real hardware yet |
| ✅ | Bazzite, Fedora, other distributions with systemd | developed and tested on Bazzite 44 (KDE Wayland) |
| 🌐 | Any browser | the web viewer: Chrome, Edge, Firefox, Safari, phones and tablets |
| ⏳ | Windows and macOS | not planned for now: the host is Linux, clients are the app on Linux or a browser |
| 🖥️ Remote desktop | Mouse and keyboard reliably over UDP, every event exactly once; the pointer drawn by the client so it never lags; several monitors with switching in the session; system keys (Meta, Alt+Tab, Ctrl+Alt+Del) in fullscreen or from a menu; a shared clipboard (text, on KDE, Sway, Hyprland, COSMIC) |
| 🎮 Game streaming | Gaming mode with a captured pointer (relative mouse), up to four controllers that appear on the host as Xbox 360 pads Steam knows (any layout through SDL3, rumble back to the controller), PlayStation pads as DualSense pads with gyro and touchpad, 60 to 144 fps |
| ⚡ Low latency | KMS capture at vblank, zero-copy into VAAPI, NVENC or Vulkan Video, low-latency encoder settings, Reed-Solomon FEC (retransmits only in the LAN, for what FEC cannot repair), UDP paced at the rate the path delivers, decoded pictures drawn where the GPU decoded them (Vulkan Video), a per-stage latency overlay |
| 🎞️ AV1, HEVC, H.264 | Each session takes the best codec both sides do in hardware; switchable in the settings; 10-bit desktops stream in 10 bit (HEVC Main 10, AV1) without banding; HDR desktops are recognised and tone-mapped for the client's display |
| 🔊 Sound | What the host plays, Opus with 5 ms frames, a 15 ms jitter buffer that hides loss |
| 🔐 Pairing and encryption | Pair once with a PIN (SPAKE2, no offline guessing), Noise IK per session, ChaCha20-Poly1305 for every packet, only paired devices get in |
| 🌐 Web viewer | The host serves it itself: any browser in the LAN, PIN once, WebRTC with AV1 or H.264; on phones with gestures, touchpad mode, pinch zoom and the on-screen keyboard |
| 📶 Bad networks | Forward error correction sized from the measured loss, bitrate adaptation before packets are lost (queue delay, ECN marks); 1 % loss costs no frame |
| 🧰 Host as a service | systemd unit, encoder picked for the GPU, GPU clocks raised during sessions, pairing and status from the app or the command line |
Measured end to end on the two test machines, without the monitor's own delay (details and what can still get faster: performance):
| Path | Glass-to-glass |
|---|---|
| Loopback, AMD RX 7800 XT, H.264 1080p60 | ≈ 9.4 ms |
| GTX 1080, NVENC → NVDEC, HEVC 1080p60 | ≈ 4.1 ms |
| AMD host → NVIDIA client over Wi-Fi, 1080p | 11.5 ms |
| AMD host → NVIDIA client over Wi-Fi, 1440p | 16.3 ms |
At the same bitrate HEVC gives a clearly sharper picture than H.264 (GTX 1080, 4 Mbit/s 1080p: 32.4 dB instead of 29.1 dB PSNR with a third of the bytes). Every step of the path is shown live in the overlay: capture, encode, network, decode, display.
| Fernsicht | Sunshine + Moonlight | Parsec | RustDesk | |
|---|---|---|---|---|
| Linux host | ✅ KMS, also login screen and gamescope | ✅ | ❌ | ✅ |
| Latency focus | ✅ zero-copy, FEC, per-stage overlay | ✅ | ✅ | ➖ |
| Remote desktop comfort (find, pair, click) | ✅ | ➖ pairing per client, made for games | ✅ | ✅ |
| Browser client | ✅ built into the host | ❌ | ❌ | ➖ web client |
| Account or cloud | none | none | required | optional relay server |
| Over the internet | via VPN for now (how) | port forwarding | ✅ | ✅ |
| Windows/macOS | ❌ | ✅ | ✅ | ✅ |
A latency comparison with Sunshine/Moonlight on the same machines is planned (method).
Yes. The host does not depend on the compositor: it reads the screen over KMS (kernel mode setting),
the same way on KDE Plasma, GNOME, Hyprland, Sway, gamescope and X11. That needs root
(CAP_SYS_ADMIN), which the system service has. The client window runs on Wayland and X11.
Yes, with the proprietary driver: NVENC on the host (the screen goes from KMS through Vulkan into CUDA, without a CPU copy) and NVDEC in the client (its pictures go from CUDA to Vulkan on the GPU). Tested on a GTX 1080.
Today through a VPN such as Tailscale or WireGuard (or Cloudflare WARP): then it works as in the LAN. Built-in NAT traversal is on the roadmap. See remote access.
For Linux to Linux and browsers, yes in intent: gaming mode, controllers, 120 Hz and more, AV1/HEVC. It does not speak the Moonlight protocol, so Moonlight clients cannot connect.
Only paired devices can connect. Pairing uses a 6-digit PIN with SPAKE2 (a recorded pairing cannot be used to guess the PIN), each session starts with a Noise IK handshake, and every packet is encrypted and authenticated. The web viewer is meant for the LAN: its page and PIN travel over plain HTTP. See security.
The best both sides support in hardware: AV1, then HEVC, then H.264. A GTX 1080 decodes no AV1, so it gets HEVC; a browser offering AV1 gets AV1 from an AMD RX 6000/7000. You can also pick one in the settings.
Everything else – installation, the app, the web viewer, the host, how it works inside, the protocol, security, performance and the roadmap – is in the documentation.
cargo build --release # host and client (test pattern, synthetic codec)
cargo test --workspace # unit, property, integration, end-to-end
pnpm install && pnpm test && pnpm test:e2e # app UI and web viewer
On Bazzite, dev/setup.sh builds the development container with FFmpeg, Vulkan and the GPU drivers.
Build features, the test layers, the GPU runners and the release flow are in the
development guide.
⭐ Like Fernsicht? A star on GitHub helps others find it. 🐛 Report a bug · 💡 Request a feature
License: AGPL-3.0 · © Tristan Teufel and contributors Changed versions you pass on or run for others must offer their source code under the AGPL; a commercial license without these obligations is available via teufel-it.de. Fernsicht is not affiliated with Valve, NVIDIA, AMD, Intel, Parsec, Moonlight, Sunshine, RustDesk or TeamViewer.