Coder Social home page Coder Social logo

herbstluftwm-scripts's Introduction

herbstluftwm-scripts

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).

Cut and paste windows

  • 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 with Mod-p.

  • Source: cut-paste.sh

Switch previously focused window in a tag

  • Description: Allow to switch previously focused window in a given tag. Previous windows are remembered on tag switches.

  • Source: lastwin.sh

Minimize and unminimize windows (as a toggle)

  • 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.

Easy-access alternative tag

  • 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 with Mod+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).

Dynamic tags

  • 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 dedicated merge tag. "Bis" tags from the bis.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, or get_name function needs to be adapted.

  • Source: addtag.sh

VIM-like marks for tags

  • 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 with Mod+Ctrl+[a-z]; and windows are movable to a marked tag with Mod+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

"Sticky" mpv and mplayer

  • 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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.