Files
nixy/nixos/utils.nix
2026-02-07 13:27:14 +01:00

138 lines
2.8 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;
networking.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;
i18n.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 = {
xserver = {
enable = true;
xkb.layout = keyboardLayout;
xkb.variant = "";
};
gnome.gnome-keyring.enable = true;
psd = {
enable = true;
resyncTimer = "10m";
};
};
console.keyMap = keyboardLayout;
environment.variables = {
XDG_DATA_HOME = "$HOME/.local/share";
PASSWORD_STORE_DIR = "$HOME/.local/share/password-store";
EDITOR = "nvim";
TERMINAL = "ghostty";
TERM = "ghostty";
BROWSER = "zen-beta";
};
services.libinput.enable = true;
programs.dconf.enable = true;
services = {
dbus = {
enable = true;
implementation = "broker";
packages = with pkgs; [gcr gnome-settings-daemon];
};
gvfs.enable = true;
upower.enable = true;
power-profiles-daemon.enable = true;
udisks2.enable = true;
};
# enable zsh autocompletion for system packages (systemd, etc)
environment.pathsToLink = ["/share/zsh"];
# Faster rebuilding
documentation = {
enable = true;
doc.enable = false;
man.enable = true;
dev.enable = false;
info.enable = false;
nixos.enable = false;
};
environment.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
];
xdg.portal = {
enable = true;
xdgOpenUsePortal = true;
config = {
common.default = ["gtk"];
hyprland.default = ["gtk" "hyprland"];
};
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
security = {
# allow wayland lockers to unlock the screen
pam.services.hyprlock.text = "auth include login";
# userland niceness
rtkit.enable = true;
# don't ask for password for wheel group
sudo.wheelNeedsPassword = false;
};
}