Skip to content

Lua - #1755

Merged
kRHYME7 merged 64 commits into
devfrom
lua
Jul 27, 2026
Merged

Lua#1755
kRHYME7 merged 64 commits into
devfrom
lua

Conversation

@kRHYME7

@kRHYME7 kRHYME7 commented May 19, 2026

Copy link
Copy Markdown
Contributor

Lua stuff

I don't have any idea for a smooth migration than to deprecate old config and install lua cleanly. wdyt?

Summary by CodeRabbit

  • New Features

    • Switched Hyprland configuration to Lua-based modules with selectable layouts (including hyde-shell layouts --select), animations, workflows, shaders, and themes.
    • Added dynamic HyDE help plus improved hyde-shell shell completions (including rofi/Waybar menu integration and new SwayNC controls).
    • Added GTK dconf isolation for HyDE, plus Altab-style Alt-Tab state handling and a battery notification helper.
    • Added a Waybar updates/status helper and refreshed Lua/GTK configuration foundation.
  • Bug Fixes

    • Improved session save/restore matching and placement, startup activation behavior, and the screenshot/OCR flow.

@coderabbitai

coderabbitai Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR migrates HyDE's Hyprland configuration from Hyprlang/shell scripts to a Lua-based system, rewrites hyde-shell and its completions to delegate to Python, updates numerous Python backend scripts (package managers, session save/restore, waybar, system updates), introduces a TOML-based dotfiles manager replacing legacy restore scripts, and removes many superseded shell scripts and config files.

Changes

Hyprland Lua Migration

