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.