diff options
| author | seraphim <18ycm9tx@anonaddy.me> | 2026-07-24 23:36:49 +0700 |
|---|---|---|
| committer | seraphim <18ycm9tx@anonaddy.me> | 2026-07-24 23:36:49 +0700 |
| commit | 9f9921e9d32128f93b7237d51ce0af821120fc11 (patch) | |
| tree | 58a46923be8859d21fa662d60f1e4991da0a4b0f /configuration.nix | |
| parent | 395c08d0a334cdffbcc370384bee67f19f964399 (diff) | |
frst
Diffstat (limited to 'configuration.nix')
| -rw-r--r-- | configuration.nix | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index 4ba5769..0000000 --- a/configuration.nix +++ /dev/null @@ -1,327 +0,0 @@ -{ config, pkgs, inputs, ... }: - -{ - imports = [ - ./hardware-configuration.nix - inputs.noctalia-greeter.nixosModules.default - ]; - - # Custom EDID firmware loading for monitor - hardware.firmware = [ - (pkgs.runCommand "custom-edid" {} '' - mkdir -p $out/lib/firmware/edid - cp ${./mi_edid.bin} $out/lib/firmware/edid/mi_edid.bin - '') - ]; - - fileSystems."/mnt/giga" = { - device = "/dev/disk/by-uuid/bfed3a37-05e1-465b-a4b7-d74cd31bf937"; - fsType = "ext4"; - options = [ "defaults" "user" "rw" ]; - }; - - # --- Mullvad VPN daemon --- - services.mullvad-vpn = { - enable = true; - package = pkgs.mullvad-vpn; - }; - - services.resolved = { - enable = true; - dnssec = "true"; - dnsovertls = "true"; - domains = [ "~." ]; - settings = { - Resolve = { - DNS = "194.242.2.4#base.dns.mullvad.net 2a07:e340::4#base.dns.mullvad.net"; - FallbackDNS = ""; - }; - }; - }; - # Restrict systemd log size and retention - services.journald.extraConfig = '' - SystemMaxUse=50M - MaxRetentionSec=1month - ''; - # --- AUTOSTART USER SERVICES --- - systemd.user.services.swingmusic = { - description = "Swing Music Local Server"; - wantedBy = [ "graphical-session.target" ]; - after = [ "graphical-session.target" ]; - serviceConfig = { - ExecStart = "/home/seraphim/.swingmusic/swingmusic"; - Restart = "on-failure"; - WorkingDirectory = "/home/seraphim"; - - # --- Systemd Hardening Options --- - NoNewPrivileges = true; # Prevents the app from escalating privileges - PrivateTmp = true; # Gives the app its own isolated temporary directory - ProtectSystem = "strict"; # Mounts vital system folders as read-only for this app - - # NOTE: If swingmusic needs to write data/playlists to your home folder, - # you may need to change ProtectHome to false, or specify exact read/write paths. - ProtectHome = "false"; - - # Limits network protocols (only allows standard IPv4/IPv6, blocks raw sockets) - RestrictAddressFamilies = [ "AF_INET" "AF_INET6" ]; - }; - }; - - systemd.user.services.niri.enableDefaultPath = false; - qt = { - enable = true; - platformTheme = "qt5ct"; - style = "breeze"; - }; - - boot.kernelParams = [ - "drm.edid_firmware=DP-1:edid/mi_edid.bin" - "video=DP-1:2560x1440@180" - ]; - - # Bootloader configuration (systemd-boot) - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - # --- NETWORK AND ENCRYPTED DNS --- - networking.hostName = "opus"; - networking.networkmanager.enable = true; - - # --- TIMEZONE AND LOCALIZATION --- - time.timeZone = "Etc/GMT-7"; - i18n.defaultLocale = "en_US.UTF-8"; - - # Forcing all extra locales to English to clear the Perl warnings - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - - # Allow unfree packages (NVIDIA, Steam, etc.) - nixpkgs.config.allowUnfree = true; - - # Experimental Nix features - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - # Dynamic binary execution & FHS environment compatibility - programs.nix-ld.enable = true; - services.envfs.enable = true; - - # Shell and CLI enhancements - programs.starship.enable = true; - - # Throne configuration - programs.throne = { - enable = true; - tunMode.enable = true; - }; - - # Privilege elevation (doas) - security.doas.enable = true; - security.doas.extraRules = [ - { - users = [ "seraphim" ]; - keepEnv = true; - persist = true; - } - ]; - -# boot.initrd.secrets."/root/data.key" = null; - -# boot.initrd.luks.devices."data_crypt" = { -# device = "/dev/disk/by-uuid/58e1e570-4e1e-4cd6-8d9d-ce5210e6f501"; -# keyFile = "/root/data.key"; -# }; - - # --- GRAPHICS AND NVIDIA --- - hardware.graphics.enable = true; - hardware.graphics.enable32Bit = true; - services.xserver.videoDrivers = [ "nvidia" ]; - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = false; - open = false; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.latest; - }; - - # --- NIRI WAYLAND COMPOSITOR --- - programs.niri.enable = true; - - # --- NOCTALIA GREETER --- - programs.noctalia-greeter = { - enable = true; - settings = { - cursor = { - theme = "Bibata-Modern-Ice"; - size = 24; - path = "${pkgs.bibata-cursors}/share/icons"; - }; - }; - }; - - # --- SYSTEM SERVICES FOR FILE MANAGEMENT --- - services.gvfs.enable = true; - services.tumbler.enable = true; - services.gnome.gnome-keyring.enable = true; - programs.dconf.enable = true; - - # --- XDG DESKTOP PORTALS (NIRI / WAYLAND) --- - xdg.portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gnome - pkgs.xdg-desktop-portal-gtk - ]; - }; - - # --- AUDIO (PIPEWIRE) --- - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - fonts.fontconfig.enable = true; - environment.variables = { - SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt"; - NIX_SSL_CERT_FILE = "/etc/ssl/certs/ca-certificates.crt"; - }; - # --- GAMING (STEAM) --- - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - dedicatedServer.openFirewall = true; - }; - - # --- ENVIRONMENT VARIABLES FOR WAYLAND + NVIDIA --- - environment.sessionVariables = { - LIBVA_DRIVER_NAME = "nvidia"; - XCURSOR_THEME = "Bibata-Modern-Ice"; - XCURSOR_SIZE = "20"; - # GBM_BACKEND = "nvidia-drm"; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - NIXOS_OZONE_WL = "1"; - CC = "gcc"; - ELECTRON_OZONE_PLATFORM_HINT = "auto"; - GSK_RENDERER = "ng"; - QT_QPA_PLATFORM = "wayland;xcb"; - QT_ENABLE_HIGHDPI_SCALING = "1"; - QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - QT_SCREEN_SCALE_FACTORS = "1.5"; - }; - - # --- FONTS --- - fonts.packages = with pkgs; - [ - font-awesome - nerd-fonts.jetbrains-mono - nerd-fonts.symbols-only - jetbrains-mono - ]; - - # --- USER CONFIGURATION --- - users.users."seraphim" = { - isNormalUser = true; - description = "seraphim"; - extraGroups = [ "networkmanager" "wheel" ]; - packages = with pkgs; []; - }; - - programs.fish = { - enable = true; - shellAliases = { - # Replicate the exact layout with Ghostty-friendly icons - ls = "eza -al --icons=auto"; - ll = "eza -al --icons=auto"; - }; - }; - - # --- SYSTEM PACKAGES --- - environment.systemPackages = with pkgs; - [ - inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default - (pkgs.btop.override { cudaSupport = true; }) - # Terminals & Shell Utilities - fastfetch - fzf - ghostty - kitty - ghfetch - cacert - # Text Editors - micro - neovim - emacs-pgtk - - # File Managers & Archiving - nautilus - loupe - sushi - file-roller - yazi - - kdePackages.ark - kdePackages.qt6ct - - # Utils - cryptsetup - util-linux - eza - pkgs.yt-dlp - pkgs.caligula - # GStreamer codecs - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-ugly - - # Wayland & Niri Desktop Tools - cliphist - bibata-cursors - fuzzel - grim - hyprpolkitagent - noctalia-shell - slurp - wl-clipboard - wtype - xwayland-satellite - - # Audio & Brightness Controls - brightnessctl - pamixer - pavucontrol - - # Desktop Applications - keepassxc - telegram-desktop - vesktop - nvidia-vaapi-driver - pkgs.opencode - pkgs.claude-code - # Software Development & Toolchains - black - cargo - clang - clippy - git - pyright - python3 - rust-analyzer - rustc - gnumake - tree-sitter - nodejs - ]; - - system.stateVersion = "26.05"; -} |
