Add desktop; various fixes

This commit is contained in:
Agatha Lovelace 2023-09-17 18:57:46 +02:00
parent 9ed706f2a1
commit 58225b7574
Signed by: sorceress
GPG Key ID: 01D0B3AB10CED4F8
11 changed files with 465 additions and 494 deletions

View File

@ -8,9 +8,8 @@
"setxkbmap" "setxkbmap"
]; ];
extraConfig = let extraConfig = let
startOnce = procs: startOnce =
map (v: "! pgrep ${builtins.head (lib.splitString " " v)} && ${v} &") map (v: "! pgrep ${builtins.head (lib.splitString " " v)} && ${v} &");
procs;
startup = startOnce [ startup = startOnce [
"firefox" "firefox"
"element-desktop" "element-desktop"
@ -19,12 +18,13 @@
"geary" "geary"
"bspm -d" "bspm -d"
]; ];
in lib.strings.concatStringsSep "\n" ([ monitors = builtins.genList (_: _) (builtins.length (builtins.attrValues
"nitrogen --set-zoom-fill ${ config.home-manager.users.agatha.xsession.windowManager.bspwm.monitors));
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image nitrogen = map (i:
}" "nitrogen --head=${toString i} --set-zoom-fill ${
] ++ startup); config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
monitors = { eDP-1 = [ "I" "II" "III" "IV" "V" "VI" "VII" "VIII" ]; }; }") monitors;
in lib.strings.concatStringsSep "\n" (nitrogen ++ startup);
settings = let settings = let
color = n: color = n:
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
@ -47,15 +47,6 @@
state = "tiled"; state = "tiled";
follow = true; follow = true;
}; };
"Element".desktop = "II";
"TelegramDesktop".desktop = "III";
"Spotify".desktop = "IV";
"Geary".desktop = "V";
"firefox" = {
desktop = "I";
state = "tiled";
follow = false;
};
"Yubico Authenticator".state = "floating"; "Yubico Authenticator".state = "floating";
"firefox:Places".state = "floating"; "firefox:Places".state = "floating";
}; };

View File

