I was digging through the vncserver script and found a handy variable, 
TVNC_3DWM, which I am using to simplify the user experience for my 
TurboVNC/VirtualGL setup. It's nice that users don't need to type vglrun 
before every command. This capability led me down a rabbit hole...

I use the TVNC_WM variable to control how interactive the remote desktop 
experience is. I typically set this to mate-session or xterm, depending on 
how interactive we need to be.

I have been abusing TVNC_WM a bit for testing. For instance, 
TVNC_WM=glxgears is a quick way to test VGL.

Some people I support find it cumbersome to run an entire desktop 
environment when a single application is needed. A subset of those users 
don't even want to use an xterm window. I can use/abuse TVNC_WM to simplify 
their workflow, as long as the application they want to run is a binary, 
and as long as the application doesn't require any module loading (two very 
big if's in my HPC environment).

I made a wrapper script for calling vncserver, and part of this script 
takes an arbitrarily long list of arguments and sets them as the TVNC_WM 
environment variable. In practice, the script might be used like this:

vnc_go xterm

or
vnc_go glxspheres64

The user can connect their local client to localhost:1 and view the 
terminal or opengl demo with no problem. If I write a traditional bash 
script, this paradigm fails:

-bash-4.2$ cat ~/my_startup.sh 
#!/bin/bash
module load anaconda/Anaconda3;
jupyter-notebook

vnc_go ~/my_script.sh # doesn't work

It's pretty clear why this would fail based on the vncserver script 
(specifically, line 159). If I mangle the traditional bash scripting 
format, this script works like a dream...

-bash-4.2$ cat ~/my_startup.silly_sh 
module load anaconda/Anaconda3; jupyter-notebook


vnc_go ~/my_script.silly_sh # does work

Of course, I don't want to train people to script this way. I do wonder if 
you might have thought about this use case before, or if you might 
otherwise have a suggestion on how to achieve this goal without invoking 
TVNC_WM.

PS- I realize VGLTransport is functionally similar to what I'm trying to 
achieve, but I'm still in the process of *motivating* the use of 
TurboVNC/VirtualGL over other closed source products. I want to be sure 
that performance is maximized for these demos; so not looking for the 
VGLTransport solution at this time. I want to do this with TurboVNC.

-- 
You received this message because you are subscribed to the Google Groups 
"TurboVNC User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/turbovnc-users/7618c410-3980-4ebb-800b-96c6aa4b7d35%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to