portrait

Поиск



[software] [catdoc] [tcl] [geography] [old things]

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

  1. It is written on interptreted language (tcl) and so, it is easily customizable
  2. 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.
  3. It supports easy to use plugin protocol, which allows to add icons into right side
  4. It allows separately-invoked Tcl script to communicate with fvwm.
  5. 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.