summaryrefslogtreecommitdiffstats
path: root/lass/5pkgs/xephyrify
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2018-03-07 01:49:57 +0100
committermakefu <github@syntax-fehler.de>2018-03-07 01:49:57 +0100
commit6b647a237a5f4db23b7eff70f305be7106da7711 (patch)
tree3542eabb416599e0d2dea8a2f2358f27f4b911e2 /lass/5pkgs/xephyrify
parent194e7011d42ed75c76dc7a7efea450ba6497d2f1 (diff)
parent02f67eed443ba552d775d1a0ab7860d439f7552b (diff)
Merge remote-tracking branch 'lass/master'
Diffstat (limited to 'lass/5pkgs/xephyrify')
-rw-r--r--lass/5pkgs/xephyrify/default.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/lass/5pkgs/xephyrify/default.nix b/lass/5pkgs/xephyrify/default.nix
new file mode 100644
index 000000000..8b18ea949
--- /dev/null
+++ b/lass/5pkgs/xephyrify/default.nix
@@ -0,0 +1,42 @@
+{ writeDashBin, writeHaskell, coreutils, xorg, virtualgl, ... }:
+
+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
+''