Fluxbox Tips & Tricks
Initial Set-up
First thing we need to do is edit some configuration files.Use your favorite text editor(I use midnight commander)and navigate to /home/username/.fluxbox
Lets make it so we can edit our menu.Open /home/username/.fluxbox/init and make sure it is;
session.menuFile: ~/.fluxbox/menu
or
session.menuFile: /home/username/.fluxbox/menu
Sample /home/username/.fluxbox/init
session.screen0.toolbar.alpha: 255 session.screen0.toolbar.autoHide: false session.screen0.toolbar.maxOver: false session.screen0.toolbar.height: 0 session.screen0.toolbar.layer: Desktop session.screen0.toolbar.tools: workspacename, prevworkspace, nextworkspace, iconbar, systemtray, prevwindow, nextwindow, clock session.screen0.toolbar.widthPercent: 100 session.screen0.toolbar.placement: BottomLeft session.screen0.toolbar.onTop: False session.screen0.toolbar.visible: true session.screen0.toolbar.onhead: 0 session.screen0.overlay.lineWidth: 1 session.screen0.overlay.lineStyle: LineSolid session.screen0.overlay.joinStyle: JoinMiter session.screen0.overlay.capStyle: CapNotLast session.screen0.menu.alpha: 150 session.screen0.iconbar.iconWidth: 70 session.screen0.iconbar.usePixmap: true session.screen0.iconbar.mode: Workspace session.screen0.iconbar.deiconifyMode: Follow session.screen0.iconbar.wheelMode: Screen session.screen0.iconbar.iconTextPadding: 10l session.screen0.iconbar.alignment: Relative session.screen0.tab.width: 64 session.screen0.tab.placement: Top session.screen0.tab.height: 16 session.screen0.tab.rotatevertical: True session.screen0.tab.alignment: Left session.screen0.slit.placement: BottomRight session.screen0.slit.autoHide: false session.screen0.slit.alpha: 255 session.screen0.slit.direction: Vertical session.screen0.slit.onhead: 0 session.screen0.slit.maxOver: false session.screen0.slit.onTop: False session.screen0.slit.layer: Dock session.screen0.window.focus.alpha: 255 session.screen0.window.unfocus.alpha: 166 session.screen0.focusLastWindow: true session.screen0.menuAlpha: 146 session.screen0.focusModel: SloppyFocus session.screen0.edgeSnapThreshold: 0 session.screen0.sloppywindowgrouping: true session.screen0.colPlacementDirection: TopToBottom session.screen0.rowPlacementDirection: LeftToRight session.screen0.fullMaximization: false session.screen0.windowMenu: session.screen0.showwindowposition: true session.screen0.clickRaises: true session.screen0.rootCommand: session.screen0.antialias: true session.screen0.desktopwheeling: true session.screen0.workspaceNames: Gentoo.tux,two,three,four, session.screen0.resizeMode: Bottom session.screen0.windowPlacement: RowSmartPlacement session.screen0.menuDelay: 0 session.screen0.workspacewarping: true session.screen0.workspaces: 4 session.screen0.strftimeFormat: %l:%M %D session.screen0.opaqueMove: false session.screen0.followModel: Ignore session.screen0.imageDither: false session.screen0.decorateTransient: false session.screen0.menuMode: Delay session.screen0.focusNewWindows: true session.screen0.autoRaise: false session.screen0.menuDelayClose: 0 session.titlebar.left: Stick session.titlebar.right: Minimize Maximize Close session.updateDelayTime: 0 session.keyFile: ~/.fluxbox/keys session.autoRaiseDelay: 250 session.iconbar: true session.colorsPerChannel: 4 session.groupFile: session.styleFile: /home/david/.fluxbox/styles/abbott session.focusTabMinWidth: 0 session.ignoreBorder: false session.appsFile: ~/.fluxbox/apps session.useMod1: true session.tabs: true session.menuFile: ~/.fluxbox/menu session.tabsAttachArea: Window session.slitlistFile: session.tabPadding: 0 session.forcePseudoTransparency: false session.opaqueMove: False session.cacheMax: 200l session.imageDither: True session.doubleClickInterval: 250 session.cacheLife: 5l session.numLayers: 13
How To Edit Fluxbox Menu
Editing the menu in floxbox is easy. The menu is stored under ~/.fluxbox/menu. It has a basic template that goes something like this:
[begin](Fluxbox-0.9.12) [exec] (Shell) (xterm) [exec] (Browser) {firefox} [end]
That will create a simple menu. Submenus are created like this:
[submenu] Net [exec] (R. Desktop) {grdesktop} [end]
That is a submenu. Submenus can also have submenus. Continuning from the previous example:
[submenu] (Net) [submenu] (Misc) [exec] (R. Desktop) {grdesktop} [end] [submenu] (Browsers) [exec] (Firefox) {firefox} [exec] (Lynx) {lynx} [end] [end]
That will create a basic menu with the title of Net, with two menus under that: Misc and Browser. Now lets stop for a minute to take a look at the syntax.
[begin] / [end] - Every begin statement must have an end statement. Simple as that. BEGIN begins a new menu, and is used ONCE in the entire menu.
[submenu] / [end] - Every submenu statement must have an end statement. Submenu can be used as many times as you please.
[exec] - This tells fluxbox that we're going to execute something ( ) - Something in parentheses is something that is shown in the menu { } - Something in brackets is something that is executed by Linux
So remember, when manually generating your menu, close all of your [submenu] 's with [end] 's and don't forget to use ( ) and { } properly!
The following are some tools to automagically generate you a menu or to edit your menu using a GUI:
Denu: http://denu.sourceforge.net (Automagically generates menus for flux and other common WMs)
http://devaux.fabien.free.fr/flux/ <- Contains GUI tools for configuration editing, menu editing and key binding editing. Highly recommended for those who are fearful of using console based text editors.
Fluxbox Menu Editor : http://fme.rhymux.info/ is another GUI to edit and generate your Fluxbox menu It's easy with Drag and Drop. You can add, edit, delete a row, create a menu and choose icon easily. You also can cancel and redo your actions.