FancyLauncher is basically a program launcher with many customizable features. The snapshot shows how it looks like with the default configuration. The rxvt button is focused and the associated tooltip is displayed. The license is GPL. This is the new version of the former E-FancyLauncher, written for enlightenment as an epplet. For people migrating to FancyLauncher the utility EF2F is provided to translate the E-FancyLauncher configuration file to the FancyLauncher configuration file. If you use it, you should have a look at the default configuration and the plugins directory to see the new features.

The configuration directory is located in your home directory and is named .FancyLauncher. There you will find the configuration file config and you should copy the plugins with the command cp -r /usr/local/FancyLauncher/plugins ~/.FancyLauncher/.

The configuration file works by definitions.

  • common defines common options that are inherited by all the buttons. These options can be redefined.
  • button defines a button launcher.
  • digital_clock defines a digital clock.
The options are:
  • init expects a command to be executed when FancyLauncher is started. Several init declarations are allowed. Valid commands are:
    • page sets the page for the buttons. The buttons are bound to a page. There are 3 pages by default.
    • exec executes a shell command, does not block.
    • wait executes a shell command, blocks until completion and reload the icon pixmap. Plugins are based on init and wait actually. When using wait, one can change the icon depending on what's happening. Plugins controlling mounting points and keyboard mapping are provided.
    • exit exists FancyLauncher.
    • configure not yet implemented.
    • about version information.
    • previous_page goes to the previous page.
    • next_page goes to the next page.
  • darker defines the percentage of darkness for the buttons when they are pressed. 0% means no change, 100% is black.
  • lighter define the percentage of light for the button when they are pressed. 0% means no change, 100% is white.
  • tooltip_wait defines the time in seconds to wait to display the tooltip.
  • tooltip_red_start, tooltip_red_stop, tooltip_green_start, tooltip_green_stop, tooltip_blue_start, tooltip_blue_stop define the color gradient of the text used in the tooltips. Valid values are between 0 and 255. Special case: you can define -1 for tooltip_red_start, then the color will be ignored and the text will be bumpped onto the background. Try it with transparent background for the tooltips! -1 for color_red_start is not supported in combination with transparent background for the tooltip of the digital clocks.
  • tooltip_font defines the font for the tooltip. A number (flag 0 or 1) is expected first. This flag enables an effect on the font, that is to display the first column bold, which is nice :). Note: do not use italic fonts, they will not be correctly displayed.
  • sticky (0/1) sets the buttons sticky.
  • below (0/1/2) sets the buttons below (1) or above (2).
  • snap defines the distance in pixel to snap the buttons when moving them.
  • tooltips (0/1) enables the tooltips.
  • raised, etched (0/1) border style of the buttons when the mouse is on them.
  • transient raises the buttons only when the mouse is on them (1) or not (0).
  • restore restores the original icon when the button is focused, instead of using a simple snapshot and highlighting it.
  • blend_icon defines the blending factor of the icon pixmap on the background pixmap. 255 means opaque icon, 0 means invisible icon.
  • blend_background defines the blending factor of the background (+ the icon) on the root background. 255 means opaque background, 0 means invisible background.
  • blend_focus defines the blending factor of the restored icon pixmap on the background. 255 means opaque icon, 0 means invisible icon.
  • page defines the current page (affects the buttons only).
  • width width of the buttons.
  • height height of the buttons.
  • tooltip_border_width, tooltip_border_height inner border for the tooltip windows for the content (the tooltip itself).
  • iconpath defines a path where to look for the icons. Several definitions are allowed.
  • background defines the background of the buttons: transparent or none for a transparent background, 0xBBGGRR for a solid color (blue,green,red), a pixmap path/name.
  • tooltip_background similarly defines the background of the tooltips. Can be transparent as well!
  • tooltip_icon button_number icon_path defines the icon to display for the tooltips, a different icon per button action.
  • bind key command binds a key to a command. Several definitions allowed, see init for the valid commands.
  • action button command defines an action when a button of the mouse is pressed.
  • tooltip button tooltip defines the associated tooltip.
  • x, y define the position of the button. You can align easily the buttons: facilities like x+ width, y+ height or x+ 23... are provided. Moreover, if you ommit x for example, then it will be automatically aligned with the previous x button definition.
  • icon defines the icon pixmap.
  • update defines the delay for updating the digital clock.
  • resized_width, resized_height: width and height define the size of the window for the digital clock. When loading and working on the pixmaps, resized_width and resized_height give the size to work on, so that you can resize later on the window itself without caring of the font and so on.
  • label defines a sub-section for the labels of the digital clock:
    • color_red_start, color_red_stop, color_green_start, color_green_stop, color_blue_start, color_blue_stop define the color gradient for the label.
    • posx, poxy position of the label.
    • format format of the label. Do man date to have a description of the available format.
    • font defines the font of the label, see tooltip_font for the definition itself.
  • mail_check defines the mail checker section
  • passwd defines a pop server entry with crypt_password username server password as arguments. The crypt password is used to crypt the password so that it is not kept visible in the file. The entry becomes then coded_passwd. The coding itself depends on the compiled version of FancyLauncher and it is random and hard-coded.
  • mail command executes a command on mail arrival.

The digital clocks that are defined by default look like this:

Transparent digital clock Clock with calendar background style
The clock is defined by labels, have a look at the default configuration, it is straightforward.

And the mail checker looks like this:

New mail No mail Error
(Pixmaps come from E-Mail) The mail checker can accept several pop mail boxes to look at, just define several passwd sections. These will be changed to coded_passwd automatically depending on the compiled version, a crypt key and the user running the application. With the configuration file being not readable by others, this should be OK to hide your password. You can define the label of the pop mail checker as the clock.

There are built-in mouse commands:

Look at the default binding definitions to get the default shortkeys that are defined.

To summarize where to use the options, here is a table. For the shortkeys, they are global, which is, valid for all the buttons/windows.
Optionargumentcommonbuttondigital_clockdigital_clock.labelmail_check
x/y/x+/y+/x-/y- int/"width"/"height" yes yes yes yes yes
iconpath path yes no no no no
tooltip_icon int icon_pathyes no no no no
tooltip_wait float yes no no no no
darker int yes no no no no
lighter int yes no no no no
bind key_name command yes no no no no
init command yes yes no no no
tooltip int tooltip_textyes yes no no no
action int command yes yes no no no
icon icon_path yes yes no no no
etched int yes yes no no no
raised int yes yes no no no
transient int yes yes no no no
restore int yes yes no no no
blend_icon int yes yes no no no
blend_background int yes yes no no no
blend_focus int yes yes no no no
page int yes yes no no no
width int yes yes yes no yes
height int yes yes yes no yes
background pixmap_path yes yes yes no yes
tooltip_background pixmap_path yes yes yes noyes
tooltip_font int font_name yes yes yes no yes
tooltip_red/green/blue_start/stop int yes yes yes no yes
tooltip_font int font_name yes yes yes no yes
sticky int yes yes yes no yes
below int yes yes yes no yes
snap int yes yes yes no yes
tooltips int yes yes yes no yes
label sub-sectionno no yes no no
update float no no yes no yes
resized_width int no no yes no no
resized_height int no no yes no no
color_red/green/blue_start/end int no no no yes yes
posx int no no no yes yes
posy int no no no yes yes
font int no no no yes yes
format string_format no no no yes no
passwd crypt username server passwordno no no no yes
mail commandno no no no yes

Credits

Credits go to Mandrake and Rasterman for the epplet library from which I learned a lot. Some icons come from enlightenment as well.