You are not logged in.

#1 2015-10-29 07:29:03

Snap
Member
Registered: 2015-10-02
Posts: 465

Fluxbox

One upon a time Mr. Blackbox had two beautiful daughters. They were named as OpenBox and FluxBox. The former become famous and popular, mostly due to the success of a little nice distro called Crunchbang (#! for short) put together by Corenominal. Did you ever heard of it?. Many variations of #! having OpenBox appeared here and there in Nixland. OpenBox popularity grew huge while her sister remained quite anonymous and forgotten. Life's unfair sometimes, since both sisters are equally beautiful, talented and capable. They both are great on their own. Well, enough of fairy tales.

We had a little love for FluxBox in the #! days. Like OpenBox and many other Window managers (and DEs) they look terrible on their defaults and may cause newcomers to run away and look for anything else. But our spiritual leader, ElderV.LaCoste, showed us how cool, beautiful and appealing Fluxbox can be. Check Elder's art here. As usual the Elders are wise, don't they?

The themes for Fluxbox are called styles. You can find many cool styles in these sites:
http://box-look.org/index.php?xcontentmode=7400
http://customize.org/fluxbox
http://tenr.de/styles/

Here's a menu editor (the obmenu equivalent for Fluxbox)

The wiki is (annoyingly) slowly moving from Sourceforge to github. I guess some day it will work.

As a BL user you already have OpenBox onboard, But what about a nice ménage à trois? With two sisters? Doesn't it sound like a dream?

Now post you configs, tricks and things. (for showing off better use the monthly screnshots threads).

Last edited by Snap (2015-10-29 07:41:36)

Offline

#2 2015-10-29 07:59:24

Snap
Member
Registered: 2015-10-02
Posts: 465

Re: Fluxbox

One of the strongest features of Fluxbox is the apps file in ~/.fluxbox. You can set your windows any way you like: Position, size, decorations, transparency, etc... Plus grouping windows per application or window type. All this globally, per workspace or display (Head).

Here's the apps file for one my current systems:

[app] (name=.+) (name!=gimp) (name!=Navigator) (name!=Mail) (name!=libreoffice) (name!=Msgcompose) (name!=xfce4-terminal) (name!=conky) (name!=conkyws) (name!=conkyradio) (name!=conkymoc) (name!=tint2) (name!=geany) (name!=spacefm) (name!=searchmonkey) (name!=VirtualBox) (name!=mirage)
  [Head]	{2}
  [Position]	(CENTER)	{0 0}
  [Jump]	{yes}
  [Layer]	{8}
  [Close]	{no}
[end]
[group]
 [app] (name=gimp) (role=gimp-toolbox)
 [app] (name=gimp) (role=gimp-dock)
  [Layer]	{4}
[end]
[group]
 [app] (name=geany)
 [app] (name=spacefm)
 [app] (name=searchmonkey)
  [Position]	(CENTER)	{0 0}
[end]
[group]  (workspace=[current])
[app] (name=libreoffice) (class=LibreOffice 5.0)
  [Position]	(UPPERLEFT)	{4% 3%}
  [Shaded]	{no}
  [Deco]	{NORMAL}
  [Sticky]	{no}
  [Minimized]	{no}
  [Maximized]	{no}
  [Fullscreen]	{no}
  [Layer]	{8}
  [Alpha]	{255}
[end]
[group]  (workspace=[current])
 [app] (name=Navigator)
 [app] (name=mirage)
 [app] (name=Mail) (class=Icedove)
  [Workspace]	{0}
  [Head]	{2}
  [Position]	(UPPERLEFT)	{10% 8%}
  [Jump]	{yes}
  [Layer]	{8}
[end]
[app] (name=Msgcompose) (class=Icedove)
  [Workspace]	{0}
  [Head]	{2}
  [Position]	(UPPERLEFT)	{19% 8%}
  [Layer]	{8}
[end]
[app] (name=xfce4-terminal) (class=Xfce4-terminal) (role=xfce4-terminal-dropdown)
  [Position]	(TOP)	{0 0}
  [Deco]	{0x5e0}
  [Layer]	{2}
  [Alpha]	{255}
[end]
[app] (name=xfce4-terminal) (class=Xfce4-terminal)
  [Dimensions]	{70% 80%}
  [Position]	(CENTER)	{0 0}
  [Deco]	{0x66f}
  [Minimized]	{no}
  [Maximized]	{no}
  [Fullscreen]	{no}
  [Layer]	{8}
  [Alpha]	{255}
[end]
[app] (name=conky) (class=conky)
  [Head]	{1}
  [Position]	(UPPERLEFT)	{86% 0%}
  [Layer]	{12}
[end]
[app] (name=conkyws) (class=conkyws)
  [Head]	{1}
  [Position]	(UPPERLEFT)	{93% 92%}
  [Layer]	{12}
[end]
[app] (name=conkyradio) (class=conkyradio)
  [Position]	(LOWERRIGHT)	{13% 3%}
  [Layer]	{12}
[end]
[app] (name=conkymoc) (class=conkymoc)
  [Position]	(LOWERRIGHT)	{13% 3%}
  [Layer]	{12}
[end]
[app] (name=Mail) (class=Icedove) (role=3pane)
  [Workspace]	{0}
  [Head]	{2}
  [Position]	(CENTER)	{0 0}
  [Jump]	{yes}
  [Layer]	{8}
[end]
[app] (name=VirtualBox) (class=VirtualBox)
  [Workspace]	{1}
  [Head]	{2}
  [Position]	(CENTER)	{0 0}
  [Jump]	{yes}
  [Layer]	{8}
[end]
[app] (name=libreoffice) (class=LibreOffice 5.0)
  [Head]	{1}
  [Dimensions]	{52% 89%}
  [Position]	(UPPERLEFT)	{5% 4%}
  [Close]	{yes}
[end]

It essentially centers any window excepting the ones configured underneath (that's the reason of the long first line containing all the excluded windows for those special treatments following).

Last edited by Snap (2015-10-29 08:01:04)

Offline

#3 2015-10-29 13:45:54

nobody0
Disabled account
Registered: 2015-09-29
Posts: 664

Re: Fluxbox

I've been reading the link to http://crunchbang.org/forums/viewtopic.php?id=11591. In time to come, #! forum might stop existing, os would you care to write a how-to on creating a fluxbox set up from the beginning?

Offline

#4 2015-10-29 13:52:46

pvsage
Internal Affairs
Registered: 2015-09-29
Posts: 1,433

Re: Fluxbox

^ At worst, the CrunchBang forum will go into archive mode.  If you're worried about corenominal's commitment to maintaining the archive, you could of course mirror (at least a portion of) the forum to archive.org.

@Snap:  It might be a good idea to condense those ideas here, nonetheless.

Last edited by pvsage (2015-10-29 13:55:00)


Be excellent to each other, and...party on, dudes!
BunsenLabs Forum Rules
Tending and defending the Flame since 2009

Offline

#5 2015-10-29 19:27:33

PackRat
jgmenu user Numero Uno
Registered: 2015-10-02
Posts: 1,213

Re: Fluxbox

@snap - the apps file accepts wild cards so you can use something like (name!=conky*). The other option for conky is to use the:

own_window_name
own_window_class

configure options in your conkyrc files to give a unique name/class name to all the conky windows you want to exempt - shorten that opening line a bit.

@ostrolek - you actually having a specific issue, or just making a suggestion?

When using the fluxbox wiki the search box is at the bottom of the page for some reason. Search results will usually locate the correct page from the old, archived wiki.

Last edited by PackRat (2015-10-29 19:28:07)


You must unlearn what you have learned.
    -- yoda

Online

#6 2015-10-29 22:24:42

nobody0
Disabled account
Registered: 2015-09-29
Posts: 664

Re: Fluxbox

PackRat wrote:

@ostrolek - you actually having a specific issue, or just making a suggestion?

I am making a suggestion. It'd be nice to have a walk through. Not how to install, but how to configure. FB is somewhat different than OB. If no one is interested here, it could be done in the other place.

Offline

#7 2015-10-29 23:36:21

PackRat
jgmenu user Numero Uno
Registered: 2015-10-02
Posts: 1,213

Re: Fluxbox

@ostrolek -

Not too different from openbox since they were both originally derived from blackbox.

Some basics - fluxbox is in the repos and should also install a /usr/share/xsessions/fluxbox.desktop file. Installed into /usr/bin (/usr/local/bin if you use the source tarball or git) will be fluxbox, fbsetroot (uses xsetroot to set desktop color), fbsetbg (wallpaper setter, needs hsetroot, nitrogen, feh installed to work), fbrun (like gmrun), and startfluxbox (the system-wide startup file).

When you first log in, you'll have a basic setup, the default style is usually Bloe -

fluxbox-start.png

By Default there are 4 Workspaces and Ctrl-Alt-Right/Left will navigate them.

Alt-F1 will start xterm (if it's installed), Alt-F2 starts fbrun, Right click on the desktop brings up the menu - note that there are entries to configure pretty much everything in fluxbox from the menu. Middle click on the desktop brings up a context menu (iconified windows and other info). Alt-Tab cycles through open windows, Alt-LeftClick/hold on a window will let you move the window by dragging the mouse, Alt-RightClick/hold will allow you to resize the window.

Fluxbox has it's own toolbar (taskbar) witch can contain an iconbar, systemtray, clock, workspace switchers, and the workspace name/identifier. No need for tint2 or other panel unless you really want one.

When logging in for the first time, the directory ~/.fluxbox is created and will be populated with the per-user configuration files:

~/.fluxbox/styles/  --> location of users style (theme) files and empty by default, accessed from "User Styles" option in the main menu to change style. Download/unpack a style file here to make it available from the menu.

~/.fluxbox/init --> main configuration file for window manager, workspace names, snap thresholds etc ...

~/.fluxbox/startup --> user defined startup file (like openbox autostart); the /usr/bin/startfluxbox file looks for this file first and will configure fluxbox based on its contents.

~/.fluxbox/keys --> key bindings

~/.fluxbox/menu --> the main menu

~/.fluxbox/apps --> file that defines per-app settings, sometimes an entry for fbrun by default

~/.fluxbox/slitlist --> the slit is fluxbox's dock, this file will automatically place and order dockapps if needed. Use "window_type dock" in conkyrc to put conky window in the slit.

~/.fluxbox/overlay --> this file is read last and used to standardize style elements like your favorite font. No entries by default.

All the configuration files are plain test files and pretty self-explanatory on what needs to be done to create an entry. Fluxbox comes with the usual assortment of internal window managet commands - close, iconify, etc ... as well as more complex commands:

some key bindings:

Mod1 F3 :Exec uxterm -e tmux    --> start a tmux session in uxterm
Mod1 F4 :Close 
Mod1 Shift F5 :MacroCmd {ResizeTo 80% 90%} {MoveTo 0 0 Center} --> resize a window, then center on the screen
Mod1 F5 :MoveTo 0 0 CENTER --> center without resizing
Mod1 F12 :ToggleCmd {ShowDesktop} {DeIconify all originquiet} --> toggle show desktop/restore windows
Ctrl a Mod4 l :MacroCmd {ResizeTo 50% 50%} {MoveTo 0 0 UpperLeft} {MaximizeVertical} --> key chain to resize window, move to upper left, then maximize vertically

menu entries -

[exec] (File Manager) {thunar}
[exec] (Xarchiver) {xarchiver} </usr/share/icons/hicolor/48x48/apps/xarchiver.png>   --> entry with an icon which will be placed on left of text

Per-app settings are placed in the ~/.fluxbox/apps file. An easy way to set up per-apps settings is to use the windowmenu. Right click on the titlebar of a window and a the windowmenu will appear. This menu alows for the manipulation of the active window. The "Remember" entry allows the user to set per-app settings:

october14461584691600x900.jpg

The user can set most of the basics for an app with that menu. Size and position a window and then set the per-app settings. For example, I use gimp in single window mode, then use a per-app setting for gimp to be maximized on Workspace 2

Tabbing (Grouping) windows is probably the main difference between fluxbox and openbox. The key binding Ctrl-LeftClick/hold on the titlebar of a window will allow the user to drag the window to the titlebar of another window and group them; reverse the process to ungroup.

The fluxbox man pages are pretty complete for further details -

fluxbox
fluxbox-keys
fluxbox-menu
fluxbox-apps
fluxbox-style --> all the various style elements
fbsetbg --> syntax to set wallpaper
fluxbox wiki - search box at bottom of page -

Last edited by PackRat (2015-10-30 15:30:35)


You must unlearn what you have learned.
    -- yoda

Online

#8 2015-10-30 00:41:29

dhalgren
Member
Registered: 2015-10-01
Posts: 87

Re: Fluxbox

The interesting thing about fluxbox is that there is a menu option for using other window managers. You can sign in to a fluxbox session, and choose to use openbox, or other window managers if installed. If you choose openbox, then all your configurations for openbox are present---I admit that this seems to me to defeat at least a part of the reason for using fluxbox, but it is rather cool none the less.

Changes such as this can be made "permanent" by editing  ~/.fluxbox/startup

Offline

#9 2015-10-30 08:24:43

Snap
Member
Registered: 2015-10-02
Posts: 465

Re: Fluxbox

@snap - the apps file accepts wild cards so you can use something like (name!=conky*)

Thanks, PackRat. I was unaware of the wildcards.

Nice wirteup. You saved me some typing. LOL.

Offline

#10 2015-11-02 02:41:44

hhh
Meep!
Registered: 2015-09-17
Posts: 9,820
Website

Re: Fluxbox

Moving this thread to GUI & Applications, sorry for the shuffling around! See the Announcement for an explanation, and thanks to PackRat for the heads-up!

Offline

#11 2017-10-16 15:20:48

PackRat
jgmenu user Numero Uno
Registered: 2015-10-02
Posts: 1,213

Re: Fluxbox

Some necro posting -

Modified fluxbox key bindings for faux tiling with and without window decor (except for the border):

screen-import-Monday_1508166897.th.png sshot-111616_2017-10-16.th.png

~/.fluxbox/keys -

# manual tiling with key chains - using chains to avoid clash with keybindings #

! this will tile tint2  panel
!Mod1 Shift m :ArrangeWindowsHorizontal
!Mod1 Shift n :ArrangeWindowsVertical

Ctrl a Mod4 h :MacroCmd {ResizeTo 48% 98%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod4 j :MacroCmd {ResizeTo 48% 98%} {MoveTo 1% 1% UpperRight}
Ctrl a Mod4 k :MacroCmd {ResizeTo 98% 48%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod4 l :MacroCmd {ResizeTo 98% 48%} {MoveTo 1% 1% LowerLeft}

Ctrl a Mod4 KP_4 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 98%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod4 KP_6 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 98%} {MoveTo 1% 1% UpperRight}
Ctrl a Mod4 KP_8 :MacroCmd {SetDecor BORDER} {ResizeTo 98% 48%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod4 KP_2 :MacroCmd {SetDecor BORDER} {ResizeTo 98% 48%} {MoveTo 1% 1% LowerLeft}

Ctrl a Mod1 h :MacroCmd {ResizeTo 48% 48%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod1 j :MacroCmd {ResizeTo 48% 48%} {MoveTo 1% 1% UpperRight}
Ctrl a Mod1 k :MacroCmd {ResizeTo 48% 48%} {MoveTo 1% 1% LowerLeft}
Ctrl a Mod1 l :MacroCmd {ResizeTo 48% 48%} {MoveTo 1% 1% LowerRight}

Ctrl a Mod1 KP_7 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 48%} {MoveTo 1% 1% UpperLeft}
Ctrl a Mod1 KP_9 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 48%} {MoveTo 1% 1% UpperRight}
Ctrl a Mod1 KP_1 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 48%} {MoveTo 1% 1% LowerLeft}
Ctrl a Mod1 KP_3 :MacroCmd {SetDecor BORDER} {ResizeTo 48% 48%} {MoveTo 1% 1% LowerRight}

Ctrl a Mod1 KP_8 :MacroCmd {ResizeTo 70% 48%} {MoveTo 0% 1% Top}
Ctrl a Mod1 KP_2 :MacroCmd {ResizeTo 70% 48%} {MoveTo 0% 1% Bottom}

Ctrl a Mod4 c :MacroCmd {SetDecor 0x66f} {ResizeTo 85% 95%} {MoveTo 0 0 Center}
Ctrl a Mod4 x :MacroCmd {SetDecor BORDER} {ResizeTo 85% 95%} {MoveTo 0 0 Center}

Ctrl a Mod1 F12 :ToggleDecor
Mod1 Shift F12 :MacroCmd {SetDecor TAB}

Mod1 Shift d :ToggleCmd {ShowDesktop} {DeIconify all originquiet}

You must unlearn what you have learned.
    -- yoda

Online

#12 2017-10-17 13:20:14

PackRat
jgmenu user Numero Uno
Registered: 2015-10-02
Posts: 1,213

Re: Fluxbox

Fluxbox also supports modes (like i3 resize mode)

Once a mode is started with a key chain, all other key bindings are suspened until the mose is exited with the Esc key

Sample move and resize modes:

! modes - use ESC to exit mode
# MoveMode
Mod4 w Mod4 m               :KeyMode MoveMode
MoveMode: None Up           :MoveUp 5
MoveMode: None Down         :MoveDown 5
MoveMode: None Left         :MoveLeft 5
MoveMode: None Right        :MoveRight 5
MoveMode: Shift Up          :MoveUp 10
MoveMode: Shift Down        :MoveDown 10
MoveMode: Shift Left        :MoveLeft 10
MoveMode: Shift Right       :MoveRight 10

# ResizeMode
Mod4 w Mod4 r               :KeyMode ResizeMode
ResizeMode: None Up         :ResizeVertical -5
ResizeMode: None Down       :ResizeVertical 5
ResizeMode: None Left       :ResizeHorizontal -5
ResizeMode: None Right      :ResizeHorizontal 5
ResizeMode: Shift Up        :MacroCmd {ResizeTo 50% 50%} {MoveTo 0 0 UpperLeft}
ResizeMode: Shift Down      :MacroCmd {ResizeTo 50% 50%} {MoveTo 0 0 UpperRight}
ResizeMode: Shift Left      :MacroCmd {ResizeTo 50% 50%} {MoveTo 0 0 LowerLeft}
ResizeMode: Shift Right     :MacroCmd {ResizeTo 50% 50%} {MoveTo 0 0 LowerRight}

All bindings/modes for keys are stored in the ~/.fluxbox/keys file (man fluxbox-keys for details)


You must unlearn what you have learned.
    -- yoda

Online

Board footer

Powered by FluxBB