Menu

Tree [f2c20d] default tip /
 History

Read Only access


File Date Author Commit
 conf 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 man 2021-12-28 Sebastien Ballet Sebastien Ballet [f2c20d] The environment variable to specify the configu...
 po 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 src 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 .hgignore 2018-09-13 Sébastien Ballet Sébastien Ballet [48907d] Initial commit
 .hgtags 2018-10-02 Sébastien Ballet Sébastien Ballet [d574dc] Tagged as revision 2018.1002
 AUTHORS 2018-09-13 Sébastien Ballet Sébastien Ballet [48907d] Initial commit
 CMakeLists.txt 2021-12-28 Sebastien Ballet Sebastien Ballet [343222] CMakeLists.txt: Update the cmake minimum requir...
 ChangeLog 2021-12-28 Sebastien Ballet Sebastien Ballet [f2c20d] The environment variable to specify the configu...
 LICENSE 2018-09-13 Sébastien Ballet Sébastien Ballet [48907d] Initial commit
 README 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 config.h.in 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 gen-update-pot-file.sh 2021-12-27 Sebastien Ballet Sebastien Ballet [cc66ac] Version 2021.1227
 init-update-po-files.sh 2018-09-13 Sébastien Ballet Sébastien Ballet [48907d] Initial commit

Read Me


                            _                        _ 
                           | |                      | |
  __      ___ __ ___   __ _| | __ _ _   _ _ __   ___| |__   ___ _ __
  \ \ /\ / / '_ ` _ \ / _` | |/ _` | | | | '_ \ / __| '_ \ / _ \ '__|
   \ V  V /| | | | | | (_| | | (_| | |_| | | | | (__| | | |  __/ |
    \_/\_/ |_| |_| |_|\__,_|_|\__,_|\__,_|_| |_|\___|_| |_|\___|_|



About
-----

wmalauncher is an easy to use and highly configurable application launcher
dockapp especially designed for fluxbox but which also works well under
blackbox, openbox, windowmaker.

wmalauncher supports XPM, PNG, SVG icons, .desktop files, true-type 
fonts (for tooltip text), allows to configure, among others, the background
color, the border size, the brightness/contrast/gamma of icon, allows to
draw a frame around the button, etc...

Requirements
------------
 
    * cmake 
    * imlib2
    * librsvg

Installation
------------

To compile wmalauncher with default settings and install it in /usr/bin, 
simply run the following commands :

  8<--------------------------------------------------------------------
    $ mkdir _build
    $ cd _build
    $ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
    $ make
    $ make install
  8<--------------------------------------------------------------------
 
By default, wmalauncher :

  * is configured to search for fonts in the following paths :
 
      + ~/.fonts
      + /usr/share/fonts/TTF
      + /usr/share/fonts/truetype
      + /usr/share/fonts/truetype/dejavu
      + /usr/share/fonts/truetype/liberation
      + /usr/share/fonts/dejavu
      + /usr/share/fonts/liberation
     
     
  * is configured to search for icons in the following paths :
 
      + ~/.icons
      + /usr/share/icons/Adwaita/scalable
      + /usr/share/icons/Adwaita/48x48
      + /usr/share/icons/hicolor/scalable
      + /usr/share/icons/hicolor/48x48
      + /usr/share/pixmaps
     
     
  * assumes that any path given in argument of option --icon-search-path
    which is not absolute is relative to the root path: /usr/share/icons
    
  * is configured to use the precedence order of icon types below :
     + svgz
     + svg
     + png
     + xpm

    This list is used to select the (best) icon when the icon name 
    specified in arguments (or defined in a .desktop  file) is a 
    simple name without an extension.

  * searches for *.desktop* files in the folder 'applications' of
    each path specified by environment variables XDG_DATA_HOME(1) 
    and XDG_DATA_DIRS(2).

    (1) When XDG_DATA_HOME is either not set or empty, a default 
        equal to '$HOME/.local/share' is used.

    (2) When XDG_DATA_DIRS is either not set or empty, a default
        equal to '/usr/local/share:/usr/share' is used.

    see specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html

  * uses the first available terminal emulator in the list below when a 
    command/application must be run in a terminal window :

      + xterm
      + xfce4-terminal
      + konsole

  * use the first available font in the list below when the font passed 
    in arguments of option --tooltip-font is not available :
 
      + DejaVuSans/11
      + LiberationSans-Regular/11
      + luxisr/11

All of these default settings can be changed using the cmake variables 
below : 

      + DEFAULT_FONT_SEARCH_PATH
      + DEFAULT_ICON_SEARCH_PATH
      + MAIN_ROOT_ICON_SEARCH_PATH
      + DEFAULT_PREFERRED_ICON_TYPES
      + DEFAULT_FALLBACK_FONTS
      + DEFAULT_PREFERRED_TERMINALS
  
Furthermore, Native Language Support (NLS) can be disabled by passing 
-DENABLE_NLS=OFF to cmake.

  
Installation on FreeBSD
-----------------------

1. To build wmalauncher on FreeBSD, LDFLAGS="-L/usr/local/lib" must be
   set prior to execute cmake.
   
2. On FreeBSD, resources like fonts and icons are accessibles from 
   the directory hierarchy /usr/local/share while it is /usr/share on
   Linux, and, 3rd party binaries are stored in /usr/local/bin while 
   it is /usr/bin on Linux. 
   
   By default, CMakeLists.txt defines /usr/share and /usr/bin as being
   the directories from which resources and binaries are accessibles. 
   
   These (default) default settings can be modified through the variables 
   SYSRES_ROOTDIR and SYSBIN_DIR.
   
Therefore, the easiest way to compile and install wmalauncher on FreeBSD
is to run cmake like as below :

  8<--------------------------------------------------------------------
    $ mkdir _build
    $ cd _build
    
    $ LDFLAGS="-L/usr/local/lib" \
      cmake -DSYSRES_ROOTDIR=/usr/local/share \
            -DSYSBIN_DIR=/usr/local/bin \
	    -DCMAKE_BUILD_TYPE=Release ..
  
    $ make
    $ make install
  8<--------------------------------------------------------------------


Usage
-----

There are two ways to create a launcher for a given application with 
wmalauncher:

  1. Pass the command to execute and the icon to display on the command 
     line, like as in example below :

     8<------------------------------------------------------------------    
         $ wmalauncher --command /usr/bin/firefox --icon firefox.png &
     8<------------------------------------------------------------------
    
     In the example above, wmalauncher will use the first icon found in the
     "icon search paths" that match firefox.png (note: the extension can be
     omitted).


  2. Pass the .desktop file of the target application on the command line :

     8<------------------------------------------------------------------
        $ wmalauncher --desktop-file mozilla-firefox.desktop:firefox.desktop &
     8<------------------------------------------------------------------
    
     In the example above, wmalauncher will use the first .desktop file 
     found in the "desktop file search path" that match mozilla-firefox.desktop
     or firefox.desktop (note: the extensions can be omitted).

Configuration file
------------------

A configuration file is a plain text files in which whole or part of the
wmalauncher settings (ex. the 'border size', the 'background color', etc..)
are defined by entries with the syntax :
	      
    key = <value>
		 
  ----------------------------------------------------------------------
 !                                                                      !
 ! Comments, ie. line starting with a # - with/out leading space(s) -,  !
 ! are ignored.                                                         !
 !                                                                      !
 ! Spaces at both side of loaded values are removed.                    !
 !                                                                      !
 ! When there are more than 1 occurence of a given key, only the 1st    !
 ! value is loaded. The others are ignored.                             !
 !                                                                      !
  ----------------------------------------------------------------------
	      
  key must be the name, without the dashes, of any of the wmalauncher 
  options (excluding help, fonts-infos, command,icon, desktop-file, 
  run-in-terminal, tooltip-text) :
	      
  ----------------------------------------------------------------------
    Key                       ! Type
  ----------------------------!-----------------------------------------
     preferred-terminals      ! String
     window-size              ! Integer
     icon-padding             ! Integer
     border-size              ! Integer
     background-color         ! String (2,3)
     hover-background-color   ! String (2,3)
     border-color             ! String (2,3)
     hover-border-color       ! String (2,3)
     icon-search-path         ! String
     desktop-file-search-path ! String
     font-search-path         ! String
     tooltip-font             ! String
     tooltip-background-color ! String (2,3)
     tooltip-foreground-color ! String (2,3)
     tooltip-border-size      ! Integer
     tooltip-text-padding     ! Integer 
     tooltip-show-delay       ! Integer
     tooltip-hide-delay       ! Integer
     icon-grayscale           ! Boolean (1)
     hover-icon-grayscale     ! Boolean (1)
     frame                    ! String (2)
     icon-brightness          ! Float
     hover-icon-brightness    ! Float
     icon-contrast            ! Float
     hover-icon-contrast      ! Float
     icon-gamma               ! Float
     hover-icon-gamma         ! Float
     double-click             ! Integer
     display                  ! String
     broken-wm                ! Boolean (1)
     exit-on-right-click      ! Boolean (1)
  ----------------------------------------------------------------------
   (1) Valid boolean values are: 1, true, on, yes, 0, false, off, no.
   (2) See the section COLORS in the manual page for more on this.
   (3) See the section GRADIENTS in the manual page for more on this.
  ----------------------------------------------------------------------
	    
  On startup, wmalauncher loads the settings from the configuration file
  specified by the environment variable WMALAUNCHER_CONFIG, if applicable, 
  or, from the wmalauncher configuration file (*), if available. Otherwise, 
  the default internal settings are used.
  
  (*) Default to ~/.config/wmalauncher/wmalauncher.conf. This can be changed
  using the cmake variable WMALAUNCHER_CONFIG_FILE. 

  wmalauncher comes with the following pre-defined configuration files :
  
    lighting.conf
    multi-effects.conf
    old-school.conf
    frame-onthefly.conf
    wmaker-style.conf

Troubleshooting
---------------

In case of issue with wmalauncher, rebuild it with debug informations
by passing -DCMAKE_BUILD_TYPE=Debug (or RelWithDebInfo) to cmake, re-run 
wmalauncher to reproduce the issue, then send the system configuration 
in use, the output of wmalauncher, the back/stack trace (if any), and any 
other informations that could be useful to solve the issue, at  :

  <slacker6896@gmail.com>


Known issues
------------

  1. wmalauncher might hang when running in an ssh session, which is 
     caused by an imlib2 issue (https://phab.enlightenment.org/T7173).

     To circumvent this :

       + upgrade xorg-server to version >= 1.20.1
       + export IMLIB2_SHM_OPT=1
       + rebuild imlib2 with --without-x-shm-fd
       + downgrade imlib2 to 1.4.x


Translation
-----------

At the moment, wmalauncher manual page and messages (including help page), 
are only translated in french.

Anybody who wants to contribute to translation (or even correction) is 
welcome and can contact me at <slacker6896@gmail.com>.


Authors
-------

  + Sébastien Ballet <slacker6896@gmail.com>


License
-------

The source code of this program is governed by the BSD 3-clause license 
that can be found in the LICENSE file. 


Credits
-------

wmalauncher logo was generated on patorjk.com/software/taag using font
Doom.
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.