@ -13,15 +13,26 @@
./spotify.nix ./spotify.nix
]; ];
nixpkgs.overlays = [
(final: prev: {
pads = final.callPackage ../../../common/pkgs/pads.nix { };
bspm = final.callPackage ../../../common/pkgs/bspm.nix { };
polybar-spotify =
final.callPackage ../../../common/pkgs/polybar-spotify.nix { };
element-desktop =
prev.element-desktop.override { electron = prev.electron_24; };
})
];
# User packages # User packages
users.users.agatha.packages = with pkgs; [ users.users.agatha.packages = with pkgs; [
(element-desktop.override { electron = electron_24; })
blueberry blueberry
brightnessctl brightnessctl
broot broot
bspm bspm
clipmenu clipmenu
colmena colmena
element-desktop
ffmpeg ffmpeg
flameshot flameshot
gimp gimp
@ -49,6 +60,7 @@
prismlauncher prismlauncher
rofi-calc rofi-calc
rofimoji rofimoji
speechd
tdesktop tdesktop
wireguard-tools wireguard-tools
xdg-utils xdg-utils
@ -137,6 +149,18 @@
arguments = [ "dimblur" ]; arguments = [ "dimblur" ];
}; };
# Update lockscreen wallpaper after locking
xdg.configFile."betterlockscreen/custom-post.sh".text =
"betterlockscreen -u ${
config.environment.graphical.colorschemes."${config.environment.graphical.theme.name}".image
}";
# Send a notification 10 seconds before locking
services.screen-locker.xautolock.extraOptions = [
"-notify 10"
"-notifier '${pkgs.dunst}/bin/dunstify -t 10000 -u 2 \"Screen will lock in 10 seconds\"'"
];
# GTK theme # GTK theme
home.file.".themes" = { home.file.".themes" = {
recursive = true; recursive = true;
@ -150,6 +174,8 @@
gtk = { gtk = {
enable = true; enable = true;
font.name = "Cantarell";
font.size = 12;
theme.name = if config.environment.graphical.theme.light then theme.name = if config.environment.graphical.theme.light then
"ZorinPurple-Light" "ZorinPurple-Light"
else else
@ -198,9 +224,7 @@
xdg.desktopEntries.element-work = { xdg.desktopEntries.element-work = {
name = "Element @ Work"; name = "Element @ Work";
icon = "im.riot.Riot"; icon = "im.riot.Riot";
exec = "${ exec = "${pkgs.element-desktop}/bin/element-desktop --profile=work";
(pkgs.element-desktop.override { electron = pkgs.electron_24; })
}/bin/element-desktop --profile=work";
categories = [ "Network" "InstantMessaging" "Chat" "VideoConference" ]; categories = [ "Network" "InstantMessaging" "Chat" "VideoConference" ];
mimeType = [ "x-scheme-handler/element" ]; mimeType = [ "x-scheme-handler/element" ];
settings.StartupWMClass = "element"; settings.StartupWMClass = "element";
@ -273,4 +297,7 @@
enable = true; enable = true;
drivers = [ pkgs.hplip ]; drivers = [ pkgs.hplip ];
}; };
# Fix Wireguard NetworkManager connections
networking.firewall.checkReversePath = "loose";
} }

View File

@ -5,6 +5,8 @@ let
n}"; n}";
in { in {
home-manager.users.agatha = { home-manager.users.agatha = {
home.sessionVariables.TERMINAL = "kitty";
programs.kitty = { programs.kitty = {
enable = true; enable = true;
font = { font = {

View File

@ -11,6 +11,7 @@
"${pkgs.systemd}/bin" "${pkgs.systemd}/bin"
"${pkgs.util-linux}/bin" "${pkgs.util-linux}/bin"
"${pkgs.gnused}/bin" "${pkgs.gnused}/bin"
"${pkgs.kitty}/bin"
]); ]);
}; };
Install = { WantedBy = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; };
@ -23,8 +24,6 @@
enable = true; enable = true;
package = pkgs.polybarFull; package = pkgs.polybarFull;
script = "polybar right &";
settings = let settings = let
color = n: color = n:
config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString config.environment.graphical.colors."${config.environment.graphical.theme.name}"."${builtins.toString
@ -40,8 +39,7 @@
red = color 4; red = color 4;
}; };
"bar/right" = { "bar/left" = {
monitor = "\${env:MONITOR:eDP-1}";
width = "100%:-30"; width = "100%:-30";
height = 30; height = 30;
offset-x = 15; offset-x = 15;
@ -80,7 +78,54 @@
modules = { modules = {
left = "bspwm"; left = "bspwm";
center = "date"; center = "date";
right = right = "spotify wireguard notification-status";
};
wm-restack = "bspwm";
cursor-click = "pointer";
locale = "de_DE.UTF-8";
};
"bar/right" = {
width = "100%:-30";
height = 30;
offset-x = 15;
offset-y = 12;
radius = 0;
fixed-center = true;
background = "\${colors.background}";
foreground = "\${colors.foreground}";
line = {
size = 0;
color = color 3;
};
border = {
size = 3;
color = color 1;
};
padding = {
left = 2;
right = 2;
};
module.margin = {
left = 1;
right = 1;
};
font = {
"0" = "Iosevka Gothic:pixelsize=10;3";
"1" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;2";
"2" = "Siji:pixelsize=11;2";
"3" = "Symbols Nerd Font:pixelsize=10;2";
"4" = "DejaVuSans:fontformat=truetype:size=8:antialias=false;1";
};
modules = {
left = "bspwm";
center = "date";
right = lib.mkDefault
"filesystem battery pulseaudio xkeyboard memory cpu notification-status powermenu"; "filesystem battery pulseaudio xkeyboard memory cpu notification-status powermenu";
}; };
@ -222,7 +267,7 @@
"0-0" = "reboot"; "0-0" = "reboot";
"0-0-exec" = "${pkgs.systemd}/bin/reboot"; "0-0-exec" = "${pkgs.systemd}/bin/reboot";
"0-1" = "power off"; "0-1" = "power off";
"0-1-exec" = "sudo ${pkgs.systemd}/bin/poweroff"; "0-1-exec" = "${pkgs.systemd}/bin/shutdown now";
}; };
}; };
@ -270,6 +315,26 @@
interval = 2; interval = 2;
format-prefix = " "; format-prefix = " ";
}; };
"module/wireguard" = {
type = "custom/script";
exec = ''
${pkgs.networkmanager}/bin/nmcli conn show --active | ${pkgs.ripgrep}/bin/rg -q wireguard && echo "VPN Connected" || echo ""'';
click-left = "kitty nmtui";
interval = 5;
format-prefix = " ";
};
"module/spotify" = {
type = "custom/script";
interval = 1;
exec =
"${pkgs.polybar-spotify}/bin/polybar-spotify -f '{artist}: {song}'";
format-prefix = " ";
format = "<label>";
click-left =
"${pkgs.playerctl}/bin/playerctl --player=spotify play-pause";
};
}; };
}; };
}; };

