# syncthing-set-id Modify in-place a nix module that configures syncthing device ids. This file can used as a normal `include` in nixos configs. This eliminates the need to copy-paste these device IDs around. ### Example desktop$ syncthing-set-id syncthing-devices.nix Creating /home/user/myNixOSConfigs/syncthing-devices.nix desktop$ cat syncthing-devices.nix { "services" = { "syncthing" = { "devices" = { "desktop" = { "id" = "1234567-89ABCDE-FGHIJKL-MNOPQRS-TUVWXYZ-0123456-789ABCD-EFGHIJK"; }; }; }; }; } Then, later, on another machine: laptop$ syncthing-set-id syncthing-devices.nix laptop$ cat syncthing-devices.nix { "services" = { "syncthing" = { "devices" = { "desktop" = { "id" = "1234567-89ABCDE-FGHIJKL-MNOPQRS-TUVWXYZ-0123456-789ABCD-EFGHIJK"; }; "laptop" = { "id" = "1111111-2222222-3333333-4444444-5555555-6666666-7777777-8888888"; }; }; }; }; } ### Usage $ syncthing-set-id usage: syncthing-set-device-id file [name] [id] example: syncthing-set-device-id /etc/nixos/modules/syncthing-devices.nix example: syncthing-set-device-id /etc/nixos/modules/syncthing-devices.nix lappy example: syncthing-set-device-id /etc/nixos/modules/syncthing-devices.nix lappy 1234567-89ABCDE-FGHIJKL-MNOPQRS-TUVWXYZ-0123456-789ABCD-EFGHIJK If `name` is not specified, $HOSTNAME is used. If `id` is not specified, the ID of the current system instance is used. ### Installation You can use this repo as a channel. Or, you can use an overlay. For example, you could create a `~/.config/nixpkgs/overlays/syncthing-set-id.nix` with this in it: self: super: let syncthing-set-id-pkgs = import (builtins.fetchGit { url = "https://scottworley.com/syncthing-set-id.git"; ref = "master"; rev = "0c29f01e83fdadd491b930a9108519be03c7937d"; }) { pkgs = self; }; in { inherit (syncthing-set-id-pkgs) syncthing-set-id; } And then $ nix-env -iA nixos.syncthing-set-id