123 lines
2.8 KiB
Nix
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" ];
|
|
}];
|
|
};
|
|
};
|
|
|
|
}
|