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