Once more, for old time’s sake

Edit: Unfortunately, the images originally included in this post are gone, because of hosting problems in late 2009. My apologies.

For the past couple of nights I’ve been remaking the fbpanel configurations I used to create the fake Gnome Ubuntu desktop. Here’s another screenshot, in case those have also disappeared off the photo hosting service.

These configuration files are not as comprehensive as the first ones, but those are gone into the infinity, so if you’re after the files (like the one or two e-mails a month that ask for them), these will have to do.

The top bar, generally running at around 1024 pixels across (the system tray should stretch to take up extra space). Note that the Applications menu is the fbpanel “system” menu; if you want something closer to Gnome, you’ll have to build it yourself. I also didn’t include the networking icons, and the newer Gutsy icons. And I also expect you to dig in and further customize these to your liking. Most of the buttons just punch up a terminal.

########################################
## fbpanel configuration file         ##
########################################


# DESCRIPTION
# Configuration file consists of mandatory 'Global' block that MUST come first,
# and optionally one or more 'Plugin' block.
# Lines having '#' as first non-blank char or blank lines are ignored
# Keywords are not case-sensitive
# Values are case-sensitive
# Value of variable is a text from first non-blank char after '='
# till the last non-blank char. '#' is NOT treated as coment in this context

# 'Global' block describes global parameters like position, size and
# some NETWM settings

# Global {

#     # screen edge
#     # legal values are: left, right, top, bottom
#     edge = bottom

#     # allignment of a panel
#     # legal values are: left, right, center
#     allign = left

#     # length of margin (in pixels)
#     # legal values are numbers
#     margin = 0

#     # widthtype specifies how panel width is calculated
#     # legal values are: request, pixel, percent
#     #   request - follow widgets' size requests. can shrink or grow dynamically
#     #   pixel   - occupy fixed number of pixels, then 'width' variable holds a number
#     #   percent - be 'width' precent of an edge.
#     widthType = percent

#     # numerical value of width (not applicable for 'request' widthtype)
#     # legal values are numbers
#     width = 80

#     # heighttype specifies how panel height is calculated
#     # legal values are: pixel
#     #   pixel   - ocupy fixed number of pixels, then 'height' variable holds a number
#     heightType = pixel

#     # numerical value of height (if applicable)
#     # legal values are numbers
#     height = 28


#     # Identify panel window type as dock
#     # legal values are boolean
#     setDockType = true

#     # Reserve panel's space so that it will not be covered by maximazied windows
#     # legal values are boolean
#     # setPartialStrut = true


#     # Transparency stuff:
#     # tintColor is a color to composite on root background given as #RRGGBB or as name
#     # alpha is transparency of the tint color.
#     # transparent = true
#     # tintColor = #FFFFFF
#         or
#     # tintColor = white
#     # alpha = 127

#     # Autohide
#     # autoHide = false
#     # heightWhenHidden = 2

# }



# 'Plugin' block specifies a plugin to load. It has same syntax for both
# builtin and external plugins.

# First parameter is 'type'. It's mandatory and must come first
# Legal values are plugin names. Names of builtin plugins are:
# separator   - visual separator
# wincmd      - 'show desktop' button
# taskbar     - lists all opened windows (tasks)
# launchbar   - bar with launch button
# image       - just shows an image
# dclock      - digital clock
# space       - just seize space
# pager       - thumbnailed view of the desktop
# tray        - tray for XEMBED icons (aka docklets)

# expand - specifies if plugin can accomodate extra space or not [optional]
# padding - extra padding around plugin  [optional]
# config {} - block of plugin's private configuration.
#             This part is plugin  dependant


#
# Plugin {
#     type = wincmd
#     config {
#         image = ~/.fbpanel/images/Desktop2.png
#         tooltip = Left click to iconify all windows. Middle click to shade them.
#     }
# }


Global {
    edge = top
    allign = left
    margin = 0
    widthType = percent
    width = 100
    heightType = pixel
    height = 26
    roundCorners = false
    transparent = false
    tintColor = #ffffff
    alpha = 39
    autoHide = false
    heightWhenHidden = 2
}

Plugin {
        type = space
        config {
                size = 2
        }
}

Plugin {
    type = menu
    config {
    icon = start-here
    name = Applications
        systemmenu {
        }
        separator {
        }
        item {
            icon = gnome-settings
            name = configure
            #image = /usr/share/fbpanel/images/gnome-setting.svg
            command = configure
        }

        item {
            icon = gnome-terminal
            name = terminal
            #image = /usr/share/fbpanel/images/gnome_terminal.svg
            action = sakura
        }

    }
}

