94 lines
2.1 KiB
Nix
94 lines
2.1 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
pkgs,
|
|
system,
|
|
host,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./1password.nix
|
|
./audio.nix
|
|
./bluetooth.nix
|
|
./displaymanager.nix
|
|
./keyd.nix
|
|
./gnupg.nix
|
|
./nix.nix
|
|
./sops.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 = {
|
|
boot.loader.systemd-boot.configurationLimit = 10;
|
|
|
|
# networking
|
|
networking.hostName = host;
|
|
networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" config.networking.hostName);
|
|
networking.networkmanager.enable = true;
|
|
|
|
programs.dconf.enable = true;
|
|
|
|
services.libinput = {
|
|
enable = true;
|
|
touchpad = {
|
|
disableWhileTyping = true;
|
|
naturalScrolling = true;
|
|
};
|
|
};
|
|
|
|
security.rtkit.enable = true;
|
|
security.polkit.enable = true;
|
|
|
|
services.openssh = {
|
|
enable = true;
|
|
settings = {
|
|
# Opinionated: forbid root login through SSH.
|
|
PermitRootLogin = "no";
|
|
# Opinionated: use keys only.
|
|
# Remove if you want to SSH using passwords
|
|
PasswordAuthentication = false;
|
|
};
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
vim
|
|
htop
|
|
] ++ (lib.attrValues config.custom.shell.packages);
|
|
|
|
system.stateVersion = "25.05";
|
|
};
|
|
}
|