nix-dotfiles/nixosModules/services/system/default.nix

61 lines
1.5 KiB
Nix

{ config, pkgs, lib, ... }:
{
options = {
user.name = lib.mkOption { default = "pan"; };
user.timezone = lib.mkOption { default = "America/Los_Angeles"; };
system.extraFonts = lib.mkOption { default = []; };
};
config = {
# Use the systemd-boot EFI boot loader.
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader.systemd-boot.enable = true;
boot.loader.timeout = 1;
boot.loader.efi.canTouchEfiVariables = true;
time.timeZone = config.user.timezone;
i18n.defaultLocale = "en_US.UTF-8";
# "Essential" Packages
environment.systemPackages = with pkgs; [
git
neovim
nnn
xdg-user-dirs
];
# XDG Compliance
xdg.portal.config.common.default = "*";
environment.sessionVariables = rec {
XDG_CONFIG_HOME = "\${HOME}/.config";
XDG_CACHE_HOME = "\${HOME}/.cache";
XDG_STATE_HOME = "\${HOME}/.local/state";
XDG_DATA_HOME = "\${HOME}/.local/share";
XDG_BIN_HOME = "\${HOME}/.local/bin";
PATH = [
"\${HOME}/prog/scripts"
];
};
users.groups = {
wheel = { };
network = { };
};
users.users.defaultUser = {
name = config.user.name;
isNormalUser = true;
extraGroups = [ "wheel" "network" ];
};
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
cascadia-code
source-han-sans # Pan-CJK font
] ++ config.system.extraFonts;
};
};
}