summaryrefslogtreecommitdiff
path: root/python/rc.py
blob: fc5b97ade98fc1685775bff7d20e4596348b2c88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import hooks, ob, keymap, buttonmap, os, sys, input, motion, historyplacement
import stackedcycle
from input import Pointer

import config
print dir(config)

hooks.managed.append(historyplacement.place)

_grab = 0
def printshit(keydata, client):
    global _grab
    print "shit"
    _grab = not _grab
    print _grab
    def gfunc(data, client=None): pass
    if _grab:
        input.Keyboard.grab(gfunc)
        input.Pointer.grab(gfunc)
    else:
        input.Keyboard.ungrab()
        input.Pointer.ungrab()

def myexec(prog):
    print "execing: ", prog
    if (os.fork() == 0):
        try:
            os.setsid()
            os.execl("/bin/sh", "/bin/sh", "-c", prog)
        except:
            print str(sys.exc_info()[0]) + ": " + str(sys.exc_info()[1])
            try:
                print "failed to execute '" + prog + "'"
            except:
                print str(sys.exc_info()[0]) + ": " + str(sys.exc_info()[1])
            os._exit(0)

def myactivate(c):
    if ob.Openbox.showingDesktop():
        ob.Openbox.setShowingDesktop(False)
    if c.iconic():
        c.setIconic(False)
    elif not c.visible():
        # if its not visible for other reasons, then don't mess with it
        return
    if c.shaded():
        c.setShaded(False)
    c.focus()
    c.raiseWindow()
                                                      
hooks.requestactivate.append(myactivate)

def myfocus(c):
    if c and c.normal(): c.focus()

#hooks.showwindow.append(myfocus)
hooks.pointerenter.append(myfocus)

hooks.visible.append(myfocus)

mykmap=((("C-a", "d"), printshit),
        (("C-Tab",), stackedcycle.next),
        (("C-S-Tab",), stackedcycle.previous),
        (("Mod1-1",), lambda k,c: ob.Openbox.setDesktop(1)),
        (("Mod1-2",), lambda k,c: ob.Openbox.setDesktop(2)),
        (("Mod1-3",), lambda k,c: ob.Openbox.setDesktop(3)),
        (("Mod1-4",), lambda k,c: ob.Openbox.setDesktop(4)),
        (("Mod1-C-Left",), lambda k,c: ob.Openbox.setPreviousDesktop() or c.setDesktop(ob.Openbox.desktop())),
        (("Mod1-C-Right",), lambda k,c: ob.Openbox.setNextDesktop() or c.setDesktop(ob.Openbox.desktop())),
        (("Mod1-Left",), lambda k,c: ob.Openbox.setPreviousDesktop()),
        (("Mod1-Right",), lambda k,c: ob.Openbox.setNextDesktop()),
        (("C-space",), lambda k,c: myexec("xterm")))
keymap.set(mykmap)

def mytogglesticky(client):
    if client.desktop() == 0xffffffff: d = ob.Openbox.desktop()
    else: d = 0xffffffff
    client.setDesktop(d)

mybmap=(("1", "maximize", Pointer.Action_Click,
         lambda c: c.setMaximized(not c.maximized())),
        ("2", "maximize", Pointer.Action_Click,
         lambda c: c.setMaximizedVert(not c.maximizedVert())),
        ("3", "maximize", Pointer.Action_Click,
         lambda c: c.setMaximizedHorz(not c.maximizedHorz())),
        ("1", "alldesktops", Pointer.Action_Click, mytogglesticky),
        ("1", "iconify", Pointer.Action_Click,
         lambda c: c.setIconic(True)),
        ("1", "icon", Pointer.Action_DoubleClick, ob.Client.close),
        ("1", "close", Pointer.Action_Click, ob.Client.close),
        ("1", "titlebar", Pointer.Action_Motion, motion.move),
        ("1", "handle", Pointer.Action_Motion, motion.move),
        ("Mod1-1", "frame", Pointer.Action_Click, ob.Client.raiseWindow),
        ("Mod1-1", "frame", Pointer.Action_Motion, motion.move),
        ("1", "titlebar", Pointer.Action_Press, ob.Client.raiseWindow),
        ("1", "handle", Pointer.Action_Press, ob.Client.raiseWindow),
        ("1", "client", Pointer.Action_Press, ob.Client.raiseWindow),
        ("2", "titlebar", Pointer.Action_Press, ob.Client.lowerWindow),
        ("2", "handle", Pointer.Action_Press, ob.Client.lowerWindow),
        ("Mod1-3", "frame", Pointer.Action_Click, ob.Client.lowerWindow),
        ("Mod1-3", "frame", Pointer.Action_Motion, motion.resize),
        ("1", "blcorner", Pointer.Action_Motion, motion.resize),
        ("1", "brcorner", Pointer.Action_Motion, motion.resize),
        ("1", "titlebar", Pointer.Action_Press, ob.Client.focus),
        ("1", "handle", Pointer.Action_Press, ob.Client.focus),
        ("1", "client", Pointer.Action_Press, ob.Client.focus),
        ("1", "titlebar", Pointer.Action_DoubleClick,
         lambda c: c.setShaded(not c.shaded())),
        ("4", "titlebar", Pointer.Action_Click,
         lambda c: c.setShaded(True)),
        ("5", "titlebar", Pointer.Action_Click,
         lambda c: c.setShaded(False)),
        ("4", "root", Pointer.Action_Click,
         lambda c: ob.Openbox.setNextDesktop()),
        ("5", "root", Pointer.Action_Click,
         lambda c: ob.Openbox.setPreviousDesktop()),
        ("Mod1-4", "frame", Pointer.Action_Click,
         lambda c: ob.Openbox.setNextDesktop()),
        ("Mod1-5", "frame", Pointer.Action_Click,
         lambda c: ob.Openbox.setPreviousDesktop()),
        ("Mod1-4", "root", Pointer.Action_Click,
         lambda c: ob.Openbox.setNextDesktop()),
        ("Mod1-5", "root", Pointer.Action_Click,
         lambda c: ob.Openbox.setPreviousDesktop()))
buttonmap.set(mybmap)