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

  
 
  

home | help
BBKEYSRC(5)			    bbkeysrc			     BBKEYSRC(5)

NAME
     bbkeysrc - bbkeys configuration file

SYNOPSIS
     $HOME/.bbkeysrc

DESCRIPTION
     bbkeys  picks  up	its  configuration  settings from $HOME/.bbkeysrc unless
     overridden on the command line.  There are several avenues open to the user
     to set any key-grabs that the user wishes:

   Using bbconf:
     This is a Qt-based application available at http://bbconf.sourceforge.net/.

   Manually editing $HOME/.bbkeysrc:
     The format is very easy, and it follows the same format as blackbox's  menu
     files.   It  must	begin with a "[begin]" tag.  It may contain a "[config]"
     tag, containing a configuration section, ending with  a  "[end]"  tag.   In
     fact,  all  opening  section  tags must end with an "[end]" tag.  It should
     also contain a "[keybindings]" section.
     For more information, see the man page for blackbox's menu.

LIST OF CONFIG OPTIONS
     stylefile:
	    filename of blackbox style to use (string)

     honorModifiers:
	    whether or not to break if NumLock or ScrollLock is pressed.  (hint:
	    for bbkeys to ignore your keybindings if NumLock or  ScrollLock  are
	    pressed, set this to true) (true or false)

     raiseWhileCycling:
	    should bbkeys raise the windows you're cycling through while cycling
	    through them? (true or false)

     followWindowOnSend:
	    should  bbkeys follow the window that you send to another workspace?
	    this will apply to all send-to operations such that if this  is  set
	    to	true,  bbkeys  will  change workspaces to the workspace that you
	    send the window to. (true or false)

     includeIconifiedWindowsInCycle:
	    should bbkeys include iconified windows in its window-cycling  list?
	    (true or false)

     showCycleMenu
	    show the window-cycling menu or cycle without it? (true or false)

     cycleMenuTitle
	    show  the  given string as the title of the window-cycling menu.  if
	    an empty string is passed  as  the	parameter  to  this  config  op-
	    tion("{}"), then the title will not be drawn. (string value)

     menuTextJustify
	    how  should  the  window-cycling  menu  be justified? (left, center,
	    right)

     menuTitleJustify
	    how should the window-cycling title  be  justified?  (left,  center,
	    right)

     autoConfig
	    should bbkeys watch for changes to its config file?  (true or false)
	    Note:  if  you decide to not do this (though it should be VERY light
	    on system resources), you can always force bbkeys to reconfigure it-
	    self by sending it a SIGHUP (killall -HUP bbkeys).

     autoConfigCheckTimeout
	    how often should bbkeys check for changes made to its  config  file?
	    (numeric number of seconds)

     workspaceColumns
	    number  of	columns  that  you have your workspaces laid out in your
	    pager (numeric)

     workspaceRows
	    number of rows that you have your workspaces/desktops  laid  out  in
	    (numeric).	As way of an example, if you have your pager laid out in
	    a  4x2 grid (4 wide, 2 high), then you would set workspaceColumns to
	    4 and workspaceRows to 2.

     cycleMenuX
	    horizontal position that you want the window cycling menu to show up
	    at. (numeric)

     cycleMenuY
	    vertical position that you want the window cycling menu to	show  up
	    at.  (numeric)   NOTE.  The cycleMenuX and cycleMenuY config options
	    allow you to place your window-cycling window exactly where you want
	    to put it on screen.  We at the Bbkeys Foundation For  Better  Soft-
	    ware  (TM) call this a feature, though some crazy nuts might call it
	    a bug caused by the fact that blackbox's  Menu  class  doesn't  have
	    anything  in  it  to center it on-screen, etc.  It also doesn't have
	    any methods available to  figure  out  how	big  the  menu	will  be
	    on-screen.	 This  can  be worked around by bbkeys, but I've not the
	    time to do it now.	Patch anyone?  Or, you can just  consider  it  a
	    really neat feature that you can place the popup window-cycling win-
	    dow anywhere you want.  =:D

