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
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 thexft:
prefix in thefont
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., installlibiw-dev
in Debian-based systems orwireless_tools
on Arch Linux). Conflicts withwith_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., installlibasound2-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.