summaryrefslogtreecommitdiffstats
path: root/lass/5pkgs/xephyrify/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'lass/5pkgs/xephyrify/default.nix')
-rw-r--r--lass/5pkgs/xephyrify/default.nix37
1 files changed, 35 insertions, 2 deletions
diff --git a/lass/5pkgs/xephyrify/default.nix b/lass/5pkgs/xephyrify/default.nix
index cd918af37..8b18ea949 100644
--- a/lass/5pkgs/xephyrify/default.nix
+++ b/lass/5pkgs/xephyrify/default.nix
@@ -1,9 +1,42 @@
-{ writeDashBin, coreutils, xorg, virtualgl, ... }:
+{ writeDashBin, writeHaskell, coreutils, xorg, virtualgl, ... }:
-writeDashBin "xephyrify" ''
+let
+
+ minimalXmonad = writeHaskell "minimalXmonad" {
+ executables.xmonad = {
+ extra-depends = [
+ "containers"
+ "xmonad"
+ ];
+ text = /* haskell */ ''
+ module Main where
+ import XMonad
+ import qualified Data.Map as Map
+
+ main :: IO ()
+ main = do
+ xmonad def
+ { workspaces = [ "1" ]
+ , layoutHook = myLayoutHook
+ , keys = myKeys
+ , normalBorderColor = "#000000"
+ , focusedBorderColor = "#000000"
+ }
+
+ myLayoutHook = Full
+ myKeys _ = Map.fromList []
+ '';
+ };
+ };
+
+in writeDashBin "xephyrify" ''
NDISPLAY=:$(${coreutils}/bin/shuf -i 100-65536 -n 1)
+ echo "using DISPLAY $NDISPLAY"
${xorg.xorgserver}/bin/Xephyr -br -ac -reset -terminate -resizeable $NDISPLAY &
XEPHYR_PID=$!
+ DISPLAY=$NDISPLAY ${minimalXmonad}/bin/xmonad &
+ XMONAD_PID=$!
DISPLAY=$NDISPLAY ${virtualgl}/bin/vglrun "$@"
+ kill $XMONAD_PID
kill $XEPHYR_PID
''