GithubHelp home page GithubHelp logo

wmax / quicktile Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ssokolow/quicktile

0.0 1.0 0.0 559 KB

An X11 analogue to WinSplit Revolution for people who don't want to use the Compiz Grid plugin

Home Page: http://ssokolow.com/quicktile/

Python 100.00%

quicktile's Introduction

QuickTile, a WinSplit clone for X11 desktops

Requirements:

  • An X11-based desktop (The code expects NETWM hints and X11-style window decorations)
  • Python 2.x (Tested with 2.5 on 2011-09-10. Developed on 2.7)
  • PyGTK 2.2 (assuming get_active_window() isn't newer than that)
  • python-xlib (optional, required for key-binding)
  • dbus-python (optional, required for D-Bus service)

Due to changes in how GTK+ is accessed, support for Python 3 is non-trivial and has been delayed by the author's courseload.

Installation (Typical Use)

  1. Make sure the requirements above are satisfied (including python-xlib)
  2. Extract quicktile.py to wherever you want to keep it
  3. Set quicktile.py to be executable if it isn't already
  4. Run quicktile.py once to generate your configuration file
  5. Edit ~/.config/quicktile.cfg to customize your keybinds
  6. Set your desktop to run quicktile.py --daemonize

Note: Customizing the available window shapes currently requires editing the source code (though it's quite simple). This will be remedied when the author has time to decide between extending the standard Python rcfile parser and replacing quicktile.cfg with quicktile.json.

Important Notes:

  • Some systems may not provide a Python 2.x binary under the name python2. If this is the case on yours, you must edit the first line in quicktile.py accordingly.
  • If you are running quicktile from a folder that isn't in your PATH, you will need to specify a path like ./quicktile.py to run quicktile.py directly.
  • If you don't mark quicktile.py as executable, you must run python2 quicktile.py rather than quicktile.py.
  • You can list your current keybindings by running quicktile.py --show-bindings
  • You can get a list of valid actions for the configuration file by running quicktile.py --show-actions

Usage (Typical Use)

  1. Focus the window you want to tile
  2. Hold the modifiers defined in ModMask (Ctrl+Alt by default).
  3. Repeatedly press one of the defined keybindings to cycle through window sizes available at the desired location on the screen.

The default keybindings are:

  • 1 through 9 on the numeric keypad represent regions of your screen
  • 0 on the numeric keypad will fully maximize the active window.
  • H and V will maximize a window horizontally or vertically.
  • Enter on the numeric keypad will cycle the active window to the next monitor.

This works best when combined with functionality your existing window manager provides (eg. Alt+Tab) to minimize the need to switch your hand between your keyboard and your mouse.

Advanced Uses

  • If you want to trigger QuickTile from another application in an efficient manner, make sure you have dbus-python installed and read up on how to send D-Bus messages using either your language's D-Bus bindings or the dbus-send command.
  • If, for some reason, you want scripted tiling without D-Bus, you can also run commands like quicktile.py top-left but it may be slower as quicktile has to start, perform an action, and then quit every time you call it.

As with the built-in keybinding, requesting the same action more than once in a row will cycle through the available window sizes. For further details, see --help.

Thanks to Thomas Vander Stichele for some of the documentation cleanups.

quicktile's People

Contributors

txiao avatar wmax avatar ssokolow avatar

Watchers

James Cloos avatar

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.