]>
Dogcows Code - chaz/openbox/blob - scripts/behavior.py
1 ###############################################################################
2 ### Functions for setting up some default behaviors. This includes the ###
3 ### default bindings for clicking on various parts of a window, the ###
4 ### titlebar buttons, and bindings for the scroll wheel on your mouse. ###
5 ###############################################################################
11 def setup_window_clicks():
12 """Sets up the default bindings for various mouse buttons for various
15 * Alt-left drag anywhere on a window will move it
16 * Alt-right drag anywhere on a window will resize it
17 * Left drag on a window's titlebar/handle will move it
18 * Left drag on a window's handle grips will resize it
19 * Alt-left press anywhere on a window's will raise it to the front of
21 * Left press on a window's titlebar/handle will raise it to the front
22 of its stacking layer.
23 * Alt-middle click anywhere on a window's will lower it to the bottom
24 of its stacking layer.
25 * Middle click on a window's titlebar/handle will lower it to the
26 bottom of its stacking layer.
27 * Double-left click on a window's titlebar will toggle shading it
29 ob
.mbind("A-Left", ob
.MouseContext
.Frame
,
30 ob
.MouseAction
.Motion
, motion
.move
)
31 ob
.mbind("A-Left", ob
.MouseContext
.Frame
,
32 ob
.MouseAction
.Release
, motion
.end_move
)
33 ob
.mbind("Left", ob
.MouseContext
.Titlebar
,
34 ob
.MouseAction
.Motion
, motion
.move
)
35 ob
.mbind("Left", ob
.MouseContext
.Titlebar
,
36 ob
.MouseAction
.Release
, motion
.end_move
)
37 ob
.mbind("Left", ob
.MouseContext
.Handle
,
38 ob
.MouseAction
.Motion
, motion
.move
)
39 ob
.mbind("Left", ob
.MouseContext
.Handle
,
40 ob
.MouseAction
.Release
, motion
.end_move
)
42 ob
.mbind("A-Right", ob
.MouseContext
.Frame
,
43 ob
.MouseAction
.Motion
, motion
.resize
)
44 ob
.mbind("A-Right", ob
.MouseContext
.Frame
,
45 ob
.MouseAction
.Release
, motion
.end_resize
)
46 ob
.mbind("Left", ob
.MouseContext
.Grip
,
47 ob
.MouseAction
.Motion
, motion
.resize
)
48 ob
.mbind("Left", ob
.MouseContext
.Grip
,
49 ob
.MouseAction
.Release
, motion
.end_resize
)
51 ob
.mbind("Left", ob
.MouseContext
.Titlebar
,
52 ob
.MouseAction
.Press
, callbacks
.raise_win
)
53 ob
.mbind("Left", ob
.MouseContext
.Handle
,
54 ob
.MouseAction
.Press
, callbacks
.raise_win
)
55 ob
.mbind("A-Left", ob
.MouseContext
.Frame
,
56 ob
.MouseAction
.Press
, callbacks
.raise_win
)
57 ob
.mbind("A-Middle", ob
.MouseContext
.Frame
,
58 ob
.MouseAction
.Click
, callbacks
.lower_win
)
59 ob
.mbind("Middle", ob
.MouseContext
.Titlebar
,
60 ob
.MouseAction
.Click
, callbacks
.lower_win
)
61 ob
.mbind("Middle", ob
.MouseContext
.Handle
,
62 ob
.MouseAction
.Click
, callbacks
.lower_win
)
64 ob
.mbind("Left", ob
.MouseContext
.Titlebar
,
65 ob
.MouseAction
.DoubleClick
, callbacks
.toggle_shade
)
67 def setup_window_buttons():
68 """Sets up the default behaviors for the buttons in the window titlebar."""
69 ob
.mbind("Left", ob
.MouseContext
.AllDesktopsButton
,
70 ob
.MouseAction
.Click
, callbacks
.toggle_all_desktops
)
71 ob
.mbind("Left", ob
.MouseContext
.CloseButton
,
72 ob
.MouseAction
.Click
, callbacks
.close
)
73 ob
.mbind("Left", ob
.MouseContext
.IconifyButton
,
74 ob
.MouseAction
.Click
, callbacks
.iconify
)
75 ob
.mbind("Left", ob
.MouseContext
.MaximizeButton
,
76 ob
.MouseAction
.Click
, callbacks
.toggle_maximize
)
77 ob
.mbind("Middle", ob
.MouseContext
.MaximizeButton
,
78 ob
.MouseAction
.Click
, callbacks
.toggle_maximize_vert
)
79 ob
.mbind("Right", ob
.MouseContext
.MaximizeButton
,
80 ob
.MouseAction
.Click
, callbacks
.toggle_maximize_horz
)
83 """Sets up the default behaviors for the mouse scroll wheel.
85 * scrolling on a window titlebar will shade/unshade it
86 * alt-scrolling anywhere will switch to the next/previous desktop
87 * control-alt-scrolling on a window will send it to the next/previous
88 desktop, and switch to the desktop with the window
90 ob
.mbind("Up", ob
.MouseContext
.Titlebar
,
91 ob
.MouseAction
.Click
, callbacks
.shade
)
92 ob
.mbind("Down", ob
.MouseContext
.Titlebar
,
93 ob
.MouseAction
.Click
, callbacks
.unshade
)
95 ob
.mbind("A-Up", ob
.MouseContext
.Frame
,
96 ob
.MouseAction
.Click
, callbacks
.next_desktop
)
97 ob
.mbind("A-Up", ob
.MouseContext
.Root
,
98 ob
.MouseAction
.Click
, callbacks
.next_desktop
)
99 ob
.mbind("Up", ob
.MouseContext
.Root
,
100 ob
.MouseAction
.Click
, callbacks
.next_desktop
)
101 ob
.mbind("A-Down", ob
.MouseContext
.Frame
,
102 ob
.MouseAction
.Click
, callbacks
.prev_desktop
)
103 ob
.mbind("A-Down", ob
.MouseContext
.Root
,
104 ob
.MouseAction
.Click
, callbacks
.prev_desktop
)
105 ob
.mbind("Down", ob
.MouseContext
.Root
,
106 ob
.MouseAction
.Click
, callbacks
.prev_desktop
)
108 ob
.mbind("C-A-Up", ob
.MouseContext
.Frame
,
109 ob
.MouseAction
.Click
, callbacks
.send_to_next_desktop
)
110 ob
.mbind("C-A-Down", ob
.MouseContext
.Frame
,
111 ob
.MouseAction
.Click
, callbacks
.send_to_prev_desktop
)
113 export_functions
= setup_window_clicks
, setup_window_buttons
, setup_scroll
115 print "Loaded behavior.py"
This page took 0.039472 seconds and 4 git commands to generate.