Skip to content

labi-le/belphegor

Folders and files

NameName
Last commit message
Last commit date
Nov 22, 2024
Nov 15, 2024
Nov 23, 2024
Nov 23, 2024
Nov 23, 2024
Nov 22, 2024
Mar 30, 2024
Nov 14, 2024
Mar 30, 2024
Nov 22, 2024
Dec 19, 2024
Nov 22, 2024
Nov 23, 2024
Mar 24, 2025
Mar 24, 2025
Mar 30, 2024

Repository files navigation

belphegor

Belphegor is a clipboard manager that allows you to share your clipboard with other devices on the network.


Features

  • Hybrid encryption (RSA-2048*, AES-256-GCM) (bit size configurable)
  • Peer to peer
  • Discovering local nodes
  • Image sharing (wayland <—> wayland, wayland <—> windows)

Dependencies

  • linux:
    • xclip or xsel (for skufs) or wl-clipboard (linux)
  • macos:
    • pbpaste
  • windows:
    • nothing

Installation

  • Prebuilt binaries

  • Nix flake

    as profile
    nix profile install github:labi-le/belphegor
    import the module
    {
      # inputs
      belphegor.url = "github:labi-le/belphegor";
      # outputs
      overlay-belphegor = final: prev: {
        belphegor = belphegor.packages.${system}.default;
      };
    
      modules = [
        ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-belphegor ]; })
      ];
    
      # add package
      environment.systemPackages = with pkgs; [
        belphegor
      ];
    }

Build from source

  • Go 1.22
  • git
  • makefile
git clone https://github.com/labi-le/belphegor.git
cd belphegor
sudo make install

Usage

Usage of belphegor:
  -bit_size int
        RSA key bit size (default 2048)
  -connect string
        Address in ip:port format to connect to the node
  -debug
        Show debug logs
  -discover_delay duration
        Delay between node discovery (default 5m0s)
  -help
        Show help
  -hidden
        Hide console window (for windows user)
  -keep_alive duration
        Interval for checking connections between nodes (default 1m0s)
  -max_peers int
        Maximum number of peers to connect to (default 5)
  -node_discover
        Find local nodes on the network and connect to them (default true)
  -notify
        Enable notifications (default true)
  -port int
        Port to use. Default: random (default 7663)
  -scan_delay duration
        Delay between scan local clipboard (default 2s)
  -version
        Show version
  -write_timeout duration
        Write timeout (default 5s)

Todo

[x] Create github actions for build binary and running tests

[x] Add flake

[ ] Debug image sharing for xclip, xsel, pbpaste

[ ] Use wayland/x11 ipc clients instead of using utilities to monitor the clipboard

[ ] Add disable cipher option (maybe)