Files
sydnix/users/crumb/files.nix
Madeleine Sydney Ślaga 0ea963c879 chore: Fix tree-wide permissions
No idea why everything was executable, lol.
2025-09-08 06:08:20 -06:00

88 lines
2.5 KiB
Nix

{ config, lib, pkgs, ... }:
let mutableSymlink = config.lib.file.mkOutOfStoreSymlink;
in lib.mkMerge [
{
# Link private SSH keys to ~/.ssh/id_ed25519 (where SSH will automatically
# find them) and ~/private-keys (where humans will find them). Remember
# that private keys must always be linked with mutable symlinks as to not
# copy them into the world-readable Nix store!!
# home.file.".ssh/id_ed25519".source =
# mutableSymlink "/persist/private-keys/ssh/crumb-at-nixos-testbed";
# home.file."private-keys/ssh/crumb-at-nixos-testbed".source =
# mutableSymlink "/persist/private-keys/ssh/crumb-at-nixos-testbed";
home.file.".ssh/id_ed25519".source =
mutableSymlink "/persist/private-keys/ssh/msyds";
home.file."private-keys/ssh/msyds".source =
mutableSymlink "/persist/private-keys/ssh/msyds";
# Similarly, public keys are linked where SSH will find them as well as a
# human-friendly ~/public-keys.
# home.file.".ssh/id_ed25519.pub".source =
# ../../public-keys/ssh/crumb-at-nixos-testbed.pub;
# home.file."public-keys/ssh/crumb-at-nixos-testbed".source =
# ../../public-keys/ssh/crumb-at-nixos-testbed.pub;
home.file.".ssh/id_ed25519.pub".source =
../../public-keys/ssh/msyds.pub;
home.file."public-keys/ssh/msyds".source =
../../public-keys/ssh/msyds.pub;
}
{
### Some basic impermanence setup.
sydnix.impermanence = {
enable = true;
directories = [
".wine"
"Music"
"Pictures"
"Documents"
"Videos"
"Games"
"src" # My projects.
"scratch" # My playgrounds.
"etc" # Miscellaneous belongings.
"git" # Other peoples' projects.
# 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"
# REVIEW: I think it may be preferable to persist a few individual files
# under ~/.ssh, rather than the whole directory.
".ssh"
];
};
}
{
### Syncthing
sydnix.syncthing = {
enable = true;
includeDevices = [
"guix-rebound"
"deertopia"
];
directories = {
"org" = {
path = "~/org";
devices = [
"guix-rebound"
"deertopia"
];
ignorePerms = true;
};
"Music" = {
path = "~/Music";
devices = [
"deertopia"
];
ignorePerms = true;
};
};
};
}
]