Plugin {
    type = menu
    config {
    icon = folder
    name = Places
        item {
            icon = folder_home
            name = Home Folder
            command = emelfm2 
        }
        separator {
        }
        item {
        	icon = computer
        	name = Computer
        	command = emelfm2 --one=/
        }
        separator {
        }
        item {
        	icon = network-workgroup
        	name = Network
        	command = emelfm2 --one=/
        }

    }
}

Plugin {
        type = space
        config {
                size = 3
        }
}

Plugin {
	type = menu
	config {
	icon = computer
	name = System
	item {
		icon = gnome-settings
		name = Settings
		command = sakura
	}
	separator {
	}
	item {
		icon = exit
		name = Exit session
		command = killall openbox
	}
}
}

Plugin {
    type = launchbar
    config {
        
    button {
        icon = internet-web-browser
            tooltip = NetSurf web browser
            action = netsurf
    }

    }

}

Plugin {
        type = space
        config {
                size = 8
        }
}

Plugin {
    type = space
    config {
        size = 3
    }
}

Plugin {
    type = tray
    expand = true
}

Plugin {
	type = launchbar
	config {
		button {
			icon = audio-volume-high
			tooltip = Adjust volumes
			action = sakura -e alsamixer
		}
	}
}

Plugin {
        type = space
        config {
                size = 3
        }
}

# Digital Clock
Plugin {
    type = tclock
    config {
        ClockFmt = %R
        TooltipFmt = %A %x
        Action = xmessage Please define some command &
    }
}

Plugin {
        type = space
        config {
                size = 3
        }
}

Plugin {
    type = launchbar
    config {
        button {
            icon = exit
            #image = /usr/share/fbpanel/images/file-manager.svg
            tooltip = Exit session
            action = killall openbox
		}
	}
}

Plugin {
        type = space
        config {
                size = 3
        }
}


The bottom bar, which was much more easy to make, and to mimic. Again, I expect you to further customize this to better reflect your system.

########################################
## fbpanel configuration file         ##
########################################


# DESCRIPTION
# Configuration file consists of mandatory 'Global' block that MUST come first,
# and optionally one or more 'Plugin' block.
# Lines having '#' as first non-blank char or blank lines are ignored
# Keywords are not case-sensitive
# Values are case-sensitive
# Value of variable is a text from first non-blank char after '='
# till the last non-blank char. '#' is NOT treated as coment in this context

# 'Global' block describes global parameters like position, size and
# some NETWM settings

# Global {

#     # screen edge
#     # legal values are: left, right, top, bottom
#     edge = bottom

#     # allignment of a panel
#     # legal values are: left, right, center
#     allign = left

#     # length of margin (in pixels)
#     # legal values are numbers
#     margin = 0

#     # widthtype specifies how panel width is calculated
#     # legal values are: request, pixel, percent
#     #   request - follow widgets' size requests. can shrink or grow dynamically
#     #   pixel   - occupy fixed number of pixels, then 'width' variable holds a number
#     #   percent - be 'width' precent of an edge.
#     widthType = percent

#     # numerical value of width (not applicable for 'request' widthtype)
#     # legal values are numbers
#     width = 80

#     # heighttype specifies how panel height is calculated
#     # legal values are: pixel
#     #   pixel   - ocupy fixed number of pixels, then 'height' variable holds a number
#     heightType = pixel

#     # numerical value of height (if applicable)
#     # legal values are numbers
#     height = 28


#     # Identify panel window type as dock
#     # legal values are boolean
#     setDockType = true

#     # Reserve panel's space so that it will not be covered by maximazied windows
#     # legal values are boolean
#     # setPartialStrut = true


#     # Transparency stuff:
#     # tintColor is a color to composite on root background given as #RRGGBB or as name
#     # alpha is transparency of the tint color.
#     # transparent = true
#     # tintColor = #FFFFFF
#         or
#     # tintColor = white
#     # alpha = 127

#     # Autohide
#     # autoHide = false
#     # heightWhenHidden = 2

# }



# 'Plugin' block specifies a plugin to load. It has same syntax for both
# builtin and external plugins.

# First parameter is 'type'. It's mandatory and must come first
# Legal values are plugin names. Names of builtin plugins are:
# separator   - visual separator
# wincmd      - 'show desktop' button
# taskbar     - lists all opened windows (tasks)
# launchbar   - bar with launch button
# image       - just shows an image
# dclock      - digital clock
# space       - just seize space
# pager       - thumbnailed view of the desktop
# tray        - tray for XEMBED icons (aka docklets)