View File

@ -55,7 +55,7 @@ in {
}; };
}; };
enigmatica-8 = { enigmatica-8 = {
enable = true; enable = false;
inherit rsyncSSHKeys jvmOpts; inherit rsyncSSHKeys jvmOpts;
jvmInitialAllocation = "1G"; jvmInitialAllocation = "1G";

View File

@ -1,4 +1,4 @@
{ pkgs, config, lib, ... }: { { pkgs, lib, ... }: {
home-manager.users.agatha = { home-manager.users.agatha = {
# Formatters/Language Servers that Helix uses # Formatters/Language Servers that Helix uses
home.packages = with pkgs; [ nixfmt ]; home.packages = with pkgs; [ nixfmt ];

View File

@ -4,7 +4,9 @@
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs", "nixpkgs": [
"nixpkgs-unstable"
],
"stable": "stable" "stable": "stable"
}, },
"locked": { "locked": {
@ -24,15 +26,17 @@
"colorpickle": { "colorpickle": {
"inputs": { "inputs": {
"naersk": "naersk", "naersk": "naersk",
"nixpkgs": "nixpkgs_3", "nixpkgs": [
"nixpkgs-unstable"
],
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1686221213, "lastModified": 1694367396,
"narHash": "sha256-9Uc1jBc5a3EaOH80P6YPILL+GXlul7lEJIKAZ/BXELw=", "narHash": "sha256-U3nPJD8iJYEFJ7ZIWiad5hpyk7vIgnD4FFoufvNl5w0=",
"owner": "AgathaSorceress", "owner": "AgathaSorceress",
"repo": "colorpickle", "repo": "colorpickle",
"rev": "d1c210c494c0eaf69426ec411c2cf74c79b0129d", "rev": "5689bff525d86a3accbe715b5ebcd31433fc7d8c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -42,125 +46,32 @@
} }
}, },
"crane": { "crane": {
"flake": false,
"locked": {
"lastModified": 1681175776,
"narHash": "sha256-7SsUy9114fryHAZ8p1L6G6YSu7jjz55FddEwa2U8XZc=",
"owner": "ipetkov",
"repo": "crane",
"rev": "445a3d222947632b5593112bb817850e8a9cf737",
"type": "github"
},
"original": {
"owner": "ipetkov",
"ref": "v0.12.1",
"repo": "crane",
"type": "github"
}
},
"dream2nix": {
"inputs": { "inputs": {
"all-cabal-json": [
"helix",
"nci"
],
"crane": "crane",
"devshell": [
"helix",
"nci"
],
"drv-parts": "drv-parts",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-parts": [ "flake-utils": [
"helix", "helix",
"nci", "flake-utils"
"parts"
],
"flake-utils-pre-commit": [
"helix",
"nci"
],
"ghc-utils": [
"helix",
"nci"
],
"gomod2nix": [
"helix",
"nci"
],
"mach-nix": [
"helix",
"nci"
],
"nix-pypi-fetcher": [
"helix",
"nci"
], ],
"nixpkgs": [ "nixpkgs": [
"helix", "helix",
"nci",
"nixpkgs" "nixpkgs"
], ],
"nixpkgsV1": "nixpkgsV1", "rust-overlay": [
"poetry2nix": [
"helix", "helix",
"nci" "rust-overlay"
],
"pre-commit-hooks": [
"helix",
"nci"
],
"pruned-racket-catalog": [
"helix",
"nci"
] ]
}, },
"locked": { "locked": {
"lastModified": 1683212002, "lastModified": 1688772518,
"narHash": "sha256-EObtqyQsv9v+inieRY5cvyCMCUI5zuU5qu+1axlJCPM=", "narHash": "sha256-ol7gZxwvgLnxNSZwFTDJJ49xVY5teaSvF7lzlo3YQfM=",
"owner": "nix-community", "owner": "ipetkov",
"repo": "dream2nix", "repo": "crane",
"rev": "fbfb09d2ab5ff761d822dd40b4a1def81651d096", "rev": "8b08e96c9af8c6e3a2b69af5a7fa168750fcf88e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "ipetkov",
"repo": "dream2nix", "repo": "crane",
"type": "github"
}
},
"drv-parts": {
"inputs": {
"flake-compat": [
"helix",
"nci",
"dream2nix",
"flake-compat"
],
"flake-parts": [
"helix",
"nci",
"dream2nix",
"flake-parts"
],
"nixpkgs": [
"helix",
"nci",
"dream2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1680698112,
"narHash": "sha256-FgnobN/DvCjEsc0UAZEAdPLkL4IZi2ZMnu2K2bUaElc=",
"owner": "davhau",
"repo": "drv-parts",
"rev": "e8c2ec1157dc1edb002989669a0dbd935f430201",
"type": "github"
},
"original": {
"owner": "davhau",
"repo": "drv-parts",
"type": "github" "type": "github"
} }
}, },
@ -232,11 +143,11 @@
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1689068808,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401", "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -281,7 +192,9 @@
"frq-friend": { "frq-friend": {
"inputs": { "inputs": {
"naersk": "naersk_2", "naersk": "naersk_2",
"nixpkgs": "nixpkgs_5", "nixpkgs": [
"nixpkgs-unstable"
],
"utils": "utils_2" "utils": "utils_2"
}, },
"locked": { "locked": {
@ -300,17 +213,19 @@
}, },
"helix": { "helix": {
"inputs": { "inputs": {
"nci": "nci", "crane": "crane",
"nixpkgs": "nixpkgs_6", "flake-utils": "flake-utils_2",
"parts": "parts_2", "nixpkgs": [
"nixpkgs-unstable"
],
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1688662390, "lastModified": 1694896279,
"narHash": "sha256-T4Xvu7FoUdr5WCQtOPunuYvd1qw3IqJe89Iyrsvdk7o=", "narHash": "sha256-FPh1A1Iy+4zxfwh6h4B0lltNg6oV070o8mhednkEK6U=",
"owner": "helix-editor", "owner": "helix-editor",
"repo": "helix", "repo": "helix",
"rev": "3fb430257e8ae8ca7535025d6895a75665ecf8d4", "rev": "8b076e3851c868307223b6152de9a8de52fcb88f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -326,11 +241,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1687871164, "lastModified": 1694465129,
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=", "narHash": "sha256-8BQiuobMrCfCbGM7w6Snx+OBYdtTIm0+cGVaKwQ5BFg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38", "rev": "9787dffff5d315c9593d3f9fb0f9bf2097e1b57b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -359,7 +274,9 @@
"matrix-ril100": { "matrix-ril100": {
"inputs": { "inputs": {
"naersk": "naersk_3", "naersk": "naersk_3",
"nixpkgs": "nixpkgs_8", "nixpkgs": [
"nixpkgs-unstable"
],
"utils": "utils_3" "utils": "utils_3"
}, },
"locked": { "locked": {
@ -376,22 +293,6 @@
"url": "https://git.lain.faith/sorceress/matrix-ril100" "url": "https://git.lain.faith/sorceress/matrix-ril100"
} }
}, },
"mk-naked-shell": {
"flake": false,
"locked": {
"lastModified": 1681286841,
"narHash": "sha256-3XlJrwlR0nBiREnuogoa5i1b4+w/XPe0z8bbrJASw0g=",
"owner": "yusdacra",
"repo": "mk-naked-shell",
"rev": "7612f828dd6f22b7fb332cc69440e839d7ffe6bd",
"type": "github"
},
"original": {
"owner": "yusdacra",
"repo": "mk-naked-shell",
"type": "github"
}
},
"mms": { "mms": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_3",
@ -417,14 +318,14 @@
}, },
"naersk": { "naersk": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1679567394, "lastModified": 1694081375,
"narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=", "narHash": "sha256-vzJXOUnmkMCm3xw8yfPP5m8kypQ3BhAIRe4RRCWpzy8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "naersk", "repo": "naersk",
"rev": "88cd22380154a2c36799fe8098888f0f59861a15", "rev": "3f976d822b7b37fc6fb8e6f157c2dd05e7e94e89",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -436,7 +337,7 @@
}, },
"naersk_2": { "naersk_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1679567394, "lastModified": 1679567394,
@ -455,7 +356,7 @@
}, },
"naersk_3": { "naersk_3": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1687852486, "lastModified": 1687852486,
@ -474,7 +375,7 @@
}, },
"naersk_4": { "naersk_4": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_12" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1679567394, "lastModified": 1679567394,
@ -491,38 +392,10 @@
"type": "github" "type": "github"
} }
}, },
"nci": {
"inputs": {
"dream2nix": "dream2nix",
"mk-naked-shell": "mk-naked-shell",
"nixpkgs": [
"helix",
"nixpkgs"
],
"parts": "parts",
"rust-overlay": [
"helix",
"rust-overlay"
]
},
"locked": {
"lastModified": 1683699050,
"narHash": "sha256-UWKQpzVcSshB+sU2O8CCHjOSTQrNS7Kk9V3+UeBsJpg=",
"owner": "yusdacra",
"repo": "nix-cargo-integration",
"rev": "ed27173cd1b223f598343ea3c15aacb1d140feac",
"type": "github"
},
"original": {
"owner": "yusdacra",
"repo": "nix-cargo-integration",
"type": "github"
}
},
"nix": { "nix": {
"inputs": { "inputs": {
"lowdown-src": "lowdown-src", "lowdown-src": "lowdown-src",
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_4",
"nixpkgs-regression": "nixpkgs-regression" "nixpkgs-regression": "nixpkgs-regression"
}, },
"locked": { "locked": {
@ -541,36 +414,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1683408522, "lastModified": 1694343207,
"narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=", "narHash": "sha256-jWi7OwFxU5Owi4k2JmiL1sa/OuBCQtpaAesuj5LXC8w=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7", "rev": "78058d810644f5ed276804ce7ea9e82d92bee293",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "id": "nixpkgs",
"ref": "nixos-unstable", "type": "indirect"
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"dir": "lib",
"lastModified": 1682879489,
"narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
"type": "github"
},
"original": {
"dir": "lib",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-regression": { "nixpkgs-regression": {
@ -591,11 +444,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1688646010, "lastModified": 1694760568,
"narHash": "sha256-kCeza5eKI2NEi8k0EoeZfv3lN1r1Vwx+L/VA6I8tmG4=", "narHash": "sha256-3G07BiXrp2YQKxdcdms22MUx6spc6A++MSePtatCYuI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5daaa32204e9c46b05cd709218b7ba733d07e80c", "rev": "46688f8eb5cd6f1298d873d4d2b9cf245e09e88e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -604,105 +457,13 @@
"type": "indirect" "type": "indirect"
} }
}, },
"nixpkgsV1": {
"locked": {
"lastModified": 1678500271,
"narHash": "sha256-tRBLElf6f02HJGG0ZR7znMNFv/Uf7b2fFInpTHiHaSE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5eb98948b66de29f899c7fe27ae112a47964baf8",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-22.11",
"type": "indirect"
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1688594934,
"narHash": "sha256-3dUo20PsmUd57jVZRx5vgKyIN1tv+v/JQweZsve5q/A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e11142026e2cef35ea52c9205703823df225c947",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"type": "indirect"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1686020360,
"narHash": "sha256-Wee7lIlZ6DIZHHLiNxU5KdYZQl0iprENXa/czzI6Cj4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4729ffac6fd12e26e5a8de002781ffc49b0e94b7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_12": {
"locked": {
"lastModified": 1680273054,
"narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3364b5b117f65fe1ce65a3cdd5612a078a3b31e3",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_13": {
"locked": {
"lastModified": 1680273054,
"narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3364b5b117f65fe1ce65a3cdd5612a078a3b31e3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_14": {
"locked": {
"lastModified": 1682092588,
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
"owner": "AgathaSorceress",
"repo": "nixpkgs",
"rev": "bdd3dc5aa8435b66f14636550223a9b3a50e534d",
"type": "github"
},
"original": {
"owner": "AgathaSorceress",
"ref": "image-optim-pack-cleanup",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1681002951, "lastModified": 1681272286,
"narHash": "sha256-nD9fXN7EVKGovtjrXIuA7Si9M6PD9b02GNtvQPTSuOk=", "narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "431bf1e6cdd494e5230fbb72884afb4ca612c578", "rev": "6b70761ea8c896aff8994eb367d9526686501860",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -712,97 +473,19 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1681002951, "lastModified": 1687946342,
"narHash": "sha256-nD9fXN7EVKGovtjrXIuA7Si9M6PD9b02GNtvQPTSuOk=", "narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "431bf1e6cdd494e5230fbb72884afb4ca612c578", "rev": "1c851e8c92b76a00ce84167984a7ec7ba2b1f29c",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "id": "nixpkgs",
"ref": "nixpkgs-unstable", "type": "indirect"
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": {
"lastModified": 1681272286,
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1681272286,
"narHash": "sha256-9X5p+gwYrowgbsRgkf14HFI0fkr6UikuwRIQAMlF1yI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b70761ea8c896aff8994eb367d9526686501860",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1683408522,
"narHash": "sha256-9kcPh6Uxo17a3kK3XCHhcWiV1Yu1kYj22RHiymUhMkU=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "897876e4c484f1e8f92009fd11b7d988a121a4e7",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1687946342,
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c851e8c92b76a00ce84167984a7ec7ba2b1f29c",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1687946342,
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c851e8c92b76a00ce84167984a7ec7ba2b1f29c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1657693803, "lastModified": 1657693803,
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
@ -818,43 +501,48 @@
"type": "github" "type": "github"
} }
}, },
"parts": { "nixpkgs_5": {
"inputs": {
"nixpkgs-lib": [
"helix",
"nci",
"nixpkgs"
]
},
"locked": { "locked": {
"lastModified": 1683560683, "lastModified": 1694753796,
"narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=", "narHash": "sha256-QPE7dqcicQH/nq9aywVXJWWtci4FvxHaM+BSIEbGBvA=",
"owner": "hercules-ci", "owner": "NixOS",
"repo": "flake-parts", "repo": "nixpkgs",
"rev": "006c75898cf814ef9497252b022e91c946ba8e17", "rev": "360a7d31c30abefdc490d203f80e3221b7a24af2",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "id": "nixpkgs",
"repo": "flake-parts", "ref": "nixos-23.05",
"type": "github" "type": "indirect"
} }
}, },
"parts_2": { "nixpkgs_6": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": { "locked": {
"lastModified": 1683560683, "lastModified": 1680273054,
"narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=", "narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=",
"owner": "hercules-ci", "owner": "NixOS",
"repo": "flake-parts", "repo": "nixpkgs",
"rev": "006c75898cf814ef9497252b022e91c946ba8e17", "rev": "3364b5b117f65fe1ce65a3cdd5612a078a3b31e3",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "id": "nixpkgs",
"repo": "flake-parts", "type": "indirect"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1682092588,
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
"owner": "AgathaSorceress",
"repo": "nixpkgs",
"rev": "bdd3dc5aa8435b66f14636550223a9b3a50e534d",
"type": "github"
},
"original": {
"owner": "AgathaSorceress",
"ref": "image-optim-pack-cleanup",
"repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
@ -867,7 +555,7 @@
"home-manager": "home-manager", "home-manager": "home-manager",
"matrix-ril100": "matrix-ril100", "matrix-ril100": "matrix-ril100",
"mms": "mms", "mms": "mms",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_5",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"url-eater": "url-eater", "url-eater": "url-eater",
@ -876,18 +564,21 @@
}, },
"rust-overlay": { "rust-overlay": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_2", "flake-utils": [
"helix",
"flake-utils"
],
"nixpkgs": [ "nixpkgs": [
"helix", "helix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1683771545, "lastModified": 1690424156,
"narHash": "sha256-we0GYcKTo2jRQGmUGrzQ9VH0OYAUsJMCsK8UkF+vZUA=", "narHash": "sha256-Bpml+L280tHTQpwpC5/BJbU4HSvEzMvW8IZ4gAXimhE=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "c57e210faf68e5d5386f18f1b17ad8365d25e4ed", "rev": "f335a0213504c7e6481c359dc1009be9cf34432c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -899,14 +590,16 @@
"spicetify-nix": { "spicetify-nix": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_4", "flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_11" "nixpkgs": [
"nixpkgs-unstable"
]
}, },
"locked": { "locked": {
"lastModified": 1686173678, "lastModified": 1693075322,
"narHash": "sha256-aYzl34xb3u9I57sqkvSldQKltCnxhjvvLABjgFRxOVE=", "narHash": "sha256-O/qmWiE23pzYMSKNhA74jfY1D5TyiJrHx35PYkRx9Gs=",
"owner": "the-argus", "owner": "the-argus",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "f024752b691ac2dcb2ad378d72a2e3084ce83b79", "rev": "78495ade242ad155942c2e33e3930e4a05963f13",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1024,15 +717,17 @@
"url-eater": { "url-eater": {
"inputs": { "inputs": {
"naersk": "naersk_4", "naersk": "naersk_4",
"nixpkgs": "nixpkgs_13", "nixpkgs": [
"nixpkgs-unstable"
],
"utils": "utils_4" "utils": "utils_4"
}, },
"locked": { "locked": {
"lastModified": 1685257355, "lastModified": 1691162641,
"narHash": "sha256-1q9iFtbh5fk2kadX4UYyLZcr5zJJHhxRMmCPHsH3Pn0=", "narHash": "sha256-j2LTtFVXtVhuwtp0ETYLD8Ra9izW4BiW2k+ttGh2Vag=",
"owner": "AgathaSorceress", "owner": "AgathaSorceress",
"repo": "url-eater", "repo": "url-eater",
"rev": "9f042508ee76b6920923c97ab39318e7075fde0e", "rev": "605b5f5388e6f31c7c5306a21f8a8c5ac4b15096",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1046,11 +741,11 @@
"systems": "systems" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1681037374, "lastModified": 1692799911,
"narHash": "sha256-XL6X3VGbEFJZDUouv2xpKg2Aljzu/etPLv5e1FPt1q0=", "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "033b9f258ca96a10e543d4442071f614dc3f8412", "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1130,7 +825,7 @@
}, },
"vampysite": { "vampysite": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_14", "nixpkgs": "nixpkgs_7",
"utils": "utils_5" "utils": "utils_5"
}, },
"locked": { "locked": {

View File

@ -3,6 +3,8 @@
nixpkgs.url = "nixpkgs/nixos-23.05"; nixpkgs.url = "nixpkgs/nixos-23.05";
nixpkgs-unstable.url = "nixpkgs/nixpkgs-unstable"; nixpkgs-unstable.url = "nixpkgs/nixpkgs-unstable";
vampysite.url = "git+https://git.lain.faith/sorceress/vampysite";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-23.05"; url = "github:nix-community/home-manager/release-23.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -13,26 +15,67 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
url-eater.url = "github:AgathaSorceress/url-eater"; url-eater = {
url = "github:AgathaSorceress/url-eater";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
colorpickle.url = "github:AgathaSorceress/colorpickle"; colorpickle = {
url = "github:AgathaSorceress/colorpickle";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
matrix-ril100.url = "git+https://git.lain.faith/sorceress/matrix-ril100"; matrix-ril100 = {
url = "git+https://git.lain.faith/sorceress/matrix-ril100";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
# Latest colmena + prettier loading icons # Latest colmena + prettier loading icons
colmena.url = "github:AgathaSorceress/colmena"; colmena = {
url = "github:AgathaSorceress/colmena";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
frq-friend.url = "git+https://git.xenua.me/xenua/fedi-frq-friend"; frq-friend = {
vampysite.url = "git+https://git.lain.faith/sorceress/vampysite"; url = "git+https://git.xenua.me/xenua/fedi-frq-friend";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
spicetify-nix.url = "github:the-argus/spicetify-nix"; spicetify-nix = {
url = "github:the-argus/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
helix.url = "github:helix-editor/helix"; helix = {
url = "github:helix-editor/helix";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
}; };
outputs = { nixpkgs, nixpkgs-unstable, home-manager, mms, helix, url-eater outputs = { nixpkgs, nixpkgs-unstable, home-manager, mms, helix, url-eater
, colorpickle, matrix-ril100, frq-friend, colmena, vampysite, spicetify-nix , colorpickle, matrix-ril100, frq-friend, colmena, vampysite, spicetify-nix
, ... }: { , ... }: {
colmena = { colmena = let
mkDesktop = hostname: {
imports = [
./common
./hosts/${hostname}/configuration.nix
./common/options.nix
(import "${home-manager}/nixos")
url-eater.nixosModule
colorpickle.nixosModules.default
spicetify-nix.nixosModule
];
deployment = {
targetUser = "root";
targetHost = hostname;
tags = [ "home" ];
allowLocalDeployment = true;
};
};
in {
network = { network = {
description = "Agatha's Nix Infra"; description = "Agatha's Nix Infra";
@ -40,7 +83,15 @@
system = "x86_64-linux"; system = "x86_64-linux";
overlays = [ overlays = [
(final: prev: { (final: prev: {
helix = helix.packages.${final.system}.default; helix = let helix-pkgs = helix.packages.${final.system};
in helix-pkgs.helix.passthru.wrapper
(helix-pkgs.helix-unwrapped.overrideAttrs {
preInstall = ''
substituteInPlace contrib/Helix.desktop \
--replace "Exec=hx %F" "Exec=kitty hx %F" \
--replace "Terminal=true" "Terminal=false"
'';
});
colorpickle = colorpickle.packages.${final.system}.default; colorpickle = colorpickle.packages.${final.system}.default;
frq-friend = frq-friend.defaultPackage.${final.system}; frq-friend = frq-friend.defaultPackage.${final.system};
vampysite = vampysite.packages.${final.system}.default; vampysite = vampysite.packages.${final.system}.default;
@ -91,26 +142,8 @@
}; };
}; };
ritual = { ritual = mkDesktop "ritual";
imports = [ tears = mkDesktop "tears";
./common
./hosts/ritual/configuration.nix
./common/options.nix
(import "${home-manager}/nixos")
url-eater.nixosModule
colorpickle.nixosModules.default
spicetify-nix.nixosModule
];
deployment = {
targetUser = "root";
targetHost = "ritual";
tags = [ "home" ];
allowLocalDeployment = true;
};
};
}; };
devShells."x86_64-linux".default = devShells."x86_64-linux".default =
let pkgs = import nixpkgs { system = "x86_64-linux"; }; let pkgs = import nixpkgs { system = "x86_64-linux"; };

View File

@ -6,15 +6,6 @@
../../common/home_manager/common.nix ../../common/home_manager/common.nix
]; ];
nixpkgs.overlays = [
(final: prev: {
pads = final.callPackage ../../common/pkgs/pads.nix { };
bspm = final.callPackage ../../common/pkgs/bspm.nix { };
polybar-spotify =
final.callPackage ../../common/pkgs/polybar-spotify.nix { };
})
];
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
@ -56,6 +47,28 @@
# Don't suspend when closed and plugged into power # Don't suspend when closed and plugged into power
services.logind.lidSwitchExternalPower = "lock"; services.logind.lidSwitchExternalPower = "lock";
home-manager.users.agatha = {
xsession.windowManager.bspwm = {
monitors = { eDP-1 = [ "I" "II" "III" "IV" "V" "VI" "VII" "VIII" ]; };
rules = {
"Element".desktop = "II";
"TelegramDesktop".desktop = "III";
"Spotify".desktop = "IV";
"Geary".desktop = "V";
"firefox" = {
desktop = "I";
state = "tiled";
follow = false;
};
};
};
services.polybar = {
script = "polybar right &";
settings."bar/right".monitor = "\${env:MONITOR:eDP-1}";
};
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View File

@ -0,0 +1,89 @@
{
imports = [
./hardware-configuration.nix
../../common/fragments/graphical
../../common/fragments/yubikey.nix
../../common/home_manager/common.nix
];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.consoleMode = "max";
boot.loader.systemd-boot.configurationLimit = 3;
# Setup keyfile
boot.initrd.secrets = { "/crypto_keyfile.bin" = null; };
networking.hostName = "tears";
# Enable networking
networking.networkmanager.enable = true;
# Enable the OpenSSH daemon.
services.openssh = {
enable = true;
banner = ''
Hello mistress ^,,^
'';
settings.PasswordAuthentication = false;
};
virtualisation = {
podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
};
oci-containers = { backend = "podman"; };
};
hardware.bluetooth = {
enable = true;
settings = { General = { Disable = "Headset"; }; };
};
home-manager.users.agatha = {
xsession.windowManager.bspwm = {
monitors = {
DP-1 = [ "I" "II" "III" "IV" "V" ];
HDMI-1 = [ "VI" "VII" "VIII" "IX" "X" ];
};
extraConfigEarly =
"xrandr --output HDMI-1 --mode 1920x1080 --rate 144 --dpi 92 --output DP-1 --mode 1920x1080 --rate 144 --dpi 92 --left-of HDMI-1";
rules = {
"Element".desktop = "I";
"TelegramDesktop".desktop = "II";
"Spotify".desktop = "III";
"Geary".desktop = "IV";
"firefox" = {
desktop = "VI";
state = "tiled";
follow = false;
};
};
};
services.polybar = {
script = ''
polybar left &
polybar right &'';
settings."bar/right" = {
monitor = "\${env:MONITOR:HDMI-1}";
modules.right =
"filesystem battery pulseaudio xkeyboard memory cpu powermenu";
};
settings."bar/left".monitor = "\${env:MONITOR:DP-1}";
};
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment?
}

View File

@ -0,0 +1,56 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules =
[ "thunderbolt" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.supportedFilesystems = [ "ntfs" ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/eb110ab2-7883-4e24-84f8-2a3983059cf3";
fsType = "btrfs";
options = [ "subvol=@" ];
};
boot.initrd.luks.devices."luks-d79d75f3-5560-427a-b79d-78a6cabbcb88".device =
"/dev/disk/by-uuid/d79d75f3-5560-427a-b79d-78a6cabbcb88";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/B520-5020";
fsType = "vfat";
};
boot.initrd.luks.devices.awoobackups.device =
"/dev/disk/by-uuid/08fb0554-9599-4085-bd13-285b634c5de5";
fileSystems."/mnt/hdd" = {
device = "/dev/mapper/awoobackups";
fsType = "btrfs";
};
swapDevices = [{
device = "/var/lib/swapfile";
size = 8 * 1024;
}];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
}