Repository navigation
feat: user wallpaper discovery, ultra-fast switching, app session persistence, and bar open-on-hover - #147
Merged
Conversation
…switching, prevent app termination on restart, and add open-on-hover
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR addresses all four requested improvements:
1. Wallpaper Discovery for Custom User Directories (
Mod+Shift+W)• Added
~/.local/share/agility-shell/wallpapers(and$XDG_DATA_HOME/agility-shell/wallpapers) to wallpaper search candidates in bothcrates/agility-cli/src/main.rsandcrates/agilityd/src/modules/theme.rs.• Updated
WallpaperSelectorContent.qmlto discover and deduplicate wallpapers from bothagl wallpaper listand~/.local/share/agility-shell/wallpapersdirectly, immediately revealing user wallpapers like010.png,011.jpg,036.png,078.jpg,086.pngin the wallpaper switcher.2. Prevent Open Application Windows (e.g. Brave) From Closing on Shell Restart
• Resolved the root cause where child applications were terminated during
agl restart/systemctl --user restart agility-shell.service:systemd/agility-shell.servicefromKillMode=mixedtoKillMode=process. This instructs systemd to only terminate the main shell process when restarting, leaving all child application windows completely untouched.crates/agilityd/src/modules/launcher.rsandcrates/agility-cli/src/main.rsby spawning processes within systemd's independentapp.sliceviasystemd-run --user --scope --slice=app.slice -q -- <cmd>withsetsid()detachment. Open windows (like Brave) survive shell restarts seamlessly.3. Ultra-Fast Wallpaper Switching (< 1 Second)
• In
WallpaperManager.qml, added an immediate high-speed directawwwinvocation running concurrently with daemon token extraction.• Configured optimal transition parameters across CLI, daemon, and UI:
•
--filter Bilinear(eliminating expensive Lanczos3 resampling)•
--transition-duration 0.20•
--transition-step 180•
--transition-fps 60• Wallpapers now switch smoothly and visually in under 250 milliseconds (< 1s).
4. "Open on Hover" Feature in Desktop Bar Settings
• Added
barOpenOnHoverproperty with persistent serialization inSettingsService.qml.• Added a toggle in Desktop Bar Settings (
BarSettings.qml) allowing users to enable/disable "Open on Hover".• Implemented 160ms debounced hover opening across bar widgets:
• Control Center (
ControlCenterButton.qml)• Notifications (
NotificationsButton.qml)• Weather Card (
WeatherPill.qml)• Music Player (
MediaButton.qml)• Clock/Calendar (
ClockButton.qml,IslandClock.qml)• Bar buttons & Applets (
BarButton.qml,BatteryPill.qml,NetworkPill.qml)• Moving the cursor over bar elements smoothly opens their respective menus without requiring manual clicking.
Verification
• Built release binaries for
aglandagilitydand installed to~/.local/bin/.• Verified
agl wallpaper listdiscovers all custom wallpapers (010.png, etc.).• Verified
agl restartcleanly reloads the shell while active Brave windows stay running without disruption.• Ran workspace test suite (
cargo test --workspace): all 60 tests passed.