1xxkb(1)                     General Commands Manual                    xxkb(1)
2
3
4

NAME

6       xxkb - switches and indicates a current keyboard layout.
7

SYNOPSIS

9       xxkb
10

DESCRIPTION

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

USAGE

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

CONFIGURE OPTIONS

69       The  xxkb  reads all configure options from two files app-defaults/XXkb
70       and ~/.xxkbrc.
71

Common options

73       XXkb.xpm.path
74           The directory where the xxkb searches pixmap files.
75

Main window options

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

Operation mode options

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

The application window button options

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

Bell options

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

Applications lists options

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

AUTHOR

262       Ivan Pascal
263
264
265
266XXKB                              24 Jun 2002                          xxkb(1)
Impressum