fix(syncthing): Persist Syncthing state
Previously, the device ID would be lost and consequently regenerated on boot. This means that previous connections will recognise it as a new, different device.
This commit is contained in:
@@ -179,6 +179,8 @@ sydnix-cli is a command-line utility written in Clojure wrapping various sydnix-
|
|||||||
|
|
||||||
** Emacs from scratch
|
** Emacs from scratch
|
||||||
|
|
||||||
|
*** TODO [#A] [[id:6141dc5c-2232-4bc0-9464-410c21135c86][Strategies]]
|
||||||
|
|
||||||
*** TODO Completions w/ [[https://github.com/minad/corfu][Corfu]]
|
*** TODO Completions w/ [[https://github.com/minad/corfu][Corfu]]
|
||||||
|
|
||||||
*** TODO Overlay org-mode links with the domain name
|
*** TODO Overlay org-mode links with the domain name
|
||||||
@@ -231,10 +233,6 @@ If a comment immediately proceeds a sexp, open the new sexp /before/ the comment
|
|||||||
|
|
||||||
*** DONE Evil operators like ~=~ should not move point
|
*** DONE Evil operators like ~=~ should not move point
|
||||||
|
|
||||||
*** TODO Fix ~syd-forward-up-sexp~
|
|
||||||
|
|
||||||
*** TODO Fix defun text object
|
|
||||||
|
|
||||||
*** TODO ESC should immediately close minibuffer, even whilst in insert state
|
*** TODO ESC should immediately close minibuffer, even whilst in insert state
|
||||||
|
|
||||||
*** DONE Daemon
|
*** DONE Daemon
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
./files.nix
|
./files.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
xdg.enable = true;
|
||||||
|
|
||||||
sydnix = {
|
sydnix = {
|
||||||
sops = {
|
sops = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let mutableSymlink = config.lib.file.mkOutOfStoreSymlink;
|
let mutableSymlink = config.lib.file.mkOutOfStoreSymlink;
|
||||||
in {
|
in lib.mkMerge [
|
||||||
|
{
|
||||||
# TODO: Move to programs/age.nix.
|
# TODO: Move to programs/age.nix.
|
||||||
xdg.configFile."sops/age/keys.txt".source =
|
xdg.configFile."sops/age/keys.txt".source =
|
||||||
mutableSymlink "/persist/vault/${config.home.username}/keys/melbourne";
|
mutableSymlink "/persist/vault/${config.home.username}/keys/melbourne";
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
### Some basic impermanence setup.
|
||||||
|
|
||||||
sydnix.impermanence = {
|
sydnix.impermanence = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -14,6 +19,9 @@ in {
|
|||||||
"Documents"
|
"Documents"
|
||||||
"Videos"
|
"Videos"
|
||||||
"src"
|
"src"
|
||||||
|
# Should "org" be declared in emacs.nix? I don't think so. I
|
||||||
|
# conjecture that my org files are extremely valuable with or without
|
||||||
|
# Emacs.
|
||||||
"org"
|
"org"
|
||||||
".ssh"
|
".ssh"
|
||||||
{
|
{
|
||||||
@@ -23,8 +31,34 @@ in {
|
|||||||
".passage"
|
".passage"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
### Syncthing
|
||||||
|
|
||||||
# TODO: sydnix.syncthing module
|
# TODO: sydnix.syncthing module
|
||||||
|
sydnix.impermanence.directories =
|
||||||
|
let xdg-state-dir =
|
||||||
|
"${config.home.stateHome
|
||||||
|
or "${config.home.homeDirectory}/.local/state"}";
|
||||||
|
in [
|
||||||
|
# HACK: This relies on behaviour that is not explicitly defined by the
|
||||||
|
# Syncthing Home-manager module. We have to trust that $XDG_STATE_DIR,
|
||||||
|
# at the time of syncthing.service's start, does not differ from this
|
||||||
|
# value defined in Nix. Perhaps a PR to home-manager adding an option
|
||||||
|
# `services.syncthing.stateDir` would be good.
|
||||||
|
#
|
||||||
|
# If Syncthing ever breaks, make sure they didn't start using a different path:
|
||||||
|
# https://github.com/nix-community/home-manager/blob/master/modules/services/syncthing.nix
|
||||||
|
#
|
||||||
|
# Evidence for using this path is found at: (permalink)
|
||||||
|
# https://github.com/nix-community/home-manager/blob/6d3163aea47fdb1fe19744e91306a2ea4f602292/modules/services/syncthing.nix#L624
|
||||||
|
|
||||||
|
# Hack aside, this directory must be persisted to, at least
|
||||||
|
# 1. Preserve the device ID.
|
||||||
|
"${xdg-state-dir}/syncthing"
|
||||||
|
];
|
||||||
|
|
||||||
services.syncthing = {
|
services.syncthing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
@@ -44,3 +78,4 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user