mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-06-16 01:55:13 -05:00
feat: added other user themes
This commit is contained in:
parent
6cdbfedc93
commit
1635b0c845
40 changed files with 593 additions and 210 deletions
|
@ -93,7 +93,7 @@ let
|
||||||
|
|
||||||
themesSubmodule = lib.types.submodule {
|
themesSubmodule = lib.types.submodule {
|
||||||
options = {
|
options = {
|
||||||
currentThemes = genOptions stringType "theme";
|
currentTheme = genOptions stringType "theme";
|
||||||
fonts = {
|
fonts = {
|
||||||
names = genOptions stringType "name";
|
names = genOptions stringType "name";
|
||||||
sizes = {
|
sizes = {
|
||||||
|
|
19
config/devices/config/bartholomew.nix
Executable file
19
config/devices/config/bartholomew.nix
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
{ devicesFunctions }:
|
||||||
|
let
|
||||||
|
inherit (devicesFunctions)
|
||||||
|
ownerExclusiveReadWriteMask
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
label = "Bartholomew";
|
||||||
|
name = "bartholomew";
|
||||||
|
sync = {
|
||||||
|
address0 = "";
|
||||||
|
};
|
||||||
|
ip = {
|
||||||
|
address0 = "192.168.50.42";
|
||||||
|
};
|
||||||
|
boot = {
|
||||||
|
options = ownerExclusiveReadWriteMask;
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
let
|
let
|
||||||
currentTheme0 = catppuccin-mocha;
|
currentTheme0 = catppuccin-mocha; # User0 Theme
|
||||||
currentTheme1 = catppuccin-macchiato;
|
currentTheme1 = catppuccin-mocha; # User1 Theme
|
||||||
|
currentTheme2 = catppuccin-mocha; # User2 Theme
|
||||||
|
|
||||||
brogrammer = "brogrammer";
|
brogrammer = "brogrammer";
|
||||||
catppuccin-frappe = "catppuccin-frappe";
|
catppuccin-frappe = "catppuccin-frappe";
|
||||||
|
@ -23,8 +24,10 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
themes = {
|
themes = {
|
||||||
currentThemes = {
|
currentTheme = {
|
||||||
theme0 = currentTheme0;
|
theme0 = currentTheme0; # User0 Theme
|
||||||
|
theme1 = currentTheme1; # User1 Theme
|
||||||
|
theme2 = currentTheme2; # User2 Theme
|
||||||
};
|
};
|
||||||
cursor = {
|
cursor = {
|
||||||
name = "";
|
name = "";
|
||||||
|
|
60
flake.lock
generated
60
flake.lock
generated
|
@ -20,11 +20,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737636397,
|
"lastModified": 1738183445,
|
||||||
"narHash": "sha256-F5MbBj3QVorycVSFE9qjuOTLtIQBqt2VWbXa0uwzm98=",
|
"narHash": "sha256-C1He3N1SA8D2u+TSlldbA9wiYwDvXI4GxX3zKaeD7qU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "7fe006981fae53e931f513026fc754e322f13145",
|
"rev": "48a000cf35dd10bfeb231152735aebbe875f4b74",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -410,11 +410,11 @@
|
||||||
"zig": "zig"
|
"zig": "zig"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738076396,
|
"lastModified": 1738275804,
|
||||||
"narHash": "sha256-EHGwh2do2JEcYHxaXBq1H7z/S2FkbHEpnNWhvgAmpJ8=",
|
"narHash": "sha256-n9cSCLlWjc8Bc5QyZYLo5+c6MfTZjgDpUGx/FGxBiY8=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "603639ad44e82afbcd8cdb01d7050abf7c538e9b",
|
"rev": "c5508e7d1922842ecd3160ea73b97da1282168b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -520,11 +520,11 @@
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738073973,
|
"lastModified": 1738284694,
|
||||||
"narHash": "sha256-+Bjgq2LuCrFQ8RA/25dWSAguFLH53TxoQZWuX7fb4gc=",
|
"narHash": "sha256-vLDweuBMu8fOyo9YMiV/1p9gxH5/OVm8zKRkGpbcuUA=",
|
||||||
"owner": "helix-editor",
|
"owner": "helix-editor",
|
||||||
"repo": "helix",
|
"repo": "helix",
|
||||||
"rev": "6049f2035be3e218da327b51d8e4bfd36242dd43",
|
"rev": "025719c1d82fd32a82d8d8a4a138842ed92480c1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -567,11 +567,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737968762,
|
"lastModified": 1738275749,
|
||||||
"narHash": "sha256-xiPARGKwocaMtv+U/rgi+h2g56CZZEmrcl7ldRaslq8=",
|
"narHash": "sha256-PM+cGduJ05EZ+YXulqAwUFjvfKpPmW080mcuN6R1POw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "e1ae908bcc30af792b0bb0a52e53b03d2577255e",
|
"rev": "a8159195bfaef3c64df75d3b1e6a68d49d392be9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -596,11 +596,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737634937,
|
"lastModified": 1738178255,
|
||||||
"narHash": "sha256-Ffw4ujFpi++6pPHe+gCBOfDgAoNlzVPZN6MReC1beu8=",
|
"narHash": "sha256-+D6Nu2ewXbMTFzx/Q4jDOo+LAOUPr0cxQJg5k33daIE=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "9c5dd1f7c825ee47f72727ad0a4e16ca46a2688e",
|
"rev": "dcadd3398abe146d60c67e0d9ee6e27b301cae82",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -625,11 +625,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737985436,
|
"lastModified": 1738018829,
|
||||||
"narHash": "sha256-zx8FdI4zr2GhNyD1YGAqa2ymodAObTSAdwuWwVucewo=",
|
"narHash": "sha256-5Ol5iahMlELx3lWuChyZsqqLk6sP6aqaJCJFw92OZGo=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprgraphics",
|
"repo": "hyprgraphics",
|
||||||
"rev": "23783b96036f5506fdaf8b2250a1ef849d57f0d3",
|
"rev": "12cd7034e441a5ebfdef1a090c0788413b4a635b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -681,11 +681,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738107811,
|
"lastModified": 1738273002,
|
||||||
"narHash": "sha256-+57jB0fv53OmAQ8QpK3eiRXfypBfKJtfdepRusNX+DM=",
|
"narHash": "sha256-R1CWBSEHZhykHo3/H3M4U7zLv1QaS87JCTHas38TNiU=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "3d1dd6b5c7b90e513e86c1ad27c6c01a5c69e4f8",
|
"rev": "ef03f6911694413b1b06aba727ad9ab089a511f7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1096,11 +1096,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737885589,
|
"lastModified": 1738142207,
|
||||||
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
|
"narHash": "sha256-NGqpVVxNAHwIicXpgaVqJEJWeyqzoQJ9oc8lnK9+WC4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
|
"rev": "9d3ae807ebd2981d593cddd0080856873139aa40",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1135,11 +1135,11 @@
|
||||||
"treefmt-nix": "treefmt-nix_2"
|
"treefmt-nix": "treefmt-nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738121352,
|
"lastModified": 1738282823,
|
||||||
"narHash": "sha256-/zTcxOuUlorG5xuVqZM74AEqyoUuvAGFgf7ZRsY0fB0=",
|
"narHash": "sha256-F9Npwxwy6xoTLKYcWFeTsk7MTVKxK9IeT1lsSSCjExg=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "1c718529e3d4d262ad378d25faa009019d9f4a1a",
|
"rev": "6afe9691509edbfdcd9b2f4a703c6ed5c588255e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1704,11 +1704,11 @@
|
||||||
"rust-overlay": "rust-overlay_3"
|
"rust-overlay": "rust-overlay_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738010151,
|
"lastModified": 1738174915,
|
||||||
"narHash": "sha256-9kcGpfbl98SUrQT9Dj0TSj334LXSviGP1SI4P76QFYo=",
|
"narHash": "sha256-oN18XGFcTwk58F8REqx3DTeCD+z3LAanWVznZ0P3ESc=",
|
||||||
"owner": "sxyazi",
|
"owner": "sxyazi",
|
||||||
"repo": "yazi",
|
"repo": "yazi",
|
||||||
"rev": "c061397a09bb08e293317f5b93dc870d453af9ef",
|
"rev": "b6cb1fa8d3fb3fafea7a190f23acaeb44333cfe9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
18
flake.nix
18
flake.nix
|
@ -79,10 +79,11 @@
|
||||||
./systems/desktop
|
./systems/desktop
|
||||||
./profiles/user0
|
./profiles/user0
|
||||||
./profiles/user1
|
./profiles/user1
|
||||||
config.nixosModules.personal
|
|
||||||
config.nixosModules.desktop
|
config.nixosModules.desktop
|
||||||
config.nixosModules.hyprland
|
config.nixosModules.hyprland
|
||||||
|
config.nixosModules.personal
|
||||||
config.nixosModules.shared
|
config.nixosModules.shared
|
||||||
|
config.nixosModules.sops
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
inputs.nur.modules.nixos.default
|
inputs.nur.modules.nixos.default
|
||||||
|
@ -91,9 +92,11 @@
|
||||||
fallaryn = inputs.self.lib.mkLinuxSystem [
|
fallaryn = inputs.self.lib.mkLinuxSystem [
|
||||||
./systems/fallaryn
|
./systems/fallaryn
|
||||||
./profiles/user2
|
./profiles/user2
|
||||||
config.nixosModules.personal
|
|
||||||
config.nixosModules.fallaryn
|
config.nixosModules.fallaryn
|
||||||
|
config.nixosModules.personal
|
||||||
|
config.nixosModules.plasma
|
||||||
config.nixosModules.shared
|
config.nixosModules.shared
|
||||||
|
config.nixosModules.sops
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
@ -104,16 +107,27 @@
|
||||||
./profiles/user1
|
./profiles/user1
|
||||||
config.nixosModules.personal
|
config.nixosModules.personal
|
||||||
config.nixosModules.shared
|
config.nixosModules.shared
|
||||||
|
config.nixosModules.sops
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
inputs.nur.modules.nixos.default
|
inputs.nur.modules.nixos.default
|
||||||
inputs.sops-nix.nixosModules.sops
|
inputs.sops-nix.nixosModules.sops
|
||||||
];
|
];
|
||||||
|
bartholomew = inputs.self.lib.mkLinuxSystem [
|
||||||
|
./systems/bartholomew
|
||||||
|
./profiles/user1
|
||||||
|
config.nixosModules.gnome
|
||||||
|
config.nixosModules.personal
|
||||||
|
config.nixosModules.shared
|
||||||
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
inputs.lix-module.nixosModules.default
|
||||||
|
];
|
||||||
server = inputs.self.lib.mkLinuxSystem [
|
server = inputs.self.lib.mkLinuxSystem [
|
||||||
./systems/server
|
./systems/server
|
||||||
./profiles/user0
|
./profiles/user0
|
||||||
config.nixosModules.server
|
config.nixosModules.server
|
||||||
config.nixosModules.shared
|
config.nixosModules.shared
|
||||||
|
config.nixosModules.sops
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.lix-module.nixosModules.default
|
inputs.lix-module.nixosModules.default
|
||||||
inputs.ngipkgs.nixosModules."services.peertube"
|
inputs.ngipkgs.nixosModules."services.peertube"
|
||||||
|
|
|
@ -27,6 +27,7 @@ in
|
||||||
flake.homeModules =
|
flake.homeModules =
|
||||||
let
|
let
|
||||||
inherit (config.machines.devices)
|
inherit (config.machines.devices)
|
||||||
|
bartholomew
|
||||||
desktop
|
desktop
|
||||||
fallaryn
|
fallaryn
|
||||||
laptop
|
laptop
|
||||||
|
@ -142,6 +143,30 @@ in
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"${bartholomew.name}-${user1}" = {
|
||||||
|
imports = builtins.attrValues {
|
||||||
|
inherit (modules)
|
||||||
|
cli
|
||||||
|
catppuccin
|
||||||
|
gtk
|
||||||
|
brave
|
||||||
|
ghostty
|
||||||
|
zed
|
||||||
|
gaming
|
||||||
|
spotify
|
||||||
|
docs
|
||||||
|
mpv
|
||||||
|
jellyfin
|
||||||
|
kolourPaint
|
||||||
|
discord
|
||||||
|
signal
|
||||||
|
scrcpy
|
||||||
|
bitwarden
|
||||||
|
emote
|
||||||
|
desktop
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
"${server.name}-${user0}" = {
|
"${server.name}-${user0}" = {
|
||||||
imports = builtins.attrValues {
|
imports = builtins.attrValues {
|
||||||
inherit (modules)
|
inherit (modules)
|
||||||
|
|
|
@ -1,15 +1,27 @@
|
||||||
{
|
{
|
||||||
flake,
|
flake,
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
|
|
||||||
makeColor = c: "#" + c;
|
makeColor = c: "#" + c;
|
||||||
makeStyle = bg: fg: "bg:" + bg + " fg:" + fg + " bold";
|
makeStyle = bg: fg: "bg:" + bg + " fg:" + fg + " bold";
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
{
|
{
|
||||||
flake,
|
flake,
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) {
|
settingsPath = import (configPath + /settings.nix) { inherit config flake lib; };
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
lib
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
|
|
|
@ -1,11 +1,29 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
flake,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes)
|
||||||
currentThemes
|
currentTheme
|
||||||
palettes
|
palettes
|
||||||
;
|
;
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
colors = {
|
colors = {
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
flake,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
programs.bottom =
|
programs.bottom =
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) {
|
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,11 +1,26 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
accents = [
|
accents = [
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
flake,
|
flake,
|
||||||
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
|
@ -11,7 +12,7 @@ let
|
||||||
languagesPath = import (configPath + /languages);
|
languagesPath = import (configPath + /languages);
|
||||||
lspPath = import (configPath + /lsp);
|
lspPath = import (configPath + /lsp);
|
||||||
terminalPath = import (configPath + /terminal) { inherit flake; };
|
terminalPath = import (configPath + /terminal) { inherit flake; };
|
||||||
experimentalPath = import (configPath + /theme) { inherit flake; };
|
experimentalPath = import (configPath + /theme) { inherit config flake; };
|
||||||
gitPath = import (configPath + /git);
|
gitPath = import (configPath + /git);
|
||||||
miscPath = import (configPath + /misc) { inherit lib pkgs; };
|
miscPath = import (configPath + /misc) { inherit lib pkgs; };
|
||||||
in
|
in
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
flake,
|
flake,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -8,7 +9,14 @@ let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
extensionsPath = import (configPath + /extensions);
|
extensionsPath = import (configPath + /extensions);
|
||||||
userKeymapsPath = import (configPath + /userKeymaps);
|
userKeymapsPath = import (configPath + /userKeymaps);
|
||||||
userSettingsPath = import (configPath + /userSettings) { inherit flake lib pkgs; };
|
userSettingsPath = import (configPath + /userSettings) {
|
||||||
|
inherit
|
||||||
|
config
|
||||||
|
flake
|
||||||
|
lib
|
||||||
|
pkgs
|
||||||
|
;
|
||||||
|
};
|
||||||
extraPackagesPath = import (configPath + /extraPackages) { inherit pkgs; };
|
extraPackagesPath = import (configPath + /extraPackages) { inherit pkgs; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,11 +1,26 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
flake,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
theme = {
|
theme = {
|
||||||
|
|
|
@ -1,21 +1,13 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
flake,
|
flake,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) {
|
settingsPath = import (configPath + /settings.nix) { inherit flake pkgs; };
|
||||||
inherit
|
themesPath = import (configPath + /themes.nix) { inherit config flake; };
|
||||||
flake
|
|
||||||
pkgs
|
|
||||||
;
|
|
||||||
};
|
|
||||||
themesPath = import (configPath + /themes.nix) {
|
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.ghostty = {
|
programs.ghostty = {
|
||||||
|
|
|
@ -1,13 +1,31 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
flake,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes)
|
||||||
currentThemes
|
currentTheme
|
||||||
palettes
|
palettes
|
||||||
fonts
|
fonts
|
||||||
;
|
;
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
|
|
||||||
makeColor = c: "#" + c;
|
makeColor = c: "#" + c;
|
||||||
in
|
in
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) {
|
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.dunst = {
|
services.dunst = {
|
||||||
|
|
|
@ -1,12 +1,27 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
gaps_in = 5;
|
gaps_in = 5;
|
||||||
|
|
|
@ -20,7 +20,7 @@ let
|
||||||
decoration = import (configPath + /decoration.nix);
|
decoration = import (configPath + /decoration.nix);
|
||||||
dwindle = import (configPath + /dwindle.nix);
|
dwindle = import (configPath + /dwindle.nix);
|
||||||
exec-once = import (configPath + /exec-once.nix) { inherit flake; };
|
exec-once = import (configPath + /exec-once.nix) { inherit flake; };
|
||||||
general = import (configPath + /general.nix) { inherit flake; };
|
general = import (configPath + /general.nix) { inherit config flake; };
|
||||||
input = import (configPath + /input.nix);
|
input = import (configPath + /input.nix);
|
||||||
misc = import (configPath + /misc.nix);
|
misc = import (configPath + /misc.nix);
|
||||||
windowrulev2 = import (configPath + /windowrulev2.nix);
|
windowrulev2 = import (configPath + /windowrulev2.nix);
|
||||||
|
|
|
@ -1,12 +1,30 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes)
|
||||||
currentThemes
|
currentTheme
|
||||||
palettes
|
palettes
|
||||||
fonts
|
fonts
|
||||||
;
|
;
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
font = fonts.names.name0;
|
font = fonts.names.name0;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) {
|
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.swaylock = {
|
programs.swaylock = {
|
||||||
|
|
|
@ -1,12 +1,26 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes fonts;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
fonts
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
font-size = fonts.sizes.desktop.size0;
|
font-size = fonts.sizes.desktop.size0;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
config,
|
||||||
flake,
|
flake,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
|
|
||||||
settingsPath = import (configPath + /settings.nix) { inherit flake; };
|
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.tofi = {
|
programs.tofi = {
|
||||||
|
|
|
@ -1,13 +1,27 @@
|
||||||
{ flake, ... }:
|
{
|
||||||
|
config,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
inherit (flake.config.aesthetics.themes)
|
inherit (flake.config.aesthetics.themes) currentTheme palettes fonts;
|
||||||
currentThemes
|
|
||||||
palettes
|
|
||||||
fonts
|
|
||||||
;
|
|
||||||
|
|
||||||
el = palettes.${currentThemes.theme0}.colours;
|
inherit (flake.config.people) user0 user1 user2;
|
||||||
|
|
||||||
|
user = config.home.username;
|
||||||
|
|
||||||
|
themeLogic =
|
||||||
|
if user == user0 then
|
||||||
|
currentTheme.theme0
|
||||||
|
else if user == user1 then
|
||||||
|
currentTheme.theme1
|
||||||
|
else if user == user2 then
|
||||||
|
currentTheme.theme2
|
||||||
|
else
|
||||||
|
currentTheme.theme0;
|
||||||
|
|
||||||
|
el = palettes.${themeLogic}.colours;
|
||||||
|
|
||||||
custom = {
|
custom = {
|
||||||
font = fonts.names.name0;
|
font = fonts.names.name0;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
flake,
|
flake,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
|
@ -6,11 +7,7 @@
|
||||||
let
|
let
|
||||||
configPath = ./config;
|
configPath = ./config;
|
||||||
settingsPath = import (configPath + /settings.nix) { inherit flake; };
|
settingsPath = import (configPath + /settings.nix) { inherit flake; };
|
||||||
stylePath = import (configPath + /style.nix) {
|
stylePath = import (configPath + /style.nix) { inherit config flake; };
|
||||||
inherit
|
|
||||||
flake
|
|
||||||
;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
|
|
|
@ -68,12 +68,27 @@ in
|
||||||
imports = builtins.attrValues {
|
imports = builtins.attrValues {
|
||||||
inherit (modules)
|
inherit (modules)
|
||||||
tablet
|
tablet
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
plasma = {
|
||||||
|
imports = builtins.attrValues {
|
||||||
|
inherit (modules)
|
||||||
plasma
|
plasma
|
||||||
sddm
|
sddm
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
gnome = {
|
||||||
|
imports = builtins.attrValues {
|
||||||
|
inherit (modules)
|
||||||
|
gnome
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
imports = builtins.attrValues {
|
imports = builtins.attrValues {
|
||||||
inherit (modules)
|
inherit (modules)
|
||||||
|
@ -90,6 +105,14 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sops = {
|
||||||
|
imports = builtins.attrValues {
|
||||||
|
inherit (modules)
|
||||||
|
sops
|
||||||
|
;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
shared = {
|
shared = {
|
||||||
imports = builtins.attrValues {
|
imports = builtins.attrValues {
|
||||||
inherit (modules)
|
inherit (modules)
|
||||||
|
@ -102,7 +125,6 @@ in
|
||||||
nh
|
nh
|
||||||
nix
|
nix
|
||||||
rsyncd
|
rsyncd
|
||||||
sops
|
|
||||||
ssh
|
ssh
|
||||||
system
|
system
|
||||||
xserver
|
xserver
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
let
|
let
|
||||||
inherit (flake.config.people)
|
inherit (flake.config.people)
|
||||||
user0
|
user0
|
||||||
|
user1
|
||||||
user2
|
user2
|
||||||
;
|
;
|
||||||
inherit (flake.config.machines)
|
inherit (flake.config.machines)
|
||||||
|
@ -11,6 +12,7 @@ let
|
||||||
desktop = devices.desktop.name;
|
desktop = devices.desktop.name;
|
||||||
server = devices.server.name;
|
server = devices.server.name;
|
||||||
fallaryn = devices.fallaryn.name;
|
fallaryn = devices.fallaryn.name;
|
||||||
|
bartholomew = devices.bartholomew.name;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
security = {
|
security = {
|
||||||
|
@ -26,6 +28,8 @@ in
|
||||||
user0
|
user0
|
||||||
else if hostname == server then
|
else if hostname == server then
|
||||||
user0
|
user0
|
||||||
|
else if hostname == bartholomew then
|
||||||
|
user1
|
||||||
else if hostname == fallaryn then
|
else if hostname == fallaryn then
|
||||||
user2
|
user2
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{pkgs, ...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -15,8 +16,7 @@
|
||||||
gnome-online-accounts.enable = true;
|
gnome-online-accounts.enable = true;
|
||||||
};
|
};
|
||||||
udev.packages = builtins.attrValues {
|
udev.packages = builtins.attrValues {
|
||||||
inherit
|
inherit (pkgs)
|
||||||
(pkgs.gnome)
|
|
||||||
gnome-settings-daemon
|
gnome-settings-daemon
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
|
@ -27,8 +27,7 @@
|
||||||
# WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
# WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
||||||
};
|
};
|
||||||
gnome.excludePackages = builtins.attrValues {
|
gnome.excludePackages = builtins.attrValues {
|
||||||
inherit
|
inherit (pkgs)
|
||||||
(pkgs)
|
|
||||||
gnome-photos
|
gnome-photos
|
||||||
gnome-tour
|
gnome-tour
|
||||||
epiphany # web browser
|
epiphany # web browser
|
||||||
|
@ -38,19 +37,16 @@
|
||||||
totem # video player
|
totem # video player
|
||||||
yelp # help viewer
|
yelp # help viewer
|
||||||
gnome-calendar
|
gnome-calendar
|
||||||
;
|
|
||||||
inherit
|
|
||||||
(pkgs.gnome)
|
|
||||||
gnome-music
|
|
||||||
tali # poker game
|
|
||||||
iagno # go game
|
|
||||||
hitori # sudoku game
|
|
||||||
atomix # puzzle game
|
atomix # puzzle game
|
||||||
gnome-clocks
|
gnome-clocks
|
||||||
gnome-weather
|
gnome-weather
|
||||||
gnome-maps
|
gnome-maps
|
||||||
gnome-contacts
|
gnome-contacts
|
||||||
gnome-characters
|
gnome-characters
|
||||||
|
gnome-music
|
||||||
|
tali # poker game
|
||||||
|
iagno # go game
|
||||||
|
hitori # sudoku game
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -11,6 +11,7 @@ let
|
||||||
desktop = devices.desktop.name;
|
desktop = devices.desktop.name;
|
||||||
server = devices.server.name;
|
server = devices.server.name;
|
||||||
fallaryn = devices.fallaryn.name;
|
fallaryn = devices.fallaryn.name;
|
||||||
|
bartholomew = devices.bartholomew.name;
|
||||||
|
|
||||||
userLogic =
|
userLogic =
|
||||||
if hostname == desktop then
|
if hostname == desktop then
|
||||||
|
@ -30,7 +31,11 @@ in
|
||||||
keyFile = "/var/lib/sops-nix/key.txt";
|
keyFile = "/var/lib/sops-nix/key.txt";
|
||||||
generateKey = false;
|
generateKey = false;
|
||||||
};
|
};
|
||||||
secrets = {
|
secrets =
|
||||||
|
if hostname == bartholomew then
|
||||||
|
{ }
|
||||||
|
else
|
||||||
|
{
|
||||||
"ssh/private" = {
|
"ssh/private" = {
|
||||||
path = "/home/${userLogic}/.ssh/id_ed25519";
|
path = "/home/${userLogic}/.ssh/id_ed25519";
|
||||||
owner = userLogic;
|
owner = userLogic;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
let
|
let
|
||||||
inherit (flake.config.people)
|
inherit (flake.config.people)
|
||||||
user0
|
user0
|
||||||
|
user1
|
||||||
user2
|
user2
|
||||||
;
|
;
|
||||||
inherit (flake.config.people.users.${userLogic})
|
inherit (flake.config.people.users.${userLogic})
|
||||||
|
@ -18,6 +19,7 @@ let
|
||||||
desktop = devices.desktop.name;
|
desktop = devices.desktop.name;
|
||||||
server = devices.server.name;
|
server = devices.server.name;
|
||||||
fallaryn = devices.fallaryn.name;
|
fallaryn = devices.fallaryn.name;
|
||||||
|
bartholomew = devices.bartholomew.name;
|
||||||
|
|
||||||
userLogic =
|
userLogic =
|
||||||
if hostname == desktop then
|
if hostname == desktop then
|
||||||
|
@ -30,7 +32,13 @@ let
|
||||||
"";
|
"";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
users.users.${userLogic} = {
|
users.users =
|
||||||
|
if hostname == bartholomew then
|
||||||
|
{ }
|
||||||
|
else
|
||||||
|
{
|
||||||
|
${userLogic} = {
|
||||||
openssh.authorizedKeys.keys = sshKeys;
|
openssh.authorizedKeys.keys = sshKeys;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ in
|
||||||
users = {
|
users = {
|
||||||
users.${user0} = {
|
users.${user0} = {
|
||||||
description = name;
|
description = name;
|
||||||
|
name = user0;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
|
|
@ -15,6 +15,7 @@ in
|
||||||
users = {
|
users = {
|
||||||
users.${user1} = {
|
users.${user1} = {
|
||||||
description = name;
|
description = name;
|
||||||
|
name = user1;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
|
|
@ -16,6 +16,7 @@ in
|
||||||
users = {
|
users = {
|
||||||
users.${user2} = {
|
users.${user2} = {
|
||||||
description = name;
|
description = name;
|
||||||
|
name = user2;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
shell = pkgs.nushell;
|
shell = pkgs.nushell;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
|
|
44
systems/bartholomew/config/boot.nix
Executable file
44
systems/bartholomew/config/boot.nix
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
extraModulePackages = [
|
||||||
|
config.boot.kernelPackages.v4l2loopback.out
|
||||||
|
];
|
||||||
|
supportedFilesystems = [
|
||||||
|
"ntfs"
|
||||||
|
];
|
||||||
|
initrd = {
|
||||||
|
network.openvpn.enable = true;
|
||||||
|
availableKernelModules = [
|
||||||
|
"nvme"
|
||||||
|
"ahci"
|
||||||
|
"xhci_pci"
|
||||||
|
"usb_storage"
|
||||||
|
"usbhid"
|
||||||
|
"sd_mod"
|
||||||
|
];
|
||||||
|
kernelModules = [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
kernelModules = [
|
||||||
|
"kvm-amd"
|
||||||
|
"vfio-pci"
|
||||||
|
"v4l2loopback"
|
||||||
|
];
|
||||||
|
|
||||||
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
efi = {
|
||||||
|
canTouchEfiVariables = true;
|
||||||
|
efiSysMountPoint = "/boot";
|
||||||
|
};
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
30
systems/bartholomew/config/filesystem.nix
Executable file
30
systems/bartholomew/config/filesystem.nix
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
flake,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (flake.config.people) user1;
|
||||||
|
inherit (flake.config.machines.devices) bartholomew;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/0457d426-f166-4f35-b77b-93321dca2581";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/1703-D452";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = bartholomew.boot.options;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/bedf4922-fa86-403a-846c-7d900dfb9086"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"Z ${config.home-manager.users.${user1}.home.homeDirectory} 0755 ${user1} users -"
|
||||||
|
];
|
||||||
|
}
|
12
systems/bartholomew/config/graphics.nix
Executable file
12
systems/bartholomew/config/graphics.nix
Executable file
|
@ -0,0 +1,12 @@
|
||||||
|
{
|
||||||
|
hardware = {
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = [ ];
|
||||||
|
extraPackages32 = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
boot.initrd.kernelModules = [
|
||||||
|
];
|
||||||
|
services.xserver.videoDrivers = [ "modesetting" ];
|
||||||
|
}
|
17
systems/bartholomew/config/hardware.nix
Executable file
17
systems/bartholomew/config/hardware.nix
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
hardware = {
|
||||||
|
firmware = builtins.attrValues {
|
||||||
|
inherit (pkgs)
|
||||||
|
rtl8761b-firmware
|
||||||
|
;
|
||||||
|
};
|
||||||
|
enableAllFirmware = true;
|
||||||
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
};
|
||||||
|
}
|
35
systems/bartholomew/config/networking.nix
Executable file
35
systems/bartholomew/config/networking.nix
Executable file
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
flake,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
inherit (flake.config.machines.devices)
|
||||||
|
bartholomew
|
||||||
|
;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = bartholomew.name;
|
||||||
|
networkmanager.enable = true;
|
||||||
|
nftables.enable = true;
|
||||||
|
useDHCP = lib.mkDefault true;
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
avahi = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
nssmdns4 = true;
|
||||||
|
};
|
||||||
|
sshd.enable = true;
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings.PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
systems/bartholomew/default.nix
Executable file
17
systems/bartholomew/default.nix
Executable file
|
@ -0,0 +1,17 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
let
|
||||||
|
configPath = ./config;
|
||||||
|
|
||||||
|
desktopImports =
|
||||||
|
let
|
||||||
|
files = builtins.attrNames (builtins.readDir configPath);
|
||||||
|
in
|
||||||
|
map (name: configPath + "/${name}") (
|
||||||
|
builtins.filter (name: builtins.match ".*\\.nix$" name != null) files
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = desktopImports;
|
||||||
|
nixpkgs.hostPlatform = lib.mkForce "x86_64-linux";
|
||||||
|
system.stateVersion = lib.mkForce "24.05";
|
||||||
|
}
|
|
@ -2,27 +2,27 @@
|
||||||
flake,
|
flake,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
inherit
|
let
|
||||||
(flake.config.people)
|
inherit (flake.config.people)
|
||||||
user0
|
user0
|
||||||
user1
|
user1
|
||||||
;
|
;
|
||||||
inherit
|
inherit (flake.config.machines.devices)
|
||||||
(flake.config.machines.devices)
|
|
||||||
desktop
|
desktop
|
||||||
server
|
server
|
||||||
synology
|
synology
|
||||||
;
|
;
|
||||||
inherit
|
inherit (flake.config.services.instances)
|
||||||
(flake.config.services.instances)
|
|
||||||
samba
|
samba
|
||||||
;
|
;
|
||||||
|
|
||||||
synologySecrets = config.sops.secrets."network/synology".path;
|
synologySecrets = config.sops.secrets."network/synology".path;
|
||||||
serverSecrets = config.sops.secrets."network/server".path;
|
serverSecrets = config.sops.secrets."network/server".path;
|
||||||
in {
|
in
|
||||||
fileSystems = let
|
{
|
||||||
|
fileSystems =
|
||||||
|
let
|
||||||
synologyDrives = [
|
synologyDrives = [
|
||||||
"folder0"
|
"folder0"
|
||||||
"folder1"
|
"folder1"
|
||||||
|
@ -43,9 +43,7 @@ in {
|
||||||
value = {
|
value = {
|
||||||
device = synology.${synologyDrive}.device;
|
device = synology.${synologyDrive}.device;
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options =
|
options = synology.${synologyDrive}.options ++ [
|
||||||
synology.${synologyDrive}.options
|
|
||||||
++ [
|
|
||||||
"credentials=${synologySecrets}"
|
"credentials=${synologySecrets}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -65,9 +63,7 @@ in {
|
||||||
value = {
|
value = {
|
||||||
device = "${server.${sambaDrive}.device}/${samba.paths.path1}";
|
device = "${server.${sambaDrive}.device}/${samba.paths.path1}";
|
||||||
fsType = "cifs";
|
fsType = "cifs";
|
||||||
options =
|
options = server.${sambaDrive}.options ++ [
|
||||||
server.${sambaDrive}.options
|
|
||||||
++ [
|
|
||||||
"credentials=${serverSecrets}"
|
"credentials=${serverSecrets}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -89,7 +85,7 @@ in {
|
||||||
// (builtins.listToAttrs (map sambaMounts sambaDrives));
|
// (builtins.listToAttrs (map sambaMounts sambaDrives));
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{device = "/dev/disk/by-uuid/e3724d5e-9aba-4a32-9d89-c2117b1ed044";}
|
{ device = "/dev/disk/by-uuid/e3724d5e-9aba-4a32-9d89-c2117b1ed044"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue