markdown · 1648 bytes Raw Blame History

HyprKVM

(noun) : yer a wizard, 'arry

what?

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

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.

License

MIT License

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