- Python3
- X11-based desktop
- python3-gi
- python3-xlib
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.ALT+CTRL+NUMPAD-0- Maximize window.ALT+CTRL+NUMPAD-ENTER- Cycle window between monitors.
Repeatedly press one of the defined keybindings to cycle through window sizes available at the desired location on the screen.
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.'snaptocursor': false,// window will be moved to cursor's monitor},'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>.'keys': {'accelerator': '<Ctrl><Mod1><Mod2>','commands': {'KP_1': 'bottomleft',// Set KP-1 to cycle bottom left window sizes.'KP_2': 'bottom',// Set KP-2 to cycle bottom window sizes.'KP_3': 'bottomright',// Set KP-3 to cycle bottom right window sizes.'KP_4': 'left',// Set KP-4 to cycle left window sizes.'KP_5': 'middle',// Set KP-5 to cycle centered window sizes.'KP_6': 'right',// Set KP-6 to cycle right window sizes.'KP_7': 'topleft',// Set KP-7 to cycle top left window sizes.'KP_8': 'top',// Set KP-8 to cycle top window sizes.'KP_9': 'topright'// Set KP-9 to cycle top right window sizes.'KP_0': 'maximize',// Set KP-0 to maximize the window.'KP_Enter': 'cycle-monitor',// Set KP-ENTER to cycle window between monitors.}}}$ 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.pyTo start at boot I simply added the following line to Startup Applications.
/usr/bin/python3 <full-path>/pygrid/pygrid.pyPyGrid 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.
