dotfiles/.config/nix/hosts/common.nix

85 lines
2 KiB
Nix

{ config, lib, pkgs, inputs, ... }:
{
imports = [
inputs.home-manager.nixosModules.default
];
# Set default user lunita
users.users.lunita = {
isNormalUser = true;
description = "Lunita";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
neovim
firefox
];
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"];
# 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
i18n.defaultLocale = "en_US.UTF-8";
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Zsh
programs.zsh.enable = true;
# Browser
programs.firefox.enable = true;
# Tailscale
services.tailscale.enable = true;
# Syncthing
services.syncthing.enable = true;
# GPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Espanso for text expansion
services.espanso.enable = true;
# OpenSSH
services.openssh.enable = true;
# Hardware acceleration support
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver
intel-vaapi-driver
];
};
}