Skip to content

GauthamGoli/pygrid

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PyGrid

PyGrid is a small utility which allows you to easily organize your open windows by tiling, resizing and positioning them to make the best use of your desktop real estate. It's easy to configure and supports multiple monitors.

Requirements

  • Python3
  • X11-based desktop
  • python3-gi
  • python3-xlib

Shortcuts

  • ALT+CTRL+NUMPAD-1 - Move window to bottom left.
  • ALT+CTRL+NUMPAD-2 - Move window to bottom.
  • ALT+CTRL+NUMPAD-3 - Move window to bottom right.
  • ALT+CTRL+NUMPAD-4 - Move window to left.
  • ALT+CTRL+NUMPAD-5 - Move window to center.
  • ALT+CTRL+NUMPAD-6 - Move window to right.
  • ALT+CTRL+NUMPAD-7 - Move window to top left.
  • ALT+CTRL+NUMPAD-8 - Move window to top.
  • ALT+CTRL+NUMPAD-9 - Move window to top right.

Repeatedly press one of the defined keybindings to cycle through window sizes available at the desired location on the screen.

Configuration

Configuration is done via a JSON file located at ~/.config/pygrid.json which will be created with default options if not found when starting up. The default configuration is below. If you introduce top level sections 'monitor0': {...} or 'monitor1': {...} to provide different options for each monitor on your system. Any settings not defined will fall back to user-defined defaults, then global defaults. NOTE: Updating configuration in this JSON file does not require you to restart PyGrid.

{
  'default': {
    'xdivs': 3,               // number of x divisions for the screen.
    'ydivs': 2,               // number of y divisions for the screen.
    'padding': [0, 0, 0, 0],  // additional top, right, bottom, left padding in pixels.
    'spacing': 4,             // spacing between windows in pixels.
    'minwidth': 0.25,         // min percent width of window.
    'maxwidth': 0.67,         // max percent width of window.
    'minheight': 0.33,        // min percent height of window.
    'maxheight': 0.67,        // max percent height of window.
  },
  'monitor0': { ... },        // Repeat any settings above specific for monitor 0.
  'monitor1': { ... },        // Repeat any settings above specific for monitor 1.
  'monitor<NUM>': { ... },    // Repeat any settings above specific for monitor <NUM>.
}

Installation on Ubuntu

$ sudo apt-get install git python3-gi python3-xlib
$ cd <place-you-want-to-store-pygrid>
$ git clone https://github.com/mjs7231/pygrid.git
$ cd pygrid && ./pygrid.py

To start at boot I simply added the following line to Startup Applications.

<full-path>/pygrid/pygrid.py

Credit & License

PyGrid was original a fork of QuickTile by ssokolow, but rewritten to allow a much easier configuration as well as updated code to run on Python3 & GTK3. Code released under GPLv2 License.

About

Quickly move windows around the an X11 desktop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%