SemiScratchpad - bakkeby/dusk GitHub Wiki

Scratchpads are windows that can be toggled into and out of view using keybindings.

The SemiScratchpad flag indicates that the window is to be a special kind of scratchpad that changes between being a normal window and a scratchpad window rather than merely toggling into and out of view.

The effect of this is that when the scratchpad starts it opens as a normal window and is placed according to the client rule.

That window can then be "pulled" into view like a scratchpad on your current workspace by hitting the scratchpad keyboard shortcut. When the semi-scratchpad is toggled away it will revert back to a "normal" window and is placed back where it was before it was pulled into view.

Another way to look at it would be to say that a scratchpad window has a designated resting area when being toggled away, rather than simply being invisible.

An example use case would be to have a workspace that has one or more chat clients, each being a semi-scratchpad. Individual chat clients can then be toggled into view on the active workspace as and when needed, but when not in use one can always find all of them on the designated workspace.

If started using the scratchpad spawn feature the end user experience can be a bit confusing with the window either:

  • not appearing at first (if it is placed on another non-visible workspace) and requiring the keyboard shortcut to be hit again for it to appear or
  • the window spawning as expected, but remain in place when toggled (as both modes have the same position)

As semi-scratchpads start as a normal window the recommendation is to start such programs via autostart scripts or otherwise instead of spawning them via the scratchpad keybinding.

Alternatively have client rules that only set the SemiScratchpad flag omitting the scratch key. Such windows can then be changed to semi-scratchpad windows later on by using the regular setscratch and removescratch keybindings.

Technically this is achieved by having two clients sharing the same window and switching between the two when toggling the scratchpad. As such the scratchpad client can be floating while the normal client is tiled, or vice versa.

Back to Features > Flags.

⚠️ **GitHub.com Fallback** ⚠️