]> Dogcows Code - chaz/openbox/blobdiff - scripts/defaults.py
new swig build system. much better. yay.
[chaz/openbox] / scripts / defaults.py
index f7f444d5a8b25b7e8134e7172fe4c1defd0d46dc..04143e115bc4ba63acdcd9899cbf5b94bc14ba8f 100644 (file)
@@ -1,36 +1,68 @@
+import ob         # base module
+import focus      # add some default focus handling and cycling functions
+import focusmodel # default focus models
+import behavior   # defines default behaviors for interaction with windows
+import callbacks  # a lib of functions that can be used as binding callbacks
+import windowplacement # use a routine in here to place windows
+import historyplacement # history window placement
+
+# try focus something when nothing is focused
+focus.FALLBACK = 1
+
+# choose a default focus model
+focusmodel.setup_click_focus() # use focusmodel.setup_sloppy_focus() instead to
+                               # make focus follow the cursor, or bind things
+                               # in some way like these functions do to make
+                               # your own custom focus model.
 # set up the mouse buttons
-setup_sloppy_focus()
-setup_window_clicks()
-setup_window_buttons()
-setup_scroll()
-# set up focus fallback so im not left with nothing focused all the time
-setup_fallback_focus()
+behavior.setup_window_clicks()
+behavior.setup_window_buttons()
+behavior.setup_scroll()
 
 # my window placement algorithm
-ebind(EventPlaceWindow, placewindows_random)
+#ob.ebind(ob.EventAction.PlaceWindow, windowplacement.random)
+ob.ebind(ob.EventAction.PlaceWindow, historyplacement.place)
+# don't place terminals by history placement (xterm,aterm,rxvt)
+def histplace(data):
+    if data.client.appClass() == "XTerm": return 0
+    return 1
+historyplacement.CONFIRM_CALLBACK = histplace
+
 
 # run xterm from root clicks
-mbind("Left", MC_Root, MouseClick, lambda(d): execute("xterm"))
+ob.mbind("Left", ob.MouseContext.Root, ob.MouseAction.Click,
+         lambda(d): ob.execute("xterm", d.screen))
 
-kbind(["A-F4"], KC_All, close)
+ob.kbind(["A-F4"], ob.KeyContext.All, callbacks.close)
+
+# focus bindings
+import stackedcycle # functions for doing stacked 'kde-style' cycling
+ob.kbind(["A-Tab"], ob.KeyContext.All, stackedcycle.next)
+ob.kbind(["A-S-Tab"], ob.KeyContext.All, stackedcycle.previous)
+
+# if you want linear cycling instead of stacked cycling, comment out the focus
+# bindings above, and use these instead.
+#import focuscycle # functions for doing linear cycling
+#focuscycle.RAISE_WINDOW = 0 # don't raise windows when they're activated
+#ob.kbind(["A-Tab"], ob.KeyContext.All, focuscycle.next)
+#ob.kbind(["A-S-Tab"], ob.KeyContext.All, focuscycle.previous)
 
 # desktop changing bindings
-kbind(["C-1"], KC_All, lambda(d): change_desktop(d, 0))
-kbind(["C-2"], KC_All, lambda(d): change_desktop(d, 1))
-kbind(["C-3"], KC_All, lambda(d): change_desktop(d, 2))
-kbind(["C-4"], KC_All, lambda(d): change_desktop(d, 3))
-kbind(["C-A-Right"], KC_All, lambda(d): next_desktop(d))
-kbind(["C-A-Left"], KC_All, lambda(d): prev_desktop(d))
+ob.kbind(["C-1"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 0))
+ob.kbind(["C-2"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 1))
+ob.kbind(["C-3"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 2))
+ob.kbind(["C-4"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 3))
+ob.kbind(["C-A-Right"], ob.KeyContext.All,
+         lambda(d): callbacks.next_desktop(d))
+ob.kbind(["C-A-Left"], ob.KeyContext.All,
+         lambda(d): callbacks.prev_desktop(d))
 
-kbind(["C-S-A-Right"], KC_All, lambda(d): send_to_next_desktop(d))
-kbind(["C-S-A-Left"], KC_All, lambda(d): send_to_prev_desktop(d))
+ob.kbind(["C-S-A-Right"], ob.KeyContext.All,
+         lambda(d): callbacks.send_to_next_desktop(d))
+ob.kbind(["C-S-A-Left"], ob.KeyContext.All,
+         lambda(d): callbacks.send_to_prev_desktop(d))
 
 # focus new windows
-def focusnew(data):
-    if not data.client: return
-    if data.client.normal():
-        focus(data)
-
-ebind(EventNewWindow, focusnew)
+ob.ebind(ob.EventAction.NewWindow, callbacks.focus)
 
 print "Loaded defaults.py"
This page took 0.025528 seconds and 4 git commands to generate.