diff --git a/nixops/ekman/myvnc.nix b/nixops/ekman/myvnc.nix new file mode 100644 index 0000000..51b8cc2 --- /dev/null +++ b/nixops/ekman/myvnc.nix @@ -0,0 +1,24 @@ +{ pkgs }: +pkgs.writeScriptBin "myvnc" '' + #!${pkgs.runtimeShell} + + uid=`id -u` + port=$((9000+$uid)) + shell=`getent passwd $(id -un) | awk -F : '{print $NF}'` + # vnc=${pkgs.tigervnc}/bin/vncserver + vnc=/nix/store/czp2b60dwk75widi8y287hr0xx1wgv2a-tigervnc-1.10.1/bin/vncserver + + case $1 in + -p|--port) shift; port=$1 ;; + kill|stop) + display=$($vnc -list | sed -n 's/^\(:[0-9]\+\).*/\1/p'| head -1) + $vnc -kill $display + exit 0 + ;; + esac + ps ax | sed '/grep/d' | grep "Xvnc.*-rfbport $port" >/dev/null 2>&1 + [ $? = 1 ] && $vnc -rfbport $port + echo "Xvnc server is running on port $port." + exec $shell -i + '' +