/windowlayouts

Utility for storing & restoring window layouts

Primary LanguagePythonMIT LicenseMIT

windowlayouts

Utility for automatically storing & restoring application window layouts for specific screen configurations on the X Window System.

For example, if a user frequently changes their setup between a single laptop screen and two external monitors, this tool remembers & automatically restores all windows to their original positions for each monitor setup without the need for manual rearrangement.

Installation

Run pip install truhanen.windowlayouts to install the script windowlayouts to be used from the command line.

To install from source, run pip install . in the project root directory.

Requirements

  • Python 3.7+
  • wmctrl command line tool

Usage

usage: windowlayouts [-h] [--verbose] {store,restore,switch} ...

positional arguments:
  {store,restore,switch}
    store               Store the current window layout for the current screen
                        layout. Replace a previously stored window layout if
                        such a window layout exists for the current screen
                        layout.
    restore             Restore a window layout if one with the current screen
                        layout has previously been stored.
    switch              Run store, then switch to a screen layout configured
                        in ~/.config/windowlayouts/config.ini, and
                        then run restore. Screen layout values in the
                        configuration file must be valid input for xrandr that
                        apply a specific screen layout. Each "output" of a
                        screen layout should be defined on a separate line in
                        the configuration value. See examples/config.ini for
                        example.

optional arguments:
  -h, --help            show this help message and exit
  --verbose, -v         Increase verbosity.