Files
nix-config/hosts/default.nix
mjallen18 083a73e052 sdf
2024-03-27 13:18:44 -05:00

123 lines
2.8 KiB
Nix

{ config, lib, pkgs, ... }:
let timezone = "America/Chicago";
in {
imports = [ ../modules ../share ];
# Enable nix flakes and nix-command tools
nix = {
settings.experimental-features = [ "nix-command" "flakes" ];
# Garbage collect automatically every week
gc.automatic = lib.mkDefault true;
gc.options = "--delete-older-than 30d";
optimise.automatic = lib.mkDefault true;
};
# Configure nixpkgs
# Enable non free
nixpkgs.config.allowUnfree = lib.mkDefault true;
# Hardware configs
hardware = {
# Bluetooth
bluetooth.enable = lib.mkDefault true;
# Enable all firmware
enableAllFirmware = lib.mkDefault true;
# Disable pulse audio in favor of pipewire
pulseaudio.enable = false;
};
# Services configs
services = {
openssh.enable = lib.mkDefault true;
# Enable firmware updates
fwupd.enable = lib.mkDefault true;
fstrim.enable = lib.mkDefault true;
pcscd.enable = lib.mkDefault true;
# Enable CUPS to print documents.
printing.enable = lib.mkDefault true;
# configure pipewire
pipewire = {
enable = lib.mkDefault true;
alsa.enable = lib.mkDefault true;
alsa.support32Bit = lib.mkDefault true;
pulse.enable = lib.mkDefault true;
};
};
# Time config
time = {
# Set your time zone.
timeZone = timezone;
};
boot = {
# Enable AppImage
binfmt.registrations.appimage = {
wrapInterpreterInShell = lib.mkDefault false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff";
magicOrExtension = "\\x7fELF....AI\\x02";
};
};
programs = {
fish.enable = lib.mkDefault true;
gnupg.agent = {
enable = lib.mkDefault true;
<<<<<<< Updated upstream
<<<<<<< HEAD
pinentryPackage = lib.mkForce pkgs.pinentry-qt;
=======
# pinentryPackage = pkgs.pinentry-curses;
>>>>>>> d18eaa1 (update default)
=======
# pinentryPackage = lib.mkForce pkgs.pinentry-qt;
>>>>>>> Stashed changes
enableSSHSupport = lib.mkDefault true;
};
};
environment.systemPackages = with pkgs; [
pinentry-curses
];
# Security config
security = {
rtkit.enable = lib.mkDefault true;
# configure sudo
sudo = {
enable = lib.mkDefault true;
extraRules = [{
commands = [
{
command = "${pkgs.systemd}/bin/systemctl suspend";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/reboot";
options = [ "NOPASSWD" ];
}
{
command = "${pkgs.systemd}/bin/poweroff";
options = [ "NOPASSWD" ];
}
];
groups = [ "wheel" ];
}];
};
};
}