dwww Home | Manual pages | Find package

xxkb(1)                     General Commands Manual                     xxkb(1)

NAME
       xxkb - switches and indicates a current keyboard layout.

SYNOPSIS
       xxkb

DESCRIPTION
       The  xxkb  program  shows the current keyboard layout (an XKB group) and
       allows to switch it with a mouse click. It has some additional features.
       The xxkb remembers the layout for each application  window  and  changes
       the  keyboard  state  accordingly when the window gets a focus. The xxkb
       can place an additional button on a window title bar and that button  is
       a  switcher  and  an indicator for that separate window. If the keyboard
       map has more than two layouts the xxkb can simplify a switching using  a
       two_state  mode. In this mode the xxkb allows to choose two layouts, one
       as a base layout and another one  as  an  alternative  layout  and  then
       switch  the keyboard state between them only. Also the xxkb supports ap-
       plications lists which allow to tune its behavior for some separate  ap-
       plications.
         The xxkb works with any window manager.

USAGE
       Working as an indicator the xxkb shows a current XKB layout using one of
       four  pixmaps  and  changes the pixmap when you change a layout with the
       keyboard (using the key or the key combination specified in  the  config
       file as an XKB group switcher) or using any other application which able
       to change the XKB group. Also the xxkb shows the similar pixmaps on each
       application  window title bar which are indicators for separate windows.
       Since the global indicator and the per window indicators duplicates each
       other you can hide the global indicator or all per window indicators us-
       ing configure options.
         Also you can use the xxkb as a layout switcher using  a  mouse  button
       click  on  the main xxkb window or one of the per window indicators.  In
       last case you switch the layout for the chosen application.

       MouseButton1
           The first button acts as a layout switcher. If the two_state mode is
           active the button click switches the current layout between two  se-
           lected  layouts (XKB groups). Otherwise it selects all possible lay-
           outs in cycle.

       MouseButton3
           When the two_state mode is switched on the third  button  allows  to
           choose an alternative layout. It selects all possible layouts in cy-
           cle and the layout you stop on becomes the alternative layout. With-
           out  the  two_state mode this button action is the same as the first
           button action.

       MouseButton2
           The second (middle) button action depends on  the  place  where  you
           click.  The click on the main indicator terminates the xxkb. But the
           click on one of the per window indicators simply removes the indica-
           tor  from  the title bar and excludes that application from a set of
           managed applications.  Also the second button allows you to  add  an
           application into one of three lists of the applications which should
           be  ignored  (see the Applications lists options below). Clicking on
           the per window indicator when the Control key  is  pressed  you  add
           this  application  to  the  wm_class_class list. If the Shift key is
           pressed the button click adds the application to the  wm_name  list.
           If  both  keys  are  pressed  the  click adds the application to the
           wm_class_name list.  In all cases the updated lists will be saved in
           a per user config file ~/.xxkbrc.

CONFIGURE OPTIONS
       The xxkb reads all configure options from  two  files  app-defaults/XXkb
       and ~/.xxkbrc.

Common options
       XXkb.image.path
           The directory where the xxkb searches pixmap files.

Main window options
       XXkb.mainwindow.enable
           switch  on  the  xxkb  main window (yes by default). If a per window
           button mode switched on some users prefer to hide the main window of
           the xxkb.

       XXkb.mainwindow.appicon
           run xxkb as an animated icon. It is useful for window managers which
           allow 'to dock' applications.

       XXkb.mainwindow.in_tray
           allow to dock xxkb into a system tray. A value  is  either  true  or
           false.

       XXkb.mainwindow.geometry
           the  geometry  (  WIDTHxHEIGHT{+-}XOFF{+-}YOFF ) of the main window.
           Please read the GEOMETRY SPECIFICATIONS section of X(7) for details.

       XXkb.mainwindow.border.color
           color to be used when drawing window border.

       XXkb.mainwindow.border.width
           border width in pixels.

       XXkb.mainwindow.image.N
           pixmap file names for each indicated group N. If  your  symbols  map
           has  less than four groups the unused group icons can be omitted. If
           the file name begins from '/' it means full path for the file.  Oth-
           erwise it means the relative path beginning from the XXkb.image.path
           value.

       XXkb.mainwindow.label.enable
           enable  labels  to  be printed instead of images. Group descriptions
           will be used  if  not  overwritten  by  XXkb.mainwindow.label.text.N
           (where N is 1..4, group number) options.

       XXkb.mainwindow.label.text.N
           label for the specified group N.

       XXkb.mainwindow.label.background

       XXkb.mainwindow.label.foreground
           colors used to draw background and label text respectively.

       XXkb.mainwindow.label.font
           font to be used when drawing labels.

