[OOD-users] Fixing NoVNC screen resolution
Eric Appelt
appelte1 at accre.vanderbilt.edu
Fri Nov 2 17:43:59 EDT 2018
Hi Jeremy and all,
Thanks for these instructions. I followed them and was able to implement
this perfectly with just a few minor corrections.
In the `submit/my_submit.yml.erb` the erb tags were missing, it should be:
---
batch_connect:
template: vnc
geometry: <%= vnc_resolution.blank? ? "1024x768" :
vnc_resolution.strip %>
script:
...
Then for the button code I had to change it slightly so that the eyeball
fa icon worked, and also to keep the view-only button a different color:
<a
href="/pun/sys/dashboard/path/to/noVNC-1.0.0/vnc.html?autoconnect=true&password=<%=
password %>&path=rnode/<%= host %>/<%= websocket
%>/websockify&resize=off" class="btn btn-primary" target="_blank">
<i class="fa fa-eye"></i> Launch noVNC in New Tab
</a>
<a
href="/pun/sys/dashboard/path/to/noVNC-1.0.0/vnc.html?autoconnect=true&password=<%=
spassword %>&path=rnode/<%= host %>/<%= websocket
%>/websockify&resize=off" class="btn btn-default pull-right"
target="_blank">
View Only (Share-able Link)
</a>
I also changed the view-only link to "resize=downscale" as I think this
made more sense, but I'll see based on user feedback. I *think* but am
not 100% sure that I had to do a "touch tmp/restart.txt" in the
dashboard directory to make the changes take effect.
We're going to announce this as a "beta" to all of our users soon and
are working on our documentation and training, but we hope to move to
the "Production Deployment" category of organizations using OOD very soon.
-Eric
On 10/30/18 10:28 PM, Jeremy Nicklas wrote:
> Hi Eric,
>
> I do not remember experiencing similar issues with Matlab at OSC back
> when I experimented with it (although it has been awhile). But I do
> know Matlab bundled its own software rendering opengl drivers which
> caused us quite a few headaches until we avoided loading them. So be
> mindful of all the libraries that Matlab bundles and loads.
>
> Currently the input field for `bc_vnc_resolution` is force hidden in
> the code here:
>
> https://github.com/OSC/ood-dashboard/blob/25c54a55d6a84905c7b324eb39d05e0c374bf5de/app/models/batch_connect/app.rb#L151-L152
>
> I am the one who added that code 2 years ago, but I can't remember the
> reasoning behind it anymore (possibly there were some issues with
> noVNC at the time).
>
> Good news is that just about everything can be overridden. So one
> suggestion is to create a new form attribute, let's call it
> `vnc_resolution` and define it as such in your `form.yml`:
>
> ---
> title: "ACCRE Fixed-Screen Desktop"
> cluster: "accre"
> attributes:
> ...
> vnc_resolution:
> required: true
> widget: "resolution_field"
> label: "Desktop Screen Resolution (px)"
> value: "1024x768"
> form:
> ...
> - vnc_resolution
> - bc_email_on_started
> submit: "submit/my_submit.yml.erb"
>
> Note, be sure to remove `bc_vnc_resolution` from your `form.yml` if
> you do this or you may have a conflict.
>
> Then (I believe as I can't really test it) in your
> `submit/my_submit.yml.erb` you will have something like:
>
> ---
> batch_connect:
> template: vnc
> geometry: vnc_resolution.blank? ? "1024x768" : vnc_resolution.strip
> script:
> ...
>
> Last but not least we need to fix the links to noVNC so that it
> doesn't try to auto-resize when the browser window changes size. You
> can override the panel view the user sees to connect to the session by
> including a `view.html.erb` file in your interactive app's root
> directory (similar to what we do for the Jupyter app). So an example
> would be:
>
> <a
> href="/pun/sys/dashboard/path/to/noVNC-1.0.0/vnc.html?autoconnect=true&password=<%=
> password %>&path=rnode/<%= host %>/<%= websocket
> %>/websockify&resize=off" class="btn btn-primary" target="_blank">
> <i class="fas fa-eye"></i> Launch noVNC in New Tab
> </a>
> <a
> href="/pun/sys/dashboard/path/to/noVNC-1.0.0/vnc.html?autoconnect=true&password=<%=
> spassword %>&path=rnode/<%= host %>/<%= websocket
> %>/websockify&resize=off" class="btn btn-primary pull-right"
> target="_blank">
> View Only (Share-able Link)
> </a>
>
> Note, I took a guess at the path for the noVNC installation links
> (notice that I stubbed it with "/.../path/to/..."). You should copy
> the links from the respective buttons in your Dashboard for a running
> session in your browser. After swapping in the ERB code for the
> connection variables you will set "resize=off" at the end of the URL
> to achieve what you want.
>
> I did most of this off the top of my head, so anyone else is free to
> correct my mistakes. Hope this helps.
>
> -Jeremy Nicklas
>
> On Tue, Oct 30, 2018 at 2:44 PM Eric Appelt via OOD-users
> <ood-users at lists.osc.edu <mailto:ood-users at lists.osc.edu>> wrote:
>
> Hi Everyone,
>
> We are getting close to finishing our evaluation phase of OOD with
> select labs and deployment of the service at Vanderbilt's ACCRE
> facility
> for general use.
>
> One of our clients uses MATLAB and has noticed two issues related to
> automatic screen sizing through NoVNC. This causes issues when the
> user
> closes NoVNC on their desktop and opens it again on their laptop. The
> remote desktop screen is resized causing MATLAB to panic and throw a
> cascade of java exceptions.
>
> Another related issue is that when a session is initialized on the
> smaller laptop screen, the remote desktop size is too small for
> some of
> their MATLAB applications and the font is unreadable. What they
> need is
> a remote screen larger than the actual browser window that they can
> "Clip to Window" in NoVNC and pan around.
>
> For both these problems I was hoping I could create an interactive
> desktop form where the user could specify a desired screen size in
> pixels using "bc_vnc_resolution". However, I can't seem to get the
> form
> attribute to show up, nor does XFCE seem to respect this setting as
> NoVNC will default to remote resizing and rescale a window. My yml
> form
> is as follows:
>
> ---
> title: "ACCRE Fixed-Screen Desktop"
> cluster: "accre"
> attributes:
> desktop: "xfce"
> bc_account: null
> bc_queue: null
> bc_num_slots: null
> bc_mem:
> label: "Maximum Memory (GB)"
> value: 4
> bc_num_cores:
> label: "Number of CPU Cores"
> value: 1
> bc_vnc_resolution:
> required: true
> widget: "resolution_field"
> label: "Desktop Screen Resolution (px)"
> value: "1024x768"
> form:
> - bc_vnc_idle
> - desktop
> - bc_num_hours
> - bc_mem
> - bc_num_cores
> - bc_num_slots
> - node_type
> - bc_account
> - bc_queue
> - bc_vnc_resolution
> - bc_email_on_started
> submit: "submit/my_submit.yml.erb"
>
> I tried variations of the attribute settings but nothing ever
> shows up.
> Is there something I am doing wrong here? I couldn't find any
> documentation on this option or reference browsing the source.
>
> Thanks,
>
> Eric
>
> _______________________________________________
> OOD-users mailing list
> OOD-users at lists.osc.edu <mailto:OOD-users at lists.osc.edu>
> https://lists.osu.edu/mailman/listinfo/ood-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osu.edu/pipermail/ood-users/attachments/20181102/6d6663b1/attachment-0001.html>
More information about the OOD-users
mailing list