43 lines
1.0 KiB
Nix
43 lines
1.0 KiB
Nix
{ 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
|
|
''
|