Compare commits

...

5 Commits

Author SHA1 Message Date
Tom Alexander
facfd01661
Make zsh install conditional. 2025-01-23 21:55:22 -05:00
Tom Alexander
2ce4520cd6
Make zrepl a conditional install. 2025-01-23 21:52:50 -05:00
Tom Alexander
814769b3e9
Do not install waybar on neelix. 2025-01-23 21:43:08 -05:00
Tom Alexander
6424129da3
Do not install wasm role on neelix. 2025-01-23 21:41:08 -05:00
Tom Alexander
415edbad91
Do not install vscode on neelix. 2025-01-23 21:39:57 -05:00
7 changed files with 214 additions and 134 deletions

View File

@ -30,4 +30,6 @@
me.kodi.enable = true; me.kodi.enable = true;
me.lvfs.enable = true; me.lvfs.enable = true;
me.sound.enable = true; me.sound.enable = true;
me.zrepl.enable = true;
me.zsh.enable = true;
} }

View File

@ -54,4 +54,9 @@
me.sway.enable = true; me.sway.enable = true;
me.terraform.enable = true; me.terraform.enable = true;
me.vnc_client.enable = true; me.vnc_client.enable = true;
me.vscode.enable = true;
me.wasm.enable = true;
me.waybar.enable = true;
me.zrepl.enable = true;
me.zsh.enable = true;
} }

View File

@ -8,42 +8,55 @@
{ {
imports = [ ]; imports = [ ];
config = lib.mkIf config.me.graphical { options.me = {
allowedUnfree = [ vscode.enable = lib.mkOption {
"vscode" type = lib.types.bool;
"vscode-with-extensions" default = false;
"vscode-extension-ms-vscode-remote-remote-ssh" example = true;
]; description = "Whether we want to install vscode.";
};
environment.systemPackages = with pkgs; [
(vscode-with-extensions.override {
vscodeExtensions = with vscode-extensions; [
bbenoist.nix
ms-python.python
ms-azuretools.vscode-docker
ms-vscode-remote.remote-ssh
]
# ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
# {
# name = "remote-ssh-edit";
# publisher = "ms-vscode-remote";
# version = "0.47.2";
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
# }
# ]
;
})
];
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/Code/User/settings.json" = {
source = ./files/settings.json;
};
home.file.".config/Code/User/keybindings.json" = {
source = ./files/keybindings.json;
};
};
}; };
config = lib.mkIf config.me.vscode.enable (
lib.mkMerge [
(lib.mkIf config.me.graphical {
allowedUnfree = [
"vscode"
"vscode-with-extensions"
"vscode-extension-ms-vscode-remote-remote-ssh"
];
environment.systemPackages = with pkgs; [
(vscode-with-extensions.override {
vscodeExtensions = with vscode-extensions; [
bbenoist.nix
ms-python.python
ms-azuretools.vscode-docker
ms-vscode-remote.remote-ssh
]
# ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
# {
# name = "remote-ssh-edit";
# publisher = "ms-vscode-remote";
# version = "0.47.2";
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
# }
# ]
;
})
];
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".config/Code/User/settings.json" = {
source = ./files/settings.json;
};
home.file.".config/Code/User/keybindings.json" = {
source = ./files/keybindings.json;
};
};
})
]
);
} }

View File

@ -8,9 +8,24 @@
{ {
imports = [ ]; imports = [ ];
environment.systemPackages = with pkgs; [ options.me = {
wabt wasm.enable = lib.mkOption {
wasm-bindgen-cli type = lib.types.bool;
binaryen # for wasm-opt default = false;
]; example = true;
description = "Whether we want to install wasm.";
};
};
config = lib.mkIf config.me.wasm.enable (
lib.mkMerge [
{
environment.systemPackages = with pkgs; [
wabt
wasm-bindgen-cli
binaryen # for wasm-opt
];
}
]
);
} }

View File

