enhancement: Deprecate custom pyenv and add uv as enviroment manager#1684
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughMigrates environment management from pip/venv to Astral's uv: rewrites pyutils/pip_env.py to drive uv, updates hyde-shell to dispatch uv, switches scripts to use the venv python, adds pyproject metadata, empties requirements.txt, and adds uv-install checks in restore_cfg.sh. (29 words) Changes
Sequence DiagramsequenceDiagram
participant User
participant Restore as restore_cfg.sh
participant UV as "uv CLI"
participant PipEnv as pip_env.py
participant VEnv as "hyde/pip_env (venv)"
participant Script as ShellScripts
User->>Restore: run restore_cfg.sh
Restore->>UV: command -v uv
alt uv missing
Restore->>UV: install uv (pacman or installer)
UV-->>Restore: installed
end
Restore->>PipEnv: rebuild_venv()
PipEnv->>UV: uv sync --project ...
UV->>VEnv: create/update env
VEnv-->>PipEnv: ready
User->>Script: run gamelauncher/gpuinfo
Script->>VEnv: ${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env/bin/python run backend
VEnv-->>Script: script output
Script-->>User: show results
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related issues
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (3)
Configs/.local/lib/hyde/pyutils/pip_env.py (3)
16-18: Dead code:sys.exit(1)is unreachable afterraise.The
sys.exit(1)statement will never execute because theraisestatement immediately transfers control.♻️ Proposed fix
if lib_dir is None: raise FileNotFoundError("None of the specified lib directories exist.") - sys.exit(1)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Configs/.local/lib/hyde/pyutils/pip_env.py` around lines 16 - 18, The sys.exit(1) after the raise is unreachable; remove the redundant sys.exit(1) line so the code only raises the FileNotFoundError when lib_dir is None (i.e., update the block that checks lib_dir and the raise FileNotFoundError(...) to not include the trailing sys.exit(1)). Ensure references to lib_dir and the FileNotFoundError remain intact.
130-134: Unused parameters ininstall_dependencies()signature.Similar to
create_venv(), bothvenv_pathandrequirements_fileparameters are ignored.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Configs/.local/lib/hyde/pyutils/pip_env.py` around lines 130 - 134, The function install_dependencies(venv_path=None, requirements_file=None) declares venv_path and requirements_file but never uses them; either remove these parameters or actually honor them by passing them into the underlying sync call. Update install_dependencies to forward venv_path and requirements_file to the helper _uv_sync (or build the appropriate uv sync command using those values) so the function uses the provided virtualenv path and requirements file, e.g., call _uv_sync(venv_path=venv_path, requirements_file=requirements_file) or construct and pass args to _uv_sync; keep the RuntimeError behavior based on result.returncode unchanged.
108-119: Unused parameters increate_venv()signature.The
venv_pathandrequirements_fileparameters are ignored. Consider removing them or documenting that they're kept for backward compatibility.♻️ Proposed fix if parameters are intentionally unused
-def create_venv(venv_path=None, requirements_file=None): - """Create/sync the virtual environment using uv.""" +def create_venv(venv_path=None, requirements_file=None): # noqa: ARG001 + """Create/sync the virtual environment using uv. + + Args: + venv_path: Unused, kept for API compatibility. + requirements_file: Unused, kept for API compatibility. + """🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Configs/.local/lib/hyde/pyutils/pip_env.py` around lines 108 - 119, The create_venv function currently declares parameters venv_path and requirements_file but never uses them; either remove these parameters from the create_venv(venv_path=None, requirements_file=None) signature or make them functional: if you want to support custom venv paths/requirements, pass them into the underlying _uv_sync call (or modify _uv_sync to accept those args) and use them to build the uv sync command; if you keep them for backward compatibility, document that in a short docstring and/or rename to _venv_path and _requirements_file and add a comment stating they are intentionally unused so linters/readers understand. Ensure changes reference create_venv and _uv_sync so reviewers can find the behavior to update.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Configs/.local/lib/hyde/pyproject.toml`:
- Around line 5-13: The pyproject.toml dependencies list is missing the
pyamdgpuinfo package which is imported in Configs/.local/lib/hyde/amdgpu.py (see
import of pyamdgpuinfo and fallback pip_env.v_import usage); update the
dependencies array in pyproject.toml to include "pyamdgpuinfo" (optionally with
a version specifier consistent with the project's pinning strategy) so the
package is declared for users and included when running dependency sync tools.
In `@Scripts/restore_cfg.sh`:
- Around line 269-279: The curl-based installer block that runs when uv is
missing (surrounded by the print_log "[uv]" checks) may leave uv out of PATH
because the sourced file "$HOME/.local/bin/env" is tolerated to fail with "||
true"; after the installer completes, explicitly attempt to source
"$HOME/.local/bin/env" and if that fails, fall back to adding "$HOME/.local/bin"
to PATH, then verify uv is now available (command -v uv) and if still missing
emit an error via print_log and exit nonzero before proceeding to the hyde-shell
pyinit calls; update the logic near the uv installation branch (the curl
installer section and the subsequent source line) and the verification step
prior to invoking hyde-shell pyinit.
---
Nitpick comments:
In `@Configs/.local/lib/hyde/pyutils/pip_env.py`:
- Around line 16-18: The sys.exit(1) after the raise is unreachable; remove the
redundant sys.exit(1) line so the code only raises the FileNotFoundError when
lib_dir is None (i.e., update the block that checks lib_dir and the raise
FileNotFoundError(...) to not include the trailing sys.exit(1)). Ensure
references to lib_dir and the FileNotFoundError remain intact.
- Around line 130-134: The function install_dependencies(venv_path=None,
requirements_file=None) declares venv_path and requirements_file but never uses
them; either remove these parameters or actually honor them by passing them into
the underlying sync call. Update install_dependencies to forward venv_path and
requirements_file to the helper _uv_sync (or build the appropriate uv sync
command using those values) so the function uses the provided virtualenv path
and requirements file, e.g., call _uv_sync(venv_path=venv_path,
requirements_file=requirements_file) or construct and pass args to _uv_sync;
keep the RuntimeError behavior based on result.returncode unchanged.
- Around line 108-119: The create_venv function currently declares parameters
venv_path and requirements_file but never uses them; either remove these
parameters from the create_venv(venv_path=None, requirements_file=None)
signature or make them functional: if you want to support custom venv
paths/requirements, pass them into the underlying _uv_sync call (or modify
_uv_sync to accept those args) and use them to build the uv sync command; if you
keep them for backward compatibility, document that in a short docstring and/or
rename to _venv_path and _requirements_file and add a comment stating they are
intentionally unused so linters/readers understand. Ensure changes reference
create_venv and _uv_sync so reviewers can find the behavior to update.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: ed2df4e0-2650-4923-bc9e-5fbe60883d1e
⛔ Files ignored due to path filters (1)
Configs/.local/lib/hyde/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
Configs/.local/bin/hyde-shellConfigs/.local/lib/hyde/gamelauncher.shConfigs/.local/lib/hyde/gpuinfo.shConfigs/.local/lib/hyde/pyproject.tomlConfigs/.local/lib/hyde/pyutils/pip_env.pyConfigs/.local/lib/hyde/pyutils/requirements.txtScripts/restore_cfg.shWiki
💤 Files with no reviewable changes (1)
- Configs/.local/lib/hyde/pyutils/requirements.txt
add pyamdgpuinfo to toml
|
@rubiin you guys are the python people. Thanks in advance!!! |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
Configs/.local/bin/hyde-shell (1)
514-516: After installing pyprland, the user must re-run the command.When
pypris not found, this line installspyprlandbut the function then exits without starting the daemon. The user must runhyde-shell pypragain for it to work.This may be intentional (install on first call, use on subsequent calls), but consider adding a message or recursively invoking
run_pyprafter successful installation.💡 Proposed enhancement to provide user feedback
else UV_PROJECT_ENVIRONMENT="${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env" uv add "pyprland==2.4.7" --project "${LIB_DIR}/hyde" + print_log -sec "pypr" "pyprland installed. Please run 'hyde-shell pypr' again to start it." fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Configs/.local/bin/hyde-shell` around lines 514 - 516, The install branch that runs UV_PROJECT_ENVIRONMENT="${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env" uv add "pyprland==2.4.7" --project "${LIB_DIR}/hyde" currently exits without starting the daemon, forcing the user to re-run hyde-shell pypr; modify the logic in the run_pypr function so that after a successful uv add (check its exit status) you either (a) print a clear message that pyprland was installed and then invoke run_pypr again to start the daemon, or (b) print a success message instructing the user to re-run the command; ensure you reference the same UV_PROJECT_ENVIRONMENT and ${LIB_DIR}/hyde context and guard the recursive call by re-checking for the pypr executable to avoid infinite recursion.Scripts/restore_cfg.sh (1)
269-284: Consider adding verification after pacman installation.The PATH fallback (lines 279-282) correctly handles the curl-based installation case. However, after
pacman -S --noconfirm uv(line 273), there's no verification thatuvis actually available before proceeding tohyde-shell pyinit.If the pacman installation fails (e.g., network issues, mirror problems), the script will continue and
hyde-shell pyinitwill fail with an obscure error.🛡️ Proposed fix to add verification after pacman installation
if command -v pacman &>/dev/null; then sudo pacman -S --noconfirm uv + if ! command -v uv &>/dev/null; then + print_log -r "[uv]" "Failed to install uv via pacman" + exit 1 + fi else🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@Scripts/restore_cfg.sh` around lines 269 - 284, The pacman branch after installing uv (the block using "pacman -S --noconfirm uv") lacks a post-install verification, so add a check immediately after that install command to verify command -v uv succeeds; if it fails, attempt the same PATH export fallback (export PATH="$HOME/.local/bin:$PATH") and/or log a fatal error via print_log and exit non‑zero so subsequent commands like "hyde-shell pyinit" don't run with an absent uv binary. Place this verification logic directly after the pacman install call in the same conditional branch, using the existing print_log helper to report success or failure and ensure the script exits on unrecoverable failure.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@Configs/.local/bin/hyde-shell`:
- Around line 514-516: The install branch that runs
UV_PROJECT_ENVIRONMENT="${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env" uv
add "pyprland==2.4.7" --project "${LIB_DIR}/hyde" currently exits without
starting the daemon, forcing the user to re-run hyde-shell pypr; modify the
logic in the run_pypr function so that after a successful uv add (check its exit
status) you either (a) print a clear message that pyprland was installed and
then invoke run_pypr again to start the daemon, or (b) print a success message
instructing the user to re-run the command; ensure you reference the same
UV_PROJECT_ENVIRONMENT and ${LIB_DIR}/hyde context and guard the recursive call
by re-checking for the pypr executable to avoid infinite recursion.
In `@Scripts/restore_cfg.sh`:
- Around line 269-284: The pacman branch after installing uv (the block using
"pacman -S --noconfirm uv") lacks a post-install verification, so add a check
immediately after that install command to verify command -v uv succeeds; if it
fails, attempt the same PATH export fallback (export
PATH="$HOME/.local/bin:$PATH") and/or log a fatal error via print_log and exit
non‑zero so subsequent commands like "hyde-shell pyinit" don't run with an
absent uv binary. Place this verification logic directly after the pacman
install call in the same conditional branch, using the existing print_log helper
to report success or failure and ensure the script exits on unrecoverable
failure.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 0c6c0d35-3283-4012-842a-dafbd76ca239
⛔ Files ignored due to path filters (1)
Configs/.local/lib/hyde/uv.lockis excluded by!**/*.lock
📒 Files selected for processing (4)
Configs/.local/bin/hyde-shellConfigs/.local/lib/hyde/pyproject.tomlConfigs/.local/lib/hyde/pyutils/pip_env.pyScripts/restore_cfg.sh
✅ Files skipped from review due to trivial changes (1)
- Configs/.local/lib/hyde/pyproject.toml
kRHYME7
left a comment
There was a problem hiding this comment.
Thanks. Everything looks good but please avoid breaking the existing envs. Never tested it yet though.
UV's core advantage over pip is its speed , almost 10-100x so i say its a great addition. |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@Configs/.local/bin/hyde-shell`:
- Around line 672-674: The new top-level case branch handling "uv" (calling
run_uv) wasn’t added to the help and completion metadata; update the USAGE()
function, the get_completion_data() function, and the arrays/variables that
generate the bash/zsh/fish command lists to include "uv" (and a short
description consistent with other entries), and ensure any switch/case or
completion mapping that enumerates top-level subcommands includes "uv" so --help
and shell completions show the new entrypoint; look for references to USAGE,
get_completion_data, and the command lists used to generate completions and add
the "uv" entry there.
- Line 418: Replace the final exec that calls "exec python3 \"$dir/${1}.py\"
\"${@:2}\"" so it uses the venv interpreter created by python_activate (or the
explicit venv path
${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env/bin/python) instead of
resolving "python3" via PATH; update the exec to call that venv python (e.g.
exec "$VENV_PYTHON" "$dir/${1}.py" "${@:2}") and ensure the script sets
VENV_PYTHON from python_activate or the explicit
${XDG_STATE_HOME:-$HOME/.local/state}/hyde/pip_env/bin/python before exec.
- Line 497: Replace the runtime fallback call that currently runs
UV_PROJECT_ENVIRONMENT=... uv add "pyprland==2.4.7" --project "${LIB_DIR}/hyde"
with a non-invasive pip install invocation so the virtualenv is repaired without
touching project metadata; use the same UV_PROJECT_ENVIRONMENT (or the created
venv interpreter) and call uv pip install --python <interpreter-path>
pyprland==2.4.7 (targeting the venv/interpreter directly) instead of uv add so
pyproject.toml and uv.lock are not modified.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e00ab7c9-d531-4e5c-b385-a06c09101f61
📒 Files selected for processing (1)
Configs/.local/bin/hyde-shell
|
Finaly i dindt do a class because would be an overkill for this amount of code and it would be worst to apply the cli commands so I just refactorized and cleaned the functions for mor clarity |
…tall uninstall functions + sync function
…nd rebuilding logic
|
Everything seems good now, just let me imporve the install/uninstall pipeline and its ready to merge |
|
@0xGeN02 Will be merging this now. Please look for regressions. Thank you! BTW can we develeopers use the rc branch as our stable branch ? this way we can track bugs before hitting the master branch. It would be much better to use the dev branch too! Thank you! |
There was a problem hiding this comment.
BTW , @0xGeN02 what happens if in user side they install package? eg the pyamdgpu lib?
will it still work with uv.lock?
There was a problem hiding this comment.
I added a fix for more stability, now works like this:
Optional dependencies are declared in pyproject.toml under [project.optional-dependencies] and installed on-demand via v_import:
python_env.v_import("pyamdgpuinfo", extra="amd")So now they are declared under the uv.lock and there will be no conflicts for the user after doing git pull
Give me some minutes to test everything
There was a problem hiding this comment.
When the module is missing, v_import runs uv sync --extra <group>, installing all packages in that group at once. If the module is already present, it imports directly with no side effects.
This keeps upstream pyproject.toml and uv.lock clean
PD: user-specific packages are never added via uv add, avoiding merge conflicts on updates
This continues #1684 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added optional AMD GPU support as an installable extra. * **Bug Fixes** * Logger input validated; invalid levels now default to INFO. * Idle-inhibitor no longer closes the display connection when audio stops. * **Chores** * Simplified dependency loading across utilities; several components now expect required modules to be preinstalled. * Adjusted installation/extra handling for AMD support. * Updated wiki submodule reference. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This is an automated PR to promote changes from `dev` to `rc`. Please review and test before merging. See [TESTING.md](./TESTING.md) for complete testing instructions. According to our release policy, this PR is expected to be merged during: **Freeze Week (see release policy)** Testers are encouraged to test the changes before merging. Please note that this schedule may be adjusted based on the needs of the project. --- * chore Added hyprquery to the core package (e348cea) by kRHYME7 * feat: add `waydeeper` wallpaper backend support (#1685) (b5c87e1) by Ilya Bogdanov * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (aaf6de7) by kRHYME7 * chore removed stray file from 2 yrs ago huhu (5bbc557) by kRHYME7 * chore Added dynamic fingerprint support. (590236f) by kRHYME7 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (a27bd70) by kRHYME7 * fix: `NoOpLogger` caused exception if no `log_level` env is set (#1688) (a64cfe8) by Khing * fix: additional `NoOpLogger` fix suggested by coderabbit (445e373) by Ilya Bogdanov * fix: NoOpLogger cause no exception (d12ade2) by Ilya Bogdanov * feat: update pyamdgpuinfo integration with optional-dependencies (#1687) (d1ad741) by Khing * chore didnt know the wiki was deprecated... (64d06ee) by 0xGeN02 * chore update wiki with uv python env specification (3206c13) by 0xGeN02 * chore Merge branch 'uv' of https://github.com/0xGeN02/HyDE into uv (395194f) by 0xGeN02 * chore refactor: enhance type annotations and structure in weather.py for better clarity and maintainability (13010f4) by 0xGeN02 * chore Merge branch 'dev' into uv (659519e) by Khing * fix: simplify NoOpLogger's __getattr__ method by removing unused parameters (b12ea76) by 0xGeN02 * chore refactor: enhance logging functionality in UnifiedLogger for consistent message formatting (57dd0f2) by 0xGeN02 * fix: remove unused imports and clean up import statements in amdgpu.py (91a7f1d) by 0xGeN02 * fix: remove type ignore comments from inhibitor creation in main function (df73540) by 0xGeN02 * fix: remove shutdown call when stopping idle inhibition due to no audio (8949f1c) by 0xGeN02 * fix: adjust import statement for requests in weather.py (e290c72) by 0xGeN02 * chore refactor: clean up imports and enhance logger initialization in various modules (fa944a3) by 0xGeN02 * feat: update pyamdgpuinfo integration and enhance v_import functionality with optional dependencies (f81ffdc) by 0xGeN02 * chore added uv (52cd990) by kRHYME7 * chore enhancement: Deprecate custom pyenv and add uv as enviroment manager (#1684) (847cb81) by Khing * chore Merge branch 'dev' into uv (98d5e97) by Khing * chore added experimental session management and alt-tab feat (504c830) by kRHYME7 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (b3c468b) by kRHYME7 * feat: enhance cmd_uv to support --hyde flag for project environment context (beb66e5) by 0xGeN02 * feat: add 'uv' command to execute raw uv commands in the CLI (1c3c67b) by 0xGeN02 * chore add animation stream (0a67f86) by 0xGeN02 * feat: enhance virtual environment management with improved creation and rebuilding logic (f1791ff) by 0xGeN02 * feat: enhance python_env.py with detailed docstrings and improved install uninstall functions + sync function (19881bb) by 0xGeN02 * chore refactor: reorganize core helpers and execution layer for clarity and maintainability (e62b8c9) by 0xGeN02 * chore renamed to python_env (e0f0338) by 0xGeN02 * chore renamed to hyde_pyenv for more clarity (ecba2b7) by 0xGeN02 * feat: add 'uv' command for package management and update built-in commands (b9bf562) by 0xGeN02 * fix: rename run_pip to run_uv and update usage instructions in hyde-shell (f56f23e) by 0xGeN02 * fix: remove pyamdgpuinfo from dependencies in pyproject.toml and uv.lock (38b6df5) by 0xGeN02 * chore Merge branch 'dev' into uv (47d913b) by Khing * fix(gamelauncher): fix cover art detection for external libraries and… (#1681) (ecbdec7) by Khing * chore Merge branch 'uv' of https://github.com/0xGeN02/HyDE into uv (3f8086d) by 0xGeN02 * fix: update python commands to python3 and enhance package management in pip_env.py (1a7cfe3) by 0xGeN02 * chore Merge branch 'dev' into uv (5a3ca19) by Khing * fix: ensure uv is available after installation in restore_cfg.sh add pyamdgpuinfo to toml (cfa75af) by 0xGeN02 * chore Replace pip install with uv add for pyprland in run_pypr function (92e6ffe) by 0xGeN02 * chore Refactopr code to use uv instewad of custon python enviroment (f05956e) by 0xGeN02 * chore Merge branch 'dev' into fix-gamelouncher (fb18108) by Khing * fix(hyde-shell): limit search depth in list_script_path and simplify completion data handling (e4de338) by 0xGeN02 * chore Merge branch 'fix-gamelouncher' of https://github.com/0xGeN02/HyDE into fix-gamelouncher (8f8d139) by 0xGeN02 * fix(hyde-shell): enhance list_script_path to avoid duplicate directory searches and handle empty paths (73d5b0a) by 0xGeN02 * chore Update Configs/.local/bin/hyde-shell (c6bbf16) by 0xGeN02 * chore Update Configs/.local/bin/hyde-shell (09466d9) by 0xGeN02 * fix(gamelauncher): redirect icon fetch logs to stderr for better error handling (ee2f1ff) by 0xGeN02 * fix(hyde-shell): add list_script function for newline-delimited script names and update command handling (102377b) by 0xGeN02 * fix(gamelauncher): enhance find_header function to improve image lookup priority and handle directory access errors (7bb9768) by 0xGeN02 * fix(hyde-shell): update built-in commands to include script option for completion (c89d9e2) by 0xGeN02 * fix(hyde-shell): remove deprecated --list-script option from command handling (c2bd468) by 0xGeN02 * fix(hyde-shell): declare local variable for root in list_scripts_pretty function fix(gamelauncher): optimize subdirectory iteration for game icon retrieval (a2a007d) by 0xGeN02 * fix(hyde-shell): reset groups and roots arrays before declaration in list_scripts_pretty (7900062) by 0xGeN02 * fix(gamelauncher): improve file existence checks and update fallback image priorities (2090d69) by 0xGeN02 * fix colors (8f0c656) by 0xGeN02 * chore add list scripts pretty to hyde-shell (99b97a1) by 0xGeN02 * fix(gamelauncher): fix cover art detection for external libraries and modern Steam (f14378f) by 0xGeN02 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (e21ffb3) by kRHYME7 * chore See Changelog (917d2d9) by kRHYME7 * feat: modify Alt+Tab to cycle windows with alterzorder top (#1617) (4cda3b9) by Khing * chore Merge branch 'dev' into features (be5a549) by Khing * chore Update app2unit from https://github.com/Vladimir-csp/app2unit/blob/master/app2unit (7c99e79) by kRHYME7 * chore Update app2unit from https://github.com/Vladimir-csp/app2unit/blob/master/app2unit (e17a45d) by kRHYME7 * chore l10n: Lay down some localization infra for bash. Without sacrificing speed. (189358c) by kRHYME7 * chore Merge branch 'dev' into features (381b2d9) by Rubin Bhandari * chore Merge branch 'rc' into dev (a82a317) by Khing * chore up (ef542fd) by kRHYME7 * chore pr (a883cae) by kRHYME7 * chore yey (0b97822) by kRHYME7 * fix:use hyprpolkitagent (#1650) (6f165bb) by Rubin Bhandari * chore Merge branch 'dev' into hyprpolkitagent (d31fed7) by Rubin Bhandari * feat: Enhance polkitkdeauth.sh to include multiple Polkit agent paths for better compatibility (96c5b05) by Rubin Bhandari * feat: wl-togglesink to mute/unmute active-window. (#1598) (04bb99e) by Khing * chore Merge branch 'dev' into dev (8b0b687) by Vyle * chore Merge branch 'dev' into hyprpolkitagent (ebcf5e7) by Rubin Bhandari * feat: hyprsunset (#1644) (10fc4ee) by Khing * chore Merge branch 'dev' into hypsunset (a5aa915) by Khing * chore Merge branch 'dev' into hyprpolkitagent (518f7c3) by Khing * doc: French translation for Hyprdots-to-HyDE.fr.md (#1641) (1b46f94) by Rubin Bhandari * chore Merge branch 'dev' into master (d0d8b48) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (77a7667) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (7a85e23) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (02ccdbc) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (e375698) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (f57d21f) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (77f7423) by Rubin Bhandari * chore Merge branch 'dev' into hyprpolkitagent (db027b2) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (dc3fa88) by Rubin Bhandari * chore removed deprecated files (8ffa830) by Khing * feat: hyprsunset (c50879a) by Rubin Bhandari * chore cleanup swww (d009115) by Khing * chore removed deprecated files (29c7eae) by Khing * chore cleanup swww (7f8ab56) by Khing * chore removed deprecated files (b89f0e9) by Khing * chore Merge branch 'dev' into hyprpolkitagent (2857459) by Rubin Bhandari * fix:use hyprpolkitagent (b9ea5d5) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (f5da220) by Rubin Bhandari * chore Wallpaper: Pt. 1 of multi theming backend. (3e4bec4) by Khing * chore Porting to awww (74a2f31) by Khing * chore Add www-daemon to gaming workflow namespace match (d3d8df0) by Khing * chore Merge branch 'dev' into hypsunset (6298fd5) by Khing * chore Fix: gamemode.sh windowrule syntax issue when changing window opacity (#1519) (d9fc44a) by Khing * chore Implement gamemode lock file functionality (7582d04) by Khing * chore Update Configs/.local/share/hyde/schema/config.toml (f284e42) by Rubin Bhandari * chore Update Scripts/restore_cfg.psv (70e4da3) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (2bd8eb9) by Rubin Bhandari * feat: add hyprsunset configuration file (151066a) by Rubin Bhandari * feat: add blue light filter daemon configuration (f5424d2) by Rubin Bhandari * feat: hyprsunset (a93a77f) by Rubin Bhandari * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (3fefb7b) by Rubin Bhandari * fix: hyprland links (#1643) (658eca7) by Rubin Bhandari * fix: hyprland links (c9cb4ac) by Rubin Bhandari * chore Merge branch 'dev' into dev (c65853f) by Rubin Bhandari * chore Translate Hyprdots-to-HyDE document to French (bd840a6) by lelelelkorgpt * chore Fix French text and improve clarity in Hyprdots-to-HyDE (0ee0390) by lelelelkorgpt * chore Merge branch 'dev' into features (6091ae3) by Rubin Bhandari * chore Add French documentation for Hyprdots to HyDE (3cdde12) by lelelelkorgpt * chore Merge branch 'rc' into dev (cd39869) by Khing * chore add missing dashes to ozone-platform flag in electron-flags.conf (#1634) (f6bab84) by Khing * chore Merge branch 'dev' into master (3d3582e) by Khing * chore add missing dashes to ozone-platform flag in electron-flags.conf (a285c94) by Cameloon * chore Merge branch 'dev' into features (94ab08d) by Omong * chore Merge branch 'HyDE-Project:dev' into dev (e05ba07) by Vyle * chore Merge branch 'dev' into features (0f69b26) by Omong * feat: focus on top features for identical window layer -> changed alt + tab keybinding (3591d8f) by O-mong * feat: focus on top features for identical window layer (8287ed7) by O-mong * chore Update wl-togglesink.sh (70f0130) by Vyle * chore Update Configs/.local/lib/hyde/wl-togglesink.sh (b695f90) by Vyle * chore Update wl-togglesink.sh (b310e34) by Vyle * chore Update wl-togglesink.sh (f23d9a4) by Vyle * chore Update wl-togglesink.sh (056b876) by Vyle * chore Update wl-togglesink.sh (be3a4be) by Vyle * chore Update wl-togglesink.sh (c6236bd) by Vyle * chore Update wl-togglesink.sh (437cd76) by Vyle * chore Rehencing the script. (e3afb68) by Vyle * chore Update Configs/.local/lib/hyde/wl-togglesink.sh (3dd62d6) by Vyle * chore Update wl-togglesink.sh (6b3b3d6) by Vyle * chore Update keybindings.conf (3dd12cb) by Vyle * chore Introducing wl-togglesink to mute/unmute active-window. (051d337) by IvyProtocol * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (898ed2e) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (828f84f) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (8324cf6) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (195a0b1) by Khing * chore Refactor gamemode.sh to use hyde-shell workflows (4ccf339) by post2424 * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (b0a248c) by Khing * chore Fix windowrule command syntax in gamemode.sh (df276de) by post2424 * chore Merge branch 'master' into dev (088514b) by kRHYME7 * fix: fastfetch chassis info (d139ece) by kRHYME7 --- Please review the changes carefully before merging.
This is an automated PR to promote changes from `rc` to `master`. Please review and test before merging. See [TESTING.md](./TESTING.md) for complete testing instructions. According to our release policy, this PR is expected to be merged on: **1st or 3rd Friday of the month** Testers are encouraged to test the changes before merging. Please note that this schedule may be adjusted based on the needs of the project. --- * chore Merge branch 'dev' into rc (092ac88) by kRHYME7 * chore Fix #1695 (dfdb4c3) by kRHYME7 * chore chore: Release - dev → rc (#1669) (5317560) by Khing * chore Added hyprquery to the core package (e348cea) by kRHYME7 * feat: add `waydeeper` wallpaper backend support (#1685) (b5c87e1) by Ilya Bogdanov * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (aaf6de7) by kRHYME7 * chore removed stray file from 2 yrs ago huhu (5bbc557) by kRHYME7 * chore Added dynamic fingerprint support. (590236f) by kRHYME7 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (a27bd70) by kRHYME7 * fix: `NoOpLogger` caused exception if no `log_level` env is set (#1688) (a64cfe8) by Khing * fix: additional `NoOpLogger` fix suggested by coderabbit (445e373) by Ilya Bogdanov * fix: NoOpLogger cause no exception (d12ade2) by Ilya Bogdanov * feat: update pyamdgpuinfo integration with optional-dependencies (#1687) (d1ad741) by Khing * chore didnt know the wiki was deprecated... (64d06ee) by 0xGeN02 * chore update wiki with uv python env specification (3206c13) by 0xGeN02 * chore Merge branch 'uv' of https://github.com/0xGeN02/HyDE into uv (395194f) by 0xGeN02 * chore refactor: enhance type annotations and structure in weather.py for better clarity and maintainability (13010f4) by 0xGeN02 * chore Merge branch 'dev' into uv (659519e) by Khing * fix: simplify NoOpLogger's __getattr__ method by removing unused parameters (b12ea76) by 0xGeN02 * chore refactor: enhance logging functionality in UnifiedLogger for consistent message formatting (57dd0f2) by 0xGeN02 * fix: remove unused imports and clean up import statements in amdgpu.py (91a7f1d) by 0xGeN02 * fix: remove type ignore comments from inhibitor creation in main function (df73540) by 0xGeN02 * fix: remove shutdown call when stopping idle inhibition due to no audio (8949f1c) by 0xGeN02 * fix: adjust import statement for requests in weather.py (e290c72) by 0xGeN02 * chore refactor: clean up imports and enhance logger initialization in various modules (fa944a3) by 0xGeN02 * feat: update pyamdgpuinfo integration and enhance v_import functionality with optional dependencies (f81ffdc) by 0xGeN02 * chore added uv (52cd990) by kRHYME7 * chore enhancement: Deprecate custom pyenv and add uv as enviroment manager (#1684) (847cb81) by Khing * chore Merge branch 'dev' into uv (98d5e97) by Khing * chore added experimental session management and alt-tab feat (504c830) by kRHYME7 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (b3c468b) by kRHYME7 * feat: enhance cmd_uv to support --hyde flag for project environment context (beb66e5) by 0xGeN02 * feat: add 'uv' command to execute raw uv commands in the CLI (1c3c67b) by 0xGeN02 * chore add animation stream (0a67f86) by 0xGeN02 * feat: enhance virtual environment management with improved creation and rebuilding logic (f1791ff) by 0xGeN02 * feat: enhance python_env.py with detailed docstrings and improved install uninstall functions + sync function (19881bb) by 0xGeN02 * chore refactor: reorganize core helpers and execution layer for clarity and maintainability (e62b8c9) by 0xGeN02 * chore renamed to python_env (e0f0338) by 0xGeN02 * chore renamed to hyde_pyenv for more clarity (ecba2b7) by 0xGeN02 * feat: add 'uv' command for package management and update built-in commands (b9bf562) by 0xGeN02 * fix: rename run_pip to run_uv and update usage instructions in hyde-shell (f56f23e) by 0xGeN02 * fix: remove pyamdgpuinfo from dependencies in pyproject.toml and uv.lock (38b6df5) by 0xGeN02 * chore Merge branch 'dev' into uv (47d913b) by Khing * fix(gamelauncher): fix cover art detection for external libraries and… (#1681) (ecbdec7) by Khing * chore Merge branch 'uv' of https://github.com/0xGeN02/HyDE into uv (3f8086d) by 0xGeN02 * fix: update python commands to python3 and enhance package management in pip_env.py (1a7cfe3) by 0xGeN02 * chore Merge branch 'dev' into uv (5a3ca19) by Khing * fix: ensure uv is available after installation in restore_cfg.sh add pyamdgpuinfo to toml (cfa75af) by 0xGeN02 * chore Replace pip install with uv add for pyprland in run_pypr function (92e6ffe) by 0xGeN02 * chore Refactopr code to use uv instewad of custon python enviroment (f05956e) by 0xGeN02 * chore Merge branch 'dev' into fix-gamelouncher (fb18108) by Khing * fix(hyde-shell): limit search depth in list_script_path and simplify completion data handling (e4de338) by 0xGeN02 * chore Merge branch 'fix-gamelouncher' of https://github.com/0xGeN02/HyDE into fix-gamelouncher (8f8d139) by 0xGeN02 * fix(hyde-shell): enhance list_script_path to avoid duplicate directory searches and handle empty paths (73d5b0a) by 0xGeN02 * chore Update Configs/.local/bin/hyde-shell (c6bbf16) by 0xGeN02 * chore Update Configs/.local/bin/hyde-shell (09466d9) by 0xGeN02 * fix(gamelauncher): redirect icon fetch logs to stderr for better error handling (ee2f1ff) by 0xGeN02 * fix(hyde-shell): add list_script function for newline-delimited script names and update command handling (102377b) by 0xGeN02 * fix(gamelauncher): enhance find_header function to improve image lookup priority and handle directory access errors (7bb9768) by 0xGeN02 * fix(hyde-shell): update built-in commands to include script option for completion (c89d9e2) by 0xGeN02 * fix(hyde-shell): remove deprecated --list-script option from command handling (c2bd468) by 0xGeN02 * fix(hyde-shell): declare local variable for root in list_scripts_pretty function fix(gamelauncher): optimize subdirectory iteration for game icon retrieval (a2a007d) by 0xGeN02 * fix(hyde-shell): reset groups and roots arrays before declaration in list_scripts_pretty (7900062) by 0xGeN02 * fix(gamelauncher): improve file existence checks and update fallback image priorities (2090d69) by 0xGeN02 * fix colors (8f0c656) by 0xGeN02 * chore add list scripts pretty to hyde-shell (99b97a1) by 0xGeN02 * fix(gamelauncher): fix cover art detection for external libraries and modern Steam (f14378f) by 0xGeN02 * chore Merge branch 'dev' of https://github.com/HyDE-Project/HyDE into dev (e21ffb3) by kRHYME7 * chore See Changelog (917d2d9) by kRHYME7 * feat: modify Alt+Tab to cycle windows with alterzorder top (#1617) (4cda3b9) by Khing * chore Merge branch 'dev' into features (be5a549) by Khing * chore Update app2unit from https://github.com/Vladimir-csp/app2unit/blob/master/app2unit (7c99e79) by kRHYME7 * chore Update app2unit from https://github.com/Vladimir-csp/app2unit/blob/master/app2unit (e17a45d) by kRHYME7 * chore l10n: Lay down some localization infra for bash. Without sacrificing speed. (189358c) by kRHYME7 * chore Merge branch 'dev' into features (381b2d9) by Rubin Bhandari * chore Merge branch 'rc' into dev (a82a317) by Khing * chore up (ef542fd) by kRHYME7 * chore Merge branch 'master' into rc (6e1078f) by Khing * chore pr (92a025f) by kRHYME7 * chore pr (a883cae) by kRHYME7 * chore Merge branch 'master' into rc (594ae7f) by Rubin Bhandari * chore chore: Release - dev → rc (#1637) (ebad7ad) by github-actions[bot] * chore yey (0b97822) by kRHYME7 * fix:use hyprpolkitagent (#1650) (6f165bb) by Rubin Bhandari * chore Merge branch 'dev' into hyprpolkitagent (d31fed7) by Rubin Bhandari * feat: Enhance polkitkdeauth.sh to include multiple Polkit agent paths for better compatibility (96c5b05) by Rubin Bhandari * feat: wl-togglesink to mute/unmute active-window. (#1598) (04bb99e) by Khing * chore Merge branch 'dev' into dev (8b0b687) by Vyle * chore Merge branch 'dev' into hyprpolkitagent (ebcf5e7) by Rubin Bhandari * feat: hyprsunset (#1644) (10fc4ee) by Khing * chore Merge branch 'dev' into hypsunset (a5aa915) by Khing * chore Merge branch 'dev' into hyprpolkitagent (518f7c3) by Khing * doc: French translation for Hyprdots-to-HyDE.fr.md (#1641) (1b46f94) by Rubin Bhandari * chore Merge branch 'dev' into master (d0d8b48) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (77a7667) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (7a85e23) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (02ccdbc) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (e375698) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (f57d21f) by Rubin Bhandari * chore Update Source/docs/Hyprdots-to-HyDE.fr.md (77f7423) by Rubin Bhandari * chore Merge branch 'dev' into hyprpolkitagent (db027b2) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (dc3fa88) by Rubin Bhandari * chore removed deprecated files (8ffa830) by Khing * feat: hyprsunset (c50879a) by Rubin Bhandari * chore cleanup swww (d009115) by Khing * chore removed deprecated files (29c7eae) by Khing * chore cleanup swww (7f8ab56) by Khing * chore removed deprecated files (b89f0e9) by Khing * chore Merge branch 'dev' into hyprpolkitagent (2857459) by Rubin Bhandari * fix:use hyprpolkitagent (b9ea5d5) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (f5da220) by Rubin Bhandari * chore Wallpaper: Pt. 1 of multi theming backend. (3e4bec4) by Khing * chore Porting to awww (74a2f31) by Khing * chore Add www-daemon to gaming workflow namespace match (d3d8df0) by Khing * chore Merge branch 'dev' into hypsunset (6298fd5) by Khing * chore Fix: gamemode.sh windowrule syntax issue when changing window opacity (#1519) (d9fc44a) by Khing * chore Implement gamemode lock file functionality (7582d04) by Khing * chore Update Configs/.local/share/hyde/schema/config.toml (f284e42) by Rubin Bhandari * chore Update Scripts/restore_cfg.psv (70e4da3) by Rubin Bhandari * chore Merge branch 'dev' into hypsunset (2bd8eb9) by Rubin Bhandari * feat: add hyprsunset configuration file (151066a) by Rubin Bhandari * feat: add blue light filter daemon configuration (f5424d2) by Rubin Bhandari * feat: hyprsunset (a93a77f) by Rubin Bhandari * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (3fefb7b) by Rubin Bhandari * fix: hyprland links (#1643) (658eca7) by Rubin Bhandari * fix: hyprland links (c9cb4ac) by Rubin Bhandari * chore Merge branch 'dev' into dev (c65853f) by Rubin Bhandari * chore Translate Hyprdots-to-HyDE document to French (bd840a6) by lelelelkorgpt * chore Fix French text and improve clarity in Hyprdots-to-HyDE (0ee0390) by lelelelkorgpt * chore Merge branch 'dev' into features (6091ae3) by Rubin Bhandari * chore Add French documentation for Hyprdots to HyDE (3cdde12) by lelelelkorgpt * chore Merge branch 'rc' into dev (cd39869) by Khing * chore add missing dashes to ozone-platform flag in electron-flags.conf (#1634) (f6bab84) by Khing * chore Merge branch 'dev' into master (3d3582e) by Khing * chore add missing dashes to ozone-platform flag in electron-flags.conf (a285c94) by Cameloon * chore Merge branch 'dev' into features (94ab08d) by Omong * chore Merge branch 'HyDE-Project:dev' into dev (e05ba07) by Vyle * chore Merge branch 'dev' into features (0f69b26) by Omong * feat: focus on top features for identical window layer -> changed alt + tab keybinding (3591d8f) by O-mong * feat: focus on top features for identical window layer (8287ed7) by O-mong * chore Update wl-togglesink.sh (70f0130) by Vyle * chore Update Configs/.local/lib/hyde/wl-togglesink.sh (b695f90) by Vyle * chore Update wl-togglesink.sh (b310e34) by Vyle * chore Update wl-togglesink.sh (f23d9a4) by Vyle * chore Update wl-togglesink.sh (056b876) by Vyle * chore Update wl-togglesink.sh (be3a4be) by Vyle * chore Update wl-togglesink.sh (c6236bd) by Vyle * chore Update wl-togglesink.sh (437cd76) by Vyle * chore Rehencing the script. (e3afb68) by Vyle * chore Update Configs/.local/lib/hyde/wl-togglesink.sh (3dd62d6) by Vyle * chore Update wl-togglesink.sh (6b3b3d6) by Vyle * chore Update keybindings.conf (3dd12cb) by Vyle * chore Introducing wl-togglesink to mute/unmute active-window. (051d337) by IvyProtocol * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (898ed2e) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (828f84f) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (8324cf6) by Khing * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (195a0b1) by Khing * chore Refactor gamemode.sh to use hyde-shell workflows (4ccf339) by post2424 * chore Merge branch 'dev' into fix-gamemode.sh-windowrule-syntax (b0a248c) by Khing * chore Fix windowrule command syntax in gamemode.sh (df276de) by post2424 * chore Merge branch 'master' into dev (088514b) by kRHYME7 * fix: fastfetch chassis info (d139ece) by kRHYME7 --- Please review the changes carefully before merging.






Closes #1683
Summary by CodeRabbit
New Features
uvtool for dependency management and automatic installation if missing.Chores
Refactor