{pkgs, ...}: { # ------------ System ------------ users.users.tacocat = { isNormalUser = true; extraGroups = ["wheel" "networkmanager" "audio" "video" "bluetooth" "kvm" "docker"]; home = "/home/tacocat"; description = "Aria Nolan"; }; boot.loader = { efi.canTouchEfiVariables = false; grub = { efiSupport = true; configurationLimit = 10; device = "nodev"; }; }; i18n.defaultLocale = "en_US.UTF-8"; console = { font = "Lat2-Terminus16"; keyMap = "us"; }; networking.networkmanager.enable = true; networking.resolvconf.extraConfig = '' name_servers="1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001" name_server_blacklist="129.21.3.17 129.21.4.18 2620:8d:8000:0:aba:ca:daba:ec" ''; # Sound services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; jack.enable = true; }; # Services/Hardware hardware.opentabletdriver.enable = true; hardware.bluetooth.enable = true; services.blueman.enable = true; services.printing.enable = true; services.geoclue2.enable = true; services.mullvad-vpn.enable = true; services.mullvad-vpn.enableExcludeWrapper = false; services.fwupd.enable = true; security.rtkit.enable = true; services.resolved.enable = true; services.udisks2.enable = true; services.pcscd.enable = true; services.openssh = { enable = true; settings.PasswordAuthentication = false; }; virtualisation.docker.enable = true; services.udev.packages = [ (pkgs.writeTextFile { name = "xilinx-dilligent-usb-udev"; destination = "/etc/udev/rules.d/52-xilinx-digilent-usb.rules"; text = '' ATTR{idVendor}=="1443", MODE:="666" ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Digilent", MODE:="666" ''; }) (pkgs.writeTextFile { name = "xilinx-pcusb-udev"; destination = "/etc/udev/rules.d/52-xilinx-pcusb.rules"; text = '' ATTR{idVendor}=="03fd", ATTR{idProduct}=="0008", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="0007", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="0009", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="000d", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="000f", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="0013", MODE="666" ATTR{idVendor}=="03fd", ATTR{idProduct}=="0015", MODE="666" ''; }) (pkgs.writeTextFile { name = "xilinx-ftdi-usb-udev"; destination = "/etc/udev/rules.d/52-xilinx-ftdi-usb.rules"; text = '' ACTION=="add", ATTR{idVendor}=="0403", ATTR{manufacturer}=="Xilinx", MODE:="666" ''; }) ]; services.udev.extraRules = '' # 0d28:0204 DAPLink SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", ATTR{idProduct}=="0204", MODE:="666" ''; services.syncthing = { enable = true; user = "tacocat"; dataDir = "/home/tacocat"; configDir = "/home/tacocat/.config/syncthing"; settings = { devices = { bicep = { id = "3EPQMGY-4ZY2MCG-A43QZ5E-IKZ3CL4-AD25LCZ-YNMZTVS-OCSMU54-ZTGFYAR"; autoAcceptFolders = true; }; jwst = { id = "7LY5XXK-4F7MKFG-6ZCP5QH-24WT3LX-NODOWUP-JXRFAKP-MARTKOA-QJRW3QM"; autoAcceptFolders = true; }; echo = { id = "LW6Z6CI-PDKQUZG-725FF6F-GUZ6GH2-SFHVXVZ-37YJUC4-7ZW4EMP-TC4REAZ"; autoAcceptFolders = true; }; }; folders = { "/data/homework" = { id = "homework"; devices = ["bicep" "jwst" "echo"]; }; }; }; }; # ------------ Nix ------------ nix.settings = { experimental-features = ["nix-command" "flakes"]; auto-optimise-store = true; trusted-users = ["root" "tacocat"]; }; nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 1w"; }; nixpkgs.config.allowUnfree = true; programs.nix-index.enable = true; programs.command-not-found.enable = false; # ------------ Software ------------ environment = { systemPackages = with pkgs; [ screen distrobox udiskie pyocd vim exfat encfs ntfs3g gnutls ]; # remove nano defaultPackages = with pkgs; [ perl rsync strace ]; }; programs.sway = { enable = true; wrapperFeatures.gtk = true; extraPackages = with pkgs; [ swaylock swayidle brightnessctl wl-mirror ]; }; programs.waybar.enable = true; programs.steam.enable = true; programs.steam.remotePlay.openFirewall = true; # programs.steam.gamescopeSession = { # enable = true; # args = [ # "-f" # "--expose-wayland" # ]; # }; programs.gamemode.enable = true; # programs.gamescope.enable = true; programs.ssh.startAgent = true; programs.gnupg.agent = { enable = true; # pinentryFlavor = "curses"; # enableSSHSupport = true; }; xdg.portal = { enable = true; wlr.enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; }; gtk.iconCache.enable = true; # ------------ Graphics ------------ hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; }; }