nixos-config/nix/common-os.nix

80 lines
2.2 KiB
Nix

# * Common OS
{
lib,
pkgs,
mkkArg,
config,
konfig,
...
}:
{
imports = [
mkkArg.current.sops-nix.nixosModules.sops
# * Config
# ** 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 = '''';
};
};
}
# ** 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";
}
];
}
# ** Variables
{
mkk.commonVariables = {
path = {
mkk = "/mkk";
};
};
}
# * Common OS END
];
}