Files
nixy/nixos/utils.nix
T
2026-06-29 17:48:21 +02:00

133 lines
2.5 KiB
Nix

# Misc
{
pkgs,
config,
...
}: let
hostname = config.var.hostname;
keyboardLayout = config.var.keyboardLayout;
configDir = config.var.configDirectory;
timeZone = config.var.timeZone;
defaultLocale = config.var.defaultLocale;
extraLocale = config.var.extraLocale;
autoUpgrade = config.var.autoUpgrade;
in {
networking = {
hostName = hostname;
networkmanager.enable = true;
};
systemd.services.NetworkManager-wait-online.enable = false;
system.autoUpgrade = {
enable = autoUpgrade;
dates = "04:00";
flake = "${configDir}";
flags = [
"--update-input"
"nixpkgs"
"--commit-lock-file"
];
allowReboot = false;
};
time = {
timeZone = timeZone;
};
i18n = {
defaultLocale = defaultLocale;
extraLocaleSettings = {
LC_ADDRESS = extraLocale;
LC_IDENTIFICATION = extraLocale;
LC_MEASUREMENT = extraLocale;
LC_MONETARY = extraLocale;
LC_NAME = extraLocale;
LC_NUMERIC = extraLocale;
LC_PAPER = extraLocale;
LC_TELEPHONE = extraLocale;
LC_TIME = extraLocale;
};
};
services = {
libinput.enable = true;
xserver = {
enable = true;
xkb.layout = keyboardLayout;
};
gnome.gnome-keyring.enable = true;
psd = {
enable = true;
resyncTimer = "10m";
};
dbus = {
implementation = "broker";
packages = with pkgs; [
gcr
gnome-settings-daemon
];
};
gvfs.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
udisks2.enable = true;
};
console.keyMap = keyboardLayout;
environment = {
variables = {
PASSWORD_STORE_DIR = "$HOME/.local/share/password-store";
};
# enable zsh autocompletion for system packages (systemd, etc)
pathsToLink = ["/share/zsh"];
systemPackages = with pkgs; [
fd
bc
gcc
file
git-ignore
xdg-utils
wget
curl
gnupg
openssl
vim
go
comma
zip
unzip
optipng
jpegoptim
pfetch
btop
unrar
p7zip
];
};
programs.dconf.enable = true;
# Faster rebuilding
documentation = {
doc.enable = false;
dev.enable = false;
info.enable = false;
nixos.enable = false;
};
xdg.portal = {
xdgOpenUsePortal = true;
config = {
common.default = ["gtk"];
hyprland.default = [
"gtk"
"hyprland"
];
};
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
security.rtkit.enable = true;
}