A script for linux to simulate effect of Win+Left in Win7

June 14th, 2009
Usage:
    halfwin.py left    Win+Left in Windows 7
    halfwin.py right   Win+Right in Windows 7
    halfwin.py top     Win+Up in Windows 7

The python script is here:

#!/usr/bin/env python
import gtk
import wnck
import sys

def halfwin(k):
    screen = wnck.screen_get_default()
    while gtk.events_pending(): gtk.main_iteration()

    win = screen.get_active_window()
    h = screen.get_height()
    w = screen.get_width()
    if win.is_maximized() and k != 'top':
        win.unmaximize()
    if win.is_minimized():
        win.unminimize()
    f = (wnck.WINDOW_CHANGE_X | wnck.WINDOW_CHANGE_Y
            | wnck.WINDOW_CHANGE_WIDTH | wnck.WINDOW_CHANGE_HEIGHT)
    if (k == "left"):
        win.set_geometry(wnck.WINDOW_GRAVITY_CURRENT, f, -4, 0,
                w / 2, h + 2)
    elif (k == "right"):
        win.set_geometry(wnck.WINDOW_GRAVITY_CURRENT, f, w / 2, 0,
                w / 2, h)
    elif (k == "top" and not win.is_maximized()):
        win.maximize();

def main():
    argv = sys.argv
    if len(argv) <= 1:
        pass
    elif argv[1] == 'left':
        halfwin('left')
    elif argv[1] == 'right':
        halfwin('right')
    elif argv[1] == 'top':
        halfwin('top')

if __name__ == '__main__':
    main()

It is not working perfectly well, but fairly good already.

To bind a command with a hot-key in ubuntu, please play with System->Preference->Keyboard Shortcuts. I am very sure you will find it.

Leave a Reply