forked from emily/nixfiles
108 lines
2.5 KiB
Nix
108 lines
2.5 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib; {
|
|
imports = [
|
|
./kernel.nix
|
|
./networking.nix
|
|
./openssh.nix
|
|
./users
|
|
../../modules
|
|
];
|
|
environment.systemPackages = with pkgs; [
|
|
kitty.terminfo
|
|
bat
|
|
dig
|
|
htop
|
|
ripgrep
|
|
uutils-coreutils
|
|
git
|
|
bmon
|
|
bottom
|
|
man-pages
|
|
man-pages-posix
|
|
unzip
|
|
zip
|
|
figlet
|
|
];
|
|
programs = {
|
|
mtr.enable = true;
|
|
fish.enable = true;
|
|
};
|
|
|
|
kyouma.deployment = {
|
|
tags = [ "all" ];
|
|
auto-upgrade.enable = true;
|
|
};
|
|
|
|
security.dhparams.defaultBitSize = 4096;
|
|
|
|
system.activationScripts.motd.text = let
|
|
cfg = config.system.nixos;
|
|
in ''
|
|
root=/var/lib/deployment
|
|
mkdir -p $root
|
|
date "+%s" > $root/date
|
|
|
|
cat << EOF > $root/motd
|
|
Welcome to ${cfg.distroName} ${cfg.release} ("${cfg.codeName}") on
|
|
$(${pkgs.figlet}/bin/figlet -lt -f slant ${config.networking.hostName} | ${pkgs.gnused}/bin/sed -e 's/[[:space:]]*$//').${config.networking.domain}
|
|
|
|
Last deployed on $(date "+%F %T %Z" -d @$(cat "$root/date"))
|
|
|
|
EOF
|
|
'';
|
|
users.motdFile = "/var/lib/deployment/motd";
|
|
|
|
nix.gc.automatic = true;
|
|
nix.gc.options = "--delete-older-than 7d";
|
|
nix.optimise.automatic = true;
|
|
nix.registry.nixpkgs.to = {
|
|
type = "path";
|
|
path = pkgs.path;
|
|
};
|
|
nix.settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
trusted-users = [ "root" "@wheel" ];
|
|
substituters = [ "https://cache.kyouma.net" ];
|
|
trusted-public-keys = [ "cache.kyouma.net:Frjwu4q1rnwE/MnSTmX9yx86GNA/z3p/oElGvucLiZg=" ];
|
|
};
|
|
nix.extraOptions = ''
|
|
builders-use-substitutes = true
|
|
'';
|
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
boot.tmp.cleanOnBoot = mkDefault true;
|
|
services.journald.extraConfig = "SystemMaxUse=256M";
|
|
|
|
security.sudo = {
|
|
enable = true;
|
|
execWheelOnly = true;
|
|
wheelNeedsPassword = false;
|
|
};
|
|
security.sudo-rs = {
|
|
enable = false;
|
|
execWheelOnly = true;
|
|
wheelNeedsPassword = false;
|
|
};
|
|
users.mutableUsers = mkDefault false;
|
|
|
|
i18n.defaultLocale = mkDefault "en_EU.UTF-8";
|
|
i18n.glibcLocales = (pkgs.glibcLocales.overrideAttrs (orig: {
|
|
postPatch = orig.postPatch + ''
|
|
cp "${../files/en_EU}" localedata/locales/en_EU
|
|
echo 'en_EU.UTF-8/UTF-8 \' >>localedata/SUPPORTED
|
|
'';
|
|
}));
|
|
services.xserver.xkb = {
|
|
layout = "de";
|
|
variant = "neo_qwerty";
|
|
};
|
|
console.useXkbConfig = true;
|
|
console.earlySetup = true;
|
|
|
|
services.fprintd.enable = config.kyouma.machine-type.graphical;
|
|
|
|
system.stateVersion = "23.11";
|
|
time.timeZone = mkDefault "CET";
|
|
}
|