From 911b2750be3493b15aed9739ab1f1074c45712cc Mon Sep 17 00:00:00 2001 From: slotThe Date: Fri, 15 Jan 2021 08:48:10 +0100 Subject: Extract compiling xmobar from source to its own file --- doc/compiling.org | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 doc/compiling.org (limited to 'doc') 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 ==. 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. -- cgit v1.2.3