077d8f07e7
Introduce a `shell` variable in host variables and enable the Fish package. Make Bash configuration conditional on the selected shell and add Fish integration for programs such as fzf, starship, kitty, zoxide, and eza. Provide a full Fish module with aliases, functions, and plugin placeholders. Update Stylix to configure Fish, Starship, Fzf, Bat, Anki, Btop, Kitty, and Vesktop themes. Remove the large Emoji module and simplify a few Dconf settings. All changes collectively enable and style the Fish shell across the system.
68 lines
1.4 KiB
Nix
68 lines
1.4 KiB
Nix
{
|
|
pkgs,
|
|
inputs,
|
|
username,
|
|
host,
|
|
profile,
|
|
system,
|
|
...
|
|
}: let
|
|
inherit (import ../../hosts/${host}/variables.nix) gitUsername shell;
|
|
in {
|
|
imports = [inputs.home-manager.nixosModules.home-manager];
|
|
home-manager = {
|
|
useUserPackages = true;
|
|
useGlobalPkgs = false;
|
|
backupFileExtension = "backup-nixos";
|
|
extraSpecialArgs = {
|
|
inherit
|
|
inputs
|
|
username
|
|
host
|
|
profile
|
|
system
|
|
;
|
|
};
|
|
users.${username} = {
|
|
imports = [
|
|
./../home
|
|
../../hosts/${host}/home-modules.nix
|
|
inputs.noctalia.homeModules.default
|
|
];
|
|
home = {
|
|
username = "${username}";
|
|
homeDirectory = "/home/${username}";
|
|
stateVersion = "25.11";
|
|
shell.enableFishIntegration = true;
|
|
};
|
|
};
|
|
};
|
|
users = {
|
|
mutableUsers = true;
|
|
users.${username} = {
|
|
isNormalUser = true;
|
|
description = "${gitUsername}";
|
|
extraGroups = [
|
|
"adbusers"
|
|
"docker" # access to docker as non-root
|
|
"libvirtd" # Virt manager/QEMU access
|
|
"lp"
|
|
"networkmanager"
|
|
"scanner"
|
|
"wheel" # sudo access
|
|
"vboxusers" # Virtual Box
|
|
"gamemode"
|
|
"lpadmin"
|
|
];
|
|
shell = with pkgs; (
|
|
if shell == "fish"
|
|
then fish
|
|
else bash
|
|
);
|
|
ignoreShellProgramCheck = true;
|
|
linger = true;
|
|
};
|
|
};
|
|
nix.settings.allowed-users = ["${username}"];
|
|
}
|