KEYBINDINGS
     The format of this section is similar to the config section, and blackbox's
     menu structure.  Each line will look like this:

	    [command] (keys) {parameters}

     Parameters:
     Not  all  directives need to have parameters provided, and within the [key-
     bindings] section, the only sub-group allowed (a group that  will	have  an
     [end]  tag)  is  the  [chain] tag.  The chain tag is special and allows the
     user to give emacs-style keybindings, where a certain keystroke  is  given,
     released,	and  then  another keystroke is given to complete the action.  A
     good example would be the following:

		[chain] (Control-Mod1-W)
		  [sendToWorkspace] (1) {1}
		  [sendToWorkspace] (2) {2}
		  [sendToWorkspace] (3) {3}
		  [sendToWorkspace] (4) {4}
		[end]

     Note that both the beginning [chain] and the ending [end] tags must be pro-
     vided.  In this example, the chain is begun by the user pressing (and hold-
     ing) the Control modifier, the Mod1 (Alt) modifier, and the "W" key on  his
     keyboard.	 The  user then releases these keys and bbkeys enters the chain.
     Bbkeys will then wait for the user to press one  of  the  keybindings  from
     within that chain to execute the next action.  In this case, if bbkeys sees
     either  the  1,  2, 3 or 4 key pressed on the keyboard, it will execute the
     given action for that key.  Again, in this case, bbkeys will send the  cur-
     rently-focused window to the workspace specified in the {}-enclosed parame-
     ter (workspace 1, 2, 3, or 4 as the case may be here.

     So,  the parameters provided in a keybinding directive can be seen as addi-
     tional information to provide to the "command".  In some cases, it will  be
     a	number	(what workspace to send a window to, how many pixels to move the
     window, how many pixels to resize a window, etc.).  In other cases, it will
     be a string ("xterm -fn nexus", for example, as an argument to the  Execute
     command.  And for many directives, it is not needed at all.

     Keys:
     The  format  for  the  keybindings are using 0 or more modifiers, separated
     with the "-" character, finally followed by the key name  as  known  to  X.
     The "left" key, for example, is known to X as "Left".  The "j" key is known
     as  "J".	You  get  the idea.  The modifiers are typically, "Shift", "Con-
     trol", and "Mod1".  An example would  be  Mod1-Control-K.	 This  would  be
     listed as the second element in a keybinding directive.

     Commands:
     The following commands are understood by bbkeys.  Bbkeys is not case-sensi-
     tive with regards to its commands, so the case may be mixed accidentally or
     on purpose.  =:)

     execute
	    Executes  a  command.   An string argument/parameter is expected for
	    this directive that lists the command to be executed.

     iconify

     raise

     lower

     close

     toggleShade

     toggleOmnipresent
	    Sets a window to be "sticky"--on all workspaces.

     toggleDecorations
	    Either strips a window of all decorations or causes it to  be  deco-
	    rated regularly.

     moveWindowUp
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els in the given direction to move the currently-selected window.

     moveWindowDown
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els in the given direction to move the currently-selected window.

     moveWindowLeft
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els in the given direction to move the currently-selected window.

     moveWindowRight
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els in the given direction to move the currently-selected window.

     resizeWindowWidth
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els  in the given direction to resize the currently-selected window.
	    This may be a positive or negative number, allowing bbkeys	to  grow
	    or shrink the window.

     resizeWindowHeight
	    A numeric parameter may be provided which tells bbkeys how many pix-
	    els  in the given direction to resize the currently-selected window.
	    This may be a positive or negative number, allowing bbkeys	to  grow
	    or shrink the window.

     toggleMaximizeFull

     toggleMaximizeVertical

     toggleMaximizeHorizontal

     sendToWorkspace
	    A  numeric parameter must be provided which tells bbkeys which work-
	    space (1-based index) to send the current window to.

     sendToNextWorkspace

     sendToPrevWorkspace

     nextWindow
	    Used for window cycling (alt-tabbing, most often).	Selects the next
	    window according to the window stack.

     prevWindow
	    Used for window cycling (alt-tabbing, most often).	Selects the pre-
	    vious window according to the window stack.

     nextWindowOnAllWorkspaces

     prevWindowOnAllWorkspaces

     nextWindowOnAllScreens

     prevWindowOnAllScreens

     nextWindowOfClass

     prevWindowOfClass

     nextWindowOfClassOnAllWorkspaces

     prevWindowOfClassOnAllWorkspaces

     changeWorkspace
	    A numeric parameter must be given to tell bbkeys which 1-based work-
	    space to switch to.

     nextWorkspace

     prevWorkspace

     upWorkspace

     downWorkspace

     leftWorkspace

     rightWorkspace

     nextScreen

     prevScreen

     chain  No parameter is needed for this directive.

EXAMPLE
     Example config file below...

     [begin] (bbkeys configuration file)

       [config]
	 [option] (stylefile) {~/local/blackbox-CVS/share/blackbox/styles/Cthul-
     hain}
	 [option] (honorModifiers) {false}
	 [option] (raiseWhileCycling) {false}
	 [option] (showCycleMenu)  {true}
	 [option] (menuTextJustify) {right}
	 [option] (autoConfig)	 {true}
	 [option] (autoConfigCheckTimeout) {2}
	 [option] (workspaceColumns) {4}
	 [option] (workspaceRows) {2}
	 [option] (cycleMenuX) {20}
	 [option] (cycleMenuY) {20}
       [end]

       [keybindings] (begin keybindings)
	 [chain] (Control-Mod1-W)
	   [sendToWorkspace] (1) {1}
	   [sendToWorkspace] (2) {2}
	   [sendToWorkspace] (3) {3}
	   [sendToWorkspace] (4) {4}
	   [sendToWorkspace] (5) {5}
	   [sendToWorkspace] (6) {6}
	   [sendToWorkspace] (7) {7}
	   [sendToWorkspace] (8) {8}
	 [end]
	 [chain] (Mod1-Y)
	   [execute] (1) {xmms}
	   [execute] (2) {aumix -v +5}
	   [execute] (3) {aumix -v -5}
	 [end]
	 [Lower]  (Mod1-Down)
	 [Raise]  (Mod1-Up)
	 [toggleShade]	(Mod1-F9)
	 [Close]  (Mod1-F4)
	 [Iconify]  (Mod1-m)
	 [toggleMaximizeFull]  (Mod1-F12)
	 [toggleMaximizeHorizontal]  (Mod1-F11)
	 [toggleMaximizeVertical]  (Mod1-F10)
	 [toggleOmnipresent]  (Mod1-Control-S)
	 [resizeWindowWidth]  (Mod1-Control-Shift-Left) {-5}
	 [resizeWindowWidth]  (Mod1-Control-Shift-Right) {5}
	 [resizeWindowHeight]  (Mod1-Control-Shift-Up) {-5}
	 [resizeWindowHeight]  (Mod1-Control-Shift-Down) {5}
	 [moveWindowUp]  (Mod1-Control-Up) {1}
	 [moveWindowDown]  (Mod1-Control-Down) {1}
	 [moveWindowLeft]  (Mod1-Control-Left) {1}
	 [moveWindowRight]  (Mod1-Control-Right) {1}
	 [NextWindow]  (Mod1-Tab)
	 [NextWindowOnAllWorkspaces]  (Mod1-Control-Tab)
	 [PrevWindow]  (Mod1-Shift-Tab)
	 [changeWorkspace]  (Mod1-1) {1}
	 [changeWorkspace]  (Mod1-2) {2}
	 [changeWorkspace]  (Mod1-3) {3}
	 [changeWorkspace]  (Mod1-4) {4}
	 [changeWorkspace]  (Mod1-5) {5}
	 [changeWorkspace]  (Mod1-6) {6}
	 [changeWorkspace]  (Mod1-7) {7}
	 [changeWorkspace]  (Mod1-8) {8}

	 [upWorkspace] (Mod1-Control-K)
	 [downWorkspace] (Mod1-Control-J)
	 [leftWorkspace] (Mod1-Control-H)
	 [rightWorkspace] (Mod1-Control-L)

	 [showRootMenu] (Mod1-Control-Escape)

	 [Execute]  (Mod1-F5) {xrefresh}
	 [Execute]  (Mod1-F1) {gnome-terminal}
	 #[Execute]  (Mod4-E) {kfmclient openProfile filemanagement}
	 #[Execute]  (F20) {kfmclient openProfile filemanagement}
	 [Execute]  (Mod4-E) {nautilus /home/gideon}
	 [Execute]  (F20) {nautilus /home/gideon}
       [end] (end keybindings) [end] (end bbkeys configuration)

SEE ALSO
     bbkeys(1), blackbox(1)

AUTHOR
     Jason 'vanRijn' Kasper <vR@movingparts.net> - bbkeys
     Jan Schaumann <jschauma@netmeister.org> - this man page

vanRijn 			 August 27, 2004		     BBKEYSRC(5)

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

home | help