ssokolow/quicktile

View on GitHub
ChangeLog

Summary

Maintainability
Test Coverage
0.4.1 (git HEAD):
- Add support for HiDPI monitors where GDK's pixel units don't necessarily
  match Wnck pixel units by default.
- Add minimal support for querying  _GTK_WORKAREAS_D0 (GNOME Shell on X11)
- Expose existing margin support via config file
- Add a generic exception catcher for keybindings so errors in tiling commands
  shouldn't render QuickTile non-responsive.
- Work around inherent race condition in gathering strut reservations
- Fix some PyGI-related warnings that only happen on certain systems
- Adjust installation instruction/scripts to avoid creating root-permissioned
  pip cache files in the user's home directory.
- Assorted documentation improvements.
- Continued efforts to increase automated testing

0.4.0:
- Port to Python 3.x and GTK 3.x
- Switch command-line arguments from optparse to argparse
- Convert the API docs from ePyDoc to Sphinx and add a manual
- Add illustrations for all commands in the command reference
- Rename the `middle` command to `center` for consistency with `move-to-*`
- Ensure off-screen windows can be manipulated relative to the nearest monitor
- Ensure monitor-* commands don't place windows off-screen
- Make move-to-* commands center non-corner destinations for consistency
- Have move-to-* preserve horizontal/vertical maximization state
- Add default keybindings for move-to-* commands
- Fix issue #45 (support desktops where panels reserve space on interior edges)
- Significant internal reworking to make the codebase more maintainable
- More FAQ entries
- Much more automated testing
- Create a (basic) icon for QuickTile
- Add infrastructure for building Debian packages (Thanks to Stéphane Gourichon)

0.3.0:
- Split QuickTile up into multiple files for easier refactoring and improvement
- Fix a few latent WindowManager bugs revealed by the split-up.
- Add a `ColumnCount` field to the config file
- Add a `MovementsWrap` field to the config file to control wrapping in
  `-next` and `-previous` movements
- Allow `ModMask` to be empty/None to enable bindings without a common prefix
- Add `monitor-prev-all`, `monitor-next-all`, and `monitor-switch-all` commands
- Add gtkexcepthook for more convenient handling of unexpected errors
- Fix window cycling when windows impose constraints on their dimensions
- Work around PyGTK's incompatibilty with tox
- Make install.sh a bit more robust
- Do a ton of refactoring to ease reusing existing code in new commands.

0.2.2:
- Added move-to{,-top,-bottom}{,-left,-right} (David Stygstra)
- Implement window gravity support in reposition()
- Allow reposition() to take a custom geometry mask
- Begin implementing the basics of a unit test suite
- Actually make cycle_monitors() obey the step argument
- Don't allow selection of the desktop window
- Added a safety check for the use of <Super> in modmask
- Extend GravityLayout to support margins
- More helpful --debug messages
- Rewrite README in ReStructuredText
- Add static analysis hooks to repo
- Various code cleanups
- Modernize setup.py and remove absolute install path blocking packaging
- Fix install.sh to ensure it's operating on the correct path
- Use round for pixel numbers calculations
- Fix left-right size cycling for large monitors

0.2.1:
- Added monitor-next and monitor-previous
- Added all-desktops, pin, fullscreen, always-above, always-below, and shade
- Added workspace-{go,send}-{next,prev,up,down,left,right}
- Added minimize and bordered commands
- Added commands for triggering keyboard-driven move/resize
- Switch to gtk.accelerator_parse() for keycode lookup
- Removed AltGr from the list of ignored modifiers
- Fix detection for partial maximization

0.2.0.1:
- Bugfix for a mistake introduced while refactoring the command-line help

0.2.0:
- Switch to programmatic generation of the presets table
- Rely more fully on libwnck to minimize NIH-related bugs

0.1.6:
- Use libwnck for various operations to avoid bugs
- Audited and fixed up the API documentation

0.1.5:
- Keybindings and base modifier key can now be set via ~/.config/quicktile.cfg
- Added a setup.py capable of installing and setting up autostart behaviour.
- Added a --no-workarea flag and config file key for non-rectangular desktops
- Added a --show-bindings option to list keybindings
- Added horizontal-maximize, vertical-maximize, and move-to-center (crantok)
- Also tile windows which don't implement _NET_WM_WINDOW_TYPE
- Relax cycleDimensions matching to avoid edge cases (Yuting Xiao)
- Switch the shebang to use "python2" for more compatibility
- Improved the error handling with more helpful messages
- More internal restructuring and code clean-ups
- Tidied up the --help output a bit
- Write a proper README in Markdown

0.1.4:
- Much internal restructuring
- Docstrings reformatted for epydoc 3.x
- Renamed --bindkeys to --daemonize (--bindkeys usable but deprecated)
- Added a D-Bus API which uses the same commands as the command-line API.
- Fixed Exceptions when trying to use QuickTile on windows like MPlayer.
- Fixed NumLock and CapsLock compatibility in the internal keybinder.
- Workaround for windows getting stuck maximized.
- Use _NET_WORKAREA to avoid getting covered by panels.

0.1.3:
- Last version offered via ssokolow.com/scripts/