dotfiles/hosts/common.nix

97 lines
2.4 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, inputs, ... }:
{
imports = [
inputs.home-manager.nixosModules.default
];
# Set default user lunita
users.users.lunita = {
isNormalUser = true;
description = "Lunita";
extraGroups = [ "networkmanager" "wheel" "syncthing" ];
shell = pkgs.zsh;
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"lunita" = import ./home.nix;
};
};
# Enable automatic system updates
system.autoUpgrade = {
enable = true;
flake = inputs.self.outPath;
flags = [
"--update-input"
"nixpkgs"
"-L" # print build logs
];
dates = "weekly";
randomizedDelaySec = "45min";
};
# Automate Nix garbage collection
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 7d";
};
# Allow non-free software (RMS will be mad at me :<)
nixpkgs.config.allowUnfree = true;
# Enable nix-command and flakes
nix.settings.experimental-features = [ "nix-command" "flakes"];
2025-09-13 15:10:42 -04:00
# using piprewire cuz embrace muh modernity
services.pipewire = {
enable = true;
pulse.enable = true;
};
# Basic configuration stuff - WiFi, Xserver keyboard layout, Stylix
networking.networkmanager.enable = true;
time.timeZone = "America/St_Thomas"; # Timezone => AST
2025-09-13 15:10:42 -04:00
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Zsh
programs.zsh.enable = true;
# Browser
programs.firefox.enable = true;
# Direnv
programs.direnv.enable = true;
2025-10-01 17:03:09 -04:00
# Flatpak
# services.flatpak.enable = true;
2025-09-13 15:10:42 -04:00
# Tailscale
services.tailscale.enable = true;
# GPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# OpenSSH
services.openssh.enable = true;
# Hardware acceleration support
2025-10-01 17:13:50 -04:00
hardware.graphics.extraPackages = with pkgs; [
2025-10-01 17:03:09 -04:00
intel-media-driver
];
# Enable udisks2 for removable media support
services.udisks2.enable = true;
# Can't disable sudo due to dependency for nixos-rebuild
# security.sudo.enable = false;
# Setup doas
security.doas = {
enable = true;
extraRules = [{
users = ["lunita"];
keepEnv = true;
noPass = true;
}];
};
# System package definitions
environment.systemPackages = with pkgs; [
neovim # Terminal text editor
wget # coreutil for some script compatibility
wiremix # TUI mixer for pipewire
];
}