diff --git a/hosts/Ernesto.nix b/hosts/Ernesto.nix new file mode 100644 index 0000000..82e65be --- /dev/null +++ b/hosts/Ernesto.nix @@ -0,0 +1,203 @@ +{ config, lib, pkgs, ... }: +{ + imports = [ + ./kde.nix + ./development.nix + ./printer.nix + # ./clamav.nix + ]; + + networking.hostName = "Ernesto"; + + boot.loader.systemd-boot = { + enable = true; + windows = { + "windows" = { + title = "Windows 10"; + efiDeviceHandle = "HD1d65535a3"; + sortKey = "a_windows"; + }; + }; + edk2-uefi-shell = { + enable = true; + sortKey = "z_edk2"; + }; + }; + boot.loader.efi.canTouchEfiVariables = true; + + hardware.bluetooth = { + enable = true; + settings = { + General = { + Enable = "Source,Sink,Media,Socket"; + # Bluetooth headsets don’t appear in PulseAudio without this, + # might be a pecularity of the dongle + ControllerMode = "bredr"; + }; + }; + }; + hardware.graphics.enable = true; + services.xserver.videoDrivers = [ "nvidia" ]; + hardware.nvidia = { + powerManagement.enable = true; + open = false; + }; + + console.keyMap = "us"; + services.xserver.xkb.layout = "us-fruchti"; + i18n.defaultLocale = "de_DE.UTF-8"; + networking.networkmanager.enable = true; + services.avahi.enable = true; + networking.firewall.allowedTCPPorts = [ 22 ]; + + programs.gnupg.agent = { + enable = true; + # enableSSHSupport = true; + }; + + environment.systemPackages = with pkgs; [ + ntfsprogs + direnv nix-direnv + tmux zellij + helix + picocom + wget + texlive.combined.scheme-full + xsel + rsync + ranger nnn w3m + hexyl + git + gnupg + ripgrep + fd + ncdu + rink + htop + ncmpcpp + usbutils # lsusb etc. + dig + nmap + file + binwalk + ffmpeg + shellcheck + + wine + wineWowPackages.stable + winePackages.fonts + pavucontrol + xsensors + + kitty + kitty-themes + + firefox + ungoogled-chromium + thunderbird + + zathura + inkscape + vlc mpv a52dec + gthumb + gimp + darktable + tenacity + + openscad + freecad + solvespace + dune3d + + vscodium + marktext + tor-browser-bundle-bin + libreoffice-fresh + tdesktop + horizon-eda + kicad-small + pulseview + nextcloud-client + ]; + + services.burp.client = { + enable = true; + server = "rupert"; + includes = [ + "/etc/nixos" + "/home" + "/data" + "/windows/Users" + "/shared" + ]; + passwordFile = "/secrets/burp_client_password"; + sslKeyPasswordFile = "/secrets/burp_ssl_key_password"; + encryptionPasswordFile = "/secrets/burp_encryption_password"; + extraConfig = '' + working_dir_recovery_method = resume + max_resume_attempts = 5 + exclude_regex = /home/.*/\.cache + exclude_regex = /home/.*/\.mozilla + exclude_regex = /home/.*/\.local + exclude_regex = /home/.*/\.cargo + exclude_regex = /home/.*/\.texlive.* + exclude_regex = /home/.*/\.vscode.* + exclude_regex = sync_[0-9a-f]+\.db + exclude_regex = \.fuse_hidden.* + ''; + }; + + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + }; + + nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + "steam-runtime" + "steam-run" + "steam-unwrapped" + "nvidia-x11" + "nvidia-settings" + ]; + + fileSystems = { + "/windows" = { + device = "/dev/disk/by-uuid/7692527592523A37"; + fsType = "ntfs"; + options = [ + "defaults" + "gid=1010" + "umask=002" + ]; + }; + "/data" = { + device = "/dev/disk/by-uuid/6b063b1a-8f80-430e-8ecb-83f1d4087e4c"; + fsType = "btrfs"; + }; + "/shared" = { + device = "/dev/disk/by-uuid/15D9B1070A5041E1"; + fsType = "ntfs"; + options = [ + "defaults" + "gid=1010" + "umask=002" + ]; + }; + }; + + users.extraGroups = { + windows = { + gid = 1010; + members = [ "fruchti" ]; + }; + }; + + services.earlyoom = { + enable = true; + enableNotifications = true; + }; +} diff --git a/hosts/kde.nix b/hosts/kde.nix new file mode 100644 index 0000000..4c33738 --- /dev/null +++ b/hosts/kde.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: +{ + services.displayManager = { + enable = true; + sddm.enable = true; + sddm.wayland.enable = true; + defaultSession = "plasma"; + # autoLogin = { + # user = "fruchti"; + # enable = true; + # }; + }; + + services.desktopManager.plasma6.enable = true; + + # Sound + # security.rtkit.enable = true; + # services.pipewire = { + # enable = true; + # alsa.enable = true; + # alsa.support32Bit = true; + # pulse.enable = true; + # }; + hardware.pulseaudio = { + enable = true; + package = pkgs.pulseaudioFull; + extraConfig = '' + load-module module-switch-on-connect + ''; + }; + services.pipewire.enable = false; + + environment.systemPackages = with pkgs; [ + libsForQt5.qt5ct + libsForQt5.qtstyleplugin-kvantum + ]; +}