Operation mode options
       Since  the xxkb can keep the keyboard state for each application and re-
       store the state when the focus is changed there  are  group  of  options
       which controls how the xxkb finds the application windows.

       XXkb.controls.add_when_start
           If  this  mode is switched on (default) the xxkb at start time tries
           to find all application already run.

       XXkb.controls.add_when_create
           In this mode the xxkb gets a new application window at time when the
           application creates it. It is the base mode but I can't guaranty  it
           works with all window managers.

       XXkb.controls.add_when_change
           In  this  mode  the xxkb doesn't catch the windows at their creation
           but adds windows to the managed windows list if the  keyboard  state
           changes  when  the  window  is focused. It's an additional mode (not
           recommended) and may be useful only if the add_when_create mode  for
           some reason doesn't work.

       XXkb.controls.focusout
           It makes the xxkb reset the keyboard group when the focus leaves the
           window. The mode makes sense with the add_when_change mode only.

       XXkb.controls.button_delete
           This  mode  (switched  on  by default) allows user to remove the per
           window button using a mouse middle button click. Although  the  xxkb
           tries  to  ignore  the  windows  where the keyboard layout switching
           doesn't make sense, such windows can still appear. Or there are win-
           dows where an user for some reason doesn't want to have the button.

       XXkb.controls.button_delete_and_forget
           This mode in addition to previous one makes xxkb to forget the  win-
           dow  which  button  is deleted.  It means the xxkb will not remember
           the keyboard state changes in this window  and  restore  this  state
           when the window will be focused.

       XXkb.controls.two_state
           Switching between two chosen keyboard layouts only.  If the XKB sym-
           bols map has more than two groups and not all of them are needed for
           each  application  the  xxkb  allows to skip unneeded layouts at the
           layout switching. You can select one group as a base group  and  an-
           other  one as an alternative group and then switch between these two
           groups only.  The base group is common for all applications (usually
           it contains ASCII) but the alternative group can be chosen for  each
           application  window  separately.   In this mode a mouse right button
           allows to select the alternative group and a mouse  left  button  as
           well  as  the key which configured as the layout switcher change the
           current state between two selected layouts only.
             This mode uses two additional config options:

       XXkb.group.base
           the base group (integer 1..4).

       XXkb.group.alt
           the default alternative group (integer 1..4).

The application window button options
       All these options make sense if the XXkb.button.enable switched on.

       XXkb.button.enable
           If turned on, the xxkb adds an additional button to a title  bar  of
           each  managed  window which is the indicator and the layout switcher
           for that particular window.  These buttons are not usual window man-
           ager buttons but windows (with a pixmap) owned by the  xxkb  itself.
           It means that in some cases a user needs to tune the button size and
           the  position  for  the button look like a window manager decoration
           element.

       XXkb.button.geometry
           the button geometry ( WIDTHxHEIGHT{+-}XOFF{+-}YOFF ).

       XXkb.button.image.N
           the pixmap file names (the same as for  the  XXkb.mainwindow.image.*
           options).

       XXkb.button.label.enable

       XXkb.button.label.text.N

       XXkb.button.label.background

       XXkb.button.label.foreground

       XXkb.button.label.font

       XXkb.button.border.color

       XXkb.button.border.width
           see description of their main window counterparts.

Bell options
       XXkb.bell.enable
           enables the keyboard bell when the layout changes.

       XXkb.bell.percent
           an argument value for the XBell call.

Applications lists options
       The xxkb allows to specify lists of applications that requires some spe-
       cial  actions. The applications can be specified using their WM_CLASS or
       WM_NAME properties.
         A common form of such option is

       XXkb.app_list.property.action: an applications list

         The action here can be one of ignore, start_alt  or  alt_groupn.   The
       ignore  action  means that the xxkb must ignore the windows of those ap-
       plications and  doesn't  add  them  to  the  managed  windows  set.  The
       start_alt  action means that the xxkb must set the keyboard state to the
       alternative layout when the  application  starts.  And  the  alt_group1,
       alt_group2, alt_group3 or alt_group4 actions allow to specify the alter-
       native  layout  for some applications if this layout should be different
       from the common alternative layout specified in the  XXkb.group.alt  op-
       tion.
         The  property  can be one of wm_class_class, wm_class_name or wm_name.
       The xxkb  can  identify  an  application  using  its  window  properties
       WM_CLASS  or  WM_NAME.  The  WM_CLASS  property actually consists of two
       parts - a res_class and a res_name. Thus the  property  field  specifies
       what  property or part of property should be considered for the applica-
       tion identification.
         By default all these lists are empty. A not empty list is  a  sequence
       of  words separated by space/tab. The xxkb accepts an asterisk as a part
       of word.  Long lists can be continued to the next line using a backslash
       as the last char in the line.
         For example:
         XXkb.app_list.wm_name.ignore: Fvwm* *clock .br

                                       Xman

       XXkb.ignore.reverse
           This option changes a meaning of the Xxkb.*.ignore  list. If the op-
           tion switched on the ignore list becomes the list of  windows  which
           should be managed but all other should be ignored.

AUTHOR
       Ivan Pascal

XXKB                              24 Jun 2002                           xxkb(1)

Generated by dwww version 1.16 on Sat Oct 3 04:07:04 CEST 2026.