diff --git a/.github/workflows/iso.yml b/.github/workflows/iso.yml deleted file mode 100644 index f7fcc009..00000000 --- a/.github/workflows/iso.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: Build ISO - -on: - release: - types: [created] - workflow_dispatch: - -permissions: - contents: write - -jobs: - build-iso: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Install Nix - uses: cachix/install-nix-action@v22 - with: - nix_path: nixpkgs=channel:nixos-unstable - extra_nix_config: | - experimental-features = nix-command flakes - accept-flake-config = true - - - name: Build ISO - run: | - nix run .#iso - ISO_PATH=$(find ./result -name "*.iso" -type f) - echo "ISO_PATH=$ISO_PATH" >> $GITHUB_ENV - echo "ISO_NAME=$(basename $ISO_PATH)" >> $GITHUB_ENV - - - name: Rename ISO with version (Release) - if: github.event_name == 'release' - run: | - VERSION="${{ github.event.release.tag_name }}" - cp "$ISO_PATH" "hydenix-iso-${VERSION}.iso" - echo "VERSIONED_ISO_PATH=hydenix-iso-${VERSION}.iso" >> $GITHUB_ENV - - - name: Rename ISO with commit (Manual) - if: github.event_name == 'workflow_dispatch' - run: | - SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7) - cp "$ISO_PATH" "hydenix-iso-v${SHORT_SHA}.iso" - echo "VERSIONED_ISO_PATH=hydenix-iso-v${SHORT_SHA}.iso" >> $GITHUB_ENV - - - name: Upload ISO to Release - if: github.event_name == 'release' - uses: softprops/action-gh-release@v1 - with: - files: ${{ env.VERSIONED_ISO_PATH }} - tag_name: ${{ github.event.release.tag_name }} - append_body: true - body: | - - ## ISO Installation - - 1. Download the ISO file - 2. Burn it to a USB drive using: - ``` - nix run github:richen604/hydenix#burn-iso -- ${{ env.VERSIONED_ISO_PATH }} /dev/sdX - ``` - (Replace /dev/sdX with your USB device) - 3. Boot from the USB drive - 4. Follow the on-screen instructions - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Create ISO Release (Manual Trigger) - if: github.event_name == 'workflow_dispatch' - uses: softprops/action-gh-release@v1 - with: - tag_name: iso-${{ github.sha }} - name: HydeNix ISO ${{ github.sha }} - draft: false - prerelease: true - files: ${{ env.VERSIONED_ISO_PATH }} - body: | - HydeNix ISO built from commit ${{ github.sha }} - - This is a manually triggered ISO build. - - ## Installation - - 1. Download the ISO file - 2. Burn it to a USB drive using: - ``` - nix run github:richen604/hydenix#burn-iso -- ${{ env.VERSIONED_ISO_PATH }} /dev/sdX - ``` - (Replace /dev/sdX with your USB device) - 3. Boot from the USB drive - 4. Follow the on-screen instructions - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/update-themes.yml b/.github/workflows/update-themes.yml new file mode 100644 index 00000000..7eca752d --- /dev/null +++ b/.github/workflows/update-themes.yml @@ -0,0 +1,54 @@ +name: Update HyDE Themes + +on: + workflow_dispatch: # Allows manual triggering + schedule: + - cron: "0 0 * * *" # Run daily at midnight UTC + +jobs: + update-themes: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 # Fetch all history for auto-merge + + - name: Setup Nix + uses: cachix/install-nix-action@v20 + with: + nix_path: nixpkgs=channel:nixos-unstable + + - name: Run update script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Automatically provided by GitHub Actions + run: | + chmod +x hydenix/sources/themes/utils/update-themes.sh + ./hydenix/sources/themes/utils/update-themes.sh + + - name: Create Pull Request + id: create_pr + 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" + body: | + This PR updates the `sha256` for HyDE themes based on their specified `rev`. + Automated by GitHub Actions. + branch: automated-theme-updates + delete-branch: true + labels: | + automated + themes + assignees: ${{ github.actor }} # Assign to the user who triggered the workflow or the bot + 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 }} diff --git a/TODO.md b/TODO.md index 2b797fc3..03814cda 100644 --- a/TODO.md +++ b/TODO.md @@ -3,9 +3,11 @@ ## now +- feat: new themes to build + ## next -- feat: new themes to build +- fix: hydenix.hm.hyprland options with presets should by type str to allow for overrides, example should show default lists - feat: move hyprlock to hyprland module, swaylock should just be swaylock module - assertion to not have both enabled - feat: hyde config.toml options @@ -15,27 +17,35 @@ - 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 + - 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: template references hydenix inputs without hacks like xdg.nix and system.nix +- 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 + - update docs to reflect this, as users can remove ## backlog -- finish demo-vm for video +- complete demo video after 5.0 +- 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. + - create a simple flake to test and export as a full module ## future @@ -47,15 +57,7 @@ - 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 - most likely will need its own video installation guide -- cleanupOnDisable activation script and option - nh by default? -- docs: documentation generation using nixosOptionsDoc +- docs: documentation generation using nixosOptionsDoc - refactor: revise module hierarchy to be more clear and concise? - feat: spicetify theme support? flatpak? - -// docs & onboarding - -- docs: first-boot checklist (set password, run `hyde-shell reload`) + keybindings/workflows cheat sheet -- docs: uninstall/rollback guide + break-glass steps if Hyprland fails (switch TTY, disable module, rebuild) -- docs: "add a theme" contributor guide + PR template -- docs: generate option docs via `nixosOptionsDoc` and publish to GitHub Pages diff --git a/flake.lock b/flake.lock index 0cc829b9..675a1c31 100644 --- a/flake.lock +++ b/flake.lock @@ -1,73 +1,20 @@ { "nodes": { - "aquamarine": { + "flake-utils": { "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753216019, - "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "be166e11d86ba4186db93e10c54a141058bdce49", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-hooks", - "nixpkgs" - ] + "systems": "systems" }, "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, @@ -78,11 +25,11 @@ ] }, "locked": { - "lastModified": 1754365350, - "narHash": "sha256-NLWIkn1qM0wxtZu/2NXRaujWJ4Y1PSZlc7h0y6pOzOQ=", + "lastModified": 1756261190, + "narHash": "sha256-eiy0klFK5EVJLNilutR7grsZN/7Itj9DyD75eyOf83k=", "owner": "nix-community", "repo": "home-manager", - "rev": "c5d7e957397ecb7d48b99c928611c6e780db1b56", + "rev": "77f348da3176dc68b20a73dab94852a417daf361", "type": "github" }, "original": { @@ -108,405 +55,101 @@ "type": "github" } }, - "hydenix-nixpkgs": { - "locked": { - "lastModified": 1750122687, - "narHash": "sha256-zcGClfkXh4pckf4aGOZ18GFv73n1xHbdMWl17cPLouE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c539ae8d21e49776966d714f82fba33b1fca78bc", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c539ae8d21e49776966d714f82fba33b1fca78bc", - "type": "github" - } - }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { + "hyde-config": { "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hypridle": { - "inputs": { - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs", - "systems": "systems" - }, - "locked": { - "lastModified": 1752164251, - "narHash": "sha256-v/FnmgSkOypGkpDHQW8KK0uVIyh2njVgEa7hOpWW9ZM=", - "owner": "hyprwm", - "repo": "hypridle", - "rev": "dda793b66a79e5602675fa370dd9a93f1d70a60e", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hypridle", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-protocols": "hyprland-protocols_2", - "hyprland-qtutils": "hyprland-qtutils", - "hyprlang": "hyprlang_2", - "hyprutils": "hyprutils_2", - "hyprwayland-scanner": "hyprwayland-scanner_2", - "nixpkgs": "nixpkgs_2", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_2", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1754516867, - "narHash": "sha256-Vlh2o3NqI6a9H/b1aY8uCUsJyJdhwvJZExxnteadLCU=", - "owner": "hyprwm", - "repo": "Hyprland", - "rev": "a4529beb7c0be3980ce857c60b284a90f2ea6eb6", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "Hyprland", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-protocols_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-qt-support": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "hyprland-qtutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-qtutils", - "systems" - ] - }, - "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "type": "github" - } - }, - "hyprland-qtutils": { - "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-qtutils", - "hyprlang", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hypridle", - "hyprutils" - ], - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749145882, - "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_2": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" + "hydenix-nixpkgs" ] }, "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "lastModified": 1754889600, + "narHash": "sha256-kn35QcO7OxZxcYyaZNxQ4tBsLdeSi1u2kbWdPg/pky0=", + "owner": "richen604", + "repo": "hyde-config", + "rev": "59dc0659e0cfb72552616553f5b2635cf40c2184", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprlang", + "owner": "richen604", + "repo": "hyde-config", "type": "github" } }, - "hyprutils": { + "hyde-ipc": { "inputs": { "nixpkgs": [ - "hypridle", - "nixpkgs" + "hydenix-nixpkgs" ], - "systems": [ - "hypridle", - "systems" - ] + "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1749135356, - "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", + "lastModified": 1754887268, + "narHash": "sha256-TsiA83Gd16VfIMatHa6o56Rvf7Vi2Lr/9ch9T6+n/qg=", + "owner": "richen604", + "repo": "hyde-ipc", + "rev": "016b6e7bd5959a18c2cefeb4a952098468f6bb8f", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprutils", + "owner": "richen604", + "repo": "hyde-ipc", "type": "github" } }, - "hyprutils_2": { + "hydectl": { "inputs": { "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" + "hydenix-nixpkgs" ] }, "locked": { - "lastModified": 1753800567, - "narHash": "sha256-W0xgXsaqGa/5/7IBzKNhf0+23MqGPymYYfqT7ECqeTE=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "c65d41d4f4e6ded6fdb9d508a73e2fe90e55cdf7", + "lastModified": 1755057332, + "narHash": "sha256-TVLjDL4+SdoXJrNu5TLiUSDD73CdVWfAn3aE2c4aShg=", + "owner": "richen604", + "repo": "hydectl", + "rev": "a19610347de2230175e5d8807584db65d0588134", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprutils", + "owner": "richen604", + "repo": "hydectl", "type": "github" } }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, + "hydenix-nixpkgs": { "locked": { - "lastModified": 1749145760, - "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", + "lastModified": 1756288264, + "narHash": "sha256-Om8adB1lfkU7D33VpR+/haZ2gI5r3Q+ZbIPzE5sYnwE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "ddd1826f294a0ee5fdc198ab72c8306a0ea73aa9", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, - "hyprwayland-scanner_2": { + "hyq": { "inputs": { + "flake-utils": "flake-utils", "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" + "hydenix-nixpkgs" ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "lastModified": 1754885202, + "narHash": "sha256-3/Z2AwSUFgRQaGACIJ1hKLNt3dJBAQ1UninODL3wOQE=", + "owner": "richen604", + "repo": "hyprquery", + "rev": "370ed645dc0c0e1fb5daae6405b3ecd667be320c", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", + "owner": "richen604", + "repo": "hyprquery", "type": "github" } }, @@ -517,11 +160,11 @@ ] }, "locked": { - "lastModified": 1754195341, - "narHash": "sha256-YL71IEf2OugH3gmAsxQox6BJI0KOcHKtW2QqT/+s2SA=", + "lastModified": 1756008611, + "narHash": "sha256-rfTBWuTXi9/X7GhtF562FKNXKh2kvKb6dwI5lV1SjPE=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "b7fcd4e26d67fca48e77de9b0d0f954b18ae9562", + "rev": "52dec1cb33a614accb9e01307e17816be974d24d", "type": "github" }, "original": { @@ -532,11 +175,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1754316476, - "narHash": "sha256-Ry1gd1BQrNVJJfT11cpVP0FY8XFMx4DJV2IDp01CH9w=", + "lastModified": 1756245047, + "narHash": "sha256-9bHzrVbjAudbO8q4vYFBWlEkDam31fsz0J7GB8k4AsI=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "9368056b73efb46eb14fd4667b99e0f81b805f28", + "rev": "a65b650d6981e23edd1afa1f01eb942f19cdcbb7", "type": "github" }, "original": { @@ -548,138 +191,63 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748929857, - "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1753939845, - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", + "lastModified": 1744536153, + "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "94def634a20494ee057c76998843c015909d6311", + "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", "hyde": "hyde", + "hyde-config": "hyde-config", + "hyde-ipc": "hyde-ipc", + "hydectl": "hydectl", "hydenix-nixpkgs": "hydenix-nixpkgs", - "hypridle": "hypridle", - "hyprland": "hyprland", + "hyq": "hyq", "nix-index-database": "nix-index-database", "nixos-hardware": "nixos-hardware" } }, - "systems": { + "rust-overlay": { + "inputs": { + "nixpkgs": "nixpkgs" + }, "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "lastModified": 1754880555, + "narHash": "sha256-tG6l0wiX8V8IvG4HFYY8IYN5vpNAxQ+UWunjjpE6SqU=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "17c591a44e4eb77f05f27cd37e1cfc3f219c7fc4", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default-linux", + "owner": "oxalica", + "repo": "rust-overlay", "type": "github" } }, - "systems_2": { + "systems": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753633878, - "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", + "repo": "default", "type": "github" } } diff --git a/flake.nix b/flake.nix index 82c6b009..90673369 100644 --- a/flake.nix +++ b/flake.nix @@ -3,7 +3,7 @@ inputs = { # Hydenix's nixpkgs - hydenix-nixpkgs.url = "github:nixos/nixpkgs/c539ae8d21e49776966d714f82fba33b1fca78bc"; + hydenix-nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; home-manager = { url = "github:nix-community/home-manager"; @@ -22,10 +22,25 @@ flake = false; }; - hyprland.url = "github:hyprwm/Hyprland"; - hypridle.url = "github:hyprwm/hypridle"; - }; + # HyDE related binaries + hyq = { + url = "github:richen604/hyprquery"; + inputs.nixpkgs.follows = "hydenix-nixpkgs"; + }; + hydectl = { + url = "github:richen604/hydectl"; + inputs.nixpkgs.follows = "hydenix-nixpkgs"; + }; + hyde-ipc = { + url = "github:richen604/hyde-ipc"; + inputs.nixpkgs.follows = "hydenix-nixpkgs"; + }; + hyde-config = { + url = "github:richen604/hyde-config"; + inputs.nixpkgs.follows = "hydenix-nixpkgs"; + }; + }; outputs = hydenix-inputs@{ hydenix-nixpkgs, ... }: let @@ -86,6 +101,12 @@ # Helper to manage hyde updates hyde-update = import ./lib/hyde-update { inherit inputs; }; + + # Add hyq, hydectl, hyde-ipc, and hyde-config for building + hyq = inputs.hyq.packages.${system}.default; + hydectl = inputs.hydectl.packages.${system}.default; + hyde-ipc = inputs.hyde-ipc.packages.${system}.default; + hyde-config = inputs.hyde-config.packages.${system}.default; }; devShells.${system}.default = import ./lib/dev-shell.nix { inherit inputs; }; diff --git a/hydenix/modules/hm/editors.nix b/hydenix/modules/hm/editors.nix index 11393088..c2928a7b 100644 --- a/hydenix/modules/hm/editors.nix +++ b/hydenix/modules/hm/editors.nix @@ -61,6 +61,24 @@ in mutableExtensionsDir = true; }; + xdg.mimeApps = { + defaultApplications = { + "text/plain" = [ "${cfg.default}.desktop" ]; + "application/x-shellscript" = [ "${cfg.default}.desktop" ]; + "text/css" = [ "${cfg.default}.desktop" ]; + "application/javascript" = [ "${cfg.default}.desktop" ]; + "application/json" = [ "${cfg.default}.desktop" ]; + "application/xml" = [ "${cfg.default}.desktop" ]; + "text/x-python" = [ "${cfg.default}.desktop" ]; + "text/x-java-source" = [ "${cfg.default}.desktop" ]; + "text/x-c++src" = [ "${cfg.default}.desktop" ]; + "text/x-csrc" = [ "${cfg.default}.desktop" ]; + "text/x-go" = [ "${cfg.default}.desktop" ]; + "text/x-typescript" = [ "${cfg.default}.desktop" ]; + "text/markdown" = [ "${cfg.default}.desktop" ]; + }; + }; + home.file = lib.mkMerge [ (lib.mkIf cfg.vscode.enable { # Editor flags diff --git a/hydenix/modules/hm/hyde.nix b/hydenix/modules/hm/hyde.nix index 3b670729..9993a1a2 100644 --- a/hydenix/modules/hm/hyde.nix +++ b/hydenix/modules/hm/hyde.nix @@ -80,23 +80,34 @@ in # TODO: requires nix-ld ".local/bin/hydectl" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/bin/hydectl"; + source = "${pkgs.hydenix.hydectl}/bin/hydectl"; executable = true; }; ".local/bin/hyde-ipc" = { - source = "${pkgs.hydenix.hyde}/Configs/.local/bin/hyde-ipc"; + source = "${pkgs.hydenix.hyde-ipc}/bin/hyde-ipc"; + executable = true; + }; + + ".local/bin/hyq" = { + source = "${pkgs.hydenix.hyq}/bin/hyq"; executable = true; }; ".local/lib/hyde" = { source = "${pkgs.hydenix.hyde}/Configs/.local/lib/hyde"; recursive = true; - force = true; - mutable = true; executable = true; }; + ".local/lib/hyde-config" = { + source = "${pkgs.hydenix.hyde-config}/bin/hyde-config"; + 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; diff --git a/hydenix/modules/hm/hyprland/options.nix b/hydenix/modules/hm/hyprland/options.nix index e960841e..e1dd5b91 100644 --- a/hydenix/modules/hm/hyprland/options.nix +++ b/hydenix/modules/hm/hyprland/options.nix @@ -36,28 +36,12 @@ in default = cfg.enable; }; preset = lib.mkOption { - type = lib.types.enum [ - "LimeFrenzy" - "classic" - "diablo-1" - "diablo-2" - "disable" - "dynamic" - "end4" - "fast" - "high" - "ja" - "me-1" - "me-2" - "minimal-1" - "minimal-2" - "moving" - "optimized" - "standard" - "vertical" - ]; + type = lib.types.str; default = "standard"; description = "Animation preset to use"; + example = lib.literalExpression '' + "standard" # any string in overrides or default: "LimeFrenzy", "classic", "diablo-1", "diablo-2", "disable", "dynamic", "end4", "fast", "high", "ja", "me-1", "me-2", "minimal-1", "minimal-2", "moving", "optimized", "standard", "vertical" + ''; }; extraConfig = lib.mkOption { type = lib.types.lines; @@ -83,6 +67,14 @@ in enable = lib.mkEnableOption "shader configurations" // { default = cfg.enable; }; + active = lib.mkOption { + type = lib.types.str; + default = "disable"; + description = "Active shader preset"; + example = lib.literalExpression '' + "disable" # any string in overrides or default: "blue-light-filter", "color-vision", "custom", "grayscale", "invert-colors", "oled", "oled-saver", "paper", "vibrance", "wallbash" + ''; + }; overrides = lib.mkOption { type = lib.types.attrsOf lib.types.lines; default = { }; @@ -104,15 +96,12 @@ in default = cfg.enable; }; active = lib.mkOption { - type = lib.types.enum [ - "default" - "editing" - "gaming" - "powersaver" - "snappy" - ]; + type = lib.types.str; default = "default"; description = "Active workflow preset"; + example = lib.literalExpression '' + "default" # any string in overrides or default: "editing", "gaming", "powersaver", "snappy" + ''; }; overrides = lib.mkOption { type = lib.types.attrsOf lib.types.lines; diff --git a/hydenix/modules/hm/hyprland/shaders.nix b/hydenix/modules/hm/hyprland/shaders.nix index 223eefc1..2dd877c5 100644 --- a/hydenix/modules/hm/hyprland/shaders.nix +++ b/hydenix/modules/hm/hyprland/shaders.nix @@ -45,7 +45,14 @@ in mutable = true; }; ".config/hypr/shaders.conf" = { - source = "${pkgs.hydenix.hyde}/Configs/.config/hypr/shaders.conf"; + text = '' + # name of the shader + $SCREEN_SHADER = "${cfg.shaders.active}" + # path to the shader + $SCREEN_SHADER_PATH = "$XDG_CONFIG_HOME/hypr/shaders/${cfg.shaders.active}.frag" + # path to the compiled shader // override this in '../hyde/config.toml' + $SCREEN_SHADER_COMPILED = $XDG_CONFIG_HOME/hypr/shaders/.compiled.cache.glsl + ''; force = true; mutable = true; }; diff --git a/hydenix/modules/hm/xdg.nix b/hydenix/modules/hm/xdg.nix index 7b59ef5d..b8683a29 100644 --- a/hydenix/modules/hm/xdg.nix +++ b/hydenix/modules/hm/xdg.nix @@ -2,7 +2,6 @@ config, lib, pkgs, - inputs, ... }: @@ -26,13 +25,13 @@ in portal = { enable = true; extraPortals = with pkgs; [ - pkgs.hydenix.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-hyprland xdg-desktop-portal-gtk xdg-desktop-portal ]; xdgOpenUsePortal = true; configPackages = with pkgs; [ - pkgs.hydenix.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-hyprland xdg-desktop-portal-gtk xdg-desktop-portal ]; diff --git a/hydenix/modules/system/boot.nix b/hydenix/modules/system/boot.nix index 4312989e..10d5653c 100644 --- a/hydenix/modules/system/boot.nix +++ b/hydenix/modules/system/boot.nix @@ -5,8 +5,6 @@ ... }: -with lib; - let cfg = config.hydenix.boot; in @@ -18,14 +16,14 @@ in description = "Enable boot module"; }; - useSystemdBoot = mkOption { - type = types.bool; + useSystemdBoot = lib.mkOption { + type = lib.types.bool; default = true; description = "Whether to use systemd-boot (true) or GRUB (false)"; }; - grubTheme = mkOption { - type = types.enum [ + grubTheme = lib.mkOption { + type = lib.types.enum [ "Retroboot" "Pochita" ]; @@ -33,20 +31,20 @@ in description = "GRUB theme to use, use either `Retroboot` or `Pochita`"; }; - grubExtraConfig = mkOption { - type = types.lines; + grubExtraConfig = lib.mkOption { + type = lib.types.lines; default = ""; description = "Additional configuration for GRUB"; }; - kernelPackages = mkOption { - type = with types; attrs; + kernelPackages = lib.mkOption { + type = lib.types.attrs; default = pkgs.linuxPackages_zen; description = "Kernel packages to use"; }; }; - config = mkIf cfg.enable { + config = lib.mkIf cfg.enable { boot = { kernelPackages = cfg.kernelPackages; loader = diff --git a/hydenix/modules/system/sddm.nix b/hydenix/modules/system/sddm.nix index 9b4dae6e..b9c7982e 100644 --- a/hydenix/modules/system/sddm.nix +++ b/hydenix/modules/system/sddm.nix @@ -47,13 +47,11 @@ in }; extraPackages = with pkgs; [ libsForQt5.sddm - libsForQt5.sddm-kcm libsForQt5.qtsvg libsForQt5.qtmultimedia libsForQt5.qtvirtualkeyboard libsForQt5.qtquickcontrols2 libsForQt5.qtgraphicaleffects - libsForQt5.layer-shell-qt libsForQt5.qt5.qtwayland hydenix.hyde Bibata-Modern-Ice diff --git a/hydenix/modules/system/system.nix b/hydenix/modules/system/system.nix index d138c3e1..14e69bca 100644 --- a/hydenix/modules/system/system.nix +++ b/hydenix/modules/system/system.nix @@ -55,7 +55,7 @@ in coreutils # coreutils implementation bash-completion # Add bash-completion package - pkgs.hydenix.hypridle + hypridle ]; environment.variables = { @@ -63,8 +63,8 @@ in }; programs.hyprland = { - package = pkgs.hydenix.hyprland; - portalPackage = pkgs.hydenix.xdg-desktop-portal-hyprland; + package = pkgs.hyprland; + portalPackage = pkgs.xdg-desktop-portal-hyprland; enable = true; withUWSM = false; }; diff --git a/hydenix/sources/Bibata-Modern-Ice.nix b/hydenix/sources/Bibata-Modern-Ice.nix index a638e0e8..83653b8f 100644 --- a/hydenix/sources/Bibata-Modern-Ice.nix +++ b/hydenix/sources/Bibata-Modern-Ice.nix @@ -23,11 +23,11 @@ stdenv.mkDerivation { jdupes --recurse $out/share/icons/ ''; - meta = with lib; { + meta = { description = "Bibata Modern Ice cursor theme"; homepage = "https://github.com/HyDE-Project/HyDE"; - license = licenses.gpl3; - platforms = platforms.all; + license = lib.licenses.gpl3; + platforms = lib.platforms.all; maintainers = [ ]; }; } diff --git a/hydenix/sources/Tela-circle-dracula.nix b/hydenix/sources/Tela-circle-dracula.nix index da126875..2671927e 100644 --- a/hydenix/sources/Tela-circle-dracula.nix +++ b/hydenix/sources/Tela-circle-dracula.nix @@ -23,11 +23,11 @@ stdenv.mkDerivation { jdupes --recurse $out/share/icons ''; - meta = with lib; { + meta = { description = "Tela Dracula icon theme from HyDE Project"; homepage = "https://github.com/HyDE-Project/hyde-themes"; - license = licenses.gpl3; # You may need to verify the actual license - platforms = platforms.all; + license = lib.licenses.gpl3; # You may need to verify the actual license + platforms = lib.platforms.all; maintainers = [ ]; }; } diff --git a/hydenix/sources/hyde-gallery.nix b/hydenix/sources/hyde-gallery.nix index 6d91d95a..41e09b91 100644 --- a/hydenix/sources/hyde-gallery.nix +++ b/hydenix/sources/hyde-gallery.nix @@ -17,10 +17,10 @@ pkgs.stdenv.mkDerivation { ''; # Add meta information - meta = with lib; { + meta = { description = "Gallery of themes for HyDE"; homepage = "https://github.com/HyDE-Project/hyde-gallery"; - license = licenses.mit; - platforms = platforms.all; + license = lib.licenses.mit; + platforms = lib.platforms.all; }; } diff --git a/hydenix/sources/overlay.nix b/hydenix/sources/overlay.nix index 3299c870..bcf0dfc8 100644 --- a/hydenix/sources/overlay.nix +++ b/hydenix/sources/overlay.nix @@ -16,9 +16,10 @@ let hyde = callPackage ./hyde.nix { inherit inputs; }; # Theme packages from the themes directory themes = callPackage ./themes/default.nix { }; - hyprland = inputs.hyprland.packages.${prev.system}.hyprland; - hypridle = inputs.hypridle.packages.${prev.system}.hypridle; - xdg-desktop-portal-hyprland = inputs.hyprland.packages.${prev.system}.xdg-desktop-portal-hyprland; + 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 diff --git a/hydenix/sources/pokego.nix b/hydenix/sources/pokego.nix index a822abf9..735a2318 100644 --- a/hydenix/sources/pokego.nix +++ b/hydenix/sources/pokego.nix @@ -24,16 +24,11 @@ buildGoModule rec { install -Dm644 completions/pokego.zsh "$out/share/zsh/site-functions/_pokego" ''; - meta = with lib; { + meta = { description = "Command-line tool that lets you display Pokémon sprites in color directly in your terminal"; homepage = "https://github.com/rubiin/pokego"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ - rubiin - jameskim0987 - vinibispo - ]; + license = lib.licenses.gpl3Only; mainProgram = "pokego"; - platforms = platforms.all; + platforms = lib.platforms.all; }; } diff --git a/hydenix/sources/python-pyamdgpuinfo.nix b/hydenix/sources/python-pyamdgpuinfo.nix index ff41ba02..2d7feaa7 100644 --- a/hydenix/sources/python-pyamdgpuinfo.nix +++ b/hydenix/sources/python-pyamdgpuinfo.nix @@ -32,11 +32,10 @@ python3.pkgs.buildPythonPackage rec { pythonImportsCheck = [ "pyamdgpuinfo" ]; - meta = with lib; { + meta = { description = "AMD GPU stats"; homepage = "https://github.com/mark9064/pyamdgpuinfo"; - license = licenses.gpl3Only; - maintainers = with maintainers; [ ]; - platforms = platforms.linux; + license = lib.licenses.gpl3Only; + platforms = lib.platforms.linux; }; } diff --git a/hydenix/sources/themes/AbyssGreen.nix b/hydenix/sources/themes/AbyssGreen.nix index 02fa46b4..dc3545c0 100644 --- a/hydenix/sources/themes/AbyssGreen.nix +++ b/hydenix/sources/themes/AbyssGreen.nix @@ -5,7 +5,7 @@ mkTheme rec { owner = "Itz-Abhishek-Tiwari"; repo = "AbyssGreen"; name = name; - rev = "93903b7d38bb2ab9e705016cc52cf62105d47dd7"; + rev = "main"; sha256 = "sha256-cosU+0wJSaQspcjYEZA5dMoZARz+8vQM+49Vyf2JvA8="; }; meta = { diff --git a/hydenix/sources/themes/Abyssal-Wave.nix b/hydenix/sources/themes/Abyssal-Wave.nix index 3c3415ee..351545a1 100644 --- a/hydenix/sources/themes/Abyssal-Wave.nix +++ b/hydenix/sources/themes/Abyssal-Wave.nix @@ -5,9 +5,9 @@ mkTheme rec { owner = "Itz-Abhishek-Tiwari"; repo = "Abyssal-Wave"; # locking commit - rev = "1f6eff0eb85ed05ac2c402d9e608cc70a3bb16a0"; + rev = "main"; name = name; - sha256 = "sha256-VpKPKgRQMQhDWmlrFignZ1tN69MB/cd8KBsAARMIKIo="; + sha256 = "sha256-JMYjNV2r6/lRwKNQFdz2HmZH7ZxLO0MdiO2iUi5R7As="; }; meta = { name = name; diff --git a/hydenix/sources/themes/Bad-Blood.nix b/hydenix/sources/themes/Bad-Blood.nix index ee8cdb8f..846bf4ff 100644 --- a/hydenix/sources/themes/Bad-Blood.nix +++ b/hydenix/sources/themes/Bad-Blood.nix @@ -5,8 +5,8 @@ mkTheme rec { owner = "HyDE-Project"; repo = "hyde-gallery"; name = name; - rev = "1ce31f0d5cffcfd649eea25177b4ff23422955fe"; - sha256 = "sha256-vWhQ6Mhf3NnXqgGKv38bEM478cJHSfRJtsMPAYqXSv8="; + rev = "Bad-Blood"; + sha256 = "sha256-MbHgUbKNN1o72QLPehdcyI22lwBDoWy2G58lgHBFeZ4="; }; meta = { description = "HyDE Theme: Bad Blood"; diff --git a/hydenix/sources/themes/Cat-Latte.nix b/hydenix/sources/themes/Cat-Latte.nix index 30543cd0..4af39b81 100644 --- a/hydenix/sources/themes/Cat-Latte.nix +++ b/hydenix/sources/themes/Cat-Latte.nix @@ -5,8 +5,8 @@ mkTheme rec { owner = "rishav12s"; repo = "Cat-Latte"; name = name; - rev = "1ee66b25ce7e8251e1af0556a9a486832bbef14c"; - sha256 = "sha256-RQ2M4CUQr9xziYRWHLM1zvA9OGZRc0kvfQwv+n4LX5Q="; + rev = "Cat-Latte"; + sha256 = "sha256-giarUq0eQS8qLfnpGIKQ6pw6sqAcaYohnxC305OkPLc="; }; meta = { description = "Better Catppuccin-Latte that fixes the inconsistencies of the official theme"; diff --git a/hydenix/sources/themes/Cosmic-Blue.nix b/hydenix/sources/themes/Cosmic-Blue.nix index 8c1fc5ff..cd5f732a 100644 --- a/hydenix/sources/themes/Cosmic-Blue.nix +++ b/hydenix/sources/themes/Cosmic-Blue.nix @@ -6,7 +6,7 @@ mkTheme rec { repo = "Cosmic-Blue"; rev = "main"; name = name; - sha256 = "sha256-K0RSnIjG0U8P3omoEVzkMfZMjearYde2nzy2sRWSHUY="; + sha256 = "sha256-ed9QxS4onniN+kABewK9kBRu9xFMvHU6em+QcP2GrFM="; }; meta = { description = "HyDE Theme: Cosmic Blue"; diff --git a/hydenix/sources/themes/Crimson-Blade.nix b/hydenix/sources/themes/Crimson-Blade.nix index 9e63a5f7..f4cd3cd2 100644 --- a/hydenix/sources/themes/Crimson-Blade.nix +++ b/hydenix/sources/themes/Crimson-Blade.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "cyb3rgh0u1"; repo = "Crimson-Blade"; - rev = "4b1afd9f62c4b64a7c35628c2e80fa632cb81735"; + rev = "main"; name = name; - sha256 = "sha256-PGE4H7hhaFnxv5TUyEO86bg3BM2A1nDsnBifpMxTBNY="; + sha256 = "sha256-ooQJN3XcE7ZyC2JIlLCC6jraQC9pnwjRSila0Z19G3I="; }; meta = { description = "HyDE Theme: A striking fusion of sharp elegance, cutting through the darkness with bold hues."; diff --git a/hydenix/sources/themes/Dracula.nix b/hydenix/sources/themes/Dracula.nix index ee7268b2..7aa8cb91 100644 --- a/hydenix/sources/themes/Dracula.nix +++ b/hydenix/sources/themes/Dracula.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "RAprogramm"; repo = "HyDe-Themes"; - rev = "fc51f05927f2fe9d90393fdf2debc1afaf429df6"; + rev = "Dracula"; name = name; - sha256 = "sha256-AaFFKyFasjGQuLtqJeZYWxrtAgqsW0FDVxB8KqZkkzM="; + sha256 = "sha256-0mfuP8jhPtQM4VCGXKhNStse0HePvT0eew4BNh7sOsE="; }; meta = { description = "HyDE Theme: Dracula"; diff --git a/hydenix/sources/themes/Green-Lush.nix b/hydenix/sources/themes/Green-Lush.nix index f14d19c0..2e7f3361 100644 --- a/hydenix/sources/themes/Green-Lush.nix +++ b/hydenix/sources/themes/Green-Lush.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "abenezerw"; repo = "Green-Lush"; - rev = "61a21b77a8b285b88f3cc5e1677dae64456dd370"; + rev = "main"; name = name; - sha256 = "sha256-Z0TdPlk5sPIAVZvoZeEbzs61XhTx5p6q9vm3hhhhY0o="; + sha256 = "sha256-4k3EXKyHkVPrqnZuviHpmSc+kNIVysZTGu0hd/XT+UA="; }; meta = { description = "HyDE Theme: Green Lush"; diff --git a/hydenix/sources/themes/Greenify.nix b/hydenix/sources/themes/Greenify.nix index 4ae68613..a1159286 100644 --- a/hydenix/sources/themes/Greenify.nix +++ b/hydenix/sources/themes/Greenify.nix @@ -5,8 +5,8 @@ mkTheme rec { owner = "mahaveergurjar"; repo = "Theme-Gallery"; name = name; - rev = "c7d369fb3cdac01572a8b21b077cd59b3379e878"; - sha256 = "sha256-5UhGEVAKCnjQ8pWZ2+zjaheWOM4lZ++5DqoUGXikNls="; + rev = "Greenify"; + sha256 = "sha256-jf8CilUopQBqAa3JBPl68S9P7Hg/87KpyEATbiOhg4A="; }; meta = { description = "HyDE Theme: Greenify"; diff --git a/hydenix/sources/themes/Gruvbox-Retro.nix b/hydenix/sources/themes/Gruvbox-Retro.nix index 2a5a949b..c3184a1a 100644 --- a/hydenix/sources/themes/Gruvbox-Retro.nix +++ b/hydenix/sources/themes/Gruvbox-Retro.nix @@ -6,7 +6,7 @@ mkTheme rec { repo = "hyde-themes"; rev = "Gruvbox-Retro"; name = name; - sha256 = "sha256-zbY//EeJb9QelM+NNtzH58QcD8LGmgxmwQUvQ4eb554="; + sha256 = "sha256-GJ3Y9b36mPZMzzIlBx6S862KS3mOB9ItCKIZf5qKIeo="; }; meta = { description = "HyDE Theme: Gruvbox Retro"; diff --git a/hydenix/sources/themes/Hack-the-Box.nix b/hydenix/sources/themes/Hack-the-Box.nix index 98dfc9da..efc08b84 100644 --- a/hydenix/sources/themes/Hack-the-Box.nix +++ b/hydenix/sources/themes/Hack-the-Box.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "36fa09171cd1d14156086542df020369b9f8b8fa"; + rev = "Hack-the-Box"; name = name; - sha256 = "sha256-ww7LoUVHlJhYUE2VSguhE7OZblx0hbQp6IaWAJSLcy4="; + sha256 = "sha256-VMDs9fnXX0v7iGSftA19UXxANY1sRjrK5ipMsfjU7Tg="; }; meta = { description = "HyDE Theme: Hack the Box"; diff --git a/hydenix/sources/themes/Ice-Age.nix b/hydenix/sources/themes/Ice-Age.nix index fd4b5e9d..6cebeb00 100644 --- a/hydenix/sources/themes/Ice-Age.nix +++ b/hydenix/sources/themes/Ice-Age.nix @@ -4,13 +4,13 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "saber-88"; repo = "Ice-Age"; - rev = "56564067e8bf74416eaaf68e8c6730e4c381c67a"; + rev = "main"; name = name; - sha256 = "sha256-44l7UTHrCvvJL3TO6hk/SV2fxB9MXJtmSM5S56w8xVQ="; + sha256 = "sha256-hS3PwjzRe7JUaB5eQ6AAS0OUg6fajictQrNdXkpVynw="; }; meta = { description = "HyDE Theme: Ice Age"; homepage = "https://github.com/saber-88/Ice-Age"; - priority = 10; + priority = 15; }; } diff --git a/hydenix/sources/themes/Mac-OS.nix b/hydenix/sources/themes/Mac-OS.nix index 82f0b60f..cdfcf705 100644 --- a/hydenix/sources/themes/Mac-OS.nix +++ b/hydenix/sources/themes/Mac-OS.nix @@ -4,13 +4,13 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "1701be171600db27b04f8bf704dc37efe36cd282"; + rev = "Mac-Os"; name = name; - sha256 = "sha256-J8H+obYoePdAwkOA9NLwbrz1ufKrU8qQFVKU9Ah8qMM="; + sha256 = "sha256-QmM3JaSLCQn9eqKqSNL13b2DrsxIGiCztbxobsHbbq0="; }; meta = { description = "HyDE Theme: Mac OS"; - homepage = "https://github.com/HyDE-Project/hyde-gallery/tree/1701be171600db27b04f8bf704dc37efe36cd282"; + 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 7a0fb83f..81790bae 100644 --- a/hydenix/sources/themes/Material-Sakura.nix +++ b/hydenix/sources/themes/Material-Sakura.nix @@ -11,6 +11,6 @@ mkTheme rec { meta = { description = "HyDE Theme: Material Sakura"; homepage = "https://github.com/HyDE-Project/hyde-themes/tree/Material-Sakura"; - priority = 100; + priority = 95; }; } diff --git a/hydenix/sources/themes/Monokai.nix b/hydenix/sources/themes/Monokai.nix index 52b084f5..cd35dbb2 100644 --- a/hydenix/sources/themes/Monokai.nix +++ b/hydenix/sources/themes/Monokai.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "mahaveergurjar"; repo = "Theme-Gallery"; - rev = "2c4ecf9e32753da36832d2aa9f32908a92caab15"; + rev = "Monokai"; name = name; - sha256 = "sha256-vxIm5Gasnv8xooGnFNFVmZJd7o2YkOORJD2pIQFZrhA="; + sha256 = "sha256-bwjFzGVemYCU9zOT7v5gVvnrzsxZ09YlYt87P73nA3I="; }; meta = { description = "HyDE Theme: Monokai"; diff --git a/hydenix/sources/themes/Monterey-Frost.nix b/hydenix/sources/themes/Monterey-Frost.nix index ad3085b1..9b84f85a 100644 --- a/hydenix/sources/themes/Monterey-Frost.nix +++ b/hydenix/sources/themes/Monterey-Frost.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Monterey-Frost"; - rev = "256fe4ab744a3e4682b014250c472dcc38fca6d4"; + rev = "Monterey-Frost"; name = name; - sha256 = "sha256-II0UBeqTK2TPeXvY4HuTsmqRkGMrjq5jSSVWvR/hm8M="; + sha256 = "sha256-ECG7wyIa0RdZteTEdQjpVjhbf62XXz0rW3Ea494461E="; }; meta = { description = "Mac-OS inspired dark theme"; diff --git a/hydenix/sources/themes/One-Dark.nix b/hydenix/sources/themes/One-Dark.nix index efef6270..87e6e4f3 100644 --- a/hydenix/sources/themes/One-Dark.nix +++ b/hydenix/sources/themes/One-Dark.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "RAprogramm"; repo = "HyDe-Themes"; - rev = "4109ebca756257b63f22b2b74a5597e1650f3434"; + rev = "One-Dark"; name = name; sha256 = "sha256-j4KXbLb7gvVNCrdqMscsIinhBZoBp4oIzEbwws4fstU="; }; diff --git a/hydenix/sources/themes/Oxo-Carbon.nix b/hydenix/sources/themes/Oxo-Carbon.nix index 81caa59f..d3ea2534 100644 --- a/hydenix/sources/themes/Oxo-Carbon.nix +++ b/hydenix/sources/themes/Oxo-Carbon.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Oxo-Carbon"; - rev = "91eff63b9ba2b0a2ad002661c3e7f327237e4d02"; + rev = "Oxo-Carbon"; name = name; - sha256 = "sha256-qxqdP5rInvHy2Irm6pxlujhSPaVm+i4YoQ2/4dS4vhw="; + sha256 = "sha256-w+7Gky7L2crF4F7myhA64fXgjoWulLb/hWBaI6OMwBo="; }; meta = { description = "HyDE Theme: Oxo Carbon"; diff --git a/hydenix/sources/themes/Paranoid-Sweet.nix b/hydenix/sources/themes/Paranoid-Sweet.nix index 0161deb4..93be2960 100644 --- a/hydenix/sources/themes/Paranoid-Sweet.nix +++ b/hydenix/sources/themes/Paranoid-Sweet.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Paranoid-Sweet"; - rev = "668f6a5a403416e5f50c1924ee5667bcccd2c1af"; + rev = "Paranoid-Sweet"; name = name; - sha256 = "sha256-0FhznHsg2ov4XYVvhY0y5Uy45s2nWMi8JZMQPBUvpPg="; + sha256 = "sha256-j4fjX2fWSBajNKFSovVsy+FydUcq5FEtk6B9iiDURAs="; }; meta = { description = "HyDE Theme: Paranoid Sweet"; diff --git a/hydenix/sources/themes/Piece-Of-Mind.nix b/hydenix/sources/themes/Peace-Of-Mind.nix similarity index 100% rename from hydenix/sources/themes/Piece-Of-Mind.nix rename to hydenix/sources/themes/Peace-Of-Mind.nix diff --git a/hydenix/sources/themes/Pixel-Dream.nix b/hydenix/sources/themes/Pixel-Dream.nix index 325c6ddc..bbcfb1a2 100644 --- a/hydenix/sources/themes/Pixel-Dream.nix +++ b/hydenix/sources/themes/Pixel-Dream.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Pixel-Dream"; - rev = "c7765210fe3610742ccb955278f2f3a2ebe3f0d9"; + rev = "Pixel-Dream"; name = name; - sha256 = "sha256-vPtWjTWHttUPJBtxcJY9jiBrP6jH/r0IIwGmmoINQyw="; + sha256 = "sha256-uuqktN19CBY8EDleC+8U/vXrPgwH/lStS8G6hyN+fWE="; }; meta = { description = "Pixel Art inspired theme"; diff --git a/hydenix/sources/themes/Rain-Dark.nix b/hydenix/sources/themes/Rain-Dark.nix index 28e1a954..042fa5a0 100644 --- a/hydenix/sources/themes/Rain-Dark.nix +++ b/hydenix/sources/themes/Rain-Dark.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Rain-Dark"; - rev = "385d92ed53bc0190f7f8712eb541e6a703f6961f"; + rev = "Rain-Dark"; name = name; - sha256 = "sha256-1EXbRmCWrcY0NKD9iL+xGmm7ddqLFf4K7ibVSBm2Tuc="; + sha256 = "sha256-zv66a/fh3xqOIYVD6OUi4ZEpn3L29J2vvBnPBjeQW7w="; }; meta = { description = "HyDE Theme: Rain Dark"; diff --git a/hydenix/sources/themes/Red-Stone.nix b/hydenix/sources/themes/Red-Stone.nix index 1343fbde..f94e3f47 100644 --- a/hydenix/sources/themes/Red-Stone.nix +++ b/hydenix/sources/themes/Red-Stone.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "mahaveergurjar"; repo = "Theme-Gallery"; - rev = "371030f2236f1713d084a4fc90b479fa821b0067"; + rev = "Red_Stone"; name = name; - sha256 = "sha256-BNvAQ8TulTCex0cF8cvaM2NJc5zeKARTYJLO3nQD1n4="; + sha256 = "sha256-cbg7hBjXg0xTRCZqbo1UUQM7zNoQHEQO6it2VkahYqI="; }; meta = { description = "HyDE Theme: Red Stone"; diff --git a/hydenix/sources/themes/Scarlet-Night.nix b/hydenix/sources/themes/Scarlet-Night.nix index 50cd8c3d..88a1a47b 100644 --- a/hydenix/sources/themes/Scarlet-Night.nix +++ b/hydenix/sources/themes/Scarlet-Night.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "abenezerw"; repo = "Scarlet-Night"; - rev = "1c80ed42231de2afcda28e48793e395e3f0955d2"; + rev = "main"; name = name; - sha256 = "sha256-RtZQpL0ZzjsLOT812JCnhbW6aIya+6I9FO+fCxWIPRY="; + sha256 = "sha256-+RNKfwc8mfgSnNifMcxlHyBTzDvY5DXAJeNKbJsD8AU="; }; meta = { description = "HyDE Theme: Scarlet Night"; diff --git a/hydenix/sources/themes/Sci-fi.nix b/hydenix/sources/themes/Sci-fi.nix index d7a6af55..1d86842c 100644 --- a/hydenix/sources/themes/Sci-fi.nix +++ b/hydenix/sources/themes/Sci-fi.nix @@ -4,7 +4,7 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "KaranRaval123"; repo = "Sci-fi"; - rev = "52091e9658319a4d0da0bc19c57f55f3c1b539f0"; + rev = "main"; name = name; sha256 = "sha256-gnAvPuHBfH+PspSxkzOA2jIIHox2Fi+nMSsoZAJHGlw="; }; diff --git a/hydenix/sources/themes/Solarized-Dark.nix b/hydenix/sources/themes/Solarized-Dark.nix index 19c43a23..84f36a26 100644 --- a/hydenix/sources/themes/Solarized-Dark.nix +++ b/hydenix/sources/themes/Solarized-Dark.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Solarized-Dark"; - rev = "0222e6a9efc5f1cbdffe263d7cc523efae659e6a"; + rev = "Solarized-Dark"; name = name; - sha256 = "sha256-hZb94uJt5XuTJToL+ljQTXOBBKBCkrytD7jwV8Ck7ug="; + sha256 = "sha256-naLPzGyGK3jQSILdP5vkG2coEOqkQ4Q/dHUBJlUa2pI="; }; meta = { description = "HyDE Theme: Solarized Dark"; diff --git a/hydenix/sources/themes/Synth-Wave.nix b/hydenix/sources/themes/Synth-Wave.nix index 51a41d6f..6c6e3281 100644 --- a/hydenix/sources/themes/Synth-Wave.nix +++ b/hydenix/sources/themes/Synth-Wave.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "61c389a0ba3c0858e000436a359385389cda7f44"; + rev = "Synth-Wave"; name = name; - sha256 = "sha256-2qkR61CaUyHry/clQb7WVMSt4rV+4c4yElRxqSwF73Y="; + sha256 = "sha256-/r9vPTzGrZOx1EhtfxPZFIax08O9EY1PyB3l5XKKtXo="; }; meta = { description = "HyDE Theme: Synth Wave"; diff --git a/hydenix/sources/themes/Tokyo-Night.nix b/hydenix/sources/themes/Tokyo-Night.nix index 8930ca50..30c5adeb 100644 --- a/hydenix/sources/themes/Tokyo-Night.nix +++ b/hydenix/sources/themes/Tokyo-Night.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-themes"; - rev = "da8c38b7a6927eb585203e28fb8e403203578fe5"; + rev = "Tokyo-Night"; name = name; - sha256 = "sha256-YL91+Q7CIGT+Ams9FOdw343OgQ19NWz6GJZEG37Gg9A="; + sha256 = "sha256-ntM6cfHI4BBiFkp1ylqDjZxAqefV4x/rG0A6gqD1jR4="; }; meta = { description = "HyDE Theme: Tokyo Night"; diff --git a/hydenix/sources/themes/Vanta-Black.nix b/hydenix/sources/themes/Vanta-Black.nix index 2f62fd9a..d088956a 100644 --- a/hydenix/sources/themes/Vanta-Black.nix +++ b/hydenix/sources/themes/Vanta-Black.nix @@ -4,13 +4,13 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "rishav12s"; repo = "Vanta-Black"; - rev = "e8ef0d6b8b1a13e7b471f3c803bb96bd46cb4837"; + rev = "Vanta-Black"; name = name; - sha256 = "sha256-d62aHzryeBnrSvam0K3GGRdIu2ViJXoVws+YEY6ZHA0="; + sha256 = "sha256-4UZSpJPIzs2ZLQMt1QQz7VoyDW4jiOWZ9Xp1yU4k4Zs="; }; meta = { description = "HyDE Theme: Vanta Black inspired theme having the deepest blacks"; homepage = "https://github.com/rishav12s/Vanta-Black"; - priority = 10; + priority = 100; }; } diff --git a/hydenix/sources/themes/Windows-11.nix b/hydenix/sources/themes/Windows-11.nix index e215995f..9a77d675 100644 --- a/hydenix/sources/themes/Windows-11.nix +++ b/hydenix/sources/themes/Windows-11.nix @@ -4,9 +4,9 @@ mkTheme rec { src = pkgs.fetchFromGitHub { owner = "HyDE-Project"; repo = "hyde-gallery"; - rev = "ea30c190b526555c06b6c716d0c062f48a996897"; + rev = "Windows-11"; name = name; - sha256 = "sha256-QG2pGDT6G9fuqiCErSf1cTOdRNI5WDy+1yyHGXDsYoQ="; + sha256 = "sha256-rAg4iPOD8sRvKX32N9+8DekwvvmizFC9Q2QwWA7mKz0="; }; meta = { description = "HyDE Theme: Windows 11"; diff --git a/hydenix/sources/themes/default.nix b/hydenix/sources/themes/default.nix index 53d3de18..28bebd61 100644 --- a/hydenix/sources/themes/default.nix +++ b/hydenix/sources/themes/default.nix @@ -40,7 +40,7 @@ in "Oxo Carbon" = callTheme ./Oxo-Carbon.nix; "Paranoid Sweet" = callTheme ./Paranoid-Sweet.nix; "Pixel Dream" = callTheme ./Pixel-Dream.nix; - "Piece Of Mind" = callTheme ./Piece-Of-Mind.nix; + "Peace Of Mind" = callTheme ./Peace-Of-Mind.nix; "Rain Dark" = callTheme ./Rain-Dark.nix; "Red Stone" = callTheme ./Red-Stone.nix; "Rosé Pine" = callTheme ./Rose-Pine.nix; diff --git a/hydenix/sources/themes/utils/mkTheme.nix b/hydenix/sources/themes/utils/mkTheme.nix index 3f201e6f..b233fcaf 100644 --- a/hydenix/sources/themes/utils/mkTheme.nix +++ b/hydenix/sources/themes/utils/mkTheme.nix @@ -111,7 +111,6 @@ let runHook postInstall ''; - # Add allowBrokenSymlinks to prevent build failures due to broken symlinks meta = with pkgs.lib; { inherit (meta) description homepage priority; license = licenses.mit; diff --git a/hydenix/sources/themes/utils/update-themes.sh b/hydenix/sources/themes/utils/update-themes.sh new file mode 100755 index 00000000..143859b3 --- /dev/null +++ b/hydenix/sources/themes/utils/update-themes.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nix-prefetch-git gnused + +set -eo pipefail + +THEMES_DIR="hydenix/sources/themes" + +# Find all .nix files in the themes directory, excluding default.nix and files in utils/ +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 + 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_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 + echo "Warning: Could not extract owner, repo, or rev from $NIX_FILE. Skipping." + continue + fi + + echo " Owner: $OWNER, Repo: $REPO, Rev: $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 + fi + + if [ "$CURRENT_SHA256" == "$NEW_SHA256" ]; then + echo " Theme $NAME is already up to date. Skipping." + else + echo " Updating $NAME: sha256 $CURRENT_SHA256 -> $NEW_SHA256" + # Update only the sha256 line + sed -i -E "s|^([[:space:]]*)sha256 = .*$|\1sha256 = \"$NEW_SHA256\";|" "$NIX_FILE" + echo " Updated $NIX_FILE" + fi +done + +echo "Theme update process completed." diff --git a/lib/config/home.nix b/lib/config/home.nix index 8ae4dcb6..ff931371 100644 --- a/lib/config/home.nix +++ b/lib/config/home.nix @@ -43,7 +43,7 @@ "Oxo Carbon" "Paranoid Sweet" "Pixel Dream" - "Piece Of Mind" + "Peace Of Mind" "Rain Dark" "Red Stone" "Rosé Pine" @@ -53,7 +53,8 @@ "Synth Wave" "Tundra" "Tokyo Night" - "Vanta Black" + #FIXME: theme conflicts with material sakura that wont fix + # "Vanta Black" "Windows 11" "Another World" diff --git a/template/docs/options.md b/template/docs/options.md index 35c9d7ab..76960fb4 100644 --- a/template/docs/options.md +++ b/template/docs/options.md @@ -140,19 +140,20 @@ below are the default options for hydenix. they are in *object format* and any o # Animation configurations animations = { enable = true; # enable animation configurations - preset = "standard"; # animation preset: "LimeFrenzy", "classic", "diablo-1", "diablo-2", "disable", "dynamic", "end4", "fast", "high", "ja", "me-1", "me-2", "minimal-1", "minimal-2", "moving", "optimized", "standard", "vertical" + preset = "standard"; # string from override or default: "standard" # or "LimeFrenzy", "classic", "diablo-1", "diablo-2", "disable", "dynamic", "end4", "fast", "high", "ja", "me-1", "me-2", "minimal-1", "minimal-2", "moving", "optimized", "standard", "vertical" extraConfig = ""; # additional animation configuration overrides = { }; # override specific animation files by name }; # Shader configurations shaders = { enable = true; # enable shader configurations + active = "disable"; # string from override or default: "disable" # or "blue-light-filter", "color-vision", "custom", "grayscale", "invert-colors", "oled", "oled-saver", "paper", "vibrance", "wallbash" overrides = { }; # override or add custom shaders }; # Workflow configurations workflows = { enable = true; # enable workflow configurations - active = "default"; # active workflow preset: "default", "editing", "gaming", "powersaver", "snappy" + active = "default"; # string from override or default: "default" # or "editing", "gaming", "powersaver", "snappy" overrides = { }; # override or add custom workflows }; # Hypridle configurations