new stuff
This commit is contained in:
parent
10005a31a1
commit
356b528c72
|
@ -1,187 +1,194 @@
|
|||
{
|
||||
"bang-bang": {
|
||||
"cargoLocks": null,
|
||||
"date": "2023-07-23",
|
||||
"extract": null,
|
||||
"name": "bang-bang",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-bang-bang",
|
||||
"rev": "ec991b80ba7d4dda7a962167b036efc5c2d79419",
|
||||
"sha256": "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=",
|
||||
"type": "github"
|
||||
"bang-bang": {
|
||||
"cargoLocks": null,
|
||||
"date": "2023-07-23",
|
||||
"extract": null,
|
||||
"name": "bang-bang",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-bang-bang",
|
||||
"rev": "ec991b80ba7d4dda7a962167b036efc5c2d79419",
|
||||
"sha256": "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "ec991b80ba7d4dda7a962167b036efc5c2d79419"
|
||||
},
|
||||
"version": "ec991b80ba7d4dda7a962167b036efc5c2d79419"
|
||||
},
|
||||
"fix-window-role": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "fix-window-role",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-H4Qj6n5uZsmsbdjjexGZctqhJk3gAXKiSnmnEO/LgTA=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch"
|
||||
"fix-window-role": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "fix-window-role",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-H4Qj6n5uZsmsbdjjexGZctqhJk3gAXKiSnmnEO/LgTA=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"git-abbr": {
|
||||
"cargoLocks": null,
|
||||
"date": "2023-06-19",
|
||||
"extract": null,
|
||||
"name": "git-abbr",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "pupbrained",
|
||||
"repo": "fish-git-abbr",
|
||||
"rev": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e",
|
||||
"sha256": "sha256-6z3Wr2t8CP85xVEp6UCYaM2KC9PX4MDyx19f/wjHkb0=",
|
||||
"type": "github"
|
||||
"git-abbr": {
|
||||
"cargoLocks": null,
|
||||
"date": "2023-06-19",
|
||||
"extract": null,
|
||||
"name": "git-abbr",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "pupbrained",
|
||||
"repo": "fish-git-abbr",
|
||||
"rev": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e",
|
||||
"sha256": "sha256-6z3Wr2t8CP85xVEp6UCYaM2KC9PX4MDyx19f/wjHkb0=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e"
|
||||
},
|
||||
"version": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e"
|
||||
},
|
||||
"gityaw": {
|
||||
"cargoLocks": null,
|
||||
"date": "2019-01-07",
|
||||
"extract": null,
|
||||
"name": "gityaw",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-gityaw",
|
||||
"rev": "59196560e0f4520db63fb8cab645510377bb8b13",
|
||||
"sha256": "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=",
|
||||
"type": "github"
|
||||
"gityaw": {
|
||||
"cargoLocks": null,
|
||||
"date": "2019-01-07",
|
||||
"extract": null,
|
||||
"name": "gityaw",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-gityaw",
|
||||
"rev": "59196560e0f4520db63fb8cab645510377bb8b13",
|
||||
"sha256": "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "59196560e0f4520db63fb8cab645510377bb8b13"
|
||||
},
|
||||
"version": "59196560e0f4520db63fb8cab645510377bb8b13"
|
||||
},
|
||||
"license": {
|
||||
"cargoLocks": null,
|
||||
"date": "2018-10-22",
|
||||
"extract": null,
|
||||
"name": "license",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-license",
|
||||
"rev": "0155b16f102957ec0c734a90979245dc1073f979",
|
||||
"sha256": "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=",
|
||||
"type": "github"
|
||||
"license": {
|
||||
"cargoLocks": null,
|
||||
"date": "2018-10-22",
|
||||
"extract": null,
|
||||
"name": "license",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-license",
|
||||
"rev": "0155b16f102957ec0c734a90979245dc1073f979",
|
||||
"sha256": "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "0155b16f102957ec0c734a90979245dc1073f979"
|
||||
},
|
||||
"version": "0155b16f102957ec0c734a90979245dc1073f979"
|
||||
},
|
||||
"replay-fish": {
|
||||
"cargoLocks": null,
|
||||
"date": "2024-07-01",
|
||||
"extract": null,
|
||||
"name": "replay-fish",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "jorgebucaran",
|
||||
"repo": "replay.fish",
|
||||
"rev": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c",
|
||||
"sha256": "sha256-TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg=",
|
||||
"type": "github"
|
||||
"replay-fish": {
|
||||
"cargoLocks": null,
|
||||
"date": "2024-07-01",
|
||||
"extract": null,
|
||||
"name": "replay-fish",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "jorgebucaran",
|
||||
"repo": "replay.fish",
|
||||
"rev": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c",
|
||||
"sha256": "sha256-TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c"
|
||||
},
|
||||
"version": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c"
|
||||
},
|
||||
"round-undecorated-frame": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "round-undecorated-frame",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-dFH4D1WYQOVOagUuVdEQB3irxV+Y8dDAOKJOJXc/KHQ=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/round-undecorated-frame.patch"
|
||||
"round-undecorated-frame": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "round-undecorated-frame",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-dFH4D1WYQOVOagUuVdEQB3irxV+Y8dDAOKJOJXc/KHQ=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/round-undecorated-frame.patch"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"sddm-theme-minesddm": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-01-06",
|
||||
"extract": null,
|
||||
"name": "sddm-theme-minesddm",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "Davi-S",
|
||||
"repo": "sddm-theme-minesddm",
|
||||
"rev": "c483c1287030fd848e7439851cb9f6627ab60920",
|
||||
"sha256": "sha256-uVlLPlYyvxxNgRzRrYfdIHwY0f7okKAq6NNgFzBw5TY=",
|
||||
"type": "github"
|
||||
"sddm-theme-minesddm": {
|
||||
"cargoLocks": null,
|
||||
"date": "2025-01-06",
|
||||
"extract": null,
|
||||
"name": "sddm-theme-minesddm",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "Davi-S",
|
||||
"repo": "sddm-theme-minesddm",
|
||||
"rev": "c483c1287030fd848e7439851cb9f6627ab60920",
|
||||
"sha256": "sha256-uVlLPlYyvxxNgRzRrYfdIHwY0f7okKAq6NNgFzBw5TY=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "c483c1287030fd848e7439851cb9f6627ab60920"
|
||||
},
|
||||
"version": "c483c1287030fd848e7439851cb9f6627ab60920"
|
||||
},
|
||||
"system-appearance": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "system-appearance",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-nrPOgGQAJb/5brrrWJNDARY2jWNJ9OsMtO+LPVhHfbY=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/system-appearance.patch"
|
||||
"system-appearance": {
|
||||
"cargoLocks": null,
|
||||
"date": null,
|
||||
"extract": null,
|
||||
"name": "system-appearance",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"name": null,
|
||||
"sha256": "sha256-nrPOgGQAJb/5brrrWJNDARY2jWNJ9OsMtO+LPVhHfbY=",
|
||||
"type": "url",
|
||||
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/system-appearance.patch"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"version": "latest"
|
||||
},
|
||||
"wttr": {
|
||||
"cargoLocks": null,
|
||||
"date": "2016-05-23",
|
||||
"extract": null,
|
||||
"name": "wttr",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-wttr",
|
||||
"rev": "7500e382e6b29a463edc57598217ce0cfaf8c90c",
|
||||
"sha256": "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=",
|
||||
"type": "github"
|
||||
},
|
||||
"version": "7500e382e6b29a463edc57598217ce0cfaf8c90c"
|
||||
}
|
||||
}
|
||||
"wttr": {
|
||||
"cargoLocks": null,
|
||||
"date": "2016-05-23",
|
||||
"extract": null,
|
||||
"name": "wttr",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
"deepClone": false,
|
||||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-wttr",
|
||||
"rev": "7500e382e6b29a463edc57598217ce0cfaf8c90c",
|
||||
"sha256": "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=",
|
||||
"sparseCheckout": [],
|
||||
"type": "github"
|
||||
},
|
||||
"version": "7500e382e6b29a463edc57598217ce0cfaf8c90c"
|
||||
}
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
# This file was generated by nvfetcher, please do not modify it manually.
|
||||
{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }:
|
||||
{
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
}: {
|
||||
bang-bang = {
|
||||
pname = "bang-bang";
|
||||
version = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||
|
|
|
@ -28,8 +28,10 @@
|
|||
hyprland = mkWithSubmodules "https://github.com/hyprwm/Hyprland";
|
||||
hyprland-plugins = mkFollowing "hyprwm/hyprland-plugins" "hyprland";
|
||||
hyprpanel = mkInput "ThomasCarey4/HyprPanel-NixFix";
|
||||
hyprswitch = mkInput "h3rmt/hyprswitch/release";
|
||||
hyprspace = mkFollowing "KZDKM/Hyprspace" "hyprland";
|
||||
hypr-dynamic-cursors = mkFollowing "VirtCode/hypr-dynamic-cursors" "hyprland";
|
||||
jovian = mkInput "Jovian-Experiments/Jovian-NixOS";
|
||||
impermanence = mkInput "nix-community/impermanence";
|
||||
nix-colors = mkInput "Misterio77/nix-colors";
|
||||
nixos-apple-silicon = mkInput "tpwrules/nixos-apple-silicon";
|
||||
|
@ -90,6 +92,7 @@
|
|||
impermanence.nixosModules.impermanence
|
||||
lix-module.nixosModules.default
|
||||
nixos-facter-modules.nixosModules.facter
|
||||
jovian.nixosModules.default
|
||||
]
|
||||
++ xmonad-contrib.nixosModules;
|
||||
|
||||
|
|
942
flake.lock
942
flake.lock
File diff suppressed because it is too large
Load diff
|
@ -37,7 +37,9 @@
|
|||
inputs.hyprland.follows = "hyprland";
|
||||
url = "github:KZDKM/Hyprspace";
|
||||
};
|
||||
hyprswitch.url = "github:h3rmt/hyprswitch/release";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
jovian.url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||
lix = {
|
||||
flake = false;
|
||||
url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
|
||||
|
|
|
@ -59,6 +59,18 @@
|
|||
nodejs
|
||||
playerctl
|
||||
prismlauncher
|
||||
ryujinx-greemdev
|
||||
(python312.withPackages
|
||||
(p:
|
||||
with p; [
|
||||
epc
|
||||
orjson
|
||||
sexpdata
|
||||
six
|
||||
setuptools
|
||||
paramiko
|
||||
rapidfuzz
|
||||
]))
|
||||
telegram-desktop
|
||||
]
|
||||
++ (with jetbrains; [
|
||||
|
@ -71,6 +83,7 @@
|
|||
++ (with inputs; [
|
||||
chaotic.packages.${pkgs.system}.distrobox_git
|
||||
chaotic.packages.${pkgs.system}.zed-editor_git
|
||||
ghostty.packages.${pkgs.system}.default
|
||||
nixvim.packages.${pkgs.system}.default
|
||||
zen-browser.packages.${pkgs.system}.default
|
||||
]);
|
||||
|
|
|
@ -9,6 +9,10 @@ with pkgs; {
|
|||
hyprpanel
|
||||
swww
|
||||
wl-clipboard
|
||||
(pkgs.writeShellScriptBin "hyprexit" ''
|
||||
${hyprland}/bin/hyprctl dispatch exit
|
||||
${systemd}/bin/loginctl terminate-user marshall
|
||||
'')
|
||||
];
|
||||
|
||||
wayland.windowManager.hyprland = {
|
||||
|
@ -129,14 +133,7 @@ with pkgs; {
|
|||
"hyprpanel"
|
||||
"swww-daemon"
|
||||
"swww img ${./walls/blaidd.png}"
|
||||
# "${writeScript "wallpaper" ''
|
||||
# while : ; do
|
||||
# for file in $(${uutils-coreutils}/bin/uutils-ls ${./walls}/*.jpg | sort -R | tail -1); do
|
||||
# swww img "$file" --transition-fps 165
|
||||
# sleep 5m
|
||||
# done
|
||||
# done
|
||||
# ''}"
|
||||
"hyprswitch init --show-title --size-factor 5.5 --workspaces-per-row 5 &"
|
||||
];
|
||||
|
||||
misc = {
|
||||
|
@ -189,10 +186,11 @@ with pkgs; {
|
|||
|
||||
# Quitting
|
||||
"${mod}, q, killactive"
|
||||
"${modS}, q, exit"
|
||||
"${modS}, q, exec, hyprexit"
|
||||
|
||||
# Toggles
|
||||
"${mod}, Space, togglefloating"
|
||||
"${mod}, f, fullscreen"
|
||||
|
||||
# Focus movements
|
||||
"${mod}, h, movefocus, l"
|
||||
|
@ -212,6 +210,9 @@ with pkgs; {
|
|||
"${modC}, k, resizeactive, 0 -30"
|
||||
"${modC}, l, resizeactive, 30 0"
|
||||
|
||||
# Alt-tab menu
|
||||
"Alt, Tab, exec, hyprswitch gui --mod-key alt --key tab --close mod-key-release && hyprswitch dispatch"
|
||||
|
||||
# Volume controls
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
fd.enable = true;
|
||||
git-cliff.enable = true;
|
||||
jq.enable = true;
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index.enable = true;
|
||||
ripgrep.enable = true;
|
||||
|
||||
|
|
|
@ -99,6 +99,24 @@
|
|||
};
|
||||
};
|
||||
|
||||
jovian = {
|
||||
steam = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
user = "marshall";
|
||||
desktopSession = "hyprland";
|
||||
|
||||
environment = {
|
||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "${pkgs.proton-ge-bin.steamcompattool}";
|
||||
};
|
||||
};
|
||||
|
||||
decky-loader = {
|
||||
enable = true;
|
||||
user = "marshall";
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
packages = with pkgs;
|
||||
[
|
||||
|
@ -249,12 +267,14 @@
|
|||
snowfallorg.flake
|
||||
sound-theme-freedesktop
|
||||
uutils-coreutils-noprefix
|
||||
tpm2-tss
|
||||
virtio-win
|
||||
(warp-terminal.override {waylandSupport = true;})
|
||||
winetricks
|
||||
wineWowPackages.staging
|
||||
xclip
|
||||
yt-dlp
|
||||
inputs.hyprswitch.packages.${system}.hyprswitch
|
||||
|
||||
(callPackage ./pkgs/sddm-theme-minesddm.nix {})
|
||||
];
|
||||
|
@ -267,9 +287,9 @@
|
|||
"/root/.ssh"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/iwd"
|
||||
"/var/lib/libvirt"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/systemd/coredump"
|
||||
"/var/lib/decky-loader"
|
||||
];
|
||||
files = ["/etc/machine-id"];
|
||||
};
|
||||
|
@ -288,69 +308,55 @@
|
|||
tmp.useTmpfs = true;
|
||||
|
||||
initrd = {
|
||||
availableKernelModules = ["tpm_tis"];
|
||||
|
||||
# Encrypted device
|
||||
luks.devices."enc".device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
||||
luks.devices."enc" = {
|
||||
device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
||||
crypttabExtraOpts = ["tpm2-device=auto" "tpm2-measure-pcr=yes"];
|
||||
};
|
||||
|
||||
postDeviceCommands = lib.mkAfter ''
|
||||
mkdir /btrfs_tmp
|
||||
mount /dev/mapper/enc /btrfs_tmp
|
||||
if [[ -e /btrfs_tmp/root ]]; then
|
||||
mkdir -p /btrfs_tmp/old_roots
|
||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||
fi
|
||||
systemd = {
|
||||
enable = true;
|
||||
emergencyAccess = true;
|
||||
enableTpm2 = true;
|
||||
|
||||
delete_subvolume_recursively() {
|
||||
IFS=$'\n'
|
||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||
done
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
services.wipe-root = {
|
||||
description = "Rollback BTRFS root subvolume to a pristine state";
|
||||
wantedBy = ["initrd.target"];
|
||||
after = ["dev-mapper-enc.device"]; # LUKS process
|
||||
requires = ["dev-mapper-enc.device"];
|
||||
before = ["sysroot.mount"];
|
||||
unitConfig.DefaultDependencies = "no";
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
(
|
||||
set -xe
|
||||
|
||||
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
||||
delete_subvolume_recursively "$i"
|
||||
done
|
||||
btrfs_subvolume_delete_recursive() {
|
||||
btrfs subvolume list -o "$1" |
|
||||
cut -f 9- -d ' ' |
|
||||
while read -r subvolume; do
|
||||
btrfs_subvolume_delete_recursive "$mount_point/$subvolume"
|
||||
done
|
||||
|
||||
btrfs subvolume create /btrfs_tmp/root
|
||||
umount /btrfs_tmp
|
||||
'';
|
||||
btrfs subvolume delete "$1"
|
||||
}
|
||||
|
||||
# systemd = {
|
||||
# enable = true;
|
||||
# emergencyAccess = true;
|
||||
# dbus.enable = true;
|
||||
#
|
||||
# services.wipe-root = {
|
||||
# requires = ["dev-mapper-enc.device"];
|
||||
# after = ["dev-mapper-enc.device"];
|
||||
# wantedBy = ["initrd.target"];
|
||||
# script = lib.mkAfter ''
|
||||
# mkdir /btrfs_tmp
|
||||
# mount /dev/mapper/enc /btrfs_tmp
|
||||
# if [[ -e /btrfs_tmp/root ]]; then
|
||||
# mkdir -p /btrfs_tmp/old_roots
|
||||
# timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||
# mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||
# fi
|
||||
#
|
||||
# delete_subvolume_recursively() {
|
||||
# IFS=$'\n'
|
||||
# for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||
# delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||
# done
|
||||
# btrfs subvolume delete "$1"
|
||||
# }
|
||||
#
|
||||
# for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
||||
# delete_subvolume_recursively "$i"
|
||||
# done
|
||||
#
|
||||
# btrfs subvolume create /btrfs_tmp/root
|
||||
# umount /btrfs_tmp
|
||||
# '';
|
||||
# };
|
||||
# };
|
||||
mount_point=/mnt
|
||||
mkdir -p "$mount_point"
|
||||
mount -t btrfs "/dev/mapper/enc" "$mount_point"
|
||||
|
||||
trap 'umount "$mount_point" && rmdir "$mount_point"' EXIT
|
||||
|
||||
btrfs_subvolume_delete_recursive \
|
||||
"$mount_point/root"
|
||||
|
||||
btrfs subvolume create "$mount_point/root"
|
||||
)
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
extraModprobeConfig =
|
||||
|
@ -465,7 +471,6 @@
|
|||
fish.enable = true;
|
||||
gamemode.enable = true;
|
||||
gnupg.agent.enable = true;
|
||||
virt-manager.enable = true;
|
||||
|
||||
appimage = {
|
||||
enable = true;
|
||||
|
@ -521,13 +526,23 @@
|
|||
spice-vdagentd.enable = true;
|
||||
udisks2.enable = true;
|
||||
|
||||
nextjs-ollama-llm-ui = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
ollama = {
|
||||
enable = true;
|
||||
loadModels = ["deepseek-r1:14b"];
|
||||
acceleration = "cuda";
|
||||
};
|
||||
|
||||
btrfs.autoScrub = {
|
||||
enable = true;
|
||||
fileSystems = ["/dev/mapper/enc"];
|
||||
};
|
||||
|
||||
displayManager.sddm = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
wayland.enable = true;
|
||||
wayland.compositor = "kwin";
|
||||
theme = "minesddm";
|
||||
|
@ -580,9 +595,7 @@
|
|||
extraGroups = [
|
||||
"disk"
|
||||
"gamemode"
|
||||
"libvirtd"
|
||||
"networkmanager"
|
||||
"qemu-libvirtd"
|
||||
"tss"
|
||||
"wheel"
|
||||
];
|
||||
|
@ -615,7 +628,7 @@
|
|||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
open = true;
|
||||
open = false;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -626,8 +639,6 @@
|
|||
config.common.default = "*";
|
||||
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-cosmic
|
||||
pkgs.xdg-desktop-portal-gnome
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
];
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue