markdown · 1734 bytes Raw Blame History

HyprKVM

Hyprland-native software KVM switch that integrates with workspace navigation.

Features

  • Workspace-integrated switching: Move past your last workspace to switch machines
  • Mouse edge switching: Standard screen-edge triggers like Synergy/Barrier
  • Encrypted connections: TLS with certificate pinning
  • Clipboard sharing: Sync clipboard between machines
  • GUI and CLI: Visual layout editor or config-file driven

Status

🚧 Early Development - Sprint 0 in progress

Building

Prerequisites

  • Rust 1.75+
  • GTK4 development libraries (for future GUI)
  • Hyprland

Arch Linux / CachyOS

sudo pacman -S rust gtk4 libadwaita

NixOS

nix develop  # When flake is available

Build

cargo build --release

Quick Start

  1. Start the daemon:

    ./target/release/hyprkvm daemon
    
  2. Configure neighbor machines in ~/.config/hyprkvm/hyprkvm.toml:

    [machines]
    self_name = "my-laptop"
    
    [[machines.neighbors]]
    name = "desktop"
    direction = "right"
    address = "desktop.local:24850"
    
  3. Optionally, install keybinding interceptors in your hyprland.conf:

    bind = SUPER, Left,  exec, ~/.config/hypr/scripts/hyprkvm-move.sh left
    bind = SUPER, Right, exec, ~/.config/hypr/scripts/hyprkvm-move.sh right
    bind = SUPER, Up,    exec, ~/.config/hypr/scripts/hyprkvm-move.sh up
    bind = SUPER, Down,  exec, ~/.config/hypr/scripts/hyprkvm-move.sh down
    

Configuration

See config/hyprkvm.example.toml for all options.

Architecture

See docs/ROADMAP.md for the full architecture and development plan.

License

MIT License

View source
1 # HyprKVM
2
3 Hyprland-native software KVM switch that integrates with workspace navigation.
4
5 ## Features
6
7 - **Workspace-integrated switching**: Move past your last workspace to switch machines
8 - **Mouse edge switching**: Standard screen-edge triggers like Synergy/Barrier
9 - **Encrypted connections**: TLS with certificate pinning
10 - **Clipboard sharing**: Sync clipboard between machines
11 - **GUI and CLI**: Visual layout editor or config-file driven
12
13 ## Status
14
15 🚧 **Early Development** - Sprint 0 in progress
16
17 ## Building
18
19 ### Prerequisites
20
21 - Rust 1.75+
22 - GTK4 development libraries (for future GUI)
23 - Hyprland
24
25 ### Arch Linux / CachyOS
26
27 ```bash
28 sudo pacman -S rust gtk4 libadwaita
29 ```
30
31 ### NixOS
32
33 ```bash
34 nix develop # When flake is available
35 ```
36
37 ### Build
38
39 ```bash
40 cargo build --release
41 ```
42
43 ## Quick Start
44
45 1. Start the daemon:
46 ```bash
47 ./target/release/hyprkvm daemon
48 ```
49
50 2. Configure neighbor machines in `~/.config/hyprkvm/hyprkvm.toml`:
51 ```toml
52 [machines]
53 self_name = "my-laptop"
54
55 [[machines.neighbors]]
56 name = "desktop"
57 direction = "right"
58 address = "desktop.local:24850"
59 ```
60
61 3. Optionally, install keybinding interceptors in your `hyprland.conf`:
62 ```ini
63 bind = SUPER, Left, exec, ~/.config/hypr/scripts/hyprkvm-move.sh left
64 bind = SUPER, Right, exec, ~/.config/hypr/scripts/hyprkvm-move.sh right
65 bind = SUPER, Up, exec, ~/.config/hypr/scripts/hyprkvm-move.sh up
66 bind = SUPER, Down, exec, ~/.config/hypr/scripts/hyprkvm-move.sh down
67 ```
68
69 ## Configuration
70
71 See [config/hyprkvm.example.toml](config/hyprkvm.example.toml) for all options.
72
73 ## Architecture
74
75 See [docs/ROADMAP.md](docs/ROADMAP.md) for the full architecture and development plan.
76
77 ## License
78
79 MIT License