- Getting Started
- Ultimate Guide to fluxbox Tabs
- Setting Backgrounds
- The Slit
- Editing Your Menu
- The Basics of themes (styles) in Fluxbox
- The native fluxbox keygrabber
It works very similar to bbkeys, which is an excellent tool but had some limitations
(and was license incompatible), but with a totally new syntax for the config file,
and a couple of new features which makes fluxbox even more powerful.
For one, the new keygrabber supports chains of key sequences (think emacs)...
so you could for example have; Mod1 + M + Mod1 + F to switch to the next workspace
(not that anyone would actually use that particular key sequence;).
And if you've typed in a part of the sequence but decides not to continue
(abort) then you can hit another key sequence (that you configured in you keys file)
to simply abort (with: AbortChain).
In addition to this you can now also bind a key sequence to switch between
joined/docked windows in a group (with: NextTab and PrevTab)!
Finally, for your convienience we (or rather vlaad and tarzeau) has
supplied you with two scripts (they both do the same thing) to convert
a bbkeys conf-file to a fluxbox keys-file. (usage of the scripts is described in them).
Download: converkeys or convertkeys2.
Here is a example of a fluxbox keysfile:
Mod1 Tab :NextWindow
Mod1 F1 :Workspace1
Mod1 F2 :Workspace2
Mod1 F3 :Workspace3
Mod1 F4 :Workspace4
Control n Mod1 n :NextTab
So, as you can see, First there is a modifier, then a key
(then a modifier and key again if you wish to have a longer sequence) and finally
a colon with an action.
For list of valid keys actions read a little Further down in this document. :)
And why this is good for you? Well, now you can master your xmms, eg.
Mod1 P :ExecCommand xmms -p
Mod1 F :execCommand xmms -f
If you'd have some additional keys (e.g multimedia keys), you could control xmms this way:
None XF86AudioPlay :execCommand xmms -u
None XF86AudioStop :execCommand xmms -s
I would say check
xmms --help for more info, but you are doing this right now probably...
How To Detect Key Name
xev, press a key and see what it says about it.
Here is the example after pressing the Right Arrow key:
KeyPress event, serial 18, synthetic NO, window 0x2c00001,
root 0x60, subw 0x0, time 3745737930, (373,380), root:(504,526),
state 0x10, keycode 102 (keysym 0xff53, Right), same_screen YES,
XLookupString gives 0 characters: ""
- Special Keys
Control = Control
Alt = Mod1
Super, Meta (Windows Keys) = Mod4
- Actions which can be assigned to the keys
|Workspace||Go to a particular workspace. use :Workspace 1, :Workspace 2, etc.|
|WorkspaceNN||Kept for compatibility only. Will dissappear soon. Example :Workspace1. Use :Workspace 1 instead.|
|NextTab||Switches to the next Tab in the current group.|
|PrevTab||Switches to the previous Tab in the current group.|
|NextWindow||Go to Next Window. See note 1.|
|PrevWindow||Go to previous window. Again, see note 1.|
|NextWorkspace||Go to the Next Workspace|
|PrevWorkspace||Go to the Previous Workspace|
|LeftWorkspace||same as PrevWorkspace|
|RightWorkspace||same as NextWorkspace|
|Close||Closes the Window|
|KillWindow||The equivalent of calling xkill and clicking on the window.|
|Minimize||Also known as "iconify". Makes the window Iconified.|
|ShadeWindow||puts window in the 'Shaded' State, or restores from the 'shaded' state.|
|StickWindow||Toggles a Window's 'Sticky' State.|
|ToggleDecor||Toggles whether or not current window has a border, buttons, and titlebar.|
|ToggleTab||Toggles the tab on or off for a window.|
|Raise||Brings the window to the 'Top', it will appear 'above' windows that it overlaps.|
|Lower||Opposite of Raise|
|HorizontalIncrement||Makes the window one unit Wider (See note 2)|
|HorizontalDecrement||Opposite of Horizontal Increment|
|VerticalIncrement||Makes the window one unit Taller (See note 2)|
|VerticalDecrement||Opposite of Vertical Increment|
|MaximizeHorizontal||Maximize the window by Horizontal dimensions only.|
|MaximizeVertical||Maximize the window by Vertical dimensions only.|
|MaximizeWindow||Maximizes the Window.|
|SendToWorkspace||Sends current window to a specified workspace. :SendToWorkspace 1|
|NudgeDown||The nudge options all move windows around.|
|NudgeLeft||The nudge options all move windows around.|
|NudgeRight||The nudge options all move windows around.|
|NudgeUp||The nudge options all move windows around.|
|BigNudgeDown||The Bignudge options all move windows around By larger amounts.|
|BigNudgeLeft||The Bignudge options all move windows around By larger amounts.|
|BigNudgeRight||The Bignudge options all move windows around By larger amounts.|
|BigNudgeUp||The Bignudge options all move windows around By larger amounts.|
|AbortKeychain||In Multi-binding keychains, this cancels the keybinding|
|ExecCommand||Executes a command. Example :ExecCommand xmms -t|
|RootMenu||Summons the Root Menu.|
- NextWindow / PrevWindow
The NextWindow / PrevWindow has a numerical Argument, which was best described
in an Email by the author of the patch that added this functionality:
(I have truncated this Email by a little bit, but you can find it in the archives.)
A little history... The starting point was a patch posted by
kitaj.no-ip.com for skipping stuck windows. He added a global option
that changed PrevWindow/NextWindow behavior. I originally followed
that strategy for supporting better cycling of tabbed window groups.
However Rando Christensen suggested rather than creating new options
it should be new functions. His goal was greater flexibility. It
made sense to me.
What I finally decided to do was parameterize NextWindow/PrevWindow.
In the patched code these functions take an optional integer parameter
that specifies the options listed at the top. The options are
implemented as an or'd bit mask:
1 = Skip lower tabs (treat tabbed groups as a single window)
2 = Skip stuck windows
4 = Skip shaded windows
Sum the above numbers to specify multiple options. Zero provides the
default/current behavior. Redundantly here's the combinations:
0 or unspecified = Default/current behavior - no skipping
1 = Skip: lower tabs
2 = Skip: stuck windows
3 = Skip: lower tabs/stuck windows
4 = Skip: shaded windows
5 = Skip: lower tabs/shaded windows
6 = Skip: stuck windows/shaded windows
7 = Skip: lower tabs/stuck windows/shaded windows
Entries in the keys file might look like this:
Mod1 Tab :NextWindow 7
Mod1 Shift Tab :PrevWindow 7
It is backward compatible with old keys files that don't have
parameters to these functions. The default/current behavior will be
(Note: Any rumors That I pasted that whole email rather than just the
relevant bits solely because my name are in it are untrue; In reality,
I was just Far Too lazy to type all that out. I've been typing
on documents all day, give me a break. ;)
However, I'd like to publically and formally thank Steve Cooper
for Adding this feature, specifically the 'Skip lowered Tabs' portion of
the option. I had been asking for this feature myself for at least two
months before he appeared and submitted patches like crazy. :)
- HorizontalIncrement / HorizontalDecrement / VerticalIncrement / VerticalDecrement
I say "one Unit" when I describe the resizing. This in particular is in
regard to xterm/aterm/eterm in that instead of resizing by one pixel, they
will add another character-width worth of space.
All other programs should just resize by one pixel.