nixos-config/nix/common-os.nix

80 lines
2.2 KiB
Nix
Raw Normal View History

2025-05-18 15:47:12 +02:00
# * Common OS
2025-05-18 10:27:43 +02:00
{
2025-05-23 18:07:40 +02:00
lib,
pkgs,
2025-05-18 15:47:12 +02:00
mkkArg,
config,
2025-05-23 18:07:40 +02:00
konfig,
2025-05-18 15:47:12 +02:00
...
}:
{
imports = [
mkkArg.current.sops-nix.nixosModules.sops
# * Config
2025-05-23 18:07:40 +02:00
# ** System
# *** Fonts
{
options.mkk.os.fonts.enable = konfig.nixerusPkgs.lib.mkBoolOpt false "Enable MKK font settings for OS";
config = lib.mkIf config.mkk.os.fonts.enable {
fonts.packages = konfig.vars.packageLists.fonts;
fonts.enableDefaultPackages = lib.mkDefault true;
fonts.fontconfig.enable = lib.mkDefault true;
fonts.fontconfig.cache32Bit = lib.mkDefault true;
fonts.fontconfig.defaultFonts.sansSerif = [ "Noto Sans" "DejaVu Sans" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
fonts.fontconfig.defaultFonts.serif = [ "Noto Serif" "DejaVu Serif" "WenQuanYi Zen Hei" "Noto Color Emoji" ];
fonts.fontconfig.defaultFonts.emoji = [ "Noto Color Emoji" "OpenMoji Color" ];
fonts.fontconfig.defaultFonts.monospace = [ "Hack Nerd Font" "Noto Sans Mono" "WenQuanYi Zen Hei Mono" ];
fonts.fontDir.enable = lib.mkDefault true;
};
}
# ** Shells
# *** Zsh
{
options.mkk.os.zsh.enable =
konfig.nixerusPkgs.lib.mkBoolOpt true "Enable MKK system zsh config";
config = lib.mkIf config.mkk.os.zsh.enable {
users.defaultUserShell = pkgs.zsh;
environment.shells = [ pkgs.zsh ];
programs.zsh = {
enable = true;
enableGlobalCompInit = false;
interactiveShellInit = ''
if [[ ''${__MATERUS_HM_ZSH:-0} == 0 ]]; then
source ${pkgs.grml-zsh-config}/etc/zsh/zshrc
fi
'';
promptInit = '''';
};
};
}
2025-05-18 15:47:12 +02:00
# ** Assertions
{
assertions = [
{
assertion = builtins.pathExists (config.konfig.vars.path.mkk + "/host/keys/ssh_host_ed25519_key");
message = "Not found host ed25519 key";
}
{
assertion = builtins.pathExists (config.konfig.vars.path.mkk + "/host/keys//ssh_host_rsa_key");
message = "Not found host RSA key";
}
];
}
2025-05-23 18:07:40 +02:00
# ** Variables
2025-05-18 15:47:12 +02:00
{
mkk.commonVariables = {
path = {
mkk = "/mkk";
};
};
}
# * Common OS END
];
2025-05-18 10:27:43 +02:00
}