11 Commits

Author SHA1 Message Date
github-actions[bot]
f7d85cb4f7 automated: Update flake.lock
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 9s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m38s
Auto-generated by [update.yml][1] with the help of
[create-pull-request][2].

[1]: https://nayeonie.com/ahuston-0/nix-dotfiles/src/branch/main/.github/workflows/flake-update.yml
[2]: https://forgejo.stefka.eu/jiriks74/create-pull-request
2026-04-28 12:11:33 +00:00
a226d68df7 Merge pull request 'gnome keyring' (#220) from feature/avahi into main
Some checks failed
Check flake.lock / Check health of `flake.lock` (push) Successful in 12s
Check Nix flake / Perform Nix flake checks (push) Successful in 2m30s
Update flakes / update_lockfile (push) Failing after 10m55s
Reviewed-on: #220
2026-04-26 14:14:33 -04:00
8e6cfa47b8 gnome keyring
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 26s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 2m47s
2026-04-26 13:03:51 -04:00
9d702285b6 gnome keyring
Some checks failed
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 38s
Check Nix flake / Perform Nix flake checks (pull_request) Failing after 2m32s
2026-04-26 13:02:19 -04:00
ef128b240e Merge pull request 'feature/avahi' (#219) from feature/avahi into main
Some checks failed
Check flake.lock / Check health of `flake.lock` (push) Successful in 10s
Check Nix flake / Perform Nix flake checks (push) Failing after 2m10s
Update flakes / update_lockfile (push) Failing after 14m38s
Reviewed-on: #219
2026-04-26 02:09:47 -04:00
f66c8792c4 remove zathura, add avahi
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 10s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 4m35s
2026-04-26 01:48:08 -04:00
dde6dc3246 remove zathura, add avahi 2026-04-26 01:47:46 -04:00
0d3d41c8f9 Merge pull request 'add tea' (#218) from feature/tea into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 8s
Check Nix flake / Perform Nix flake checks (push) Successful in 2m19s
Update flakes / update_lockfile (push) Successful in 29m1s
Reviewed-on: #218
2026-04-19 02:28:20 -04:00
8c566ed869 add tea
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 16s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 2m33s
2026-04-19 02:25:16 -04:00
eb09fdf8fd Merge pull request 'stage 1 boot setup' (#215) from update_flake_lock_action into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 11s
Check Nix flake / Perform Nix flake checks (push) Successful in 2m46s
Reviewed-on: #215
2026-04-19 02:24:38 -04:00
650ae4ef16 stage 1 boot setup
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 18s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 2m56s
2026-04-19 02:21:17 -04:00
7 changed files with 169 additions and 124 deletions

11
.vscode/mcp.json vendored
View File

@@ -1,10 +1 @@
{
"servers": {
"nixos": {
"command": "uvx",
"args": [
"mcp-nixos"
]
}
}
}
{}

72
flake.lock generated
View File

@@ -76,11 +76,11 @@
},
"locked": {
"dir": "pkgs/firefox-addons",
"lastModified": 1775534587,
"narHash": "sha256-OLAoGTTwPVTH13C1e2Vcdff4WigTsk6hO5Y3sEcwl/s=",
"lastModified": 1777348977,
"narHash": "sha256-9aKuCI5TKHKnP073B1VzBdLRLAQJE7R9rbJWaSFXr3M=",
"owner": "rycee",
"repo": "nur-expressions",
"rev": "9f1e4b7f5443c50cb4ccc2a376ba1058231e64b4",
"rev": "a314975f42bfa9665bf77d1586ee0e123790ed27",
"type": "gitlab"
},
"original": {
@@ -240,11 +240,11 @@
]
},
"locked": {
"lastModified": 1775556024,
"narHash": "sha256-j1u/859OVS54rGlsvFqJdwKPEnFYCI+4pyfTiSfv1Xc=",
"lastModified": 1777349711,
"narHash": "sha256-PGKgo2dO6fK603QGI+DWXdKmS09pbJjjTxwRHdhkGZA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4bdfeff1d9b7473e6e58f73f5809576e8a69e406",
"rev": "c1140540536d483e2730320100f6835d62c94fdf",
"type": "github"
},
"original": {
@@ -281,11 +281,11 @@
]
},
"locked": {
"lastModified": 1774778246,
"narHash": "sha256-OX9Oba3/cHq1jMS1/ItCdxNuRBH3291Lg727nHOzYnc=",
"lastModified": 1776426061,
"narHash": "sha256-3rROoGl8xBsIOM+5m+qZS4GJnsdQPAH3NJJe1OUfJ5o=",
"owner": "hyprwm",
"repo": "contrib",
"rev": "ca3c381df6018e6c400ceac994066427c98fe323",
"rev": "1f71628d86a7701fd5ba0f8aeabe15376f4c6afc",
"type": "github"
},
"original": {
@@ -335,11 +335,11 @@
]
},
"locked": {
"lastModified": 1775365369,
"narHash": "sha256-DgH5mveLoau20CuTnaU5RXZWgFQWn56onQ4Du2CqYoI=",
"lastModified": 1777181277,
"narHash": "sha256-yVJbd07ortDRAttDFmDV5p220aOLTHgVAx//0nW/xW8=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "cef5cf82671e749ac87d69aadecbb75967e6f6c3",
"rev": "b8eb7acee0f7604fe1bf6a5b3dcf5254369180fa",
"type": "github"
},
"original": {
@@ -415,11 +415,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1775490113,
"narHash": "sha256-2ZBhDNZZwYkRmefK5XLOusCJHnoeKkoN95hoSGgMxWM=",
"lastModified": 1776983936,
"narHash": "sha256-ZOQyNqSvJ8UdrrqU1p7vaFcdL53idK+LOM8oRWEWh6o=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "c775c2772ba56e906cbeb4e0b2db19079ef11ff7",
"rev": "2096f3f411ce46e88a79ae4eafcfc9df8ed41c61",
"type": "github"
},
"original": {
@@ -438,11 +438,11 @@
]
},
"locked": {
"lastModified": 1775331627,
"narHash": "sha256-przIxCbTrNgLzcBlNPGZRfZbiPLzUkLUtNS05Ekcogk=",
"lastModified": 1776036369,
"narHash": "sha256-TxBJY5IwDu3peDIK3b9+A7pwqBaFRCAIllaRSfYMQtI=",
"owner": "NuschtOS",
"repo": "nixos-modules",
"rev": "b4cc33254b872b286b9fe481e60e3fc2abc78072",
"rev": "2bea807180b3931cf8765078205fd9171dbfd2b5",
"type": "github"
},
"original": {
@@ -500,11 +500,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1775423009,
"narHash": "sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw=",
"lastModified": 1776877367,
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "68d8aa3d661f0e6bd5862291b5bb263b2a6595c9",
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
"type": "github"
},
"original": {
@@ -550,11 +550,11 @@
]
},
"locked": {
"lastModified": 1775036584,
"narHash": "sha256-zW0lyy7ZNNT/x8JhzFHBsP2IPx7ATZIPai4FJj12BgU=",
"lastModified": 1776796298,
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "4e0eb042b67d863b1b34b3f64d52ceb9cd926735",
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
"type": "github"
},
"original": {
@@ -594,11 +594,11 @@
]
},
"locked": {
"lastModified": 1775531562,
"narHash": "sha256-G83GDxQo6lqO5aeTSD5RFLhnh2g6DzJpSvSju2EjjrQ=",
"lastModified": 1777346187,
"narHash": "sha256-oVxyGjpiIsrXhWTJVUOs38fZQkLjd0nZGOY9K7Kfot8=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "d8b1b209203665924c81eabf750492530754f27e",
"rev": "146e7bf7569b8288f24d41d806b9f584f7cfd5b5",
"type": "github"
},
"original": {
@@ -614,11 +614,11 @@
]
},
"locked": {
"lastModified": 1775365543,
"narHash": "sha256-f50qrK0WwZ9z5EdaMGWOTtALgSF7yb7XwuE7LjCuDmw=",
"lastModified": 1777338324,
"narHash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "a4ee2de76efb759fe8d4868c33dec9937897916f",
"rev": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5",
"type": "github"
},
"original": {
@@ -647,11 +647,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1775429060,
"narHash": "sha256-wbFF5cRxQOCzL/wHOKYm21t5AHPH2Lfp0mVPCOAvEoc=",
"lastModified": 1776893932,
"narHash": "sha256-AFD5cf9eNqXq1brHS63xeZy2xKZMgG9J86XJ9I2eLn8=",
"owner": "danth",
"repo": "stylix",
"rev": "d27951a6539951d87f75cf0a7cda8a3a24016019",
"rev": "84971726c7ef0bb3669a5443e151cc226e65c518",
"type": "github"
},
"original": {
@@ -767,11 +767,11 @@
]
},
"locked": {
"lastModified": 1775531246,
"narHash": "sha256-sbVYa4TS2Q1pkSjs8CvHsPGYFM5w4d9od4ltzIGV/bA=",
"lastModified": 1777064547,
"narHash": "sha256-hssXWvyy6bzaGi9FuZQPGxVBLzQKRPDht13O0Y+Qxmo=",
"owner": "Toqozz",
"repo": "wired-notify",
"rev": "4fd4283803f198302af1a6a75b2225568004b343",
"rev": "95edd8613b1636639857a3fba403155cef82eb5d",
"type": "github"
},
"original": {

View File

@@ -13,6 +13,7 @@
enable = lib.mkDefault true;
flags = [ "--accept-flake-config" ];
randomizedDelaySec = "1h";
runGarbageCollection = true;
persistent = true;
flake = "git+ssh://nayeonie.com/ahuston-0/nix-dotfiles.git";
};

