all repos — openbox @ f8a47de5ec444c452093371e3db16857eb39a490

openbox fork - make it a bit more like ryudo

python/rc.py (raw)

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
import hooks, ob, keymap, buttonmap, os, sys, input, motion, historyplacement
import stackedcycle
from input import Pointer

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),
        (("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)