From 49864a4370fcf4114aef839bfb0b81876b6ae8e5 Mon Sep 17 00:00:00 2001
From: Nicolas Berbiche <nicolas@normie.dev>
Date: Tue, 22 Jun 2021 20:36:47 -0400
Subject: [PATCH] xmonad: document breakage of recompilation (#2024)

Co-authored-by: Markus Scherer <markus.f.scherer@gmail.com>
---
 modules/misc/news.nix                       | 19 +++++++++++++++++++
 modules/services/window-managers/xmonad.nix |  5 +++++
 2 files changed, 24 insertions(+)

diff --git a/modules/misc/news.nix b/modules/misc/news.nix
index a94fa6c0..9fa842cc 100644
--- a/modules/misc/news.nix
+++ b/modules/misc/news.nix
@@ -2084,6 +2084,25 @@ in
           A new module is available: 'programs.mangohud'.
         '';
       }
+
+      {
+        time = "2021-06-16T01:26:16+00:00";
+        message = ''
+          The xmonad module now compiles the configuration before
+          linking the binary to the place xmonad expects to find
+          the compiled configuration (the binary).
+
+          This breaks recompilation of xmonad (i.e. the 'q' binding or
+          'xmonad --recompile').
+
+          If this behavior is undesirable, do not use the
+          'xsession.windowManager.xmonad.config' option. Instead, set the
+          contents of the configuration file with
+          'home.file.".xmonad/config.hs".text = "content of the file"'
+          or 'home.file.".xmonad/config.hs".source = ./path-to-config'.
+        '';
+      }
+
     ];
   };
 }
diff --git a/modules/services/window-managers/xmonad.nix b/modules/services/window-managers/xmonad.nix
index 07ed2846..6d05d68e 100644
--- a/modules/services/window-managers/xmonad.nix
+++ b/modules/services/window-managers/xmonad.nix
@@ -73,6 +73,11 @@ in {
           an absolute path or <literal>null</literal> in which case
           <filename>~/.xmonad/xmonad.hs</filename> will not be managed
           by Home Manager.
+          </para>
+          <para>
+          If this option is set to a non-<literal>null</literal> value,
+          recompilation of xmonad outside of Home Manager (e.g. via
+          <command>xmonad --recompile</command>) will fail.
         '';
       };