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 ++++++++++++++++++++++++++++++++++++++++++++++++ readme.org | 124 ++++-------------------------------------------------- 2 files changed, 118 insertions(+), 116 deletions(-) create mode 100644 doc/compiling.org 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. diff --git a/readme.org b/readme.org index 959f678..f0ad1a8 100644 --- a/readme.org +++ b/readme.org @@ -23,10 +23,9 @@ This is the [[https://xmobar.org/changelog.html][changelog]] for recent releases * Installation ** From your Systems Package Manager -Xmobar is probably available from your distribution package manager! -Most distributions do compile with the =all_extensions= flag, so you -don't have to. For more information on that, see the [[Optional features][optional features]] -item below. +Xmobar is probably available from your distributions package manager! +Most distributions compile xmobar with the =all_extensions= flag, so you +don't have to. *** Arch Linux @@ -64,9 +63,9 @@ Xmobar is available from [[http://hackage.haskell.org/package/xmobar/][Hackage]] Starting with version 0.35.1, xmobar now requires at least GHC version 8.4.x. to build. See [[https://github.com/jaor/xmobar/issues/461][this issue]] for more information. -See below for a list of optional compilation flags that will enable some -optional plugins. For instance, to install xmobar with all the bells and -whistles, use: +See [[file:doc/compiling.org][compiling]] for a list of optional compilation flags that will enable +some optional plugins. For instance, to install xmobar with all the +bells and whistles (this is probably what you want), use: #+begin_src shell cabal install xmobar --flags="all_extensions" @@ -74,118 +73,11 @@ whistles, use: ** 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 barebones =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. +See [[file:doc/compiling.org][compiling]]. * Running xmobar -You can now run xmobar with: +You can run xmobar with: #+begin_src shell xmobar /path/to/config & -- cgit v1.2.3