@@ -1,82 +0,0 @@
|
||||
{
|
||||
systemConfiguration = { config, ... }: {
|
||||
isNormalUser = true;
|
||||
# TODO: Don't hard-code `persist`. Use
|
||||
# config.sydnix.impermanence.persistGroupName.
|
||||
extraGroups = [ "wheel" "persist" "input" "networkmanager" "dots" "docker" ];
|
||||
initialHashedPassword =
|
||||
"$y$j9T$aEFDDwdTZbAc6VQRXrkBJ0$K8wxTGTWDihyX1wxJ.ZMH//wmQFfrGGUkLkxIU0Lyq8";
|
||||
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
../../public-keys/ssh/crumb-at-guix-rebound.pub
|
||||
];
|
||||
};
|
||||
|
||||
homeConfiguration = { config, lib, pkgs, ... }: {
|
||||
imports = [
|
||||
./files.nix
|
||||
];
|
||||
|
||||
home.packages = [
|
||||
(pkgs.stdenv.mkDerivation rec {
|
||||
pname = "berkeley-mono";
|
||||
version = "2.002";
|
||||
|
||||
src = pkgs.fetchzip {
|
||||
url = "https://deertopia.net/~msyds/berkeley-mono-${version}.zip";
|
||||
hash = "sha256-o/G9+IXTGrr0lMLiq13nhIKZ2NfXkR6wd72W+d7Stqw=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/share/fonts/truetype/berkeley-mono
|
||||
cp -r *.ttf $out/share/fonts/truetype/berkeley-mono
|
||||
'';
|
||||
})
|
||||
pkgs.noto-fonts-cjk-sans
|
||||
];
|
||||
|
||||
sydnix = {
|
||||
gpg.enable = true;
|
||||
zotero.enable = true;
|
||||
drawing-tablet.enable = true;
|
||||
capitaine-cursors.enable = true;
|
||||
xdg.enable = true;
|
||||
slippi.enable = true;
|
||||
openutau.enable = true;
|
||||
steam.enable = true;
|
||||
flatpak.enable = true;
|
||||
sops = {
|
||||
enable = true;
|
||||
keyFile = "/persist/private-keys/age/${config.home.username}";
|
||||
};
|
||||
# Personal configurations.
|
||||
users.crumb = {
|
||||
anki.enable = true;
|
||||
age.enable = true;
|
||||
rnote.enable = true;
|
||||
default-applications.enable = true;
|
||||
fcitx5.enable = true;
|
||||
bash.enable = true;
|
||||
direnv.enable = true;
|
||||
firefox.enable = true;
|
||||
git.enable = true;
|
||||
haskell.enable = true;
|
||||
mpd.enable = true;
|
||||
nvim.enable = true;
|
||||
emacs.enable = true;
|
||||
niri.enable = true;
|
||||
waybar.enable = true;
|
||||
discord.enable = true;
|
||||
ghostty.enable = true;
|
||||
readline.enable = true;
|
||||
mumble.enable = true;
|
||||
tf2.enable = true;
|
||||
quake-live.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Don't touch!
|
||||
home.stateVersion = "18.09";
|
||||
};
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
{ 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-old";
|
||||
home.file."private-keys/ssh/msyds-old".source =
|
||||
mutableSymlink "/persist/private-keys/ssh/msyds-old";
|
||||
|
||||
|
||||
# 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-old.pub;
|
||||
home.file."public-keys/ssh/msyds-old".source =
|
||||
../../public-keys/ssh/msyds-old.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;
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
]
|
||||
@@ -1,34 +0,0 @@
|
||||
lastfm-password: ENC[AES256_GCM,data:gLcWwEFLhlVdMWez5Kaja17WFUA=,iv:KT9JO0823dn6qHnK2uOacMxHf4f776/soXFUVjUi1UA=,tag:n77bHc97yoKJPYvTCWhEuQ==,type:str]
|
||||
librefm-password: ENC[AES256_GCM,data:0gDlWC/2CxryI6jH5RuJ,iv:8QVnhLko3H/IupQrNknxTR8NewfTP+DJyzvHk9Hzr48=,tag:Ku02Jp7p5G5qkO41Y3EFwA==,type:str]
|
||||
github-oauth: ENC[AES256_GCM,data:t3FKFYu8edeBipC55nrG0lt1SCY8q1N5dZmvsCg7GLlVl4oDXW8FyQ==,iv:aewQ63H6c5wAw+YQRKbDT18Q05hSFsrdQBSYOUeVNeY=,tag:m1oCnSmLt+0rfcfSO4sOkQ==,type:str]
|
||||
gitlab-oauth: ENC[AES256_GCM,data:1THznoGRZmq7BkisZoGa0ZiPG7aSmkV06SY=,iv:Gq6UPHBBrnpkiAo4CZipc89kJ9mfJrwIp9NmUmjtKBo=,tag:UhvgCQlnkTEQ4hEbCTM6ow==,type:str]
|
||||
#ENC[AES256_GCM,data:gp4X7mrNC4ZdlyyUUWjsUjvhmlvyHhQ=,iv:NK9hr5KcIQ6z7B+TqOfiGX5Pfd8SQUaSJdj9Hy4d/WQ=,tag:HBzhJ9PeQCghB+3NfnW6Hg==,type:comment]
|
||||
#
|
||||
#ENC[AES256_GCM,data:4gqfnzA4eoeZ6Iw9fCT3I7KhkYxsff7myCdTVulKx4x8H6+nhCg=,iv:FC64RlxezPMOH9sKrBdzhbCcdNUIJwi0oFjNdC5F3yQ=,tag:+9/+CVNCIjSMoXlGyMMNUw==,type:comment]
|
||||
#ENC[AES256_GCM,data:oevqzjP/OMnJeTIRcMDDhwMg95gzLINr4b0PdBPuFNRXxZ5izji6dUIKxTRH,iv:FyI9fmAV0ZX8CRu/ULbJXgzt0wO6zpgB0r63BU3ZqzE=,tag:wwmk0EldIsOlgRJN0tc+/g==,type:comment]
|
||||
#
|
||||
#ENC[AES256_GCM,data:SjMRkN3U2imOARN6Ecxfvy86/4/8+hJY/SmIbLbvDX/nLbRaxnkyIWvyTiM0NZxWR05rMSn4ZQ==,iv:fp/mrh9tAHhcfgWoUyYD0DQmdCU3BKB3Yy7Z164KTao=,tag:I0JlYWDNo4N0F4Xeq2c2Lw==,type:comment]
|
||||
#ENC[AES256_GCM,data:s5QQ9+f317sUC8y4gfRv1/tY40iXWzjn/bvOw7VAN8LDB75wrNWLf0Lawxhki1k=,iv:2rMAzgalNRvzyjWdMpCBXAaUYQS8N9u87YgF+IdwFp0=,tag:1aOr5BzSPlVrQhdrNMmMBQ==,type:comment]
|
||||
#ENC[AES256_GCM,data:N/g9x/bk3UIP9n0bH0q+UAzmacXw7FpfkOdXnstmXovXuN8RHnnTmmim/hL9Rb/KiWFdo0GlNHBC02KdYpXmJRXAJA4=,iv:JzJFKQKI69wg01HxRc1ZolVF1vnQ/X8AK3y/JEUVQr4=,tag:V7wYLrdh20M8pdpiKGmGLQ==,type:comment]
|
||||
#ENC[AES256_GCM,data:cRJoSlwZ5uW/LP3AymRffpglasTQfG1I4rFnonOdHw==,iv:IJU4HedL29CCUdYemkmi/wSzAqcMN1nDpz3NH6/bxPI=,tag:cjPbOssoGwLmbluzA28pUg==,type:comment]
|
||||
#ENC[AES256_GCM,data:RCya+rRxVH/LYKH2iltTwHBhsrQ0DqpXgAPzoYfFBFDiqL6/Rvhpd5vcFosPawZAow==,iv:AZMaEhKqXm/0/U76KZBAZhm6Rt8A7o41cBsk7bGD/Ac=,tag:62figByLcuK4kywPI/fhLg==,type:comment]
|
||||
#ENC[AES256_GCM,data:yTYbyB0b06mWCcstfnexBIe4WGS/SLlcbbNgtWKPwiMlOCO7fe+448VpoDJPftse3FI=,iv:RP4DJCrUyNUbgrZGQLYn3ANqEDO+uWe1aeKVqCRwpws=,tag:iqnRsAAJ//8iVzZdi2CcRw==,type:comment]
|
||||
#
|
||||
anki-username: ENC[AES256_GCM,data:hYOu21g=,iv:PY3RmCME8xPEjiva56sGGFTpDnXDn2tOYEE0VugnNaU=,tag:OvMMhFF2W5+82vlDgKCLiA==,type:str]
|
||||
anki-password: ENC[AES256_GCM,data:dzK6C4AtkkBSBctDHU6G8ajT8A==,iv:ok2C5mkCF0ufOGO/BeHgcQjh9Z3PAka10kPFp5ifTH4=,tag:Ww5gJVDkNa1locFgJjGDIQ==,type:str]
|
||||
anki-sync-key: ENC[AES256_GCM,data:3gID2PQy0BM7xb6hFQImTob7tlVXK835McYMSjyXsW1DrlYGTJU+cg==,iv:ZjFDb2OA7+UHATwdBKCy6O9htA4agIhJsydG4Oe6b1I=,tag:o/g6z5Ns9tuwRYBb7aYaGw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1qayk0d0f765v57pedm7mtau6qkmv8rh6jtaqm40g5g9armaty4jqc0v0y2
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2NE5mTER1OXpadmNzaXV6
|
||||
b3RSbS9yWTN0NWR4Z2xBRnRSanQxYXdRT2drClVrSk1raXE4ZUVIVmxoMzJWU1Rj
|
||||
VmxzdnVSUVEvQk1JcFo4Qjh6YWhiME0KLS0tIHh1OCtzSUZpWWhrbXB4SlA4RVBs
|
||||
VVBqSEM2bVFBU0M5YzZBQWIwUmVXUXMKvWb57Rc+rO5M8Pf7lvbSjuZB4FrHgT3A
|
||||
uBQHH3wpv0BVVzL8tucPnwNxDnwpWvFxxwNVy/rtfs6y6HPu6fuOsA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-30T22:13:31Z"
|
||||
mac: ENC[AES256_GCM,data:IdcHI68ZhvxGF3meROR5X429l3O1c9hyKLtwM4JFlK98sxN2Cl1XrAate74hYugwZUWu2Y2oo/+F7AEf1XyCj0bdtSulc8kDdn1Q3xU/W2FXW70uCTzEKnvD152/ifk1jYrPhcg4TvT4geva9iVD6FU3z0JuW345urCacEO7mZ4=,iv:bebniWdbTjhETYYzABIpbGjnzJqjvIvrKxSqMEuPGEU=,tag:BdMss9CVVuK68Wm5fjODAA==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
@@ -60,8 +60,8 @@
|
||||
".ssh"
|
||||
];
|
||||
};
|
||||
users.crumb.git.enable = true;
|
||||
users.crumb.nvim.enable = true;
|
||||
users.msyds.git.enable = true;
|
||||
users.msyds.nvim.enable = true;
|
||||
};
|
||||
|
||||
# Don't touch!
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
{
|
||||
systemConfiguration = { config, ... }: {
|
||||
isNormalUser = true;
|
||||
|
||||
# Unfortunately must be hard-coded so we can attribute it to the
|
||||
# corresponding LDAP user.
|
||||
uid = 1007;
|
||||
|
||||
extraGroups = [ "www" ];
|
||||
|
||||
openssh.authorizedKeys.keyFiles = [
|
||||
../../public-keys/ssh/liv.pub
|
||||
../../public-keys/ssh/windows.pub
|
||||
];
|
||||
};
|
||||
|
||||
homeConfiguration = { config, lib, pkgs, ... }: {
|
||||
programs.bash.enable = true;
|
||||
programs.emacs.enable = true;
|
||||
|
||||
home.packages = [
|
||||
pkgs.nano
|
||||
];
|
||||
|
||||
# Don't touch!
|
||||
home.stateVersion = "18.09";
|
||||
};
|
||||
}
|
||||
+11
-13
@@ -61,7 +61,17 @@
|
||||
keyFile = "/persist/private-keys/age/crumb";
|
||||
};
|
||||
# Personal configurations.
|
||||
users.crumb = {
|
||||
users.msyds = {
|
||||
discord.enable = true;
|
||||
bash.enable = true;
|
||||
hunspell.enable = true;
|
||||
emacs.enable = true;
|
||||
impermanence.enable = true;
|
||||
syncthing.enable = true;
|
||||
fonts.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
sioyek.enable = on "fruitbook";
|
||||
zathura.enable = on "sydpc";
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
nvim.enable = true;
|
||||
@@ -76,18 +86,6 @@
|
||||
mumble.enable = true;
|
||||
rnote.enable = on "sydpc";
|
||||
};
|
||||
users.msyds = {
|
||||
discord.enable = true;
|
||||
bash.enable = true;
|
||||
hunspell.enable = true;
|
||||
emacs.enable = true;
|
||||
impermanence.enable = true;
|
||||
syncthing.enable = true;
|
||||
fonts.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
sioyek.enable = on "fruitbook";
|
||||
zathura.enable = on "sydpc";
|
||||
};
|
||||
};
|
||||
|
||||
# Don't touch!
|
||||
|
||||
Reference in New Issue
Block a user