* [pve-devel] [PATCH novnc 0/2] upgrade novnc to 1.6.0
@ 2025-03-24 15:03 Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches " Dominik Csapak
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Dominik Csapak @ 2025-03-24 15:03 UTC (permalink / raw)
To: pve-devel
First patch updates the submodule to point to the v1.6.0 tag, rebases
the patches and changes some things (details in commit message)
Second patch fixes a bug in current upstream where the 'extra key'
images are not shown properly.
I squashed a few things into the rebasing of the patches since it was
often unpractical to have it as separate patches (we already have many)
and I did not want to touch the same patches multiple times in one
series.
If wanted i can of course do either, put the changes in new patches, or
as separate commits that touch the same patches.
Dominik Csapak (2):
upgrade noVNC and patches to 1.6.0
fix broken 'extra keys' images
.../0001-add-PVE-specific-JS-code.patch | 101 ++++++++--------
...002-add-custom-fbresize-event-on-rfb.patch | 13 +-
...nge-scaling-when-toggling-fullscreen.patch | 9 +-
debian/patches/0004-add-pve-style.patch | 31 ++---
debian/patches/0005-remove-vnc-logos.patch | 17 +--
...rectory-for-fetching-images-js-files.patch | 113 +++++++++++-------
.../patches/0007-add-pve-vnc-commands.patch | 9 +-
...add-replaceable-snippets-in-vnc.html.patch | 15 ++-
.../0009-decrease-animation-time.patch | 98 ++++++++-------
debian/patches/0010-use-only-app.js.patch | 71 +++++++++--
.../0011-add-localCursor-setting-to-rfb.patch | 45 ++++---
.../0012-pass-custom-command-to-vnc.patch | 3 +
...ove-the-default-value-of-wsProtocols.patch | 8 +-
...passing-deprecated-upgrade-parameter.patch | 4 +
...-create-own-class-for-hidden-buttons.patch | 11 +-
...-button-on-isFullscreen-get-variable.patch | 3 +
debian/patches/0017-make-error-hideable.patch | 5 +-
...ow-start-button-on-not-running-vm-ct.patch | 13 +-
.../patches/0019-show-clipboard-button.patch | 3 +
.../patches/0020-fix-broken-extra-keys.patch | 32 +++++
debian/patches/series | 1 +
debian/rules | 2 +-
novnc | 2 +-
23 files changed, 395 insertions(+), 214 deletions(-)
create mode 100644 debian/patches/0020-fix-broken-extra-keys.patch
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches to 1.6.0
2025-03-24 15:03 [pve-devel] [PATCH novnc 0/2] upgrade novnc to 1.6.0 Dominik Csapak
@ 2025-03-24 15:03 ` Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 2/2] fix broken 'extra keys' images Dominik Csapak
2025-03-24 17:28 ` [pve-devel] applied: [PATCH novnc 0/2] upgrade novnc to 1.6.0 Thomas Lamprecht
2 siblings, 0 replies; 4+ messages in thread
From: Dominik Csapak @ 2025-03-24 15:03 UTC (permalink / raw)
To: pve-devel
since we cannot use the bundler to bundle to commonjs/iife anymore
(see https://github.com/novnc/noVNC/issues/1943)
we now bundle it into an es module and load that in a top level
script tag as a module.
also removes the rounded corners on panels, and removes a superfluous
<hr> in the settings list.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
.../0001-add-PVE-specific-JS-code.patch | 101 ++++++++--------
...002-add-custom-fbresize-event-on-rfb.patch | 13 +-
...nge-scaling-when-toggling-fullscreen.patch | 9 +-
debian/patches/0004-add-pve-style.patch | 31 ++---
debian/patches/0005-remove-vnc-logos.patch | 17 +--
...rectory-for-fetching-images-js-files.patch | 113 +++++++++++-------
.../patches/0007-add-pve-vnc-commands.patch | 9 +-
...add-replaceable-snippets-in-vnc.html.patch | 15 ++-
.../0009-decrease-animation-time.patch | 98 ++++++++-------
debian/patches/0010-use-only-app.js.patch | 71 +++++++++--
.../0011-add-localCursor-setting-to-rfb.patch | 45 ++++---
.../0012-pass-custom-command-to-vnc.patch | 3 +
...ove-the-default-value-of-wsProtocols.patch | 8 +-
...passing-deprecated-upgrade-parameter.patch | 4 +
...-create-own-class-for-hidden-buttons.patch | 11 +-
...-button-on-isFullscreen-get-variable.patch | 3 +
debian/patches/0017-make-error-hideable.patch | 5 +-
...ow-start-button-on-not-running-vm-ct.patch | 13 +-
.../patches/0019-show-clipboard-button.patch | 3 +
debian/rules | 2 +-
novnc | 2 +-
21 files changed, 362 insertions(+), 214 deletions(-)
diff --git a/debian/patches/0001-add-PVE-specific-JS-code.patch b/debian/patches/0001-add-PVE-specific-JS-code.patch
index 655a2cd..926f0c0 100644
--- a/debian/patches/0001-add-PVE-specific-JS-code.patch
+++ b/debian/patches/0001-add-PVE-specific-JS-code.patch
@@ -13,9 +13,9 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
app/pve.js | 428 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- app/ui.js | 62 ++++++--
- vnc.html | 10 +-
- 3 files changed, 485 insertions(+), 15 deletions(-)
+ app/ui.js | 60 +++++++-
+ vnc.html | 12 +-
+ 3 files changed, 491 insertions(+), 9 deletions(-)
create mode 100644 app/pve.js
diff --git a/app/pve.js b/app/pve.js
@@ -453,7 +453,7 @@ index 0000000..1a062ad
+ },
+};
diff --git a/app/ui.js b/app/ui.js
-index f27dfe2..f2f194c 100644
+index 51e57bd..bd1561c 100644
--- a/app/ui.js
+++ b/app/ui.js
@@ -17,6 +17,7 @@ import keysyms from "../core/input/keysymdef.js";
@@ -464,16 +464,16 @@ index f27dfe2..f2f194c 100644
const PAGE_TITLE = "noVNC";
-@@ -57,6 +58,8 @@ const UI = {
- // Render default UI and initialize settings menu
- start() {
+@@ -72,6 +73,8 @@ const UI = {
+ });
+ }
+ UI.PVE = new PVEUI(UI);
+
UI.initSettings();
// Translate the DOM
-@@ -108,6 +111,9 @@ const UI = {
+@@ -121,6 +124,9 @@ const UI = {
UI.addConnectionControlHandlers();
UI.addClipboardHandlers();
UI.addSettingsHandlers();
@@ -483,7 +483,7 @@ index f27dfe2..f2f194c 100644
document.getElementById("noVNC_status")
.addEventListener('click', UI.hideStatus);
-@@ -116,19 +122,15 @@ const UI = {
+@@ -129,6 +135,8 @@ const UI = {
UI.openControlbar();
@@ -492,37 +492,39 @@ index f27dfe2..f2f194c 100644
UI.updateVisualState('init');
document.documentElement.classList.remove("noVNC_loading");
-
-- let autoconnect = WebUtil.getConfigVar('autoconnect', false);
-- if (autoconnect === 'true' || autoconnect == '1') {
-- autoconnect = true;
+@@ -136,7 +144,9 @@ const UI = {
+ let autoconnect = UI.getSetting('autoconnect');
+ if (autoconnect === 'true' || autoconnect == '1') {
+ autoconnect = true;
- UI.connect();
-- } else {
-- autoconnect = false;
-- // Show the connect panel on first load unless autoconnecting
-- UI.openConnectPanel();
-- }
-+ UI.PVE.pveStart(function(password) {
-+ UI.connect(undefined, password);
-+ });
++ UI.PVE.pveStart(function(password) {
++ UI.connect(undefined, password);
++ });
+ } else {
+ autoconnect = false;
+ // Show the connect panel on first load unless autoconnecting
+@@ -172,15 +182,16 @@ const UI = {
+ UI.setupSettingLabels();
- return Promise.resolve(UI.rfb);
- },
-@@ -172,11 +174,12 @@ const UI = {
/* Populate the controls if defaults are provided in the URL */
- UI.initSetting('host', window.location.hostname);
- UI.initSetting('port', port);
+- UI.initSetting('host', '');
+- UI.initSetting('port', 0);
- UI.initSetting('encrypt', (window.location.protocol === "https:"));
++ UI.initSetting('host', window.location.hostname);
++ UI.initSetting('port', window.location.port);
+ UI.initSetting('encrypt', true);
+ UI.initSetting('password');
+- UI.initSetting('autoconnect', false);
++ UI.initSetting('autoconnect', true);
UI.initSetting('view_clip', false);
UI.initSetting('resize', 'off');
UI.initSetting('quality', 6);
UI.initSetting('compression', 2);
+ UI.initSetting('autoresize', true);
UI.initSetting('shared', true);
+ UI.initSetting('bell', 'on');
UI.initSetting('view_only', false);
- UI.initSetting('show_dot', false);
-@@ -357,6 +360,7 @@ const UI = {
+@@ -360,6 +371,7 @@ const UI = {
UI.addSettingChangeHandler('resize');
UI.addSettingChangeHandler('resize', UI.applyResizeMode);
UI.addSettingChangeHandler('resize', UI.updateViewClip);
@@ -530,7 +532,7 @@ index f27dfe2..f2f194c 100644
UI.addSettingChangeHandler('quality');
UI.addSettingChangeHandler('quality', UI.updateQuality);
UI.addSettingChangeHandler('compression');
-@@ -411,6 +415,9 @@ const UI = {
+@@ -414,6 +426,9 @@ const UI = {
document.documentElement.classList.add("noVNC_connecting");
break;
case 'connected':
@@ -540,7 +542,7 @@ index f27dfe2..f2f194c 100644
document.documentElement.classList.add("noVNC_connected");
break;
case 'disconnecting':
-@@ -418,6 +425,11 @@ const UI = {
+@@ -421,6 +436,11 @@ const UI = {
document.documentElement.classList.add("noVNC_disconnecting");
break;
case 'disconnected':
@@ -552,7 +554,7 @@ index f27dfe2..f2f194c 100644
break;
case 'reconnecting':
transitionElem.textContent = _("Reconnecting...");
-@@ -843,6 +855,7 @@ const UI = {
+@@ -867,6 +887,7 @@ const UI = {
UI.closePowerPanel();
UI.closeClipboardPanel();
UI.closeExtraKeys();
@@ -560,7 +562,7 @@ index f27dfe2..f2f194c 100644
},
/* ------^-------
-@@ -1697,9 +1710,36 @@ const UI = {
+@@ -1729,9 +1750,36 @@ const UI = {
/* ------^-------
* /EXTRA KEYS
* ==============
@@ -599,37 +601,42 @@ index f27dfe2..f2f194c 100644
if (!UI.rfb) return;
UI.rfb.viewOnly = UI.getSetting('view_only');
diff --git a/vnc.html b/vnc.html
-index 24a118d..e8a982f 100644
+index 82cacd5..458f4d0 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -154,7 +154,7 @@
+@@ -205,7 +205,7 @@
<img alt="" src="app/images/settings.svg"> Settings
</div>
<ul>
- <li>
+ <li style="display:none;">
- <label><input id="noVNC_setting_shared" type="checkbox"> Shared Mode</label>
- </li>
- <li>
-@@ -164,16 +164,18 @@
- <li>
- <label><input id="noVNC_setting_view_clip" type="checkbox"> Clip to Window</label>
+ <label>
+ <input id="noVNC_setting_shared" type="checkbox"
+ class="toggle">
+@@ -227,6 +227,13 @@
+ Clip to window
+ </label>
</li>
+ <li>
-+ <label><input id="noVNC_setting_autoresize" type="checkbox" /> Autoresize Window</label>
++ <label>
++ <input id="noVNC_setting_autoresize" type="checkbox"
++ class="toggle">
++ Autoresize Window
++ </label>
+ </li>
<li>
- <label for="noVNC_setting_resize">Scaling Mode:</label>
+ <label for="noVNC_setting_resize">Scaling mode:</label>
<select id="noVNC_setting_resize" name="vncResize">
-- <option value="off">None</option>
-+ <option value="off">Off</option>
- <option value="scale">Local Scaling</option>
-- <option value="remote">Remote Resizing</option>
+@@ -235,8 +242,7 @@
+ <option value="remote">Remote resizing</option>
</select>
</li>
- <li><hr></li>
+- <li><hr></li>
- <li>
+ <li style="display:none;">
<div class="noVNC_expander">Advanced</div>
<div><ul>
<li>
+--
+2.39.5
+
diff --git a/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch b/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch
index 286d665..2fd12b0 100644
--- a/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch
+++ b/debian/patches/0002-add-custom-fbresize-event-on-rfb.patch
@@ -13,10 +13,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2 files changed, 21 insertions(+)
diff --git a/app/ui.js b/app/ui.js
-index f2f194c..f32b67c 100644
+index bd1561c..3726c8c 100644
--- a/app/ui.js
+++ b/app/ui.js
-@@ -1076,6 +1076,7 @@ const UI = {
+@@ -1116,6 +1116,7 @@ const UI = {
UI.rfb.addEventListener("clipboard", UI.clipboardReceive);
UI.rfb.addEventListener("bell", UI.bell);
UI.rfb.addEventListener("desktopname", UI.updateDesktopName);
@@ -24,7 +24,7 @@ index f2f194c..f32b67c 100644
UI.rfb.clipViewport = UI.getSetting('view_clip');
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
-@@ -1735,6 +1736,16 @@ const UI = {
+@@ -1775,6 +1776,16 @@ const UI = {
document.getElementById('pve_commands_button').classList.remove("noVNC_selected");
},
@@ -42,10 +42,10 @@ index f2f194c..f32b67c 100644
* /PVE
* ==============
diff --git a/core/rfb.js b/core/rfb.js
-index f2deb0e..37ba099 100644
+index e3266cc..23b436c 100644
--- a/core/rfb.js
+++ b/core/rfb.js
-@@ -2873,6 +2873,16 @@ export default class RFB extends EventTargetMixin {
+@@ -3014,6 +3014,16 @@ export default class RFB extends EventTargetMixin {
this._updateClip();
this._updateScale();
@@ -62,3 +62,6 @@ index f2deb0e..37ba099 100644
this._updateContinuousUpdates();
// Keep this size until browser client size changes
+--
+2.39.5
+
diff --git a/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch b/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch
index 5cf14e5..b51cddc 100644
--- a/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch
+++ b/debian/patches/0003-change-scaling-when-toggling-fullscreen.patch
@@ -12,10 +12,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 11 insertions(+)
diff --git a/app/ui.js b/app/ui.js
-index f32b67c..04a5a2a 100644
+index 3726c8c..5773ddf 100644
--- a/app/ui.js
+++ b/app/ui.js
-@@ -1294,6 +1294,13 @@ const UI = {
+@@ -1334,6 +1334,13 @@ const UI = {
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
}
@@ -29,7 +29,7 @@ index f32b67c..04a5a2a 100644
} else {
if (document.documentElement.requestFullscreen) {
document.documentElement.requestFullscreen();
-@@ -1304,7 +1311,11 @@ const UI = {
+@@ -1344,7 +1351,11 @@ const UI = {
} else if (document.body.msRequestFullscreen) {
document.body.msRequestFullscreen();
}
@@ -41,3 +41,6 @@ index f32b67c..04a5a2a 100644
UI.updateFullscreenButton();
},
+--
+2.39.5
+
diff --git a/debian/patches/0004-add-pve-style.patch b/debian/patches/0004-add-pve-style.patch
index acdfab9..6aeeac1 100644
--- a/debian/patches/0004-add-pve-style.patch
+++ b/debian/patches/0004-add-pve-style.patch
@@ -10,17 +10,17 @@ and fix the z-index of the connect overlay
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
- app/styles/pve.css | 42 ++++++++++++++++++++++++++++++++++++++++++
- vnc.html | 5 +++--
- 2 files changed, 45 insertions(+), 2 deletions(-)
+ app/styles/pve.css | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ vnc.html | 1 +
+ 2 files changed, 47 insertions(+)
create mode 100644 app/styles/pve.css
diff --git a/app/styles/pve.css b/app/styles/pve.css
new file mode 100644
-index 0000000..eaeb5cb
+index 0000000..a312a95
--- /dev/null
+++ b/app/styles/pve.css
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,46 @@
+/*
+ * noVNC black CSS
+ * Copyright (C) 2012 Joel Martin
@@ -63,19 +63,22 @@ index 0000000..eaeb5cb
+ border-color: rgba(0, 0, 0, 0.4);
+ background: #5BA8DF;
+}
++
++input:not(.toggle), button, div:not(#noVNC_container) {
++ border-radius: unset !important;
++}
diff --git a/vnc.html b/vnc.html
-index e8a982f..b54fe41 100644
+index 458f4d0..2a50991 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -36,8 +36,9 @@
- <link rel="apple-touch-icon" sizes="180x180" type="image/png" href="app/images/icons/novnc-ios-180.png">
-
- <!-- Stylesheets -->
-- <link rel="stylesheet" href="app/styles/base.css">
-- <link rel="stylesheet" href="app/styles/input.css">
-+ <link rel="stylesheet" href="app/styles/base.css" />
-+ <link rel="stylesheet" href="app/styles/input.css" />
+@@ -40,6 +40,7 @@
+ <link rel="stylesheet" href="app/styles/constants.css">
+ <link rel="stylesheet" href="app/styles/base.css">
+ <link rel="stylesheet" href="app/styles/input.css">
+ <link rel="stylesheet" href="/novnc/app/styles/pve.css" />
<!-- Images that will later appear via CSS -->
<link rel="preload" as="image" href="app/images/info.svg">
+--
+2.39.5
+
diff --git a/debian/patches/0005-remove-vnc-logos.patch b/debian/patches/0005-remove-vnc-logos.patch
index 9395183..98a4878 100644
--- a/debian/patches/0005-remove-vnc-logos.patch
+++ b/debian/patches/0005-remove-vnc-logos.patch
@@ -7,19 +7,19 @@ to show the pve icon instead
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
- vnc.html | 22 ++++------------------
- 1 file changed, 4 insertions(+), 18 deletions(-)
+ vnc.html | 21 +++------------------
+ 1 file changed, 3 insertions(+), 18 deletions(-)
diff --git a/vnc.html b/vnc.html
-index b54fe41..5c5549d 100644
+index 2a50991..f5e4a81 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -15,26 +15,12 @@
+@@ -15,27 +15,12 @@
-->
<title>noVNC</title>
- <link rel="icon" type="image/x-icon" href="app/images/icons/novnc.ico">
-+ <meta charset="utf-8">
+ <meta name="theme-color" content="#313131">
<!-- Apple iOS Safari settings -->
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
@@ -43,5 +43,8 @@ index b54fe41..5c5549d 100644
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<!-- Stylesheets -->
- <link rel="stylesheet" href="app/styles/base.css" />
- <link rel="stylesheet" href="app/styles/input.css" />
+ <link rel="stylesheet" href="app/styles/constants.css">
+ <link rel="stylesheet" href="app/styles/base.css">
+--
+2.39.5
+
diff --git a/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch b/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch
index 17586d7..680f6ea 100644
--- a/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch
+++ b/debian/patches/0006-change-source-directory-for-fetching-images-js-files.patch
@@ -9,81 +9,105 @@ also change the directory in the build script
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/ui.js | 4 ++--
- vnc.html | 54 +++++++++++++++++++++++++++---------------------------
- 2 files changed, 29 insertions(+), 29 deletions(-)
+ vnc.html | 63 +++++++++++++++++++++++++++----------------------------
+ 2 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/app/ui.js b/app/ui.js
-index 04a5a2a..18bac4b 100644
+index 5773ddf..01c7c77 100644
--- a/app/ui.js
+++ b/app/ui.js
-@@ -73,7 +73,7 @@ const UI = {
+@@ -58,7 +58,7 @@ const UI = {
+
+ // Set up translations
+ try {
+- await l10n.setup(LINGUAS, "app/locale/");
++ await l10n.setup(LINGUAS, "/novnc/app/locale/");
+ } catch (err) {
+ Log.Error("Failed to load translations: " + err);
}
+@@ -89,7 +89,7 @@ const UI = {
// Try to fetch version number
-- fetch('./package.json')
-+ fetch('/novnc/package.json')
- .then((response) => {
- if (!response.ok) {
- throw Error("" + response.status + " " + response.statusText);
-@@ -1833,7 +1833,7 @@ const UI = {
-
- // Set up translations
- const LINGUAS = ["cs", "de", "el", "es", "fr", "it", "ja", "ko", "nl", "pl", "pt_BR", "ru", "sv", "tr", "zh_CN", "zh_TW"];
--l10n.setup(LINGUAS, "app/locale/")
-+l10n.setup(LINGUAS, "/novnc/app/locale/")
- .catch(err => Log.Error("Failed to load translations: " + err))
- .then(UI.prime);
-
+ try {
+- let response = await fetch('./package.json');
++ let response = await fetch('/novnc/package.json');
+ if (!response.ok) {
+ throw Error("" + response.status + " " + response.statusText);
+ }
diff --git a/vnc.html b/vnc.html
-index 5c5549d..f081aee 100644
+index f5e4a81..9f4fac0 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -22,17 +22,17 @@
+@@ -22,21 +22,20 @@
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<!-- Stylesheets -->
-- <link rel="stylesheet" href="app/styles/base.css" />
-- <link rel="stylesheet" href="app/styles/input.css" />
-+ <link rel="stylesheet" href="/novnc/app/styles/base.css" />
-+ <link rel="stylesheet" href="/novnc/app/styles/input.css" />
+- <link rel="stylesheet" href="app/styles/constants.css">
+- <link rel="stylesheet" href="app/styles/base.css">
+- <link rel="stylesheet" href="app/styles/input.css">
++ <link rel="stylesheet" href="/novnc/app/styles/constants.css">
++ <link rel="stylesheet" href="/novnc/app/styles/base.css">
++ <link rel="stylesheet" href="/novnc/app/styles/input.css">
<link rel="stylesheet" href="/novnc/app/styles/pve.css" />
<!-- Images that will later appear via CSS -->
- <link rel="preload" as="image" href="app/images/info.svg">
- <link rel="preload" as="image" href="app/images/error.svg">
- <link rel="preload" as="image" href="app/images/warning.svg">
+-
+- <script type="module" crossorigin="anonymous" src="app/error-handler.js"></script>
+ <link rel="preload" as="image" href="/novnc/app/images/info.svg">
+ <link rel="preload" as="image" href="/novnc/app/images/error.svg">
+ <link rel="preload" as="image" href="/novnc/app/images/warning.svg">
-- <script type="module" crossorigin="anonymous" src="app/error-handler.js"></script>
-- <script type="module" crossorigin="anonymous" src="app/ui.js"></script>
+ <script type="module" crossorigin="anonymous" src="/novnc/app/error-handler.js"></script>
-+ <script type="module" crossorigin="anonymous" src="/novnc/app/ui.js"></script>
- </head>
+ <script type="module">
+- import UI from "./app/ui.js";
+- import * as Log from './core/util/logging.js';
++ import UI from "/novnc/app/ui.js";
++ import * as Log from '/novnc/core/util/logging.js';
+
+ let response;
+
+@@ -48,7 +47,7 @@
+ // cannot change.
+
+ try {
+- response = await fetch('./defaults.json');
++ response = await fetch('/novnc/defaults.json');
+ if (!response.ok) {
+ throw Error("" + response.status + " " + response.statusText);
+ }
+@@ -59,7 +58,7 @@
+ }
- <body>
-@@ -58,51 +58,51 @@
+ try {
+- response = await fetch('./mandatory.json');
++ response = await fetch('/novnc/mandatory.json');
+ if (!response.ok) {
+ throw Error("" + response.status + " " + response.statusText);
+ }
+@@ -108,51 +107,51 @@
<hr>
<!-- Drag/Pan the viewport -->
- <input type="image" alt="Drag" src="app/images/drag.svg"
+ <input type="image" alt="Drag" src="/novnc/app/images/drag.svg"
id="noVNC_view_drag_button" class="noVNC_button noVNC_hidden"
- title="Move/Drag Viewport">
+ title="Move/Drag viewport">
- <!--noVNC Touch Device only buttons-->
+ <!--noVNC touch device only buttons-->
<div id="noVNC_mobile_buttons">
- <input type="image" alt="Keyboard" src="app/images/keyboard.svg"
+ <input type="image" alt="Keyboard" src="/novnc/app/images/keyboard.svg"
- id="noVNC_keyboard_button" class="noVNC_button" title="Show Keyboard">
+ id="noVNC_keyboard_button" class="noVNC_button" title="Show keyboard">
</div>
<!-- Extra manual keys -->
- <input type="image" alt="Extra keys" src="app/images/toggleextrakeys.svg"
+ <input type="image" alt="Extra keys" src="/novnc/app/images/toggleextrakeys.svg"
id="noVNC_toggle_extra_keys_button" class="noVNC_button"
- title="Show Extra Keys">
+ title="Show extra keys">
<div class="noVNC_vcenter">
<div id="noVNC_modifiers" class="noVNC_panel">
- <input type="image" alt="Ctrl" src="app/images/ctrl.svg"
@@ -126,7 +150,7 @@ index 5c5549d..f081aee 100644
</div>
<input type="button" id="noVNC_shutdown_button" value="Shutdown">
<input type="button" id="noVNC_reboot_button" value="Reboot">
-@@ -111,13 +111,13 @@
+@@ -161,13 +160,13 @@
</div>
<!-- Clipboard -->
@@ -142,14 +166,14 @@ index 5c5549d..f081aee 100644
</div>
<p class="noVNC_subheading">
Edit clipboard content in the textarea below.
-@@ -127,18 +127,18 @@
+@@ -177,18 +176,18 @@
</div>
<!-- Toggle fullscreen -->
-- <input type="image" alt="Full Screen" src="app/images/fullscreen.svg"
-+ <input type="image" alt="Fullscreen" src="/novnc/app/images/fullscreen.svg"
+- <input type="image" alt="Full screen" src="app/images/fullscreen.svg"
++ <input type="image" alt="Full screen" src="/novnc/app/images/fullscreen.svg"
id="noVNC_fullscreen_button" class="noVNC_button noVNC_hidden"
- title="Full Screen">
+ title="Full screen">
<!-- Settings -->
- <input type="image" alt="Settings" src="app/images/settings.svg"
@@ -164,16 +188,16 @@ index 5c5549d..f081aee 100644
</div>
<ul>
<li style="display:none;">
-@@ -230,7 +230,7 @@
+@@ -308,7 +307,7 @@
</div>
- <!-- Connection Controls -->
+ <!-- Connection controls -->
- <input type="image" alt="Disconnect" src="app/images/disconnect.svg"
+ <input type="image" alt="Disconnect" src="/novnc/app/images/disconnect.svg"
id="noVNC_disconnect_button" class="noVNC_button"
title="Disconnect">
-@@ -253,7 +253,7 @@
+@@ -331,7 +330,7 @@
<p class="noVNC_logo" translate="no"><span>no</span>VNC</p>
<div>
<button id="noVNC_connect_button">
@@ -182,7 +206,7 @@ index 5c5549d..f081aee 100644
</button>
</div>
</div>
-@@ -323,8 +323,8 @@
+@@ -401,8 +400,8 @@
</div>
<audio id="noVNC_bell">
@@ -193,3 +217,6 @@ index 5c5549d..f081aee 100644
</audio>
</body>
</html>
+--
+2.39.5
+
diff --git a/debian/patches/0007-add-pve-vnc-commands.patch b/debian/patches/0007-add-pve-vnc-commands.patch
index d8433aa..ea01382 100644
--- a/debian/patches/0007-add-pve-vnc-commands.patch
+++ b/debian/patches/0007-add-pve-vnc-commands.patch
@@ -9,10 +9,10 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 21 insertions(+)
diff --git a/vnc.html b/vnc.html
-index f081aee..9281009 100644
+index 9f4fac0..c9e166c 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -229,6 +229,27 @@
+@@ -306,6 +306,27 @@
</div>
</div>
@@ -37,6 +37,9 @@ index f081aee..9281009 100644
+ </div>
+
+
- <!-- Connection Controls -->
+ <!-- Connection controls -->
<input type="image" alt="Disconnect" src="/novnc/app/images/disconnect.svg"
id="noVNC_disconnect_button" class="noVNC_button"
+--
+2.39.5
+
diff --git a/debian/patches/0008-add-replaceable-snippets-in-vnc.html.patch b/debian/patches/0008-add-replaceable-snippets-in-vnc.html.patch
index dece882..0b171ff 100644
--- a/debian/patches/0008-add-replaceable-snippets-in-vnc.html.patch
+++ b/debian/patches/0008-add-replaceable-snippets-in-vnc.html.patch
@@ -11,7 +11,7 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/vnc.html b/vnc.html
-index 9281009..4ce107a 100644
+index c9e166c..3c40c49 100644
--- a/vnc.html
+++ b/vnc.html
@@ -13,7 +13,7 @@
@@ -21,9 +21,9 @@ index 9281009..4ce107a 100644
- <title>noVNC</title>
+ <title>[% nodename %] - Proxmox Console</title>
- <meta charset="utf-8">
+ <meta name="theme-color" content="#313131">
-@@ -32,6 +32,12 @@
+@@ -33,6 +33,12 @@
<link rel="preload" as="image" href="/novnc/app/images/warning.svg">
<script type="module" crossorigin="anonymous" src="/novnc/app/error-handler.js"></script>
@@ -33,6 +33,9 @@ index 9281009..4ce107a 100644
+ PVE.CSRFPreventionToken = '[% token %]';
+ INCLUDE_URI='/novnc/include';
+ </script>
- <script type="module" crossorigin="anonymous" src="/novnc/app/ui.js"></script>
- </head>
-
+ <script type="module">
+ import UI from "/novnc/app/ui.js";
+ import * as Log from '/novnc/core/util/logging.js';
+--
+2.39.5
+
diff --git a/debian/patches/0009-decrease-animation-time.patch b/debian/patches/0009-decrease-animation-time.patch
index 5d76932..c5ad05a 100644
--- a/debian/patches/0009-decrease-animation-time.patch
+++ b/debian/patches/0009-decrease-animation-time.patch
@@ -7,64 +7,76 @@ because 0.5s is too long
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
- app/styles/base.css | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
+ app/styles/base.css | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/app/styles/base.css b/app/styles/base.css
-index f83ad4b..fd1a66e 100644
+index 87bfb45..6e9b25d 100644
--- a/app/styles/base.css
+++ b/app/styles/base.css
-@@ -222,7 +222,7 @@ html {
- position: fixed;
- z-index: 10;
+@@ -223,7 +223,7 @@ html {
+ position: fixed;
+ z-index: 10;
-- transition: 0.5s ease-in-out;
-+ transition: 0.1s ease-in-out;
+- transition: 0.5s ease-in-out;
++ transition: 0.1s ease-in-out;
- /* Edge misrenders animations wihthout this */
- transform: translateX(0);
-@@ -239,7 +239,7 @@ html {
- position: relative;
- left: -100%;
+ /* Edge misrenders animations wihthout this */
+ transform: translateX(0);
+@@ -240,7 +240,7 @@ html {
+ position: relative;
+ left: -100%;
-- transition: 0.5s ease-in-out;
-+ transition: 0.1s ease-in-out;
+- transition: 0.5s ease-in-out;
++ transition: 0.1s ease-in-out;
- background-color: rgb(110, 132, 163);
- border-radius: 0 10px 10px 0;
-@@ -260,7 +260,7 @@ html {
- height: 100%;
- width: 30px;
- left: -30px;
-- transition: box-shadow 0.5s ease-in-out;
-+ transition: box-shadow 0.1s ease-in-out;
+ background-color: var(--novnc-blue);
+ border-radius: 0 12px 12px 0;
+@@ -261,7 +261,7 @@ html {
+ height: 100%;
+ width: 30px;
+ left: -30px;
+- transition: box-shadow 0.5s ease-in-out;
++ transition: box-shadow 0.1s ease-in-out;
}
#noVNC_control_bar.noVNC_open::before {
- box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5);
-@@ -294,7 +294,7 @@ html {
+ box-shadow: 6px 6px 0px rgba(0, 0, 0, 0.5);
+@@ -295,7 +295,7 @@ html {
}
#noVNC_control_bar_handle:after {
- content: "";
-- transition: transform 0.5s ease-in-out;
-+ transition: transform 0.1s ease-in-out;
- background: url("../images/handle.svg");
- position: absolute;
- top: 22px; /* (50px-6px)/2 */
-@@ -430,7 +430,7 @@ html {
+ content: "";
+- transition: transform 0.5s ease-in-out;
++ transition: transform 0.1s ease-in-out;
+ background: url("../images/handle.svg");
+ position: absolute;
+ top: 22px; /* (50px-6px)/2 */
+@@ -407,7 +407,7 @@ html {
.noVNC_panel {
- transform: translateX(25px);
+ transform: translateX(25px);
-- transition: 0.5s ease-in-out;
-+ transition: 0.25s ease-in-out;
+- transition: 0.5s ease-in-out;
++ transition: 0.25s ease-in-out;
- box-sizing: border-box; /* so max-width don't have to care about padding */
- max-width: calc(100vw - 75px - 25px); /* minus left and right margins */
-@@ -649,7 +649,7 @@ html {
+ box-sizing: border-box; /* so max-width don't have to care about padding */
+ max-width: calc(100vw - 75px - 25px); /* minus left and right margins */
+@@ -658,7 +658,7 @@ html {
- cursor: pointer;
+ cursor: pointer;
-- transition: 0.5s ease-in-out;
-+ transition: 0.1s ease-in-out;
+- transition: 0.5s ease-in-out;
++ transition: 0.1s ease-in-out;
- visibility: hidden;
- opacity: 0;
+ visibility: hidden;
+ opacity: 0;
+@@ -817,7 +817,7 @@ html {
+
+ /* Transition screen */
+ #noVNC_transition {
+- transition: 0.5s ease-in-out;
++ transition: 0.1s ease-in-out;
+
+ display: flex;
+ opacity: 0;
+--
+2.39.5
+
diff --git a/debian/patches/0010-use-only-app.js.patch b/debian/patches/0010-use-only-app.js.patch
index 5518914..5e64eb8 100644
--- a/debian/patches/0010-use-only-app.js.patch
+++ b/debian/patches/0010-use-only-app.js.patch
@@ -3,24 +3,75 @@ From: Dominik Csapak <d.csapak@proxmox.com>
Date: Tue, 16 May 2017 10:36:15 +0200
Subject: [PATCH] use only app.js
-As PVE now uses the commonjs version, there's only need to fetch the
-generated app.js
+Since we bundle the code into a single ES Module, use that only.
+Also remove the default/mandatory settings loading code, as we do
+that ourselves directly in the code.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
- vnc.html | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ vnc.html | 49 ++-----------------------------------------------
+ 1 file changed, 2 insertions(+), 47 deletions(-)
diff --git a/vnc.html b/vnc.html
-index 4ce107a..eed474f 100644
+index 3c40c49..8ff6739 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -38,7 +38,7 @@
- PVE.CSRFPreventionToken = '[% token %]';
+@@ -40,53 +40,8 @@
INCLUDE_URI='/novnc/include';
</script>
-- <script type="module" crossorigin="anonymous" src="/novnc/app/ui.js"></script>
-+ <script crossorigin=anonymous" src="/novnc/app.js"></script>
+ <script type="module">
+- import UI from "/novnc/app/ui.js";
+- import * as Log from '/novnc/core/util/logging.js';
+-
+- let response;
+-
+- let defaults = {};
+- let mandatory = {};
+-
+- // Default settings will be loaded from defaults.json. Mandatory
+- // settings will be loaded from mandatory.json, which the user
+- // cannot change.
+-
+- try {
+- response = await fetch('/novnc/defaults.json');
+- if (!response.ok) {
+- throw Error("" + response.status + " " + response.statusText);
+- }
+-
+- defaults = await response.json();
+- } catch (err) {
+- Log.Error("Couldn't fetch defaults.json: " + err);
+- }
+-
+- try {
+- response = await fetch('/novnc/mandatory.json');
+- if (!response.ok) {
+- throw Error("" + response.status + " " + response.statusText);
+- }
+-
+- mandatory = await response.json();
+- } catch (err) {
+- Log.Error("Couldn't fetch mandatory.json: " + err);
+- }
+-
+- // You can also override any defaults you need here:
+- //
+- // defaults['host'] = 'vnc.example.com';
+-
+- // Or force a specific setting, preventing the user from
+- // changing it:
+- //
+- // mandatory['view_only'] = true;
+-
+- // See docs/EMBEDDING.md for a list of possible settings.
+-
+- UI.start({ settings: { defaults: defaults,
+- mandatory: mandatory } });
++ import UI from "/novnc/app.js";
++ UI.start({ settings: { defaults: {}, mandatory: {} } });
+ </script>
</head>
- <body>
+--
+2.39.5
+
diff --git a/debian/patches/0011-add-localCursor-setting-to-rfb.patch b/debian/patches/0011-add-localCursor-setting-to-rfb.patch
index c090169..62068c6 100644
--- a/debian/patches/0011-add-localCursor-setting-to-rfb.patch
+++ b/debian/patches/0011-add-localCursor-setting-to-rfb.patch
@@ -11,22 +11,22 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
app/ui.js | 10 ++++++++++
core/rfb.js | 10 ++++++++++
core/util/cursor.js | 15 ++++++++++++++-
- vnc.html | 3 +++
- 4 files changed, 37 insertions(+), 1 deletion(-)
+ vnc.html | 7 +++++++
+ 4 files changed, 41 insertions(+), 1 deletion(-)
diff --git a/app/ui.js b/app/ui.js
-index 18bac4b..e70e922 100644
+index 01c7c77..0434fbc 100644
--- a/app/ui.js
+++ b/app/ui.js
-@@ -180,6 +180,7 @@ const UI = {
+@@ -192,6 +192,7 @@ const UI = {
UI.initSetting('quality', 6);
UI.initSetting('compression', 2);
UI.initSetting('autoresize', true);
+ UI.initSetting('local_cursor', true);
UI.initSetting('shared', true);
+ UI.initSetting('bell', 'on');
UI.initSetting('view_only', false);
- UI.initSetting('show_dot', false);
-@@ -372,6 +373,8 @@ const UI = {
+@@ -383,6 +384,8 @@ const UI = {
UI.addSettingChangeHandler('view_only', UI.updateViewOnly);
UI.addSettingChangeHandler('show_dot');
UI.addSettingChangeHandler('show_dot', UI.updateShowDotCursor);
@@ -35,7 +35,7 @@ index 18bac4b..e70e922 100644
UI.addSettingChangeHandler('host');
UI.addSettingChangeHandler('port');
UI.addSettingChangeHandler('path');
-@@ -1078,6 +1081,7 @@ const UI = {
+@@ -1118,6 +1121,7 @@ const UI = {
UI.rfb.addEventListener("desktopname", UI.updateDesktopName);
UI.rfb.addEventListener("fbresize", UI.updateSessionSize);
UI.rfb.clipViewport = UI.getSetting('view_clip');
@@ -43,7 +43,7 @@ index 18bac4b..e70e922 100644
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
UI.rfb.qualityLevel = parseInt(UI.getSetting('quality'));
-@@ -1762,6 +1766,12 @@ const UI = {
+@@ -1802,6 +1806,12 @@ const UI = {
* ==============
* MISC
* ------v------*/
@@ -57,10 +57,10 @@ index 18bac4b..e70e922 100644
if (!UI.rfb) return;
UI.rfb.viewOnly = UI.getSetting('view_only');
diff --git a/core/rfb.js b/core/rfb.js
-index 37ba099..0f31079 100644
+index 23b436c..8260929 100644
--- a/core/rfb.js
+++ b/core/rfb.js
-@@ -290,6 +290,7 @@ export default class RFB extends EventTargetMixin {
+@@ -298,6 +298,7 @@ export default class RFB extends EventTargetMixin {
this._clippingViewport = false;
this._scaleViewport = false;
this._resizeSession = false;
@@ -68,7 +68,7 @@ index 37ba099..0f31079 100644
this._showDotCursor = false;
if (options.showDotCursor !== undefined) {
-@@ -360,6 +361,15 @@ export default class RFB extends EventTargetMixin {
+@@ -368,6 +369,15 @@ export default class RFB extends EventTargetMixin {
}
}
@@ -85,7 +85,7 @@ index 37ba099..0f31079 100644
set showDotCursor(show) {
this._showDotCursor = show;
diff --git a/core/util/cursor.js b/core/util/cursor.js
-index 20e75f1..91763a5 100644
+index 6d689e7..4bb5547 100644
--- a/core/util/cursor.js
+++ b/core/util/cursor.js
@@ -12,6 +12,8 @@ export default class Cursor {
@@ -137,16 +137,23 @@ index 20e75f1..91763a5 100644
+
}
diff --git a/vnc.html b/vnc.html
-index eed474f..b80f3c5 100644
+index 8ff6739..f2c29af 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -157,6 +157,9 @@
- <li>
- <label><input id="noVNC_setting_view_clip" type="checkbox"> Clip to Window</label>
+@@ -173,6 +173,13 @@
+ Clip to window
+ </label>
</li>
+ <li>
-+ <label><input id="noVNC_setting_local_cursor" type="checkbox" /> Local Cursor</label>
++ <label>
++ <input id="noVNC_setting_local_cursor" type="checkbox"
++ class="toggle">
++ Local Cursor
++ </label>
+ </li>
<li>
- <label><input id="noVNC_setting_autoresize" type="checkbox" /> Autoresize Window</label>
- </li>
+ <label>
+ <input id="noVNC_setting_autoresize" type="checkbox"
+--
+2.39.5
+
diff --git a/debian/patches/0012-pass-custom-command-to-vnc.patch b/debian/patches/0012-pass-custom-command-to-vnc.patch
index a0989d2..4c1a190 100644
--- a/debian/patches/0012-pass-custom-command-to-vnc.patch
+++ b/debian/patches/0012-pass-custom-command-to-vnc.patch
@@ -34,3 +34,6 @@ index 1a062ad..8ce258c 100644
break;
default:
throw 'implement me';
+--
+2.39.5
+
diff --git a/debian/patches/0013-Revert-Remove-the-default-value-of-wsProtocols.patch b/debian/patches/0013-Revert-Remove-the-default-value-of-wsProtocols.patch
index 0d82f09..57c6f74 100644
--- a/debian/patches/0013-Revert-Remove-the-default-value-of-wsProtocols.patch
+++ b/debian/patches/0013-Revert-Remove-the-default-value-of-wsProtocols.patch
@@ -9,16 +9,17 @@ We very-much depend on the WS protocol default of 'binary', for now
lets just revert it here, albeit it could be externally set..
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
+Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
core/rfb.js | 3 ++-
docs/API.md | 3 +--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/core/rfb.js b/core/rfb.js
-index 0f31079..22f2966 100644
+index 8260929..945829b 100644
--- a/core/rfb.js
+++ b/core/rfb.js
-@@ -116,7 +116,8 @@ export default class RFB extends EventTargetMixin {
+@@ -118,7 +118,8 @@ export default class RFB extends EventTargetMixin {
this._rfbCredentials = options.credentials || {};
this._shared = 'shared' in options ? !!options.shared : true;
this._repeaterID = options.repeaterID || '';
@@ -42,3 +43,6 @@ index eb3ec33..6616048 100644
#### bell
+--
+2.39.5
+
diff --git a/debian/patches/0014-avoid-passing-deprecated-upgrade-parameter.patch b/debian/patches/0014-avoid-passing-deprecated-upgrade-parameter.patch
index d9dc07d..5f708c4 100644
--- a/debian/patches/0014-avoid-passing-deprecated-upgrade-parameter.patch
+++ b/debian/patches/0014-avoid-passing-deprecated-upgrade-parameter.patch
@@ -4,6 +4,7 @@ Date: Fri, 4 Jun 2021 08:27:23 +0200
Subject: [PATCH] avoid passing deprecated 'upgrade' parameter
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
+Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
app/pve.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -21,3 +22,6 @@ index 8ce258c..873c7b5 100644
title = 'System upgrade on node ' + this.nodename;
break;
case 'cmd':
+--
+2.39.5
+
diff --git a/debian/patches/0015-create-own-class-for-hidden-buttons.patch b/debian/patches/0015-create-own-class-for-hidden-buttons.patch
index 333c074..f267237 100644
--- a/debian/patches/0015-create-own-class-for-hidden-buttons.patch
+++ b/debian/patches/0015-create-own-class-for-hidden-buttons.patch
@@ -45,14 +45,17 @@ index 873c7b5..f87f01b 100644
});
},
diff --git a/app/styles/pve.css b/app/styles/pve.css
-index eaeb5cb..6376593 100644
+index a312a95..6762325 100644
--- a/app/styles/pve.css
+++ b/app/styles/pve.css
-@@ -40,3 +40,7 @@
- border-color: rgba(0, 0, 0, 0.4);
- background: #5BA8DF;
+@@ -44,3 +44,7 @@
+ input:not(.toggle), button, div:not(#noVNC_container) {
+ border-radius: unset !important;
}
+
+.noVNC_button.pve_hidden {
+ display: none !important;
+}
+--
+2.39.5
+
diff --git a/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch b/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
index 27d745e..b1157d9 100644
--- a/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
+++ b/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
@@ -37,3 +37,6 @@ index f87f01b..368f23a 100644
// add command logic
var commandArray = [
{ cmd: 'start', kvm: 1, lxc: 1},
+--
+2.39.5
+
diff --git a/debian/patches/0017-make-error-hideable.patch b/debian/patches/0017-make-error-hideable.patch
index f45c568..946683b 100644
--- a/debian/patches/0017-make-error-hideable.patch
+++ b/debian/patches/0017-make-error-hideable.patch
@@ -11,7 +11,7 @@ Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/app/error-handler.js b/app/error-handler.js
-index 67b6372..b842909 100644
+index 5f6ffb6..bb233e5 100644
--- a/app/error-handler.js
+++ b/app/error-handler.js
@@ -6,6 +6,19 @@
@@ -46,3 +46,6 @@ index 67b6372..b842909 100644
} catch (exc) {
document.write("noVNC encountered an error.");
+--
+2.39.5
+
diff --git a/debian/patches/0018-show-start-button-on-not-running-vm-ct.patch b/debian/patches/0018-show-start-button-on-not-running-vm-ct.patch
index 34c0090..883e6bd 100644
--- a/debian/patches/0018-show-start-button-on-not-running-vm-ct.patch
+++ b/debian/patches/0018-show-start-button-on-not-running-vm-ct.patch
@@ -110,10 +110,10 @@ index 368f23a..d7fbdd3 100644
var me = this;
try {
diff --git a/app/styles/pve.css b/app/styles/pve.css
-index 6376593..1a0caad 100644
+index 6762325..0ce4ebe 100644
--- a/app/styles/pve.css
+++ b/app/styles/pve.css
-@@ -44,3 +44,61 @@
+@@ -48,3 +48,61 @@ input:not(.toggle), button, div:not(#noVNC_container) {
.noVNC_button.pve_hidden {
display: none !important;
}
@@ -176,10 +176,10 @@ index 6376593..1a0caad 100644
+ padding: 0 5px 2px 0;
+}
diff --git a/vnc.html b/vnc.html
-index b80f3c5..ca69f03 100644
+index f2c29af..4ecb6e0 100644
--- a/vnc.html
+++ b/vnc.html
-@@ -313,6 +313,15 @@
+@@ -349,6 +349,15 @@
</form></div>
</div>
@@ -192,6 +192,9 @@ index b80f3c5..ca69f03 100644
+ </div>
+ </div>
+
- <!-- Password Dialog -->
+ <!-- Password dialog -->
<div class="noVNC_center noVNC_connect_layer">
<div id="noVNC_credentials_dlg" class="noVNC_panel"><form>
+--
+2.39.5
+
diff --git a/debian/patches/0019-show-clipboard-button.patch b/debian/patches/0019-show-clipboard-button.patch
index f7db533..3a746b1 100644
--- a/debian/patches/0019-show-clipboard-button.patch
+++ b/debian/patches/0019-show-clipboard-button.patch
@@ -26,3 +26,6 @@ index d7fbdd3..6e69fb6 100644
},
failure: function(msg, code) {
if (code === 403) {
+--
+2.39.5
+
diff --git a/debian/rules b/debian/rules
index 486a68e..14a4795 100755
--- a/debian/rules
+++ b/debian/rules
@@ -11,7 +11,7 @@ export DEB_BUILD_HARDENING=1
dh ${@}
override_dh_auto_build:
- esbuild --bundle app/ui.js > app.js
+ esbuild --bundle --format=esm app/ui.js > app.js
dh_auto_build
override_dh_install:
diff --git a/novnc b/novnc
index 7fcf9dc..a8dfd6a 160000
--- a/novnc
+++ b/novnc
@@ -1 +1 @@
-Subproject commit 7fcf9dcfe0cc5b14e3841a4429dc091a6ffca861
+Subproject commit a8dfd6a3ea3c74244f5ebdaa5a7f1023007a7820
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] [PATCH novnc 2/2] fix broken 'extra keys' images
2025-03-24 15:03 [pve-devel] [PATCH novnc 0/2] upgrade novnc to 1.6.0 Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches " Dominik Csapak
@ 2025-03-24 15:03 ` Dominik Csapak
2025-03-24 17:28 ` [pve-devel] applied: [PATCH novnc 0/2] upgrade novnc to 1.6.0 Thomas Lamprecht
2 siblings, 0 replies; 4+ messages in thread
From: Dominik Csapak @ 2025-03-24 15:03 UTC (permalink / raw)
To: pve-devel
this is currently broken upstream and it's unclear if this is the
correct fix, so add it seperately until upstream fixes it themselves.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
| 32 +++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 33 insertions(+)
create mode 100644 debian/patches/0020-fix-broken-extra-keys.patch
--git a/debian/patches/0020-fix-broken-extra-keys.patch b/debian/patches/0020-fix-broken-extra-keys.patch
new file mode 100644
index 0000000..c072210
--- /dev/null
+++ b/debian/patches/0020-fix-broken-extra-keys.patch
@@ -0,0 +1,32 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Dominik Csapak <d.csapak@proxmox.com>
+Date: Mon, 24 Mar 2025 14:25:39 +0100
+Subject: [PATCH] fix broken extra keys
+
+commit:
+14f9ea5: ("Fix settings panel layout on small screens")
+
+changed the selector for the max-width calculation here to include the
+images type, but this was actually not intended.
+
+Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
+---
+ app/styles/base.css | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/app/styles/base.css b/app/styles/base.css
+index 6e9b25d..948074c 100644
+--- a/app/styles/base.css
++++ b/app/styles/base.css
+@@ -478,7 +478,7 @@ html {
+ .noVNC_panel button,
+ .noVNC_panel select,
+ .noVNC_panel textarea,
+-.noVNC_panel input:not([type=checkbox]):not([type=radio]) {
++.noVNC_panel input:not([type=checkbox]):not([type=radio]):not([type=image]) {
+ margin-left: 6px;
+ /* Prevent inputs in panels from being too wide */
+ max-width: calc(100% - 6px - var(--input-xpadding) * 2);
+--
+2.39.5
+
diff --git a/debian/patches/series b/debian/patches/series
index 212add7..66ee38e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -17,3 +17,4 @@
0017-make-error-hideable.patch
0018-show-start-button-on-not-running-vm-ct.patch
0019-show-clipboard-button.patch
+0020-fix-broken-extra-keys.patch
--
2.39.5
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
* [pve-devel] applied: [PATCH novnc 0/2] upgrade novnc to 1.6.0
2025-03-24 15:03 [pve-devel] [PATCH novnc 0/2] upgrade novnc to 1.6.0 Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches " Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 2/2] fix broken 'extra keys' images Dominik Csapak
@ 2025-03-24 17:28 ` Thomas Lamprecht
2 siblings, 0 replies; 4+ messages in thread
From: Thomas Lamprecht @ 2025-03-24 17:28 UTC (permalink / raw)
To: Proxmox VE development discussion, Dominik Csapak
Am 24.03.25 um 16:03 schrieb Dominik Csapak:
> First patch updates the submodule to point to the v1.6.0 tag, rebases
> the patches and changes some things (details in commit message)
>
> Second patch fixes a bug in current upstream where the 'extra key'
> images are not shown properly.
>
> I squashed a few things into the rebasing of the patches since it was
> often unpractical to have it as separate patches (we already have many)
> and I did not want to touch the same patches multiple times in one
> series.
>
> If wanted i can of course do either, put the changes in new patches, or
> as separate commits that touch the same patches.
>
> Dominik Csapak (2):
> upgrade noVNC and patches to 1.6.0
> fix broken 'extra keys' images
>
> .../0001-add-PVE-specific-JS-code.patch | 101 ++++++++--------
> ...002-add-custom-fbresize-event-on-rfb.patch | 13 +-
> ...nge-scaling-when-toggling-fullscreen.patch | 9 +-
> debian/patches/0004-add-pve-style.patch | 31 ++---
> debian/patches/0005-remove-vnc-logos.patch | 17 +--
> ...rectory-for-fetching-images-js-files.patch | 113 +++++++++++-------
> .../patches/0007-add-pve-vnc-commands.patch | 9 +-
> ...add-replaceable-snippets-in-vnc.html.patch | 15 ++-
> .../0009-decrease-animation-time.patch | 98 ++++++++-------
> debian/patches/0010-use-only-app.js.patch | 71 +++++++++--
> .../0011-add-localCursor-setting-to-rfb.patch | 45 ++++---
> .../0012-pass-custom-command-to-vnc.patch | 3 +
> ...ove-the-default-value-of-wsProtocols.patch | 8 +-
> ...passing-deprecated-upgrade-parameter.patch | 4 +
> ...-create-own-class-for-hidden-buttons.patch | 11 +-
> ...-button-on-isFullscreen-get-variable.patch | 3 +
> debian/patches/0017-make-error-hideable.patch | 5 +-
> ...ow-start-button-on-not-running-vm-ct.patch | 13 +-
> .../patches/0019-show-clipboard-button.patch | 3 +
> .../patches/0020-fix-broken-extra-keys.patch | 32 +++++
> debian/patches/series | 1 +
> debian/rules | 2 +-
> novnc | 2 +-
> 23 files changed, 395 insertions(+), 214 deletions(-)
> create mode 100644 debian/patches/0020-fix-broken-extra-keys.patch
>
applied series, but I split out overriding the border-radius style
into a separate commit so that it's more obvious, it's not directly
related to 1.6 version and might be a bit contended after all, thanks!
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-03-24 17:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-24 15:03 [pve-devel] [PATCH novnc 0/2] upgrade novnc to 1.6.0 Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 1/2] upgrade noVNC and patches " Dominik Csapak
2025-03-24 15:03 ` [pve-devel] [PATCH novnc 2/2] fix broken 'extra keys' images Dominik Csapak
2025-03-24 17:28 ` [pve-devel] applied: [PATCH novnc 0/2] upgrade novnc to 1.6.0 Thomas Lamprecht
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal