1 import focus # add some default focus handling and cycling functions
2 import focusmodel # default focus models
3 import behavior # defines default behaviors for interaction with windows
4 import callbacks # a lib of functions that can be used as binding callbacks
5 import windowplacement # use a routine in here to place windows
6 import historyplacement # history window placement
8 # try focus something when nothing is focused
11 # choose a default focus model
12 focusmodel.setup_click_focus() # use focusmodel.setup_sloppy_focus() instead to
13 # make focus follow the cursor, or bind things
14 # in some way like these functions do to make
15 # your own custom focus model.
16 # set up the mouse buttons
17 behavior.setup_window_clicks()
18 behavior.setup_window_buttons()
19 behavior.setup_scroll()
21 # my window placement algorithm
22 #ob.ebind(ob.EventAction.PlaceWindow, windowplacement.random)
23 ob.ebind(ob.EventAction.PlaceWindow, historyplacement.place)
24 # don't place terminals by history placement (xterm,aterm,rxvt)
26 if data.client.appClass() == "XTerm": return 0
28 historyplacement.CONFIRM_CALLBACK = histplace
31 # run xterm from root clicks
32 ob.mbind("Left", ob.MouseContext.Root, ob.MouseAction.Click,
33 lambda(d): ob.execute("xterm", d.screen))
35 ob.kbind(["A-F4"], ob.KeyContext.All, callbacks.close)
38 import stackedcycle # functions for doing stacked 'kde-style' cycling
39 ob.kbind(["A-Tab"], ob.KeyContext.All, stackedcycle.next)
40 ob.kbind(["A-S-Tab"], ob.KeyContext.All, stackedcycle.previous)
42 # if you want linear cycling instead of stacked cycling, comment out the focus
43 # bindings above, and use these instead.
44 #import focuscycle # functions for doing linear cycling
45 #focuscycle.RAISE_WINDOW = 0 # don't raise windows when they're activated
46 #ob.kbind(["A-Tab"], ob.KeyContext.All, focuscycle.next)
47 #ob.kbind(["A-S-Tab"], ob.KeyContext.All, focuscycle.previous)
49 # desktop changing bindings
50 ob.kbind(["C-1"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 0))
51 ob.kbind(["C-2"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 1))
52 ob.kbind(["C-3"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 2))
53 ob.kbind(["C-4"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 3))
54 ob.kbind(["C-A-Right"], ob.KeyContext.All,
55 lambda(d): callbacks.next_desktop(d))
56 ob.kbind(["C-A-Left"], ob.KeyContext.All,
57 lambda(d): callbacks.prev_desktop(d))
59 ob.kbind(["C-S-A-Right"], ob.KeyContext.All,
60 lambda(d): callbacks.send_to_next_desktop(d))
61 ob.kbind(["C-S-A-Left"], ob.KeyContext.All,
62 lambda(d): callbacks.send_to_prev_desktop(d))
65 ob.ebind(ob.EventAction.NewWindow, callbacks.focus)
67 print "Loaded defaults.py"