Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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 al-
     lows to switch it with a mouse click. It has some additional features.  The
     xxkb remembers the layout for each application window and changes the  key-
     board 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 be-
     tween  them  only. Also the xxkb supports applications lists which allow to
     tune its behavior for some separate applications.
       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 key-
     board (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 using  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  layouts
	 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  cycle
	 and  the layout you stop on becomes the alternative layout. Without the
	 two_state mode this button action is the same as the first  button  ac-
	 tion.

     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 indicator from  the
	 title	bar and excludes that application from a set of managed applica-
	 tions.  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 up-
	 dated 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.xpm.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.xpm.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. Otherwise it
	 means the relative path beginning from the XXkb.xpm.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 restore
     the  state  when the focus is changed there are group of options which con-
     trols 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  windows  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 window
	 which button is deleted.  It means the xxkbwill not remember  the  key-
	 board state changes in this window and restore this state when the win-
	 dow will be focused.

     XXkb.controls.two_state
	 Switching between two chosen keyboard layouts only.  If the XKB symbols
	 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 another 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 manager 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.xpm.N
	 the pixmap file names (the same as for  the  XXkb.mainwindow.xpm.*  op-
	 tions).

     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 special
     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  ig-
     nore  action  means that the xxkb must ignore the windows of those applica-
     tions 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 alternative layout for some  appli-
     cations if this layout should be different from the common alternative lay-
     out specified in the XXkb.group.alt option.
       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 application 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 \
				     Xman

     XXkb.ignore.reverse
	 This option changes a meaning of the Xxkb.*.ignore  list. If the option
	 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xxkb&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help