diff --git a/flake.nix b/flake.nix index eb92fcc..804ed92 100644 --- a/flake.nix +++ b/flake.nix @@ -50,8 +50,6 @@ buildInputs = with pkgs; [ libxcb xcbutilwm - xrandr - xprop ocamlPackages.ctypes ocamlPackages.ctypes-foreign mruby @@ -76,6 +74,32 @@ mruby = mruby; }; + apps.${system}.default = { + type = "app"; + program = "${pkgs.writeShellScript "kutu-run" '' + set -e + if [ -z "$DISPLAY" ]; then + exec ${pkgs.xinit}/bin/startx \ + ${kutu}/bin/kutu \ + -- \ + ${pkgs.xorg-server}/bin/X + else + DISPLAY_NUM=:100 + ${pkgs.xorg-server}/bin/Xephyr \ + $DISPLAY_NUM \ + -screen 1280x720 \ + -ac \ + > /tmp/kutu-xephyr.log 2>&1 & + XEPHYR_PID=$! + cleanup() { kill "$XEPHYR_PID" 2>/dev/null || true; } + trap cleanup EXIT INT TERM + sleep 1 + DISPLAY=$DISPLAY_NUM ${kutu}/bin/kutu + echo "Returned: $?" + fi + ''}"; + }; + devShells.${system}.default = pkgs.mkShell { inputsFrom = [ kutu ];