nix-v0/src/nixos/default.nix
2024-11-02 23:33:44 -05:00

78 lines
1.5 KiB
Nix

{
config,
lib,
pkgs,
...
}:
{
imports = [
./1password.nix
./displaymanager.nix
./fonts.nix
./fingerprint.nix
./gnome.nix
./impermanence.nix
./kde.nix
./keyd.nix
./nix.nix
./pipewire.nix
./stylix.nix
./touchpad.nix
./users.nix
./xdg-portal.nix
./wm
./zfs.nix
];
options.custom = with lib; {
shell = {
packages = mkOption {
type =
with types;
attrsOf (oneOf [
str
attrs
package
]);
apply = custom.mkShellPackages;
default = { };
description = ''
Attrset of shell packages to install and add to pkgs.custom overlay (for compatibility across multiple shells).
Both string and attr values will be passed as arguments to writeShellApplicationCompletions
'';
example = ''
shell.packages = {
myPackage1 = "echo 'Hello, World!'";
myPackage2 = {
runtimeInputs = [ pkgs.hello ];
text = "hello --greeting 'Hi'";
};
}
'';
};
};
symlinks = mkOption {
type = types.attrsOf types.str;
default = { };
description = "Symlinks to create in the format { dest = src;}";
};
};
config = {
environment = {
systemPackages = with pkgs; [
curl
eza
neovim
yazi
ripgrep
htop
vim
wget
htop-vim
keyd
] ++ (lib.attrValues config.custom.shell.packages);
};
};
}