nix/moduler/base.nix
2025-09-13 22:02:42 +02:00

102 lines
2.1 KiB
Nix

{
inputs,
lib,
config,
pkgs,
...
}:
{
nixpkgs = {
config = {
allowUnfree = true;
};
};
nix.registry = (lib.mapAttrs (_: flake: { inherit flake; })) (
(lib.filterAttrs (_: lib.isType "flake")) inputs
);
nix.nixPath = [ "/etc/nix/path" ];
users.defaultUserShell = pkgs.bash;
documentation.man.generateCaches = false;
programs.fish.enable = true;
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
environment.etc = lib.mapAttrs' (name: value: {
name = "nix/path/${name}";
value.source = value.flake;
}) config.nix.registry;
nix.settings = {
experimental-features = "nix-command flakes";
auto-optimise-store = true;
};
virtualisation = {
docker = {
enable = true;
liveRestore = false;
};
};
networking.networkmanager.enable = true;
environment.sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
TERM = "xterm-256color";
};
time.timeZone = "Europe/Stockholm";
fonts.packages = with pkgs; [
nerd-fonts.comic-shanns-mono
nerd-fonts.fira-code
];
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "sv_SE.UTF-8";
LC_IDENTIFICATION = "sv_SE.UTF-8";
LC_MEASUREMENT = "sv_SE.UTF-8";
LC_MONETARY = "sv_SE.UTF-8";
LC_NAME = "sv_SE.UTF-8";
LC_NUMERIC = "sv_SE.UTF-8";
LC_PAPER = "sv_SE.UTF-8";
LC_TELEPHONE = "sv_SE.UTF-8";
LC_TIME = "sv_SE.UTF-8";
};
boot = {
loader = {
efi = {
canTouchEfiVariables = true;
};
systemd-boot.enable = true;
grub = {
efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
};
};
};
console.keyMap = "sv-latin1";
programs.bat = {
enable = true;
};
services = {
printing.enable = true;
clipmenu.enable = true;
openssh = {
enable = true;
};
};
}