View File

@@ -54,6 +54,12 @@
"starcoder2:7b"
];
};
avahi = {
enable = true;
#publish.enable = true;
nssmdns4 = true;
openFirewall = true;
};
flatpak.enable = true;
calibre-web = {
# temp disable this

View File

@@ -6,7 +6,6 @@
attic-client
amdgpu_top
android-tools
bat
bitwarden-cli
bfg-repo-cleaner
brightnessctl
@@ -19,7 +18,6 @@
#claude-code
croc
deadnix
direnv
easyeffects
eza
fanficfare
@@ -107,4 +105,13 @@
zoom-us
zoxide
];
programs = {
appimage = {
enable = true;
binfmt = true;
};
bat.enable = true;
direnv.enable = true;
kdeconnect.enable = true;
};
}

View File

@@ -12,6 +12,107 @@
options zfs zfs_arc_min=82463372083
options zfs zfs_arc_max=192414534860
'';
initrd.systemd.services = {
zfs-import-zfs-primary = {
description = "Import ZFS-primary pool in initrd";
wantedBy = [ "initrd-root-fs.target" ];
wants = [ "systemd-udev-settle.service" ];
after = [ "systemd-udev-settle.service" ];
before = [
"sysroot.mount"
"initrd-root-fs.target"
];
unitConfig.DefaultDependencies = "no";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
path = with pkgs; [
coreutils
gawk
zfs
];
script = ''
ZFS_FORCE="-f"
msg=""
for o in $(cat /proc/cmdline); do
case "$o" in
zfs_force|zfs_force=1|zfs_force=y)
ZFS_FORCE="-f"
;;
esac
done
pool_ready() {
pool="$1"
state="$(zpool import -d /dev/disk/by-id/ 2>/dev/null | awk '/pool: '"$pool"'/ { found = 1 }; /state:/ { if (found == 1) { print $2; exit } }; END { if (found == 0) { print "MISSING" } }')"
if [ "$state" = "ONLINE" ]; then
return 0
fi
echo "Pool $pool in state $state, waiting"
return 1
}
pool_imported() {
pool="$1"
zpool list "$pool" >/dev/null 2>/dev/null
}
pool_import() {
pool="$1"
zpool import -d /dev/disk/by-id/ -N $ZFS_FORCE "$pool"
}
echo -n 'importing root ZFS pool "ZFS-primary"...'
# Loop until import succeeds, because by-id devices may not be discovered yet.
if ! pool_imported "ZFS-primary"; then
trial=1
while [ "$trial" -le 60 ]; do
if pool_ready "ZFS-primary" >/dev/null && msg="$(pool_import "ZFS-primary" 2>&1)"; then
break
fi
sleep 1
echo -n .
trial=$((trial + 1))
done
echo
if [ -n "$msg" ]; then
echo "$msg"
fi
pool_imported "ZFS-primary" || pool_import "ZFS-primary" # Try one last time, e.g. to import a degraded pool.
fi
'';
};
zfs-load-nix-key = {
description = "Load ZFS key for ZFS-primary/nix in initrd";
wantedBy = [ "initrd-fs.target" ];
requires = [
"sysroot.mount"
"zfs-import-zfs-primary.service"
];
after = [
"sysroot.mount"
"zfs-import-zfs-primary.service"
];
before = [
"initrd-fs.target"
"sysroot-nix.mount"
];
unitConfig.DefaultDependencies = "no";
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
path = with pkgs; [ zfs ];
script = ''
key_file="/sysroot/crypto/keys/zfs-nix-store-key"
zfs load-key -L "file://$key_file" "ZFS-primary/nix"
'';
};
};
};
services = {
@@ -82,69 +183,4 @@
};
};
# hack to make sure pool is imported before keys are loaded,
# and also keys are imported before things get mounted
# note to self: move zfs encryption over to luks lol
boot.initrd.postResumeCommands = ''
ZFS_FORCE="-f"
for o in $(cat /proc/cmdline); do
case $o in
zfs_force|zfs_force=1|zfs_force=y)
ZFS_FORCE="-f"
;;
esac
done
poolReady() {
pool="$1"
state="$("zpool" import -d "/dev/disk/by-id/" 2>/dev/null | "awk" "/pool: $pool/ { found = 1 }; /state:/ { if (found == 1) { print \$2; exit } }; END { if (found == 0) { print \"MISSING\" } }")"
if [[ "$state" = "ONLINE" ]]; then
return 0
else
echo "Pool $pool in state $state, waiting"
return 1
fi
}
poolImported() {
pool="$1"
"zpool" list "$pool" >/dev/null 2>/dev/null
}
poolImport() {
pool="$1"
"zpool" import -d "/dev/disk/by-id/" -N $ZFS_FORCE "$pool"
}
echo -n "importing root ZFS pool \"ZFS-primary\"..."
# Loop across the import until it succeeds, because the devices needed may not be discovered yet.
if ! poolImported "ZFS-primary"; then
for trial in `seq 1 60`; do
poolReady "ZFS-primary" > /dev/null && msg="$(poolImport "ZFS-primary" 2>&1)" && break
sleep 1
echo -n .
done
echo
if [[ -n "$msg" ]]; then
echo "$msg";
fi
poolImported "ZFS-primary" || poolImport "ZFS-primary" # Try one last time, e.g. to import a degraded pool.
fi
# let root mount and everything, then manually unlock stuff
load_zfs_nix() {
local device="/dev/disk/by-uuid/8bfaa32b-09dd-45c8-831e-05e80be82f9e"
local mountPoint="/"
local options="x-initrd.mount,noatime,nodiratime"
local fsType="ext4"
echo "manually mounting key location, then unmounting"
udevadm settle
mountFS "$device" "$(escapeFstab "$mountPoint")" "$(escapeFstab "$options")" "$fsType"
zfs load-key -L "file://$targetRoot/crypto/keys/zfs-nix-store-key" "ZFS-primary/nix"
umount "$targetRoot/"
}
load_zfs_nix
'';
}

View File

@@ -194,21 +194,23 @@ in
onSave = true;
forwardSearchAfter = true;
};
forwardSearch = {
executable = "zathura";
args = [
"--synctex-forward"
"%l:1:%f"
"-x"
"zed %%{input}:%%{line}"
"%p"
];
};
#forwardSearch = {
# #executable = "zathura";
# args = [
# "--synctex-forward"
# "%l:1:%f"
# "-x"
# "zed %%{input}:%%{line}"
# "%p"
# ];
#};
};
};
};
};
services.gnome-keyring.enable = true;
home.packages = with pkgs; [
cmake
shellcheck
@@ -268,7 +270,6 @@ in
bitwarden-cli
bitwarden-menu
wtype
zathura
obsidian
libreoffice-qt-fresh
wlr-randr
@@ -282,5 +283,8 @@ in
pdf4qt
masterpdfeditor4
gitea-mcp-server
tea
];
}