diff --git a/default.nix b/default.nix index a8211af..22d2718 100644 --- a/default.nix +++ b/default.nix @@ -85,7 +85,7 @@ in system = "x86_64-linux"; specialArgs = { - # inherit repos; + inherit repos; args = { # inherit pins; inherit nixpkgs; diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index 76ea6c4..da003db 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -8,31 +8,22 @@ # disabledModules = [ "services/networking/tetrd.nix" ]; imports = [ - ./system/configuration.nix # Main configuration - ./system/networking.nix # Network config - ./system/services.nix + ./system + ./services ./hjem-rum/snowy.nix # :3 + ../../modules/private/desktop.nix + ../../modules/sops/snowflake.nix + # ../../modules/snownet # /mnt/SnowData/snowy/Documents/repos/nixpkgs/nixos/modules/services/networking/tetrd.nix + /mnt/SnowData/snowy/Documents/repos/nixpkgs/nixos/modules/services/networking/pgdog.nix args.flakes.hjem.nixosModules.default args.flakes.nix-gaming-edge.nixosModules.default - # (import "${args.pins.lix-nixos-module}/module.nix" ({ - # lix = args.pins.lix; - # # versionSuffix = "pre${builtins.substring 0 8 args.pins.lix.lastModifiedDate}-${ - # # args.pins.lix.shortRev or args.pins.lix.dirtyShortRev - # # }"; - # })) - - # (import "${args.pins.lix-nixos-module}/module.nix" { lix = args.pins.lix; }) - # - ../../modules/sops/snowflake.nix - ../../modules/snownet ]; nixpkgs = { - # inherit system; config = { permittedInsecurePackages = [ ]; allowUnfree = true; @@ -42,6 +33,7 @@ overlays = [ args.flakes.nix-gaming-edge.overlays.mesa-git args.flakes.nix-gaming-edge.overlays.proton-cachyos + args.flakes.nix-gaming-edge.overlays.eden-emulator (final: prev: { # tetrd = repos.custom.tetrd; }) diff --git a/hosts/desktop/hjem-rum/snowy.nix b/hosts/desktop/hjem-rum/snowy.nix index eadc27f..8402700 100644 --- a/hosts/desktop/hjem-rum/snowy.nix +++ b/hosts/desktop/hjem-rum/snowy.nix @@ -2,108 +2,204 @@ args, config, pkgs, - # repos, + repos, ... }: { users.users.snowy.packages = with pkgs; [ - fluxer-desktop - nicotine-plus - - # factorio - # factorio-space-age + + ### GUI apps + mpv + tauon + ente-desktop + cherry-studio args.flakes.zen-browser.packages."${stdenv.hostPlatform.system}".twilight args.flakes.helium.packages.x86_64-linux.default zed-editor vscode - helix - gh - nix-output-monitor - glow - delta - nixpkgs-review - - ctop - waypipe - ente-desktop - tauon - yt-dlp - mpv - - jetbrains.idea - # jetbrains.rider - # unityhub - - #language servers - bash-language-server - hyprls - kdePackages.qtdeclarative - kdePackages.qtutilities - python313Packages.python-lsp-server - - chafa - # repos.unstable.grayjay - - # gaphor - # d-spyd - # bustle - + fluxer-desktop + nicotine-plus + eden-emulator + ryubing vesktop - - rustup - gcc - just - jujutsu - sops - - # silly game - clonehero - - # silly + clonehero # silly game papers loupe gnome-clocks - # helvum # deprecated crosspipe # krita orca-slicer - protonplus - protontricks + # protonplus + # protontricks winetricks obsidian - element-desktop - radio-cli # rust + # element-desktop heroic - bottles + # bottles # hydralauncher - wineWow64Packages.stagingFull - easyeffects + repos.stable.easyeffects + jellyfin-desktop + amdgpu_top + mangojuice + rofi + mako + blueman + pavucontrol + waybar + dconf-editor + nautilus + file-roller + prismlauncher + signal-desktop + qbittorrent - monocraft + glogg + # monero-gui + # p2pool + # keyguard + bitwarden-desktop + quickshell + pear-desktop + r2modman + hoppscotch + # ani-cli + syncplay + mumble + # speedtest-cli + + ### CLI stuff python3 - jellyfin-desktop - # wine64 - # hyprlandPlugins.hyprsplit + radio-cli # rust + scrcpy + # ctop + yt-dlp + waypipe + nix-output-monitor + glow + chafa + delta + nixpkgs-review + just + jujutsu + sops + android-tools + playerctl + hyprpicker + swaybg + # hyprshot + + ## language servers + bash-language-server + hyprls + kdePackages.qtdeclarative + kdePackages.qtutilities + python313Packages.python-lsp-server + + ### DEPS + adwaita-icon-theme + adw-gtk3 + polkit_gnome + mangohud + bluez-tools + gh # for nix review ]; + systemd.user.services = { + polkit-gnome-authentication-agent-1 = { + description = "polkit-gnome-authentication-agent-1"; + wantedBy = [ "graphical-session.target" ]; + wants = [ "graphical-session.target" ]; + after = [ "graphical-session.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + }; + hjem.users.snowy = { enable = true; directory = config.users.users.snowy.home; user = "snowy"; - # environment.sessionVariables = { - - # }; xdg = { config.files = { - "environment.d/10-hjem-rum.conf" = { + "environment.d/10-env.conf" = { text = '' - POLKIT_GNOME = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + PATH=$HOME/.local/bin:$PATH + TERMINAL=foot + #TERM=foot + EDITOR=hx + + # XDG + XDG_DATA_HOME=$HOME/.local/share + XDG_CONFIG_HOME=$HOME/.config + XDG_STATE_HOME=$HOME/.local/state + XDG_CACHE_HOME=$HOME/.cache + + # WAYLAND STUFF + ELECTRON_OZONE_PLATFORM_HINT=auto + #OZONE_PLATFORM=WAYLAND + #GTK + GTK_USE_PORTAL=1 + GTK2_RC_FILES=$XDG_CONFIG_HOME/gtk-2.0/gtkrc + + #RUST + CARGO_HOME=$XDG_DATA_HOME/cargo + RUSTUP_HOME=$XDG_DATA_HOME/rustup + + # NPM + NPM_CONFIG_INIT_MODULE=$XDG_CONFIG_HOME/npm/config/npm-init.js + NPM_CONFIG_CACHE=$XDG_CACHE_HOME/npm + NPM_CONFIG_TMP=$XDG_RUNTIME_DIR/npm + + # GO + GOPATH=$XDG_DATA_HOME/go + + # PYTHON + PYTHON_HISTORY=$XDG_STATE_HOME/python/history + + # ANDROID + ANDROID_USER_HOME=$XDG_DATA_HOME/android + ANDROID_HOME=$XDG_DATA_HOME/android/sdk # For sdk + + # GPG + GNUPGHOME=$XDG_DATA_HOME/gnupg + + # X11 STUFF + XCURSOR_PATH=/usr/share/icons:$XDG_DATA_HOME/icons + XAUTHORITY=$XDG_RUNTIME_DIR/Xauthority XCURSOR_THEME = "phinger-cursors-light"; XCURSOR_SIZE = "24"; + + # TERMINFO + TERMINFO=$XDG_DATA_HOME/terminfo + TERMINFO_DIRS=$XDG_DATA_HOME/terminfo:/usr/share/terminfo + + # NUGET + NUGET_PACKAGES=$XDG_CACHE_HOME/NuGetPackages + + # JAVA + _JAVA_OPTIONS=-Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java + GRADLE_USER_HOME=$XDG_DATA_HOME/gradle + + # WINE + WINEPREFIX=$XDG_DATA_HOME/wine + + # DOTNET + DOTNET_CLI_HOME=$XDG_DATA_HOME/dotnet + + # AMD Vulkan + AMD_VULKAN_ICD=RADV + + # Docker + DOCKER_CONFIG=$XDG_CONFIG_HOME/docker ''; }; }; @@ -123,40 +219,38 @@ }; }; - rum = { - programs = { - direnv = { - enable = true; - integrations = { - fish.enable = true; - nix-direnv.enable = true; - }; - settings = { - global = { - log_filter = "^$"; - log_format = "-"; - }; + rum.programs = { + direnv = { + enable = true; + integrations = { + fish.enable = true; + nix-direnv.enable = true; + }; + settings = { + global = { + log_filter = "^$"; + log_format = "-"; }; }; + }; - helix = { - enable = true; - }; + # helix = { + # enable = true; + # }; - nix-your-shell = { - enable = true; - integrations.fish.enable = true; - }; + nix-your-shell = { + enable = true; + integrations.fish.enable = true; + }; - obs-studio = { - enable = true; - package = pkgs.wrapOBS { - plugins = with pkgs.obs-studio-plugins; [ - obs-vkcapture - obs-pipewire-audio-capture - obs-text-pthread - ]; - }; + obs-studio = { + enable = true; + package = pkgs.wrapOBS { + plugins = with pkgs.obs-studio-plugins; [ + obs-vkcapture + obs-pipewire-audio-capture + obs-text-pthread + ]; }; }; }; diff --git a/hosts/desktop/services/apps.nix b/hosts/desktop/services/apps.nix new file mode 100644 index 0000000..59eaeeb --- /dev/null +++ b/hosts/desktop/services/apps.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: +{ + services = { + flatpak.enable = true; + blueman.enable = true; + + ollama = { + enable = true; + package = pkgs.ollama-rocm; + host = "[::]"; + }; + + # lsfg-vk = { + # enable = true; + # ui.enable = true; # installs gui for configuring lsfg-vk + # }; + + sunshine = { + enable = true; + autoStart = true; + capSysAdmin = true; + openFirewall = true; + }; + }; +} diff --git a/hosts/desktop/services/default.nix b/hosts/desktop/services/default.nix new file mode 100644 index 0000000..f582d76 --- /dev/null +++ b/hosts/desktop/services/default.nix @@ -0,0 +1,8 @@ +{ ... }: +{ + imports = [ + ./system.nix + ./network.nix + ./apps.nix + ]; +} diff --git a/hosts/desktop/services/network.nix b/hosts/desktop/services/network.nix new file mode 100644 index 0000000..86f0627 --- /dev/null +++ b/hosts/desktop/services/network.nix @@ -0,0 +1,36 @@ +{ repos, ... }: +{ + services = { + timesyncd.enable = true; + ntp.enable = true; + + mullvad-vpn.enable = true; + + tailscale = { + enable = true; + extraUpFlags = [ + "--accept-dns=false" + ]; + }; + + netbird = { + package = repos.stable.netbird; + ui.enable = false; + clients.fennec = { + port = 51820; + environment = { + NB_MANAGEMENT_URL = "https://netbird.awoo.ren"; + # NB_SETUP_KEY_FILE = config.sops.secrets.nb_setup_key.path; + }; + }; + }; + + # for mdns, then I can just access devices with hostname.local + avahi = { + enable = true; + nssmdns4 = true; + nssmdns6 = true; + openFirewall = true; + }; + }; +} diff --git a/hosts/desktop/services/system.nix b/hosts/desktop/services/system.nix new file mode 100644 index 0000000..9f1bd07 --- /dev/null +++ b/hosts/desktop/services/system.nix @@ -0,0 +1,55 @@ +{ pkgs, ... }: +{ + services = { + gvfs.enable = true; + gnome.gnome-keyring.enable = true; + + lact.enable = true; + fwupd.enable = true; + + # dbus.packages = with pkgs; [ + # # gnome-keyring + # gcr + # ]; + + pipewire = { + enable = true; + alsa.enable = true; + # alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + wireplumber.enable = true; + }; + + udev = { + enable = true; + extraRules = '' + ENV{ID_VENDOR_ID}=="303a", ENV{ID_MODEL_ID}=="1001", MODE="0777" + ''; + packages = [ + pkgs.opentabletdriver + ]; + }; + + greetd = { + enable = true; + restart = true; + useTextGreeter = true; + settings.default_session = { + command = "${pkgs.tuigreet}/bin/tuigreet --remember --remember-session --user-menu --time --greeting 'Hello, Snowflake!'"; + user = "greeter"; + }; + }; + + # Configure keymap in X11 + xserver.xkb = { + layout = "us"; + # options = "caps:escape"; + }; + + desktopManager = { + gnome.enable = true; + cosmic.enable = false; + }; + }; +} diff --git a/hosts/desktop/system/configuration.nix b/hosts/desktop/system/configuration.nix index 3d9a003..e19111f 100644 --- a/hosts/desktop/system/configuration.nix +++ b/hosts/desktop/system/configuration.nix @@ -12,11 +12,6 @@ }: { - imports = [ - # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - qt = { enable = true; # style = "adwaita-dark"; @@ -28,7 +23,6 @@ registry.nixpkgs.to = { type = "path"; path = args.pins.nixpkgs-unstable.outPath; - # narHash = args.pins.nixpkgs-unstable.narHash; }; package = repos.unstable.lixPackageSets.git.lix; @@ -44,13 +38,6 @@ ]; auto-optimise-store = true; use-xdg-base-directories = true; - - # substituters = [ - # "https://cache.garnix.io?priority=3" - # ]; - # trusted-public-keys = [ - # "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" - # ]; }; gc = { @@ -66,7 +53,7 @@ swapDevices = [ { device = "/swapfile"; - size = 16 * 1024; # 32GB + size = 16 * 1024; } ]; @@ -133,12 +120,12 @@ spiceUSBRedirection.enable = true; - docker = { - rootless = { - enable = true; - setSocketVariable = true; - }; - }; + # docker = { + # rootless = { + # enable = true; + # setSocketVariable = true; + # }; + # }; # waydroid = { # enable = true; @@ -157,16 +144,6 @@ enable = true; enable32Bit = true; # extraPackages = with pkgs; [ - # # # mesa - # # libva - # # libvdpau-va-gl - - # # #vulkano - # # vulkan-loader - # # vulkan-validation-layers - - # # #opencl - # # rocmPackages.clr.icd # ]; }; @@ -205,7 +182,8 @@ ''; }; - rtkit.enable = true; + polkit.enable = true; + rtkit.enable = true; # for pipewire and such pam = { loginLimits = [ @@ -222,33 +200,33 @@ value = -20; } ]; - services = { - greetd.enableGnomeKeyring = true; - greetd-password.enableGnomeKeyring = true; - }; + # services = { + # greetd.enableGnomeKeyring = true; + # greetd-password.enableGnomeKeyring = true; + # }; }; wrappers = { - docker-rootlesskit = { - owner = "root"; - group = "root"; - capabilities = "cap_net_bind_service+ep"; - source = "${pkgs.rootlesskit}/bin/rootlesskit"; - }; - - qemu-netcap = { - source = "${pkgs.qemu_kvm}/bin/qemu-system-x86_64"; - capabilities = "cap_net_bind_service=ep"; - owner = "snowy"; - group = "wheel"; - }; - - passt = { - source = "${pkgs.passt}/bin/passt"; - capabilities = "cap_net_bind_service=ep"; - owner = "snowy"; - group = "wheel"; - }; + # docker-rootlesskit = { + # owner = "root"; + # group = "root"; + # capabilities = "cap_net_bind_service+ep"; + # source = "${pkgs.rootlesskit}/bin/rootlesskit"; + # }; + + # qemu-netcap = { + # source = "${pkgs.qemu_kvm}/bin/qemu-system-x86_64"; + # capabilities = "cap_net_bind_service=ep"; + # owner = "snowy"; + # group = "wheel"; + # }; + + # passt = { + # source = "${pkgs.passt}/bin/passt"; + # capabilities = "cap_net_bind_service=ep"; + # owner = "snowy"; + # group = "wheel"; + # }; }; }; @@ -265,24 +243,8 @@ }; }; - # console = { - # font = "Lat2-Terminus16"; - # keyMap = "us"; - # useXkbConfig = true; # use xkb.options in tty. - # }; - systemd.services = { - lact = { - description = "AMDGPU Control Deamon"; - after = [ "multi-user.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${pkgs.lact}/bin/lact daemon"; - }; - enable = true; - }; - NetworkManager-wait-online.enable = false; - # firewall.enable = false; + # NetworkManager-wait-online.enable = false; }; xdg = { @@ -313,75 +275,6 @@ }; }; - programs = { - steam = { - enable = true; - remotePlay.openFirewall = true; - localNetworkGameTransfers.openFirewall = true; - dedicatedServer.openFirewall = true; - protontricks.enable = true; - }; - - gamescope.enable = true; - noisetorch.enable = true; - fish.enable = true; - - # gamemode = { - # enable = true; - - # settings = { - # gpu = { - # apply_gpu_optimisations = "accept-responsibility"; # Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks - # amd_performance_level = "high"; # This corresponds to power_dpm_force_performance_level, "manual" is not supported for now - # gpu_device = 1; # The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ - # }; - # custom = { - # start = "${pkgs.libnotify}/bin/notify-send 'GameMode started!' && systemctl --user stop docker opentabletdriver obex gvfs-daemon.service && pkexec systemctl stop bluetooth.service mullvad-daemon.service avahi-daemon.service systemd-machined ntpd"; - # end = "${pkgs.libnotify}/bin/notify-send 'GameMode stopped!' && systemctl --user start docker opentabletdriver obex gvfs-daemon.service && pkexec systemctl start bluetooth.service mullvad-daemon.service avahi-daemon.service systemd-machined ntpd"; - # }; - # }; - # }; - - hyprland = { - enable = true; - xwayland.enable = true; - withUWSM = true; - #systemd.enable = true; - #portalPackage = unstable.xdg-desktop-portal-hyprland; - #package = unstable.hyprland; - }; - - niri.enable = true; - - wireshark = { - enable = true; - dumpcap.enable = true; - usbmon.enable = true; - }; - - seahorse.enable = true; - dconf.enable = true; - - nautilus-open-any-terminal = { - enable = true; - terminal = "foot"; - }; - - gnupg.agent = { - enable = true; - enableSSHSupport = true; - pinentryPackage = pkgs.pinentry-gnome3; - }; - - nix-ld.enable = true; - - winbox = { - package = pkgs.winbox4; - openFirewall = true; - enable = true; - }; - }; - fonts = { enableDefaultPackages = true; @@ -403,21 +296,14 @@ ]; }; - # List packages installed in system profile. To search, run: - # $ nix search wget - # environment = { systemPackages = with pkgs; [ nh npins - glib # for gsettings - adwaita-icon-theme - adw-gtk3 + # glib # for gsettings tuigreet libsecret - hyprpicker - hyprshot nixd nixfmt @@ -431,10 +317,6 @@ openssh dosfstools btrfs-progs - # corretto21 - jdk - jdk17 - android-tools gst_all_1.gstreamer gst_all_1.gst-plugins-base @@ -459,11 +341,6 @@ fastfetch cpufetch alsa-utils - speedtest-cli - # zopfli - fwupd - android-tools - netcap # nemo-with-extensions # nemo-fileroller @@ -471,74 +348,32 @@ zellij helix - nano yazi rclone - - bluez-tools passt # needed for user-mode port forwarding in vm vulkan-tools rocmPackages.rocminfo rocmPackages.rocm-smi - amdgpu_top - mangohud - mangojuice - rofi - mako libnotify - playerctl - waybar - polkit_gnome cliphist wl-clipboard - lact libsForQt5.qt5ct kdePackages.qt6ct kdePackages.breeze kdePackages.breeze-icons - dconf-editor - nautilus - file-roller foot - blueman - pavucontrol # niri repos.unstable.xwayland-satellite xdg-desktop-portal-gnome - swaybg + wireshark-qt # swww - - virt-manager - prismlauncher - signal-desktop - qbittorrent - wireshark - scrcpy - glogg - - pear-desktop - r2modman - hoppscotch - ani-cli - syncplay - mumble - - monero-gui - p2pool - # keyguard - bitwarden-desktop - quickshell - # distrobox - - # (discord.override { - # withOpenASAR = true; - # withVencord = true; - # }) + # netcap + # virt-manager ]; gnome.excludePackages = with pkgs; [ diff --git a/hosts/desktop/system/default.nix b/hosts/desktop/system/default.nix new file mode 100644 index 0000000..bb6ebfb --- /dev/null +++ b/hosts/desktop/system/default.nix @@ -0,0 +1,10 @@ +{ ... }: + +{ + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ./networking.nix + ./programs.nix + ]; +} diff --git a/hosts/desktop/system/hardware-configuration.nix b/hosts/desktop/system/hardware-configuration.nix index a957967..1a715c1 100644 --- a/hosts/desktop/system/hardware-configuration.nix +++ b/hosts/desktop/system/hardware-configuration.nix @@ -4,7 +4,6 @@ { config, lib, - pkgs, modulesPath, ... }: diff --git a/hosts/desktop/system/networking.nix b/hosts/desktop/system/networking.nix index 90e720f..4f5f64a 100644 --- a/hosts/desktop/system/networking.nix +++ b/hosts/desktop/system/networking.nix @@ -1,71 +1,15 @@ { config, - lib, - pkgs, - pkgs-unstable, ... }: { - # services.resolved.enable = false; - - # dnsmasq = { - # enable = true; - # settings = { - # servers = [ - # "1.1.1.1" - # ]; - # dhcp-range = [ "192.168.0.2,192.168.0.254" ]; - # }; - # }; - networking = { hostName = "snowflake"; - # wireless.enable = true; + networkmanager.enable = false; useNetworkd = true; - # networkmanager.wifi.backend = "iwd"; - # wireless.iwd.enable = true; - # useDHCP = true; - - # dhcpcd = { - # enable = true; - - # denyInterfaces = [ - # "br0" - # "virbr0" - # ]; - # }; - - # interfaces.br0.useDHCP = true; - # interfaces.enp9s0.useDHCP = false; - - # bridges = { - # br0 = { - # interfaces = [ "enp9s0" ]; - # }; - # }; - - # search = [ - # "taila3a3d2.ts.net" - # ]; - - # interfaces = { - # enp9s0 = { - # ipv4.addresses = [ - # { - # address = "192.168.88.69"; - # prefixLength = 24; - # } - # ]; - # # ipv6.addresses = [ - # # { - # # address = "2a0a:4cc0:0:1eb::c0ff:ee"; - # # prefixLength = 64; - # # } - # # ]; - # }; - # }; + nftables.enable = true; nameservers = [ # Cloudflare @@ -75,38 +19,14 @@ "1.0.0.1" ]; - # resolvconf = { - # enable = true; - # dnsExtensionMechanism = true; # ensures resolvconf picks up new nameservers - # }; - - # nat = { - # enable = true; - # enableIPv6 = true; - # externalInterface = "wlan0"; - # internalInterfaces = [ "enp9s0" ]; - # }; - - # useNetworkd = true; - - # wireless.iwd = { - # enable = true; - - # settings = { - # Network = { - # EnableIPv6 = true; - # NameResolvingService = "resolvconf"; - # }; - # Settings = { - # AutoConnect = true; - # }; - # }; - # }; - - # # Open ports in the firewall. + # Open ports in the firewall. firewall = { enable = true; + # extraInputRules = '' + # ip saddr 192.168.1.0/24 tcp dport ${toString config.services.ollama.port} accept comment "Trusted lan connection" + # ''; + allowedTCPPorts = [ 12315 # 44217 @@ -114,6 +34,8 @@ # 8080 27016 + config.services.ollama.port + 53 33693 @@ -135,76 +57,4 @@ ]; }; }; - - # systemd.network = { - # enable = true; - # wait-online.enable = false; - - # networks = { - - # "10-wlp" = { - # matchConfig.Name = "enp9s0"; - # networkConfig = { - # DHCP = "ipv4"; - # IPv4Forwarding = true; - # IPv6Forwarding = true; - # IPv6AcceptRA = true; - # # DNS = [ - # # "1.1.1.1" - # # "1.0.0.1" - # # "2606:4700:4700::1111" - # # "2606:4700:4700::1001" - # # ]; - # }; - # }; - - # "99-ethernet-default-dhcp" = { - # matchConfig = { - # Kind = "!*"; - # Type = "ether"; - # }; - - # networkConfig = { - # DHCP = "yes"; - # IPv6PrivacyExtensions = "kernel"; - # }; - # }; - - # "99-wireless-client-dhcp" = { - # matchConfig.WLANInterfaceType = "station"; - # networkConfig = { - # DHCP = "yes"; - # IPv6PrivacyExtensions = "kernel"; - # }; - - # dhcpV4Config.RouteMetric = 1025; - - # ipv6AcceptRAConfig.RouteMetric = 1025; - # }; - - # # "20-lan" = { - # # matchConfig.Name = "enp9s0"; - # # networkConfig = { - # # DHCPServer = true; - # # IPv4Forwarding = true; - # # IPv6Forwarding = true; - # # IPv6SendRA = true; - # # IPMasquerade = "both"; - # # Address = [ "192.168.100.1/24" ]; - # # }; - # # dhcpServerConfig = { - # # # DNS = [ - # # # "1.1.1.1" - # # # "1.0.0.1" - # # # "2606:4700:4700::1111" - # # # "2606:4700:4700::1001" - # # # ]; - # # PoolOffset = 10; - # # PoolSize = 100; - # # }; - # # linkConfig.RequiredForOnline = "no"; - # # }; - - # }; - # }; } diff --git a/hosts/desktop/system/programs.nix b/hosts/desktop/system/programs.nix new file mode 100644 index 0000000..cfb7559 --- /dev/null +++ b/hosts/desktop/system/programs.nix @@ -0,0 +1,79 @@ +{ pkgs, ... }: + +{ + programs = { + steam = { + enable = true; + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + dedicatedServer.openFirewall = true; + protontricks.enable = true; + }; + + appimage = { + enable = true; + binfmt = true; + package = pkgs.appimage-run.override { + extraPkgs = pkgs: [ + pkgs.icu + # pkgs.libxcrypt-legacy + # pkgs.python312 + # pkgs.python312Packages.torch + ]; + }; + }; + + gamescope.enable = true; + noisetorch.enable = true; + fish.enable = true; + seahorse.enable = true; + dconf.enable = true; + nix-ld.enable = true; + virt-manager.enable = true; + + hyprland = { + enable = true; + xwayland.enable = true; + withUWSM = true; + }; + + niri = { + enable = true; + useNautilus = true; + }; + + wireshark = { + enable = true; + dumpcap.enable = true; + usbmon.enable = true; + }; + + nautilus-open-any-terminal = { + enable = true; + terminal = "foot"; + }; + + gnupg.agent = { + enable = true; + enableSSHSupport = true; + pinentryPackage = pkgs.pinentry-gnome3; + }; + + winbox = { + package = pkgs.winbox4; + openFirewall = true; + enable = true; + }; + + # gamemode = { + # enable = true; + # settings = { + # gpu = { + # apply_gpu_optimisations = "accept-responsibility"; # Setting this to the keyphrase "accept-responsibility" will allow gamemode to apply GPU optimisations such as overclocks + # amd_performance_level = "high"; # This corresponds to power_dpm_force_performance_level, "manual" is not supported for now + # gpu_device = 1; # The DRM device number on the system (usually 0), ie. the number in /sys/class/drm/card0/ + # }; + # }; + # }; + }; +} diff --git a/hosts/desktop/system/services.nix b/hosts/desktop/system/services.nix deleted file mode 100644 index dae53b9..0000000 --- a/hosts/desktop/system/services.nix +++ /dev/null @@ -1,110 +0,0 @@ -{ pkgs, repos, ... }: -{ - services = { - timesyncd.enable = true; - - pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - - wireplumber.enable = true; - }; - - udev = { - enable = true; - extraRules = '' - ENV{ID_VENDOR_ID}=="303a", ENV{ID_MODEL_ID}=="1001", MODE="0777" - ''; - packages = [ - pkgs.opentabletdriver - ]; - }; - - greetd = { - enable = true; - settings = { - default_session = { - command = "${pkgs.tuigreet}/bin/tuigreet --remember --remember-session --user-menu --time --greeting 'Hello, Snowflake!'"; - user = "greeter"; - }; - }; - }; - - # Configure keymap in X11 - xserver.xkb = { - layout = "us"; - options = "caps:escape"; - }; - - mullvad-vpn = { - enable = true; - package = pkgs.mullvad-vpn; - }; - - ntp.enable = true; - gvfs = { - enable = true; - package = pkgs.gnome.gvfs; - }; - gnome.gnome-keyring.enable = true; - flatpak.enable = true; - blueman.enable = true; - - dbus.packages = with pkgs; [ - gnome-keyring - gcr - # libsecret - ]; - - tailscale = { - enable = true; - extraUpFlags = [ - "--accept-dns=false" - ]; - }; - - netbird = { - package = repos.stable.netbird; - ui = { - enable = true; - package = repos.stable.netbird-ui; - }; - clients.fennec = { - - port = 51820; - environment = { - NB_MANAGEMENT_URL = "https://netbird.killuaa.dev"; - # NB_SETUP_KEY_FILE = config.sops.secrets.nb_setup_key.path; - }; - }; - }; - - # lsfg-vk = { - # enable = true; - # ui.enable = true; # installs gui for configuring lsfg-vk - # }; - - desktopManager.gnome.enable = true; - - # Enable the COSMIC desktop environment - desktopManager.cosmic.enable = false; - - sunshine = { - enable = true; - autoStart = true; - capSysAdmin = true; - openFirewall = true; - }; - - # for mdns, then I can just access devices with hostname.local - avahi = { - enable = true; - nssmdns4 = true; - nssmdns6 = true; - openFirewall = true; - }; - }; -} diff --git a/modules/npins/sources.json b/modules/npins/sources.json index aba74c3..80a4c34 100644 --- a/modules/npins/sources.json +++ b/modules/npins/sources.json @@ -23,9 +23,9 @@ }, "branch": "master", "submodules": false, - "revision": "b422c32cbb574728c93e24ce2542806e27993c03", - "url": "https://github.com/amaanq/helium-flake/archive/b422c32cbb574728c93e24ce2542806e27993c03.tar.gz", - "hash": "sha256-ZK0fQvpYf3e+ty62WHbzK+ZcIJLnfZuyQV2x0PWuyCU=" + "revision": "d6f4aa6d9f313acdbdf7c356fd55c7d5e3c4c991", + "url": "https://github.com/amaanq/helium-flake/archive/d6f4aa6d9f313acdbdf7c356fd55c7d5e3c4c991.tar.gz", + "hash": "sha256-yILdOXqhZyCCWVEMCERd179AwPaMl94ZZdnBcV1kkGQ=" }, "hjem": { "type": "Git", @@ -36,9 +36,9 @@ }, "branch": "main", "submodules": false, - "revision": "32bd6d54d805a3eb41efa62a940eeceaf263c4a8", - "url": "https://github.com/feel-co/hjem/archive/32bd6d54d805a3eb41efa62a940eeceaf263c4a8.tar.gz", - "hash": "sha256-W+kpLQ5J/DDaY1nUmvN9aIAfh5ixdyqYM76ZUdcvMBU=" + "revision": "35c2158ba101d7b42b05debfcb169ba32dad3bbc", + "url": "https://github.com/feel-co/hjem/archive/35c2158ba101d7b42b05debfcb169ba32dad3bbc.tar.gz", + "hash": "sha256-a0O56qWfPEKe0mBKgvcQL5UDpWmon70AKJspHNkEJV8=" }, "hjem-rum": { "type": "Git", @@ -75,9 +75,9 @@ }, "branch": "nightly", "submodules": false, - "revision": "4a86b355eb417057fbcaf8791fa8c9059a0337d2", - "url": "https://github.com/powerofthe69/nix-gaming-edge/archive/4a86b355eb417057fbcaf8791fa8c9059a0337d2.tar.gz", - "hash": "sha256-rlOm9gD6gbfL14UNq16BoNsODfdpJGO0k73T9v6UrtY=" + "revision": "cc5d6ade3dea271bed0631888b6ca597991f06cd", + "url": "https://github.com/powerofthe69/nix-gaming-edge/archive/cc5d6ade3dea271bed0631888b6ca597991f06cd.tar.gz", + "hash": "sha256-05PDthJs6UBkLjLN03qzO0EpjGnwkC/6f+T6I6GKdAY=" }, "nixpkgs-stable": { "type": "Git", @@ -88,9 +88,9 @@ }, "branch": "nixos-25.11", "submodules": false, - "revision": "54170c54449ea4d6725efd30d719c5e505f1c10e", - "url": "https://github.com/NixOS/nixpkgs/archive/54170c54449ea4d6725efd30d719c5e505f1c10e.tar.gz", - "hash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=" + "revision": "a4bf06618f0b5ee50f14ed8f0da77d34ecc19160", + "url": "https://github.com/NixOS/nixpkgs/archive/a4bf06618f0b5ee50f14ed8f0da77d34ecc19160.tar.gz", + "hash": "sha256-AIiMJiqvGrN4HyLEbKAoCSRRYn0rnlW5VbKNIMIYqm4=" }, "nixpkgs-unstable": { "type": "Git", @@ -101,9 +101,9 @@ }, "branch": "nixos-unstable", "submodules": false, - "revision": "4c1018dae018162ec878d42fec712642d214fdfa", - "url": "https://github.com/NixOS/nixpkgs/archive/4c1018dae018162ec878d42fec712642d214fdfa.tar.gz", - "hash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=" + "revision": "0726a0ecb6d4e08f6adced58726b95db924cef57", + "url": "https://github.com/NixOS/nixpkgs/archive/0726a0ecb6d4e08f6adced58726b95db924cef57.tar.gz", + "hash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=" }, "sops-nix": { "type": "Git", @@ -114,9 +114,9 @@ }, "branch": "master", "submodules": false, - "revision": "31ac5fe5d015f76b54058c69fcaebb66a55871a4", - "url": "https://github.com/Mic92/sops-nix/archive/31ac5fe5d015f76b54058c69fcaebb66a55871a4.tar.gz", - "hash": "sha256-VKp9bhVSm0bT6JWctFy06ocqxGGnWHi1NfoE90IgIcY=" + "revision": "8eaee5c45428b28b8c47a83e4c09dccec5f279b5", + "url": "https://github.com/Mic92/sops-nix/archive/8eaee5c45428b28b8c47a83e4c09dccec5f279b5.tar.gz", + "hash": "sha256-bc+ZZCmOTNq86/svGnw0tVpH7vJaLYvGLLKFYP08Q8E=" }, "tangled_core": { "type": "Git", @@ -126,9 +126,9 @@ }, "branch": "master", "submodules": false, - "revision": "d404bb7633c163b35e61f6bebfc642444247ac9f", + "revision": "ba44ea59aabf51db4712ea10ef0d6261e44c8b93", "url": null, - "hash": "sha256-aYeDY7ruf9MHsI++hpoEHyWIk6jxbItpS5lPRJfwYRE=" + "hash": "sha256-Y3Tgo5vCb6YkOHKPRqFTkOVpnvapW+feWVjOd8AQuas=" }, "wire": { "type": "Git", @@ -152,9 +152,9 @@ }, "branch": "main", "submodules": false, - "revision": "4f2e98c1125ab4be758cd1b51b526ad998e9618f", - "url": "https://github.com/0xc000022070/zen-browser-flake/archive/4f2e98c1125ab4be758cd1b51b526ad998e9618f.tar.gz", - "hash": "sha256-Vwmi3P4LAUmOrE2zc9JpnRrNxNwamDN46hqcXpWTkp0=" + "revision": "b3c972b3d8537a9cf7a0db96b164c9c3e580884a", + "url": "https://github.com/0xc000022070/zen-browser-flake/archive/b3c972b3d8537a9cf7a0db96b164c9c3e580884a.tar.gz", + "hash": "sha256-fOhJpz7QAkBWAAih72CmnIfIN0pHfuZjhZQ/hBLNWxo=" } }, "version": 7 diff --git a/modules/sops/vps/postgres.sql b/modules/sops/vps/postgres.sql index f2abc4a..b9167f5 100644 --- a/modules/sops/vps/postgres.sql +++ b/modules/sops/vps/postgres.sql @@ -1,5 +1,5 @@ { - "data": "ENC[AES256_GCM,data:cOp1hnXVvO9SLGt2L4O1m/6fpHDDFpPy5alF03zMF2QGmj5isfdPhMVu0jFNY+fgg6Zu1f5Yin9N42WhJyB4p/p9czekiqhTH8nMPpdchQqO1QYptrh+YClv3dN4kbmtYl3QRix0uuwamsCRqqtkY9aI1BB02wqO4md4yJE9V/k1ZNxUM3VeXPUEiRtlLrTIm4lVZogM4c2b3rrpumEII1TjSTdvZJeOgdp7Bp0KQXbXAwo8ev8e7JRIzNEaGVInx31iUcLhsUWSNREuSsfijHZWdjSxR1S5VBKTmMKx3SsL5vGsLbS9h8Sb15iHM2/srzIQtLYVmpxy414lK8IseuxyWbOEVe3umNmYlYO/dxL1dHhynEqnFiIDi5vQhWq/7E9Y3+lZFJ3a8yXhPPDErjK616dV+/q/KRsRZ7iolj52zSc3jQmschfWmsawVgtJzieWGXHcO76cdmmdShC9iSatXIGUbTAoYf6wWF63JeEOSkuo,iv:dBpAsf17rqzpoVli0WSUgoD4uJXNXl4vjWbzuNPRxPo=,tag:VrbNg8j4tixR/FrAbMEdmw==,type:str]", + "data": "ENC[AES256_GCM,data:xxFMtP0+rzbtSlOafy6xRapdYMa+I78EOYgjCLoTKdf9q7ugPHRLVpqINGsEEkhFCzPBbt0sft2M8Vx71NG4dB5FVnQpoDrw49/f1uKIAnJ8QRkgZSFWpPXq75FZ+w2QFi3TaG9+/8x0pYtLbvynsfL46PXnPxHR5dcr09EO+6W7irYFrfUIjjthWuOQiayjUQH2zexcAJDSHg5DY6Aa5EEZD5PL95EMqkGOI8etcMZWMZJlhDjQ30DgS6TivdMI4Sr7DvA++fmNv1ffb4lTQFnQ48fSn4fsRLzLakEn3T+kUjGjjmXUhqFQ5y7aGCpdskK8AAtjaeJtaWRLf/axZTGswKroaCzOPdFkTpRe7Cw1mR+r0GTbs1E0UtJ+ocRxl+dam8FlxCp1XoSpVaLaSqGK4veyNhzftCn10x+n2jOoM3W6T0v2OxtAW85j0j3fn2af6Ln40hP8vLmDUgcB8W4IdurDTv4PMwv3HuqPjxl8eNkegfNE4T2LPzANqx+SAZWcQbJChGMXklyETC/WnKeWK6PP5JatDfvwMQzubq/djXkgDb9+36g303+JK8+fu4Cz5foC5BA4f3a8aXSyHeGgFBB3r0rtNx4nM8rwmmD/fP6+yiqij161zw==,iv:C1bKdsob1nv4ng7+kQ5NVJlMF5XK3aaY3FvUju+rDYs=,tag:aTHyBRhCD5EWTK8Qhz7pCA==,type:str]", "sops": { "age": [ { @@ -7,8 +7,8 @@ "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPdVpaenUrYVpMeEpRZlBl\nTndhYmkvUEcxQWZ5UjZFUHFUcGpqMXdoZ2xFCkFLUmY4YlhRRTdIUmpQTzNPYSsz\nZ2JaZ0JTM3NHNWNwMHdiR2J2M1RRb1kKLS0tIERXbGtkRUlRSnFybExqYlVoQjVz\ndFdNQ0kxU3FMT0Y1ZnRhZkxWZWcrbEEK8hSNNXzhRXLrqEUHsXnPM6p+2ZynT/is\nLT+kR1IhJjuAB0uFjlGDtL19OsQdwb85TV79i2shQZIxwftqVwYoeg==\n-----END AGE ENCRYPTED FILE-----\n" } ], - "lastmodified": "2026-03-27T01:12:24Z", - "mac": "ENC[AES256_GCM,data:gr7cD6ZUjgTjpzHCF8TjY2UQaFpBvNRirseL+ZWCuy5DKdC21srAmgNM1i4hGw2wFVCNoYhVnB2HPp3q5zjWlRsWUF/TcgbYAi0sFM4jM16bSjeT8kJDlcDKf/04M99A7UM7235Ks949fy+Gl9ZOYeR9hIXL5Y2ajbHWVpqgevw=,iv:JVZwzJIHoXl0NwNlPP4mNdD+UjMLJpfNdq+D1aDU/TI=,tag:Ed97R1gIoDzLmTM2+8KbzA==,type:str]", + "lastmodified": "2026-04-16T17:56:44Z", + "mac": "ENC[AES256_GCM,data:E/35bN11woXVq2wxHA57SmO4ffugr8BRoV70qCsVbtfgpikU3gvB0nTSg+Uv1GQv1nB1DdpSbSAMHjBW05jMI0YQja8W/P+BKrFWtdu4BRjxOJ7uGgFDV1/ZsM6MYhNY8eWwmCuRTklWbjRiPyscfOA6CPWFkJB+Zjz+6Hko5kw=,iv:LdFCmC0RJmGFeSS0f6Yn9kbxGag21GfKvy3md5Y4r74=,tag:1vwZ6eeqBNBHcWF++RwGCA==,type:str]", "pgp": [ { "created_at": "2026-01-29T17:28:29Z",