XMonad: Difference between revisions

imported>Jooooscha
m Clearify introduction of power management section
imported>Jooooscha
Add more information about xmonad contrib
Line 6: Line 6:


== Installation ==
== Installation ==
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
 
services.xserver.windowManager.xmonad.enable = true;
The simplest way to install Xmonad is to activate the corresponding NixOS module.
</nowiki>}}
You can do this by adding the following to your NixOS configuration.
You probably also want to activate the <core>enableContribAndExtras</code> option.
 
  services.xserver.windowManager.xmonad = {
    enable = true;
    enableContribAndExtras = true;
  };
 
The second options automatically adds the <code>xmonad-contrib</code> and <code>xmonad-extras</code> packages.
They are required to use the [https://hackage.haskell.org/package/xmonad-contrib Xmonad Contrib] extensions.


== Configuration ==
== Configuration ==
To configure Xmonad you give Nix your config file like this:
services.xserver.windowManager.xmonad.config = builtins.readFile ../path/to/xmonad.hs;
More information on how to configure Xmonad can be found in the [https://wiki.archlinux.org/title/Xmonad Arch Wiki], and a list of starter configs can be found in the [https://wiki.haskell.org/Xmonad/Config_archive Xmonad Config Archive].
=== Configuring XMonad with IDE support ===
=== Configuring XMonad with IDE support ===
To edit XMonad configuration with IDE support, see https://www.srid.ca/xmonad-conf-ide
To edit XMonad configuration with IDE support, see https://www.srid.ca/xmonad-conf-ide


=== Another way to set up lsp support ===
=== Another way to set up lsp support ===
Previous way to set up lsp support didn't work for me.
Previous way to set up lsp support didn't work for me.
[https://discourse.nixos.org/t/haskell-language-server-support-for-xmonad/12348 This post] helped:
[https://discourse.nixos.org/t/haskell-language-server-support-for-xmonad/12348 This post] helped:


==== if setting up xmonad with extra packages: ====
==== if setting up xmonad with extra packages: ====