Layer / File(s) Summary
Core Lua runtime & libraries
Configs/.local/lib/hyde/luautils/*, Configs/.local/share/hypr/lua/hyde/*, Configs/.local/share/hypr/lua/lib/toml.lua
Adds argparse, json, toml, xdg, logging, notify, state, selector, rofi and hyprctl Lua utility modules plus the hyde.* core runtime (config, env, dispatcher, binds, handlers, path, utils).
Hyprland Lua feature scripts
Configs/.local/lib/hyde/*.lua, Configs/.local/share/hypr/lua/**, Configs/.local/share/hyde/schema/*, Configs/.local/share/hypr/schema/*
Adds hyde.lua entrypoint, animation/layout/workflow/shader selectors, window/layer rules, keybinds, altab, batterynotify, config.lua TOML-driven config generator daemon, and updated JSON/TOML schemas.

hyde-shell CLI, Completions & Python Backend

Layer / File(s) Summary
hyde-shell + completions
Configs/.local/bin/hyde-shell, Configs/.local/lib/hyde/completions*, Configs/.local/lib/hyde/help.py
Refactors command dispatch/reload, removes in-shell completion generators, adds Python completions.py/help.py and bash/zsh/fish completion scripts.
Python backend
Configs/.local/lib/hyde/pm*, session*, waybar.py, system.update.py, reload.py, pyutils/*
Updates package manager backends, session snapshot/restore Hyprland Lua eval integration, waybar layout management, system update helper, and Python/Lua environment managers.

Shell Wrapper Migration & Legacy Removal

Layer / File(s) Summary
app.sh adoption & activation
Configs/.local/lib/hyde/app.sh, .../shell/activate*, color.set.sh, hypr.sh, various launchers
Introduces app.sh/activation scripts replacing app2unit.sh across launchers and environment setup.
Legacy script removal
shaders.sh, hyde-ipc.service, kitty.conf, zsh/completions/hyde-shell.zsh
Removes shell scripts and stray config superseded by the Lua/Python migration.

TOML Dotfiles Manager

Layer / File(s) Summary
Dots TOML definitions
dots.toml, dots-legacy.toml, Scripts/dots-groups/*, Scripts/dots/*
Adds TOML manifests defining sync/preserve rules and package dependencies per application.
Install integration
Scripts/install.sh, install_pre.sh, restore_cfg.psv
Reworks install operations and replaces restore logic with deez-based dotfile deployment.

Misc UI/Docs & HydeVM

Layer / File(s) Summary
Waybar/SwayNC/docs assets
Configs/.config/waybar/*, Configs/.local/share/waybar/*, CHANGELOG.md, .gitignore
Adds Waybar layout menu, SwayNC theme, and misc docs/config updates.
HydeVM tooling
Scripts/hydevm/*
Adds checkpoint save/restore, SSH-only mode, and live folder mounting.

Estimated code review effort: 5 (Critical) | ~180 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Hyprland
  participant hyde_lua as hyde.lua
  participant configLua as hyde/config.lua
  participant variablesLua as variables.lua
  participant dynamicLua as dynamic.lua
  Hyprland->>hyde_lua: load hyprland.lua -> require hyde.lua
  hyde_lua->>configLua: require hyde.config
  hyde_lua->>variablesLua: require variables
  variablesLua->>configLua: hyde.config(defaults)
  hyde_lua->>dynamicLua: require dynamic
  dynamicLua->>configLua: apply theme/state overrides
  dynamicLua->>Hyprland: hl.config / hyprctl reload
Loading
sequenceDiagram
  participant User
  participant hydeShell as hyde-shell
  participant CompletionScript as completions/hyde-shell.*
  participant CompletionsPy as completions.py
  User->>CompletionScript: TAB press
  CompletionScript->>hydeShell: hyde-shell completion ...
  hydeShell->>CompletionsPy: python3 completions.py
  CompletionsPy-->>hydeShell: candidate list
  hydeShell-->>CompletionScript: candidates
  CompletionScript-->>User: render suggestions
Loading

Possibly related PRs

  • HyDE-Project/HyDE#1487: Both PRs touch Configs/.config/hypr/keybindings.conf and Configs/.config/hypr/windowrules.conf, since this PR removes those legacy .conf files in favor of the new Lua-based Hyprland configuration.
  • HyDE-Project/HyDE#1685: Both PRs implement the wallpaper.waydeeper backend by updating the Hyde wallpaper schema/config with the same wallpaper.waydeeper section/parameters.
  • HyDE-Project/HyDE#1710: Both PRs remove/deprecate dontkillsteam.sh in favor of direct hyprctl/dispatch-based window handling.

Poem

A rabbit hops through Lua trees so tall,
Config once shell, now answers the call
Of hl.animation, hl.bind, hl.dsp too,
With deez for dotfiles, fresh and new.
🐇✨ hop, reload, and away we go!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.88% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title is related to the changes, but it is too vague to convey the main migration or scope. Use a specific title such as “Migrate HyDE to Lua-based configuration and scripts” to reflect the primary change.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lua

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kRHYME7

kRHYME7 commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

I also updated the keybindings as described here. (Handling Binds)

so now I think it is safe to nuke all deprecated shell scripts?

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a new Hyprland “Lua mode” configuration stack for HyDE (Lua config under Configs/.local/share/hypr/ plus supporting Lua utilities under Configs/.local/lib/hyde/), alongside new “Deez Dots” TOML manifests (dots*.toml + dots/*.toml) intended to drive dotfile deployment and manage a legacy vs Lua Hyprland split.

Changes:

  • Add a Lua-based Hyprland configuration entrypoint (hyde.lua) with layouts/workflows/animations modules and runtime event handlers.
  • Add Lua utility libraries and selector CLIs (rofi selectors, state management, hyprctl socket client, shader compiler).
  • Add new dotfile manifests (dots.toml, dots-legacy.toml, and many dots/*.toml) to define what gets installed/synced/preserved for the new Lua migration.

Reviewed changes

Copilot reviewed 116 out of 119 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
dots/zsh.toml Adds dot-manifest entries to sync/preserve zsh config files.
dots/waybar.toml Adds dot-manifest entries for waybar config + data assets.
dots/wallbash-vim.toml Adds dot-manifest entries for vim wallbash theme files.
dots/spotify.toml Adds dot-manifest entry to preserve spotify flatpak flags.
dots/rofi.toml Adds dot-manifest entry to preserve rofi config directory.
dots/lsd.toml Adds dot-manifest entry to preserve lsd config directory.
dots/libinput-gestures.toml Adds dot-manifest entry to preserve libinput-gestures config.
dots/kitty.toml Adds dot-manifest entries for kitty config/theme and deps.
dots/hyprsunset.toml Adds dot-manifest entry to preserve hyprsunset config.
dots/hyprlock.toml Adds dot-manifest entry to preserve hyprlock config.
dots/hyprland.toml Adds dot-manifest for Lua-mode Hyprland assets + Lua state.
dots/hyprland-legacy.toml Adds legacy Hyprland manifest (hyprlang) with conflicts.
dots/hypridle.toml Adds dot-manifest entry to preserve hypridle config.
dots/hyde.toml Adds “hyde core” manifest including various config/data sync rules.
dots/fish.toml Adds fish manifest: sync shared dirs + preserve config.fish/starship.
dots/fastfetch.toml Adds fastfetch manifest: preserve config + sync presets.
dots/electron.toml Adds dot-manifest entry to preserve electron flags.
dots/dunst.toml Adds dunst manifest entry to sync a wallbash script.
dots/dolphin.toml Adds dolphin manifest including applications menu sync.
dots/code.toml Adds manifests for code/vscode/vscodium settings + flags.
dots/baloofilerc.toml Adds manifest entry to preserve KDE baloo config.
dots.toml Adds new primary dots manifest for Lua branch selection.
dots-legacy.toml Adds legacy dots manifest (dev branch) using legacy Hyprland manifest.
Configs/.local/share/hypr/lua/workflows/snappy.lua Adds “Snappy” workflow module.
Configs/.local/share/hypr/lua/workflows/powersaver.lua Adds “Powersaver” workflow module.
Configs/.local/share/hypr/lua/workflows/gaming.lua Adds “Gaming” workflow module.
Configs/.local/share/hypr/lua/workflows/editing.lua Adds “Editing” workflow module.
Configs/.local/share/hypr/lua/workflows/01-default.lua Adds default workflow descriptor.
Configs/.local/share/hypr/lua/window_rules.lua Adds consolidated window rule regex compilation + rules.
Configs/.local/share/hypr/lua/variables.lua Adds environment/default variables and startup command registry.
Configs/.local/share/hypr/lua/start_up.lua Adds Hyprland startup event handler that runs registered commands.
Configs/.local/share/hypr/lua/layouts/scrolling.lua Adds “Scrolling” layout module + binds/gestures.
Configs/.local/share/hypr/lua/layouts/monocle.lua Adds “Monocle” layout module + binds/gestures.
Configs/.local/share/hypr/lua/layouts/master.lua Adds “Master” layout module + binds/gestures.
Configs/.local/share/hypr/lua/layouts/dwindle.lua Adds “Dwindle” layout module + binds/gestures.
Configs/.local/share/hypr/lua/layouts/00.lua Adds “Unset” layout descriptor.
Configs/.local/share/hypr/lua/layer_rules.lua Adds layer rules for rofi/notifications/waybar/etc.
Configs/.local/share/hypr/lua/hyde/utils.lua Adds check_require utility and global wiring.
Configs/.local/share/hypr/lua/hyde/ui.lua Adds UI state loader/cleaner for HyDE UI settings.
Configs/.local/share/hypr/lua/hyde/start.lua Adds startup command getters/setters (hyde.start.*).
Configs/.local/share/hypr/lua/hyde/path.lua Adds HyDE path discovery (lib/share/state/config).
Configs/.local/share/hypr/lua/hyde/meta.lua Adds metadata store (hyde.meta).
Configs/.local/share/hypr/lua/hyde/handlers.lua Adds window/monitor handling helpers (float bounds, cursor follow, etc.).
Configs/.local/share/hypr/lua/hyde/env.lua Adds env var staging + finalize into hl.env.
Configs/.local/share/hypr/lua/hyde/dispatcher.lua Adds hyde.sh + hyde.dsp command builder/executor.
Configs/.local/share/hypr/lua/hyde/define.lua Adds default command definitions + apply helper.
Configs/.local/share/hypr/lua/hyde/config.lua Adds default HyDE Lua config (float bounds, margins, anim settings).
Configs/.local/share/hypr/lua/hyde/binds.lua Wraps hl.bind to normalize/dedup key combos.
Configs/.local/share/hypr/lua/hyde/animations.lua Adds animation speed multiplier wrapper + helpers.
Configs/.local/share/hypr/lua/events.lua Adds Hyprland event hooks (float size bounds, shutdown handler).
Configs/.local/share/hypr/lua/env.lua Finalizes env vars and updates PATH.
Configs/.local/share/hypr/lua/dynamic.lua Adds theme-driven dynamic config loading (colors/ui/theme/layouts/etc.).
Configs/.local/share/hypr/lua/defaults.lua Adds baseline Hyprland defaults in Lua.
Configs/.local/share/hypr/lua/animations/vertical.lua Adds “Vertical” animation profile module.
Configs/.local/share/hypr/lua/animations/standard.lua Adds “Standard” animation profile module.
Configs/.local/share/hypr/lua/animations/optimized.lua Adds “Optimized” animation profile module.
Configs/.local/share/hypr/lua/animations/moving.lua Adds “Moving” animation profile module.
Configs/.local/share/hypr/lua/animations/minimal-2.lua Adds “Minimal-2” animation profile module.
Configs/.local/share/hypr/lua/animations/me-2.lua Adds “Me-2” animation profile module.
Configs/.local/share/hypr/lua/animations/me-1.lua Adds “Me-1” animation profile module.
Configs/.local/share/hypr/lua/animations/macos.lua Adds “MacOS” animation profile module.
Configs/.local/share/hypr/lua/animations/limefrenzy.lua Adds “LimeFrenzy” animation profile module.
Configs/.local/share/hypr/lua/animations/ja.lua Adds “Ja” animation profile module.
Configs/.local/share/hypr/lua/animations/gnome.lua Adds “GNOME” animation profile module.
Configs/.local/share/hypr/lua/animations/fast.lua Adds “Fast” animation profile module.
Configs/.local/share/hypr/lua/animations/end4.lua Adds “End4” animation profile module.
Configs/.local/share/hypr/lua/animations/diablo-2.lua Adds “Diablo-2” animation profile module.
Configs/.local/share/hypr/lua/animations/diablo-1.lua Adds “Diablo-1” animation profile module.
Configs/.local/share/hypr/lua/animations/classic.lua Adds “Classic” animation profile using speed multiplier wrapper.
Configs/.local/share/hypr/lua/animations/01-default.lua Adds default animation descriptor.
Configs/.local/share/hypr/lua/animations/00-disable.lua Adds animation disable module (explicit disables).
Configs/.local/share/hypr/hyde.lua Adds main Hyprland Lua entrypoint wiring HyDE modules together.
Configs/.local/lib/hyde/workflows.lua Adds workflow selector CLI module.
Configs/.local/lib/hyde/window.pin.lua Adds window pin CLI script.
Configs/.local/lib/hyde/waybar.py Adjusts systemd unit run/stop/restart behavior for waybar.
Configs/.local/lib/hyde/theme.switch.sh Adds Lua-mode theme export support via hyq dump to lua_state.
Configs/.local/lib/hyde/shell/activate.fish Adds fish activation script selecting Lua vs legacy mode.
Configs/.local/lib/hyde/shell/activate Adds POSIX activation script selecting Lua vs legacy mode.
Configs/.local/lib/hyde/shaders.lua Adds shader selector + compiler and lua_state writer.
Configs/.local/lib/hyde/rofi.workflows.lua Adds rofi UI wrapper for workflow selection.
Configs/.local/lib/hyde/rofi.shaders.lua Adds rofi UI wrapper for shader selection.
Configs/.local/lib/hyde/rofi.layouts.lua Adds rofi UI wrapper for layout selection.
Configs/.local/lib/hyde/rofi.animations.lua Adds rofi UI wrapper for animation selection.
Configs/.local/lib/hyde/pyutils/lua_env.py Reworks Lua env management to use system Lua + luarocks --tree.
Configs/.local/lib/hyde/pyutils/lua_env.json Updates bootstrap rock list (versions + extra rocks).
Configs/.local/lib/hyde/pyproject.toml Adds Python deps and uv git source for xdg-prefs.
Configs/.local/lib/hyde/pygui/color.shuffle.py Adjusts Qt window flags.
Configs/.local/lib/hyde/mediaplayer.py Changes signal handler exit behavior.
Configs/.local/lib/hyde/luautils/xdg.lua Adds Lua XDG base dir helper module.
Configs/.local/lib/hyde/luautils/theme/parser.lua Adds Lua theme parsing utilities (hyq/theme file/gsettings/defaults).
Configs/.local/lib/hyde/luautils/selector/rofi.lua Adds generic rofi selector implementation.
Configs/.local/lib/hyde/luautils/selector/common.lua Adds selector factory + CLI runner + state integration.
Configs/.local/lib/hyde/luautils/rofi/pos.lua Adds cursor-following rofi positioning helper.
Configs/.local/lib/hyde/luautils/init.lua Initializes Lua search paths for HyDE scripts.
Configs/.local/lib/hyde/luautils/hypr/hyprctl.lua Adds Hyprland socket client with JSON helpers.
Configs/.local/lib/hyde/luautils/global/state.lua Adds shared staterc + lua_state I/O utilities.
Configs/.local/lib/hyde/luautils/global/notify.lua Adds notify-send wrapper helper.
Configs/.local/lib/hyde/luautils/global/log.lua Adds basic logger (lgi-backed when available).
Configs/.local/lib/hyde/layouts.lua Adds layout selector CLI module.
Configs/.local/lib/hyde/keybinds_hint.sh Adds --reload support and small shell cleanups.
Configs/.local/lib/hyde/globalcontrol.sh Improves toml_write updating behavior and silences stderr.
Configs/.local/lib/hyde/color/hypr.sh Adds Lua-mode UI state generation alongside legacy wallbash.conf.
Configs/.local/lib/hyde/batterynotify.sh Trims trailing whitespace in help output.
Configs/.local/lib/hyde/animations.lua Adds animations selector CLI module.
Configs/.local/lib/hyde/.editorconfig Expands formatting rules to all files in this subtree.
Configs/.config/zsh/conf.d/hyde/terminal.zsh Enables interactive comments; minor whitespace cleanup.
Configs/.config/zsh/conf.d/hyde/env.zsh Refactors env initialization and activation sourcing.
Configs/.config/zsh/conf.d/binds.zsh Adds delete-char bind and removes a comment line.
.gitignore Adds broad dotfile ignore pattern.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Configs/.local/share/hypr/lua/hyde/ui.lua Outdated
Comment thread Configs/.local/share/hypr/lua/env.lua
Comment thread Configs/.local/share/hypr/lua/layer_rules.lua Outdated
Comment thread Configs/.local/share/hypr/lua/events.lua
Comment thread Configs/.local/share/hypr/hyde.lua Outdated
Comment thread Configs/.local/share/hypr/lua/hyde/dispatcher.lua
Comment thread Configs/.local/share/hypr/lua/hyde/binds.lua
Comment thread Configs/.local/lib/hyde/mediaplayer.py Outdated
Comment thread Configs/.local/lib/hyde/color/hypr.sh Outdated
Comment thread Configs/.local/share/hypr/lua/hyde/path.lua Outdated
@kRHYME7

kRHYME7 commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

as of the moment this is the full scope of hyprland in HyDE. ~/.config/hypr/hyprland.lua is optionally added.

image

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Note

Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it.

Autofix skipped. No unresolved CodeRabbit review comments with fix instructions found.

@kRHYME7

kRHYME7 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor Author

merging this now

@kRHYME7
kRHYME7 merged commit 6eb07e2 into dev Jul 27, 2026
5 checks passed
kRHYME7 added a commit that referenced this pull request Jul 27, 2026
* 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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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>
kRHYME7 added a commit that referenced this pull request Jul 27, 2026
* 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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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>
kRHYME7 added a commit that referenced this pull request Jul 27, 2026
* 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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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

---------

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>
kRHYME7 added a commit that referenced this pull request Jul 28, 2026
* 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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 HyDE-Project#1840

* fix changelog

---------

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>
kRHYME7 added a commit that referenced this pull request Jul 28, 2026
* 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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 HyDE-Project#1840

* fix changelog

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 28, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 HyDE-Project#1840

* fix changelog

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 29, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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

---------

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>
zeerayne pushed a commit to zeerayne/HyDE that referenced this pull request Jul 29, 2026
* open PR

* chore: Release - dev → rc (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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.

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)

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)

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.

(if appropriate)

Add any other context about the problem here.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

* **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.

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](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 (HyDE-Project#1742)

* fix(hypr):  unset HL_INITIAL_WORKSPACE_TOKEN in startup to prevent apps locking to workspace 1 (HyDE-Project#1781)

* docs: sync Chinese README with English version (HyDE-Project#1779)

* fix(volume): use [[ ]] for VOLUME_PIPEWIRE_ENABLE comparison (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#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 (HyDE-Project#1823)

Co-authored-by: NoistNT <noistnt@users.noreply.github.com>

* Lua (HyDE-Project#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 (HyDE-Project#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 HyDE-Project#1840

* fix changelog

---------

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants