diff --git a/.github/workflows/update-flake-lock.yml b/.github/workflows/update-flake-lock.yml index 758ab534..fb81ef7e 100644 --- a/.github/workflows/update-flake-lock.yml +++ b/.github/workflows/update-flake-lock.yml @@ -8,6 +8,9 @@ on: permissions: contents: write pull-requests: write + # Required for `create-pull-request` to create a PR directly against the base branch + # if an existing PR for the branch already exists. + # Also required for auto-merging. jobs: lockfile: @@ -18,49 +21,102 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - + - name: Update nixpkgs input to unstable run: | - sed -i 's|hydenix-nixpkgs.url = "github:nixos/nixpkgs/.*"|hydenix-nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"|' flake.nix + sed -i 's|nixpkgs.url = "github:nixos/nixpkgs/.*"|nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"|' flake.nix - name: Update flake.lock run: nix flake update - name: Update flake.nix with new rev run: | - NEW_REV=$(jq -r '.nodes."hydenix-nixpkgs".locked.rev' flake.lock) + NEW_REV=$(jq -r '.nodes."nixpkgs".locked.rev' flake.lock) if [ -n "$NEW_REV" ] && [ "$NEW_REV" != "null" ]; then - sed -i 's|hydenix-nixpkgs.url = "github:nixos/nixpkgs/[^"]*"|hydenix-nixpkgs.url = "github:nixos/nixpkgs/'$NEW_REV'"|' flake.nix + sed -i 's|nixpkgs.url = "github:nixos/nixpkgs/[^"]*"|nixpkgs.url = "github:nixos/nixpkgs/'$NEW_REV'"|' flake.nix else echo "Failed to extract revision from flake.lock" exit 1 fi - name: Verify flake.nix run: | - grep -q "hydenix-nixpkgs.url" flake.nix || (echo "Failed to update flake.nix" && exit 1) - + grep -q "nixpkgs.url" flake.nix || (echo "Failed to update flake.nix" && exit 1) + - name: Check Root Flake id: check_root - continue-on-error: true - run: nix flake check + continue-on-error: true # Temporarily set to true to capture output even on failure + run: | + ROOT_CHECK_RESULT=$(nix flake check 2>&1 || true) # Capture output, and continue on error + echo "root_check_output<> $GITHUB_OUTPUT + echo "$ROOT_CHECK_RESULT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + if echo "$ROOT_CHECK_RESULT" | grep -q 'error'; then + echo "ROOT_CHECK_SUCCESS=false" >> $GITHUB_OUTPUT + else + echo "ROOT_CHECK_SUCCESS=true" >> $GITHUB_OUTPUT + fi - name: Check Template Flake id: check_template - continue-on-error: true + continue-on-error: true # Temporarily set to true to capture output even on failure run: | cd template sed -i 's|url = "github:richen604/hydenix"|url = "path:../"|' flake.nix - nix flake check + TEMPLATE_CHECK_RESULT=$(nix flake check 2>&1 || true) # Capture output, and continue on error + echo "template_check_output<> $GITHUB_OUTPUT + echo "$TEMPLATE_CHECK_RESULT" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + if echo "$TEMPLATE_CHECK_RESULT" | grep -q 'error'; then + echo "TEMPLATE_CHECK_SUCCESS=false" >> $GITHUB_OUTPUT + else + echo "TEMPLATE_CHECK_SUCCESS=true" >> $GITHUB_OUTPUT + fi git checkout flake.nix rm -f flake.lock - + - name: Create Pull Request + id: create_pr uses: peter-evans/create-pull-request@v5 with: commit-message: "chore(deps): update flake.lock" title: "chore(deps): update flake.lock" - branch: update-flake-lock-${{ github.run_id }} - delete-branch: true + branch: update-flake-lock + token: ${{ secrets.GITHUB_TOKEN }} body: | Updated flake.lock file. - Root Flake check: ${{ steps.check_root.outcome == 'success' && '✅ Passed' || '❌ Failed' }} - Template Flake check: ${{ steps.check_template.outcome == 'success' && '✅ Passed' || '❌ Failed' }} + --- + + ### Root Flake Check: ${{ steps.check_root.outputs.ROOT_CHECK_SUCCESS == 'true' && '✅ Passed' || '❌ Failed' }} +
+ View output + + ``` + ${{ steps.check_root.outputs.root_check_output }} + ``` + +
+ + ### Template Flake Check: ${{ steps.check_template.outputs.TEMPLATE_CHECK_SUCCESS == 'true' && '✅ Passed' || '❌ Failed' }} +
+ View output + + ``` + ${{ steps.check_template.outputs.template_check_output }} + ``` + +
+ + --- + if: always() + + - name: Enable auto-merge on PR + if: ${{ steps.check_root.outputs.ROOT_CHECK_SUCCESS == 'true' && steps.check_template.outputs.TEMPLATE_CHECK_SUCCESS == 'true' && steps.create_pr.outputs.pull-request-number }} + run: | + gh pr merge ${{ steps.create_pr.outputs.pull-request-number }} --auto --squash + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Check overall status and fail if necessary + if: ${{ steps.check_root.outputs.ROOT_CHECK_SUCCESS == 'false' || steps.check_template.outputs.TEMPLATE_CHECK_SUCCESS == 'false' }} + run: | + echo "One or more flake checks failed. Failing workflow as requested." + exit 1 diff --git a/.github/workflows/update-themes.yml b/.github/workflows/update-themes.yml index 7eca752d..bccfc99f 100644 --- a/.github/workflows/update-themes.yml +++ b/.github/workflows/update-themes.yml @@ -8,6 +8,9 @@ on: jobs: update-themes: runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write steps: - name: Checkout repository uses: actions/checkout@v3 @@ -31,8 +34,8 @@ jobs: uses: peter-evans/create-pull-request@v5 with: token: ${{ secrets.GITHUB_TOKEN }} - commit-message: "feat(themes): automated theme updates" - title: "feat(themes): Automated HyDE Theme Updates" + commit-message: "chore(themes): automated theme updates" + title: "chore(themes): Automated HyDE Theme Updates" body: | This PR updates the `sha256` for HyDE themes based on their specified `rev`. Automated by GitHub Actions. @@ -45,10 +48,19 @@ jobs: reviewers: ${{ github.actor }} add-paths: "hydenix/sources/themes/*.nix" - # - name: Enable Auto-merge - # if: steps.create_pr.outputs.pull-request-number - # run: | - # gh pr merge --auto --rebase "$PR_URL" - # env: - # PR_URL: ${{ steps.create_pr.outputs.pull-request-url }} - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install GitHub CLI + run: | + sudo apt-get update + sudo apt-get install -y gh + + - name: Enable Auto-merge + if: steps.create_pr.outputs.pull-request-number + run: | + PR_NUMBER="${{ steps.create_pr.outputs.pull-request-number }}" + if [ -n "$PR_NUMBER" ]; then + gh pr merge --auto --rebase "$PR_NUMBER" + else + echo "::warning:: No pull request was created. Auto-merge skipped." + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e24eda2..bf6beb39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ ### Bug Fixes * **editor:** set default applications and add common code mimetypes ([92c05fc](https://github.com/richen604/hydenix/commit/92c05fc3431362a6aee3d9173905fa5341aed2fd)) -* hydenix-nixpkgs as main version for inputs ([9038178](https://github.com/richen604/hydenix/commit/9038178d9f34dbbaec0306e86369ee22b2910a6e)) +* nixpkgs as main version for inputs ([9038178](https://github.com/richen604/hydenix/commit/9038178d9f34dbbaec0306e86369ee22b2910a6e)) * removed unnecessary with lib ([7e1d51f](https://github.com/richen604/hydenix/commit/7e1d51ff611e9473df63bf4eef886ca598751057)) * revert hyprland pkgs, bumped theme. fixes [#143](https://github.com/richen604/hydenix/issues/143) ([bc56c39](https://github.com/richen604/hydenix/commit/bc56c39a77d267712bee0429e269c4c19c91a578)) * sddm pkg ([71a6a49](https://github.com/richen604/hydenix/commit/71a6a49d2b79913643991b035d419ab6efe1b69a)) diff --git a/TODO.md b/TODO.md index 03814cda..9f8052a1 100644 --- a/TODO.md +++ b/TODO.md @@ -1,58 +1,196 @@ # todo +## done + ## now -- feat: new themes to build +- refactor: rename all overlays so there is no namespace nesting ## next -- fix: hydenix.hm.hyprland options with presets should by type str to allow for overrides, example should show default lists +- feat: home-manager configuration in flake + +## 5.0.0 + +feat!: 5.0 release + +existing template has gone through a major overhaul, please read through all the breaking changes below. at worst generate a new template and copy your config over. + +a restart or `nixos-rebuild boot` is required for this update + +BREAKING CHANGES: + +- updated hyde to f246f2a +- hyde now uses uwsm (`hydenix.hm.uwsm.enable` is true by default) +- hydenix no longer uses hyde's sddm themes as they rely on deprecated qt5 libraries, `sddm-astronaut` is now used instead by default +-
hydenix template changes: (click to expand) + + (`template/flake.nix`) + + ```diff + diff --git a/template/flake.nix b/template/flake.nix + index 125f1e9..0ba0e9a 100644 + --- a/template/flake.nix + +++ b/template/flake.nix + @@ -2,31 +2,35 @@ + description = "template for hydenix"; + + inputs = { + - # User's nixpkgs - for user packages + + # Your nixpkgs + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + + - # Hydenix and its nixpkgs - kept separate to avoid conflicts + + # Hydenix + hydenix = { + # Available inputs: + # Main: github:richen604/hydenix + - # Dev: github:richen604/hydenix/dev + # Commit: github:richen604/hydenix/ + - # Version: github:richen604/hydenix/v1.0.0 + + # Version: github:richen604/hydenix/v1.0.0 - note the version may not be compatible with this template + url = "github:richen604/hydenix"; + + # uncomment the below if you know what you're doing, hydenix updates nixos-unstable every week or so + + # inputs.nixpkgs.follows = "nixpkgs"; + }; + + - # Nix-index-database - for comma and command-not-found + - nix-index-database = { + - url = "github:nix-community/nix-index-database"; + + # Home Manager + + home-manager = { + + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + + + # Hardware Configuration's, used in ./configuration.nix. Feel free to remove if unused + + nixos-hardware.url = "github:nixos/nixos-hardware/master"; + }; + + outputs = + { ... }@inputs: + let + - hydenixConfig = inputs.hydenix.inputs.hydenix-nixpkgs.lib.nixosSystem { + - inherit (inputs.hydenix.lib) system; + + system = "x86_64-linux"; + + hydenixConfig = inputs.nixpkgs.lib.nixosSystem { + + inherit system; + specialArgs = { + inherit inputs; + }; + @@ -38,5 +42,6 @@ + in + { + nixosConfigurations.hydenix = hydenixConfig; + + nixosConfigurations.default = hydenixConfig; + }; + } + ``` + + (`template/configuration.nix`) + + ```diff + --- a/template/configuration.nix + +++ b/template/configuration.nix + @@ -5,17 +5,12 @@ + let + # Package configuration - sets up package system with proper overlays + # Most users won't need to modify this section + - pkgs = import inputs.hydenix.inputs.hydenix-nixpkgs { + - inherit (inputs.hydenix.lib) system; + + system = "x86_64-linux"; + + pkgs = import inputs.nixpkgs { + + inherit system; + config.allowUnfree = true; + overlays = [ + - inputs.hydenix.lib.overlays + - (final: prev: { + - userPkgs = import inputs.nixpkgs { + - inherit (pkgs) system; + - config.allowUnfree = true; + - }; + - }) + + inputs.hydenix.overlays.default + ]; + }; + in + @@ -24,8 +19,8 @@ in + + imports = [ + # hydenix inputs - Required modules, don't modify unless you know what you're doing + - inputs.hydenix.inputs.home-manager.nixosModules.home-manager + - inputs.hydenix.lib.nixOsModules + + inputs.home-manager.nixosModules.home-manager + + inputs.hydenix.nixosModules.default + ./modules/system # Your custom system modules + ./hardware-configuration.nix # Auto-generated hardware config + + @@ -33,17 +28,17 @@ in + # Run `lshw -short` or `lspci` to identify your hardware + + # GPU Configuration (choose one): + - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-gpu-nvidia # NVIDIA + - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-gpu-amd # AMD + + # inputs.nixos-hardware.nixosModules.common-gpu-nvidia # NVIDIA + + # inputs.nixos-hardware.nixosModules.common-gpu-amd # AMD + + # CPU Configuration (choose one): + - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-cpu-amd # AMD CPUs + - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-cpu-intel # Intel CPUs + + # inputs.nixos-hardware.nixosModules.common-cpu-amd # AMD CPUs + + # inputs.nixos-hardware.nixosModules.common-cpu-intel # Intel CPUs + + # Additional Hardware Modules - Uncomment based on your system type: + - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-hidpi # High-DPI displays + + # inputs.nixos-hardware.nixosModules.common-hidpi # High-DPI displays + + # inputs.nixos-hardware.nixosModules.common-pc-laptop # Laptops + + # inputs.nixos-hardware.nixosModules.common-pc-ssd # SSD storage + ]; + + # If enabling NVIDIA, you will be prompted to configure hardware.nvidia + @@ -68,8 +63,7 @@ in + { ... }: + { + imports = [ + - inputs.hydenix.lib.homeModules + - inputs.nix-index-database.hmModules.nix-index # Command-not-found and comma tool support + + inputs.hydenix.homeModules.default + ./modules/hm # Your custom home-manager modules (configure hydenix.hm here!) + ]; + }; + ``` + +
+ +## backlog + - feat: move hyprlock to hyprland module, swaylock should just be swaylock module - assertion to not have both enabled -- feat: hyde config.toml options - feat: extending more options for feature parity with hyde - fastfetch - hyprlock - rofi - waybar -- docs: remove doc for overlays on theme for now i think unless i can fix it - - adding the overlay causes `pkgs.hydenix.hyde` to disappear lol -- feat: update.sh for themes, map name to hash (check daily), passThru update.sh caller github action and auto merge - - -- feat: vscode-nix-ide part of editors, enabled by default - fix: i don't think .config/waybar/modules is supposed to be set anymore - -## 5.0.0 - -- fix: removed hydenix-inputs from template/configuration.nix -- refactor: removed hydenix.lib to standardize outputs, hydenix nixOsModules to nixosModules -- refactor: rename all overlays so there is no namespace nesting -- fix: nix-index should be a module in hydenix only, its declared twice -- fix: rename nix-index home-manager module whatever new name -- feat: user now owns their nixosSystem, depreciated hydenix-nixpkgs.lib.nixosSystem -- feat: hydenix follows its own nixpkgs, no userPkgs overlays, template hydenix follows nixpkgs by default - - update docs to reflect this, as users can remove - -## backlog - -- complete demo video after 5.0 +- fix: remove duplicate udisks2 setup +- hm.hyprland should have more warnings related to config overrides +- feat: hyde config.toml options +- demo video? fix demo-vm - fix: wallbash for code - feat: assertions for common requirements - chore: review bug template to make it more clear (easier with scripts?) - feat: enhance `mutable` Home Manager option for `home.file`, `xdg.configFile`, `xdg.dataFile`: - - Introduce `mutable.enable` (boolean) and `mutable.mode` (enum: `initOnly`, `replace`) for fine-grained control over file copying behavior. - - Implement custom cleanup logic for `mutable.enable = true` files, ensuring they are removed when no longer declared in the configuration. - - Largest hurdle is if users remove the module the stale files will exist as mutable.nix is no longer imported - - Ensure this cleanup mechanism supports Home Manager generation rollbacks. + - introduce `mutable.enable` (boolean) and `mutable.mode` (enum: `initOnly`, `replace`) for fine-grained control over file copying behavior. + - implement custom cleanup logic for `mutable.enable = true` files, ensuring they are removed when no longer declared in the configuration. + - largest hurdle is if users remove the module the stale files will exist as mutable.nix is no longer imported + - ensure this cleanup mechanism supports Home Manager generation rollbacks. - create a simple flake to test and export as a full module +- feat: spicetify theme support? flatpak? -## future +## future? - binary cache when i build it - -## notes - - using nixos-anywhere to install hydenix: - must be part of the template flake or a new template flake, as it will be used for the user configuration - document disko configuration clearly, the issue is ive never used disko @@ -60,4 +198,3 @@ - nh by default? - docs: documentation generation using nixosOptionsDoc - refactor: revise module hierarchy to be more clear and concise? -- feat: spicetify theme support? flatpak? diff --git a/flake.lock b/flake.lock index 8bfacded..009b6de0 100644 --- a/flake.lock +++ b/flake.lock @@ -21,15 +21,15 @@ "home-manager": { "inputs": { "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ] }, "locked": { - "lastModified": 1756261190, - "narHash": "sha256-eiy0klFK5EVJLNilutR7grsZN/7Itj9DyD75eyOf83k=", + "lastModified": 1758296614, + "narHash": "sha256-l60D1i0aaSqemy9dL7wP0ePMfcv/oZbeKpvUMY+q0kQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "77f348da3176dc68b20a73dab94852a417daf361", + "rev": "55b1f5b7b191572257545413b98e37abab2fdb00", "type": "github" }, "original": { @@ -41,24 +41,24 @@ "hyde": { "flake": false, "locked": { - "lastModified": 1752889605, - "narHash": "sha256-hT7xLsfqsVwcYS/YscRwVOPqK8ZpubhGdpK58INkdJ0=", + "lastModified": 1758290412, + "narHash": "sha256-fXW+yxDQ0iLFX2YuKDpv82lIPbGDgii5kpsWCDp3m4s=", "owner": "HyDE-Project", "repo": "HyDE", - "rev": "168287f2f10e95a4a9a623c955c7e08147c48472", + "rev": "f246f2a89b8e862b96042cb2b291b191289c2fde", "type": "github" }, "original": { "owner": "HyDE-Project", "repo": "HyDE", - "rev": "168287f2f10e95a4a9a623c955c7e08147c48472", + "rev": "f246f2a89b8e862b96042cb2b291b191289c2fde", "type": "github" } }, "hyde-config": { "inputs": { "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ] }, "locked": { @@ -78,7 +78,7 @@ "hyde-ipc": { "inputs": { "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ], "rust-overlay": "rust-overlay" }, @@ -99,7 +99,7 @@ "hydectl": { "inputs": { "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ] }, "locked": { @@ -116,35 +116,19 @@ "type": "github" } }, - "hydenix-nixpkgs": { - "locked": { - "lastModified": 1756288264, - "narHash": "sha256-Om8adB1lfkU7D33VpR+/haZ2gI5r3Q+ZbIPzE5sYnwE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9", - "type": "github" - } - }, "hyq": { "inputs": { "flake-utils": "flake-utils", "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ] }, "locked": { - "lastModified": 1756353138, - "narHash": "sha256-2G8YwNzELvklrYftaRAzNLZ2AbDtIrWzgRgnhReNnuk=", + "lastModified": 1758584112, + "narHash": "sha256-pCpT45dyylVxXaNf9/0qEx+cLdcfVTciXu/O3+H/4sM=", "owner": "richen604", "repo": "hyprquery", - "rev": "afe6da39cf94f3e24dcfd13abf88da6ea5d661ac", + "rev": "8ec7f74d0c3c5421861d008786e3c13d03d0e211", "type": "github" }, "original": { @@ -156,15 +140,15 @@ "nix-index-database": { "inputs": { "nixpkgs": [ - "hydenix-nixpkgs" + "nixpkgs" ] }, "locked": { - "lastModified": 1756008611, - "narHash": "sha256-rfTBWuTXi9/X7GhtF562FKNXKh2kvKb6dwI5lV1SjPE=", + "lastModified": 1757822619, + "narHash": "sha256-3HIpe3P2h1AUPYcAH9cjuX0tZOqJpX01c0iDwoUYNZ8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "52dec1cb33a614accb9e01307e17816be974d24d", + "rev": "050a5feb5d1bb5b6e5fc04a7d3d816923a87c9ea", "type": "github" }, "original": { @@ -175,15 +159,15 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1756245047, - "narHash": "sha256-9bHzrVbjAudbO8q4vYFBWlEkDam31fsz0J7GB8k4AsI=", - "owner": "NixOS", + "lastModified": 1758663926, + "narHash": "sha256-6CFdj7Xs616t1W4jLDH7IohAAvl5Dyib3qEv/Uqw1rk=", + "owner": "nixos", "repo": "nixos-hardware", - "rev": "a65b650d6981e23edd1afa1f01eb942f19cdcbb7", + "rev": "170ff93c860b2a9868ed1e1102d4e52cb3d934e1", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "master", "repo": "nixos-hardware", "type": "github" @@ -205,6 +189,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1759036355, + "narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127", + "type": "github" + } + }, "root": { "inputs": { "home-manager": "home-manager", @@ -212,10 +212,10 @@ "hyde-config": "hyde-config", "hyde-ipc": "hyde-ipc", "hydectl": "hydectl", - "hydenix-nixpkgs": "hydenix-nixpkgs", "hyq": "hyq", "nix-index-database": "nix-index-database", - "nixos-hardware": "nixos-hardware" + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs_2" } }, "rust-overlay": { diff --git a/flake.nix b/flake.nix index 6bbc7e66..70a1cb02 100644 --- a/flake.nix +++ b/flake.nix @@ -3,70 +3,53 @@ inputs = { # Hydenix's nixpkgs - hydenix-nixpkgs.url = "github:nixos/nixpkgs/ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9"; - + nixpkgs.url = "github:nixos/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127"; home-manager = { url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; - nixos-hardware.url = "github:NixOS/nixos-hardware/master"; + nixos-hardware.url = "github:nixos/nixos-hardware/master"; # Nix-index-database - for comma and command-not-found nix-index-database = { url = "github:nix-community/nix-index-database"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; - hyde = { - url = "github:HyDE-Project/HyDE/168287f2f10e95a4a9a623c955c7e08147c48472"; + url = "github:HyDE-Project/HyDE/f246f2a89b8e862b96042cb2b291b191289c2fde"; flake = false; }; - # HyDE related binaries hyq = { url = "github:richen604/hyprquery"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; hydectl = { url = "github:richen604/hydectl"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; hyde-ipc = { url = "github:richen604/hyde-ipc"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; hyde-config = { url = "github:richen604/hyde-config"; - inputs.nixpkgs.follows = "hydenix-nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; - }; outputs = - hydenix-inputs@{ hydenix-nixpkgs, ... }: + { ... }@inputs: let system = "x86_64-linux"; - # Create lib attribute that template expects - lib = { - inherit system; - overlays = import ./hydenix/sources/overlay.nix hydenix-inputs; - nixOsModules = ./hydenix/modules/system; - homeModules = ./hydenix/modules/hm; - }; - - # Internal inputs for building packages and configurations - inputs = hydenix-inputs // { - inherit lib; - }; - defaultConfig = import ./lib/config { inherit inputs; }; # Create VM variant of the NixOS configuration vmConfig = import ./lib/vms/nixos-vm.nix { - nixosConfiguration = defaultConfig; inherit inputs; + nixosConfiguration = defaultConfig; }; demoVmConfig = import ./lib/vms/demo-vm.nix { @@ -75,15 +58,12 @@ in { - # Main API that template uses - # Will be depreciated in the next api update - inherit lib; # Direct module access - homeModules.default = ./hydenix/modules/hm; - nixosModules.default = ./hydenix/modules/system; + homeModules.default = import ./hydenix/modules/hm; + nixosModules.default = import ./hydenix/modules/system; - overlays.default = import ./hydenix/sources/overlay.nix hydenix-inputs; + overlays.default = import ./hydenix/sources/overlay.nix { inherit inputs; }; templates.default = { path = ./template; diff --git a/hydenix/modules/hm/comma.nix b/hydenix/modules/hm/comma.nix index 5eee9ddb..c0e46120 100644 --- a/hydenix/modules/hm/comma.nix +++ b/hydenix/modules/hm/comma.nix @@ -1,7 +1,7 @@ { config, lib, - pkgs, + inputs, ... }: @@ -14,8 +14,19 @@ */ let cfg = config.hydenix.hm.comma; + in { + imports = [ + # handles both local build and template flake + ( + if inputs ? nix-index-database then + inputs.nix-index-database.homeModules.nix-index + else + inputs.hydenix.inputs.nix-index-database.homeModules.nix-index + ) + ]; + options.hydenix.hm.comma = { enable = lib.mkOption { type = lib.types.bool; diff --git a/hydenix/modules/hm/default.nix b/hydenix/modules/hm/default.nix index 331f22d3..673455ae 100644 --- a/hydenix/modules/hm/default.nix +++ b/hydenix/modules/hm/default.nix @@ -27,6 +27,7 @@ ./swww.nix ./terminals.nix ./theme.nix + ./uwsm.nix ./waybar.nix ./wlogout.nix ./xdg.nix diff --git a/hydenix/modules/hm/dolphin.nix b/hydenix/modules/hm/dolphin.nix index 9798b1ed..b4b655e8 100644 --- a/hydenix/modules/hm/dolphin.nix +++ b/hydenix/modules/hm/dolphin.nix @@ -19,7 +19,6 @@ in config = lib.mkIf cfg.enable { - #! we are using libsForQt5 because dolphin likes to break things like icons on qt6 home.packages = with pkgs.kdePackages; [ dolphin # KDE file manager qtimageformats # Image format support for Qt5 @@ -43,18 +42,18 @@ in home.file = { ".config/dolphinrc" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/dolphinrc"; + source = "${pkgs.hyde}/Configs/.config/dolphinrc"; }; ".config/baloofilerc" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/baloofilerc"; + source = "${pkgs.hyde}/Configs/.config/baloofilerc"; }; ".config/menus/applications.menu" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/menus/applications.menu"; + source = "${pkgs.hyde}/Configs/.config/menus/applications.menu"; }; # stateful file for themes ".config/kdeglobals" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/kdeglobals"; + source = "${pkgs.hyde}/Configs/.config/kdeglobals"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/editors.nix b/hydenix/modules/hm/editors.nix index c2928a7b..208a98cf 100644 --- a/hydenix/modules/hm/editors.nix +++ b/hydenix/modules/hm/editors.nix @@ -82,22 +82,22 @@ in home.file = lib.mkMerge [ (lib.mkIf cfg.vscode.enable { # Editor flags - ".config/code-flags.conf".source = "${pkgs.hydenix.hyde}/Configs/.config/code-flags.conf"; - ".config/codium-flags.conf".source = "${pkgs.hydenix.hyde}/Configs/.config/codium-flags.conf"; + ".config/code-flags.conf".source = "${pkgs.hyde}/Configs/.config/code-flags.conf"; + ".config/codium-flags.conf".source = "${pkgs.hyde}/Configs/.config/codium-flags.conf"; # VS Code settings ".config/Code - OSS/User/settings.json" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/Code - OSS/User/settings.json"; + source = "${pkgs.hyde}/Configs/.config/Code - OSS/User/settings.json"; force = true; mutable = true; }; ".config/Code/User/settings.json" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/Code/User/settings.json"; + source = "${pkgs.hyde}/Configs/.config/Code/User/settings.json"; force = true; mutable = true; }; ".config/VSCodium/User/settings.json" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/VSCodium/User/settings.json"; + source = "${pkgs.hyde}/Configs/.config/VSCodium/User/settings.json"; force = true; mutable = true; }; @@ -105,7 +105,7 @@ in (lib.mkIf cfg.vscode.wallbash { # Link the wallbash extension from hyde package ".vscode/extensions/prasanthrangan.wallbash" = { - source = "${pkgs.hydenix.hyde}/share/vscode/extensions/prasanthrangan.wallbash"; + source = "${pkgs.hyde}/share/vscode/extensions/prasanthrangan.wallbash"; recursive = true; mutable = true; force = true; @@ -114,12 +114,12 @@ in (lib.mkIf (cfg.vim or cfg.neovim) { ".config/vim/colors/wallbash.vim" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/vim/colors/wallbash.vim"; + source = "${pkgs.hyde}/Configs/.config/vim/colors/wallbash.vim"; force = true; mutable = true; }; - ".config/vim/hyde.vim".source = "${pkgs.hydenix.hyde}/Configs/.config/vim/hyde.vim"; - ".config/vim/vimrc".source = "${pkgs.hydenix.hyde}/Configs/.config/vim/vimrc"; + ".config/vim/hyde.vim".source = "${pkgs.hyde}/Configs/.config/vim/hyde.vim"; + ".config/vim/vimrc".source = "${pkgs.hyde}/Configs/.config/vim/vimrc"; }) ]; diff --git a/hydenix/modules/hm/fastfetch.nix b/hydenix/modules/hm/fastfetch.nix index 7630dd87..1479aaa5 100644 --- a/hydenix/modules/hm/fastfetch.nix +++ b/hydenix/modules/hm/fastfetch.nix @@ -20,12 +20,12 @@ in config = lib.mkIf cfg.enable { home.file = { ".config/fastfetch/config.jsonc" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/fastfetch/config.jsonc"; + source = "${pkgs.hyde}/Configs/.config/fastfetch/config.jsonc"; }; # TODO: add hydenix logo # TODO: custom logos and pick defaults ".config/fastfetch/logos" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/fastfetch/logos"; + source = "${pkgs.hyde}/Configs/.config/fastfetch/logos"; recursive = true; }; }; diff --git a/hydenix/modules/hm/gtk.nix b/hydenix/modules/hm/gtk.nix index 81be3f16..bffedb0b 100644 --- a/hydenix/modules/hm/gtk.nix +++ b/hydenix/modules/hm/gtk.nix @@ -32,23 +32,23 @@ in ]; home.file = { ".config/nwg-look/config" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/nwg-look/config"; + source = "${pkgs.hyde}/Configs/.config/nwg-look/config"; }; # stateful files # TODO: might flash on initial theme change, unnecessary? ".config/gtk-3.0/settings.ini" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/gtk-3.0/settings.ini"; + source = "${pkgs.hyde}/Configs/.config/gtk-3.0/settings.ini"; force = true; mutable = true; }; ".gtkrc-2.0" = { - source = "${pkgs.hydenix.hyde}/Configs/.gtkrc-2.0"; + source = "${pkgs.hyde}/Configs/.gtkrc-2.0"; force = true; mutable = true; }; ".config/xsettingsd/xsettingsd.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/xsettingsd/xsettingsd.conf"; + source = "${pkgs.hyde}/Configs/.config/xsettingsd/xsettingsd.conf"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/hyde.nix b/hydenix/modules/hm/hyde.nix index 9993a1a2..aff83b54 100644 --- a/hydenix/modules/hm/hyde.nix +++ b/hydenix/modules/hm/hyde.nix @@ -21,13 +21,23 @@ in # TODO: review stateful files in hyde module config = lib.mkIf cfg.enable { home.packages = with pkgs; [ - hydenix.hyde + hyde Bibata-Modern-Ice Tela-circle-dracula kdePackages.kconfig # TODO: not sure if this is still needed wf-recorder # screen recorder for wlroots-based compositors such as sway + python-pyamdgpuinfo + hyq + hydectl + hyde-ipc + hyde-config ]; + # ensures hyprland config is available in session as per hyde uwsm update + home.sessionVariables = { + HYPRLAND_CONFIG = "${config.xdg.dataHome}/hypr/hyprland.conf"; + }; + fonts.fontconfig.enable = true; # fixes cava from not initializing on boot @@ -40,7 +50,7 @@ in home.file = { # Regular files (processed first) ".config/hyde/wallbash" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hyde/wallbash"; + source = "${pkgs.hyde}/Configs/.config/hyde/wallbash"; recursive = true; force = true; mutable = true; @@ -70,98 +80,89 @@ in ''; }; ".config/systemd/user/hyde-ipc.service" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/systemd/user/hyde-ipc.service"; + source = "${pkgs.hyde}/Configs/.config/systemd/user/hyde-ipc.service"; }; ".local/bin/hyde-shell" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/bin/hyde-shell"; - executable = true; - }; - - # TODO: requires nix-ld - ".local/bin/hydectl" = { - source = "${pkgs.hydenix.hydectl}/bin/hydectl"; - executable = true; - }; - - ".local/bin/hyde-ipc" = { - source = "${pkgs.hydenix.hyde-ipc}/bin/hyde-ipc"; - executable = true; - }; - - ".local/bin/hyq" = { - source = "${pkgs.hydenix.hyq}/bin/hyq"; + source = pkgs.writeShellScript "hyde-shell" '' + export PYTHONPATH="${pkgs.python-pyamdgpuinfo}/${pkgs.python3.sitePackages}:$PYTHONPATH" + exec "${pkgs.hyde}/Configs/.local/bin/hyde-shell" "$@" + ''; executable = true; }; ".local/lib/hyde" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/lib/hyde"; + source = "${pkgs.hyde}/Configs/.local/lib/hyde"; recursive = true; executable = true; + force = true; }; - ".local/lib/hyde-config" = { - source = "${pkgs.hydenix.hyde-config}/bin/hyde-config"; + ".local/lib/hyde/resetxdgportal.sh" = { + text = '' + #!/usr/bin/env bash + + ''; executable = true; - # FIXME: this is a hack to make sure the hyde-config binary is copied after the .local/lib/hyde above mutable = true; force = true; }; - ".local/lib/hyde/globalcontrol.sh" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/lib/hyde/globalcontrol.sh"; - executable = true; - }; - ".local/share/fastfetch/presets/hyde" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/fastfetch/presets/hyde"; + source = "${pkgs.hyde}/Configs/.local/share/fastfetch/presets/hyde"; recursive = true; }; ".local/share/hyde" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/hyde"; + source = "${pkgs.hyde}/Configs/.local/share/hyde"; recursive = true; executable = true; force = true; mutable = true; }; + ".local/share/wallbash/" = { + source = "${pkgs.hyde}/Configs/.local/share/wallbash/"; + recursive = true; + force = true; + mutable = true; + }; ".local/share/waybar/includes" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/waybar/includes"; + source = "${pkgs.hyde}/Configs/.local/share/waybar/includes"; recursive = true; }; ".local/share/waybar/layouts" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/waybar/layouts"; + source = "${pkgs.hyde}/Configs/.local/share/waybar/layouts"; recursive = true; }; ".local/share/waybar/menus" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/waybar/menus"; + source = "${pkgs.hyde}/Configs/.local/share/waybar/menus"; recursive = true; }; ".local/share/waybar/modules" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/waybar/modules"; + source = "${pkgs.hyde}/Configs/.local/share/waybar/modules"; recursive = true; }; ".local/share/waybar/styles" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/waybar/styles"; + source = "${pkgs.hyde}/Configs/.local/share/waybar/styles"; force = true; mutable = true; recursive = true; }; ".config/MangoHud/MangoHud.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/MangoHud/MangoHud.conf"; + source = "${pkgs.hyde}/Configs/.config/MangoHud/MangoHud.conf"; }; ".local/share/kio/servicemenus/hydewallpaper.desktop" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/kio/servicemenus/hydewallpaper.desktop"; + source = "${pkgs.hyde}/Configs/.local/share/kio/servicemenus/hydewallpaper.desktop"; }; ".local/share/kxmlgui5/dolphin/dolphinui.rc" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/kxmlgui5/dolphin/dolphinui.rc"; + source = "${pkgs.hyde}/Configs/.local/share/kxmlgui5/dolphin/dolphinui.rc"; }; ".config/electron-flags.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/electron-flags.conf"; + source = "${pkgs.hyde}/Configs/.config/electron-flags.conf"; }; ".local/share/icons/Wallbash-Icon" = { - source = "${pkgs.hydenix.hyde}/share/icons/Wallbash-Icon"; + source = "${pkgs.hyde}/share/icons/Wallbash-Icon"; force = true; recursive = true; mutable = true; @@ -169,26 +170,27 @@ in # stateful files ".config/hyde/config.toml" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hyde/config.toml"; + source = "${pkgs.hyde}/Configs/.config/hyde/config.toml"; force = true; mutable = true; }; ".local/share/dolphin/view_properties/global/.directory" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/dolphin/view_properties/global/.directory"; + source = "${pkgs.hyde}/Configs/.local/share/dolphin/view_properties/global/.directory"; force = true; mutable = true; }; ".local/share/icons/default/index.theme" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/share/icons/default/index.theme"; + source = "${pkgs.hyde}/Configs/.local/share/icons/default/index.theme"; force = true; mutable = true; }; ".local/share/themes/Wallbash-Gtk" = { - source = "${pkgs.hydenix.hyde}/share/themes/Wallbash-Gtk"; + source = "${pkgs.hyde}/share/themes/Wallbash-Gtk"; recursive = true; force = true; mutable = true; }; }; }; + } diff --git a/hydenix/modules/hm/hyprland/animations.nix b/hydenix/modules/hm/hyprland/animations.nix index 1b008750..107945ef 100644 --- a/hydenix/modules/hm/hyprland/animations.nix +++ b/hydenix/modules/hm/hyprland/animations.nix @@ -46,7 +46,7 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/animations/${cfg.animations.preset}.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/animations/${cfg.animations.preset}.conf"; force = true; mutable = true; }; @@ -64,7 +64,7 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/animations/${preset}.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/animations/${preset}.conf"; }; }) animationPresets )) diff --git a/hydenix/modules/hm/hyprland/default.nix b/hydenix/modules/hm/hyprland/default.nix index 48008043..bf326479 100644 --- a/hydenix/modules/hm/hyprland/default.nix +++ b/hydenix/modules/hm/hyprland/default.nix @@ -45,9 +45,14 @@ in chmod 644 "$HOME/.config/hypr/themes/colors.conf" chmod 644 "$HOME/.config/hypr/themes/theme.conf" chmod 644 "$HOME/.config/hypr/themes/wallbash.conf" + ''; home.file = { + ".local/share/hypr/" = { + source = "${pkgs.hyde}/Configs/.local/share/hypr/"; + recursive = true; + }; ".config/hypr/hyprland.conf" = if cfg.overrideMain != null then { @@ -56,12 +61,10 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprland.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprland.conf"; force = true; }; - ".config/hypr/hyde.conf".source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyde.conf"; - ".config/hypr/userprefs.conf" = { text = cfg.extraConfig; force = true; diff --git a/hydenix/modules/hm/hyprland/hypridle.nix b/hydenix/modules/hm/hyprland/hypridle.nix index b80b4054..58e8c7ff 100644 --- a/hydenix/modules/hm/hyprland/hypridle.nix +++ b/hydenix/modules/hm/hyprland/hypridle.nix @@ -20,7 +20,7 @@ in else { text = '' - ${lib.readFile "${pkgs.hydenix.hyde}/Configs/.config/hypr/hypridle.conf"} + ${lib.readFile "${pkgs.hyde}/Configs/.config/hypr/hypridle.conf"} ${cfg.hypridle.extraConfig} ''; force = true; diff --git a/hydenix/modules/hm/hyprland/keybindings.nix b/hydenix/modules/hm/hyprland/keybindings.nix index dfe5f7de..7089bf74 100644 --- a/hydenix/modules/hm/hyprland/keybindings.nix +++ b/hydenix/modules/hm/hyprland/keybindings.nix @@ -20,7 +20,7 @@ in else { text = '' - ${lib.readFile "${pkgs.hydenix.hyde}/Configs/.config/hypr/keybindings.conf"} + ${lib.readFile "${pkgs.hyde}/Configs/.config/hypr/keybindings.conf"} ${cfg.keybindings.extraConfig} ''; force = true; diff --git a/hydenix/modules/hm/hyprland/monitors.nix b/hydenix/modules/hm/hyprland/monitors.nix index 7bd962f3..2024ab42 100644 --- a/hydenix/modules/hm/hyprland/monitors.nix +++ b/hydenix/modules/hm/hyprland/monitors.nix @@ -20,7 +20,7 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/monitors.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/monitors.conf"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/hyprland/nvidia.nix b/hydenix/modules/hm/hyprland/nvidia.nix index 11842ac6..cf71dd99 100644 --- a/hydenix/modules/hm/hyprland/nvidia.nix +++ b/hydenix/modules/hm/hyprland/nvidia.nix @@ -20,7 +20,7 @@ in else { text = '' - ${lib.readFile "${pkgs.hydenix.hyde}/Configs/.config/hypr/nvidia.conf"} + ${lib.readFile "${pkgs.hyde}/Configs/.config/hypr/nvidia.conf"} ${cfg.nvidia.extraConfig} ''; force = true; diff --git a/hydenix/modules/hm/hyprland/options.nix b/hydenix/modules/hm/hyprland/options.nix index e1dd5b91..77a259eb 100644 --- a/hydenix/modules/hm/hyprland/options.nix +++ b/hydenix/modules/hm/hyprland/options.nix @@ -185,6 +185,23 @@ in }; }; + # Pyprland configurations + pyprland = { + enable = lib.mkEnableOption "pyprland configurations" // { + default = cfg.enable; + }; + extraConfig = lib.mkOption { + type = lib.types.lines; + default = ""; + description = "Additional pyprland configuration"; + }; + overrideConfig = lib.mkOption { + type = lib.types.nullOr lib.types.lines; + default = null; + description = "Complete pyprland configuration override"; + }; + }; + # Monitor configurations monitors = { enable = lib.mkEnableOption "monitor configurations" // { diff --git a/hydenix/modules/hm/hyprland/pyprland.nix b/hydenix/modules/hm/hyprland/pyprland.nix new file mode 100644 index 00000000..6e9e1088 --- /dev/null +++ b/hydenix/modules/hm/hyprland/pyprland.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.hydenix.hm.hyprland; +in +{ + config = lib.mkIf (cfg.enable && cfg.pyprland.enable) { + home.file = { + ".config/hypr/pyprland.toml" = + if cfg.pyprland.overrideConfig != null then + { + text = cfg.pyprland.overrideConfig; + force = true; + } + else + { + text = '' + ${lib.readFile "${pkgs.hyde}/Configs/.config/hypr/pyprland.toml"} + ${cfg.pyprland.extraConfig} + ''; + force = true; + }; + }; + }; +} diff --git a/hydenix/modules/hm/hyprland/shaders.nix b/hydenix/modules/hm/hyprland/shaders.nix index 2dd877c5..16d118be 100644 --- a/hydenix/modules/hm/hyprland/shaders.nix +++ b/hydenix/modules/hm/hyprland/shaders.nix @@ -32,7 +32,7 @@ in map (shader: { name = ".config/hypr/shaders/${shader}.frag"; value = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/shaders/${shader}.frag"; + source = "${pkgs.hyde}/Configs/.config/hypr/shaders/${shader}.frag"; }; }) standardShaders )) @@ -40,7 +40,7 @@ in # Additional shader files { ".config/hypr/shaders/.compiled.cache.glsl" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/shaders/.compiled.cache.glsl"; + source = "${pkgs.hyde}/Configs/.config/hypr/shaders/.compiled.cache.glsl"; force = true; mutable = true; }; @@ -57,7 +57,7 @@ in mutable = true; }; ".config/hypr/shaders/wallbash.inc".source = - "${pkgs.hydenix.hyde}/Configs/.config/hypr/shaders/wallbash.inc"; + "${pkgs.hyde}/Configs/.config/hypr/shaders/wallbash.inc"; } ]) diff --git a/hydenix/modules/hm/hyprland/windowrules.nix b/hydenix/modules/hm/hyprland/windowrules.nix index 889ba059..ad2c394f 100644 --- a/hydenix/modules/hm/hyprland/windowrules.nix +++ b/hydenix/modules/hm/hyprland/windowrules.nix @@ -20,7 +20,7 @@ in else { text = '' - ${lib.readFile "${pkgs.hydenix.hyde}/Configs/.config/hypr/windowrules.conf"} + ${lib.readFile "${pkgs.hyde}/Configs/.config/hypr/windowrules.conf"} ${cfg.windowrules.extraConfig} ''; force = true; diff --git a/hydenix/modules/hm/hyprland/workflows.nix b/hydenix/modules/hm/hyprland/workflows.nix index 241bb93c..b779cded 100644 --- a/hydenix/modules/hm/hyprland/workflows.nix +++ b/hydenix/modules/hm/hyprland/workflows.nix @@ -30,7 +30,7 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/workflows/${cfg.workflows.active}.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/workflows/${cfg.workflows.active}.conf"; force = true; mutable = true; }; @@ -48,7 +48,7 @@ in } else { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/workflows/${workflow}.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/workflows/${workflow}.conf"; }; }) workflowPresets )) diff --git a/hydenix/modules/hm/lockscreen.nix b/hydenix/modules/hm/lockscreen.nix index ced4393e..83454ca6 100644 --- a/hydenix/modules/hm/lockscreen.nix +++ b/hydenix/modules/hm/lockscreen.nix @@ -39,47 +39,45 @@ in # Hyprlock configs (lib.mkIf cfg.hyprlock { ".config/hypr/hyprlock.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock.conf"; }; ".config/hypr/hyprlock/theme.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/theme.conf"; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/theme.conf"; + mutable = true; force = true; }; - ".config/hypr/hyprlock/Anurati.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/Anurati.conf"; + ".config/hypr/hyprlock/greetd-wallbash.conf" = { + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/greetd-wallbash.conf"; + mutable = true; force = true; }; + ".config/hypr/hyprlock/Anurati.conf" = { + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/Anurati.conf"; + }; ".config/hypr/hyprlock/Arfan on Clouds.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/Arfan on Clouds.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/Arfan on Clouds.conf"; }; ".config/hypr/hyprlock/IBM Plex.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/IBM Plex.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/IBM Plex.conf"; }; ".config/hypr/hyprlock/SF Pro.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/SF Pro.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/SF Pro.conf"; }; ".config/hypr/hyprlock/IBM Xtented.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/IBM Xtented.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/IBM Xtented.conf"; }; ".config/hypr/hyprlock/greetd.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/greetd.conf"; - force = true; + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/greetd.conf"; }; - ".config/hypr/hyprlock/greetd-wallbash.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/hyprlock/greetd-wallbash.conf"; - force = true; + ".config/hypr/hyprlock/HyDE.conf" = { + source = "${pkgs.hyde}/Configs/.config/hypr/hyprlock/HyDE.conf"; }; }) # Swaylock config (lib.mkIf cfg.swaylock { ".config/swaylock/config" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/swaylock/config"; + source = "${pkgs.hyde}/Configs/.config/swaylock/config"; }; }) ]; diff --git a/hydenix/modules/hm/notifications.nix b/hydenix/modules/hm/notifications.nix index 6083cc74..87b3ba9b 100644 --- a/hydenix/modules/hm/notifications.nix +++ b/hydenix/modules/hm/notifications.nix @@ -25,12 +25,12 @@ in home.file = { # # stateful file for themes ".config/dunst/dunstrc" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/dunst/dunstrc"; + source = "${pkgs.hyde}/Configs/.config/dunst/dunstrc"; force = true; mutable = true; }; ".config/dunst/dunst.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/dunst/dunst.conf"; + source = "${pkgs.hyde}/Configs/.config/dunst/dunst.conf"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/qt.nix b/hydenix/modules/hm/qt.nix index 8d97d59a..a7eb6f6b 100644 --- a/hydenix/modules/hm/qt.nix +++ b/hydenix/modules/hm/qt.nix @@ -19,12 +19,6 @@ in config = lib.mkIf cfg.enable { home.packages = with pkgs; [ - libsForQt5.qt5ct - libsForQt5.qt5.qtbase - libsForQt5.qtstyleplugin-kvantum - libsForQt5.qtimageformats - libsForQt5.qtsvg - libsForQt5.qt5.qtwayland kdePackages.qt6ct kdePackages.qtbase kdePackages.qtwayland @@ -37,43 +31,43 @@ in home.file = { ".config/qt5ct/qt5ct.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/qt5ct/qt5ct.conf"; + source = "${pkgs.hyde}/Configs/.config/qt5ct/qt5ct.conf"; }; ".config/qt6ct/qt6ct.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/qt6ct/qt6ct.conf"; + source = "${pkgs.hyde}/Configs/.config/qt6ct/qt6ct.conf"; }; ".config/menus/applications.menu" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/menus/applications.menu"; + source = "${pkgs.hyde}/Configs/.config/menus/applications.menu"; }; ".config/Kvantum/wallbash/wallbash.kvconfig" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/Kvantum/wallbash/wallbash.kvconfig"; + source = "${pkgs.hyde}/Configs/.config/Kvantum/wallbash/wallbash.kvconfig"; force = true; mutable = true; }; ".config/Kvantum/wallbash/wallbash.svg" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/Kvantum/wallbash/wallbash.svg"; + source = "${pkgs.hyde}/Configs/.config/Kvantum/wallbash/wallbash.svg"; force = true; mutable = true; }; ".config/Kvantum/kvantum.kvconfig" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/Kvantum/kvantum.kvconfig"; + source = "${pkgs.hyde}/Configs/.config/Kvantum/kvantum.kvconfig"; force = true; mutable = true; }; # stateful files ".config/kdeglobals" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/kdeglobals"; + source = "${pkgs.hyde}/Configs/.config/kdeglobals"; force = true; mutable = true; }; ".config/qt5ct/colors.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/qt5ct/colors.conf"; + source = "${pkgs.hyde}/Configs/.config/qt5ct/colors.conf"; force = true; mutable = true; }; ".config/qt6ct/colors.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/qt6ct/colors.conf"; + source = "${pkgs.hyde}/Configs/.config/qt6ct/colors.conf"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/rofi.nix b/hydenix/modules/hm/rofi.nix index 80db7dd4..7b911a44 100644 --- a/hydenix/modules/hm/rofi.nix +++ b/hydenix/modules/hm/rofi.nix @@ -19,14 +19,14 @@ in config = lib.mkIf cfg.enable { home.packages = with pkgs; [ - rofi-wayland # application launcher + rofi # application launcher ]; home.file = { # stateful file, written by wallbash # .local/share/hyde/wallbash/theme/rofi.dcol ".config/rofi/theme.rasi" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/rofi/theme.rasi"; + source = "${pkgs.hyde}/Configs/.config/rofi/theme.rasi"; force = true; mutable = true; }; @@ -36,5 +36,22 @@ in $DRY_RUN_CMD mkdir -p "$HOME/.local/share/rofi/themes" $DRY_RUN_CMD find "$HOME/.local/share/hyde/rofi/themes" -type f -o -type l -exec ln -snf {} "$HOME/.local/share/rofi/themes/" \; 2>/dev/null || true ''; + + home.file = { + + ".local/share/hyde/rofi/assets/" = { + source = "${pkgs.hyde}/Configs/.local/share/hyde/rofi/assets/"; + recursive = true; + force = true; + mutable = true; + }; + + ".local/share/hyde/rofi/themes/" = { + source = "${pkgs.hyde}/Configs/.local/share/hyde/rofi/themes/"; + recursive = true; + force = true; + mutable = true; + }; + }; }; } diff --git a/hydenix/modules/hm/screenshots.nix b/hydenix/modules/hm/screenshots.nix index cf406355..5dcc321c 100644 --- a/hydenix/modules/hm/screenshots.nix +++ b/hydenix/modules/hm/screenshots.nix @@ -59,7 +59,7 @@ in home.file = lib.mkIf cfg.satty.enable { ".config/satty/config.toml" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/satty/config.toml"; + source = "${pkgs.hyde}/Configs/.config/satty/config.toml"; force = true; }; }; diff --git a/hydenix/modules/hm/shell.nix b/hydenix/modules/hm/shell.nix index 1bca1e65..4f166cf5 100644 --- a/hydenix/modules/hm/shell.nix +++ b/hydenix/modules/hm/shell.nix @@ -261,8 +261,8 @@ in set -g fish_greeting # Source Hyde configuration - source ${pkgs.hydenix.hyde}/Configs/.config/fish/conf.d/hyde.fish - source ${pkgs.hydenix.hyde}/Configs/.config/fish/user.fish + source ${pkgs.hyde}/Configs/.config/fish/conf.d/hyde.fish + source ${pkgs.hyde}/Configs/.config/fish/user.fish ${lib.optionalString cfg.starship.enable '' if type -q starship @@ -349,62 +349,64 @@ in home.file = lib.mkMerge [ (lib.mkIf cfg.zsh.enable { # Zsh configs - ".zshenv".source = "${pkgs.hydenix.hyde}/Configs/.zshenv"; - ".config/zsh/completions/hyde-shell.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/completions/hyde-shell.zsh"; + ".zshenv".source = "${pkgs.hyde}/Configs/.zshenv"; + ".config/zsh/completions/hyde-shell.zsh".source = + "${pkgs.hyde}/Configs/.config/zsh/completions/hyde-shell.zsh"; ".config/zsh/.p10k.zsh" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/.p10k.zsh"; + source = "${pkgs.hyde}/Configs/.config/zsh/.p10k.zsh"; enable = cfg.p10k.enable; }; - ".config/zsh/completions/fzf.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/completions/fzf.zsh"; - ".config/zsh/completions/hydectl.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/completions/hydectl.zsh"; - ".config/zsh/functions/bat.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/bat.zsh"; - ".config/zsh/functions/bind_M_n_history.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/bind_M_n_history.zsh"; - ".config/zsh/functions/duf.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/duf.zsh"; - ".config/zsh/functions/error-handlers.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/error-handlers.zsh"; - ".config/zsh/functions/eza.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/eza.zsh"; - ".config/zsh/functions/fzf.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/fzf.zsh"; - ".config/zsh/functions/kb_help.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/functions/kb_help.zsh"; + ".config/zsh/completions/fzf.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/completions/fzf.zsh"; + ".config/zsh/completions/hydectl.zsh".source = + "${pkgs.hyde}/Configs/.config/zsh/completions/hydectl.zsh"; + ".config/zsh/functions/bat.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/functions/bat.zsh"; + ".config/zsh/functions/bind_M_n_history.zsh".source = + "${pkgs.hyde}/Configs/.config/zsh/functions/bind_M_n_history.zsh"; + ".config/zsh/functions/duf.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/functions/duf.zsh"; + ".config/zsh/functions/error-handlers.zsh".source = + "${pkgs.hyde}/Configs/.config/zsh/functions/error-handlers.zsh"; + ".config/zsh/functions/eza.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/functions/eza.zsh"; + ".config/zsh/functions/fzf.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/functions/fzf.zsh"; + ".config/zsh/functions/kb_help.zsh".source = + "${pkgs.hyde}/Configs/.config/zsh/functions/kb_help.zsh"; # We are not including any of these configurations as they are part of the existing zsh options - # ".config/zsh/.zshenv".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/.zshenv"; - # ".config/zsh/user.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/user.zsh"; - # ".config/zsh/prompt.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/prompt.zsh"; - # ".config/zsh/conf.d/hyde/terminal.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/conf.d/hyde/terminal.zsh"; - # ".config/zsh/conf.d/00-hyde.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/conf.d/00-hyde.zsh"; - # ".config/zsh/conf.d/hyde/env.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/conf.d/hyde/env.zsh"; - # ".config/zsh/conf.d/hyde/prompt.zsh".source = "${pkgs.hydenix.hyde}/Configs/.config/zsh/conf.d/hyde/prompt.zsh"; + # ".config/zsh/.zshenv".source = "${pkgs.hyde}/Configs/.config/zsh/.zshenv"; + # ".config/zsh/user.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/user.zsh"; + # ".config/zsh/prompt.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/prompt.zsh"; + # ".config/zsh/conf.d/hyde/terminal.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/conf.d/hyde/terminal.zsh"; + # ".config/zsh/conf.d/00-hyde.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/conf.d/00-hyde.zsh"; + # ".config/zsh/conf.d/hyde/env.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/conf.d/hyde/env.zsh"; + # ".config/zsh/conf.d/hyde/prompt.zsh".source = "${pkgs.hyde}/Configs/.config/zsh/conf.d/hyde/prompt.zsh"; }) (lib.mkIf cfg.fish.enable { # Fish configs ".config/fish/completions/hyde-shell.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/completions/hyde-shell.fish"; - ".config/fish/conf.d/hyde.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/conf.d/hyde.fish"; + "${pkgs.hyde}/Configs/.config/fish/completions/hyde-shell.fish"; + ".config/fish/conf.d/hyde.fish".source = "${pkgs.hyde}/Configs/.config/fish/conf.d/hyde.fish"; ".config/fish/functions/bind_M_n_history.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/bind_M_n_history.fish"; + "${pkgs.hyde}/Configs/.config/fish/functions/bind_M_n_history.fish"; ".config/fish/functions/fzf/ffcd.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/fzf/ffcd.fish"; + "${pkgs.hyde}/Configs/.config/fish/functions/fzf/ffcd.fish"; ".config/fish/functions/fzf/ffch.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/fzf/ffch.fish"; + "${pkgs.hyde}/Configs/.config/fish/functions/fzf/ffch.fish"; ".config/fish/functions/fzf/ffec.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/fzf/ffec.fish"; + "${pkgs.hyde}/Configs/.config/fish/functions/fzf/ffec.fish"; ".config/fish/functions/fzf/ffe.fish".source = - "${pkgs.hydenix.hyde}/Configs/.config/fish/functions/fzf/ffe.fish"; - ".config/fish/user.fish".source = "${pkgs.hydenix.hyde}/Configs/.config/fish/user.fish"; + "${pkgs.hyde}/Configs/.config/fish/functions/fzf/ffe.fish"; + ".config/fish/user.fish".source = "${pkgs.hyde}/Configs/.config/fish/user.fish"; }) # LSD configs - these are always included { - ".config/lsd/config.yaml".source = "${pkgs.hydenix.hyde}/Configs/.config/lsd/config.yaml"; - ".config/lsd/icons.yaml".source = "${pkgs.hydenix.hyde}/Configs/.config/lsd/icons.yaml"; - ".config/lsd/colors.yaml".source = "${pkgs.hydenix.hyde}/Configs/.config/lsd/colors.yaml"; + ".config/lsd/config.yaml".source = "${pkgs.hyde}/Configs/.config/lsd/config.yaml"; + ".config/lsd/icons.yaml".source = "${pkgs.hyde}/Configs/.config/lsd/icons.yaml"; + ".config/lsd/colors.yaml".source = "${pkgs.hyde}/Configs/.config/lsd/colors.yaml"; } (lib.mkIf cfg.starship.enable { - ".config/starship/powerline.toml".source = - "${pkgs.hydenix.hyde}/Configs/.config/starship/powerline.toml"; - ".config/starship/starship.toml".source = - "${pkgs.hydenix.hyde}/Configs/.config/starship/starship.toml"; + ".config/starship/powerline.toml".source = "${pkgs.hyde}/Configs/.config/starship/powerline.toml"; + ".config/starship/starship.toml".source = "${pkgs.hyde}/Configs/.config/starship/starship.toml"; }) ]; }; diff --git a/hydenix/modules/hm/social.nix b/hydenix/modules/hm/social.nix index f5fd7415..7ca4f8e9 100644 --- a/hydenix/modules/hm/social.nix +++ b/hydenix/modules/hm/social.nix @@ -50,7 +50,7 @@ in home.file = { ".config/electron-flags.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/electron-flags.conf"; + source = "${pkgs.hyde}/Configs/.config/electron-flags.conf"; }; }; }; diff --git a/hydenix/modules/hm/spotify.nix b/hydenix/modules/hm/spotify.nix index 5d6ba9a2..0df8394e 100644 --- a/hydenix/modules/hm/spotify.nix +++ b/hydenix/modules/hm/spotify.nix @@ -24,10 +24,10 @@ in home.file = { ".config/spotify-flags.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/spotify-flags.conf"; + source = "${pkgs.hyde}/Configs/.config/spotify-flags.conf"; }; ".config/electron-flags.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/electron-flags.conf"; + source = "${pkgs.hyde}/Configs/.config/electron-flags.conf"; }; }; }; diff --git a/hydenix/modules/hm/terminals.nix b/hydenix/modules/hm/terminals.nix index afe544b9..eb9b502e 100644 --- a/hydenix/modules/hm/terminals.nix +++ b/hydenix/modules/hm/terminals.nix @@ -36,8 +36,11 @@ in ]; home.file = { + ".config/xdg-terminals.list" = { + source = "${pkgs.hyde}/Configs/.config/xdg-terminals.list"; + }; ".config/kitty/hyde.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/kitty/hyde.conf"; + source = "${pkgs.hyde}/Configs/.config/kitty/hyde.conf"; }; ".config/kitty/kitty.conf" = { text = '' @@ -54,7 +57,7 @@ in # stateful file for kitty wallbash ".config/kitty/theme.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/kitty/theme.conf"; + source = "${pkgs.hyde}/Configs/.config/kitty/theme.conf"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/theme.nix b/hydenix/modules/hm/theme.nix index dd9cb30e..d6895df4 100644 --- a/hydenix/modules/hm/theme.nix +++ b/hydenix/modules/hm/theme.nix @@ -9,7 +9,7 @@ let cfg = config.hydenix.hm.theme; # Helper function to find a theme package by name, returns null if not found - findThemeByName = themeName: pkgs.hydenix.themes.${themeName} or null; + findThemeByName = themeName: pkgs.hydenix-themes.${themeName} or null; # Filter out themes that don't have corresponding packages availableThemes = lib.filter (themeName: findThemeByName themeName != null) cfg.themes; @@ -39,8 +39,17 @@ in }; config = lib.mkIf cfg.enable { - # Convert theme names to their corresponding packages, filtering out missing ones - home.packages = lib.filter (p: p != null) (map findThemeByName availableThemes); + # Create a combined theme package using symlinkJoin with only selected themes + home.packages = [ + (pkgs.symlinkJoin { + name = "hydenix-themes"; + paths = lib.filter (p: p != null) (map findThemeByName availableThemes); + meta = { + description = "Combined HyDE themes package"; + platforms = pkgs.lib.platforms.all; + }; + }) + ]; # walks through the themes and creates symlinks in the hyde themes directory home.file = @@ -64,7 +73,15 @@ in }) themesList ); - # Add activation script to set the active theme + /* + We require both an activation script and a service to set the theme. + theme.set.sh uses dconf partially to set vars, which requires graphical targets to run + This is only an issue for the *first* rebuild, as dbus has never been started + + #TODO: this works but a more robust implementation is possible. just do what theme.set.sh/dconf.set.sh does and use home.file to set the correct gtk/qt/etc options + */ + + # applies what it can before graphical.target, think of this like a "first content paint" home.activation.setTheme = lib.hm.dag.entryAfter [ "mutableGeneration" ] '' # Define path with required tools export PATH="${ @@ -83,13 +100,12 @@ in coreutils parallel imagemagick - hydenix.hyde which util-linux dconf ] ) - }:$PATH" + }:$HOME/.local/bin:$PATH" # Set up logging LOG_FILE="$HOME/.local/state/hyde/theme-switch.log" @@ -107,5 +123,82 @@ in echo "Theme switch completed. Log saved to $LOG_FILE" | tee -a "$LOG_FILE" ''; + + # sets dconf settings correctly + systemd.user.services.setThemeDconf = { + Unit = { + Description = "Apply Hyde theme dconf settings"; + After = [ + "graphical-session.target" + "dbus.service" + ]; + Wants = [ "dbus.service" ]; + PartOf = [ "graphical-session.target" ]; + }; + Service = { + Type = "oneshot"; + ExecStart = '' + ${config.home.homeDirectory}/.local/lib/hyde/dconf.set.sh + ''; + Path = with pkgs; [ + dconf + glib + hyprland + util-linux + which + coreutils + imagemagick + gawk + parallel + swww + waybar + kitty + dunst + libnotify + "${config.home.homeDirectory}/.local/bin" + ]; + }; + Install.WantedBy = [ "graphical-session.target" ]; + }; + + # reapplies the theme to fix dconf + systemd.user.services.setTheme = { + Unit = { + Description = "Apply Hyde theme settings (full theme switch)"; + After = [ + "graphical-session.target" + "dbus.service" + "setThemeDconf.service" + ]; + Wants = [ "dbus.service" ]; + PartOf = [ "graphical-session.target" ]; + }; + Service = { + Type = "oneshot"; + ExecStart = '' + ${config.home.homeDirectory}/.local/lib/hyde/theme.switch.sh -s "${cfg.active}" || true + ''; + Path = with pkgs; [ + swww + killall + hyprland + dunst + libnotify + systemd + waybar + kitty + gawk + coreutils + parallel + imagemagick + which + util-linux + dconf + "${config.home.homeDirectory}/.local/bin" + ]; + }; + Install.WantedBy = [ "graphical-session.target" ]; + }; + }; } diff --git a/hydenix/modules/hm/uwsm.nix b/hydenix/modules/hm/uwsm.nix new file mode 100644 index 00000000..65d24112 --- /dev/null +++ b/hydenix/modules/hm/uwsm.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.hydenix.hm.uwsm; +in +{ + options.hydenix.hm.uwsm = { + enable = lib.mkOption { + type = lib.types.bool; + default = config.hydenix.hm.enable; + description = "Enable uwsm module"; + }; + }; + + config = lib.mkIf cfg.enable { + home.file = { + ".config/uwsm/env" = { + source = "${pkgs.hyde}/Configs/.config/uwsm/env"; + }; + ".config/uwsm/env.d/00-hyde.sh" = { + source = "${pkgs.hyde}/Configs/.config/uwsm/env.d/00-hyde.sh"; + }; + ".config/uwsm/env.d/01-gpu.sh" = { + source = "${pkgs.hyde}/Configs/.config/uwsm/env.d/01-gpu.sh"; + }; + ".config/uwsm/env-hyprland" = { + source = "${pkgs.hyde}/Configs/.config/uwsm/env-hyprland"; + }; + ".config/uwsm/env-hyprland.d/00-hyde.sh" = { + source = "${pkgs.hyde}/Configs/.config/uwsm/env-hyprland.d/00-hyde.sh"; + }; + }; + }; +} diff --git a/hydenix/modules/hm/waybar.nix b/hydenix/modules/hm/waybar.nix index 62fb2fe4..d785b88b 100644 --- a/hydenix/modules/hm/waybar.nix +++ b/hydenix/modules/hm/waybar.nix @@ -56,28 +56,28 @@ in # Note: some of these may not work for NixOS # TODO: review waybar modules for nix compatibility ".config/waybar/modules" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/modules"; + source = "${pkgs.hyde}/Configs/.config/waybar/modules"; recursive = true; }; ".config/waybar/layouts" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/layouts"; + source = "${pkgs.hyde}/Configs/.config/waybar/layouts"; recursive = true; }; ".config/waybar/menus" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/menus"; + source = "${pkgs.hyde}/Configs/.config/waybar/menus"; recursive = true; }; ".config/waybar/styles" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/styles"; + source = "${pkgs.hyde}/Configs/.config/waybar/styles"; recursive = true; }; ".config/waybar/includes/border-radius.css" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/includes/border-radius.css"; + source = "${pkgs.hyde}/Configs/.config/waybar/includes/border-radius.css"; force = true; mutable = true; }; ".config/waybar/includes/global.css" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/includes/global.css"; + source = "${pkgs.hyde}/Configs/.config/waybar/includes/global.css"; force = true; mutable = true; }; @@ -173,7 +173,15 @@ in "${config.xdg.dataHome}/waybar/modules/power-profiles-daemon.jsonc", "${config.xdg.dataHome}/waybar/modules/image#hyde-menu.jsonc", "${config.xdg.dataHome}/waybar/modules/custom-hyde-menu.jsonc", - "${config.xdg.dataHome}/waybar/modules/network#bandwidth.jsonc" + "${config.xdg.dataHome}/waybar/modules/network#bandwidth.jsonc", + "${config.xdg.configHome}/waybar/modules/custom-mediaplayer.jsonc", + "${config.xdg.configHome}/waybar/modules/gamemode.jsonc", + "${config.xdg.configHome}/waybar/modules/group-eyecare.jsonc", + "${config.xdg.configHome}/waybar/modules/group-hide-tray.jsonc", + "${config.xdg.configHome}/waybar/modules/group-mediaplayer.jsonc", + "${config.xdg.configHome}/waybar/modules/group-volumecontrol.jsonc", + "${config.xdg.configHome}/waybar/modules/mpd.jsonc", + "${config.xdg.configHome}/waybar/modules/temperature.jsonc" ], "wlr/taskbar#windows": { "icon-size": 16.0, @@ -231,7 +239,7 @@ in mutable = true; }; ".config/waybar/config.jsonc" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/waybar/config.jsonc"; + source = "${pkgs.hyde}/Configs/.config/waybar/config.jsonc"; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/wlogout.nix b/hydenix/modules/hm/wlogout.nix index 01161318..5a9bbb17 100644 --- a/hydenix/modules/hm/wlogout.nix +++ b/hydenix/modules/hm/wlogout.nix @@ -36,28 +36,28 @@ in # icons ".config/wlogout/icons/" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/wlogout/icons/"; + source = "${pkgs.hyde}/Configs/.config/wlogout/icons/"; recursive = true; }; # Stateful files with themes ".config/wlogout/layout_1" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/wlogout/layout_1"; + source = "${pkgs.hyde}/Configs/.config/wlogout/layout_1"; force = true; mutable = true; }; ".config/wlogout/style_1.css" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/wlogout/style_1.css"; + source = "${pkgs.hyde}/Configs/.config/wlogout/style_1.css"; force = true; mutable = true; }; ".config/wlogout/layout_2" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/wlogout/layout_2"; + source = "${pkgs.hyde}/Configs/.config/wlogout/layout_2"; force = true; mutable = true; }; ".config/wlogout/style_2.css" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/wlogout/style_2.css"; + source = "${pkgs.hyde}/Configs/.config/wlogout/style_2.css"; force = true; mutable = true; }; diff --git a/hydenix/modules/system/boot.nix b/hydenix/modules/system/boot.nix index 10d5653c..6eb7b2db 100644 --- a/hydenix/modules/system/boot.nix +++ b/hydenix/modules/system/boot.nix @@ -67,9 +67,7 @@ in device = "nodev"; useOSProber = true; theme = - pkgs.hydenix.hyde - + "/share/grub/themes/" - + (if cfg.grubTheme == "Pochita" then "Pochita" else "Retroboot"); + pkgs.hyde + "/share/grub/themes/" + (if cfg.grubTheme == "Pochita" then "Pochita" else "Retroboot"); extraConfig = cfg.grubExtraConfig; }; efi.canTouchEfiVariables = true; diff --git a/hydenix/modules/system/sddm.nix b/hydenix/modules/system/sddm.nix index b9c7982e..2cbd163e 100644 --- a/hydenix/modules/system/sddm.nix +++ b/hydenix/modules/system/sddm.nix @@ -15,21 +15,13 @@ in default = true; description = "Enable sddm module"; }; - - theme = lib.mkOption { - type = lib.types.enum [ - "Candy" - "Corners" - ]; - default = "Candy"; - description = "SDDM theme package to use"; - }; }; config = lib.mkIf cfg.enable { environment.systemPackages = [ - pkgs.hydenix.hyde + pkgs.hyde pkgs.Bibata-Modern-Ice + pkgs.sddm-astronaut ]; # Add this section to ensure cursor theme is properly loaded @@ -40,25 +32,17 @@ in services.displayManager.sddm = { enable = true; - package = pkgs.libsForQt5.sddm; - theme = pkgs.hydenix.hyde + "/share/sddm/themes/" + cfg.theme; + theme = "sddm-astronaut-theme"; wayland = { enable = true; }; - extraPackages = with pkgs; [ - libsForQt5.sddm - libsForQt5.qtsvg - libsForQt5.qtmultimedia - libsForQt5.qtvirtualkeyboard - libsForQt5.qtquickcontrols2 - libsForQt5.qtgraphicaleffects - libsForQt5.qt5.qtwayland - hydenix.hyde - Bibata-Modern-Ice + extraPackages = with pkgs.kdePackages; [ + qtsvg + qtmultimedia + qtvirtualkeyboard ]; settings = { Theme = { - ThemeDir = "/run/current-system/sw/share/sddm/themes"; CursorTheme = "Bibata-Modern-Ice"; CursorSize = "24"; }; diff --git a/hydenix/modules/system/system.nix b/hydenix/modules/system/system.nix index 14e69bca..40614328 100644 --- a/hydenix/modules/system/system.nix +++ b/hydenix/modules/system/system.nix @@ -66,24 +66,11 @@ in package = pkgs.hyprland; portalPackage = pkgs.xdg-desktop-portal-hyprland; enable = true; - withUWSM = false; + withUWSM = true; }; programs.nix-ld.enable = true; - environment.pathsToLink = [ - "/share/icons" - "/share/themes" - "/share/fonts" - "/share/xdg-desktop-portal" - "/share/applications" - "/share/mime" - "/share/wayland-sessions" - "/share/zsh" - "/share/bash-completion" - "/share/fish" - ]; - hardware.bluetooth = { enable = true; powerOnBoot = true; @@ -97,13 +84,10 @@ in services = { dbus.enable = true; + upower.enable = true; openssh.enable = true; libinput.enable = true; - udisks2 = { - enable = true; - mountOnMedia = true; - }; }; programs.dconf.enable = true; diff --git a/hydenix/sources/hyde-gallery.nix b/hydenix/sources/hyde-gallery.nix index 41e09b91..65d3158b 100644 --- a/hydenix/sources/hyde-gallery.nix +++ b/hydenix/sources/hyde-gallery.nix @@ -6,9 +6,9 @@ pkgs.stdenv.mkDerivation { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "9d819748ed54e6b04e25a7909d774d48db8edd58"; + rev = "8067df5d450294d3c477f5f40a804e1cafc5336f"; name = "hyde-gallery"; - sha256 = "sha256-tEsTnNgsNBwjHWTTPhyUXqdxcoVmxtwYkmMslc/eMWY="; + sha256 = ""; }; installPhase = '' diff --git a/hydenix/sources/hyde.nix b/hydenix/sources/hyde.nix index 4d8a3b14..4b6d2651 100644 --- a/hydenix/sources/hyde.nix +++ b/hydenix/sources/hyde.nix @@ -12,6 +12,13 @@ pkgs.stdenv.mkDerivation { # remove assets folder rm -rf Source/assets + rm -rf Configs/.local/lib/hyde/resetxdgportal.sh + rm -rf Configs/.local/bin/hydectl + rm -rf Configs/.local/bin/hyde-ipc + rm -rf Configs/.local/lib/hyde/hyde-config + rm -rf Configs/.local/lib/hyde/hyq + rm -rf Configs/.local/bin/hyq + # Update waybar killall command in all HyDE files find . -type f -print0 | xargs -0 sed -i 's/killall waybar/killall .waybar-wrapped/g' @@ -26,6 +33,13 @@ pkgs.stdenv.mkDerivation { find . -type f -executable -print0 | xargs -0 sed -i 's/find "/find -L "/g' find . -type f -name "*.sh" -print0 | xargs -0 sed -i 's/find "/find -L "/g' + # remove lines 187-190 from Configs/.local/lib/hyde/theme.switch.sh + # fixes gtk4 themes + sed -i '187,190d' Configs/.local/lib/hyde/theme.switch.sh + + # remove pkill command from rofilaunch.sh + sed -i '5d' Configs/.local/lib/hyde/rofilaunch.sh + # BUILD FONTS mkdir -p $out/share/fonts/truetype for fontarchive in ./Source/arcs/Font_*.tar.gz; do @@ -52,11 +66,6 @@ pkgs.stdenv.mkDerivation { # BUILD GTK THEME mkdir -p $out/share/themes tar xzf ./Source/arcs/Gtk_Wallbash.tar.gz -C $out/share/themes - - # BUILD SDDM THEME - mkdir -p $out/share/sddm/themes - tar xzf ./Source/arcs/Sddm_Candy.tar.gz -C $out/share/sddm/themes - tar xzf ./Source/arcs/Sddm_Corners.tar.gz -C $out/share/sddm/themes ''; installPhase = '' diff --git a/hydenix/sources/overlay.nix b/hydenix/sources/overlay.nix index bcf0dfc8..3ea4e7ef 100644 --- a/hydenix/sources/overlay.nix +++ b/hydenix/sources/overlay.nix @@ -1,4 +1,6 @@ -inputs: final: prev: +{ inputs }: + +final: prev: let # Helper function to import a package callPackage = prev.lib.callPackageWith (prev // packages // inputs); @@ -12,15 +14,12 @@ let python-pyamdgpuinfo = callPackage ./python-pyamdgpuinfo.nix { }; Tela-circle-dracula = callPackage ./Tela-circle-dracula.nix { }; Bibata-Modern-Ice = callPackage ./Bibata-Modern-Ice.nix { }; - hydenix = { - hyde = callPackage ./hyde.nix { inherit inputs; }; - # Theme packages from the themes directory - themes = callPackage ./themes/default.nix { }; - hyq = inputs.hyq.packages.${prev.system}.default; - hydectl = inputs.hydectl.packages.${prev.system}.default; - hyde-ipc = inputs.hyde-ipc.packages.${prev.system}.default; - hyde-config = inputs.hyde-config.packages.${prev.system}.default; - }; + hyde = callPackage ./hyde.nix { inherit inputs; }; + hydenix-themes = callPackage ./themes/default.nix { }; + hyq = inputs.hyq.packages.${prev.system}.default; + hydectl = inputs.hydectl.packages.${prev.system}.default; + hyde-ipc = inputs.hyde-ipc.packages.${prev.system}.default; + hyde-config = inputs.hyde-config.packages.${prev.system}.default; }; in packages diff --git a/hydenix/sources/themes/1-Bit.nix b/hydenix/sources/themes/1-Bit.nix new file mode 100644 index 00000000..ab9af152 --- /dev/null +++ b/hydenix/sources/themes/1-Bit.nix @@ -0,0 +1,17 @@ +{ pkgs, mkTheme }: +mkTheme rec { + name = "1-Bit"; + src = pkgs.fetchFromGitHub { + owner = "amit-0i"; + repo = "1-Bit"; + # locking commit + rev = "ee6a133693e676802976fb870567829b941a8624"; + name = name; + sha256 = "sha256-dYRZKGHO0Q8x4h80Q+PrajaPaY/ZJHZgnp3QVI5d0Lc="; + }; + meta = { + name = name; + description = "HyDE Theme: 1-Bit"; + homepage = "https://github.com/amit-0i/1-Bit"; + }; +} diff --git a/hydenix/sources/themes/AbyssGreen.nix b/hydenix/sources/themes/AbyssGreen.nix index dc3545c0..cee1bae6 100644 --- a/hydenix/sources/themes/AbyssGreen.nix +++ b/hydenix/sources/themes/AbyssGreen.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "Itz-Abhishek-Tiwari"; repo = "AbyssGreen"; name = name; - rev = "main"; + rev = "f7e4655f4923a3a4e556b3dab688a5fabadf7675"; sha256 = "sha256-cosU+0wJSaQspcjYEZA5dMoZARz+8vQM+49Vyf2JvA8="; }; meta = { description = "HyDE Theme: AbyssGreen"; homepage = "https://github.com/Itz-Abhishek-Tiwari/AbyssGreen"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Abyssal-Wave.nix b/hydenix/sources/themes/Abyssal-Wave.nix index 351545a1..a1cf1b01 100644 --- a/hydenix/sources/themes/Abyssal-Wave.nix +++ b/hydenix/sources/themes/Abyssal-Wave.nix @@ -5,7 +5,7 @@ mkTheme rec { owner = "Itz-Abhishek-Tiwari"; repo = "Abyssal-Wave"; # locking commit - rev = "main"; + rev = "3094b030739c7673255a2a8fad1707717d725d73"; name = name; sha256 = "sha256-JMYjNV2r6/lRwKNQFdz2HmZH7ZxLO0MdiO2iUi5R7As="; }; @@ -13,6 +13,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Abyssal-Wave"; homepage = "https://github.com/Itz-Abhishek-Tiwari/Abyssal-Wave"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Amethyst-Aura.nix b/hydenix/sources/themes/Amethyst-Aura.nix index 35f095f2..8fe16e05 100644 --- a/hydenix/sources/themes/Amethyst-Aura.nix +++ b/hydenix/sources/themes/Amethyst-Aura.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "jackpawlik1"; repo = "Amethyst-Aura"; - rev = "main"; + rev = "821eb5523afb5920b9305dd2dc9206958cedd6a0"; name = name; sha256 = "sha256-NjF0QQxqdYIxqv63Hgo9Waxa1arPfFXK65mRo0N9gvk="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Amethyst-Aura"; homepage = "https://github.com/jackpawlik1/Amethyst-Aura"; - priority = 90; }; } diff --git a/hydenix/sources/themes/AncientAliens.nix b/hydenix/sources/themes/AncientAliens.nix index 7fab6b6d..33474c8c 100644 --- a/hydenix/sources/themes/AncientAliens.nix +++ b/hydenix/sources/themes/AncientAliens.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "dim-ghub"; repo = "AncientAliens"; name = name; - rev = "main"; + rev = "822c5126ef727e75570e174e9f54894f203587ee"; sha256 = "sha256-lcrl87sYXNg17oxL1hnGvrcZPpPkCRFllIGWf9/1bZU="; }; meta = { description = "HyDE Theme: AncientAliens"; homepage = "https://github.com/dim-ghub/AncientAliens"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Another-World.nix b/hydenix/sources/themes/Another-World.nix index f670232a..c54f8b9d 100644 --- a/hydenix/sources/themes/Another-World.nix +++ b/hydenix/sources/themes/Another-World.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "cyb3rgh0u1"; repo = "Another-World"; - rev = "main"; + rev = "82d80baed02216017d5800666cb266ded8dffca3"; name = name; sha256 = "sha256-DLx+8kuW2DrTWFFrbB670iHKYqUfzNUvfQobKjUlVsY="; }; meta = { description = "HyDE Theme: Another World"; homepage = "https://github.com/cyb3rgh0u1/Another-World"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Bad-Blood.nix b/hydenix/sources/themes/Bad-Blood.nix index 846bf4ff..f5430328 100644 --- a/hydenix/sources/themes/Bad-Blood.nix +++ b/hydenix/sources/themes/Bad-Blood.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "HyDE-Project"; repo = "hyde-gallery"; name = name; - rev = "Bad-Blood"; + rev = "1a9e8bbcf9b74ff077823304ce6b02a9a79bb06e"; sha256 = "sha256-MbHgUbKNN1o72QLPehdcyI22lwBDoWy2G58lgHBFeZ4="; }; meta = { description = "HyDE Theme: Bad Blood"; homepage = "https://github.com/HyDE-Project/hyde-gallery/tree/Bad-Blood"; - priority = 10; }; } diff --git a/hydenix/sources/themes/BlueSky.nix b/hydenix/sources/themes/BlueSky.nix index 998fa3e7..517327d4 100644 --- a/hydenix/sources/themes/BlueSky.nix +++ b/hydenix/sources/themes/BlueSky.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "richen604"; repo = "BlueSky"; - rev = "main"; + rev = "89bc1e372eb53ece7e785f2fd75341e6d25dd1c9"; name = name; sha256 = "sha256-MiSgGgbJE3kmFd2FtE88fqrrxB1RWZJYPDfn97BoDpw="; }; meta = { description = "HyDE Theme: BlueSky"; homepage = "https://github.com/richen604/BlueSky"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Breezy-Autumn.nix b/hydenix/sources/themes/Breezy-Autumn.nix new file mode 100644 index 00000000..c0af74ab --- /dev/null +++ b/hydenix/sources/themes/Breezy-Autumn.nix @@ -0,0 +1,17 @@ +{ pkgs, mkTheme }: +mkTheme rec { + name = "Breezy Autumn"; + src = pkgs.fetchFromGitHub { + owner = "Maroc02"; + repo = "Breezy-Autumn"; + # locking commit + rev = "db980839c1f3daae629a11def5fb479ae3eebf5e"; + name = name; + sha256 = "sha256-ffEKwNoJDk31JMOC0bYevyW9iJMHv4Xg1e9l5sWnpnE="; + }; + meta = { + name = name; + description = "HyDE Theme: Breezy Autumn"; + homepage = "https://github.com/Maroc02/Breezy-Autumn"; + }; +} diff --git a/hydenix/sources/themes/Cat-Latte.nix b/hydenix/sources/themes/Cat-Latte.nix index 4af39b81..47159a54 100644 --- a/hydenix/sources/themes/Cat-Latte.nix +++ b/hydenix/sources/themes/Cat-Latte.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "rishav12s"; repo = "Cat-Latte"; name = name; - rev = "Cat-Latte"; + rev = "132ffcc1fa97ec1d1743741b37abf1de2c8e9aa6"; sha256 = "sha256-giarUq0eQS8qLfnpGIKQ6pw6sqAcaYohnxC305OkPLc="; }; meta = { description = "Better Catppuccin-Latte that fixes the inconsistencies of the official theme"; homepage = "https://github.com/rishav12s/Cat-Latte"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Catppuccin-Latte.nix b/hydenix/sources/themes/Catppuccin-Latte.nix index 4c2f52aa..34fccb00 100644 --- a/hydenix/sources/themes/Catppuccin-Latte.nix +++ b/hydenix/sources/themes/Catppuccin-Latte.nix @@ -4,12 +4,11 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Catppuccin-Latte"; + rev = "9a9332bb660ecb2e05671b7dcd7dd058b0803e48"; name = name; sha256 = "sha256-dW5DgXFxFNjt54Styzk+Ew3pv4rO1FX/qtfDGIClLuY="; }; meta = { - priority = 100; description = "HyDE Theme: Catppuccin Latte"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Catppuccin-Latte"; }; diff --git a/hydenix/sources/themes/Catppuccin-Macchiato.nix b/hydenix/sources/themes/Catppuccin-Macchiato.nix new file mode 100644 index 00000000..b8142f6f --- /dev/null +++ b/hydenix/sources/themes/Catppuccin-Macchiato.nix @@ -0,0 +1,17 @@ +{ pkgs, mkTheme }: +mkTheme rec { + name = "Catppuccin-Macchiato"; + src = pkgs.fetchFromGitHub { + owner = "deepu105"; + repo = "hyde-theme-catppuccin-macchiato"; + # locking commit + rev = "7f1f33e554a342afcc9723d9b87123aa964cf994"; + name = name; + sha256 = "sha256-W5xjs+E//G2uhwzjq2tiWUMNdff6xmWUvH59tUoKjA0="; + }; + meta = { + name = name; + description = "HyDE Theme: Catppuccin-Macchiato"; + homepage = "https://github.com/deepu105/hyde-theme-catppuccin-macchiato"; + }; +} diff --git a/hydenix/sources/themes/Catppuccin-Mocha.nix b/hydenix/sources/themes/Catppuccin-Mocha.nix index a1f1efa1..c95e20ef 100644 --- a/hydenix/sources/themes/Catppuccin-Mocha.nix +++ b/hydenix/sources/themes/Catppuccin-Mocha.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Catppuccin-Mocha"; + rev = "415d22a6bb6348a6d09c11307be54c592fb15138"; name = name; sha256 = "sha256-GoXRPYUFdrw6P8OeOsSiFDC9FhaEyo1+lvta0FCJoPY="; }; meta = { description = "HyDE Theme: Catppuccin Mocha"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Catppuccin-Mocha"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Code-Garden.nix b/hydenix/sources/themes/Code-Garden.nix index e9f5bbcc..50a66e4c 100644 --- a/hydenix/sources/themes/Code-Garden.nix +++ b/hydenix/sources/themes/Code-Garden.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "jacobfranco"; repo = "Code-Garden"; - rev = "main"; + rev = "4d3ce14a1a17029a7cfe4b1b44c24575b596af8d"; name = name; sha256 = "sha256-WvuVrgllMhste24dWGKw3I0eBBJMHoOYQCheLofenUE="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Code Garden"; homepage = "https://github.com/jacobfranco/Code-Garden"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Cosmic-Blue.nix b/hydenix/sources/themes/Cosmic-Blue.nix index cd5f732a..20f748cf 100644 --- a/hydenix/sources/themes/Cosmic-Blue.nix +++ b/hydenix/sources/themes/Cosmic-Blue.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "Maroc02"; repo = "Cosmic-Blue"; - rev = "main"; + rev = "f5e0e85d333f8ae93caa262f46303efe4c35c5a8"; name = name; sha256 = "sha256-ed9QxS4onniN+kABewK9kBRu9xFMvHU6em+QcP2GrFM="; }; meta = { description = "HyDE Theme: Cosmic Blue"; homepage = "https://github.com/Maroc02/Cosmic-Blue"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Crimson-Blade.nix b/hydenix/sources/themes/Crimson-Blade.nix index f4cd3cd2..2062c81c 100644 --- a/hydenix/sources/themes/Crimson-Blade.nix +++ b/hydenix/sources/themes/Crimson-Blade.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "cyb3rgh0u1"; repo = "Crimson-Blade"; - rev = "main"; + rev = "9603993976e4159e7f858abcf618835d39a1e757"; name = name; sha256 = "sha256-ooQJN3XcE7ZyC2JIlLCC6jraQC9pnwjRSila0Z19G3I="; }; meta = { description = "HyDE Theme: A striking fusion of sharp elegance, cutting through the darkness with bold hues."; homepage = "https://github.com/cyb3rgh0u1/Crimson-Blade"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Crimson-Blue.nix b/hydenix/sources/themes/Crimson-Blue.nix index e4b638d5..4437e96a 100644 --- a/hydenix/sources/themes/Crimson-Blue.nix +++ b/hydenix/sources/themes/Crimson-Blue.nix @@ -4,14 +4,13 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "amit-0i"; repo = "Crimson-Blue"; - rev = "main"; + rev = "5bc78a51f22b0cf4895bb3eda5bab8db412740fb"; name = name; - sha256 = "sha256-5fxX6qxG9JHg+cJarybgc0SRrk1AkDTqMXnt+5P3Xpk="; + sha256 = "sha256-MP2uTpH0rayCwHM2gWIaCbB0tARbMKLY9CUAZXPkM4U="; }; meta = { name = name; description = "HyDE Theme: Crimson-Blue"; homepage = "https://github.com/amit-0i/Crimson-Blue"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Decay-Green.nix b/hydenix/sources/themes/Decay-Green.nix index 2c41d094..61825c10 100644 --- a/hydenix/sources/themes/Decay-Green.nix +++ b/hydenix/sources/themes/Decay-Green.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Decay-Green"; + rev = "b5daf8e2717cdac23fcd3a7909869130b2877049"; name = name; sha256 = "sha256-Vg9WsRPrkpkQMtOT+8rjf7CKiCvTQ12XZYX6hfUU0h0="; }; meta = { description = "HyDE Theme: Decay Green"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Decay-Green"; - priority = 100; }; } diff --git a/hydenix/sources/themes/DoomBringers.nix b/hydenix/sources/themes/DoomBringers.nix index 39d30f89..2e6aeab7 100644 --- a/hydenix/sources/themes/DoomBringers.nix +++ b/hydenix/sources/themes/DoomBringers.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "xaicat"; repo = "DoomBringers"; - rev = "main"; + rev = "f42efdab861c7750fd31ff7e54b0378d363029e7"; name = name; sha256 = "sha256-bxV7YSdI1BM63eSV5nkkfvMmqgtWaKo9Xp2JKCpukvM="; }; meta = { description = "HyDE Theme: DoomBringers"; homepage = "https://github.com/xaicat/DoomBringers"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Dracula.nix b/hydenix/sources/themes/Dracula.nix index 7aa8cb91..a9e4ca49 100644 --- a/hydenix/sources/themes/Dracula.nix +++ b/hydenix/sources/themes/Dracula.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "RAprogramm"; repo = "HyDe-Themes"; - rev = "Dracula"; + rev = "97209d2e3ad2e0c162ccb585f8cefa8c83899515"; name = name; sha256 = "sha256-0mfuP8jhPtQM4VCGXKhNStse0HePvT0eew4BNh7sOsE="; }; meta = { description = "HyDE Theme: Dracula"; homepage = "https://github.com/RAprogramm/HyDe-Themes/tree/Dracula"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Edge-Runner.nix b/hydenix/sources/themes/Edge-Runner.nix index e60af521..698eb3d4 100644 --- a/hydenix/sources/themes/Edge-Runner.nix +++ b/hydenix/sources/themes/Edge-Runner.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Edge-Runner"; + rev = "969a71e3c8de0d22dfba82b8b2fb8daa2dca50a7"; name = name; sha256 = "sha256-wbIIczb2/sVJe97oVFkLxmVf+BwYOlq4aQwDB3x7G2I="; }; meta = { description = "HyDE Theme: Edge Runner"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Edge-Runner"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Electra.nix b/hydenix/sources/themes/Electra.nix index 7ccf0df6..8492bb28 100644 --- a/hydenix/sources/themes/Electra.nix +++ b/hydenix/sources/themes/Electra.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "XBEAST1"; repo = "Electra"; - rev = "master"; + rev = "61cd9718d7c517c35db11b402e9f958537ae32da"; name = name; sha256 = "sha256-PG2Vud9BTMuOkT2dHYNl1sDdTFsMLugc5qfWWs/fYFE="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Electra"; homepage = "https://github.com/XBEAST1/Electra"; - priority = 80; }; } diff --git a/hydenix/sources/themes/Eternal-Arctic.nix b/hydenix/sources/themes/Eternal-Arctic.nix index 0fa11e69..5bf55065 100644 --- a/hydenix/sources/themes/Eternal-Arctic.nix +++ b/hydenix/sources/themes/Eternal-Arctic.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Eternal-Arctic"; - rev = "Eternal-Arctic"; + rev = "bc372b1dc266cca591971c9b4e27a4c4b9108635"; name = name; sha256 = "sha256-Mj/ABDd5o+LCfryNocGju5JUO/hB1v7yxkY2bHe1j3w="; }; meta = { description = "HyDE Theme: Eternal-Arctic"; homepage = "https://github.com/rishav12s/Eternal-Arctic"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Ever-Blushing.nix b/hydenix/sources/themes/Ever-Blushing.nix index ec724438..d1232815 100644 --- a/hydenix/sources/themes/Ever-Blushing.nix +++ b/hydenix/sources/themes/Ever-Blushing.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Ever-Blushing"; - rev = "Ever-Blushing"; + rev = "3b90aea08a37ea052296e918e24be0be3400d1be"; name = name; sha256 = "sha256-DCRdN9OeT1sEQEQFYN1F4OAEwcgFgPOTx2bJ8TO6Nj8="; }; meta = { description = "HyDE Theme: Ever-Blushing"; homepage = "https://github.com/rishav12s/Ever-Blushing"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Frosted-Glass.nix b/hydenix/sources/themes/Frosted-Glass.nix index 48857c1e..8ecfc307 100644 --- a/hydenix/sources/themes/Frosted-Glass.nix +++ b/hydenix/sources/themes/Frosted-Glass.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Frosted-Glass"; + rev = "224e1027e451481db526a095242d261d47a68775"; name = name; sha256 = "sha256-6/KxQNjcFkYPSouvaMDF1cRto9wQS1IhQqFRteGDQUA="; }; meta = { description = "HyDE Theme: Frosted Glass"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Frosted-Glass"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Graphite-Mono.nix b/hydenix/sources/themes/Graphite-Mono.nix index 0ce4afa6..13ab9a30 100644 --- a/hydenix/sources/themes/Graphite-Mono.nix +++ b/hydenix/sources/themes/Graphite-Mono.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Graphite-Mono"; + rev = "ab5030a3b808b0754e30a2867a2fa217956e66d2"; name = name; sha256 = "sha256-bA07uhuF67ZN6USBsF5fvSFvPe/tiHQzxvV1dFEoXYI="; }; meta = { description = "HyDE Theme: Graphite Mono"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Graphite-Mono"; - priority = 90; }; } diff --git a/hydenix/sources/themes/Green-Lush.nix b/hydenix/sources/themes/Green-Lush.nix index 2e7f3361..7dfd2b24 100644 --- a/hydenix/sources/themes/Green-Lush.nix +++ b/hydenix/sources/themes/Green-Lush.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "abenezerw"; repo = "Green-Lush"; - rev = "main"; + rev = "e3b8b6af05e1f8ec6f2a63c86cf2c7717fd1468d"; name = name; sha256 = "sha256-4k3EXKyHkVPrqnZuviHpmSc+kNIVysZTGu0hd/XT+UA="; }; meta = { description = "HyDE Theme: Green Lush"; homepage = "https://github.com/abenezerw/Green-Lush"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Greenify.nix b/hydenix/sources/themes/Greenify.nix index a1159286..e6c53e79 100644 --- a/hydenix/sources/themes/Greenify.nix +++ b/hydenix/sources/themes/Greenify.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "mahaveergurjar"; repo = "Theme-Gallery"; name = name; - rev = "Greenify"; + rev = "9fcc1105a8d05249f566fe3f6938cd69198b70bb"; sha256 = "sha256-jf8CilUopQBqAa3JBPl68S9P7Hg/87KpyEATbiOhg4A="; }; meta = { description = "HyDE Theme: Greenify"; homepage = "https://github.com/mahaveergurjar/Theme-Gallery/tree/Greenify"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Grukai.nix b/hydenix/sources/themes/Grukai.nix index f969cba6..1d1740dc 100644 --- a/hydenix/sources/themes/Grukai.nix +++ b/hydenix/sources/themes/Grukai.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "amit-0i"; repo = "Grukai"; - rev = "main"; + rev = "95e0b92633b3622685cb29662d5e320f21753001"; name = name; sha256 = "sha256-N8AErlZCypJSy+P1uO1iYYcdRmpGbiZ1TNhtJvo14Lg="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Grukai"; homepage = "https://github.com/amit-0i/Grukai"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Gruvbox-Retro.nix b/hydenix/sources/themes/Gruvbox-Retro.nix index c3184a1a..9d1ff21c 100644 --- a/hydenix/sources/themes/Gruvbox-Retro.nix +++ b/hydenix/sources/themes/Gruvbox-Retro.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Gruvbox-Retro"; + rev = "a00ab7d183c877152c997fdac5d877a38dea30f1"; name = name; sha256 = "sha256-GJ3Y9b36mPZMzzIlBx6S862KS3mOB9ItCKIZf5qKIeo="; }; meta = { description = "HyDE Theme: Gruvbox Retro"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Gruvbox-Retro"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Hack-the-Box.nix b/hydenix/sources/themes/Hack-the-Box.nix index efc08b84..30cbcbf7 100644 --- a/hydenix/sources/themes/Hack-the-Box.nix +++ b/hydenix/sources/themes/Hack-the-Box.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "Hack-the-Box"; + rev = "f8f6070ec27329c52f145a156dd61929781e2048"; name = name; sha256 = "sha256-VMDs9fnXX0v7iGSftA19UXxANY1sRjrK5ipMsfjU7Tg="; }; meta = { description = "HyDE Theme: Hack the Box"; homepage = "https://github.com/HyDE-Project/hyde-gallery/tree/Hack-the-Box"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Ice-Age.nix b/hydenix/sources/themes/Ice-Age.nix index 6cebeb00..532404d8 100644 --- a/hydenix/sources/themes/Ice-Age.nix +++ b/hydenix/sources/themes/Ice-Age.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "saber-88"; repo = "Ice-Age"; - rev = "main"; + rev = "2691711e8966ce032464be40d22bc1b2a053b9e7"; name = name; - sha256 = "sha256-hS3PwjzRe7JUaB5eQ6AAS0OUg6fajictQrNdXkpVynw="; + sha256 = "sha256-IWevprHXKgGh/h/zBUgDu+hSFkEp4VOwbt6qrWgpsuQ="; }; meta = { description = "HyDE Theme: Ice Age"; homepage = "https://github.com/saber-88/Ice-Age"; - priority = 15; }; } diff --git a/hydenix/sources/themes/Joker.nix b/hydenix/sources/themes/Joker.nix new file mode 100644 index 00000000..c46153c4 --- /dev/null +++ b/hydenix/sources/themes/Joker.nix @@ -0,0 +1,17 @@ +{ pkgs, mkTheme }: +mkTheme rec { + name = "Joker"; + src = pkgs.fetchFromGitHub { + owner = "saber-88"; + repo = "Joker"; + # locking commit + rev = "b7bae7bd943ca445e9ff53ba6450e63204d94228"; + name = name; + sha256 = "sha256-XtA1pw8019XX3BZ0+ddSkWEMPni63+5AwNxYpgr4do4="; + }; + meta = { + name = name; + description = "HyDE Theme: Joker"; + homepage = "https://github.com/saber-88/Joker"; + }; +} diff --git a/hydenix/sources/themes/LimeFrenzy.nix b/hydenix/sources/themes/LimeFrenzy.nix index 6fdbfb42..efc39631 100644 --- a/hydenix/sources/themes/LimeFrenzy.nix +++ b/hydenix/sources/themes/LimeFrenzy.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "xaicat"; repo = "LimeFrenzy"; name = name; - rev = "main"; + rev = "ce1d07c439fbe870a2c58c2c08288e203eb87468"; sha256 = "sha256-mQzSm7XtU1swm77uf0h0rOMqa1hc3uLmiLXdn15dz08="; }; meta = { description = "HyDE Theme: LimeFrenzy"; homepage = "https://github.com/xaicat/LimeFrenzy"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Mac-OS.nix b/hydenix/sources/themes/Mac-OS.nix index cdfcf705..6d4ed8d4 100644 --- a/hydenix/sources/themes/Mac-OS.nix +++ b/hydenix/sources/themes/Mac-OS.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "Mac-Os"; + rev = "2ce4d3eae646b96133df919c87dc052152033a1d"; name = name; sha256 = "sha256-QmM3JaSLCQn9eqKqSNL13b2DrsxIGiCztbxobsHbbq0="; }; meta = { description = "HyDE Theme: Mac OS"; homepage = "https://github.com/HyDE-Project/hyde-gallery/tree/Mac-Os"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Material-Sakura.nix b/hydenix/sources/themes/Material-Sakura.nix index 81790bae..04177027 100644 --- a/hydenix/sources/themes/Material-Sakura.nix +++ b/hydenix/sources/themes/Material-Sakura.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Material-Sakura"; + rev = "ada3702994ad480339935f3f14a08d21ad3d6ad9"; name = name; sha256 = "sha256-pxVWKIxjLKoTUbRBrAn9SludTLyS+yA5HlqyFRLHdiM="; }; meta = { description = "HyDE Theme: Material Sakura"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Material-Sakura"; - priority = 95; }; } diff --git a/hydenix/sources/themes/Monokai.nix b/hydenix/sources/themes/Monokai.nix index cd35dbb2..b4bcdcb2 100644 --- a/hydenix/sources/themes/Monokai.nix +++ b/hydenix/sources/themes/Monokai.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "mahaveergurjar"; repo = "Theme-Gallery"; - rev = "Monokai"; + rev = "da57d03eddf8a86efd9461fe82fbde290f81559d"; name = name; sha256 = "sha256-bwjFzGVemYCU9zOT7v5gVvnrzsxZ09YlYt87P73nA3I="; }; meta = { description = "HyDE Theme: Monokai"; homepage = "https://github.com/mahaveergurjar/Theme-Gallery/tree/Monokai"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Monterey-Frost.nix b/hydenix/sources/themes/Monterey-Frost.nix index 9b84f85a..74f55e1d 100644 --- a/hydenix/sources/themes/Monterey-Frost.nix +++ b/hydenix/sources/themes/Monterey-Frost.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Monterey-Frost"; - rev = "Monterey-Frost"; + rev = "4675ddd4abae2d86ce3d2c3940b29071ce1b4580"; name = name; sha256 = "sha256-ECG7wyIa0RdZteTEdQjpVjhbf62XXz0rW3Ea494461E="; }; meta = { description = "Mac-OS inspired dark theme"; homepage = "https://github.com/rishav12s/Monterey-Frost"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Moonlight.nix b/hydenix/sources/themes/Moonlight.nix index 43d177e9..63cb0658 100644 --- a/hydenix/sources/themes/Moonlight.nix +++ b/hydenix/sources/themes/Moonlight.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "Maroc02"; repo = "Moonlight"; - rev = "main"; + rev = "cc389fdcd8ac9903bbb33895717f710c1bf94f34"; name = name; sha256 = "sha256-MEjuTBNt/C6bKt5TR1yYPJ1fsDVvWO4hHTD49Dc9Phk="; }; meta = { description = "HyDE Theme: Moonlight"; homepage = "https://github.com/Maroc02/Moonlight"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Nightbrew.nix b/hydenix/sources/themes/Nightbrew.nix index 621960b5..51ae9f65 100644 --- a/hydenix/sources/themes/Nightbrew.nix +++ b/hydenix/sources/themes/Nightbrew.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "jackpawlik1"; repo = "Nightbrew"; - rev = "main"; + rev = "7cd0355316c1d302cda31076d0a713549007d1bd"; name = name; sha256 = "sha256-yoAU7x8blO2pTQCy64+c8Y4XKdlFF04Wx8aAkX2xMUc="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Nightbrew"; homepage = "https://github.com/jackpawlik1/Nightbrew"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Nordic-Blue.nix b/hydenix/sources/themes/Nordic-Blue.nix index f4555ad6..3941d1d8 100644 --- a/hydenix/sources/themes/Nordic-Blue.nix +++ b/hydenix/sources/themes/Nordic-Blue.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Nordic-Blue"; + rev = "7dd56df71c355ffdc847b43b6bea6c20e00f2726"; name = name; sha256 = "sha256-b1w1EpS0GlAXAEPNSEOYqVtZnoHamqSqlsGSucTzPVg="; }; meta = { description = "HyDE Theme: Nordic Blue"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Nordic-Blue"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Obsidian-Purple.nix b/hydenix/sources/themes/Obsidian-Purple.nix index 7cc15833..4fb5585c 100644 --- a/hydenix/sources/themes/Obsidian-Purple.nix +++ b/hydenix/sources/themes/Obsidian-Purple.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "amit-0i"; repo = "Obsidian-Purple"; - rev = "main"; + rev = "d1c90091117da83ad121027d2d32c6cd9b72b55f"; name = name; sha256 = "sha256-wmply5k/FP1QKobCp+ZeaCzdHIlURAxdur3xXAF7qD0="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Obsidian-Purple"; homepage = "https://github.com/amit-0i/Obsidian-Purple"; - priority = 90; }; } diff --git a/hydenix/sources/themes/One-Dark.nix b/hydenix/sources/themes/One-Dark.nix index 87e6e4f3..5739189e 100644 --- a/hydenix/sources/themes/One-Dark.nix +++ b/hydenix/sources/themes/One-Dark.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "RAprogramm"; repo = "HyDe-Themes"; - rev = "One-Dark"; + rev = "4109ebca756257b63f22b2b74a5597e1650f3434"; name = name; sha256 = "sha256-j4KXbLb7gvVNCrdqMscsIinhBZoBp4oIzEbwws4fstU="; }; meta = { description = "HyDE Theme: One Dark"; homepage = "https://github.com/RAprogramm/HyDe-Themes/tree/One-Dark"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Oxo-Carbon.nix b/hydenix/sources/themes/Oxo-Carbon.nix index d3ea2534..c08270e3 100644 --- a/hydenix/sources/themes/Oxo-Carbon.nix +++ b/hydenix/sources/themes/Oxo-Carbon.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Oxo-Carbon"; - rev = "Oxo-Carbon"; + rev = "815812951eba40f71f6f2871be4ff3bd5159cfc7"; name = name; sha256 = "sha256-w+7Gky7L2crF4F7myhA64fXgjoWulLb/hWBaI6OMwBo="; }; meta = { description = "HyDE Theme: Oxo Carbon"; homepage = "https://github.com/rishav12s/Oxo-Carbon"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Paranoid-Sweet.nix b/hydenix/sources/themes/Paranoid-Sweet.nix index 93be2960..47485798 100644 --- a/hydenix/sources/themes/Paranoid-Sweet.nix +++ b/hydenix/sources/themes/Paranoid-Sweet.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Paranoid-Sweet"; - rev = "Paranoid-Sweet"; + rev = "303ec22d4d1276a636466f61eb71be28a1ef2a85"; name = name; sha256 = "sha256-j4fjX2fWSBajNKFSovVsy+FydUcq5FEtk6B9iiDURAs="; }; meta = { description = "HyDE Theme: Paranoid Sweet"; homepage = "https://github.com/rishav12s/Paranoid-Sweet"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Peace-Of-Mind.nix b/hydenix/sources/themes/Peace-Of-Mind.nix index 94c66ec1..e4ae7ed3 100644 --- a/hydenix/sources/themes/Peace-Of-Mind.nix +++ b/hydenix/sources/themes/Peace-Of-Mind.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "Maroc02"; repo = "Peace-Of-Mind"; - rev = "main"; + rev = "45ee6f24bc7f4cabdc8478e00c44172e907ba9e4"; name = name; sha256 = "sha256-9FpH9PvykUHzJOp3NkWeExoM2taesHmVmruUge5xH3M="; }; @@ -12,6 +12,5 @@ mkTheme rec { name = name; description = "HyDE Theme: Peace Of Mind"; homepage = "https://github.com/Maroc02/Peace-Of-Mind"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Pixel-Dream.nix b/hydenix/sources/themes/Pixel-Dream.nix index bbcfb1a2..43db3956 100644 --- a/hydenix/sources/themes/Pixel-Dream.nix +++ b/hydenix/sources/themes/Pixel-Dream.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Pixel-Dream"; - rev = "Pixel-Dream"; + rev = "79607bbf37c356acb80992c8302ada3336f9d8fa"; name = name; sha256 = "sha256-uuqktN19CBY8EDleC+8U/vXrPgwH/lStS8G6hyN+fWE="; }; meta = { description = "Pixel Art inspired theme"; homepage = "https://github.com/rishav12s/Pixel-Dream"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Rain-Dark.nix b/hydenix/sources/themes/Rain-Dark.nix index 042fa5a0..59bbdb71 100644 --- a/hydenix/sources/themes/Rain-Dark.nix +++ b/hydenix/sources/themes/Rain-Dark.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Rain-Dark"; - rev = "Rain-Dark"; + rev = "da26bafb755fcd96d107cc7b60db43e85e3a3876"; name = name; sha256 = "sha256-zv66a/fh3xqOIYVD6OUi4ZEpn3L29J2vvBnPBjeQW7w="; }; meta = { description = "HyDE Theme: Rain Dark"; homepage = "https://github.com/rishav12s/Rain-Dark"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Red-Stone.nix b/hydenix/sources/themes/Red-Stone.nix index f94e3f47..9e42d034 100644 --- a/hydenix/sources/themes/Red-Stone.nix +++ b/hydenix/sources/themes/Red-Stone.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "mahaveergurjar"; repo = "Theme-Gallery"; - rev = "Red_Stone"; + rev = "44c499a0a7f0018b06e89b6f41e335566aabf10d"; name = name; sha256 = "sha256-cbg7hBjXg0xTRCZqbo1UUQM7zNoQHEQO6it2VkahYqI="; }; meta = { description = "HyDE Theme: Red Stone"; homepage = "https://github.com/mahaveergurjar/Theme-Gallery/tree/Red-Stone"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Rose-Pine.nix b/hydenix/sources/themes/Rose-Pine.nix index d5f78a62..f03f03f0 100644 --- a/hydenix/sources/themes/Rose-Pine.nix +++ b/hydenix/sources/themes/Rose-Pine.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Rose-Pine"; + rev = "4bf9d2cd07cd8f68d62f2b7af28d5f064c66409b"; name = name; sha256 = "sha256-ySrHzOyySxDYMomuatoz1JFfkWnSg8SUSCbe5QkrJwY="; }; meta = { description = "HyDE Theme: Rosé Pine"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Rose-Pine"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Scarlet-Night.nix b/hydenix/sources/themes/Scarlet-Night.nix index 88a1a47b..7c1282f3 100644 --- a/hydenix/sources/themes/Scarlet-Night.nix +++ b/hydenix/sources/themes/Scarlet-Night.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "abenezerw"; repo = "Scarlet-Night"; - rev = "main"; + rev = "5edc142b5fad20985ee4049ee497479bfe03776a"; name = name; sha256 = "sha256-+RNKfwc8mfgSnNifMcxlHyBTzDvY5DXAJeNKbJsD8AU="; }; meta = { description = "HyDE Theme: Scarlet Night"; homepage = "https://github.com/abenezerw/Scarlet-Night"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Sci-fi.nix b/hydenix/sources/themes/Sci-fi.nix index 1d86842c..c3e0731b 100644 --- a/hydenix/sources/themes/Sci-fi.nix +++ b/hydenix/sources/themes/Sci-fi.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "KaranRaval123"; repo = "Sci-fi"; - rev = "main"; + rev = "52091e9658319a4d0da0bc19c57f55f3c1b539f0"; name = name; sha256 = "sha256-gnAvPuHBfH+PspSxkzOA2jIIHox2Fi+nMSsoZAJHGlw="; }; meta = { description = "HyDE Theme: Sci-fi"; homepage = "https://github.com/KaranRaval123/Sci-fi"; - priority = 20; }; } diff --git a/hydenix/sources/themes/Solarized-Dark.nix b/hydenix/sources/themes/Solarized-Dark.nix index 84f36a26..0b774b3a 100644 --- a/hydenix/sources/themes/Solarized-Dark.nix +++ b/hydenix/sources/themes/Solarized-Dark.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Solarized-Dark"; - rev = "Solarized-Dark"; + rev = "06908339fb4e89adddca3a11d7aec5738e5e17a0"; name = name; sha256 = "sha256-naLPzGyGK3jQSILdP5vkG2coEOqkQ4Q/dHUBJlUa2pI="; }; meta = { description = "HyDE Theme: Solarized Dark"; homepage = "https://github.com/rishav12s/Solarized-Dark"; - priority = 10; }; } diff --git a/hydenix/sources/themes/Synth-Wave.nix b/hydenix/sources/themes/Synth-Wave.nix index 6c6e3281..57c74cbd 100644 --- a/hydenix/sources/themes/Synth-Wave.nix +++ b/hydenix/sources/themes/Synth-Wave.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Synth-Wave"; + rev = "e42e1a10da90f74afda663af122fff996e6585b9"; name = name; sha256 = "sha256-/r9vPTzGrZOx1EhtfxPZFIax08O9EY1PyB3l5XKKtXo="; }; meta = { description = "HyDE Theme: Synth Wave"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Synth-Wave"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Timeless-Dream.nix b/hydenix/sources/themes/Timeless-Dream.nix new file mode 100644 index 00000000..a54786f7 --- /dev/null +++ b/hydenix/sources/themes/Timeless-Dream.nix @@ -0,0 +1,17 @@ +{ pkgs, mkTheme }: +mkTheme rec { + name = "Timeless Dream"; + src = pkgs.fetchFromGitHub { + owner = "Maroc02"; + repo = "Timeless-Dream"; + # locking commit + rev = "8a10d655dd42ea175e2196b60c57c21d53f96fbd"; + name = name; + sha256 = "sha256-QZnGiMjuL+rgDm0puTwIexeaL/x6lf6SsZ8/dLWvTf4="; + }; + meta = { + name = name; + description = "HyDE Theme: Timeless Dream"; + homepage = "https://github.com/Maroc02/Timeless-Dream"; + }; +} diff --git a/hydenix/sources/themes/Tokyo-Night.nix b/hydenix/sources/themes/Tokyo-Night.nix index 30c5adeb..026af0bd 100644 --- a/hydenix/sources/themes/Tokyo-Night.nix +++ b/hydenix/sources/themes/Tokyo-Night.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "Tokyo-Night"; + rev = "4c4bda0ce67385fe865dc42be75b8931608793c6"; name = name; sha256 = "sha256-ntM6cfHI4BBiFkp1ylqDjZxAqefV4x/rG0A6gqD1jR4="; }; meta = { description = "HyDE Theme: Tokyo Night"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Tokyo-Night"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Tundra.nix b/hydenix/sources/themes/Tundra.nix index 61e3a748..2fd548a2 100644 --- a/hydenix/sources/themes/Tundra.nix +++ b/hydenix/sources/themes/Tundra.nix @@ -5,12 +5,11 @@ mkTheme rec { owner = "Prof-Shiba"; repo = "Tundra"; name = name; - rev = "main"; + rev = "70548d07f50e76c59927c989be23b5cc1b2e0a07"; sha256 = "sha256-bxBXY8YU77w2MCtgOgSU4ujgPwA/MURJUPw1GnIijFM="; }; meta = { description = "HyDE Theme: Tundra"; homepage = "https://github.com/Prof-Shiba/Tundra"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Vanta-Black.nix b/hydenix/sources/themes/Vanta-Black.nix index d088956a..7b0d4731 100644 --- a/hydenix/sources/themes/Vanta-Black.nix +++ b/hydenix/sources/themes/Vanta-Black.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Vanta-Black"; - rev = "Vanta-Black"; + rev = "2ad0f0c041bd90479f4b5e94e139804c2264d8ae"; name = name; sha256 = "sha256-4UZSpJPIzs2ZLQMt1QQz7VoyDW4jiOWZ9Xp1yU4k4Zs="; }; meta = { description = "HyDE Theme: Vanta Black inspired theme having the deepest blacks"; homepage = "https://github.com/rishav12s/Vanta-Black"; - priority = 100; }; } diff --git a/hydenix/sources/themes/Windows-11.nix b/hydenix/sources/themes/Windows-11.nix index 9a77d675..05761296 100644 --- a/hydenix/sources/themes/Windows-11.nix +++ b/hydenix/sources/themes/Windows-11.nix @@ -4,13 +4,12 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "Windows-11"; + rev = "a641e958ad3f54375c9e102ba4be449016d8bfce"; name = name; sha256 = "sha256-rAg4iPOD8sRvKX32N9+8DekwvvmizFC9Q2QwWA7mKz0="; }; meta = { description = "HyDE Theme: Windows 11"; homepage = "https://github.com/HyDE-Project/hyde-gallery/tree/Windows-11"; - priority = 10; }; } diff --git a/hydenix/sources/themes/default.nix b/hydenix/sources/themes/default.nix index 28bebd61..6e495658 100644 --- a/hydenix/sources/themes/default.nix +++ b/hydenix/sources/themes/default.nix @@ -5,42 +5,54 @@ let callTheme = file: import file { inherit pkgs mkTheme; }; in { + + "1-Bit" = callTheme ./1-Bit.nix; "Abyssal-Wave" = callTheme ./Abyssal-Wave.nix; "AbyssGreen" = callTheme ./AbyssGreen.nix; - "AncientAliens" = callTheme ./AncientAliens.nix; "Amethyst-Aura" = callTheme ./Amethyst-Aura.nix; + "AncientAliens" = callTheme ./AncientAliens.nix; + "Another World" = callTheme ./Another-World.nix; "Bad Blood" = callTheme ./Bad-Blood.nix; + "BlueSky" = callTheme ./BlueSky.nix; + "Breezy Autumn" = callTheme ./Breezy-Autumn.nix; "Cat Latte" = callTheme ./Cat-Latte.nix; "Catppuccin Latte" = callTheme ./Catppuccin-Latte.nix; + "Catppuccin-Macchiato" = callTheme ./Catppuccin-Macchiato.nix; "Catppuccin Mocha" = callTheme ./Catppuccin-Mocha.nix; "Code Garden" = callTheme ./Code-Garden.nix; + "Cosmic Blue" = callTheme ./Cosmic-Blue.nix; "Crimson Blade" = callTheme ./Crimson-Blade.nix; "Crimson-Blue" = callTheme ./Crimson-Blue.nix; "Decay Green" = callTheme ./Decay-Green.nix; + "DoomBringers" = callTheme ./DoomBringers.nix; "Dracula" = callTheme ./Dracula.nix; "Edge Runner" = callTheme ./Edge-Runner.nix; "Electra" = callTheme ./Electra.nix; + "Eternal Arctic" = callTheme ./Eternal-Arctic.nix; + "Ever Blushing" = callTheme ./Ever-Blushing.nix; "Frosted Glass" = callTheme ./Frosted-Glass.nix; "Graphite Mono" = callTheme ./Graphite-Mono.nix; "Green Lush" = callTheme ./Green-Lush.nix; "Greenify" = callTheme ./Greenify.nix; - "Gruvbox Retro" = callTheme ./Gruvbox-Retro.nix; "Grukai" = callTheme ./Grukai.nix; + "Gruvbox Retro" = callTheme ./Gruvbox-Retro.nix; "Hack the Box" = callTheme ./Hack-the-Box.nix; "Ice Age" = callTheme ./Ice-Age.nix; + "Joker" = callTheme ./Joker.nix; "LimeFrenzy" = callTheme ./LimeFrenzy.nix; "Mac OS" = callTheme ./Mac-OS.nix; "Material Sakura" = callTheme ./Material-Sakura.nix; "Monokai" = callTheme ./Monokai.nix; "Monterey Frost" = callTheme ./Monterey-Frost.nix; - "Nordic Blue" = callTheme ./Nordic-Blue.nix; + "Moonlight" = callTheme ./Moonlight.nix; "Nightbrew" = callTheme ./Nightbrew.nix; + "Nordic Blue" = callTheme ./Nordic-Blue.nix; "Obsidian-Purple" = callTheme ./Obsidian-Purple.nix; "One Dark" = callTheme ./One-Dark.nix; "Oxo Carbon" = callTheme ./Oxo-Carbon.nix; "Paranoid Sweet" = callTheme ./Paranoid-Sweet.nix; - "Pixel Dream" = callTheme ./Pixel-Dream.nix; "Peace Of Mind" = callTheme ./Peace-Of-Mind.nix; + "Pixel Dream" = callTheme ./Pixel-Dream.nix; "Rain Dark" = callTheme ./Rain-Dark.nix; "Red Stone" = callTheme ./Red-Stone.nix; "Rosé Pine" = callTheme ./Rose-Pine.nix; @@ -48,15 +60,9 @@ in "Sci-fi" = callTheme ./Sci-fi.nix; "Solarized Dark" = callTheme ./Solarized-Dark.nix; "Synth Wave" = callTheme ./Synth-Wave.nix; + "Timeless Dream" = callTheme ./Timeless-Dream.nix; "Tokyo Night" = callTheme ./Tokyo-Night.nix; "Tundra" = callTheme ./Tundra.nix; "Vanta Black" = callTheme ./Vanta-Black.nix; "Windows 11" = callTheme ./Windows-11.nix; - "Another World" = callTheme ./Another-World.nix; - "BlueSky" = callTheme ./BlueSky.nix; - "Cosmic Blue" = callTheme ./Cosmic-Blue.nix; - "DoomBringers" = callTheme ./DoomBringers.nix; - "Eternal Arctic" = callTheme ./Eternal-Arctic.nix; - "Ever Blushing" = callTheme ./Ever-Blushing.nix; - "Moonlight" = callTheme ./Moonlight.nix; } diff --git a/hydenix/sources/themes/utils/update-themes.sh b/hydenix/sources/themes/utils/update-themes.sh index 143859b3..b9eac75d 100755 --- a/hydenix/sources/themes/utils/update-themes.sh +++ b/hydenix/sources/themes/utils/update-themes.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#! nix-shell -i bash -p nix-prefetch-git gnused +#! nix-shell -i bash -p nix-prefetch-git gnused git set -eo pipefail @@ -9,37 +9,71 @@ THEMES_DIR="hydenix/sources/themes" find "$THEMES_DIR" -name "*.nix" ! -name "default.nix" ! -path "*/utils/*" | while read -r NIX_FILE; do echo "Processing $NIX_FILE..." - # Extract owner, repo, rev, and current sha256 from the .nix file + # Extract owner, repo, current rev, and current sha256 from the .nix file OWNER=$(grep -oP 'owner = "\K[^"]+' "$NIX_FILE" || true) REPO=$(grep -oP 'repo = "\K[^"]+' "$NIX_FILE" || true) - REV=$(grep -oP 'rev = "\K[^"]+' "$NIX_FILE" || true) + CURRENT_REV=$(grep -oP 'rev = "\K[^"]+' "$NIX_FILE" || true) CURRENT_SHA256=$(grep -oP 'sha256 = "\K[^"]+' "$NIX_FILE" || true) NAME=$(basename "$NIX_FILE" .nix) # Get theme name from filename - if [ -z "$OWNER" ] || [ -z "$REPO" ] || [ -z "$REV" ]; then + if [ -z "$OWNER" ] || [ -z "$REPO" ] || [ -z "$CURRENT_REV" ]; then echo "Warning: Could not extract owner, repo, or rev from $NIX_FILE. Skipping." continue fi - echo " Owner: $OWNER, Repo: $REPO, Rev: $REV" + echo " Owner: $OWNER, Repo: $REPO, Current Rev: $CURRENT_REV" - # Construct the URL for nix-prefetch-url - FETCH_URL="https://github.com/$OWNER/$REPO/archive/$REV.tar.gz" - - NEW_SHA256=$(nix-prefetch-url --unpack "$FETCH_URL") - # Convert to SRI format (sha256-) - NEW_SHA256=$(nix hash to-sri --type sha256 "$NEW_SHA256") - - if [ -z "$NEW_SHA256" ]; then - echo "Error: Could not prefetch URL for $NAME ($FETCH_URL). Skipping." - continue + # Determine latest commit hash for the current branch/ref + LATEST_COMMIT_HASH="" + if [[ "$CURRENT_REV" =~ ^[0-9a-f]{40}$ ]]; then + # CURRENT_REV is already a commit hash + LATEST_COMMIT_HASH="$CURRENT_REV" + echo " Rev is already a commit hash: $CURRENT_REV" + else + # CURRENT_REV is likely a branch name, fetch the latest commit hash for it + echo " Rev is a branch name: $CURRENT_REV. Fetching latest commit hash..." + REMOTE_URL="https://github.com/$OWNER/$REPO" + LATEST_COMMIT_HASH=$(git ls-remote "$REMOTE_URL" "refs/heads/$CURRENT_REV" | awk '{print $1}') + if [ -z "$LATEST_COMMIT_HASH" ]; then + echo "Error: Could not fetch latest commit hash for $REMOTE_URL/$CURRENT_REV. Skipping." + continue + fi + echo " Latest commit hash for $CURRENT_REV: $LATEST_COMMIT_HASH" fi - if [ "$CURRENT_SHA256" == "$NEW_SHA256" ]; then - echo " Theme $NAME is already up to date. Skipping." + # Check if the current REV in the nix file is already the latest commit hash + if [ "$CURRENT_REV" = "$LATEST_COMMIT_HASH" ] && [ -n "$CURRENT_SHA256" ]; then + echo " Theme $NAME is already at the latest commit ($CURRENT_REV). Checking SHA256 only." + # If the rev is already the latest, let's still verify the sha256 + # Construct the URL for nix-prefetch-url using the LATEST_COMMIT_HASH + FETCH_URL="https://github.com/$OWNER/$REPO/archive/$LATEST_COMMIT_HASH.tar.gz" + VERIFIED_SHA256=$(nix-prefetch-url --unpack "$FETCH_URL") + VERIFIED_SHA256=$(nix hash to-sri --type sha256 "$VERIFIED_SHA256") + + if [ "$CURRENT_SHA256" == "$VERIFIED_SHA256" ]; then + echo " Theme $NAME (rev: $LATEST_COMMIT_HASH) is already up to date. Skipping." + else + echo " Updating $NAME: sha256 $CURRENT_SHA256 -> $VERIFIED_SHA256 (rev unchanged: $LATEST_COMMIT_HASH)" + sed -i -E "s|^([[:space:]]*)sha256 = .*$|\1sha256 = \"$VERIFIED_SHA256\";|" "$NIX_FILE" + echo " Updated $NIX_FILE" + fi else - echo " Updating $NAME: sha256 $CURRENT_SHA256 -> $NEW_SHA256" - # Update only the sha256 line + echo " Theme $NAME needs update (rev changed from $CURRENT_REV to $LATEST_COMMIT_HASH or initial update)." + # Construct the URL for nix-prefetch-url using the LATEST_COMMIT_HASH + FETCH_URL="https://github.com/$OWNER/$REPO/archive/$LATEST_COMMIT_HASH.tar.gz" + + NEW_SHA256=$(nix-prefetch-url --unpack "$FETCH_URL") + # Convert to SRI format (sha256-) + NEW_SHA256=$(nix hash to-sri --type sha256 "$NEW_SHA256") + + if [ -z "$NEW_SHA256" ]; then + echo "Error: Could not prefetch URL for $NAME ($FETCH_URL). Skipping." + continue + fi + + echo " Updating $NAME: rev $CURRENT_REV -> $LATEST_COMMIT_HASH, sha256 $CURRENT_SHA256 -> $NEW_SHA256" + # Update both the rev and sha256 lines + sed -i -E "s|^([[:space:]]*)rev = .*$|\1rev = \"$LATEST_COMMIT_HASH\";|" "$NIX_FILE" sed -i -E "s|^([[:space:]]*)sha256 = .*$|\1sha256 = \"$NEW_SHA256\";|" "$NIX_FILE" echo " Updated $NIX_FILE" fi diff --git a/lib/config/configuration.nix b/lib/config/configuration.nix index 015c0717..1654ffed 100644 --- a/lib/config/configuration.nix +++ b/lib/config/configuration.nix @@ -3,26 +3,26 @@ ... }: let - hydenix-pkgs = import inputs.hydenix-nixpkgs { - inherit (inputs.lib) system; + system = "x86_64-linux"; + pkgs = import inputs.nixpkgs { + inherit system; config.allowUnfree = true; overlays = [ - inputs.lib.overlays + inputs.self.overlays.default ]; }; in { - nixpkgs.pkgs = hydenix-pkgs; + nixpkgs.pkgs = pkgs; imports = [ inputs.home-manager.nixosModules.home-manager ./hardware-configuration.nix - inputs.lib.nixOsModules + inputs.self.nixosModules.default inputs.nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-pc inputs.nixos-hardware.nixosModules.common-pc-ssd - ]; home-manager = { @@ -36,11 +36,8 @@ in { ... }: { imports = [ - inputs.lib.homeModules + inputs.self.homeModules.default ./home.nix - - # Nix-index-database - for comma and command-not-found - inputs.nix-index-database.homeModules.nix-index ]; }; }; @@ -60,7 +57,7 @@ in "networkmanager" "video" ]; - shell = hydenix-pkgs.zsh; + shell = pkgs.zsh; }; system.stateVersion = "25.05"; diff --git a/lib/config/default.nix b/lib/config/default.nix index 5e16104d..33ea4a83 100644 --- a/lib/config/default.nix +++ b/lib/config/default.nix @@ -3,7 +3,7 @@ ... }: -inputs.hydenix-nixpkgs.lib.nixosSystem { +inputs.nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; diff --git a/lib/config/home.nix b/lib/config/home.nix index ff931371..c55a0c95 100644 --- a/lib/config/home.nix +++ b/lib/config/home.nix @@ -8,42 +8,53 @@ enable = true; active = "BlueSky"; themes = [ + "1-Bit" "Abyssal-Wave" "AbyssGreen" - "AncientAliens" "Amethyst-Aura" + "AncientAliens" + "Another World" "Bad Blood" + "BlueSky" + "Breezy Autumn" "Cat Latte" "Catppuccin Latte" + "Catppuccin-Macchiato" "Catppuccin Mocha" "Code Garden" + "Cosmic Blue" "Crimson Blade" "Crimson-Blue" "Decay Green" + "DoomBringers" "Dracula" "Edge Runner" "Electra" + "Eternal Arctic" + "Ever Blushing" "Frosted Glass" "Graphite Mono" "Green Lush" "Greenify" - "Gruvbox Retro" "Grukai" + "Gruvbox Retro" "Hack the Box" "Ice Age" + "Joker" "LimeFrenzy" "Mac OS" "Material Sakura" "Monokai" "Monterey Frost" - "Nordic Blue" + "Moonlight" "Nightbrew" + "Nordic Blue" "Obsidian-Purple" "One Dark" "Oxo Carbon" "Paranoid Sweet" - "Pixel Dream" "Peace Of Mind" + "Pixel Dream" "Rain Dark" "Red Stone" "Rosé Pine" @@ -51,20 +62,12 @@ "Sci-fi" "Solarized Dark" "Synth Wave" - "Tundra" + "Timeless Dream" "Tokyo Night" - #FIXME: theme conflicts with material sakura that wont fix - # "Vanta Black" + "Tundra" + "Vanta Black" "Windows 11" - "Another World" - "BlueSky" - "Cosmic Blue" - "DoomBringers" - "Eternal Arctic" - "Ever Blushing" - "Moonlight" - # Testing that we can add a new string and it won't fail "Some Theme" ]; diff --git a/lib/dev-shell.nix b/lib/dev-shell.nix index 08e779f1..0b46c49b 100644 --- a/lib/dev-shell.nix +++ b/lib/dev-shell.nix @@ -2,7 +2,7 @@ let system = "x86_64-linux"; - pkgs = import inputs.hydenix-nixpkgs { + pkgs = import inputs.nixpkgs { inherit system; config.allowUnfree = true; }; diff --git a/lib/hyde-update/default.nix b/lib/hyde-update/default.nix index 507f59ab..ad65b46a 100644 --- a/lib/hyde-update/default.nix +++ b/lib/hyde-update/default.nix @@ -4,7 +4,7 @@ let system = "x86_64-linux"; - pkgs = import inputs.hydenix-nixpkgs { + pkgs = import inputs.nixpkgs { inherit system; config.allowUnfree = true; }; @@ -27,8 +27,8 @@ let pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "HyDE"; - rev = "168287f2f10e95a4a9a623c955c7e08147c48472"; - sha256 = "sha256-hT7xLsfqsVwcYS/YscRwVOPqK8ZpubhGdpK58INkdJ0="; + rev = "f246f2a89b8e862b96042cb2b291b191289c2fde"; + sha256 = "sha256-fXW+yxDQ0iLFX2YuKDpv82lIPbGDgii5kpsWCDp3m4s="; } ); in diff --git a/lib/vms/demo-vm.nix b/lib/vms/demo-vm.nix index 48ee86bf..cdd78ae9 100644 --- a/lib/vms/demo-vm.nix +++ b/lib/vms/demo-vm.nix @@ -1,5 +1,5 @@ { inputs, ... }: -inputs.hydenix-nixpkgs.lib.nixosSystem { +inputs.nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ( diff --git a/lib/vms/nixos-vm.nix b/lib/vms/nixos-vm.nix index 333119cf..34c0520e 100644 --- a/lib/vms/nixos-vm.nix +++ b/lib/vms/nixos-vm.nix @@ -28,9 +28,6 @@ nixosConfiguration.extendModules { "-cpu host" "-enable-kvm" "-machine q35,accel=kvm" - "-device intel-iommu" - "-device ich9-intel-hda" - "-device hda-output" ]; }; }; @@ -76,7 +73,7 @@ nixosConfiguration.extendModules { ]; # Enable verbose logging for home-manager - # home-manager.verbose = true; + home-manager.verbose = true; } ) ]; diff --git a/template/configuration.nix b/template/configuration.nix index 0c7d0a9b..7a766ff6 100644 --- a/template/configuration.nix +++ b/template/configuration.nix @@ -3,19 +3,16 @@ ... }: let + # FOLLOW THE BELOW INSTRUCTIONS LINE BY LINE TO SET UP YOUR SYSTEM + # Package configuration - sets up package system with proper overlays # Most users won't need to modify this section - pkgs = import inputs.hydenix.inputs.hydenix-nixpkgs { - inherit (inputs.hydenix.lib) system; + system = "x86_64-linux"; + pkgs = import inputs.nixpkgs { + inherit system; config.allowUnfree = true; overlays = [ - inputs.hydenix.lib.overlays - (final: prev: { - userPkgs = import inputs.nixpkgs { - inherit (pkgs) system; - config.allowUnfree = true; - }; - }) + inputs.hydenix.overlays.default ]; }; in @@ -24,8 +21,8 @@ in imports = [ # hydenix inputs - Required modules, don't modify unless you know what you're doing - inputs.hydenix.inputs.home-manager.nixosModules.home-manager - inputs.hydenix.lib.nixOsModules + inputs.home-manager.nixosModules.home-manager + inputs.hydenix.nixosModules.default ./modules/system # Your custom system modules ./hardware-configuration.nix # Auto-generated hardware config @@ -33,17 +30,17 @@ in # Run `lshw -short` or `lspci` to identify your hardware # GPU Configuration (choose one): - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-gpu-nvidia # NVIDIA - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-gpu-amd # AMD + # inputs.nixos-hardware.nixosModules.common-gpu-nvidia # NVIDIA + # inputs.nixos-hardware.nixosModules.common-gpu-amd # AMD # CPU Configuration (choose one): - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-cpu-amd # AMD CPUs - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-cpu-intel # Intel CPUs + # inputs.nixos-hardware.nixosModules.common-cpu-amd # AMD CPUs + # inputs.nixos-hardware.nixosModules.common-cpu-intel # Intel CPUs # Additional Hardware Modules - Uncomment based on your system type: - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-hidpi # High-DPI displays - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-pc-laptop # Laptops - # inputs.hydenix.inputs.nixos-hardware.nixosModules.common-pc-ssd # SSD storage + # inputs.nixos-hardware.nixosModules.common-hidpi # High-DPI displays + # inputs.nixos-hardware.nixosModules.common-pc-laptop # Laptops + # inputs.nixos-hardware.nixosModules.common-pc-ssd # SSD storage ]; # If enabling NVIDIA, you will be prompted to configure hardware.nvidia @@ -68,8 +65,7 @@ in { ... }: { imports = [ - inputs.hydenix.lib.homeModules - inputs.nix-index-database.hmModules.nix-index # Command-not-found and comma tool support + inputs.hydenix.homeModules.default ./modules/hm # Your custom home-manager modules (configure hydenix.hm here!) ]; }; diff --git a/template/docs/faq.md b/template/docs/faq.md index 606ecf06..1ec0c0c3 100644 --- a/template/docs/faq.md +++ b/template/docs/faq.md @@ -13,7 +13,6 @@ - [when should I upgrade?](#when-should-i-upgrade) - [how do I fix (nix error / system error / bug / etc)?](#how-do-i-fix-nix-error--system-error--bug--etc) - [common errors](#common-errors) - - [`error: hash mismatch in fixed-output derivation`](#error-hash-mismatch-in-fixed-output-derivation) - [`Existing file '...' is in the way of '...'`](#existing-file--is-in-the-way-of-) - [what are the module options?](#what-are-the-module-options) - [what if I want to customize hydenix?](#what-if-i-want-to-customize-hydenix) @@ -125,45 +124,6 @@ or create an issue in the [hydenix GitHub repository](https://github.com/richen6 ### common errors -#### `error: hash mismatch in fixed-output derivation` - -this error occurs when nix expects a specific hash for a downloaded file, but the actual file has a different hash due to upstream changes. - -these usually happen with themes as they are updated frequently. - -Example: - -```bash -error: hash mismatch in fixed-output derivation '/nix/store/2s2n054di1wg8d3sw50wqhs10yg8svj0-Code-Garden.drv': - specified: sha256-ZAmxhz7MK24htAcPdnNMZF/K7Cw7vru80xZn+7yJgXQ= - got: sha256-HHC15pPHJ+ylQ56yYysEoKjKYUAoye2WHmt4Q2vyffk= -``` - -**solution: override the package in configuration.nix** - -if I haven't updated this in the repo yet, add this overlay to your existing overlays in `configuration.nix` to fix the error: - -```nix -overlays = [ - inputs.hydenix.lib.overlays - # fix hash mismatch errors for catppuccin mocha - (final: prev: { - # replace 'hydenix.themes."catppuccin mocha"' with the actual failing package, for theme names check https://github.com/richen604/hydenix/blob/main/hydenix/sources/themes/default.nix - hydenix.themes."Catppuccin Mocha" = prev.hydenix.themes."Catppuccin Mocha".overrideAttrs (oldAttrs: { - src = prev.fetchFromGitHub { - # use the hash from error message under "got:" - sha256 = "HHC15pPHJ+ylQ56yYysEoKjKYUAoye2WHmt4Q2vyffk="; - }; - }); - }) - (final: prev: { - userPkgs = import inputs.nixpkgs { - config.allowUnfree = true; - }; - }) -]; -``` - #### `Existing file '...' is in the way of '...'` this error occurs when home-manager tries to manage a file that already exists and wasn't created by home-manager. diff --git a/template/docs/options.md b/template/docs/options.md index 1cafc6ee..d7228b4d 100644 --- a/template/docs/options.md +++ b/template/docs/options.md @@ -102,10 +102,8 @@ below are the default options for hydenix. they are in *object format* and any o hardware.enable = true; # enable hardware module network.enable = true; # enable network module nix.enable = true; # enable nix module - sddm = { - enable = true; # enable sddm module - theme = "Candy" # or "Corners" - }; + sddm.enable = true; # enable sddm module + system.enable = true; # enable system module # home-manager hydenix options @@ -180,6 +178,13 @@ below are the default options for hydenix. they are in *object format* and any o extraConfig = ""; # additional NVIDIA configuration overrideConfig = null; # complete NVIDIA configuration override (null or lib.types.lines) }; + # Pyprland configurations + pyprland = { + enable = true; # enable pyprland configurations + extraConfig = ""; # additional pyprland configuration + overrideConfig = null; # complete pyprland configuration override (null or lib.types.lines) + }; + # Monitor configurations monitors = { enable = true; # enable monitor configurations diff --git a/template/flake.nix b/template/flake.nix index 125f1e9d..360aac6a 100644 --- a/template/flake.nix +++ b/template/flake.nix @@ -2,31 +2,37 @@ description = "template for hydenix"; inputs = { - # User's nixpkgs - for user packages + # Your nixpkgs nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - # Hydenix and its nixpkgs - kept separate to avoid conflicts + # Hydenix hydenix = { # Available inputs: # Main: github:richen604/hydenix - # Dev: github:richen604/hydenix/dev # Commit: github:richen604/hydenix/ - # Version: github:richen604/hydenix/v1.0.0 + # Version: github:richen604/hydenix/v1.0.0 - note the version may not be compatible with this template url = "github:richen604/hydenix"; + + # uncomment the below if you know what you're doing, hydenix updates nixos-unstable every week or so + # inputs.nixpkgs.follows = "nixpkgs"; }; - # Nix-index-database - for comma and command-not-found - nix-index-database = { - url = "github:nix-community/nix-index-database"; + # Home Manager + home-manager = { + url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + + # Hardware Configuration's, used in ./configuration.nix. Feel free to remove if unused + nixos-hardware.url = "github:nixos/nixos-hardware/master"; }; outputs = { ... }@inputs: let - hydenixConfig = inputs.hydenix.inputs.hydenix-nixpkgs.lib.nixosSystem { - inherit (inputs.hydenix.lib) system; + system = "x86_64-linux"; + hydenixConfig = inputs.nixpkgs.lib.nixosSystem { + inherit system; specialArgs = { inherit inputs; }; @@ -38,5 +44,6 @@ in { nixosConfigurations.hydenix = hydenixConfig; + nixosConfigurations.default = hydenixConfig; }; }