FUBar - Alternate taskbar for FVWM
FUBAR stands for Fvwm Userbar. It is yet another implementation of
taskbar for Fvwm 2 and Fvwm 95.
Main difference from FvwmTaskBar module is
that
- It is written on interptreted language (tcl) and so, it is easily
customizable
- It doesn't try to implement Windows 95 taskbar - it tries to borrow
all good ideas from it and rearrange them to suit Unix environment.
- It supports easy to use plugin protocol, which allows to add icons
into right side
- It allows separately-invoked Tcl script to communicate with fvwm.
- Start menu is implemented as directory of links (or scripts), not
as lots of lines in config file.
Functionality
Main feature of fubar is network transparency. It allows to invoke
program on any host you have rsh or ssh access to.
Core fubar functionality includes:
- Ability to invoke programs either form menu, or by typing in command
line. In later case host to run command on can be choosen from menu.
- Substituting filenames into command from file dialog. Not just
command names (as in Windows), but command parameters too (works on
local host only now).
- Run dialog allows to choose host to run programs on, and has options
to open xterm for command and to not to close xterm upon command
completion until return is pressed (don't
- Window list (only if invoked as fvwm module)
- Open an xterm on any host you have ssh/rsh access to, with any
locale, host supports.
- Find
- file
- Using Unix file command or locate command
- host in the network
- Find host using DNS lookup. Route can be traced as well
- Command
- search manual database using apropos
Invoke man viewer by clicking on the apropos results.
Additional find optins can be provided by plugins.
Plugins
apm
This plugin creates small widget indicating battery status of notebook.
It reads /proc/apm directly.
Somebody have to write analog for acpi.
clock
This plugin displays current time. When mouse cursor is positioned over
it, tooltip displays current date as well. Clicking on the time pops up
calendar for current month.
There are plans to add task scheduler to this plugin, but they are not
implemented yet.
files used by clock plugin
- ~/.fubar/holydays
- list dates which should be displayed red even if they are weekdays
or black even they are weekends
- ~/.calendar.vcs
- Tasks and events in VCARD format.
dict
Provides an item Word in the Find menu, which used to find
word in the dictionary using dict(1). Regardless of current
locale of fubar, assumes that dict should recieve word an return
definition in utf-8.
irda
Checks /proc/net/irda/discovery for nearby IR-capable devices.
If device is present, displays its icon, and creates menu of operations
with this device. It uses quite complicated irda.conf file
which is yet to be documented.
Analog for bluetooth is desirable.
mail
Displays small icon with mail envelope and highlights it red if there is
new mail in your inbox. If you have local inbox in one of standard
locations (/var/spool/mail/${USER}, /var/mail/${USER},
${HOME}/Maildir) finds this mailbox automatically. If it is
unable to find local inbox, set MAIL environment variable.
If you want to check mail in the remote imap mailbox, and you have
rsh/ssh access to the host, it resides, and you can run imapd on that
host in preauthenticated mode (which I always recommend), you can create
${HOME}/.fubar/imapmail file with two lines:
host mailhost
command imapd
where mailhost is a label from the ${HOME}/.fubar/hosts
file for your mail server, and command is a command to run imapd with.
Examples of command:
- For courier IMAP: /usr/bin/imapd Maildir
- For UW-IMAP: /usr/sbin/imapd
If you want to check mail using IMAP-ssl providing password or client
certificate, you are free to write it. But I don't recommend to store
password in the imapmail file. You can make fubar read your
.muttrc or ask password at startup.
If you want to check for POP3 mail, better to use fetchmail and convert
POP-3 mail to local. I wouldn't accept patches related to pop3 exept,
may be, separate alternative pop-3 plugin.
mount
This plugin provides quick way to monitor and mount/umount
user-mountable devices. On startup it scans /etc/fstab and
creates an icon for each device with option user.
Image differs depening on state of device - if it is mounted or
umounted.
Click on the icon mounts the device, if it is not mounted, or umounts,
if not. If device is ejectable (i.e. cdrom or zip-drive) it is ejected
after umount. If fubar doesn't recognize device as ejectable, add
comment # ejectable into corresponding line in fstab.
phonebook
This plugin adds item Person into Find menu. It is old
plugin which uses its own phonebook format file. See phone_vcf
plugin. It is kept only because it allows to find user in the system
using finger(1).
phone_vcf
Allows to browse and search ${HOME}/.phonebook.vcf file, which
can be backup of your mobile phone phonebook, downloaded using OBEX
protocol. Supports even PHOTO attributes in the VCARD. Assumies that
your phonebook is converted into utf-8. If your phone uses something
else (some Nokia phones use ISO charsets, Ericssons use UTF-7), convert
it to utf-8 before using in fubar. See my Unix mobile tools page for example
solution.
Configuration
Fubar creates its own configuration directory ~/.fubar.
It has following files
- menu/ subdirectory
This directory is used to fill up the start menu. Files in this
directory are scripts or symlinks to the programs to invoke.
Subdirectories represent submenus. When creating
menu items underscores are replaced by spaces, extensions are stripped
and prefixes which look as <number>. are stripped to (but
taken into account when sorting.
There are few special extensions which are interpreted specially.
- .xterm
- Program is invoked using xterm -e thus allowing you to
symlink textmode programs into menu
- .tcl
- Files are sourced into Fubar process rather than executed in
separate process.
- .fvwm
- Files are considered scripts of fvwm commands and sent to
fvwm.
- plugins directory
- Files in this directory are sourced at fubar startup. On first start
this directory is populated by symlinks to all fubar plugins, included
in the distribution.
- mail
- This is a script which should invoke your favorite mail client. It
should accept E-Mail address as argument.
- fm
- This is s script to invoke your favorite file manager. It should
accept directory name as an argument and display this directory. Default
is ${HOME}.
- hosts
- This file is used to create menu of hosts in Run window and
toplevel Xterm menu.
Each line of this file can be either a comment, started with #, a
separator (more than two dashes at start of line), submenu brackets or has format:
name[:dns-name] command list-of-locales
where name is name to appear in the menu, dns-name, if
present is name to pass to command (if not present, name is
used), command is a command to use to access this host (which can
be ssh, rsh or something else, which accepts syntax
command hostname cmd-to-execute
and starts a shell when cmd-to-execute is not specified.
If list-of-locales is empty, command is started in the same locale as
fubar itself. If it contain only one element, command is started in the
specified locale (for ex ru_RU.UTF-8). If it contains multipple
elements, then multiple entries would be created for this host to run
commands (or start xterms) in the different locales. If first element
of locale list is "<", these entries would be placed into cascading
submenu
If you have too many entries in the hosts file, you can group them into
submenus. Submenu starts with line "<label", where label is the text
to appear in the upper menu, and ends by ">" on separate line,
Note that fubar doesn't care how locale information is transfered to
remote host. It just starts specified command locallin in the given
locale. Use something like rs script to
establish remote session with proper locale settings.
- holydays
- Used by clock plugin to highlight or unhighlight days in the
calendar.
- hotkeys
- List of hot keys which fubar should grab from fvwm. Format of lines
in this file is simular to fvwm key command, but instead of fvwm command
to run fubar command should be specified. There are following commadns:
- menu path
- Invokes apporpriate item from Start menu. If path refers to submenu
posts corresponding menu. If no path given, pops up a start menu
- find path
- Invokes appropriate item from Find menu
- xterm
- Opens an Xterm menu
- run
- Pops up a Run dialog
- widget name
- where widget name is a name of widget, created by plugin
without leading dot. Invokes same action as clicking left mouse button
on corresponding widget.
- man
- Script to pop up your favorite manual browser.
- imapmail
- configuration file for mail plugin which describes how to check mail
in the remote folder.
- irda.conf
- configuration file for irda plugin
TODO
Before next release
- Finish hotkeys
- Add editing capabilites to phone_vcf plugin
- Finish editing host entry functionality
- Complete command name in the Run dialog searching executables via
PATH rather than using file dialog (but file dialog should still work
for parameters)
- Use partially entered filename as pattern for filename completion
At some point of future
- Allow to store history entry from Run window as start menu
item.
- Add sticker notes plugin
- Add events and tasks support to clock plugin
- Write filemanager which would work with every host, listed in the
host file
Download
Use git to download
git clone http://www.wagner.pp.ru/git/oss/fubar.git
See also GitWeb
page
Additional software, required to run FUBAR:
Screenshot
There is one it is rather big and actually
larger then distribution itself. Then, most of fubar windows are too
transient (menus, popups), and it is definitely harder for me to catch
them with screengrapper than to implement them.
Revision history
- May 2005. I've got to fubar again. No new release yet, but lot of
features in CVS
- Summer 2004. Some notebook-specific plugins are implemented.
- Tue Jan 04 2000 beta 1
- I use fubar for nearly year now, so it certainly passed alpha
stage.
- Find menu added
- mount plugin added
- bug with non-highlighting today'date and holidays in calendar for
1-9 of each month fixed
- Right button on Start menu calls file manager now
- Tue Feb 23 1999 Alpha 2
- clock plugin now pops up calendar
show_popup function now properly handles situation if popup window
is too close to right side of screen
- Mon Feb 22 1999 Alpha 1
- After some week of using fubar myself, I decide to release it to
public.
|