Skip to content

Latest commit

 

History

History
110 lines (78 loc) · 4.69 KB

compiling.org

File metadata and controls

110 lines (78 loc) · 4.69 KB

Compiling xmobar from source

If you don’t have cabal-install installed, you can get xmobar’s source code in a variety of ways:

  • From Hackage. Just download the latest release from xmobar’s hackage page.
  • From Github. There are also tarballs available for every tagged release on Github’s releases page
  • From the bleeding edge repo. If you prefer to live dangerously, just get the latest and greatest (and buggiest, I guess) using git:
    git clone git://github.com/jaor/xmobar
        

If you have cabal installed, you can now use it from within xmobar’s source tree:

cabal install --flags="all_extensions"

There is also a stack.yaml file that will allow you to install the xmobar executable with

stack install

See the stack.yaml file for the enabled extensions. You can also pass them to stack directly:

stack install --flag xmobar:all_extensions

Optional features

You can configure xmobar to include some optional plugins and features, which are not compiled by default. To that end, you need to add one or more flags to either the cabal install command or the configure setup step, as shown in the examples above.

Extensions need additional libraries (listed below) that will be automatically downloaded and installed if you’re using cabal install. Otherwise, you’ll need to install them yourself.

  • with_dbus Enables support for DBUS by making xmobar to publish a service on the session bus. Requires the dbus package.
  • with_threaded Uses GHC’s threaded runtime. Use this option if xmobar enters a high-CPU regime right after starting.
  • with_utf8 UTF-8 support. Requires the utf8-string package.
  • with_xft Antialiased fonts. Requires the X11-xft package. This option automatically enables UTF-8. To use XFT fonts you need to use the xft: prefix in the font configuration option. For instance:
    font = "xft:Times New Roman-10:italic"
        

    Or to have fallback fonts, just separate them by commas:

    font = "xft:Open Sans:size=9,WenQuanYi Zen Hei:size=9"
        
  • with_mpd Enables support for the MPD daemon. Requires the libmpd package.
  • with_mpris Enables support for MPRIS v1/v2 protocol. Requires the dbus and text packages.
  • with_inotify Support for inotify in modern Linux kernels. This option is needed for the MBox and Mail plugins to work. Requires the hinotify package.
  • with_nl80211 Support for wireless cards on Linux via nl80211 (all upstream drivers). Enables the Wireless plugin. Requires [netlink] and [cereal] packages.
  • with_iwlib Support for wireless cards via Wext ioctls (deprecated). Enables the Wireless plugin. No Haskell library is required, but you will need the iwlib C library and headers in your system (e.g., install libiw-dev in Debian-based systems or wireless_tools on Arch Linux). Conflicts with with_nl80211.
  • with_alsa Support for ALSA sound cards. Enables the Volume plugin. Requires the alsa-mixer package. To install the latter, you’ll need the libasound C library and headers in your system (e.g., install libasound2-dev in Debian-based systems).
  • with_datezone Support for other timezones. Enables the DateZone plugin. Requires timezone-olson and timezone-series package.
  • with_xpm Support for xpm image file format. This will allow loading .xpm files in <icon>. Requires the libXpm C library.
  • with_uvmeter Enables UVMeter plugin. The plugin shows UV data for Australia.
  • with_weather Support to display weather information. Enables Weather plugin.
  • all_extensions Enables all the extensions above.