From 6f48eea200217d8e3f28e10a4148d9523464b729 Mon Sep 17 00:00:00 2001 From: Jonas Juselius Date: Tue, 27 Sep 2022 14:20:49 +0200 Subject: [PATCH] feat: myvnc as nix module --- cluster/compute/myvnc.nix | 24 --------------------- cluster/myvnc.nix | 44 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 24 deletions(-) delete mode 100644 cluster/compute/myvnc.nix create mode 100644 cluster/myvnc.nix diff --git a/cluster/compute/myvnc.nix b/cluster/compute/myvnc.nix deleted file mode 100644 index 51b8cc2..0000000 --- a/cluster/compute/myvnc.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ 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 - '' - diff --git a/cluster/myvnc.nix b/cluster/myvnc.nix new file mode 100644 index 0000000..41846be --- /dev/null +++ b/cluster/myvnc.nix @@ -0,0 +1,44 @@ +{ pkgs, lib, config, ... }: +with lib; +let + cfg = config.features.myvnc; + + myvnc = pkgs.writeScriptBin "myvnc" '' + #!${pkgs.runtimeShell} + + uid=`id -u` + port=$((9000+$uid)) + shell=`getent passwd $(id -un) | awk -F : '{print $NF}'` + vnc=${pkgs.turbovnc}/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 + ''; + + configuration = { + services.xserver.windowManager.fluxbox.enable = true; + environment.systemPackages = with pkgs; [ + alacritty + myvnc + ]; + }; +in { + options.features.myvnc = { + enable = mkEnableOption "Enable mynvc script"; + }; + + config = mkMerge [ + (mkIf config.features.myvnc.enable configuration) + ]; +}