#1867 test: add a regression suite and a CI job to run it - #1871
Conversation
|
Warning Review limit reached
Next review available in: 11 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (18)
📝 WalkthroughWalkthroughAdds automated structural checks for binds, dot metafiles, Lua syntax, and shell scripts, wires them into GitHub Actions, improves Hyprland bind deduplication and keypad mappings, and corrects several shell script interpreter and expansion forms. ChangesValidation and bind quality
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant GitHub Actions
participant tests/run.sh
participant Test cases
participant Repository
GitHub Actions->>tests/run.sh: execute test suite
tests/run.sh->>Test cases: discover and run test scripts
Test cases->>Repository: inspect configuration and scripts
Repository-->>Test cases: validation results
Test cases-->>tests/run.sh: pass or fail status
tests/run.sh-->>GitHub Actions: workflow status
Possibly related issues
Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/test.yml:
- Line 17: Update the actions/checkout@v4 step to set persist-credentials to
false, and ensure the workflow job permissions remain limited to contents: read
unless writable token access is explicitly required.
In `@Configs/.local/share/hypr/lua/hyde/binds.lua`:
- Around line 57-65: Update the modifier normalization logic before sorting so
duplicate normalized entries are removed, ensuring inputs such as repeated CTRL
produce the same canonical binding as a single CTRL. Preserve alias
normalization, deterministic sorting, and appending the uppercased key in the
existing return flow.
In `@tests/python/check_dots.py`:
- Around line 75-77: Update the source_root validation in the table-checking
logic to first require non-null values to be strings, then resolve REPO_ROOT /
source_root and reject any path whose resolved location escapes REPO_ROOT,
including absolute paths and parent-directory traversal; retain the
missing-directory failure for valid in-repository paths.
In `@tests/run.sh`:
- Around line 21-35: Update the test discovery and execution loop around
case_path so only regular executable test_*.sh files are included by checking
both -f and -x, then invoke each selected case directly instead of through sh,
preserving its shebang behavior.
In `@tests/test_shell.sh`:
- Around line 21-26: Update the ShellCheck invocation in the report block to
capture its exit status while preserving the captured output, then fail when
either xargs/ShellCheck returns non-zero or report is non-empty. Keep printing
report lines before calling fail when findings are present, and ensure the
status check distinguishes command failure from ShellCheck findings.
- Around line 7-13: The script-parsing loop currently validates every file with
bash regardless of its declared interpreter. Update the loop around scripts and
file to read each script’s shebang and run sh -n for /bin/sh or /usr/bin/env sh
declarations, otherwise bash -n for Bash declarations, preserving the existing
failure message and count behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 8182dfb2-90da-4987-b2b6-44057f5091b9
📒 Files selected for processing (15)
.github/workflows/test.ymlConfigs/.config/uwsm/env.d/01-gpu.shConfigs/.local/lib/hyde/shutils/ocr.shConfigs/.local/lib/hyde/wallpaper.kon.shConfigs/.local/share/hypr/lua/hyde/binds.luaConfigs/.local/share/hypr/lua/key_binds.luatests/README.mdtests/lib/common.shtests/lua/bind_harness.luatests/python/check_dots.pytests/run.shtests/test_binds.shtests/test_dots.shtests/test_lua_syntax.shtests/test_shell.sh
| for case_path in "$tests_dir"/test_*.sh; do | ||
| [ -f "$case_path" ] || continue | ||
|
|
||
| case_name=$(basename "$case_path" .sh) | ||
| if [ -n "$filter" ]; then | ||
| case "$case_name" in | ||
| *"$filter"*) ;; | ||
| *) continue ;; | ||
| esac | ||
| fi | ||
|
|
||
| total=$((total + 1)) | ||
| printf '%s\n' "$case_name" | ||
|
|
||
| if sh "$case_path"; then |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Honor the documented executable-test contract.
The runner executes every regular test_*.sh via sh, including non-executable files and ignoring an executable test’s shebang. Filter on -x and execute the case directly.
Proposed fix
for case_path in "$tests_dir"/test_*.sh; do
- [ -f "$case_path" ] || continue
+ [ -f "$case_path" ] && [ -x "$case_path" ] || continue
...
- if sh "$case_path"; then
+ if "$case_path"; then📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| for case_path in "$tests_dir"/test_*.sh; do | |
| [ -f "$case_path" ] || continue | |
| case_name=$(basename "$case_path" .sh) | |
| if [ -n "$filter" ]; then | |
| case "$case_name" in | |
| *"$filter"*) ;; | |
| *) continue ;; | |
| esac | |
| fi | |
| total=$((total + 1)) | |
| printf '%s\n' "$case_name" | |
| if sh "$case_path"; then | |
| for case_path in "$tests_dir"/test_*.sh; do | |
| [ -f "$case_path" ] && [ -x "$case_path" ] || continue | |
| case_name=$(basename "$case_path" .sh) | |
| if [ -n "$filter" ]; then | |
| case "$case_name" in | |
| *"$filter"*) ;; | |
| *) continue ;; | |
| esac | |
| fi | |
| total=$((total + 1)) | |
| printf '%s\n' "$case_name" | |
| if "$case_path"; then |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@tests/run.sh` around lines 21 - 35, Update the test discovery and execution
loop around case_path so only regular executable test_*.sh files are included by
checking both -f and -x, then invoke each selected case directly instead of
through sh, preserving its shebang behavior.
There was a problem hiding this comment.
Done. An executable case runs directly under its own shebang; a non-executable one still runs under sh so a forgotten chmod does not silently drop coverage.
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '--- tests/run.sh ---'
nl -ba tests/run.sh | sed -n '1,100p'Length of output: 472
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '1,100p' tests/run.shLength of output: 1689
@RAprogramm, verified: executable cases now run directly under their own shebang, while non-executable regular files fall back to sh as intended. That is a reasonable coverage-preserving alternative to the original executable-only proposal.
One small follow-up remains: tests/run.sh still documents a case as “any executable tests/test_*.sh,” which no longer matches the implementation. Please update that wording (and the corresponding tests/README.md wording, if present) to describe the fallback behavior.
|
please resolve |
|
Resolved — rebased onto dev after #1870 landed, conflict is gone. While doing that CI caught something unrelated to the suite: checkout fails on this repo because the tree carries two gitlinks with no Neither is referenced anywhere — Also addressed the bot: workflow permissions and CI is green. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
I usually avoid adding tests ( Before I have a lot of time reading any lapses). I thought I can remember what I wrote. But now I think adding test is fine for me and for new users. |
|
Thanks for merging, and for the honest read on tests. The suite is deliberately cheap to live with: no framework, a case is one executable file in It already runs on the other open PRs and passes there, so nothing extra is needed on your side. |
|
Appreciated! |
* feat: add wayle bar support as alternative to waybar - Add wayle to session.py known bars for clean session management - Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle - Make waybar.dcol conditional: skip waybar update when not running * dev * docs: add @0xGeN02 to contributors * feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst * feat: add wallbash-to-wayle palette bridge for dynamic theming Uses dcol_* environment variables passed by wallbash's fn_wallbash to set wayle palette colors on every wallpaper/theme change. Files placed in .config/hyde/wallbash/ (non-core component). * fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741) When running `hyde-shell pypr toggle console`, the `run_pypr()` function used `${*:-help}` to capture arguments into a scalar variable. When passed to `pypr "${message[@]}"`, the scalar expands as a single string "toggle console" instead of two separate args. The pypr client then normalizes spaces to underscores, looking up "toggle_console" instead of the "toggle" command with "console" as its argument. Additionally, socket direct writes via nc/socat/ncat lacked a trailing newline, which the pyprland daemon's readline() expects. Fix by using a bash array (`local -a msg=("$@")`) to preserve proper word-splitting, and adding `\n` to socket writes. # Pull Request ## Description Please read these instructions and remove unnecessary text. - Try to include a summary of the changes and which issue is fixed. - Also include relevant motivation and context (if applicable). - Make sure to make PR against dev and not the master - List any dependencies that are required for this change. (e.g., packages or other PRs) - Provide a link if there is an issue related to this pull request. e.g., Fixes # (issue) - Please add Reviewers, Assignees, Labels, Projects, and Milestones to the PR. (if applicable) ## Type of change Please put an `x` in the boxes that apply: - [ ] **Bug fix** (non-breaking change which fixes an issue) - [ ] **New feature** (non-breaking change which adds functionality) - [ ] **Breaking change** (fix or feature that would cause existing functionality to not work as expected) - [ ] **Documentation update** (non-breaking change; modified files are limited to the documentations) - [ ] **Technical debt** (a code change that does not fix a bug or add a feature but makes something clearer for devs) - [ ] **Other** (provide details below) ## Checklist Please put an `x` in the boxes that apply: - [ ] I have read the [CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md) document. - [ ] My code follows the code style of this project. - [ ] My commit message follows the [commit guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md). - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - [ ] I have added a changelog entry. - [ ] I have added necessary comments/documentation to my code. - [ ] I have added tests to cover my changes. - [ ] I have tested my code locally and it works as expected. - [ ] All new and existing tests passed. ## Screenshots (if appropriate) ## Additional context Add any other context about the problem here. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Enhanced socket message handling for more reliable and consistent command argument processing across all operations. * Improved default command behavior to automatically display helpful information when commands are executed without any arguments provided. * Optimized internal message formatting and delivery while maintaining complete compatibility with existing fallback communication mechanisms for continued system reliability and operational stability. [](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741) <!-- end of auto-generated comment: release notes by coderabbit.ai --> * Remove * fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742) * fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781) * docs: sync Chinese README with English version (#1779) * fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786) The PipeWire detection fallback was written as `|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's value as a command with `==` and `true` as arguments instead of comparing it. On PulseAudio-only systems (where the pactl grep does not short-circuit) every invocation printed "==: command not found" when the variable was unset, and setting it to "true" only worked by accident of running /usr/bin/true. Wrap the check in [[ ]] so it is an actual string comparison. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix(pm): restore module header position in zypper.py (#1784) count_updates and list_updates were inserted above the module docstring and the `from __future__ import annotations` line. Python requires __future__ imports at the top of the file, so the module raised SyntaxError on import, breaking `hyde-shell pm` on openSUSE. Move both functions to the end of the file, matching the layout of the other manager modules. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * Fix/globalcontrol wallpaper validation (#1785) * fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf The first fallback config path in get_hyprConf was the literal string "XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently skipped (the grep error is suppressed by 2>/dev/null). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(wallpaper): validate nonexistent path passed to --set The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`, so a non-empty path to a missing file skipped validation entirely and failed later in get_hashmap with a confusing "No image found in any source" error. Use || so both empty and nonexistent paths report "Wallpaper not found" as intended. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823) Co-authored-by: NoistNT <noistnt@users.noreply.github.com> * Lua (#1755) * lua * Added lua configs * Added lua support for Scripts * [for testing ] Added deez dots manifest files * [for testing ] Added deez dots manifest files * some migration logic for zsh * Added the partial deps list * Removed old hyprlang. * added defualt blnk hyprland.lua * Added hyprland error when wallbash for hyprland is not yet generated * Added hyprland error when wallbash for hyprland is not yet generated * Clean up all deprecated scripts * fixing session management logic for newer hyprland * reload on on common --reload and better keb hint UX and alt tab behavior * altab implementation and better binds handling * fix hyprlock * fix dolphin * fix dolphin * move kdeglobals to hyde bundle * cleanup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * anim * fix batteerynotify dameon * resolves some issues * no anim on selection layer * exposes hyprland.anim.duration_scale for animation speed(duration) control * Silent fail when missing toml parser * fix altab * fix altab * y * app2unit wrapper for non systemd * kitty * some adjustments * added pm agnostic system update ui * cleanup * fix sys update * pm * fix: gobject theming * Fix waybar, move dconf to use lua lgi * make keepass and bitwarden float * some foundation for i18n , docs etc for scripts * todo * fix screenshot conflict * org * some handling on fresh install * almost * Update Configs/.local/bin/hyde-shell Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/luautils/selector/rofi.lua Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/keybinds_hint.sh Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/compositor/hyprland.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/plugins/brave.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/shell/activate.fish Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix shell activations * uwsm hyprland env * fix session hyprland compositor * fix luau hyprtils rofi helper * fix no regex alternation on lua. * fix lua runtime * fix json output on lua * fix list builtin in completions --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Lua (#1835) * lua * Added lua configs * Added lua support for Scripts * [for testing ] Added deez dots manifest files * [for testing ] Added deez dots manifest files * some migration logic for zsh * Added the partial deps list * Removed old hyprlang. * added defualt blnk hyprland.lua * Added hyprland error when wallbash for hyprland is not yet generated * Added hyprland error when wallbash for hyprland is not yet generated * Clean up all deprecated scripts * fixing session management logic for newer hyprland * reload on on common --reload and better keb hint UX and alt tab behavior * altab implementation and better binds handling * fix hyprlock * fix dolphin * fix dolphin * move kdeglobals to hyde bundle * cleanup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * anim * fix batteerynotify dameon * resolves some issues * no anim on selection layer * exposes hyprland.anim.duration_scale for animation speed(duration) control * Silent fail when missing toml parser * fix altab * fix altab * y * app2unit wrapper for non systemd * kitty * some adjustments * added pm agnostic system update ui * cleanup * fix sys update * pm * fix: gobject theming * Fix waybar, move dconf to use lua lgi * make keepass and bitwarden float * some foundation for i18n , docs etc for scripts * todo * fix screenshot conflict * org * some handling on fresh install * almost * Update Configs/.local/bin/hyde-shell Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/luautils/selector/rofi.lua Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/keybinds_hint.sh Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/compositor/hyprland.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/plugins/brave.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/shell/activate.fish Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix shell activations * uwsm hyprland env * fix session hyprland compositor * fix luau hyprtils rofi helper * fix no regex alternation on lua. * fix lua runtime * fix json output on lua * fix list builtin in completions * safe theme lua state generation --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * pr * waybar: fix `on-scroll` behaviour of `hyprland/workspaces` module with Lua dispatchers (#1850) * waybar: fix `on-scroll` behaviour * waybar: add changelog entry * fix: resolve lua before shell and retire superseded scripts (#1860) * #1854 fix: resolve lua before shell and retire superseded scripts * #1854 fix: name migration after the tagged release * #1854 fix: report migration failures and keep existing backups --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: add `luarocks` to core packages (#1851) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * chore: refresh outdated dependency pins (#1861) #1856 chore: refresh outdated dependency pins Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * docs: align release version across manifest and changelog (#1862) #1857 docs: align release version across manifest and changelog Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: expand variables in shader source includes (#1859) * #1853 fix: expand variables in shader source includes * #1853 fix: treat empty xdg directory lists as unset --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: adapt other waybar variants for hyprland lua (#1865) This commit also disables [tooltip](Alexays/Waybar#3017), it is quite useless if unconfigured Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1866 fix: deduplicate binds by resolved combo and drop unreachable ones (#1870) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1867 test: add a regression suite and a CI job to run it (#1871) * #1867 test: add a regression suite and a CI job to run it * #1867 test: check touchpad gestures alongside keybinds * fix: add luacheck for linting lua files (#1880) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: resolve Lua migration regressions (#1879) * fix: resolve Lua migration regressions Restore the documented HyDE keymap in the Lua configuration, fix the all-monitors screenshot action, and isolate app2unit from unrelated DEBUG values. Add regression coverage for the public shortcuts and app wrapper environment. * test: address app wrapper review feedback Apply scoped debug defaults before selecting the systemd or direct execution path. Exercise xdg-terminal-exec without systemd and extend the restored keybinding assertions. * test: preserve explicit app debug settings Cover caller-provided APP2UNIT_DEBUG and XTE_DEBUG values in addition to the unrelated DEBUG fallback regression. * fix: launch Lua battery notifier from schema Keep generated desktop startup defaults aligned with the Lua implementation installed by the migration. Add regression coverage so removed shell commands cannot return through generated schema artifacts. * fix: use corrected upstream Grimblast selector Replace the stale experimental toplevel branch with upstream main, which performs a single slurp selection and avoids combining monitor geometry with window capture. Guard the installer source with the dotfile regression test. * fix: render Satty previews with GTK GL Default Satty to the compatible GSK GL renderer when launched from Hyprland while preserving explicit user overrides. Add wrapper regression coverage. --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: provision lua runtime and repair fish activation (#1858) * #1852 fix: provision lua runtime and repair fish activation * #1852 fix: unify lua resolution and isolate the runtime fallback * #1872 fix: drop the legacy dot and repair dangling metafile paths (#1881) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1882 fix: harden the metafile check and exempt remote sources (#1883) * #1882 fix: harden the metafile check and exempt remote sources * #1882 fix: validate sources and survive symlink loops * #1856 chore: refresh Python and Lua dependency pins (#1888) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1875 fix: declare bash in pm.sh and check the sh dialect (#1887) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1891 docs: describe the Lua keybind configuration and add a transition guide (#1892) * #1891 docs: describe the Lua keybind configuration and add a transition guide * #1891 docs: qualify the override rule and expand the entry point path --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1889 fix: point shipped callers at files that still exist (#1890) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> --------- Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com> Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com> Co-authored-by: yun <chenzm39@gmail.com> Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com> Co-authored-by: BigDawnGhost <yelouis231589@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com> Co-authored-by: NoistNT <noistnt@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Ilya Bogdanov <zeerayne1337@gmail.com> Co-authored-by: RA <70325462+RAprogramm@users.noreply.github.com> Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com> Co-authored-by: Jared Bautista <dylanjaredbautistasierra03@gmail.com>
* feat: add wayle bar support as alternative to waybar - Add wayle to session.py known bars for clean session management - Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle - Make waybar.dcol conditional: skip waybar update when not running * dev * docs: add @0xGeN02 to contributors * feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst * feat: add wallbash-to-wayle palette bridge for dynamic theming Uses dcol_* environment variables passed by wallbash's fn_wallbash to set wayle palette colors on every wallpaper/theme change. Files placed in .config/hyde/wallbash/ (non-core component). * fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741) When running `hyde-shell pypr toggle console`, the `run_pypr()` function used `${*:-help}` to capture arguments into a scalar variable. When passed to `pypr "${message[@]}"`, the scalar expands as a single string "toggle console" instead of two separate args. The pypr client then normalizes spaces to underscores, looking up "toggle_console" instead of the "toggle" command with "console" as its argument. Additionally, socket direct writes via nc/socat/ncat lacked a trailing newline, which the pyprland daemon's readline() expects. Fix by using a bash array (`local -a msg=("$@")`) to preserve proper word-splitting, and adding `\n` to socket writes. # Pull Request ## Description Please read these instructions and remove unnecessary text. - Try to include a summary of the changes and which issue is fixed. - Also include relevant motivation and context (if applicable). - Make sure to make PR against dev and not the master - List any dependencies that are required for this change. (e.g., packages or other PRs) - Provide a link if there is an issue related to this pull request. e.g., Fixes # (issue) - Please add Reviewers, Assignees, Labels, Projects, and Milestones to the PR. (if applicable) ## Type of change Please put an `x` in the boxes that apply: - [ ] **Bug fix** (non-breaking change which fixes an issue) - [ ] **New feature** (non-breaking change which adds functionality) - [ ] **Breaking change** (fix or feature that would cause existing functionality to not work as expected) - [ ] **Documentation update** (non-breaking change; modified files are limited to the documentations) - [ ] **Technical debt** (a code change that does not fix a bug or add a feature but makes something clearer for devs) - [ ] **Other** (provide details below) ## Checklist Please put an `x` in the boxes that apply: - [ ] I have read the [CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md) document. - [ ] My code follows the code style of this project. - [ ] My commit message follows the [commit guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md). - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. - [ ] I have added a changelog entry. - [ ] I have added necessary comments/documentation to my code. - [ ] I have added tests to cover my changes. - [ ] I have tested my code locally and it works as expected. - [ ] All new and existing tests passed. ## Screenshots (if appropriate) ## Additional context Add any other context about the problem here. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Refactor** * Enhanced socket message handling for more reliable and consistent command argument processing across all operations. * Improved default command behavior to automatically display helpful information when commands are executed without any arguments provided. * Optimized internal message formatting and delivery while maintaining complete compatibility with existing fallback communication mechanisms for continued system reliability and operational stability. [](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741) <!-- end of auto-generated comment: release notes by coderabbit.ai --> * Remove * fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742) * fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781) * docs: sync Chinese README with English version (#1779) * fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786) The PipeWire detection fallback was written as `|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's value as a command with `==` and `true` as arguments instead of comparing it. On PulseAudio-only systems (where the pactl grep does not short-circuit) every invocation printed "==: command not found" when the variable was unset, and setting it to "true" only worked by accident of running /usr/bin/true. Wrap the check in [[ ]] so it is an actual string comparison. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix(pm): restore module header position in zypper.py (#1784) count_updates and list_updates were inserted above the module docstring and the `from __future__ import annotations` line. Python requires __future__ imports at the top of the file, so the module raised SyntaxError on import, breaking `hyde-shell pm` on openSUSE. Move both functions to the end of the file, matching the layout of the other manager modules. Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * Fix/globalcontrol wallpaper validation (#1785) * fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf The first fallback config path in get_hyprConf was the literal string "XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently skipped (the grep error is suppressed by 2>/dev/null). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(wallpaper): validate nonexistent path passed to --set The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`, so a non-empty path to a missing file skipped validation entirely and failed later in get_hashmap with a confusing "No image found in any source" error. Use || so both empty and nonexistent paths report "Wallpaper not found" as intended. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823) Co-authored-by: NoistNT <noistnt@users.noreply.github.com> * Lua (#1755) * lua * Added lua configs * Added lua support for Scripts * [for testing ] Added deez dots manifest files * [for testing ] Added deez dots manifest files * some migration logic for zsh * Added the partial deps list * Removed old hyprlang. * added defualt blnk hyprland.lua * Added hyprland error when wallbash for hyprland is not yet generated * Added hyprland error when wallbash for hyprland is not yet generated * Clean up all deprecated scripts * fixing session management logic for newer hyprland * reload on on common --reload and better keb hint UX and alt tab behavior * altab implementation and better binds handling * fix hyprlock * fix dolphin * fix dolphin * move kdeglobals to hyde bundle * cleanup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * anim * fix batteerynotify dameon * resolves some issues * no anim on selection layer * exposes hyprland.anim.duration_scale for animation speed(duration) control * Silent fail when missing toml parser * fix altab * fix altab * y * app2unit wrapper for non systemd * kitty * some adjustments * added pm agnostic system update ui * cleanup * fix sys update * pm * fix: gobject theming * Fix waybar, move dconf to use lua lgi * make keepass and bitwarden float * some foundation for i18n , docs etc for scripts * todo * fix screenshot conflict * org * some handling on fresh install * almost * Update Configs/.local/bin/hyde-shell Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/luautils/selector/rofi.lua Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/keybinds_hint.sh Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/compositor/hyprland.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/plugins/brave.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/shell/activate.fish Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix shell activations * uwsm hyprland env * fix session hyprland compositor * fix luau hyprtils rofi helper * fix no regex alternation on lua. * fix lua runtime * fix json output on lua * fix list builtin in completions --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Lua (#1835) * lua * Added lua configs * Added lua support for Scripts * [for testing ] Added deez dots manifest files * [for testing ] Added deez dots manifest files * some migration logic for zsh * Added the partial deps list * Removed old hyprlang. * added defualt blnk hyprland.lua * Added hyprland error when wallbash for hyprland is not yet generated * Added hyprland error when wallbash for hyprland is not yet generated * Clean up all deprecated scripts * fixing session management logic for newer hyprland * reload on on common --reload and better keb hint UX and alt tab behavior * altab implementation and better binds handling * fix hyprlock * fix dolphin * fix dolphin * move kdeglobals to hyde bundle * cleanup * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * anim * fix batteerynotify dameon * resolves some issues * no anim on selection layer * exposes hyprland.anim.duration_scale for animation speed(duration) control * Silent fail when missing toml parser * fix altab * fix altab * y * app2unit wrapper for non systemd * kitty * some adjustments * added pm agnostic system update ui * cleanup * fix sys update * pm * fix: gobject theming * Fix waybar, move dconf to use lua lgi * make keepass and bitwarden float * some foundation for i18n , docs etc for scripts * todo * fix screenshot conflict * org * some handling on fresh install * almost * Update Configs/.local/bin/hyde-shell Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/luautils/selector/rofi.lua Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/keybinds_hint.sh Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/compositor/hyprland.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/session/plugins/brave.py Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update Configs/.local/lib/hyde/shell/activate.fish Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix shell activations * uwsm hyprland env * fix session hyprland compositor * fix luau hyprtils rofi helper * fix no regex alternation on lua. * fix lua runtime * fix json output on lua * fix list builtin in completions * safe theme lua state generation --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * pr * waybar: fix `on-scroll` behaviour of `hyprland/workspaces` module with Lua dispatchers (#1850) * waybar: fix `on-scroll` behaviour * waybar: add changelog entry * fix: resolve lua before shell and retire superseded scripts (#1860) * #1854 fix: resolve lua before shell and retire superseded scripts * #1854 fix: name migration after the tagged release * #1854 fix: report migration failures and keep existing backups --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: add `luarocks` to core packages (#1851) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * chore: refresh outdated dependency pins (#1861) #1856 chore: refresh outdated dependency pins Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * docs: align release version across manifest and changelog (#1862) #1857 docs: align release version across manifest and changelog Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: expand variables in shader source includes (#1859) * #1853 fix: expand variables in shader source includes * #1853 fix: treat empty xdg directory lists as unset --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: adapt other waybar variants for hyprland lua (#1865) This commit also disables [tooltip](Alexays/Waybar#3017), it is quite useless if unconfigured Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1866 fix: deduplicate binds by resolved combo and drop unreachable ones (#1870) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1867 test: add a regression suite and a CI job to run it (#1871) * #1867 test: add a regression suite and a CI job to run it * #1867 test: check touchpad gestures alongside keybinds * fix: add luacheck for linting lua files (#1880) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: resolve Lua migration regressions (#1879) * fix: resolve Lua migration regressions Restore the documented HyDE keymap in the Lua configuration, fix the all-monitors screenshot action, and isolate app2unit from unrelated DEBUG values. Add regression coverage for the public shortcuts and app wrapper environment. * test: address app wrapper review feedback Apply scoped debug defaults before selecting the systemd or direct execution path. Exercise xdg-terminal-exec without systemd and extend the restored keybinding assertions. * test: preserve explicit app debug settings Cover caller-provided APP2UNIT_DEBUG and XTE_DEBUG values in addition to the unrelated DEBUG fallback regression. * fix: launch Lua battery notifier from schema Keep generated desktop startup defaults aligned with the Lua implementation installed by the migration. Add regression coverage so removed shell commands cannot return through generated schema artifacts. * fix: use corrected upstream Grimblast selector Replace the stale experimental toplevel branch with upstream main, which performs a single slurp selection and avoids combining monitor geometry with window capture. Guard the installer source with the dotfile regression test. * fix: render Satty previews with GTK GL Default Satty to the compatible GSK GL renderer when launched from Hyprland while preserving explicit user overrides. Add wrapper regression coverage. --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * fix: provision lua runtime and repair fish activation (#1858) * #1852 fix: provision lua runtime and repair fish activation * #1852 fix: unify lua resolution and isolate the runtime fallback * #1872 fix: drop the legacy dot and repair dangling metafile paths (#1881) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1882 fix: harden the metafile check and exempt remote sources (#1883) * #1882 fix: harden the metafile check and exempt remote sources * #1882 fix: validate sources and survive symlink loops * #1856 chore: refresh Python and Lua dependency pins (#1888) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1875 fix: declare bash in pm.sh and check the sh dialect (#1887) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1891 docs: describe the Lua keybind configuration and add a transition guide (#1892) * #1891 docs: describe the Lua keybind configuration and add a transition guide * #1891 docs: qualify the override rule and expand the entry point path --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1889 fix: point shipped callers at files that still exist (#1890) Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1885 fix: run every pending migration in version order and record it (#1886) * #1882 fix: harden the metafile check and exempt remote sources * #1882 fix: validate sources and survive symlink loops * #1885 fix: run every pending migration in version order and record it * #1885 fix: close migration stdin and report pending runs honestly * #1885 test: assert failed migrations retry and the installer really calls the runner * #1885 fix: declare sh in the migrations the runner executes with sh * #1885 test: fail when the migration directory yields nothing to check --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1897 fix: resolve hyde paths without erroring on an unset environment (#1900) * #1897 fix: resolve hyde paths without erroring on an unset environment * #1897 test: silence the linter noise in the path case * #1897 fix: restore the documented path resolver --------- Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> * #1901 fix: quote the shell probe and treat an empty runtime dir as unset (#1902) * fix: ensure theme config is a table before applying (#1876) Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com> * ci: add renovate for python dep management (#1903) requires signup on renovate to add the renovate app Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com> --------- Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com> Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com> Co-authored-by: yun <chenzm39@gmail.com> Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com> Co-authored-by: BigDawnGhost <yelouis231589@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com> Co-authored-by: NoistNT <noistnt@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Ilya Bogdanov <zeerayne1337@gmail.com> Co-authored-by: RA <70325462+RAprogramm@users.noreply.github.com> Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com> Co-authored-by: Jared Bautista <dylanjaredbautistasierra03@gmail.com> Co-authored-by: Maaz Waheed <153950782+42Wor@users.noreply.github.com>
* open PR
* chore: Release - dev → rc (#1732)
* feat: add wayle bar support as alternative to waybar
- Add wayle to session.py known bars for clean session management
- Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle
- Make waybar.dcol conditional: skip waybar update when not running
* dev
* docs: add @0xGeN02 to contributors
* feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst
* feat: add wallbash-to-wayle palette bridge for dynamic theming
Uses dcol_* environment variables passed by wallbash's fn_wallbash
to set wayle palette colors on every wallpaper/theme change.
Files placed in .config/hyde/wallbash/ (non-core component).
* fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741)
When running `hyde-shell pypr toggle console`, the `run_pypr()` function
used `${*:-help}` to capture arguments into a scalar variable. When
passed to `pypr "${message[@]}"`, the scalar expands as a single string
"toggle console" instead of two separate args. The pypr client then
normalizes spaces to underscores, looking up "toggle_console" instead of
the "toggle" command with "console" as its argument.
Additionally, socket direct writes via nc/socat/ncat lacked a trailing
newline, which the pyprland daemon's readline() expects.
Fix by using a bash array (`local -a msg=("$@")`) to preserve proper
word-splitting, and adding `\n` to socket writes.
# Pull Request
## Description
Please read these instructions and remove unnecessary text.
- Try to include a summary of the changes and which issue is fixed.
- Also include relevant motivation and context (if applicable).
- Make sure to make PR against dev and not the master
- List any dependencies that are required for this change. (e.g.,
packages or other PRs)
- Provide a link if there is an issue related to this pull request.
e.g., Fixes # (issue)
- Please add Reviewers, Assignees, Labels, Projects, and Milestones to
the PR. (if applicable)
## Type of change
Please put an `x` in the boxes that apply:
- [ ] **Bug fix** (non-breaking change which fixes an issue)
- [ ] **New feature** (non-breaking change which adds functionality)
- [ ] **Breaking change** (fix or feature that would cause existing
functionality to not work as expected)
- [ ] **Documentation update** (non-breaking change; modified files are
limited to the documentations)
- [ ] **Technical debt** (a code change that does not fix a bug or add a
feature but makes something clearer for devs)
- [ ] **Other** (provide details below)
## Checklist
Please put an `x` in the boxes that apply:
- [ ] I have read the
[CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md)
document.
- [ ] My code follows the code style of this project.
- [ ] My commit message follows the [commit
guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md).
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added a changelog entry.
- [ ] I have added necessary comments/documentation to my code.
- [ ] I have added tests to cover my changes.
- [ ] I have tested my code locally and it works as expected.
- [ ] All new and existing tests passed.
## Screenshots
(if appropriate)
## Additional context
Add any other context about the problem here.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Enhanced socket message handling for more reliable and consistent
command argument processing across all operations.
* Improved default command behavior to automatically display helpful
information when commands are executed without any arguments provided.
* Optimized internal message formatting and delivery while maintaining
complete compatibility with existing fallback communication mechanisms
for continued system reliability and operational stability.
[](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* Remove
* fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742)
* fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781)
* docs: sync Chinese README with English version (#1779)
* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786)
The PipeWire detection fallback was written as
`|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's
value as a command with `==` and `true` as arguments instead of
comparing it. On PulseAudio-only systems (where the pactl grep does
not short-circuit) every invocation printed "==: command not found"
when the variable was unset, and setting it to "true" only worked by
accident of running /usr/bin/true. Wrap the check in [[ ]] so it is
an actual string comparison.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(pm): restore module header position in zypper.py (#1784)
count_updates and list_updates were inserted above the module
docstring and the `from __future__ import annotations` line.
Python requires __future__ imports at the top of the file, so
the module raised SyntaxError on import, breaking `hyde-shell pm`
on openSUSE. Move both functions to the end of the file, matching
the layout of the other manager modules.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* Fix/globalcontrol wallpaper validation (#1785)
* fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf
The first fallback config path in get_hyprConf was the literal string
"XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level
default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently
skipped (the grep error is suppressed by 2>/dev/null).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(wallpaper): validate nonexistent path passed to --set
The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`,
so a non-empty path to a missing file skipped validation entirely and
failed later in get_hashmap with a confusing "No image found in any
source" error. Use || so both empty and nonexistent paths report
"Wallpaper not found" as intended.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823)
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
* Lua (#1755)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com>
Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com>
Co-authored-by: yun <chenzm39@gmail.com>
Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com>
Co-authored-by: BigDawnGhost <yelouis231589@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com>
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore: Release - dev → rc (#1836)
* feat: add wayle bar support as alternative to waybar
- Add wayle to session.py known bars for clean session management
- Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle
- Make waybar.dcol conditional: skip waybar update when not running
* dev
* docs: add @0xGeN02 to contributors
* feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst
* feat: add wallbash-to-wayle palette bridge for dynamic theming
Uses dcol_* environment variables passed by wallbash's fn_wallbash
to set wayle palette colors on every wallpaper/theme change.
Files placed in .config/hyde/wallbash/ (non-core component).
* fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741)
When running `hyde-shell pypr toggle console`, the `run_pypr()` function
used `${*:-help}` to capture arguments into a scalar variable. When
passed to `pypr "${message[@]}"`, the scalar expands as a single string
"toggle console" instead of two separate args. The pypr client then
normalizes spaces to underscores, looking up "toggle_console" instead of
the "toggle" command with "console" as its argument.
Additionally, socket direct writes via nc/socat/ncat lacked a trailing
newline, which the pyprland daemon's readline() expects.
Fix by using a bash array (`local -a msg=("$@")`) to preserve proper
word-splitting, and adding `\n` to socket writes.
# Pull Request
## Description
Please read these instructions and remove unnecessary text.
- Try to include a summary of the changes and which issue is fixed.
- Also include relevant motivation and context (if applicable).
- Make sure to make PR against dev and not the master
- List any dependencies that are required for this change. (e.g.,
packages or other PRs)
- Provide a link if there is an issue related to this pull request.
e.g., Fixes # (issue)
- Please add Reviewers, Assignees, Labels, Projects, and Milestones to
the PR. (if applicable)
## Type of change
Please put an `x` in the boxes that apply:
- [ ] **Bug fix** (non-breaking change which fixes an issue)
- [ ] **New feature** (non-breaking change which adds functionality)
- [ ] **Breaking change** (fix or feature that would cause existing
functionality to not work as expected)
- [ ] **Documentation update** (non-breaking change; modified files are
limited to the documentations)
- [ ] **Technical debt** (a code change that does not fix a bug or add a
feature but makes something clearer for devs)
- [ ] **Other** (provide details below)
## Checklist
Please put an `x` in the boxes that apply:
- [ ] I have read the
[CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md)
document.
- [ ] My code follows the code style of this project.
- [ ] My commit message follows the [commit
guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md).
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added a changelog entry.
- [ ] I have added necessary comments/documentation to my code.
- [ ] I have added tests to cover my changes.
- [ ] I have tested my code locally and it works as expected.
- [ ] All new and existing tests passed.
## Screenshots
(if appropriate)
## Additional context
Add any other context about the problem here.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Enhanced socket message handling for more reliable and consistent
command argument processing across all operations.
* Improved default command behavior to automatically display helpful
information when commands are executed without any arguments provided.
* Optimized internal message formatting and delivery while maintaining
complete compatibility with existing fallback communication mechanisms
for continued system reliability and operational stability.
[](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* Remove
* fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742)
* fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781)
* docs: sync Chinese README with English version (#1779)
* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786)
The PipeWire detection fallback was written as
`|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's
value as a command with `==` and `true` as arguments instead of
comparing it. On PulseAudio-only systems (where the pactl grep does
not short-circuit) every invocation printed "==: command not found"
when the variable was unset, and setting it to "true" only worked by
accident of running /usr/bin/true. Wrap the check in [[ ]] so it is
an actual string comparison.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(pm): restore module header position in zypper.py (#1784)
count_updates and list_updates were inserted above the module
docstring and the `from __future__ import annotations` line.
Python requires __future__ imports at the top of the file, so
the module raised SyntaxError on import, breaking `hyde-shell pm`
on openSUSE. Move both functions to the end of the file, matching
the layout of the other manager modules.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* Fix/globalcontrol wallpaper validation (#1785)
* fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf
The first fallback config path in get_hyprConf was the literal string
"XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level
default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently
skipped (the grep error is suppressed by 2>/dev/null).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(wallpaper): validate nonexistent path passed to --set
The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`,
so a non-empty path to a missing file skipped validation entirely and
failed later in get_hashmap with a confusing "No image found in any
source" error. Use || so both empty and nonexistent paths report
"Wallpaper not found" as intended.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823)
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
* Lua (#1755)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Lua (#1835)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
* safe theme lua state generation
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com>
Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com>
Co-authored-by: yun <chenzm39@gmail.com>
Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com>
Co-authored-by: BigDawnGhost <yelouis231589@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com>
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Changelog
* typo
* fix (fonts) cantarell font
* Fix: Ship hyde's wallbash template
fix [Lua | Bug]: `lua_state.colors` is absent
Fixes #1840
* fix changelog
* fix! missin lua.dcol
* pr
* chore: Release - dev → rc (#1841)
* feat: add wayle bar support as alternative to waybar
- Add wayle to session.py known bars for clean session management
- Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle
- Make waybar.dcol conditional: skip waybar update when not running
* dev
* docs: add @0xGeN02 to contributors
* feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst
* feat: add wallbash-to-wayle palette bridge for dynamic theming
Uses dcol_* environment variables passed by wallbash's fn_wallbash
to set wayle palette colors on every wallpaper/theme change.
Files placed in .config/hyde/wallbash/ (non-core component).
* fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741)
When running `hyde-shell pypr toggle console`, the `run_pypr()` function
used `${*:-help}` to capture arguments into a scalar variable. When
passed to `pypr "${message[@]}"`, the scalar expands as a single string
"toggle console" instead of two separate args. The pypr client then
normalizes spaces to underscores, looking up "toggle_console" instead of
the "toggle" command with "console" as its argument.
Additionally, socket direct writes via nc/socat/ncat lacked a trailing
newline, which the pyprland daemon's readline() expects.
Fix by using a bash array (`local -a msg=("$@")`) to preserve proper
word-splitting, and adding `\n` to socket writes.
# Pull Request
## Description
Please read these instructions and remove unnecessary text.
- Try to include a summary of the changes and which issue is fixed.
- Also include relevant motivation and context (if applicable).
- Make sure to make PR against dev and not the master
- List any dependencies that are required for this change. (e.g.,
packages or other PRs)
- Provide a link if there is an issue related to this pull request.
e.g., Fixes # (issue)
- Please add Reviewers, Assignees, Labels, Projects, and Milestones to
the PR. (if applicable)
## Type of change
Please put an `x` in the boxes that apply:
- [ ] **Bug fix** (non-breaking change which fixes an issue)
- [ ] **New feature** (non-breaking change which adds functionality)
- [ ] **Breaking change** (fix or feature that would cause existing
functionality to not work as expected)
- [ ] **Documentation update** (non-breaking change; modified files are
limited to the documentations)
- [ ] **Technical debt** (a code change that does not fix a bug or add a
feature but makes something clearer for devs)
- [ ] **Other** (provide details below)
## Checklist
Please put an `x` in the boxes that apply:
- [ ] I have read the
[CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md)
document.
- [ ] My code follows the code style of this project.
- [ ] My commit message follows the [commit
guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md).
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added a changelog entry.
- [ ] I have added necessary comments/documentation to my code.
- [ ] I have added tests to cover my changes.
- [ ] I have tested my code locally and it works as expected.
- [ ] All new and existing tests passed.
## Screenshots
(if appropriate)
## Additional context
Add any other context about the problem here.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Enhanced socket message handling for more reliable and consistent
command argument processing across all operations.
* Improved default command behavior to automatically display helpful
information when commands are executed without any arguments provided.
* Optimized internal message formatting and delivery while maintaining
complete compatibility with existing fallback communication mechanisms
for continued system reliability and operational stability.
[](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* Remove
* fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742)
* fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781)
* docs: sync Chinese README with English version (#1779)
* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786)
The PipeWire detection fallback was written as
`|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's
value as a command with `==` and `true` as arguments instead of
comparing it. On PulseAudio-only systems (where the pactl grep does
not short-circuit) every invocation printed "==: command not found"
when the variable was unset, and setting it to "true" only worked by
accident of running /usr/bin/true. Wrap the check in [[ ]] so it is
an actual string comparison.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(pm): restore module header position in zypper.py (#1784)
count_updates and list_updates were inserted above the module
docstring and the `from __future__ import annotations` line.
Python requires __future__ imports at the top of the file, so
the module raised SyntaxError on import, breaking `hyde-shell pm`
on openSUSE. Move both functions to the end of the file, matching
the layout of the other manager modules.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* Fix/globalcontrol wallpaper validation (#1785)
* fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf
The first fallback config path in get_hyprConf was the literal string
"XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level
default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently
skipped (the grep error is suppressed by 2>/dev/null).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(wallpaper): validate nonexistent path passed to --set
The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`,
so a non-empty path to a missing file skipped validation entirely and
failed later in get_hashmap with a confusing "No image found in any
source" error. Use || so both empty and nonexistent paths report
"Wallpaper not found" as intended.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823)
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
* Lua (#1755)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Lua (#1835)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
* safe theme lua state generation
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* pr
* waybar: fix `on-scroll` behaviour of `hyprland/workspaces` module with Lua dispatchers (#1850)
* waybar: fix `on-scroll` behaviour
* waybar: add changelog entry
* fix: resolve lua before shell and retire superseded scripts (#1860)
* #1854 fix: resolve lua before shell and retire superseded scripts
* #1854 fix: name migration after the tagged release
* #1854 fix: report migration failures and keep existing backups
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: add `luarocks` to core packages (#1851)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* chore: refresh outdated dependency pins (#1861)
#1856 chore: refresh outdated dependency pins
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* docs: align release version across manifest and changelog (#1862)
#1857 docs: align release version across manifest and changelog
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: expand variables in shader source includes (#1859)
* #1853 fix: expand variables in shader source includes
* #1853 fix: treat empty xdg directory lists as unset
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: adapt other waybar variants for hyprland lua (#1865)
This commit also disables
[tooltip](https://github.com/Alexays/Waybar/pull/3017), it is quite
useless if unconfigured
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1866 fix: deduplicate binds by resolved combo and drop unreachable ones (#1870)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1867 test: add a regression suite and a CI job to run it (#1871)
* #1867 test: add a regression suite and a CI job to run it
* #1867 test: check touchpad gestures alongside keybinds
* fix: add luacheck for linting lua files (#1880)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: resolve Lua migration regressions (#1879)
* fix: resolve Lua migration regressions
Restore the documented HyDE keymap in the Lua configuration, fix the all-monitors screenshot action, and isolate app2unit from unrelated DEBUG values. Add regression coverage for the public shortcuts and app wrapper environment.
* test: address app wrapper review feedback
Apply scoped debug defaults before selecting the systemd or direct execution path. Exercise xdg-terminal-exec without systemd and extend the restored keybinding assertions.
* test: preserve explicit app debug settings
Cover caller-provided APP2UNIT_DEBUG and XTE_DEBUG values in addition to the unrelated DEBUG fallback regression.
* fix: launch Lua battery notifier from schema
Keep generated desktop startup defaults aligned with the Lua implementation installed by the migration. Add regression coverage so removed shell commands cannot return through generated schema artifacts.
* fix: use corrected upstream Grimblast selector
Replace the stale experimental toplevel branch with upstream main, which performs a single slurp selection and avoids combining monitor geometry with window capture. Guard the installer source with the dotfile regression test.
* fix: render Satty previews with GTK GL
Default Satty to the compatible GSK GL renderer when launched from Hyprland while preserving explicit user overrides. Add wrapper regression coverage.
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: provision lua runtime and repair fish activation (#1858)
* #1852 fix: provision lua runtime and repair fish activation
* #1852 fix: unify lua resolution and isolate the runtime fallback
* #1872 fix: drop the legacy dot and repair dangling metafile paths (#1881)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1882 fix: harden the metafile check and exempt remote sources (#1883)
* #1882 fix: harden the metafile check and exempt remote sources
* #1882 fix: validate sources and survive symlink loops
* #1856 chore: refresh Python and Lua dependency pins (#1888)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1875 fix: declare bash in pm.sh and check the sh dialect (#1887)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1891 docs: describe the Lua keybind configuration and add a transition guide (#1892)
* #1891 docs: describe the Lua keybind configuration and add a transition guide
* #1891 docs: qualify the override rule and expand the entry point path
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1889 fix: point shipped callers at files that still exist (#1890)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
---------
Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com>
Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com>
Co-authored-by: yun <chenzm39@gmail.com>
Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com>
Co-authored-by: BigDawnGhost <yelouis231589@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com>
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ilya Bogdanov <zeerayne1337@gmail.com>
Co-authored-by: RA <70325462+RAprogramm@users.noreply.github.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Co-authored-by: Jared Bautista <dylanjaredbautistasierra03@gmail.com>
* chore: Release - dev → rc (#1899)
* feat: add wayle bar support as alternative to waybar
- Add wayle to session.py known bars for clean session management
- Add wallbash hook (wayle.dcol) to sync wallpaper colors with wayle
- Make waybar.dcol conditional: skip waybar update when not running
* dev
* docs: add @0xGeN02 to contributors
* feat: add wayle-bin and matugen-bin as optional packages in pkg_extra.lst
* feat: add wallbash-to-wayle palette bridge for dynamic theming
Uses dcol_* environment variables passed by wallbash's fn_wallbash
to set wayle palette colors on every wallpaper/theme change.
Files placed in .config/hyde/wallbash/ (non-core component).
* fix: hyde-shell pypr subcommand passes args as single string to pypr CLI (#1741)
When running `hyde-shell pypr toggle console`, the `run_pypr()` function
used `${*:-help}` to capture arguments into a scalar variable. When
passed to `pypr "${message[@]}"`, the scalar expands as a single string
"toggle console" instead of two separate args. The pypr client then
normalizes spaces to underscores, looking up "toggle_console" instead of
the "toggle" command with "console" as its argument.
Additionally, socket direct writes via nc/socat/ncat lacked a trailing
newline, which the pyprland daemon's readline() expects.
Fix by using a bash array (`local -a msg=("$@")`) to preserve proper
word-splitting, and adding `\n` to socket writes.
# Pull Request
## Description
Please read these instructions and remove unnecessary text.
- Try to include a summary of the changes and which issue is fixed.
- Also include relevant motivation and context (if applicable).
- Make sure to make PR against dev and not the master
- List any dependencies that are required for this change. (e.g.,
packages or other PRs)
- Provide a link if there is an issue related to this pull request.
e.g., Fixes # (issue)
- Please add Reviewers, Assignees, Labels, Projects, and Milestones to
the PR. (if applicable)
## Type of change
Please put an `x` in the boxes that apply:
- [ ] **Bug fix** (non-breaking change which fixes an issue)
- [ ] **New feature** (non-breaking change which adds functionality)
- [ ] **Breaking change** (fix or feature that would cause existing
functionality to not work as expected)
- [ ] **Documentation update** (non-breaking change; modified files are
limited to the documentations)
- [ ] **Technical debt** (a code change that does not fix a bug or add a
feature but makes something clearer for devs)
- [ ] **Other** (provide details below)
## Checklist
Please put an `x` in the boxes that apply:
- [ ] I have read the
[CONTRIBUTING](https://github.com/HyDE-Project/HyDE/blob/master/CONTRIBUTING.md)
document.
- [ ] My code follows the code style of this project.
- [ ] My commit message follows the [commit
guidelines](https://github.com/HyDE-Project/HyDE/blob/master/COMMIT_MESSAGE_GUIDELINES.md).
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
- [ ] I have added a changelog entry.
- [ ] I have added necessary comments/documentation to my code.
- [ ] I have added tests to cover my changes.
- [ ] I have tested my code locally and it works as expected.
- [ ] All new and existing tests passed.
## Screenshots
(if appropriate)
## Additional context
Add any other context about the problem here.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Refactor**
* Enhanced socket message handling for more reliable and consistent
command argument processing across all operations.
* Improved default command behavior to automatically display helpful
information when commands are executed without any arguments provided.
* Optimized internal message formatting and delivery while maintaining
complete compatibility with existing fallback communication mechanisms
for continued system reliability and operational stability.
[](https://app.coderabbit.ai/change-stack/HyDE-Project/HyDE/pull/1741)
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
* Remove
* fix: Fix Hyprland 0.55 breaking changes in configuration files (#1742)
* fix(hypr): unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (#1781)
* docs: sync Chinese README with English version (#1779)
* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (#1786)
The PipeWire detection fallback was written as
`|| $VOLUME_PIPEWIRE_ENABLE == true`, which executes the variable's
value as a command with `==` and `true` as arguments instead of
comparing it. On PulseAudio-only systems (where the pactl grep does
not short-circuit) every invocation printed "==: command not found"
when the variable was unset, and setting it to "true" only worked by
accident of running /usr/bin/true. Wrap the check in [[ ]] so it is
an actual string comparison.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(pm): restore module header position in zypper.py (#1784)
count_updates and list_updates were inserted above the module
docstring and the `from __future__ import annotations` line.
Python requires __future__ imports at the top of the file, so
the module raised SyntaxError on import, breaking `hyde-shell pm`
on openSUSE. Move both functions to the end of the file, matching
the layout of the other manager modules.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* Fix/globalcontrol wallpaper validation (#1785)
* fix(lib): add missing $ to XDG_DATA_HOME fallback path in get_hyprConf
The first fallback config path in get_hyprConf was the literal string
"XDG_DATA_HOME/hyde/hyde.conf", which never exists, so user-level
default theme values in $XDG_DATA_HOME/hyde/hyde.conf were silently
skipped (the grep error is suppressed by 2>/dev/null).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(wallpaper): validate nonexistent path passed to --set
The check used `[ -z "$wallpaper_path" ] && [ ! -f "$wallpaper_path" ]`,
so a non-empty path to a missing file skipped validation entirely and
failed later in get_hashmap with a confusing "No image found in any
source" error. Use || so both empty and nonexistent paths report
"Wallpaper not found" as intended.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix(zsh,hyde-shell): prevent PATH duplication on repeated source (#1823)
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
* Lua (#1755)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Lua (#1835)
* lua
* Added lua configs
* Added lua support for Scripts
* [for testing ] Added deez dots manifest files
* [for testing ] Added deez dots manifest files
* some migration logic for zsh
* Added the partial deps list
* Removed old hyprlang.
* added defualt blnk hyprland.lua
* Added hyprland error when wallbash for hyprland is not yet generated
* Added hyprland error when wallbash for hyprland is not yet generated
* Clean up all deprecated scripts
* fixing session management logic for newer hyprland
* reload on on common --reload and better keb hint UX and alt tab behavior
* altab implementation and better binds handling
* fix hyprlock
* fix dolphin
* fix dolphin
* move kdeglobals to hyde bundle
* cleanup
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* anim
* fix batteerynotify dameon
* resolves some issues
* no anim on selection layer
* exposes hyprland.anim.duration_scale for animation speed(duration) control
* Silent fail when missing toml parser
* fix altab
* fix altab
* y
* app2unit wrapper for non systemd
* kitty
* some adjustments
* added pm agnostic system update ui
* cleanup
* fix sys update
* pm
* fix: gobject theming
* Fix waybar, move dconf to use lua lgi
* make keepass and bitwarden float
* some foundation for i18n , docs etc for scripts
* todo
* fix screenshot conflict
* org
* some handling on fresh install
* almost
* Update Configs/.local/bin/hyde-shell
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/luautils/selector/rofi.lua
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/keybinds_hint.sh
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/compositor/hyprland.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/session/plugins/brave.py
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update Configs/.local/lib/hyde/shell/activate.fish
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* fix shell activations
* uwsm hyprland env
* fix session hyprland compositor
* fix luau hyprtils rofi helper
* fix no regex alternation on lua.
* fix lua runtime
* fix json output on lua
* fix list builtin in completions
* safe theme lua state generation
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* pr
* waybar: fix `on-scroll` behaviour of `hyprland/workspaces` module with Lua dispatchers (#1850)
* waybar: fix `on-scroll` behaviour
* waybar: add changelog entry
* fix: resolve lua before shell and retire superseded scripts (#1860)
* #1854 fix: resolve lua before shell and retire superseded scripts
* #1854 fix: name migration after the tagged release
* #1854 fix: report migration failures and keep existing backups
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: add `luarocks` to core packages (#1851)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* chore: refresh outdated dependency pins (#1861)
#1856 chore: refresh outdated dependency pins
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* docs: align release version across manifest and changelog (#1862)
#1857 docs: align release version across manifest and changelog
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: expand variables in shader source includes (#1859)
* #1853 fix: expand variables in shader source includes
* #1853 fix: treat empty xdg directory lists as unset
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: adapt other waybar variants for hyprland lua (#1865)
This commit also disables
[tooltip](https://github.com/Alexays/Waybar/pull/3017), it is quite
useless if unconfigured
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1866 fix: deduplicate binds by resolved combo and drop unreachable ones (#1870)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1867 test: add a regression suite and a CI job to run it (#1871)
* #1867 test: add a regression suite and a CI job to run it
* #1867 test: check touchpad gestures alongside keybinds
* fix: add luacheck for linting lua files (#1880)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: resolve Lua migration regressions (#1879)
* fix: resolve Lua migration regressions
Restore the documented HyDE keymap in the Lua configuration, fix the all-monitors screenshot action, and isolate app2unit from unrelated DEBUG values. Add regression coverage for the public shortcuts and app wrapper environment.
* test: address app wrapper review feedback
Apply scoped debug defaults before selecting the systemd or direct execution path. Exercise xdg-terminal-exec without systemd and extend the restored keybinding assertions.
* test: preserve explicit app debug settings
Cover caller-provided APP2UNIT_DEBUG and XTE_DEBUG values in addition to the unrelated DEBUG fallback regression.
* fix: launch Lua battery notifier from schema
Keep generated desktop startup defaults aligned with the Lua implementation installed by the migration. Add regression coverage so removed shell commands cannot return through generated schema artifacts.
* fix: use corrected upstream Grimblast selector
Replace the stale experimental toplevel branch with upstream main, which performs a single slurp selection and avoids combining monitor geometry with window capture. Guard the installer source with the dotfile regression test.
* fix: render Satty previews with GTK GL
Default Satty to the compatible GSK GL renderer when launched from Hyprland while preserving explicit user overrides. Add wrapper regression coverage.
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* fix: provision lua runtime and repair fish activation (#1858)
* #1852 fix: provision lua runtime and repair fish activation
* #1852 fix: unify lua resolution and isolate the runtime fallback
* #1872 fix: drop the legacy dot and repair dangling metafile paths (#1881)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1882 fix: harden the metafile check and exempt remote sources (#1883)
* #1882 fix: harden the metafile check and exempt remote sources
* #1882 fix: validate sources and survive symlink loops
* #1856 chore: refresh Python and Lua dependency pins (#1888)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1875 fix: declare bash in pm.sh and check the sh dialect (#1887)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1891 docs: describe the Lua keybind configuration and add a transition guide (#1892)
* #1891 docs: describe the Lua keybind configuration and add a transition guide
* #1891 docs: qualify the override rule and expand the entry point path
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1889 fix: point shipped callers at files that still exist (#1890)
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1885 fix: run every pending migration in version order and record it (#1886)
* #1882 fix: harden the metafile check and exempt remote sources
* #1882 fix: validate sources and survive symlink loops
* #1885 fix: run every pending migration in version order and record it
* #1885 fix: close migration stdin and report pending runs honestly
* #1885 test: assert failed migrations retry and the installer really calls the runner
* #1885 fix: declare sh in the migrations the runner executes with sh
* #1885 test: fail when the migration directory yields nothing to check
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1897 fix: resolve hyde paths without erroring on an unset environment (#1900)
* #1897 fix: resolve hyde paths without erroring on an unset environment
* #1897 test: silence the linter noise in the path case
* #1897 fix: restore the documented path resolver
---------
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
* #1901 fix: quote the shell probe and treat an empty runtime dir as unset (#1902)
* fix: ensure theme config is a table before applying (#1876)
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
* ci: add renovate for python dep management (#1903)
requires signup on renovate to add the renovate app
Co-authored-by: Khing <53417443+kRHYME7@users.noreply.github.com>
---------
Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com>
Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com>
Co-authored-by: yun <chenzm39@gmail.com>
Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com>
Co-authored-by: BigDawnGhost <yelouis231589@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com>
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ilya Bogdanov <zeerayne1337@gmail.com>
Co-authored-by: RA <70325462+RAprogramm@users.noreply.github.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Co-authored-by: Jared Bautista <dylanjaredbautistasierra03@gmail.com>
Co-authored-by: Maaz Waheed <153950782+42Wor@users.noreply.github.com>
---------
Co-authored-by: kRHYME7 <53417443+kRHYME7@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: 0xGeN02 <manuelmateodgl02@gmail.com>
Co-authored-by: yun <chenzm39@gmail.com>
Co-authored-by: PureFallen <68307987+PureFallen@users.noreply.github.com>
Co-authored-by: BigDawnGhost <yelouis231589@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Ariel Piazzano <104594670+NoistNT@users.noreply.github.com>
Co-authored-by: NoistNT <noistnt@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Ilya Bogdanov <zeerayne1337@gmail.com>
Co-authored-by: RA <70325462+RAprogramm@users.noreply.github.com>
Co-authored-by: Rubin Bhandari <roobin.bhandari@gmail.com>
Co-authored-by: Jared Bautista <dylanjaredbautistasierra03@gmail.com>
Co-authored-by: Maaz Waheed <153950782+42Wor@users.noreply.github.com>
Pull Request
Description
Fixes #1867
Stacked on #1870. The suite fails against
devas it stands, because thedefects it detects are the ones that pull request removes. Merge #1870 first.
What lands
No framework is vendored. A case is an executable
tests/test_*.shthatprints its own diagnostics and exits non-zero, so adding a case is adding a
file.
What is checked
test_binds.shcode:NNform the Lua parser rejects; every bind carries a description; everyhyde-shellcommand a bind runs resolves, either to a file in the tree or to a subcommand hyde-shell declares in its own headertest_dots.shScripts/dotsparses, declarespathsandtarget_root, uses a known action, points at a source directory that exists, and lists only known package managerstest_lua_syntax.shtest_shell.shThe keybind case never talks to a compositor.
hlis replaced by a recorder,so the real
key_binds.lua,hyde/binds.luaandhyde/dispatcher.luaareexecuted and inspected without dispatching anything.
Effect on the tree
Three error-severity shellcheck findings existed and are fixed here, since a
linter that lands red is a linter nobody runs:
Configs/.config/uwsm/env.d/01-gpu.sh#!/usr/bin/env shas its sibling00-hyde.shConfigs/.local/lib/hyde/shutils/ocr.sh[@]inside a string argument (SC2145), which splits the notification body across arguments. Now[*]Configs/.local/lib/hyde/wallpaper.kon.sh[@]inside[[ ]](SC2199), so the substring test compared against an implicit concatenation. Now[*]Verification
Against this branch:
Against
devas it stands, the same suite reports 23 keybind defects and thethree shellcheck findings, so the checks bite rather than pass vacuously:
Known gap
Fourteen metafile entries point at source paths that no longer exist in the
tree, most of them the legacy Hyprland
.conffiles that the Lua releaseremoved. The path-level existence check is deliberately left out of this pull
request so it does not carry a judgement about what should happen to those
entries. It is filed separately.
Type of change
Checklist
tests/README.mddocuments how to run the suite and what each case covers.The changelog entry covers only the two shellcheck fixes that a user can
notice; the suite itself is not user-facing.
Additional context
The suite is dependency-light on purpose: a POSIX runner, one Lua harness and
one Python checker, no framework to vendor and no compositor to talk to. A
case whose tool is missing reports itself as skipped instead of failing, so it
stays usable on a contributor's machine and runs in full in CI.
pre-commit runpasses on the files this branch touches, and markdownlintpasses on the markdown it adds. The repository has 244 files with pre-existing
end-of-file and trailing-whitespace findings; folding those in would bury the
change, so they are left alone.
Summary by CodeRabbit