mirror of
https://github.com/xmonad/xmonad.git
synced 2025-07-31 04:01:52 -07:00
87 lines
2.5 KiB
Plaintext
87 lines
2.5 KiB
Plaintext
== Configuring xmonad ==
|
|
|
|
xmonad is configure by creating and editing the Haskell file:
|
|
|
|
~/.xmonad/xmonad.hs
|
|
|
|
xmonad then uses default settings from this file as arguments to the
|
|
window manager.
|
|
|
|
== A simple example ==
|
|
|
|
Here is a basic example, which takes defaults from xmonad, and overrides
|
|
the border width, default terminal, and some colours:
|
|
|
|
--
|
|
-- An example, simple ~/.xmonad/xmonad.hs file.
|
|
-- It overrides a few basic settings, reusing all the other defaults,
|
|
--
|
|
|
|
import XMonad
|
|
|
|
main = xmonad $ defaultConfig
|
|
{ borderWidth = 2
|
|
, terminal = "urxvt"
|
|
, normalBorderColor = "#cccccc"
|
|
, focusedBorderColor = "#cd8b00" }
|
|
|
|
This will run 'xmonad', the window manager, with your settings passed as
|
|
arguments.
|
|
|
|
Overriding default settings like this (using "record update syntax"),
|
|
will yield the shortest config file, as you only have to describe values
|
|
that differ from the defaults.
|
|
|
|
An alternative is to inline the entire default config file from xmonad,
|
|
and edit values you wish to change. This is requires more work, but some
|
|
users may find this easier. You can find the defaults in the file:
|
|
|
|
XMonad/Config.hs
|
|
|
|
== Checking your xmonad.hs is correct ==
|
|
|
|
Place this text in ~/.xmonad/xmonad.hs, and then check that it is
|
|
syntactically and type correct, by loading it in the Haskell
|
|
interpreter:
|
|
|
|
$ ghci ~/.xmonad/xmonad.hs
|
|
GHCi, version 6.8.1: http://www.haskell.org/ghc/ :? for help
|
|
Loading package base ... linking ... done.
|
|
Ok, modules loaded: Main.
|
|
|
|
Prelude Main> :t main
|
|
main :: IO ()
|
|
|
|
Ok, looks good.
|
|
|
|
== Loading your configuration ==
|
|
|
|
To have xmonad start using your settings, try mod-q. xmonad will attempt
|
|
to compile this file, and run it. If it is unable to, the defaults are
|
|
used. This requires GHC and xmonad are in your $PATH settings. If
|
|
GHC isn't in your path, you can still compile the xmonad.hs file yourself:
|
|
|
|
$ cd ~/.xmonad
|
|
$ ghc --make xmonad.hs
|
|
$ ls
|
|
xmonad xmonad.hi xmonad.hs xmonad.o
|
|
|
|
When you hit mod-q, this newly compiled xmonad will be used.
|
|
|
|
== Where are the defaults? ==
|
|
|
|
The default configuration values are defined in the source file:
|
|
|
|
XMonad/Config.hs
|
|
|
|
the XConfig data structure itself is defined in:
|
|
|
|
XMonad.hs
|
|
|
|
== Extensions ==
|
|
|
|
Since the xmonad.hs file is just another Haskell module, you may import
|
|
and use any Haskell code or libraries you wish. For example, you can use
|
|
things from the xmonad-contrib library, or other code you write
|
|
yourself.
|