]> Dogcows Code - chaz/openbox/blobdiff - scripts/defaults.py
watch for bad actions and contexts
[chaz/openbox] / scripts / defaults.py
index 10c980ea988fbbac2db26f1f4564bd5c7c487d3a..2e5c536d930fdbafe139ddd97da82798d1af94ea 100644 (file)
@@ -3,18 +3,30 @@ 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
+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
-focusmodel.setup_sloppy_focus()
 behavior.setup_window_clicks()
 behavior.setup_window_buttons()
 behavior.setup_scroll()
 
 # my window placement algorithm
-ob.ebind(ob.EventAction.PlaceWindow, windowplacement.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
 ob.mbind("Left", ob.MouseContext.Root, ob.MouseAction.Click,
@@ -23,8 +35,16 @@ ob.mbind("Left", ob.MouseContext.Root, ob.MouseAction.Click,
 ob.kbind(["A-F4"], ob.KeyContext.All, callbacks.close)
 
 # focus bindings
-ob.kbind(["A-Tab"], ob.KeyContext.All, focus.focus_next_stacked)
-ob.kbind(["A-S-Tab"], ob.KeyContext.All, focus.focus_prev_stacked)
+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
 ob.kbind(["C-1"], ob.KeyContext.All, lambda(d): callbacks.change_desktop(d, 0))
This page took 0.025738 seconds and 4 git commands to generate.