nixos/hosts/citadel/default.nix

114 lines
2.9 KiB
Nix
Raw Normal View History

2024-07-20 23:51:10 +01:00
{ inputs, lib, pkgs, config, ... }:
2024-07-20 12:38:57 +01:00
let
# Disko setup
fsType = "btrfs"; # one of ext4 or btrfs. Use btrfs if using impermanence
dev = "/dev/nvme0n1"; # depends on target hardware
encrypted = true; # currrently only applies to btrfs
btrfsMountDevice = if encrypted then "/dev/mapper/crypted" else "/dev/root_vg/root";
user = "sam";
impermanence = true;
in
{
imports =
[
# Create users for this host
../common/users/${user}
# Disk configuration
inputs.disko.nixosModules.disko
(import ../common/disks { device = dev; impermanence = impermanence; fsType = fsType; encrypted = encrypted; })
# Impermanence
(import ../common/disks/btrfs/impermanence.nix { btrfsMountDevice = btrfsMountDevice; lib = lib; })
# Import core options
./hardware-configuration.nix
../common/core
# Import optional options
../common/optional/persistence.nix
../common/optional/pipewire.nix
../common/optional/openssh.nix
../common/optional/dwm.nix
2024-08-20 13:14:24 +01:00
../common/optional/nfs-mounts/media.nix
2024-08-26 21:04:19 +01:00
../common/optional/nfs-mounts/homeshare.nix
../common/optional/nfs-mounts/photos.nix
2024-07-20 12:38:57 +01:00
../common/optional/printing.nix
2024-07-20 23:52:08 +01:00
../common/optional/backlight.nix
2024-07-20 12:38:57 +01:00
];
boot = {
blacklistedKernelModules = [ "snd_hda_intel" "snd_soc_skl" ];
kernelModules = [ "iwlwifi" ];
2024-07-20 23:50:33 +01:00
initrd.kernelModules = [ "thinkpad-acpi" "acpi-call" ];
2024-07-20 12:38:57 +01:00
kernelPackages = pkgs.linuxPackagesFor pkgs.linux_latest;
2024-07-20 23:50:33 +01:00
extraModulePackages = [
config.boot.kernelPackages.acpi_call
];
2024-07-20 12:38:57 +01:00
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
timeout = 3;
};
};
2024-07-20 17:38:49 +01:00
services = {
libinput.touchpad.accelSpeed = "0.5";
xserver = {
xkb.options = "caps:swapescape";
dpi = 196;
upscaleDefaultCursor = true;
};
};
environment.variables = {
GDK_SCALE = "2.2";
GDK_DPI_SCALE = "0.8";
_JAVA_OPTIONS = "-Dsun.java2d.uiScale=2.2";
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
XCURSOR_SIZE = "64";
};
2024-07-20 23:51:10 +01:00
services.tlp = {
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "ondemand";
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
2024-07-21 16:23:35 +01:00
START_CHARGE_THRESH_BAT0 = 50;
STOP_CHARGE_THRESH_BAT0 = 95;
2024-07-20 23:51:10 +01:00
};
};
2024-07-21 16:23:47 +01:00
# Remap Alt_L +[hjkl] to left down up right
services.xserver.displayManager.sessionCommands =
"${pkgs.xorg.xmodmap}/bin/xmodmap ${pkgs.writeText "xkb-layout" ''
keycode 64 = Mode_switch
keycode 43 = h H Left H
keycode 44 = j J Down J
keycode 45 = k K Up K
keycode 46 = l L Right L
''}";
hardware = {
2024-07-20 23:51:40 +01:00
bluetooth = {
enable = true;
powerOnBoot = true;
};
enableRedistributableFirmware = true;
firmware = [
pkgs.sof-firmware
];
};
2024-07-20 12:38:57 +01:00
networking = {
hostName = "citadel";
networkmanager.enable = true;
enableIPv6 = false;
nameservers = [ "10.0.10.60" "8.8.8.8" ];
};
services.libinput.enable = true;
}