feat(scratchpad): multi-slot named scratchpads, directional drawer physics, and layout tiling - #47
Open
rebizzz wants to merge 5 commits into
Open
Conversation
rebizzz
marked this pull request as draft
August 27, 2026 21:35
rebizzz
marked this pull request as ready for review
August 27, 2026 21:45
Contributor
Author
|
Heads up on the latest commits here (popin and slidefade transition styles for scratchpad slots): everything checked out fine in my own testing, but that was all on a single output. I have not been able to test how these hold up on a multi-monitor setup, things like a slot moving between outputs mid-animation, an output getting added or removed while a slot is open, or per-output scale factors. If anyone with multiple monitors can give this a try before it merges, that would help a lot. |
rebizzz
force-pushed
the
feat/special-workspaces-parity
branch
from
August 30, 2026 10:58
aca365a to
432c875
Compare
added 5 commits
August 30, 2026 23:09
…nd nested layouts
…d cheatsheet rows
rebizzz
force-pushed
the
feat/special-workspaces-parity
branch
from
August 30, 2026 17:50
432c875 to
db19554
Compare
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
Adds multi-slot named scratchpads with directional slide physics, nested layout tiling, and process-aware auto-spawning to Umbriel.
Motivation
Allows users to configure and toggle arbitrary persistent or dynamic scratchpad slots (e.g., dropdown terminals, music players, system monitors, notes, or web browsers) with customized slide directions, spring physics, scaling factors, and nested layout engines without cluttering regular workspaces.
Type of Change
Details
[[scratchpad]]blocks or address them on the fly withscratchpad-toggle:<name>andwindow-move-to-scratchpad:<name>.top,bottom,left,right) with customizable duration, easing curves, and backdrop dim/blur.on_empty: Tracks child process trees up to 16 parent levels to guarantee only the application launched byon_emptyis claimed by the slot.initial_commitbefore surface map, preventing main workspace flicker or unscaled flash.[[window_rule]] scratchpad = "<slot>"routes matching windows directly into scratchpad slots on launch.xdg_toplevel.set_suspended(true)to hidden scratchpad clients (protocol version >= 6) to reduce idle background power.Testing
meson test -C build-debug: All 25/25 unit tests pass (including slot config parsing and window rule routing tests).umbriel validate -c examples/config.toml: Config validation passes with 0 errors.clang-format/just format: 0 formatting issues.clang-tidy: 0 warnings / 0 errors across all modified files.Manual Coverage
Screenshots / Videos
web)Checklist
CONTRIBUTING.md.just format, or this PR has no C++ changes.docs/andexamples/config.toml, or this PR does not change user-facing configuration or behavior.