# expand - specifies if plugin can accomodate extra space or not [optional]
# padding - extra padding around plugin  [optional]
# config {} - block of plugin's private configuration.
#             This part is plugin  dependant


#
# Plugin {
#     type = wincmd
#     config {
#         image = ~/.fbpanel/images/Desktop2.png
#         tooltip = Left click to iconify all windows. Middle click to shade them.
#     }
# }


Global {

    edge = bottom
    allign = left
    margin = 0
    widthType = percent
    width = 100
    heightType = pixel
    height = 26
    roundCorners = false
    transparent = false
    tintColor = #ffffff
    alpha = 39
    autoHide = false
    heightWhenHidden = 2
}

Plugin {
        type = space
        config {
                size = 2
        }
}

Plugin {
    type = wincmd
    config {
        icon = gnome-fs-desktop
        #image = /usr/share/fbpanel/images/gnome-fs-desktop.svg
        tooltip = Left click to iconify all windows. Middle click to shade them.
    }
}

Plugin {
        type = space
        config {
                size = 7
        }
}

Plugin {
    type = taskbar
    expand = true
    config {
        ShowIconified = true
        ShowMapped    = true
        ShowAllDesks  = false
        tooltips = true
        IconsOnly = false
        MaxTaskWidth = 150
    }
}

Plugin {
    type = pager
    config {
        showwallpaper = true
    }
}

Plugin {
        type = space
        config {
                size = 3
        }
}

Plugin {
    type = launchbar
    config {
        button {
            icon = emptytrash
            #image = /usr/share/fbpanel/images/file-manager.svg
            tooltip = Trash
            action = emelfm2 --one=~/.local/share/Trash/files
		}
	}
}

Plugin {
        type = space
        config {
                size = 3
        }
}

And there you have it. Don’t forget to customize it to the software you have installed; I use emelFM2 and Sakura a lot; you’ll probably want to change to the software you use (of course! πŸ™„ ). And if your screen size differs, you’ll probably want to correct that. And if you want different icons, you’ll have to change that. And so forth, and so on. What I’m trying to say is, these aren’t something you can just drop in and run with. You have a little editing ahead of you.

And there still doesn’t seem to be an option to run without a icon. So I couldn’t duplicate the iconless “Place” and “System” menus. Oh well.

The next obvious step is to carve the Openbox right-click menu down to the two or three entries that the Gnome desktop menu has, and add a few desktop icons. iDesk might do the trick for you. Then find acceptable Ubuntu Gnomish wallpaper, maybe a GTK2 theme, cursor theme, and you should be close to done. But all that is up to you. πŸ˜‰

fbpanel is the only panel utility I know of that can run two at a time — one at the top and one at the bottom. it’s much more flexible that you would guess from looking at these pictures — if you want something very GTK that can do transparency, etc., fbpanel might interest you.

On the other hand, this is old-school Linux: You have to hand-edit almost everything there. And fbpanel isn’t very forgiving if you make a code mistake.

It looks like the author(s) are working on some sort of on-the-fly configuration. That would be a blessing, but it’s worth noting that lxpanel has already built that on to fbpanel. So I wouldn’t suggest waiting for a release of fbpanel if you want easier customization; lxpanel is basically the same thing, and is much easier to handle.

Regardless, lxpanel doesn’t want to run two-at-a-time like fbpanel does, so if it’s the fake-o Gnome desktop you’re after, I believe fbpanel is the only one that can do it.

10 thoughts on “Once more, for old time’s sake

  1. K.Mandla Post author

    No, no. πŸ˜€ This was leftover from almost a year ago, when I was tinkering with some distro and thought about making one up that looked like it … for older machines, of course. πŸ™„

    The last thing I want is Gnome. 😯

    Reply
  2. Pingback: And what exactly will sudo rm -rf do? « Motho ke motho ka botho

  3. chris4585

    i finally got around to this k.mandla and it works perfect, i had to edit a lot and figure the code out but it was simple enough πŸ™‚

    Reply
  4. Pingback: Creativity plus perseverance « Motho ke motho ka botho

  5. Pingback: ubuntu fbpanel layout « I am what I am because of what we all are

  6. Pingback: Hogyan? » Ubuntu minimal + openbox

  7. whs001

    Thanks. I hunted around quite a bit to find a tip on running two panels. But one thing is missing — how do you NAME the second panel? I can’t have two files with the same name in the .fbpanel folder. I’ve tried several names for the second panel, logged out and back in, and still don’t have a second panel.

    Reply

Leave a comment