- Notifications
You must be signed in to change notification settings - Fork78
Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)
License
ssokolow/quicktile
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Keyboard-driven Window Tiling for your existing X11 window manager
In addition to migrating from GTK+ 2.x to GTK 3, QuickTile 0.4.0 makes thefollowing changes:
- The PyGTK to PyGI migration has changed the list of dependenciessignificantly.
- Regressions in certain GDK APIs have made python-xlib a mandatory dependency.
- The
middle
command has been renamed tocenter
for consistency withmove-to-center
. You will have to update anything which callsmiddle
via the command-line or D-Bus APIs, butquicktile.cfg
will updateautomatically. - Please contact me if you maintain your own QuickTile patches.I have begun a major refactoring and want to make sure your changesget updated accordingly.
Debian and derivatives (Ubuntu, Mint, etc.):
sudo apt-get install python3 python3-pip python3-setuptools python3-gi python3-xlib python3-dbus gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-wnck-3.0
Fedora and derivatives:
sudo dnf install python3 python3-pip python3-setuptools python3-gobject python3-xlib python3-dbus gtk3 libwnck3
For other distros or for more details, please consult theDependencies section of themanual.
QuickTile can be run from the source folder without installation via the./quicktile.sh
script.
For system-wide installation, the recommended option ispip3
, which willrecord a log to allow easy uninstallation.
sudo -H pip3 install https://github.com/ssokolow/quicktile/archive/master.zip
QuickTile's dependence on PyGObject prevents a fully PyPI-based installationoption.
Consult theInstallationsection of the manual for full details and alternative installation options.
First-Run Instructions for Global Hotkeys:
- Run
quicktile
or./quicktile.sh
once to generate your configurationfile at~/.config/quicktile.cfg
. - Edit the keybindings as desired.
- Run
quicktile --daemonize
or./quicktile.sh --daemonize
to bind toglobal hotkeys. - If everything seems to be working, add
quicktile --daemonize
or/full/path/to/quicktile.sh --daemonize
to the list of commands yourdesktop will run on login.
Consult theConfigurationsection of the manual for further details.
- If run in a terminal, QuickTile's
--daemonize
option will attempt toreport any problems with claiming global hotkeys for itself. - You can get a list of valid actions for the configuration file by running
quicktile --show-actions
. - You can list your current keybindings by running
quicktile --show-bindings
. - If you experience problems, please consult theFAQ section of the manual beforereporting an issue.
- Focus the window you want to tile
- Hold the modifiers defined in
ModMask
(Ctrl+Alt
by default). - Repeatedly press one of the defined keybindings to cycle through windowsizes available at the desired location on the screen.
Consultquicktile --show-bindings
or theCommand Reference section of the manual for a listof default keybindings.
(For example, under default settings, repeatedly pressingCtrl+Alt+7
willplace the active window in the top-left corner of the screen and cycle itthrough different width presets.)
This works best when combined with functionality your existing window managerprovides (eg.Alt+Tab
) to minimize the need to switch your hand between yourkeyboard and your mouse.
See theUsage section of themanual for alternative ways to interact with QuickTile.
If you used the installation instructions listed above, a system-wideinstallation of QuickTile can be removed with the following commands:
sudo pip3 uninstall quicktilesudo rm /usr/local/bin/quicktile
See theRemovalsection of the manual for instructions on clearing out files left behind byother installation methods.
I welcome contributions.
The recommended approach to make sure minimal effort is wasted is to open anissue indicating your interest in working on something. That way, I can let youknow if there are any non-obvious design concerns that might hold up myaccepting your pull requests.
If you're looking for something to do, a ready supplyof simple TODOs is split across two different mechanisms:
- Run
grep -R TODO *.py quicktile/
in the project root. - Set
todo_include_todos = True
indocs/conf.py
and runcd docs; make html
to generate a version of the manual with a TODOlisting on the top-level API documentation page.
See theDeveloper's Guidefor more information.
About
Adds window-tiling hotkeys to any X11 desktop. (An analogue to WinSplit Revolution for people who don't want to use Compiz Grid)