1
0
Fork 0
NixOS/hosts/totsugeki/nixos/default.nix

244 lines
7.7 KiB
Nix

{ lib, pkgs, ... }: {
imports = [ ./filesystems.nix ./steam.nix ];
boot = {
kernelModules = [ "kvm-amd" ];
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
kernelParams = [ "video=DP-1:2560x1440@165" ];
initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
loader = {
systemd-boot = {
enable = lib.mkForce false;
configurationLimit = 10;
consoleMode = "max";
editor = false;
windows."11" = {
title = "Windows 11 Pro N";
efiDeviceHandle = "HD2d";
};
};
efi.canTouchEfiVariables = true;
};
supportedFilesystems = [ "ntfs" ];
};
environment.systemPackages = with pkgs; [ ffmpeg-full gparted sbctl ];
hardware.i2c.enable = true;
networking = {
firewall = {
enable = true;
allowedTCPPorts = [ 8000 42595 1420 7777 8080 9501 ];
allowedUDPPorts = [ 24642 ];
};
hostName = "totsugeki";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
time = {
hardwareClockInLocalTime = false;
timeZone = "Europe/Madrid";
};
i18n = {
defaultLocale = "es_ES.UTF-8";
supportedLocales = [
"C.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
"es_ES.UTF-8/UTF-8"
"ja_JP.UTF-8/UTF-8" # Monster Hunter Frontier Z Zenith
];
};
fonts = {
packages = with pkgs; [
inter
ubuntu-sans
twitter-color-emoji
nerd-fonts.iosevka
nerd-fonts.ubuntu-mono
vista-fonts
];
fontconfig = {
defaultFonts = {
serif = [ "Inter" ];
sansSerif = [ "Inter" ];
monospace = [ "Iosevka Nerd Font" ];
};
};
};
programs = {
adb.enable = true;
corectrl = {
enable = true;
gpuOverclock.enable = true;
};
dconf.enable = true;
nix-ld.enable = true;
hyprland.enable = true;
virt-manager.enable = true;
};
security.polkit = { enable = true; };
xdg.portal = {
config.common = { default = "gtk"; };
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
services = {
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
greetd = {
enable = true;
settings = rec {
initial_session = {
command = "${pkgs.zsh}/bin/zsh -c Hyprland";
user = "avery";
};
default_session = initial_session;
};
};
gvfs.enable = true;
jellyfin = {
enable = true;
openFirewall = true;
};
mullvad-vpn = {
enable = true;
package = pkgs.mullvad-vpn;
};
pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
};
printing = {
enable = true;
drivers = with pkgs; [ brlaser ];
};
resolved.enable = true;
udisks2.enable = true;
udev.extraRules = ''
SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
# Atmel DFU
### ATmega16U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
### ATmega32U2
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
### ATmega16U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
### ATmega32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
### AT90USB64
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
### AT90USB162
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
### AT90USB128
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
# Input Club
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
# STM32duino
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
# STM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
# BootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
# USBAspLoader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
# USBtinyISP
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
# ModemManager should ignore the following devices
# Atmel SAM-BA (Massdrop)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# Caterina (Pro Micro)
## pid.codes shared PID
### Keyboardio Atreus 2 Bootloader
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Spark Fun Electronics
### Pro Micro 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Pro Micro 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### LilyPad 3V3/8MHz (and some Pro Micro clones)
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Pololu Electronics
### A-Star 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Arduino SA
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## Adafruit Industries LLC
### Feather 32U4
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 3V3/8MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### ItsyBitsy 32U4 5V/16MHz
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
## dog hunter AG
### Leonardo
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
### Micro
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
# hid_listen
KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
# hid bootloaders
## QMK HID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
## PJRC's HalfKay
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
# APM32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
# GD32V DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
# WB32 DFU
SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
'';
};
systemd = { services = { NetworkManager-wait-online.enable = false; }; };
sops = {
defaultSopsFile = "/etc/nixos/secrets/greatyamada.yaml";
age.keyFile = "/home/avery/.config/sops/age/keys.txt";
};
system.stateVersion = "24.05";
virtualisation = {
libvirtd.enable = true;
spiceUSBRedirection.enable = true;
};
users.users.avery.extraGroups = [ "corectrl" "libvirt" "kvm" "adbusers" ];
}