244 lines
7.7 KiB
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" ];
|
|
}
|