75 lines
1.7 KiB
Nix
75 lines
1.7 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;
|
|
};
|
|
# OpenSSH
|
|
services.openssh.enable = true;
|
|
}
|