dotfiles

My PC Dotfiles & Website
commit 08446b10c3d6b176423bb01a9628eae7225152ba
parent 8996733929879dc7dc7a1e12d05aaa4aecb1ef27
Author: maydayv7 <maydayv7@gmail.com>
Date:   Mon, 22 Jun 2026 01:21:41 +0530

feat: Add `gui._unmanaged`

Diffstat:
MCHANGELOG.md | 2++
Afiles/windows/README.md | 32++++++++++++++++++++++++++++++++
Mflake.lock | 17++++++++---------
Mflake.nix | 9++++++---
Mmodules/apps/firefox.nix | 2++
Mmodules/apps/git/git.nix | 2+-
Mmodules/apps/internet.nix | 2+-
Mmodules/apps/spotify.nix | 52++++++++++++++++++++++++++++++++--------------------
Mmodules/apps/tools.nix | 6+++++-
Mmodules/apps/vscode/default.nix | 4+---
Mmodules/desktop/gnome/_settings/apps.nix | 3+--
Mmodules/desktop/hyprland/_features/files.nix | 23+++++++++--------------
Mmodules/desktop/hyprland/_features/shell.nix | 10+++++-----
Mmodules/desktop/hyprland/_features/style.nix | 52++++++++++++++++++++++++++++++----------------------
Mmodules/desktop/hyprland/_features/terminal.nix | 12++++++------
Mmodules/desktop/hyprland/_features/utils.nix | 2+-
Mmodules/desktop/hyprland/_settings/apps.nix | 8+++++---
Mmodules/desktop/hyprland/_settings/main.nix | 4++--
Mmodules/desktop/hyprland/_settings/plugins.nix | 4++--
Mmodules/games/mc-server.nix | 62+++++++++++++++++++++++++++++++-------------------------------
Mmodules/games/minecraft.nix | 2+-
Mmodules/gui/gtk.nix | 2+-
Mmodules/gui/qt.nix | 2+-
Mmodules/gui/theme.nix | 26+++++++++++++++++++-------
Rmodules/hosts/valkyrie/_settings/asusd.ron -> modules/hosts/valkyrie/_asus/asusd.ron | 0
Rmodules/hosts/valkyrie/_settings/aura.ron -> modules/hosts/valkyrie/_asus/aura.ron | 0
Amodules/hosts/valkyrie/_asus/default.nix | 45+++++++++++++++++++++++++++++++++++++++++++++
Amodules/hosts/valkyrie/_dev.nix | 76++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dmodules/hosts/valkyrie/_minecraft.nix | 46----------------------------------------------
Dmodules/hosts/valkyrie/_settings/default.nix | 99-------------------------------------------------------------------------------
Mmodules/hosts/valkyrie/default.nix | 35++++++++++++++++++++++++++---------
Mmodules/shell/shell-utils.nix | 23++++++++++-------------
Msecrets/valkyrie/tailscale.secret | 8++++----
33 files changed, 365 insertions(+), 307 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -2,6 +2,8 @@ ### June +- Auto-import Catppuccin targets for Hyprland (`gui._unmanaged`) +- Add `valkyrie` Dev config - Use Hyprland's Scrolling layout - Migrate Hyprland config to Lua - Use Noctalia Shell & Greeter (v5) with Hyprland diff --git a/files/windows/README.md b/files/windows/README.md @@ -0,0 +1,32 @@ +# Microsoft Windows + +This directory contains my personal Windows 11 configuration. + +## Packages + +Use [UniGetUI](https://github.com/devolutions/unigetui) to install all [programs](./packages.ubundle). + +## Windhawk + +Can't live without this quintessential piece of software on this otherwise dysfunctional OS. + +Use [scorpion421/Windhawk-Services-Backup-Utility](https://github.com/scorpion421/Windhawk-Services-Backup-Utility) to backup/restore all mods. + +## AutoHotKey v2 + +Place everything under [scripts](./scripts/) in `shell:startup`. + +## Yet Another Status Bar + +Place [yasb](./yasb/) at `.config\yasb`. + +## Rainmeter + +Install the [`.rmskin`](./Vollmond.rmskin), and align using the [grids](https://forum.rainmeter.net/viewtopic.php?t=20197). + +## Notes + +- Run this in `pwsh` to make a symlink: + ```pwsh + New-Item -ItemType SymbolicLink -Path "C:\Path\To\Link_File" -Target "C:\Path\To\Original_Target_File" + ``` diff --git a/flake.lock b/flake.lock @@ -1262,17 +1262,16 @@ ] }, "locked": { - "lastModified": 1781205112, - "narHash": "sha256-PaoUtmk+qIP/ESdxkxnY7mUMpMHjix88qu22R5GLQqE=", - "owner": "shezdy", + "lastModified": 1781975914, + "narHash": "sha256-1LhZmN4FGWymJl6MvHxRLQfBuNHSbt2180lcVZQPwRk=", + "owner": "maydayv7", "repo": "hyprsplit", - "rev": "6b00b677d8905fb38779c91e12d6294e0e586a44", + "rev": "1ca7624c7552c87d31f84768fe608e71e1b25107", "type": "github" }, "original": { - "owner": "shezdy", + "owner": "maydayv7", "repo": "hyprsplit", - "rev": "6b00b677d8905fb38779c91e12d6294e0e586a44", "type": "github" } }, @@ -1647,11 +1646,11 @@ ] }, "locked": { - "lastModified": 1781935716, - "narHash": "sha256-mlj1OYbT2vMzVYSz8BL+GA7OHbMYmD5yPfjBEjszjKA=", + "lastModified": 1781974776, + "narHash": "sha256-u9F6J9eim/rwgPqNLVOV32kTHFRXNhO1XTM4lriKLqs=", "owner": "noctalia-dev", "repo": "noctalia", - "rev": "fd19cec65c33f8da303c02c66445c996721ee205", + "rev": "77e2a32edfbea9c23484d5608b6b8ecc657c2270", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix @@ -21,13 +21,13 @@ # ▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘ # # --------------------------------------- # # Author -> V 7 <mail@maydayv7.cc> # -# License -> MIT # +# License -> GPL-3.0 # # URL -> github:maydayv7/dotfiles # # --------------------------------------- # ############################################### { description = '' - My declarative, hermetic, reproducible, automated, extensible, multi-PC + My declarative, hermetic, reproducible, automated, extensible, multi-host NixOS Configuration and 'dotfiles' ''; @@ -196,7 +196,8 @@ # Plugins hyprsplit = { - url = "github:shezdy/hyprsplit/6b00b677d8905fb38779c91e12d6294e0e586a44"; + url = "github:maydayv7/hyprsplit"; + # url = "github:shezdy/hyprsplit"; inputs = { hyprland.follows = "hyprland"; nixpkgs.follows = "nixpkgs"; @@ -256,6 +257,7 @@ "https://cache.flox.dev" "https://hyprland.cachix.org" "https://catppuccin.cachix.org" + "https://noctalia.cachix.org" ]; trusted-substituters = substituters; @@ -268,6 +270,7 @@ "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "catppuccin.cachix.org-1:noG/4HkbhJb+lUAdKrph6LaozJvAeEEZj4N732IysmU=" + "noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4=" ]; }; } diff --git a/modules/apps/firefox.nix b/modules/apps/firefox.nix @@ -44,6 +44,8 @@ in { builtins.listToAttrs [ (extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}") (extension "darkreader" "addon@darkreader.org") + (extension "firefox-color" "FirefoxColor@mozilla.com") + (extension "keepassxc-browser" "keepassxc-browser@keepassxc.org") (extension "setupvpn" "@setupvpncom") (extension "stylus" "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}") (extension "tabliss" "extension@tabliss.io") diff --git a/modules/apps/git/git.nix b/modules/apps/git/git.nix @@ -81,7 +81,7 @@ in { enableGitIntegration = true; options = { line-numbers = true; - theme = "Monokai Extended"; + theme = lib.mkDefault "Monokai Extended"; conflictstyle = "diff3"; }; }; diff --git a/modules/apps/internet.nix b/modules/apps/internet.nix @@ -8,7 +8,6 @@ in { brave = { enable = true; extensions = [ - "cjpalhdlnbpafiamejdnhcphjbkeiagm" # UBlock Origin "djflhoibgkdhkhhcedjiklpkjnoahfmg" # User Agent Switcher "lckanjgmijmafbedllaakclkaicjfmnk" # ClearURLs "oofgbpoabipfcfjapgnbbjjaenockbdp" # SetupVPN @@ -16,6 +15,7 @@ in { "jaioibhbkffompljnnipmpkeafhpicpd" # Tab Auto Refresh "eimadpbcbfnmbkopoojfekhnkhdbieeh" # Dark Reader "clngdbkpkpeebahjckkjfobafhncgmne" # Stylus + "oboonakemofpalcgghocfoadofidjkkk" # KeePassXC ]; }; diff --git a/modules/apps/spotify.nix b/modules/apps/spotify.nix @@ -1,32 +1,44 @@ ## Spotify Configuration ## {inputs, ...}: { - flake.modules.homeManager.spotify = {pkgs, ...}: { + flake.modules.homeManager.spotify = { + lib, + pkgs, + osConfig ? {}, + ... + }: let + isHyprland = osConfig.programs.hyprland.enable or false; + in { imports = [inputs.spicetify.homeManagerModules.default]; home.persist.directories = [ ".config/spotify" ".cache/spotify" ]; - programs.spicetify = { - enable = true; + programs.spicetify = + { + enable = true; - # Player Improvements - enabledCustomApps = with pkgs.spicetify.apps; [ - betterLibrary - localFiles - newReleases - ]; + # Player Improvements + enabledCustomApps = with pkgs.spicetify.apps; [ + betterLibrary + localFiles + newReleases + ]; - enabledExtensions = with pkgs.spicetify.extensions; [ - goToSong - history - loopyLoop - playNext - popupLyrics - seekSong - showQueueDuration - volumePercentage - ]; - }; + enabledExtensions = with pkgs.spicetify.extensions; [ + goToSong + history + loopyLoop + playNext + popupLyrics + seekSong + showQueueDuration + volumePercentage + ]; + } + // lib.optionalAttrs isHyprland { + theme = pkgs.spicetify.themes.catppuccin; + colorScheme = "macchiato"; + }; }; } diff --git a/modules/apps/tools.nix b/modules/apps/tools.nix @@ -22,10 +22,13 @@ in { gearlever popsicle + # Media + pitivi + xnviewmp + # Graphics drawing identity - pitivi vipsdisp # Audio @@ -50,6 +53,7 @@ in { ".config/easyeffects" ".config/obs-studio" ".config/pitivi" + ".config/xnviewmp" ".local/share/easyeffects" ]; }; diff --git a/modules/apps/vscode/default.nix b/modules/apps/vscode/default.nix @@ -52,7 +52,6 @@ in { "terminal.external.linuxExec" = "ghostty"; }) (lib.mkIf isHyprland { - "workbench.iconTheme" = "catppuccin-${config.catppuccin.flavor or "mocha"}"; "terminal.external.linuxExec" = "kitty"; }) ]; @@ -91,8 +90,7 @@ in { langningchen.cph-ng # CP kisstkondoros.vscode-gutter-preview # Image Preview ]) - ++ lib.optionals isGnome [pkgs.vscode-extensions.piousdeer.adwaita-theme] - ++ lib.optionals isHyprland [pkgs.vscode-extensions.catppuccin.catppuccin-vsc-icons]; + ++ lib.optionals isGnome [pkgs.vscode-extensions.piousdeer.adwaita-theme]; }; }; }; diff --git a/modules/desktop/gnome/_settings/apps.nix b/modules/desktop/gnome/_settings/apps.nix @@ -5,7 +5,6 @@ _: { }: lib.mkIf (osConfig != null) ( with lib.hm.gvariant; let - inherit (builtins) head; fonts = osConfig.fonts.fontconfig.defaultFonts; in { dconf.settings = { @@ -79,7 +78,7 @@ lib.mkIf (osConfig != null) ( "com/github/hugolabe/Wike" = { custom-font = true; dark-mode = true; - font-family = head fonts.sansSerif; + font-family = builtins.head fonts.sansSerif; }; # App Grid diff --git a/modules/desktop/hyprland/_features/files.nix b/modules/desktop/hyprland/_features/files.nix @@ -5,20 +5,15 @@ inputs ? null, ... }: { - nixos = {pkgs, ...}: let - nemo = pkgs.nemo-with-extensions; - in { - services.dbus.packages = [nemo]; - environment.systemPackages = - [ - nemo - ] - ++ (with pkgs; [ - cinnamon-desktop - bulky - file-roller - lxqt.pcmanfm-qt - ]); + nixos = {pkgs, ...}: { + services.dbus.packages = [pkgs.nemo-with-extensions]; + environment.systemPackages = with pkgs; [ + nemo-with-extensions + cinnamon-desktop + bulky + file-roller + lxqt.pcmanfm-qt + ]; }; home = { diff --git a/modules/desktop/hyprland/_features/shell.nix b/modules/desktop/hyprland/_features/shell.nix @@ -6,15 +6,15 @@ }: { home = { config, - osConfig ? null, + osConfig ? {}, lib, pkgs, ... }: let - output = osConfig.gui.display; + output = osConfig.gui.display or "eDP-1"; in { imports = [inputs.noctalia.homeModules.default]; - stylix.targets.noctalia-shell.enable = false; + gui._unmanaged = ["noctalia-shell"]; home.persist.directories = [ ".cache/noctalia" ".local/state/noctalia" @@ -165,7 +165,7 @@ wallpaper = { enabled = true; fill_mode = "crop"; - default.path = osConfig.stylix.image; + default.path = osConfig.stylix.image or ""; }; # Desktop Widgets @@ -331,7 +331,7 @@ ]; }; plugin_settings = let - hyprctl = "${osConfig.programs.hyprland.package}/bin/hyprctl"; + hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl"; jq = lib.getExe pkgs.jq; socket2 = "${lib.getExe pkgs.socat} -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock -"; in { diff --git a/modules/desktop/hyprland/_features/style.nix b/modules/desktop/hyprland/_features/style.nix @@ -35,30 +35,38 @@ }; }; - home = _: { - imports = [inputs.catppuccin.homeModules.catppuccin]; + home = { + config, + lib, + options, + ... + }: let + inherit (lib) attrNames elem filter genAttrs hasPrefix; + # Use Catppuccin over Stylix + alias = { + qt = "kvantum"; + discord = "vesktop"; + zed = "zed-editor"; + }; + except = ["kitty"]; + targets = filter (n: !hasPrefix "_" n) (attrNames options.stylix.targets); + derived = filter (t: elem (alias.${t} or t) (attrNames config.catppuccin) && !elem t except) targets; + in { + imports = [inputs.catppuccin.homeModules.catppuccin]; config = { - # Theme - catppuccin = { - accent = "blue"; - flavor = "macchiato"; - - brave.enable = true; - thunderbird.enable = true; - obs.enable = true; - vesktop.enable = true; - vscode.profiles.default.enable = true; - }; - - # Browser - programs.firefox.policies.ExtensionSettings = { - name = "catppuccin-macchiato-blue"; - value = { - installation_mode = "normal_installed"; - install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/{d49033ac-8969-488c-afb0-5cdb73957f41}/latest.xpi"; - }; - }; + gui._unmanaged = derived ++ ["spicetify"]; + catppuccin = + { + enable = true; + accent = "blue"; + flavor = "macchiato"; + hyprland.enable = false; + gtk.icon.enable = false; + firefox.force = true; + kvantum.enable = false; + } + // genAttrs except (_: {enable = false;}); }; }; } diff --git a/modules/desktop/hyprland/_features/terminal.nix b/modules/desktop/hyprland/_features/terminal.nix @@ -1,9 +1,13 @@ # Terminal Emulator _: { - home = {pkgs, ...}: { + home = { + pkgs, + lib, + ... + }: { programs.kitty = { enable = true; - themeFile = "Catppuccin-Macchiato"; + themeFile = lib.mkDefault "Catppuccin-Macchiato"; keybindings = { "ctrl+c" = "copy_or_interrupt"; "kitty_mod+f" = "launch --allow-remote-control kitty +kitten search/search.py @active-kitty-window-id"; @@ -27,9 +31,5 @@ _: { }; home.file.".config/kitty/search".source = pkgs.custom.kitty-search; - stylix.targets.kitty = { - enable = true; - variant256Colors = true; - }; }; } diff --git a/modules/desktop/hyprland/_features/utils.nix b/modules/desktop/hyprland/_features/utils.nix @@ -66,7 +66,7 @@ }; }; - home = _: { + home = {config, ...}: { home = { persist.directories = [ ".config/kdeconnect" diff --git a/modules/desktop/hyprland/_settings/apps.nix b/modules/desktop/hyprland/_settings/apps.nix @@ -38,7 +38,8 @@ lib.mkIf (osConfig != null) ( ## Autostart on = [ (on "hyprland.start" ("function() " - + concatStringsSep " " (map (c: ''hl.exec_cmd("${c}");'') ([ + + concatStringsSep " " (map (c: ''hl.exec_cmd("${c}");'') ( + [ "uwsm finalize" "hyprctl setcursor ${hyprcursor} ${toString cursor.size}" ] @@ -48,7 +49,8 @@ lib.mkIf (osConfig != null) ( # Desktop Icons "pcmanfm-qt --desktop" - ]))) + ]) + )) + " end")) ]; @@ -89,7 +91,7 @@ lib.mkIf (osConfig != null) ( ## Permissions permission = [ (permission "${osConfig.programs.hyprland.portalPackage}/libexec/.xdg-desktop-portal-hyprland-wrapped" "screencopy" "allow") - (permission (getExe pkgs.grim) "screencopy" "allow") + (permission (getExe pkgs.gpu-screen-recorder) "screencopy" "allow") (permission (getExe pkgs.wl-screenrec) "screencopy" "allow") ]; diff --git a/modules/desktop/hyprland/_settings/main.nix b/modules/desktop/hyprland/_settings/main.nix @@ -17,7 +17,7 @@ lib.mkIf (osConfig != null) ( angle = 90; }; in { - stylix.targets.hyprland.enable = false; + gui._unmanaged = ["hyprland"]; wayland.windowManager.hyprland = { inherit (osConfig.programs.hyprland) enable package portalPackage; @@ -42,7 +42,7 @@ lib.mkIf (osConfig != null) ( fingers = 3; direction = "horizontal"; action = "scroll_move"; - scale = 3; + scale = 2; } { fingers = 4; diff --git a/modules/desktop/hyprland/_settings/plugins.nix b/modules/desktop/hyprland/_settings/plugins.nix @@ -13,7 +13,7 @@ lib.mkIf (osConfig != null) ( inherit (lua) inline; inherit (osConfig.gui) fancy; - inherit (osConfig.lib.stylix.colors) base03 base0D; + inherit (osConfig.lib.stylix.colors) base00 base0D; cursorMode = if fancy @@ -53,7 +53,7 @@ lib.mkIf (osConfig != null) ( show_empty_workspace = true, panel_border_width = 0, workspace_margin = 10, - panel_color = "rgb(${base03})", + panel_color = "rgb(${base00})", workspace_active_border = "rgb(${base0D})", swipe_fingers = 4, } } }) diff --git a/modules/games/mc-server.nix b/modules/games/mc-server.nix @@ -120,73 +120,73 @@ ## Fabric Server (mkIf (srv.type == "fabric") { - package = pkgs.fabricServers.fabric-1_21_10; + package = pkgs.fabricServers.fabric-26_1_2; symlinks.mods = linkFarmFromDrvs "mods" ( attrValues ( { # Server FabricAPI = fetchurl { - url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/lxeiLRwe/fabric-api-0.136.0%2B1.21.10.jar"; - sha256 = "sha256-ADKAQNMSXhDUF/Fviupkr3JxmH6RFVRLuwvjK7PQV5c="; + url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/NqRnXk9x/fabric-api-0.152.1%2B26.1.2.jar"; + sha256 = "sha256-slrZJsj9EH0hs6l1Gpjat4dzZSOzmke8LMsEiWJoDXY="; }; Lithium = fetchurl { - url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/oGKQMdyZ/lithium-fabric-0.20.0%2Bmc1.21.10.jar"; - sha256 = "sha256-567yN1D2eJgsAMQhjWIFljqZRVRFfCoWvZgY41IQAEs="; + url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/fQBdPR1m/lithium-fabric-0.24.6%2Bmc26.1.2.jar"; + sha256 = "sha256-UJ5/dwx9SL036VkpFzKdsnaORpXHKkPiLBnvZND5g58="; }; Krypton = fetchurl { - url = "https://cdn.modrinth.com/data/fQEb0iXm/versions/O9LmWYR7/krypton-0.2.10.jar"; - sha256 = "sha256-lCkdVpCgztf+fafzgP29y+A82sitQiegN4Zrp0Ve/4s="; + url = "https://cdn.modrinth.com/data/fQEb0iXm/versions/kYAGItyj/krypton-0.3.0.jar"; + sha256 = "sha256-dFsRFgQ0dC1EQFRqp+RF0U1ZuhJG5br5kdKTGQuplGM="; }; FerriteCore = fetchurl { - url = "https://cdn.modrinth.com/data/uXXizFIs/versions/CtMpt7Jr/ferritecore-8.0.0-fabric.jar"; - sha256 = "sha256-K5C/AMKlgIw8U5cSpVaRGR+HFtW/pu76ujXpxMWijuo="; + url = "https://cdn.modrinth.com/data/uXXizFIs/versions/d5ddUdiB/ferritecore-9.0.0-fabric.jar"; + sha256 = "sha256-ITlmxy7ZZ6zHOSvrKKhm+6MB/1a5l2wueAHC233mvyI="; }; ScalableLux = fetchurl { - url = "https://cdn.modrinth.com/data/Ps1zyz6x/versions/PV9KcrYQ/ScalableLux-0.1.6%2Bfabric.c25518a-all.jar"; - sha256 = "sha256-ekpzcThhg8dVUjtWtVolHXWsLCP0Cvik8PijNbBdT8I="; + url = "https://cdn.modrinth.com/data/Ps1zyz6x/versions/gYbHVCz8/ScalableLux-0.2.0%2Bfabric.2b63825-all.jar"; + sha256 = "sha256-bamBsryRWGU1zjuw+kGXWonMRgO5w6EG0kMaIUF7HfA="; }; C2ME = fetchurl { - url = "https://cdn.modrinth.com/data/VSNURh3q/versions/eY3dbqLu/c2me-fabric-mc1.21.10-0.3.5.0.0.jar"; - sha256 = "sha256-PZxX7IE3Zc+zsQrMc/LdI1jpUC9l/ov7z334OucWpgA="; + url = "https://cdn.modrinth.com/data/VSNURh3q/versions/v1RNsfu7/c2me-fabric-mc26.1.2-0.4.0-alpha.0.17.jar"; + sha256 = "sha256-W6hKW/dASyp+A9yT85luhMTg9fF59GTeYoVdRLM6Dx8="; }; PlayerRoles = fetchurl { - url = "https://cdn.modrinth.com/data/Rt1mrUHm/versions/Qi5eDlej/player-roles-1.7.0.jar"; - sha256 = "sha256-+0nk/J2W3hVDdkKlZRHY4dBde3aF8e8Y1SPFOgDWNb0="; + url = "https://cdn.modrinth.com/data/Rt1mrUHm/versions/sUiL9n9i/player-roles-1.9.0.jar"; + sha256 = "sha256-0q6WzsxFdOqrslFmH8C5Si9fADgOShnBhWa4SMcBY/8="; }; SkinRestorer = fetchurl { - url = "https://cdn.modrinth.com/data/ghrZDhGW/versions/MKWfnXfO/skinrestorer-2.4.3%2B1.21.9-fabric.jar"; - sha256 = "sha256-ypyDuX94HyUPlUI4CrFc0Pc01lUQXgYPqP/axaCi6Hc="; + url = "https://cdn.modrinth.com/data/ghrZDhGW/versions/rgcYRGDt/skinrestorer-2.8.1%2B26.1-fabric.jar"; + sha256 = "sha256-MazpunDTQeMBLN3Da1t5akwBBXH+ia733loqgA4Ft38="; }; Silk = fetchurl { - url = "https://cdn.modrinth.com/data/aTaCgKLW/versions/2OisNxPN/silk-all-1.11.4.jar"; - sha256 = "sha256-C2VcLfFGweGOO+Xi1mOTkETX3NpoEdSz+9kYmEIDDv0="; + url = "https://cdn.modrinth.com/data/aTaCgKLW/versions/dm3Sfg3x/silk-all-1.11.8.jar"; + sha256 = "sha256-4+u68yBi4nom7b96+PCuJvwpAnQHgtgByjTxYaF5gpM="; }; FabricKotlin = fetchurl { - url = "https://cdn.modrinth.com/data/Ha28R6CL/versions/LcgnDDmT/fabric-language-kotlin-1.13.7%2Bkotlin.2.2.21.jar"; - sha256 = "sha256-d5UZY+3V19N+5PF0431GqHHkW5c0JvO0nWclyBm0uPI="; + url = "https://cdn.modrinth.com/data/Ha28R6CL/versions/Pd0xrHCw/fabric-language-kotlin-1.13.12%2Bkotlin.2.4.0.jar"; + sha256 = "sha256-NsXdi3KONHDSiCrmMRm5OiBQD8Dqb1yUXBK/ZbWrGDI="; }; Veinminer = fetchurl { - url = "https://cdn.modrinth.com/data/OhduvhIc/versions/lCVEKyxE/veinminer-fabric-2.5.0.jar"; - sha256 = "sha256-13PbmxgTfM+WkQht7hsHrkEImXgTeBUpeKOcGtE/cOI="; + url = "https://cdn.modrinth.com/data/OhduvhIc/versions/h4Z7xAL0/veinminer-fabric-2.10.3.jar"; + sha256 = "sha256-/Q4M4yr/kjAMtuSyBeVbgSBMmNoCWrB4tStHSUdUSVk="; }; VeinminerEnchant = fetchurl { - url = "https://cdn.modrinth.com/data/4sP0LXxp/versions/h5oKcjvq/veinminer-enchant-2.3.0.jar"; - sha256 = "sha256-NvGnsY9nfI+IMy2+Ljr1IahMqim9xOsRgojaFKWk/xQ="; + url = "https://cdn.modrinth.com/data/4sP0LXxp/versions/6zzsM770/veinminer-enchant-2.10.3.jar"; + sha256 = "sha256-/li1ve6r0w9Mha+9tPO0Vf5mWafQghUpFzZDSEVcivs="; }; # Client and Server Jade = fetchurl { - url = "https://cdn.modrinth.com/data/nvQzSEkH/versions/qC0qUqL5/Jade-1.21.9-Fabric-20.0.5.jar"; - sha256 = "sha256-HZfvnnYeRgbgQROdq6v9U7fnx1MhNaseaedNJPJpNxE="; + url = "https://cdn.modrinth.com/data/nvQzSEkH/versions/zu6GcgEW/Jade-mc26.1-Fabric-26.1.6.jar"; + sha256 = "sha256-X+1RyaOSVWNyLWRGTKSJErPRYci1XFJVdcbt/rsphS8="; }; } // ( if (srv.vc-port != null) then { SimpleVC = fetchurl { - url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/BjR2lc4k/voicechat-fabric-1.21.10-2.6.6.jar"; - sha256 = "sha256-yC5pMBLsi4BnUq4CxTfwe4MGTqoBg04ZaRrsBC3Ds3Y="; + url = "https://cdn.modrinth.com/data/9eGKb6K1/versions/xmAicr0J/voicechat-fabric-2.6.19%2B26.1.2.jar"; + sha256 = "sha256-JsPgZqSfRb70Z00m0FN2/noc8Tm4++ncOLt0r0Z0rdQ="; }; } else {} @@ -202,8 +202,8 @@ # Ozone Skyblock Reborn 2 modpack = fetchzip { - url = "https://mediafilez.forgecdn.net/files/7243/245/OSR2%201.2.1%20-%20Server.zip"; - sha256 = "sha256-G7qUQ2ZKKsBUKugTcsv7RppAZVrNgsncrYYWzusTSF0="; + url = "https://mediafilez.forgecdn.net/files/8061/293/OSR%201.5.4%20-%20Server.zip"; + sha256 = "sha256-L9bh+MbKgKeD+RezVkmUWSK7kFiUSZrDyPLp7MrPXAY="; }; in { package = pkgs.neoforgeServers.neoforge-1_21_1; diff --git a/modules/games/minecraft.nix b/modules/games/minecraft.nix @@ -1,7 +1,7 @@ ## Minecraft ## _: { flake.modules.homeManager.minecraft = {pkgs, ...}: { - home.packages = [pkgs.prismlauncher]; + programs.prismlauncher.enable = true; home.persist.directories = [".local/share/PrismLauncher"]; }; } diff --git a/modules/gui/gtk.nix b/modules/gui/gtk.nix @@ -57,7 +57,7 @@ in { }; # Theming - stylix.targets.gtk.enable = false; + gui._unmanaged = ["gtk"]; dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; gtk = { enable = true; diff --git a/modules/gui/qt.nix b/modules/gui/qt.nix @@ -125,7 +125,7 @@ _: { inherit (builtins) concatStringsSep map; qt = osConfig.gui.qt or {}; in { - stylix.targets.qt.enable = false; + gui._unmanaged = ["qt"]; xdg.configFile."Kvantum" = lib.mkIf ((qt.style or null) == "kvantum") { source = "${qt.theme.package}/share/Kvantum"; recursive = true; diff --git a/modules/gui/theme.nix b/modules/gui/theme.nix @@ -85,15 +85,27 @@ in { }; }; - homeManager.theme = {lib, ...}: { + homeManager.theme = { + config, + lib, + ... + }: { + options.gui._unmanaged = lib.mkOption { + description = "Stylix targets handled manually"; + type = lib.types.listOf lib.types.str; + default = []; + }; + config.stylix = { enable = lib.mkDefault true; - targets = { - firefox.enable = lib.mkDefault false; - gnome.enable = lib.mkDefault false; - spicetify.enable = false; - vscode.enable = false; - }; + targets = lib.mkMerge [ + { + firefox.enable = lib.mkDefault false; + gnome.enable = lib.mkDefault false; + vscode.enable = lib.mkDefault false; + } + (lib.genAttrs (lib.unique config.gui._unmanaged) (_: {enable = false;})) + ]; }; }; }; diff --git a/modules/hosts/valkyrie/_settings/asusd.ron b/modules/hosts/valkyrie/_asus/asusd.ron diff --git a/modules/hosts/valkyrie/_settings/aura.ron b/modules/hosts/valkyrie/_asus/aura.ron diff --git a/modules/hosts/valkyrie/_asus/default.nix b/modules/hosts/valkyrie/_asus/default.nix @@ -0,0 +1,45 @@ +_: { + nixos = { + config, + lib, + ... + }: { + boot = { + plymouth.extraConfig = "DeviceScale=2"; + + # ! # https://gitlab.freedesktop.org/drm/amd/-/issues/3388 + kernelParams = lib.mkIf (config.hardware.cpu.mode == "performance") [ + "amdgpu.dcdebugmask=0x10" + "usbcore.autosuspend=-1" + ]; + }; + + services = { + fwupd.enable = true; + + # Remap Keys + udev.extraHwdb = '' + evdev:name:ASUSTek Computer Inc. N-KEY Device:* + KEYBOARD_KEY_7003f=sysrq # F6 -> PrtSc Key + ''; + + # ASUS Software + asusd = { + enable = true; + asusdConfig.text = builtins.readFile ./asusd.ron; + auraConfigs."19b6".text = builtins.readFile ./aura.ron; + }; + }; + }; + + home = {lib, ...}: { + # Keybinds + wayland.windowManager.hyprland.settings.bind = let + inline = lib.generators.mkLuaInline; + locked = {locked = true;}; + in [ + {_args = ["XF86Launch3" (inline ''hl.dsp.exec_cmd("asusctl aura -n")'') locked];} + {_args = ["XF86Launch4" (inline ''hl.dsp.exec_cmd("asusctl profile -n")'') locked];} + ]; + }; +} diff --git a/modules/hosts/valkyrie/_dev.nix b/modules/hosts/valkyrie/_dev.nix @@ -0,0 +1,76 @@ +## Development +_: { + nixos = { + config, + pkgs, + ... + }: { + # VPN + services.cloudflare-warp = { + enable = true; + openFirewall = true; + }; + + # VPN Tunnel + services.tailscale = { + enable = true; + openFirewall = true; + authKeyFile = config.sops.secrets."tailscale.secret".path; + }; + + environment = { + persist.directories = [ + "/var/lib/tailscale" + config.services.cloudflare-warp.rootDir + ]; + + # Tools + systemPackages = with pkgs; [ + cloudflared + gcc + github-copilot-cli + (mongodb-compass.overrideAttrs (oldAttrs: { + buildCommand = + (oldAttrs.buildCommand or "") + + '' + wrapProgram $out/bin/mongodb-compass \ + --add-flags "--ignore-additional-command-line-flags --password-store=gnome-libsecret" + ''; + })) + + # Node + nodejs + npm-check-updates + pnpm + ]; + }; + + networking.firewall = { + allowedUDPPorts = [7777]; + allowedTCPPorts = [7777]; + }; + }; + + home = _: { + home.persist.directories = [ + ".copilot" + ".mongodb" + ".npm" + ".config/rog" + ".config/MongoDB Compass" + ".local/share/cloudflare-warp-gui" + ]; + + # NPM + home = { + sessionPath = ["$HOME/.npm/packages/bin"]; + file.".npmrc".text = '' + prefix=''${HOME}/.npm/packages + cache=''${HOME}/.npm/cache + ''; + }; + + # CC Server + programs.ssh.settings."ssh.codingclub.in".ProxyCommand = "cloudflared access ssh --hostname %h"; + }; +} diff --git a/modules/hosts/valkyrie/_minecraft.nix b/modules/hosts/valkyrie/_minecraft.nix @@ -1,46 +0,0 @@ -{config, ...}: { - ## Minecraft Server - specialisation.minecraft.configuration = { - system.nixos.label = "special.minecraft"; - games.mc-servers = let - shared = { - gamemode = "survival"; - difficulty = "normal"; - online-mode = false; - server-ip = "0.0.0.0"; - spawn-protection = 0; - }; - in [ - { - type = "fabric"; - memory = 16; - port = 25565; - vc-port = 24454; - config = - shared - // { - motd = "My World"; - }; - } - { - type = "skyblock"; - memory = 10; - port = 25567; - config = - shared - // { - motd = "Modded Skyblock"; - allow-flight = true; - }; - } - ]; - - # VPN Tunnel - environment.persist.directories = ["/var/lib/tailscale"]; - services.tailscale = { - enable = true; - openFirewall = true; - authKeyFile = config.sops.secrets."tailscale.secret".path; - }; - }; -} diff --git a/modules/hosts/valkyrie/_settings/default.nix b/modules/hosts/valkyrie/_settings/default.nix @@ -1,99 +0,0 @@ -_: { - nixos = { - config, - lib, - pkgs, - ... - }: { - boot = { - plymouth.extraConfig = "DeviceScale=2"; - - # ! # https://gitlab.freedesktop.org/drm/amd/-/issues/3388 - kernelParams = lib.mkIf (config.hardware.cpu.mode == "performance") [ - "amdgpu.dcdebugmask=0x10" - "usbcore.autosuspend=-1" - ]; - }; - - services = { - fwupd.enable = true; - - # Remap Keys - udev.extraHwdb = '' - evdev:name:Asus Keyboard:* - KEYBOARD_KEY_7003f=print # F6 -> PrtSc Key - ''; - }; - - # ASUS Software - services.asusd = { - enable = true; - asusdConfig.text = builtins.readFile ./asusd.ron; - auraConfigs."19b6".text = builtins.readFile ./aura.ron; - }; - - # VPN - services.cloudflare-warp = { - enable = true; - openFirewall = true; - }; - - ## Development - environment = { - persist.directories = [config.services.cloudflare-warp.rootDir]; - systemPackages = with pkgs; [ - cloudflared - gcc - github-copilot-cli - (mongodb-compass.overrideAttrs (oldAttrs: { - postFixup = - (oldAttrs.postFixup or "") - + '' - wrapProgram $out/bin/mongodb-compass \ - --add-flags "--password-store=gnome-libsecret --ignore-additional-command-line-flags" - ''; - })) - - # Node - nodejs - npm-check-updates - pnpm - ]; - }; - - networking.firewall = { - allowedUDPPorts = [7777]; - allowedTCPPorts = [7777]; - }; - }; - - home = {lib, ...}: { - home.persist.directories = [ - ".copilot" - ".mongodb" - ".npm" - ".config/rog" - ".config/MongoDB Compass" - ".local/share/cloudflare-warp-gui" - ]; - - # Keybinds - wayland.windowManager.hyprland.settings.bind = let - inline = lib.generators.mkLuaInline; - locked = {locked = true;}; - in [ - {_args = ["XF86Launch3" (inline ''hl.dsp.exec_cmd("asusctl aura -n")'') locked];} - {_args = ["XF86Launch4" (inline ''hl.dsp.exec_cmd("asusctl profile -n")'') locked];} - ]; - - # Development - home = { - sessionPath = ["$HOME/.npm/packages/bin"]; - file.".npmrc".text = '' - prefix=''${HOME}/.npm/packages - cache=''${HOME}/.npm/cache - ''; - }; - programs.ssh.settings."ssh.codingclub.in".ProxyCommand = "cloudflared access ssh --hostname %h"; - }; -} diff --git a/modules/hosts/valkyrie/default.nix b/modules/hosts/valkyrie/default.nix @@ -15,8 +15,8 @@ "mobile" "printer" "docker" - #"mc-server" - #"roblox" + "mc-server" + "roblox" ]; hmModules = [ @@ -42,7 +42,7 @@ "git" "office" "tools" - #"flatpak" + "flatpak" "latex" #"wine" "games" @@ -53,7 +53,8 @@ util.map.array hmModules homeManager ++ util.map.array mixedModules homeManager; - settings = import ./_settings {}; + asus = import ./_asus {}; + dev = import ./_dev.nix {}; in { configurations.nixos.valkyrie = { system = "x86_64-linux"; @@ -65,10 +66,7 @@ in { imports = util.map.array nixosModules nixos ++ util.map.array mixedModules nixos - ++ [ - (settings.nixos or {}) - # ./_minecraft.nix - ] + ++ [(asus.nixos or {}) (dev.nixos or {})] ++ util.map.array ["asus-zephyrus-ga402x-nvidia"] inputs.hardware.nixosModules; networking.hostId = builtins.substring 0 8 (builtins.hashString "md5" "valkyrie"); @@ -129,6 +127,24 @@ in { # Wine utilities # apps.wine.utilities = true; + # Minecraft Server + games.mc-servers = [ + { + type = "fabric"; + memory = 16; + port = 25565; + vc-port = 24454; + config = { + gamemode = "survival"; + difficulty = "normal"; + online-mode = false; + server-ip = "0.0.0.0"; + spawn-protection = 0; + motd = "My World"; + }; + } + ]; + # User V7 users.users.v7 = { isNormalUser = true; @@ -159,7 +175,8 @@ in { hmImports ++ [ homeManager.v7 - (settings.home or {}) + (asus.home or {}) + (dev.home or {}) ]; }; }; diff --git a/modules/shell/shell-utils.nix b/modules/shell/shell-utils.nix @@ -39,11 +39,7 @@ in { ## Program Configuration services.lorri.enable = true; - - # Programs programs = { - yazi.enable = true; # File Manager - # Command Correction Helper pay-respects = { enable = true; @@ -55,15 +51,6 @@ in { enable = true; nix-direnv.enable = true; }; - - # Bat Configuration - bat = { - enable = true; - settings = { - style = "full"; - italic-text = "always"; - }; - }; }; }; }; @@ -80,8 +67,18 @@ in { programs = { btop.enable = true; # Resource Monitor hstr.enable = true; # Command History Manager + yazi.enable = true; # File Manager zellij.enable = true; # Terminal Multiplexer + # Pager + bat = { + enable = true; + config = { + style = "full"; + italic-text = "always"; + }; + }; + # File Lister eza = { enable = true; diff --git a/secrets/valkyrie/tailscale.secret b/secrets/valkyrie/tailscale.secret @@ -1,8 +1,8 @@ { - "data": "ENC[AES256_GCM,data:iQYFZyHJYlaS4VrfhX+z64K0Eza8Yg/irHVOzGpWDxOidXXRjdTCdkSYE2M/JG6K+0ByTAIWUPHQO3UW8w==,iv:V0Iop9PLPwIPKLjIL6N8JG6gUDRK/y3YajpXLu5Xw84=,tag:fMVn8M/QdLesuPv7J8o9nw==,type:str]", + "data": "ENC[AES256_GCM,data:jpOB8WhoFdED1/frtp9oiU3bK/upDN0uni7aDA+9w1Cjccvi9IBtMFg8HpZzBL0INQtUT3RhNjhp4U0ohg==,iv:mkuOGn3fKOQOnyHMvxM1soFdO65zAtyySLB9WARdDsQ=,tag:OuAPld46JLlkD/JIhnNm2Q==,type:str]", "sops": { - "lastmodified": "2025-07-01T06:18:25Z", - "mac": "ENC[AES256_GCM,data:Wsv2nHSdkhsZhVr7JQRUz4n8fwoh9OhXm8cQvkxN1aFh1wAJfBjrBuuHCaG3i+oM6d9GOuLqAAgvHpawo94YGs/YI3u99XRS72X20kBIyii0tsYtuHlef60AFUKAvEXkVJ/YtPR7TCbJvA3q6Uvcbnad41MYjOfw7s4ZgpFVM6g=,iv:ExbFfh/1cmVmgfKyb2rJdYTWY+gG6nn2RU1p+ALELtQ=,tag:2D2K16AhblZiaAoMrnMX+g==,type:str]", + "lastmodified": "2026-06-21T14:47:09Z", + "mac": "ENC[AES256_GCM,data:o7BGnpmz5GsfZro5evduHG7X1jcqubYJaxBGeSFS7BjLfULWs/up6tpO+tIr158hceIIUMuDpdu+4YRMv8OUfI8ZB9nsMU9tyUpn9vdye795/f2jGPzZnIeoZbh0ahGNupuf7OJ4/wInxVllyTvFDPmJW2eW07m5IQggoX3wxEs=,iv:jH+U2iaeyrVar7zU44D//LZlQIRQJtV0KlgBmXm8xMM=,tag:36ijroxe7+kXVlrQ9FlLCw==,type:str]", "pgp": [ { "created_at": "2025-07-01T06:17:36Z", @@ -11,6 +11,6 @@ } ], "unencrypted_suffix": "_unencrypted", - "version": "3.10.2" + "version": "3.13.1" } }