Xmonad/Installing xmonad
Read me first[edit]
After installing, you'll have an xmonad
binary on your system. From there, you'll need to wire xmonad up to your login manager.
Linux[edit]
Arch[edit]
$ pacman -S xmonad-contrib # for the xmonad core and contrib packages
or else:
$ pacman -S xmonad # for just the xmonad core package
See xmonad on ArchWiki for more info.
Debian[edit]
To install:
$ apt-get install xmonad # for just the xmonad binary, without the ability to configure
In addition to that, if you want to write a configuration file, you should get one of these:
$ apt-get install libghc6-xmonad-contrib-dev # for all of xmonad core and xmonad-contrib (depends on the following pkg) $ apt-get install libghc6-xmonad-dev # for just xmonad core
There are also -doc and -prof suffixes for various packages. I'm not sure what they contain.
Note: The are backports available for debian etch at http://newpeople.debian.org/~jps/etch/.
Fedora[edit]
To install:
$ yum install xmonad
Additionally install ghc-xmonad-devel and ghc-xmonad-contrib-devel
$ yum install ghc-xmonad-contrib-devel
xmonad is also available in EPEL for rhel6.
Gentoo[edit]
$ emerge xmonad-contrib # the contrib package depends on xmonad so it gets also installed
if you only want to install xmonad without contrib you could use: $ emerge xmonad
An actively maintained haskell overlay contains many newer or more obscure versions of projects, including ebuilds for darcs xmonad/contrib, cabal-install, haskellmode for vim, and many other goodies.
Gobo[edit]
NixOS[edit]
To use xmonad as your window manager, modify /etc/nixos/configuration.nix to specify (as of 2016 Nov, NixOS 16.x or 17.x):
services.xserver = { windowManager.xmonad = { enable = true; enableContribAndExtras = true; extraPackages = haskellPackages: [ haskellPackages.xmonad-contrib haskellPackages.xmonad-extras haskellPackages.xmonad ]; }; windowManager.default = "xmonad";
It may also be convenient to perform various startup operations like adjusting the keymappings:
displayManager.sessionCommands = with pkgs; lib.mkAfter '' xmodmap /path/to/.Xmodmap ''; };
It's also helpful to specify the above package list in the `environment.systemPackages` portion of the configuration.nix file.
The above will enable you to login with the generic xmonad configuration; most xmonad users will customize their configuration via $HOME/.xmonad/xmonad.hs
. In order for this local version to be built (or rebuilt, on Alt-Q for example) the xmonad libraries and dependencies must be present in the logged-in users environment:
$ nix-env -f "<nixpkgs>" -iA haskellPackages.xmonad \ -A haskellPackages.xmonad-extras \ -A haskellPackages.xmonad-contrib
Remember to also install any applications that you specified in the displayManager.sessionCommands:
$ nix-env -i xmodmap
Slackware[edit]
Source Mage[edit]
Ubuntu[edit]
See #Debian.
Note: On Hardy Heron and earlier, the libghc6-x11-dev package was compiled without Xinerama support. This means that if you want multi-monitor support, you have three options:
- upgrade to >= Intrepid Ibex
- install xmonad (and the Haskell X11 library on which it depends) through one of the #Generic options
- follow the instructions in this blog post to recompile the libghc6-x11-dev yourself (unverified)
BSD[edit]
FreeBSD[edit]
For only the window manager:
# cd /usr/ports/x11-wm/hs-xmonad # sudo make install distclean
And the contrib package:
# cd /usr/ports/x11-wm/hs-xmonad-contrib # sudo make install distclean
NetBSD[edit]
OpenBSD[edit]
xmonad is in the ports tree. To install it,
sudo pkg_add xmonad
Mac OS X[edit]
Install ghc using MacPorts:
$ port install ghc
And then follow one of the #Generic instructions.
Alternatively install a ghc wrapper and xmonad with Nix.
$ nix-env -i <package>
See more at Xmonad/Using xmonad on Apple OSX.
Generic[edit]
From tarball[edit]
From Hackage[edit]
xmonad can be installed from source on any system with an up-to-date Haskell toolchain:
$ cabal install xmonad