1xxkb(1) General Commands Manual xxkb(1)
2
3
4
6 xxkb - switches and indicates a current keyboard layout.
7
9 xxkb
10
12 The xxkb program shows the current keyboard layout (an XKB group) and
13 allows to switch it with a mouse click. It has some additional fea‐
14 tures. The xxkb remembers the layout for each application window and
15 changes the keyboard state accordingly when the window gets a focus.
16 The xxkb can place an additional button on a window title bar and that
17 button is a switcher and an indicator for that separate window. If the
18 keyboard map has more than two layouts the xxkb can simplify a switch‐
19 ing using a two_state mode. In this mode the xxkb allows to choose two
20 layouts, one as a base layout and another one as an alternative layout
21 and then switch the keyboard state between them only. Also the xxkb
22 supports applications lists which allow to tune its behavior for some
23 separate applications.
24 The xxkb works with any window manager.
25
27 Working as an indicator the xxkb shows a current XKB layout using one
28 of four pixmaps and changes the pixmap when you change a layout with
29 the keyboard (using the key or the key combination specified in the
30 config file as an XKB group switcher) or using any other application
31 which able to change the XKB group. Also the xxkb shows the similar
32 pixmaps on each application window title bar which are indicators for
33 separate windows. Since the global indicator and the per window indica‐
34 tors duplicates each other you can hide the global indicator or all per
35 window indicators using configure options.
36 Also you can use the xxkb as a layout switcher using a mouse button
37 click on the main xxkb window or one of the per window indicators. In
38 last case you switch the layout for the chosen application.
39
40 MouseButton1
41 The first button acts as a layout switcher. If the two_state mode
42 is active the button click switches the current layout between two
43 selected layouts (XKB groups). Otherwise it selects all possible
44 layouts in cycle.
45
46 MouseButton3
47 When the two_state mode is switched on the third button allows to
48 choose an alternative layout. It selects all possible layouts in
49 cycle and the layout you stop on becomes the alternative layout.
50 Without the two_state mode this button action is the same as the
51 first button action.
52
53 MouseButton2
54 The second (middle) button action depends on the place where you
55 click. The click on the main indicator terminates the xxkb. But
56 the click on one of the per window indicators simply removes the
57 indicator from the title bar and excludes that application from a
58 set of managed applications. Also the second button allows you to
59 add an application into one of three lists of the applications
60 which should be ignored (see the Applications lists options below).
61 Clicking on the per window indicator when the Control key is
62 pressed you add this application to the wm_class_class list. If the
63 Shift key is pressed the button click adds the application to the
64 wm_name list. If both keys are pressed the click adds the applica‐
65 tion to the wm_class_name list. In all cases the updated lists
66 will be saved in a per user config file ~/.xxkbrc.
67
69 The xxkb reads all configure options from two files app-defaults/XXkb
70 and ~/.xxkbrc.
71
73 XXkb.xpm.path
74 The directory where the xxkb searches pixmap files.
75
77 XXkb.mainwindow.enable
78 switch on the xxkb main window (yes by default). If a per window
79 button mode switched on some users prefer to hide the main window
80 of the xxkb.
81
82 XXkb.mainwindow.appicon
83 run xxkb as an animated icon. It is useful for window managers
84 which allow 'to dock' applications.
85
86 XXkb.mainwindow.in_tray
87 allow to dock xxkb into a system tray. A value is either true or
88 false.
89
90 XXkb.mainwindow.geometry
91 the geometry ( WIDTHxHEIGHT{+-}XOFF{+-}YOFF ) of the main window.
92 Please read the GEOMETRY SPECIFICATIONS section of X(7) for
93 details.
94
95 XXkb.mainwindow.border.color
96 color to be used when drawing window border.
97
98 XXkb.mainwindow.border.width
99 border width in pixels.
100
101 XXkb.mainwindow.xpm.N
102 pixmap file names for each indicated group N. If your symbols map
103 has less than four groups the unused group icons can be omitted. If
104 the file name begins from '/' it means full path for the file. Oth‐
105 erwise it means the relative path beginning from the XXkb.xpm.path
106 value.
107
108 XXkb.mainwindow.label.enable
109 enable labels to be printed instead of images. Group descriptions
110 will be used if not overwritten by XXkb.mainwindow.label.text.N
111 (where N is 1..4, group number) options.
112
113 XXkb.mainwindow.label.text.N
114 label for the specified group N.
115
116 XXkb.mainwindow.label.background
117
118 XXkb.mainwindow.label.foreground
119 colors used to draw background and label text respectively.
120
121 XXkb.mainwindow.label.font
122 font to be used when drawing labels.
123
125 Since the xxkb can keep the keyboard state for each application and
126 restore the state when the focus is changed there are group of options
127 which controls how the xxkb finds the application windows.
128
129 XXkb.controls.add_when_start
130 If this mode is switched on (default) the xxkb at start time tries
131 to find all application already run.
132
133 XXkb.controls.add_when_create
134 In this mode the xxkb gets a new application window at time when
135 the application creates it. It is the base mode but I can't guar‐
136 anty it works with all window managers.
137
138 XXkb.controls.add_when_change
139 In this mode the xxkb doesn't catch the windows at their creation
140 but adds windows to the managed windows list if the keyboard state
141 changes when the window is focused. It's an additional mode (not
142 recommended) and may be useful only if the add_when_create mode for
143 some reason doesn't work.
144
145 XXkb.controls.focusout
146 It makes the xxkb reset the keyboard group when the focus leaves
147 the window. The mode makes sense with the add_when_change mode
148 only.
149
150 XXkb.controls.button_delete
151 This mode (switched on by default) allows user to remove the per
152 window button using a mouse middle button click. Although the xxkb
153 tries to ignore the windows where the keyboard layout switching
154 doesn't make sense, such windows can still appear. Or there are
155 windows where an user for some reason doesn't want to have the but‐
156 ton.
157
158 XXkb.controls.button_delete_and_forget
159 This mode in addition to previous one makes xxkb to forget the win‐
160 dow which button is deleted. It means the xxkbwill not remember
161 the keyboard state changes in this window and restore this state
162 when the window will be focused.
163
164 XXkb.controls.two_state
165 Switching between two chosen keyboard layouts only. If the XKB
166 symbols map has more than two groups and not all of them are needed
167 for each application the xxkb allows to skip unneeded layouts at
168 the layout switching. You can select one group as a base group and
169 another one as an alternative group and then switch between these
170 two groups only. The base group is common for all applications
171 (usually it contains ASCII) but the alternative group can be chosen
172 for each application window separately. In this mode a mouse right
173 button allows to select the alternative group and a mouse left but‐
174 ton as well as the key which configured as the layout switcher
175 change the current state between two selected layouts only.
176 This mode uses two additional config options:
177
178 XXkb.group.base
179 the base group (integer 1..4).
180
181 XXkb.group.alt
182 the default alternative group (integer 1..4).
183
185 All these options make sense if the XXkb.button.enable switched on.
186
187 XXkb.button.enable
188 If turned on, the xxkb adds an additional button to a title bar of
189 each managed window which is the indicator and the layout switcher
190 for that particular window. These buttons are not usual window
191 manager buttons but windows (with a pixmap) owned by the xxkb
192 itself. It means that in some cases a user needs to tune the button
193 size and the position for the button look like a window manager
194 decoration element.
195
196 XXkb.button.geometry
197 the button geometry ( WIDTHxHEIGHT{+-}XOFF{+-}YOFF ).
198
199 XXkb.button.xpm.N
200 the pixmap file names (the same as for the XXkb.mainwindow.xpm.*
201 options).
202
203 XXkb.button.label.enable
204
205 XXkb.button.label.text.N
206
207 XXkb.button.label.background
208
209 XXkb.button.label.foreground
210
211 XXkb.button.label.font
212
213 XXkb.button.border.color
214
215 XXkb.button.border.width
216 see description of their main window counterparts.
217
219 XXkb.bell.enable
220 enables the keyboard bell when the layout changes.
221
222 XXkb.bell.percent
223 an argument value for the XBell call.
224
226 The xxkb allows to specify lists of applications that requires some
227 special actions. The applications can be specified using their WM_CLASS
228 or WM_NAME properties.
229 A common form of such option is
230
231 XXkb.app_list.property.action: an applications list
232
233 The action here can be one of ignore, start_alt or alt_groupn. The
234 ignore action means that the xxkb must ignore the windows of those
235 applications and doesn't add them to the managed windows set. The
236 start_alt action means that the xxkb must set the keyboard state to the
237 alternative layout when the application starts. And the alt_group1,
238 alt_group2, alt_group3 or alt_group4 actions allow to specify the
239 alternative layout for some applications if this layout should be dif‐
240 ferent from the common alternative layout specified in the
241 XXkb.group.alt option.
242 The property can be one of wm_class_class, wm_class_name or wm_name.
243 The xxkb can identify an application using its window properties
244 WM_CLASS or WM_NAME. The WM_CLASS property actually consists of two
245 parts - a res_class and a res_name. Thus the property field specifies
246 what property or part of property should be considered for the applica‐
247 tion identification.
248 By default all these lists are empty. A not empty list is a sequence
249 of words separated by space/tab. The xxkb accepts an asterisk as a part
250 of word. Long lists can be continued to the next line using a back‐
251 slash as the last char in the line.
252 For example:
253 XXkb.app_list.wm_name.ignore: Fvwm* *clock \
254 Xman
255
256 XXkb.ignore.reverse
257 This option changes a meaning of the Xxkb.*.ignore list. If the
258 option switched on the ignore list becomes the list of windows
259 which should be managed but all other should be ignored.
260
262 Ivan Pascal
263
264
265
266XXKB 24 Jun 2002 xxkb(1)