summaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/compiling.org110
1 files changed, 110 insertions, 0 deletions
diff --git a/doc/compiling.org b/doc/compiling.org
new file mode 100644
index 0000000..08456ff
--- /dev/null
+++ b/doc/compiling.org
@@ -0,0 +1,110 @@
+* 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 [[http://hackage.haskell.org/package/xmobar/][Hackage]]. Just download the latest release from xmobar's hackage
+ page.
+
+- From [[http://github.com/jaor/xmobar/][Github]]. There are also tarballs available for every tagged
+ release on [[https://github.com/jaor/xmobar/releases][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:
+
+ #+begin_src shell
+ git clone git://github.com/jaor/xmobar
+ #+end_src
+
+If you have cabal installed, you can now use it from within xmobar's
+source tree:
+
+#+begin_src shell
+ cabal install --flags="all_extensions"
+#+end_src
+
+There is also a =stack.yaml= file that will allow you to install the
+xmobar executable with
+
+#+begin_src shell
+ stack install
+#+end_src
+
+See the =stack.yaml= file for the enabled extensions. You can also pass
+them to =stack= directly:
+
+#+begin_src shell
+ stack install --flag xmobar:all_extensions
+#+end_src
+
+** 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 [[http://hackage.haskell.org/package/dbus][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 [[http://hackage.haskell.org/package/utf8-string/][utf8-string]] package.
+
+- =with_xft= Antialiased fonts. Requires the [[http://hackage.haskell.org/package/X11-xft/][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:
+
+ #+begin_src haskell
+ font = "xft:Times New Roman-10:italic"
+ #+end_src
+
+ Or to have fallback fonts, just separate them by commas:
+
+ #+begin_src haskell
+ font = "xft:Open Sans:size=9,WenQuanYi Zen Hei:size=9"
+ #+end_src
+
+- =with_mpd= Enables support for the [[http://mpd.wikia.com/][MPD]] daemon. Requires the [[http://hackage.haskell.org/package/libmpd/][libmpd]]
+ package.
+
+- =with_mpris= Enables support for MPRIS v1/v2 protocol. Requires the
+ [[http://hackage.haskell.org/package/dbus][dbus]] and [[http://hackage.haskell.org/package/text][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
+ [[http://hackage.haskell.org/package/hinotify/][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 [[http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html][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 [[http://hackage.haskell.org/package/alsa-mixer][alsa-mixer]] package. To install the latter, you'll need
+ the [[http://packages.debian.org/stable/libasound2-dev][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 [[http://hackage.haskell.org/package/timezone-olson][timezone-olson]] and [[http://hackage.haskell.org/package/timezone-series][timezone-series]] package.
+
+- =with_xpm= Support for xpm image file format. This will allow loading
+ .xpm files in =<icon>=. Requires the [[http://cgit.freedesktop.org/xorg/lib/libXpm][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.