A script collection for herbstluftwm.
Scripts can be called from autostart
, or just tested by running them (chmod +x the-script.sh ; ./the-script.sh
).
-
Description: Allow to easily move multiple windows at once from source tags to a target tag. Cut focused windows with
Mod-y
, and paste them withMod-p
. -
Source: cut-paste.sh
-
Description: Allow to switch previously focused window in a given tag. Previous windows are remembered on tag switches.
-
Source: lastwin.sh
-
Description: Allow to minimize and un-minimize clients in a LIFO way (last minimized client will be un-minimized first). If only one window is minimized,
Mod-Unminimizekey
works like a toggle (use case: user minimizes only one window per tag most of the time). -
Source: unminimize.sh
-
Note: the same script without the toggle-like feature is available here.
-
Description: Associate another tag (postfixed with "bis") to a master tag. User can toggle between "bis" tag and master tag with
Mod+b
, or move window between them withMod+Shift+b
. -
Use case example: associate a task-specific browser to a task-specific tag.
-
Source: bis.sh
-
Note: panel should be customized to not display tags ending with "bis" (for instance by defining a custom
tag_renderer
method in barpyrus).
-
Description: Create/remove new tags in addition to those defined in
autostart
.Mod-n
creates a tag;Mod-Shift-n
removes it. When removing a tag, all remaining windows are merged to a dedicatedmerge
tag. "Bis" tags from thebis.sh
scripts are removed too, if exist. To avoid accidental removing of static tags,Mod-Shift-n
only has an effect with tags created with this script. -
Warning: requires
dmenu
, orget_name
function needs to be adapted. -
Source: addtag.sh
-
Description: Implement VIM-like marks for tags. One-letter mark can be set/unset on a tag (
Mod+Alt+[a-z]
/Mod+Alt+Shift+[a-z]
); marked tags are focusable withMod+Ctrl+[a-z]
; and windows are movable to a marked tag withMod+Ctrl+Shift+[a-z]
. -
Attribute: The mark of a tag is available (i.e. to be displayed on the panel) with the following attribute:
tags.*.my_mark
-
Use case example: allow easy access to dynamic tags created with
addtag.sh
. -
Source: mark-tags.sh
-
Warning: This script is not 100% robust (especially in regard with frame manipulation); it works fine for all my use cases, but may requires adaptations for other users.
-
Description: Allow mpv and mplayer windows to become "sticky", i.e. visible in all tags, either in a "sticky frame" on the right, or in in fullscreen using the maximized.sh script.
Mod-v
toggles on/off the sticky frame. -
Hook: Emit the "video_sticky_changed" hook when toggling sticky frame.
-
Attribute:
tags.*.my_videoframe
attribute could be queried, for instance to display the "sticky frame" status on a panel. -
Source: videosticky.sh