Bossy Lobster

A blog by Danny Hermes; musing on tech, mathematics, etc.

Edit on GitHub

Getting Divvy-like functionality on Linux

I love my Divvy, as I'm sure many do, but it's not available for Linux. (I completely understand why it isn't, though the fact that they make Divvy a free demo with full functionality brings into question how much they are trying to monetize it.) Anyhow, not wanting to give away my left hand for a personal computer, I run Ubuntu on my home machine (but OS X at work, kind of funny).

In reality, all I really need from Divvy is the ability to do three things without the mouse that I normally couldn't do.

  • (1.) Maximize a window
  • (2a.) Make the window take the entire left half of the screen
  • (2b.) Make the window take the entire right half of the screen

That's all, I'm not asking for much.

As a brief side not for those who don't know, with Divvy, I start with a window

Before Re-sizing with Divvy

and then call up Divvy with (a command I set globally) Ctrl-Z

Divvy Menu

and then once Divvy is up, I just hit the letter L (another command I made) and voilà

After Re-sizing with Divvy

my window is on the full left half of the screen.

So, every other weekend for the last five months, I have tried to find a Divvy-like solution for Linux. I picked up and discarded Bluetile and PyWO along the way, the former because it is way too heavy a solution and the latter because it required the keypad, which my laptop keyboard does not have (of course I could've enabled NumLock to simulate the keypad, but that is too big a PITA).

Finally, last night I came to a solution that I want to share (in case anyone has gone through the pain I have). That solution is Compiz and here is how I did it:

  1. Install Compiz from the command line via

    sudo apt-get install compizconfig-settings-manager
  2. Install the extra plugins via

    apt-get install compiz-fusion-plugins-extra
  3. Open Compiz (ccsm from the command line) or

    CompixConfig Settings Manager

  4. Go into the Window Management subsection

    Window Management Settings

  5. Enter Grid and set the "Put Left" and "Put Right" bindings to Alt-F8 and Alt-F9, while disabling everything else (my choice, doesn't have to be yours, if you have a Keypad on your keyboard and NumLock is not going to interfere with the letter 'm', then go for it)

    Grid Settings
    (Also, another side note, if you are having trouble figuring out how to change the binding, just click the first box, the ones that say Disabled or whatever the current binding is and then "Grab Key Combination"
    Set Shortcut Value
    to change the binding to your hearts content.)

  6. For maximize go to General Options

    General Compiz Settings

  7. In the Key Bindings tab, make sure "Toggle Window Maximized" is set to it's default value of Alt-F10

    Maximize Command

So with that, my conditions are satisfied:

  • Condition (1.) via Alt-F10
  • Condition (2a.) via Alt-F8
  • Condition (2b.) via Alt-F9

My search is over (for now...unless I make DivvyBuntu...)