xubuntu 12.10 window tiling shortcuts

Solution 1:

Xubuntu keyboard shortcuts

By default, XFCE/Xubuntu tiling is a mouse only affair.

However, you do have the ability to define your own keyboard shortcuts:

enter image description here

Using settings manager --> window manager you have the Tile Actions as shown.

In the picture I have defined two custom keyboard shortcuts CTRL+T to tile the current window to the top and CTRL+G to tile to the bottom.

To define your own keyboard shortcut - double click in the shortcut field next to the action.

Solution 2:

One problem with the solution mentioned above, is it won't work if you set the Whisker menu to use the SUPER key.

Whether you like or hate MS, I think you will agree that their shortcuts for the Start Menu, tiling, and window states are very intuitive. (WINKEY+LEFT: Tile Left, WINKEY+RIGHT: Tile Right, WINKEY+UP Maximize, WINKEY+DOWN Minimize, WINKEY: Open Start Menu)

I wanted to mimic that as closely as possible.

It seems with XFCE (at least Xubuntu) there are two main keyboard shortcut settings: one in Settings > Keyboard, and one in Settings > Window Manager. The Whisker Menu shortcut (which I set to the SUPERKEY/WINKEY) is in Settings > Keyboard and by setting that, it doesn't allow any WinManager WINKEY settings to work.

My solution was to assign the tiling keys from within Settings > Keyboard (instead of WindowManager) by using quicktile.py (found here).

Cmd: ~/src/quicktile/quicktile.py left - Shortcut: Super+Left

Cmd: ~/src/quicktile/quicktile.py right - Shortcut: Super+Right

Cmd: ~/src/quicktile/quicktile.py maximize - Shortcut: Super+Up

Cmd: ~/src/quicktile/quicktile.py minimize - Shortcut: Super+Down

Cmd: ~/src/quicktile/quicktile.py show-desktop - Shortcut: Super+D

Then I can have the SUPER/WINKEY open the Whisker menu with:

Cmd: xfce4-popup-whiskermenu - Shortcut: Super L

It works very well but isn't quite perfect. For example, in a multi-monitor environment, the Windows don't go to the next screen like Windows does. I would love for that functionality to work, but I can deal without it for now :)