@ -4,6 +4,7 @@
pkgs, pkgs,
... ...
}: }:
let let
waybar_sway_config = pkgs.writeTextFile { waybar_sway_config = pkgs.writeTextFile {
name = "waybar.conf"; name = "waybar.conf";
@ -79,38 +80,52 @@ in
{ {
imports = [ ]; imports = [ ];
environment.systemPackages = with pkgs; [ options.me = {
waybar waybar.enable = lib.mkOption {
waybar_available_memory type = lib.types.bool;
waybar_battery default = false;
waybar_clock example = true;
waybar_night_mode description = "Whether we want to install waybar.";
waybar_sound
waybar_temperature
python3 # for clock TODO python should not be in the system packages, maybe switch to a venv? ref https://nixos.wiki/wiki/Python
bc # for temperature and sound
jq # for memory, battery, sound, night mode, and temperature
upower # for battery
wlsunset # for night mode
];
me.swayIncludes = [
waybar_sway_config
];
services.upower.enable = true; # for battery
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file = {
".config/waybar/config" = {
source = ./files/waybar_config.json;
};
".config/waybar/style.css" = {
source = ./files/style.css;
};
};
}; };
};
config = lib.mkIf config.me.waybar.enable (
lib.mkMerge [
(lib.mkIf config.me.graphical {
environment.systemPackages = with pkgs; [
waybar
waybar_available_memory
waybar_battery
waybar_clock
waybar_night_mode
waybar_sound
waybar_temperature
python3 # for clock TODO python should not be in the system packages, maybe switch to a venv? ref https://nixos.wiki/wiki/Python
bc # for temperature and sound
jq # for memory, battery, sound, night mode, and temperature
upower # for battery
wlsunset # for night mode
];
me.swayIncludes = [
waybar_sway_config
];
services.upower.enable = true; # for battery
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file = {
".config/waybar/config" = {
source = ./files/waybar_config.json;
};
".config/waybar/style.css" = {
source = ./files/style.css;
};
};
};
})
]
);
} }

View File

@ -8,38 +8,53 @@
{ {
imports = [ ]; imports = [ ];
services.zrepl = { options.me = {
enable = true; zrepl.enable = lib.mkOption {
settings = { type = lib.types.bool;
jobs = [ default = false;
{ example = true;
name = "snapjob"; description = "Whether we want to install zrepl.";
type = "snap"; };
filesystems = { };
"zroot/linux/nix/persist<" = true;
"zroot/bridge<" = true; config = lib.mkIf config.me.zrepl.enable (
}; lib.mkMerge [
snapshotting = { {
type = "periodic"; services.zrepl = {
interval = "15m"; enable = true;
prefix = "zrepl_"; settings = {
}; jobs = [
pruning = {
keep = [
{ {
type = "grid"; name = "snapjob";
grid = "1x1h(keep=all) | 24x1h | 14x1d"; type = "snap";
regex = "^zrepl_.*"; filesystems = {
} "zroot/linux/nix/persist<" = true;
{ "zroot/bridge<" = true;
type = "regex"; };
negate = true; snapshotting = {
regex = "^zrepl_.*"; type = "periodic";
interval = "15m";
prefix = "zrepl_";
};
pruning = {
keep = [
{
type = "grid";
grid = "1x1h(keep=all) | 24x1h | 14x1d";
regex = "^zrepl_.*";
}
{
type = "regex";
negate = true;
regex = "^zrepl_.*";
}
];
};
} }
]; ];
}; };
} };
]; }
}; ]
}; );
} }

View File

@ -55,36 +55,51 @@ in
{ {
imports = [ ]; imports = [ ];
environment.systemPackages = with pkgs; [ options.me = {
zsh zsh.enable = lib.mkOption {
]; type = lib.types.bool;
default = false;
users.users.talexander.shell = pkgs.zsh; example = true;
environment.shells = with pkgs; [ zsh ]; description = "Whether we want to install zsh.";
programs.zsh = {
enable = true;
};
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".zshrc" = {
source = "${zshrc}";
};
};
environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) {
hideMounts = true;
users.talexander = {
directories = [
{
directory = ".histdb";
user = "talexander";
group = "talexander";
mode = "0700";
}
];
}; };
}; };
config = lib.mkIf config.me.zsh.enable (
lib.mkMerge [
{
environment.systemPackages = with pkgs; [
zsh
];
users.users.talexander.shell = pkgs.zsh;
environment.shells = with pkgs; [ zsh ];
programs.zsh = {
enable = true;
};
home-manager.users.talexander =
{ pkgs, ... }:
{
home.file.".zshrc" = {
source = "${zshrc}";
};
};
environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) {
hideMounts = true;
users.talexander = {
directories = [
{
directory = ".histdb";
user = "talexander";
group = "talexander";
mode = "0700";
}
];
};
};
}
]
);
} }