add xmobar on Debian page
authorKenyon Ralph <kenyon@kenyonralph.com>
Mon, 27 Jun 2011 08:22:48 +0000 (01:22 -0700)
committerKenyon Ralph <kenyon@kenyonralph.com>
Mon, 27 Jun 2011 08:22:48 +0000 (01:22 -0700)
xmobar_on_Debian.mdwn [new file with mode: 0644]

diff --git a/xmobar_on_Debian.mdwn b/xmobar_on_Debian.mdwn
new file mode 100644 (file)
index 0000000..622061a
--- /dev/null
@@ -0,0 +1,108 @@
+* 20090105 update: I'm running Debian on my main desktop machine now. Here's what I did this time. I was running Ubuntu, and the notes I wrote for that still exist below.
+* 20100315 update: Probably none of these instructions are necessary anymore, since a recent version of [[!debpkg xmobar]] is in the [[Debian]] repositories. Just `sudo aptitude install xmobar` should be sufficient.
+
+I already had [[!debpkg zlib1g-dev]] and [[!debpkg libxft-dev]] installed. zlib1g-dev would be pulled in by [[!debpkg libghc6-zlib-dev]] anyway. Also already used aptitude to install [[!debpkg xmonad]], so that might have pulled in some dependencies necessary for the following steps.
+
+[[!toc levels=2]]
+
+## Debian instructions
+
+### stm
+1. `sudo aptitude install libghc6-stm-dev` # dependency of xmobar
+
+### cabal
+Since Debian sid doesn't have the Haskell X11-xft package, I want to install it with cabal-install, which Debian also does not have.
+
+1. `darcs get --partial http://darcs.haskell.org/cabal-branches/cabal-1.6/` # (Per <http://www.haskell.org/cabal/code.html>.) Due to [cabal-install's](http://hackage.haskell.org/trac/hackage/wiki/CabalInstall) dependence on Cabal >=1.6 && <1.7, but Debian sid has Cabal-1.2.3.0 at the moment, which is part of [[!debpkg ghc6]].
+1. `cd cabal-1.6`
+1. `ghc --make Setup && ./Setup configure --user && ./Setup build && ./Setup install`
+1. `cd ..`
+
+### HTTP and zlib
+HTTP and zlib are dependencies of cabal-install.
+
+1. `sudo aptitude install libghc6-http-dev libghc6-zlib-dev` # pulls in libghc6-network-dev and libghc6-parsec-dev
+
+Debian squeeze currently doesn't have the required version of libghc6-http-dev, so following <http://projects.haskell.org/http/>:
+1. `git clone git://code.galois.com/HTTPbis.git`
+1. `runghc Setup configure --user && runghc Setup build && runghc Setup install`
+
+### cabal-install
+1. `darcs get --partial http://darcs.haskell.org/cabal-install/`
+1. `cd cabal-install`
+1. `runghc Setup configure --user && runghc Setup build && runghc Setup install`
+1. `cd ..`
+
+cabal binary is now installed as `~/.cabal/bin/cabal`. I've added `~/.cabal/bin` to my `PATH`.
+
+### X11-xft
+1. `cabal update`
+1. `cabal install X11-xft`
+
+### xmobar
+1. `darcs get --partial http://code.haskell.org/xmobar/`
+1. `cd xmobar`
+1. `runhaskell Setup configure --user --flags="with_xft" && runhaskell Setup build && runhaskell Setup install`
+
+Now the xmobar binary is installed as `~/.cabal/bin/xmobar`.
+
+At first, `Setup configure` could not find X11-xft, even though ghc-pkg list showed X11-xft as being installed in my home directory. This was because I forgot the "--user" option to `Setup configure`.
+
+### Notes
+* [PROTIP](http://ohinternet.com/PROTIP): After doing any `runghc Setup configure --user && runghc Setup build && runghc Setup install`, that package is registered under ~/.ghc and visible to ghc-pkg. If you rm -rf ~/.cabal without ghc-pkg unregistering the package, then subsequent builds will fail.
+* runhaskell is a symlink to runghc. I suppose runhaskell is more generic, so that compilers other than ghc can be run.
+* [Haskell Package Version Tracker](http://people.debian.org/~nomeata/hackagevsdebian.html) - Debian versus Hackage
+* I had to add `lowerOnStart = True` to my xmobarrc to get it to work this time. Otherwise it's the same as shown at the bottom of this page.
+
+----------
+
+## Old Ubuntu instructions
+
+(December 2008) I use [[xmonad]] on [[Ubuntu]]. I use the [xmobar](http://code.haskell.org/~arossato/xmobar/) status bar with it. Ubuntu doesn't have a package for xmobar, nor for many of its dependencies. So to build xmobar I had to build and install a bunch of dependencies. Also, in order to make installing Haskell packages easier, I installed [[!haskellwiki cabal-install]], which had its own dependencies.
+
+### Dependencies with Ubuntu packages
+First some dependencies can be installed using aptitude. These are [[!ubupkg libxft-dev]] (for [[!wikipedia xft]] support in xmobar), and [[!ubupkg zlib1g-dev]] for building cabal-install.
+
+### Building cabal-install dependencies
+Building [[!hackage parsec]], [[!hackage stm]], [[!hackage network]], [[!hackage http]], and [[!hackage zlib]] should now work with the command `runghc Setup configure --user && runghc Setup build && runghc Setup install` for each. Or you could use the bootstrap.sh included with cabal-install.
+
+I think those are all of the dependencies.
+
+### Building cabal-install
+Now cabal-install should install into your home directory with the standard Haskell configure, build, and install commands:
+
+    runghc Setup configure --user && runghc Setup build && runghc Setup install
+
+### Installing X11-xft
+With cabal installed, a simple `cabal install X11-xft` should work.
+
+### Building xmobar
+Finally, I was able to build xmobar. I'm using the version pulled directly from the [[!haskellwiki darcs]] repository.
+
+### xmobar.config
+Here is my `~/.xmonad/xmobar.config`:
+
+    Config { font = "-*-fixed-medium-r-normal-*-13-*-*-*-*-*-*-*"
+           , bgColor = "black"
+           , fgColor = "grey"
+           , position = TopW L 90
+           , commands = [ Run Weather "KNKX" ["-t","<station>: <tempC>C","-L","18","-H","25","--normal","green","--high","red","--low","lightblue"] 36000
+                        , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
+                        , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
+                        , Run Memory ["-t","Mem: <usedratio>%"] 10
+                        , Run Swap [] 10
+                        , Run Com "uname" ["-s","-r"] "" 36000
+                        , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
+                        , Run StdinReader
+                        ]
+           , sepChar = "%"
+           , alignSep = "}{"
+           , template = "%StdinReader% }{ %cpu% | %memory% * %swap% | %eth0% <fc=#ee9a00>%date%</fc>| %KNKX% | %uname%"
+           }
+
+### External links
+* This blog post was helpful: <http://gimbo.org.uk/blog/2007/04/27/haskell-packages-gotcha-global-vs-per-user-package-databases/>
+* Help make Ubuntu packages for Haskell stuff: <https://wiki.ubuntu.com/MOTU/Teams/UncommonProgrammingLanguages/Haskell>
+* This thread helped figure out why zlib wasn't building: <http://www.nabble.com/zlib,-missing-zlib.h-td17547823.html>
+
+[[!tag Ubuntu Debian]]