public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager 0/9] remove all blurry icons
@ 2025-08-26 14:58 Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 1/9] fix #6599: ui: use font-awesome hdd icon instead of png Shannon Sterz
                   ` (10 more replies)
  0 siblings, 11 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

this series aims to remove and replace all blurry icons. all png-based
icons have either been:

a) removed because they were not used throught the code-base in the
   first place
b) adapted into svg-based versions, which replace the png versions or
c) removed and the code was adapted to use the already existing
   font-awesome icons

the first patch in this series specifically addresses the icons
mentioned in the associated bug report [1]. the next seven patches
replace png icons and a gif spinner with svg version. the last patch
removes entirely unused icons.

i checked if the icons that are being removed were used outside of this
repository, but could not find any other users. so this should hopefully
not break anything.

[1]: https://bugzilla.proxmox.com/show_bug.cgi?id=6599

Shannon Sterz (9):
  fix #6599: ui: use font-awesome hdd icon instead of png
  ui: remove all occurences of icon-display.png
  ui: replace the gif spinner from extjs with an svg
  ui: use svg version of the noVnc icon
  ui: use svg version of the virt viewer icon
  ui: use svg version of xterm.js logo instead of a png
  ui: use the svg version for the cd icon in a storage's treelist
  ui: replace the ceph logo png with an svg version
  ui: remove unused png icons and their asset files

 www/css/ext6-pve.css                   |  91 +----
 www/images/Makefile                    |  81 +---
 www/images/blank.gif                   | Bin 49 -> 0 bytes
 www/images/cdrom.png                   | Bin 960 -> 0 bytes
 www/images/checked.png                 | Bin 478 -> 0 bytes
 www/images/computer-on.png             | Bin 585 -> 0 bytes
 www/images/computer-template.png       | Bin 994 -> 0 bytes
 www/images/computer.png                | Bin 723 -> 0 bytes
 www/images/connect_established.png     | Bin 704 -> 0 bytes
 www/images/display.png                 | Bin 741 -> 0 bytes
 www/images/drive-harddisk.png          | Bin 847 -> 0 bytes
 www/images/forward.png                 | Bin 641 -> 0 bytes
 www/images/gtk-stop.png                | Bin 664 -> 0 bytes
 www/images/icon-cd.png                 | Bin 309 -> 0 bytes
 www/images/icon-display.png            | Bin 221 -> 0 bytes
 www/images/icon-harddisk.png           | Bin 293 -> 0 bytes
 www/images/icon-keyboard.png           | Bin 309 -> 0 bytes
 www/images/icon-network.png            | Bin 245 -> 0 bytes
 www/images/icon-swap.png               | Bin 324 -> 0 bytes
 www/images/icon-usb.png                | Bin 367 -> 0 bytes
 www/images/keyboard.png                | Bin 590 -> 0 bytes
 www/images/logo-ceph.png               | Bin 488 -> 0 bytes
 www/images/logo-ceph.svg               |  71 ++++
 www/images/lxc-containers-logo-off.xcf | Bin 42654 -> 0 bytes
 www/images/lxc-off.png                 | Bin 891 -> 0 bytes
 www/images/lxc-on.png                  | Bin 872 -> 0 bytes
 www/images/memory.png                  | Bin 349 -> 0 bytes
 www/images/network-server-off.png      | Bin 833 -> 0 bytes
 www/images/network-server-on.png       | Bin 845 -> 0 bytes
 www/images/network-server.png          | Bin 832 -> 0 bytes
 www/images/network.png                 | Bin 703 -> 0 bytes
 www/images/novnc.png                   | Bin 453 -> 0 bytes
 www/images/novnc.svg                   | 163 +++++++++
 www/images/openvz-off.png              | Bin 516 -> 0 bytes
 www/images/openvz-on.png               | Bin 527 -> 0 bytes
 www/images/processor.png               | Bin 635 -> 0 bytes
 www/images/snapshot.png                | Bin 570 -> 0 bytes
 www/images/spinner.svg                 |  24 ++
 www/images/start.png                   | Bin 549 -> 0 bytes
 www/images/stop.png                    | Bin 370 -> 0 bytes
 www/images/swap.png                    | Bin 926 -> 0 bytes
 www/images/tigervnc.png                | Bin 793 -> 0 bytes
 www/images/unchecked.png               | Bin 322 -> 0 bytes
 www/images/virt-viewer.png             | Bin 662 -> 0 bytes
 www/images/virt-viewer.svg             | 488 +++++++++++++++++++++++++
 www/images/xtermjs.png                 | Bin 729 -> 0 bytes
 www/images/xtermjs.svg                 |  11 +
 www/manager6/dc/Tasks.js               |   6 +-
 www/manager6/grid/PoolMembers.js       |   4 +-
 www/manager6/lxc/Resources.js          |   2 +-
 www/manager6/tree/ResourceTree.js      |   1 -
 51 files changed, 793 insertions(+), 149 deletions(-)
 delete mode 100644 www/images/blank.gif
 delete mode 100644 www/images/cdrom.png
 delete mode 100644 www/images/checked.png
 delete mode 100755 www/images/computer-on.png
 delete mode 100644 www/images/computer-template.png
 delete mode 100644 www/images/computer.png
 delete mode 100644 www/images/connect_established.png
 delete mode 100644 www/images/display.png
 delete mode 100644 www/images/drive-harddisk.png
 delete mode 100644 www/images/forward.png
 delete mode 100644 www/images/gtk-stop.png
 delete mode 100644 www/images/icon-cd.png
 delete mode 100644 www/images/icon-display.png
 delete mode 100644 www/images/icon-harddisk.png
 delete mode 100644 www/images/icon-keyboard.png
 delete mode 100644 www/images/icon-network.png
 delete mode 100644 www/images/icon-swap.png
 delete mode 100644 www/images/icon-usb.png
 delete mode 100644 www/images/keyboard.png
 delete mode 100644 www/images/logo-ceph.png
 create mode 100644 www/images/logo-ceph.svg
 delete mode 100755 www/images/lxc-containers-logo-off.xcf
 delete mode 100644 www/images/lxc-off.png
 delete mode 100644 www/images/lxc-on.png
 delete mode 100644 www/images/memory.png
 delete mode 100644 www/images/network-server-off.png
 delete mode 100644 www/images/network-server-on.png
 delete mode 100644 www/images/network-server.png
 delete mode 100644 www/images/network.png
 delete mode 100644 www/images/novnc.png
 create mode 100644 www/images/novnc.svg
 delete mode 100755 www/images/openvz-off.png
 delete mode 100755 www/images/openvz-on.png
 delete mode 100644 www/images/processor.png
 delete mode 100644 www/images/snapshot.png
 create mode 100644 www/images/spinner.svg
 delete mode 100644 www/images/start.png
 delete mode 100644 www/images/stop.png
 delete mode 100644 www/images/swap.png
 delete mode 100644 www/images/tigervnc.png
 delete mode 100644 www/images/unchecked.png
 delete mode 100644 www/images/virt-viewer.png
 create mode 100644 www/images/virt-viewer.svg
 delete mode 100644 www/images/xtermjs.png
 create mode 100644 www/images/xtermjs.svg

--
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 1/9] fix #6599: ui: use font-awesome hdd icon instead of png
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 2/9] ui: remove all occurences of icon-display.png Shannon Sterz
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

previously we used custom png rendered for storages in the add menu of
a pool, as well as for mountpoints of containers. these appeared
blurry on high resolution displays and since they were just the same
as the font-awesome icons anyway, use those directly. the ui already
loads font-awesome regardless, so there are no down-sides here.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css             |   7 -------
 www/images/Makefile              |   8 +++-----
 www/images/icon-harddisk.png     | Bin 293 -> 0 bytes
 www/manager6/grid/PoolMembers.js |   2 +-
 www/manager6/lxc/Resources.js    |   2 +-
 5 files changed, 5 insertions(+), 14 deletions(-)
 delete mode 100644 www/images/icon-harddisk.png

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 192c82088..356427ead 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -313,7 +313,6 @@
 .pve-itype-icon-swap,
 .pve-itype-icon-node,
 .pve-itype-icon-node-running,
-.pve-itype-icon-storage,
 .pve-itype-icon-pool,
 .pve-itype-icon-itype,
 .pve-itype-icon-usb,
@@ -366,12 +365,6 @@
     background-image: url(../images/lxc-on.png);
 }
 
-.pve-itype-icon-storage,
-.x-tree-node-harddisk,
-.x-grid-tree-node-expanded .x-tree-node-harddisk {
-    background-image: url(../images/icon-harddisk.png);
-}
-
 .x-tree-node-snapshot,
 .x-grid-tree-node-expanded .x-tree-node-snapshot {
     background-image: url(../images/snapshot.png);
diff --git a/www/images/Makefile b/www/images/Makefile
index ad39c8c50..8072d0292 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -16,9 +16,8 @@ all:
 
 # icon-cd, icon-pci
 # are self made (sources as .xcf)
-# icon-swap, icon-display, icon-harddisk, icon-keyboard, icon-network, icon-usb, icon-cloud
-# come from fontawesome (respective fa-refresh, fa-desktop, fa-hdd-o, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
-
+# icon-swap, icon-display, icon-keyboard, icon-network, icon-usb, icon-cloud
+# come from fontawesome (respective fa-refresh, fa-desktop, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
 # icon-serial is a modified version of
 # https://commons.wikimedia.org/wiki/File:DE9_Diagram.svg
 # (public domain)
@@ -69,7 +68,6 @@ IMAGES = $(GNOME_IMAGES)	\
 	icon-cd.png		\
 	icon-network.png	\
 	icon-display.png	\
-	icon-harddisk.png	\
 	icon-keyboard.png	\
 	logo-ceph.png		\
 	logo-128.png		\
@@ -88,7 +86,7 @@ IMAGES = $(GNOME_IMAGES)	\
 icon-sdn.svg: icon-sdn.dot
 	fdp -Tsvg $< > $@
 
-.PHONY: install 
+.PHONY: install
 install: $(IMAGES)
 	install -d $(WWWIMAGEDIR)
 	install -m 0644 $(IMAGES) $(WWWIMAGEDIR)
diff --git a/www/images/icon-harddisk.png b/www/images/icon-harddisk.png
deleted file mode 100644
index 38faeb94538fb340a424c6c596a129979e80eccf..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 293
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_)JY5_^
zEP9V#vh{Kf6kvVeKUtMy+ao?94hhdqoZ1J~xKFUHY0WusPi?6}#Em7siY*hYTJ2e+
zwH-Y&CmpIb+*$elqs|fL;5$Dpi_@Ncx_`s_-tUZu2I~K1m30;`o~07AsQbB0Q}Ue$
zTK;Ec)LFY`S8#ik7f3a|jEMA|b#dd#lD6nITpVFLxOZAtIPG3wv8Z`^NT%+F|Hrca
z#4PM%kC_s{&>UdgYrP_&v7hJn5f=6x{By+@s{NMX+*k1Kcm9_TJ0yFQ&s;dZ;R#1+
p%;vo(+4{VM_9Vp^eed7M=5^R`=0u)L*MPoc@O1TaS?83{1OP#OcliJS

diff --git a/www/manager6/grid/PoolMembers.js b/www/manager6/grid/PoolMembers.js
index f025a1380..c6e7e9175 100644
--- a/www/manager6/grid/PoolMembers.js
+++ b/www/manager6/grid/PoolMembers.js
@@ -252,7 +252,7 @@ Ext.define('PVE.grid.PoolMembers', {
                             },
                             {
                                 text: gettext('Storage'),
-                                iconCls: 'pve-itype-icon-storage',
+                                iconCls: 'fa fa-hdd-o',
                                 handler: function () {
                                     var win = Ext.create('PVE.pool.AddStorage', { pool: me.pool });
                                     win.on('destroy', reload);
diff --git a/www/manager6/lxc/Resources.js b/www/manager6/lxc/Resources.js
index 9f6df3a58..3defb8003 100644
--- a/www/manager6/lxc/Resources.js
+++ b/www/manager6/lxc/Resources.js
@@ -128,7 +128,7 @@ Ext.define('PVE.lxc.RessourceView', {
             rows[confid] = {
                 group: group,
                 order: i,
-                tdCls: 'pve-itype-icon-storage',
+                iconCls: 'hdd-o',
                 editor: mpeditor,
                 header: header,
                 renderer: Ext.htmlEncode,
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 2/9] ui: remove all occurences of icon-display.png
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 1/9] fix #6599: ui: use font-awesome hdd icon instead of png Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 3/9] ui: replace the gif spinner from extjs with an svg Shannon Sterz
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

and use the font awesome equivalent instead. this way the icons don't
appear blurry and we safe a bit of overhead for storing and loading
the png.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css             |  18 ------------------
 www/images/Makefile              |   5 ++---
 www/images/icon-display.png      | Bin 221 -> 0 bytes
 www/manager6/dc/Tasks.js         |   6 +++++-
 www/manager6/grid/PoolMembers.js |   2 +-
 5 files changed, 8 insertions(+), 23 deletions(-)
 delete mode 100644 www/images/icon-display.png

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 356427ead..5e77698e9 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -95,12 +95,6 @@
     background-image: url(../ext6/theme-crisp/resources/images/loadmask/loading.gif);
 }
 
-/* console icon in task list */
-.x-grid-row-console {
-    background: no-repeat center center;
-    background-image: url(../images/icon-display.png);
-}
-
 /* for font-awesome colors */
 /* tree icons */
 
@@ -299,12 +293,10 @@
 .pve-itype-icon-tigervnc,
 .pve-itype-icon-novnc,
 .pve-itype-icon-xtermjs,
-.pve-itype-icon-display,
 .pve-itype-icon-network,
 .pve-itype-icon-network-server,
 .pve-itype-icon-keyboard,
 .pve-itype-icon-cdrom,
-.pve-itype-icon-qemu,
 .pve-itype-icon-qemu-template,
 .pve-itype-icon-qemu-running,
 .pve-itype-icon-lxc,
@@ -341,12 +333,6 @@
     font-size: 14px;
 }
 
-.pve-itype-icon-qemu,
-.x-tree-node-computer,
-.x-grid-tree-node-expanded .x-tree-node-computer {
-    background-image: url(../images/icon-display.png);
-}
-
 .pve-itype-icon-lxc,
 .x-tree-node-lxc,
 .x-grid-tree-node-expanded .x-tree-node-lxc {
@@ -391,10 +377,6 @@
     background-image: url(../images/icon-cd-drive.svg);
 }
 
-.pve-itype-icon-display {
-    background-image: url(../images/icon-display.png);
-}
-
 .pve-itype-icon-tigervnc {
     background-image: url(../images/tigervnc.png);
 }
diff --git a/www/images/Makefile b/www/images/Makefile
index 8072d0292..65ead9789 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -16,8 +16,8 @@ all:
 
 # icon-cd, icon-pci
 # are self made (sources as .xcf)
-# icon-swap, icon-display, icon-keyboard, icon-network, icon-usb, icon-cloud
-# come from fontawesome (respective fa-refresh, fa-desktop, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
+# icon-swap, icon-keyboard, icon-network, icon-usb, icon-cloud
+# come from fontawesome (respective fa-refresh, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
 # icon-serial is a modified version of
 # https://commons.wikimedia.org/wiki/File:DE9_Diagram.svg
 # (public domain)
@@ -67,7 +67,6 @@ IMAGES = $(GNOME_IMAGES)	\
 	icon-swap.png		\
 	icon-cd.png		\
 	icon-network.png	\
-	icon-display.png	\
 	icon-keyboard.png	\
 	logo-ceph.png		\
 	logo-128.png		\
diff --git a/www/images/icon-display.png b/www/images/icon-display.png
deleted file mode 100644
index 21c50c3293ae8c760dea69bd687937a05a3307c7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 221
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_WJY5_^
zEPCHwHsm^#z|;2d`Fh#V4<dYhatChiuIP?Cm~FA!ihI%O%@s_tx^DxHZoBa?KivMr
zgbD9?6;%=%P2C<%NtQ1-&UoJAfP}V&LAObDb=Q*ijSKA`aKB*oQdn{B#{q4j2}z$A
zzl1fNX83QJ(6#iL{+W%rruhYHpIZ9GKJnQaWxFZ9H<LY~J$iN7n^|Tas(YFwf<k&)
R^ntEp@O1TaS?83{1OR^pS55!`

diff --git a/www/manager6/dc/Tasks.js b/www/manager6/dc/Tasks.js
index 8c6f864f8..a89ad22d6 100644
--- a/www/manager6/dc/Tasks.js
+++ b/www/manager6/dc/Tasks.js
@@ -81,19 +81,23 @@ Ext.define('PVE.dc.Tasks', {
                     header: gettext('End Time'),
                     dataIndex: 'endtime',
                     width: 150,
+                    align: 'inherit',
                     renderer: function (value, metaData, record) {
+                        metaData.tdStyle = 'text-align: left;';
                         if (record.data.pid) {
                             if (
                                 record.data.type === 'vncproxy' ||
                                 record.data.type === 'vncshell' ||
                                 record.data.type === 'spiceproxy'
                             ) {
-                                metaData.tdCls = 'x-grid-row-console';
+                                metaData.tdStyle = 'text-align: center;';
+                                return '<i class="fa fa-desktop"></i>';
                             } else {
                                 metaData.tdCls = 'x-grid-row-loading';
                             }
                             return '';
                         }
+
                         return Ext.Date.format(value, 'M d H:i:s');
                     },
                 },
diff --git a/www/manager6/grid/PoolMembers.js b/www/manager6/grid/PoolMembers.js
index c6e7e9175..83046ee0e 100644
--- a/www/manager6/grid/PoolMembers.js
+++ b/www/manager6/grid/PoolMembers.js
@@ -243,7 +243,7 @@ Ext.define('PVE.grid.PoolMembers', {
                         items: [
                             {
                                 text: gettext('Virtual Machine'),
-                                iconCls: 'pve-itype-icon-qemu',
+                                iconCls: 'fa fa-desktop',
                                 handler: function () {
                                     var win = Ext.create('PVE.pool.AddVM', { pool: me.pool });
                                     win.on('destroy', reload);
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 3/9] ui: replace the gif spinner from extjs with an svg
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 1/9] fix #6599: ui: use font-awesome hdd icon instead of png Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 2/9] ui: remove all occurences of icon-display.png Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 4/9] ui: use svg version of the noVnc icon Shannon Sterz
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

the current spinner gif is quite blurry on modern hardware so use an
svg based spinner instead.

note that by including the css animation in the svg itself, the
animation does not appear to restart when extjs re-renders a table.
this, at least in firefox 128, lead to jerky looking animation when
using font awesome's spinner with the `fa-spin` class. by creating our
own svg, we can also make it look more like the extjs version.

this does not impact the spinners used by extjs's load mask, as that
would require adapting extjs's code itself.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css   |  2 +-
 www/images/Makefile    |  4 +++-
 www/images/spinner.svg | 24 ++++++++++++++++++++++++
 3 files changed, 28 insertions(+), 2 deletions(-)
 create mode 100644 www/images/spinner.svg

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 5e77698e9..0b92041df 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -92,7 +92,7 @@
 /* loading in task list */
 .x-grid-row-loading {
     background: no-repeat center center;
-    background-image: url(../ext6/theme-crisp/resources/images/loadmask/loading.gif);
+    background-image: url(../images/spinner.svg);
 }
 
 /* for font-awesome colors */
diff --git a/www/images/Makefile b/www/images/Makefile
index 65ead9789..7c9e12cb0 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -18,6 +18,8 @@ all:
 # are self made (sources as .xcf)
 # icon-swap, icon-keyboard, icon-network, icon-usb, icon-cloud
 # come from fontawesome (respective fa-refresh, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
+# spinner is self made
+
 # icon-serial is a modified version of
 # https://commons.wikimedia.org/wiki/File:DE9_Diagram.svg
 # (public domain)
@@ -80,7 +82,7 @@ IMAGES = $(GNOME_IMAGES)	\
 	icon-cpu.svg		\
 	icon-memory.svg		\
 	icon-cd-drive.svg	\
-
+	spinner.svg		\
 
 icon-sdn.svg: icon-sdn.dot
 	fdp -Tsvg $< > $@
diff --git a/www/images/spinner.svg b/www/images/spinner.svg
new file mode 100644
index 000000000..a3fccfc4d
--- /dev/null
+++ b/www/images/spinner.svg
@@ -0,0 +1,24 @@
+<svg version="1.1" viewBox="-13 -13 26 26" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<style>
+        @keyframes frames {
+            from { transform: rotate(0deg); }
+            to { transform: rotate(360deg); }
+        }
+        .spinner { animation: frames 1.2s steps(12, jump-start) infinite; }
+</style>
+<g stroke-linecap="round" stroke-width="2">
+<path class="spinner" id="a" d="m0 -8 0,4"/>
+<use transform="rotate(30)" xlink:href="#a" stroke="#eaeaea"/>
+<use transform="rotate(60)" xlink:href="#a" stroke="#d4d4d4"/>
+<use transform="rotate(90)" xlink:href="#a" stroke="#bfbfbf"/>
+<use transform="rotate(120)" xlink:href="#a" stroke="#aaaaaa"/>
+<use transform="rotate(150)" xlink:href="#a" stroke="#959595"/>
+<use transform="rotate(180)" xlink:href="#a" stroke="#808080"/>
+<use transform="rotate(210)" xlink:href="#a" stroke="#6a6a6a"/>
+<use transform="rotate(240)" xlink:href="#a" stroke="#555555"/>
+<use transform="rotate(270)" xlink:href="#a" stroke="#404040"/>
+<use transform="rotate(300)" xlink:href="#a" stroke="#2a2a2a"/>
+<use transform="rotate(330)" xlink:href="#a" stroke="#151515"/>
+<use transform="rotate(360)" xlink:href="#a" stroke="#000000"/>
+</g>
+</svg>
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 4/9] ui: use svg version of the noVnc icon
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (2 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 3/9] ui: replace the gif spinner from extjs with an svg Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 5/9] ui: use svg version of the virt viewer icon Shannon Sterz
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

this should avoid blury icons on higher resolution displays

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css |   3 +-
 www/images/Makefile  |   5 +-
 www/images/novnc.png | Bin 453 -> 0 bytes
 www/images/novnc.svg | 163 +++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 169 insertions(+), 2 deletions(-)
 delete mode 100644 www/images/novnc.png
 create mode 100644 www/images/novnc.svg

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 0b92041df..06378c399 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -382,7 +382,8 @@
 }
 
 .pve-itype-icon-novnc {
-    background-image: url(../images/novnc.png);
+    background-size: 16px;
+    background-image: url(../images/novnc.svg);
 }
 
 .pve-itype-icon-virt-viewer {
diff --git a/www/images/Makefile b/www/images/Makefile
index 7c9e12cb0..c0141ed1e 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -13,6 +13,9 @@ all:
 # checked.png converted from extjs examples/ux/css/images/checked.gif
 # unchecked.png converted from extjs examples/ux/css/images/unchecked.gif
 # swap.png downloaded from https://www.iconfinder.com/icons/17009/arrows_exchange_interact_refresh_reload_swap_sync_update_icon#size=16
+#
+# novnc.svg copied from the noVnc source:
+# https://github.com/novnc/noVNC/blob/master/app/images/icons/novnc-icon-sm.svg
 
 # icon-cd, icon-pci
 # are self made (sources as .xcf)
@@ -50,7 +53,7 @@ GNOME_IMAGES = 			\
 IMAGES = $(GNOME_IMAGES)	\
 	virt-viewer.png		\
 	tigervnc.png		\
-	novnc.png		\
+	novnc.svg		\
 	xtermjs.png		\
 	favicon.ico		\
 	snapshot.png		\
diff --git a/www/images/novnc.png b/www/images/novnc.png
deleted file mode 100644
index e2bdb19436f33713fb758376329cf59486b0cdff..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 453
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y
z{B+)352QE?JR*yM^imLJEI4v66v$vN@$_|Nzs)EuXf1b@XGtB<6jx6d#}JFtOD7-n
zI_x0gdcNl>%TiVOhwVpN6^_0yNId8osL^rTNZQ<qb@c=GlE<qQN(2j3cZij5-ErL^
zdt>IULc_^3E@(-y%Spc5Q~vy(d8L!)(x1n*7)_*losOPO6XtxtI&bNw>fdLNZ8Dwf
z$IIAo{quy`M$-j;DK3=%w?ZjAaObK&H{HAptRzKWIeQ7*KiU)h_)g-r{Sm_V_d7i@
ze&ymaw?pTfHml?IIZTe*dmMBUR5LfIWL5K>i#m4b+qJBy1&05xz4K!eX8XL_`Om8f
zVbx5BqIT4GSlSgy?m1KRiH|?#SMyHA8TzN@`>bi|&VIbRcH2a6i~WBVl<vw4ZM>#%
zWRl#M`RQ-2?~glB>Kmrt@$!yDk*4p)b3T2KBbe4c{Fv#s_FrD!=E(K=v)<*pOqy(B
slDTM#cEa+F0UAq7I2|-YE9TfUc1w106`8X%0>hZW)78&qol`;+0Ig`bxBvhE

diff --git a/www/images/novnc.svg b/www/images/novnc.svg
new file mode 100644
index 000000000..aa1c6f185
--- /dev/null
+++ b/www/images/novnc.svg
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="16"
+   height="16"
+   viewBox="0 0 16 16"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="novnc-icon-sm.svg">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="45.254834"
+     inkscape:cx="9.722703"
+     inkscape:cy="5.5311896"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     units="px"
+     inkscape:object-nodes="true"
+     inkscape:snap-smooth-nodes="true"
+     inkscape:snap-midpoints="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1136"
+     inkscape:window-x="1920"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4169" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3621)">
+    <rect
+       style="opacity:1;fill:#494949;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       id="rect4167"
+       width="16"
+       height="15.999992"
+       x="0"
+       y="1036.3622"
+       ry="2.6666584" />
+    <path
+       style="opacity:1;fill:#313131;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+       d="M 2.6666667,1036.3621 C 1.1893373,1036.3621 0,1037.5515 0,1039.0288 l 0,10.6666 c 0,1.4774 1.1893373,2.6667 2.6666667,2.6667 l 4,0 C 11.837333,1052.3621 16,1046.7128 16,1039.6955 l 0,-0.6667 c 0,-1.4773 -1.189337,-2.6667 -2.666667,-2.6667 l -10.6666663,0 z"
+       id="rect4173"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4381">
+      <g
+         transform="translate(0.25,0.25)"
+         style="fill:#000000;fill-opacity:1"
+         id="g4365">
+        <g
+           style="fill:#000000;fill-opacity:1"
+           id="g4367">
+          <path
+             inkscape:connector-curvature="0"
+             id="path4369"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 4.3289754,1039.3621 c 0.1846149,0 0.3419956,0.071 0.4716623,0.2121 C 4.933546,1039.7121 5,1039.8793 5,1040.0759 l 0,3.2862 -1,0 0,-2.964 c 0,-0.024 -0.011592,-0.036 -0.034038,-0.036 l -1.931924,0 C 2.011349,1040.3621 2,1040.3741 2,1040.3981 l 0,2.964 -1,0 0,-4 z"
+             sodipodi:nodetypes="scsccsssscccs" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path4371"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 6.6710244,1039.3621 2.6579513,0 c 0.184775,0 0.3419957,0.071 0.471662,0.2121 C 9.933546,1039.7121 10,1039.8793 10,1040.0759 l 0,2.5724 c 0,0.1966 -0.066454,0.3655 -0.1993623,0.5069 -0.1296663,0.1379 -0.286887,0.2069 -0.471662,0.2069 l -2.6579513,0 c -0.184775,0 -0.3436164,-0.069 -0.4765247,-0.2069 C 6.0648334,1043.0138 6,1042.8449 6,1042.6483 l 0,-2.5724 c 0,-0.1966 0.064833,-0.3638 0.1944997,-0.5017 0.1329083,-0.1414 0.2917497,-0.2121 0.4765247,-0.2121 z m 2.2949386,1 -1.931926,0 C 7.011344,1040.3621 7,1040.3741 7,1040.3981 l 0,1.928 c 0,0.024 0.011347,0.036 0.034037,0.036 l 1.931926,0 c 0.02269,0 0.034037,-0.012 0.034037,-0.036 l 0,-1.928 c 0,-0.024 -0.011347,-0.036 -0.034037,-0.036 z"
+             sodipodi:nodetypes="sscsscsscsscssssssssss" />
+        </g>
+        <g
+           style="fill:#000000;fill-opacity:1"
+           id="g4373">
+          <path
+             inkscape:connector-curvature="0"
+             id="path4375"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 3,1047.1121 1,-2.75 1,0 -1.5,4 -1,0 -1.5,-4 1,0 z"
+             sodipodi:nodetypes="cccccccc" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path4377"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 9,1046.8621 0,-2.5 1,0 0,4 -1,0 -2,-2.5 0,2.5 -1,0 0,-4 1,0 z"
+             sodipodi:nodetypes="ccccccccccc" />
+          <path
+             inkscape:connector-curvature="0"
+             id="path4379"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             d="m 15,1045.3621 -2.96596,0 c -0.02269,0 -0.03404,0.012 -0.03404,0.036 l 0,1.928 c 0,0.024 0.01135,0.036 0.03404,0.036 l 2.96596,0 0,1 -3.324113,0 c -0.188017,0 -0.348479,-0.068 -0.481388,-0.2037 C 11.064833,1048.0192 11,1047.8511 11,1047.6542 l 0,-2.5842 c 0,-0.1969 0.06483,-0.3633 0.194499,-0.4991 0.132909,-0.1392 0.293371,-0.2088 0.481388,-0.2088 l 3.324113,0 z"
+             sodipodi:nodetypes="cssssccscsscscc" />
+        </g>
+      </g>
+      <g
+         id="g4356">
+        <g
+           id="g4347">
+          <path
+             sodipodi:nodetypes="scsccsssscccs"
+             d="m 4.3289754,1039.3621 c 0.1846149,0 0.3419956,0.071 0.4716623,0.2121 C 4.933546,1039.7121 5,1039.8793 5,1040.0759 l 0,3.2862 -1,0 0,-2.964 c 0,-0.024 -0.011592,-0.036 -0.034038,-0.036 l -1.931924,0 c -0.022689,0 -0.034038,0.012 -0.034038,0.036 l 0,2.964 -1,0 0,-4 z"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4143"
+             inkscape:connector-curvature="0" />
+          <path
+             sodipodi:nodetypes="sscsscsscsscssssssssss"
+             d="m 6.6710244,1039.3621 2.6579513,0 c 0.184775,0 0.3419957,0.071 0.471662,0.2121 C 9.933546,1039.7121 10,1039.8793 10,1040.0759 l 0,2.5724 c 0,0.1966 -0.066454,0.3655 -0.1993623,0.5069 -0.1296663,0.1379 -0.286887,0.2069 -0.471662,0.2069 l -2.6579513,0 c -0.184775,0 -0.3436164,-0.069 -0.4765247,-0.2069 C 6.0648334,1043.0138 6,1042.8449 6,1042.6483 l 0,-2.5724 c 0,-0.1966 0.064833,-0.3638 0.1944997,-0.5017 0.1329083,-0.1414 0.2917497,-0.2121 0.4765247,-0.2121 z m 2.2949386,1 -1.931926,0 C 7.011344,1040.3621 7,1040.3741 7,1040.3981 l 0,1.928 c 0,0.024 0.011347,0.036 0.034037,0.036 l 1.931926,0 c 0.02269,0 0.034037,-0.012 0.034037,-0.036 l 0,-1.928 c 0,-0.024 -0.011347,-0.036 -0.034037,-0.036 z"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#008000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4145"
+             inkscape:connector-curvature="0" />
+        </g>
+        <g
+           id="g4351">
+          <path
+             sodipodi:nodetypes="cccccccc"
+             d="m 3,1047.1121 1,-2.75 1,0 -1.5,4 -1,0 -1.5,-4 1,0 z"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4147"
+             inkscape:connector-curvature="0" />
+          <path
+             sodipodi:nodetypes="ccccccccccc"
+             d="m 9,1046.8621 0,-2.5 1,0 0,4 -1,0 -2,-2.5 0,2.5 -1,0 0,-4 1,0 z"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4149"
+             inkscape:connector-curvature="0" />
+          <path
+             sodipodi:nodetypes="cssssccscsscscc"
+             d="m 15,1045.3621 -2.96596,0 c -0.02269,0 -0.03404,0.012 -0.03404,0.036 l 0,1.928 c 0,0.024 0.01135,0.036 0.03404,0.036 l 2.96596,0 0,1 -3.324113,0 c -0.188017,0 -0.348479,-0.068 -0.481388,-0.2037 C 11.064833,1048.0192 11,1047.8511 11,1047.6542 l 0,-2.5842 c 0,-0.1969 0.06483,-0.3633 0.194499,-0.4991 0.132909,-0.1392 0.293371,-0.2088 0.481388,-0.2088 l 3.324113,0 z"
+             style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:medium;line-height:125%;font-family:Orbitron;-inkscape-font-specification:'Orbitron Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffff00;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+             id="path4151"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 5/9] ui: use svg version of the virt viewer icon
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (3 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 4/9] ui: use svg version of the noVnc icon Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 6/9] ui: use svg version of xterm.js logo instead of a png Shannon Sterz
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

this should avoid it looking blurry on higher resolution displays

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css       |   3 +-
 www/images/Makefile        |   6 +-
 www/images/virt-viewer.png | Bin 662 -> 0 bytes
 www/images/virt-viewer.svg | 488 +++++++++++++++++++++++++++++++++++++
 4 files changed, 493 insertions(+), 4 deletions(-)
 delete mode 100644 www/images/virt-viewer.png
 create mode 100644 www/images/virt-viewer.svg

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 06378c399..b45f1b42b 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -387,7 +387,8 @@
 }
 
 .pve-itype-icon-virt-viewer {
-    background-image: url(../images/virt-viewer.png);
+    background-size: 16px;
+    background-image: url(../images/virt-viewer.svg);
 }
 
 .pve-itype-icon-xtermjs {
diff --git a/www/images/Makefile b/www/images/Makefile
index c0141ed1e..0fa6177ac 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -6,13 +6,13 @@ all:
 # stop.png /usr/share/icons/gnome/16x16/actions/media-playback-stop.png
 # computer-template.png /usr/share/icons/gnome/16x16/mimetypes/gnome-mime-application-vnd.sun.xml.calc.template.png
 
-# virt-viewer.png copied from virt-viewer sources
 # tigervnc.png converted from tigervnc sources
 # (tigervnc.org/media/tigervnc_16.svg)
-
 # checked.png converted from extjs examples/ux/css/images/checked.gif
 # unchecked.png converted from extjs examples/ux/css/images/unchecked.gif
 # swap.png downloaded from https://www.iconfinder.com/icons/17009/arrows_exchange_interact_refresh_reload_swap_sync_update_icon#size=16
+# virt-viewer.svg copied from virt-viewer source:
+# https://github.com/webrulon/virt-viewer/blob/master/icons/virt-viewer.svg
 #
 # novnc.svg copied from the noVnc source:
 # https://github.com/novnc/noVNC/blob/master/app/images/icons/novnc-icon-sm.svg
@@ -51,8 +51,8 @@ GNOME_IMAGES = 			\
 	computer.png
 
 IMAGES = $(GNOME_IMAGES)	\
-	virt-viewer.png		\
 	tigervnc.png		\
+	virt-viewer.svg		\
 	novnc.svg		\
 	xtermjs.png		\
 	favicon.ico		\
diff --git a/www/images/virt-viewer.png b/www/images/virt-viewer.png
deleted file mode 100644
index 226881fd2577f6a1a09dd34ab90da08dad82f463..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 662
zcmV;H0%`q;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H10uxC@K~y-6rIX8Q6hRb*zf)CnZAda824WH;CJVRTHo9<Q1|9Gj
zd;~XwxKU69@iBaZY+MKl5hCK=V7!4Q5QAYzoayT6p6)s>IuR2CK|Gr(s_OsGcg~@t
z-EQ+g;X0kp9T9n`s<nR+iilU$yG~Ufw{KjJnvEuTuE%F|g0+Tjw_9IYeD%bsYHf6M
zg!!A#N$CTidW6y5QB5LVzPQcE=qNzL?cb-N&xNaFh{zryfRw8MTJGO0Z?pRDJyTPY
zB~hBDfS}@t(@+W&MC5=;Hq6=X{sbInXJ;`IN(1jbAru&6801oBE1LwA!p$E$#6AU}
zVOo4xTVr~9k|arRNs>?$0gNNb%WR4uK%AuP^b%AZmHJ+_iDi1`G!<v?-s9ppMuTEZ
zg+Xxp03_*<Y-n(`=-~LQ<@3i+%+1Zx@ApdrMG<RBg98OcQERE#BZgszOq`m)7|Ig7
z_W&5<u+`{q#i1CQK1ETW2yq<aLMXf0YB;jZ!LbHW)geYPA|-)yuDAYeqxJ03`D4Yu
zDbk$v^$ma>>2x}`YPH$}5sg3$FjJ{GSE*LT8UsKP0$G-6KFo)}SJ0r!uJ_4(m*@FH
zp63eysv5OUjJ=(2x6fU=c$x8&<EScITi;oEy`oFYORGt5a3#w!zfU8Fzq2uBq~5GQ
wZAQ&&)|xYb7NPhu@PozPZvUQ$#DBj31$U3~M!Ay>9smFU07*qoM6N<$f*XM(!~g&Q

diff --git a/www/images/virt-viewer.svg b/www/images/virt-viewer.svg
new file mode 100644
index 000000000..26fe3a9e8
--- /dev/null
+++ b/www/images/virt-viewer.svg
@@ -0,0 +1,488 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48.000000px"
+   height="48.000000px"
+   id="svg2327"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docbase="/home/tigert/cvs/freedesktop.org/tango-icon-theme/scalable/devices"
+   sodipodi:docname="video-display.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs3">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective71" />
+    <linearGradient
+       id="linearGradient2329">
+      <stop
+         id="stop2331"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2333"
+         offset="1.0000000"
+         style="stop-color:#ffffff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2321"
+       inkscape:collect="always">
+      <stop
+         id="stop2323"
+         offset="0"
+         style="stop-color:#7b7f7a;stop-opacity:1;" />
+      <stop
+         id="stop2325"
+         offset="1"
+         style="stop-color:#7b7f7a;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2711">
+      <stop
+         id="stop2713"
+         offset="0.0000000"
+         style="stop-color:#909090;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2715"
+         offset="1.0000000"
+         style="stop-color:#bebebe;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2701">
+      <stop
+         id="stop2703"
+         offset="0.0000000"
+         style="stop-color:#585956;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2705"
+         offset="1.0000000"
+         style="stop-color:#bbbeb8;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2683"
+       inkscape:collect="always">
+      <stop
+         id="stop2685"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2687"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2675">
+      <stop
+         id="stop2677"
+         offset="0.0000000"
+         style="stop-color:#5b5b97;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2679"
+         offset="1.0000000"
+         style="stop-color:#1b1b43;stop-opacity:1.0000000;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2667">
+      <stop
+         id="stop2669"
+         offset="0.0000000"
+         style="stop-color:#ffffff;stop-opacity:1.0000000;" />
+      <stop
+         id="stop2671"
+         offset="1.0000000"
+         style="stop-color:#fcfcff;stop-opacity:0.0000000;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2454">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop2456" />
+      <stop
+         style="stop-color:#000000;stop-opacity:0;"
+         offset="1"
+         id="stop2458" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient2415">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop2417" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0;"
+         offset="1"
+         id="stop2419" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2253">
+      <stop
+         style="stop-color:#8f8f8f;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2255" />
+      <stop
+         style="stop-color:#494949;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2257" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2245">
+      <stop
+         style="stop-color:#dde1d9;stop-opacity:1.0000000;"
+         offset="0.0000000"
+         id="stop2247" />
+      <stop
+         style="stop-color:#cacdc6;stop-opacity:1.0000000;"
+         offset="1.0000000"
+         id="stop2249" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2245"
+       id="linearGradient2251"
+       gradientTransform="matrix(1.129863,0.000000,0.000000,0.885063,2.875000,1.570628)"
+       x1="8.6116238"
+       y1="7.2293582"
+       x2="34.784473"
+       y2="33.339787"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2415"
+       id="linearGradient2421"
+       gradientTransform="matrix(1.108069,0.000000,0.000000,0.902471,5.500000,3.875000)"
+       x1="17.698339"
+       y1="13.004725"
+       x2="34.974548"
+       y2="55.200756"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2454"
+       id="radialGradient2460"
+       gradientTransform="scale(1.925808,0.519262)"
+       cx="12.575710"
+       cy="67.501709"
+       fx="12.575710"
+       fy="67.501709"
+       r="8.7662794"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="26.729263"
+       x2="17.199417"
+       y1="1.6537577"
+       x1="11.492236"
+       gradientTransform="matrix(1.238977,0.000000,0.000000,0.895955,5.090553,1.543476)"
+       id="linearGradient2673"
+       xlink:href="#linearGradient2667"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="8.8666229"
+       x2="16.315819"
+       y1="32.622238"
+       x1="19.150396"
+       gradientTransform="matrix(1.174139,0.000000,0.000000,0.945431,5.221825,1.543476)"
+       id="linearGradient2681"
+       xlink:href="#linearGradient2675"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="162.45061"
+       x2="3.7069974"
+       y1="171.29134"
+       x1="3.7069976"
+       gradientTransform="matrix(5.705159,0.000000,0.000000,0.175280,5.500000,2.195627)"
+       id="linearGradient2689"
+       xlink:href="#linearGradient2683"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="64.892525"
+       x2="12.127711"
+       y1="53.535141"
+       x1="12.206709"
+       gradientTransform="matrix(1.816345,0.000000,0.000000,1.278927,2.500000,-40.24508)"
+       id="linearGradient2707"
+       xlink:href="#linearGradient2701"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="3.8451097"
+       x2="35.520542"
+       y1="3.9384086"
+       x1="34.300991"
+       id="linearGradient2717"
+       xlink:href="#linearGradient2711"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="3.8451097"
+       x2="35.520542"
+       y1="3.9384086"
+       x1="34.300991"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2721"
+       xlink:href="#linearGradient2711"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="3.8451097"
+       x2="35.520542"
+       y1="3.9384086"
+       x1="34.300991"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2725"
+       xlink:href="#linearGradient2711"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="3.8451097"
+       x2="35.520542"
+       y1="3.9384086"
+       x1="34.300991"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2729"
+       xlink:href="#linearGradient2711"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="3.8451097"
+       x2="35.520542"
+       y1="3.9384086"
+       x1="34.300991"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient2733"
+       xlink:href="#linearGradient2711"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="31.246054"
+       x2="32.536823"
+       y1="5.3817744"
+       x1="10.390738"
+       gradientTransform="matrix(1.104397,0.000000,0.000000,0.905471,4.500000,2.875000)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient1561"
+       xlink:href="#linearGradient2253"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="28.205938"
+       x2="-35.658386"
+       y1="33.416473"
+       x1="-35.658386"
+       id="linearGradient2327"
+       xlink:href="#linearGradient2321"
+       inkscape:collect="always" />
+    <linearGradient
+       gradientUnits="userSpaceOnUse"
+       y2="30.962345"
+       x2="-35.074745"
+       y1="34.242237"
+       x1="-35.122688"
+       id="linearGradient2337"
+       xlink:href="#linearGradient2329"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="0.12156863"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="35.613813"
+     inkscape:cy="27.608256"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="854"
+     inkscape:window-height="756"
+     inkscape:window-x="211"
+     inkscape:window-y="92"
+     inkscape:showpageshadow="false" />
+  <metadata
+     id="metadata4">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title>Video Display</dc:title>
+        <dc:date />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jakub Steiner</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag>
+            <rdf:li>video</rdf:li>
+            <rdf:li>display</rdf:li>
+            <rdf:li>monitor</rdf:li>
+            <rdf:li>LCD</rdf:li>
+            <rdf:li>CRT</rdf:li>
+          </rdf:Bag>
+        </dc:subject>
+        <cc:license
+           rdf:resource="http://creativecommons.org/licenses/publicdomain/" />
+        <dc:source>http://jimmac.musichall.cz/</dc:source>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/licenses/publicdomain/">
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution" />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.50857143;overflow:visible;display:inline;visibility:visible;stroke-opacity:0.70063692;stroke-dashoffset:0.0000000;stroke-miterlimit:4.0000000;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-linejoin:miter;stroke-linecap:round;stroke-width:1.0000000;stroke:none;fill-rule:evenodd;fill-opacity:1.0000000;fill:url(#radialGradient2460);color:#000000"
+       id="path2452"
+       sodipodi:cx="24.218407"
+       sodipodi:cy="35.051105"
+       sodipodi:rx="16.882174"
+       sodipodi:ry="4.5520000"
+       d="M 41.100580 35.051105 A 16.882174 4.5520000 0 1 1  7.3362331,35.051105 A 16.882174 4.5520000 0 1 1  41.100580 35.051105 z"
+       transform="matrix(1.050251,0.000000,0.000000,1.867888,-0.945558,-28.10611)" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:#adb0aa;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#4b4d4a;stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2407"
+       sodipodi:cx="-35.658386"
+       sodipodi:cy="29.716238"
+       sodipodi:rx="9.3944187"
+       sodipodi:ry="3.9395950"
+       d="M -26.263968 29.716238 A 9.3944187 3.9395950 0 1 1  -45.052805,29.716238 A 9.3944187 3.9395950 0 1 1  -26.263968 29.716238 z"
+       transform="translate(60.03339,8.078430)" />
+    <path
+       transform="matrix(0.902373,0.000000,0.000000,0.827650,56.55215,12.86792)"
+       d="M -26.263968 29.716238 A 9.3944187 3.9395950 0 1 1  -45.052805,29.716238 A 9.3944187 3.9395950 0 1 1  -26.263968 29.716238 z"
+       sodipodi:ry="3.9395950"
+       sodipodi:rx="9.3944187"
+       sodipodi:cy="29.716238"
+       sodipodi:cx="-35.658386"
+       id="path1825"
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2327);stroke-width:1.1571338;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2337);stroke-width:1.1833371;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2983"
+       sodipodi:cx="-35.658386"
+       sodipodi:cy="29.716238"
+       sodipodi:rx="9.3944187"
+       sodipodi:ry="3.9395950"
+       d="M -26.263968 29.716238 A 9.3944187 3.9395950 0 1 1  -45.052805,29.716238 A 9.3944187 3.9395950 0 1 1  -26.263968 29.716238 z"
+       transform="matrix(0.837548,0.000000,0.000000,0.852655,54.17811,11.00615)" />
+    <rect
+       y="31.078613"
+       x="19.972397"
+       height="6.3650389"
+       width="9.0396729"
+       id="rect2699"
+       style="color:#000000;fill:url(#linearGradient2707);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.60872948;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="color:#000000;fill:url(#linearGradient2251);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1561);stroke-width:1.0000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       d="M 7.5809024,4.5706221 L 41.169097,4.5706221 C 42.080439,4.5706221 42.793244,5.1541039 42.835849,5.9722091 L 44.167893,31.550323 C 44.226102,32.668058 43.266837,33.570628 42.147588,33.570628 L 6.6024120,33.570628 C 5.4831629,33.570628 4.5238980,32.668058 4.5821068,31.550323 L 5.9141506,5.9722091 C 5.9544343,5.1986745 6.4616533,4.5706221 7.5809024,4.5706221 z "
+       id="rect2404"
+       sodipodi:nodetypes="cssssssss" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       id="path2377"
+       d="M 8.9105350,7.1808270 L 7.6683398,29.226144 L 39.318729,29.226144 L 37.983712,7.2742560 L 8.9105350,7.1808270 z "
+       style="fill:url(#linearGradient2681);fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000079;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dasharray:none;stroke-opacity:1.0000000" />
+    <path
+       sodipodi:nodetypes="cc"
+       style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2689);stroke-width:0.99618119;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:0.24840762"
+       d="M 6.6774331,31.610789 L 42.105910,31.610789"
+       id="path2393" />
+    <path
+       sodipodi:nodetypes="cssssssss"
+       id="path2397"
+       d="M 7.4145985,5.5813396 L 41.260101,5.5435383 C 41.543798,5.5432214 41.819403,5.7807881 41.842206,6.1960820 L 43.204098,30.999330 C 43.262137,32.056361 42.664349,32.785201 41.605727,32.785201 L 7.0817583,32.785201 C 6.0231355,32.785201 5.4887439,32.056410 5.5458869,30.999330 L 6.8699773,6.5051630 C 6.9086732,5.7893326 7.0363626,5.5817620 7.4145985,5.5813396 z "
+       style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2421);stroke-width:0.99999964;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.70063692;visibility:visible;display:inline;overflow:visible" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       style="opacity:0.53142858;fill:url(#linearGradient2673);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000"
+       d="M 9.2115360,7.6213630 L 8.4090070,25.491693 C 19.453645,23.091063 23.830470,14.999494 37.563039,12.344943 L 37.401567,7.6874270 L 9.2115360,7.6213630 z "
+       id="path2443" />
+    <path
+       transform="matrix(1.331237,0.000000,0.000000,0.658449,-5.919330,5.728866)"
+       d="M 35.620504 3.9384086 A 0.83968931 0.83968931 0 1 1  33.941126,3.9384086 A 0.83968931 0.83968931 0 1 1  35.620504 3.9384086 z"
+       sodipodi:ry="0.83968931"
+       sodipodi:rx="0.83968931"
+       sodipodi:cy="3.9384086"
+       sodipodi:cx="34.780815"
+       id="path2709"
+       style="color:#000000;fill:url(#linearGradient2717);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#linearGradient2721);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2719"
+       sodipodi:cx="34.780815"
+       sodipodi:cy="3.9384086"
+       sodipodi:rx="0.83968931"
+       sodipodi:ry="0.83968931"
+       d="M 35.620504 3.9384086 A 0.83968931 0.83968931 0 1 1  33.941126,3.9384086 A 0.83968931 0.83968931 0 1 1  35.620504 3.9384086 z"
+       transform="matrix(1.331237,0.000000,0.000000,0.658449,-5.805730,7.834650)" />
+    <path
+       transform="matrix(1.331237,0.000000,0.000000,0.658449,-5.692130,9.834650)"
+       d="M 35.620504 3.9384086 A 0.83968931 0.83968931 0 1 1  33.941126,3.9384086 A 0.83968931 0.83968931 0 1 1  35.620504 3.9384086 z"
+       sodipodi:ry="0.83968931"
+       sodipodi:rx="0.83968931"
+       sodipodi:cy="3.9384086"
+       sodipodi:cx="34.780815"
+       id="path2723"
+       style="color:#000000;fill:url(#linearGradient2725);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="color:#000000;fill:url(#linearGradient2729);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       id="path2727"
+       sodipodi:cx="34.780815"
+       sodipodi:cy="3.9384086"
+       sodipodi:rx="0.83968931"
+       sodipodi:ry="0.83968931"
+       d="M 35.620504 3.9384086 A 0.83968931 0.83968931 0 1 1  33.941126,3.9384086 A 0.83968931 0.83968931 0 1 1  35.620504 3.9384086 z"
+       transform="matrix(1.331237,0.000000,0.000000,0.658449,-5.578530,11.83465)" />
+    <path
+       transform="matrix(1.331237,0.000000,0.000000,0.658449,-5.464930,13.83465)"
+       d="M 35.620504 3.9384086 A 0.83968931 0.83968931 0 1 1  33.941126,3.9384086 A 0.83968931 0.83968931 0 1 1  35.620504 3.9384086 z"
+       sodipodi:ry="0.83968931"
+       sodipodi:rx="0.83968931"
+       sodipodi:cy="3.9384086"
+       sodipodi:cx="34.780815"
+       id="path2731"
+       style="color:#000000;fill:url(#linearGradient2733);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:0.50000000;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       id="text2735"
+       d="M 22.500000,30.192666 L 22.781716,30.192666 C 22.865481,30.192667 22.929701,30.211330 22.974376,30.248656 C 23.019345,30.285690 23.041829,30.338594 23.041830,30.407370 C 23.041829,30.476440 23.019345,30.529638 22.974376,30.566965 C 22.929701,30.603998 22.865481,30.622515 22.781716,30.622515 L 22.669735,30.622515 L 22.669735,30.850885 L 22.500000,30.850885 L 22.500000,30.192666 M 22.669735,30.315669 L 22.669735,30.499512 L 22.763640,30.499512 C 22.796558,30.499512 22.821982,30.491576 22.839911,30.475705 C 22.857839,30.459540 22.866804,30.436762 22.866804,30.407370 C 22.866804,30.377979 22.857839,30.355348 22.839911,30.339476 C 22.821982,30.323605 22.796558,30.315669 22.763640,30.315669 L 22.669735,30.315669 M 23.461979,30.303765 C 23.410250,30.303766 23.370131,30.322870 23.341621,30.361078 C 23.313112,30.399288 23.298857,30.453074 23.298857,30.522437 C 23.298857,30.591507 23.313112,30.645146 23.341621,30.683355 C 23.370131,30.721564 23.410250,30.740668 23.461979,30.740668 C
  23.514001,30.740668 23.554267,30.721564 23.582778,30.683355 C 23.611287,30.645146 23.625541,30.591507 23.625542,30.522437 C 23.625541,30.453074 23.611287,30.399288 23.582778,30.361078 C 23.554267,30.322870 23.514001,30.303766 23.461979,30.303765 M 23.461979,30.180762 C 23.567787,30.180763 23.650671,30.211036 23.710630,30.271582 C 23.770588,30.332128 23.800567,30.415747 23.800568,30.522437 C 23.800567,30.628834 23.770588,30.712305 23.710630,30.772851 C 23.650671,30.833398 23.567787,30.863671 23.461979,30.863671 C 23.356464,30.863671 23.273580,30.833398 23.213328,30.772851 C 23.153370,30.712305 23.123391,30.628834 23.123391,30.522437 C 23.123391,30.415747 23.153370,30.332128 23.213328,30.271582 C 23.273580,30.211036 23.356464,30.180763 23.461979,30.180762 M 23.928420,30.192666 L 24.117994,30.192666 L 24.357387,30.644117 L 24.357387,30.192666 L 24.518305,30.192666 L 24.518305,30.850885 L 24.328730,30.850885 L 24.089338,30.399434 L 24.089338,30.850885 L 23.928420,30.850885 L 23.928420,
 30.192666 M 24.591489,30.192666 L 24.777095,30.192666 L 24.926991,30.427209 L 25.076887,30.192666 L 25.262935,30.192666 L 25.012079,30.573578 L 25.012079,30.850885 L 24.842344,30.850885 L 24.842344,30.573578 L 24.591489,30.192666"
+       style="font-size:0.90290260;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;writing-mode:lr-tb;text-anchor:start;fill:#4a4a4a;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Bitstream Vera Sans" />
+  </g>
+</svg>
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 6/9] ui: use svg version of xterm.js logo instead of a png
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (4 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 5/9] ui: use svg version of the virt viewer icon Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 7/9] ui: use the svg version for the cd icon in a storage's treelist Shannon Sterz
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

this allows the icon to look sharp on high-res monitors.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css   |   3 ++-
 www/images/Makefile    |   6 +++---
 www/images/xtermjs.png | Bin 729 -> 0 bytes
 www/images/xtermjs.svg |  11 +++++++++++
 4 files changed, 16 insertions(+), 4 deletions(-)
 delete mode 100644 www/images/xtermjs.png
 create mode 100644 www/images/xtermjs.svg

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index b45f1b42b..8ae477ed3 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -392,7 +392,8 @@
 }
 
 .pve-itype-icon-xtermjs {
-    background-image: url(../images/xtermjs.png);
+    background-size: 16px;
+    background-image: url(../images/xtermjs.svg);
 }
 
 .pve-itype-icon-usb {
diff --git a/www/images/Makefile b/www/images/Makefile
index 0fa6177ac..87cda5204 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -30,8 +30,8 @@ all:
 # ceph logos are from
 #  http://ceph.com/logos/
 
-# xtermjs.png is a cropped version of the logo found on
-# https://github.com/xtermjs/xterm.js
+# xtermjs.svg was copied from the xtermjs-branding sources:
+# https://github.com/xtermjs/xtermjs-branding/blob/master/logo.svg
 
 GNOME_IMAGES = 			\
 	checked.png		\
@@ -54,7 +54,7 @@ IMAGES = $(GNOME_IMAGES)	\
 	tigervnc.png		\
 	virt-viewer.svg		\
 	novnc.svg		\
-	xtermjs.png		\
+	xtermjs.svg		\
 	favicon.ico		\
 	snapshot.png		\
 	computer-on.png		\
diff --git a/www/images/xtermjs.png b/www/images/xtermjs.png
deleted file mode 100644
index b999d36d3c40a2805b90f8939cb3d4cd3585eb55..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 729
zcmV;~0w(>5P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru;S3TF7!bPL-;w|T0%l1>
zK~y-)U6V~n6;T+5pPB1lQlgf3h=jmR<@}_f$fcknh=^JU3Bhn7P{9ZiArW-Zs;os2
z1Z|313{z<tM41#VQVOvmYkstaL{>(3vIq;sd%1U7c;;drIGi)z`JTg^_x(OeH?(G;
zoRzWQI^Ga~ZfLlUN7DAOOcj8n?Uw=jfGUyyMbZuJ5HKPFS>TN8c$Wd{8k>0cdLn{L
zfezr3$o&L##)4EZqbTv8z+pfJ_9{yJZIB9PzJHsG-~!+%a9zOjK)+?GRtz9W1+Nq(
zt^kcdA#hMp;=@5I_|f_(kh05*3E(bJ3@ifIEK@xPAnS%EE~OKACiYdp;P#p=mAOp1
z8n^*$5KnwynQAvc>%#y!qFu+!0LOt3B2-(rzWnx5>f<IPxm3i)fKvd?7l)YW+mEzb
zak1Y4JO|=H2Dn+*GjIn<x<DAVS*Gf?KUrYBI{~cl5tv_fLp!1yS}5jU-Ox^kVHgRD
zW~g~iUi$|?OvH2Ids!|j+1NWzWzzO#%T%fF8T|i(H6sDs5@$<Ntk7=iAD#I6bZShv
zgk`EEZ65$>&HJ|jkAWH>8-}@i4QGdYv+1Q#!mt{6101tVbv9{F5#}<;tKiMRRRIIM
zAeZfsi`Pkn;V%(u0Ino$zuYowk>rBB3uU52+eD%dw78BpEri<z+y}M-X;G0~mZ_#?
z-Ox%z5k>GE(Cs?jbbVrXq{}358u$$q0Vja2r0vTxutyvQz$|dyb-WSX(3l*58FgbQ
z8m>>|MMZZ&(haQzs1UaOaUE}9r>2pOf%o3adoPqP5lvMg?Ed@@D<kYT`j}$X00000
LNkvXXu0mjfp(Hvg

diff --git a/www/images/xtermjs.svg b/www/images/xtermjs.svg
new file mode 100644
index 000000000..0aa957e3d
--- /dev/null
+++ b/www/images/xtermjs.svg
@@ -0,0 +1,11 @@
+<?xml version="1.0" standalone="yes"?>
+<svg width="140" height="140" viewBox="0 0 140 140" version="1.1" xmlns="http://www.w3.org/2000/svg">
+  <mask id="mask">
+    <rect x="0" y="0" width="100%" height="100%" fill="white"/>
+    <path d="m10 0 l30 0 l50 60 l-50 60 l-30 0 l50 -60"/>
+  </mask>
+  <g transform="translate(5,10)">
+    <path d="m130 0 l-30 0 l-50 60 l50 60 l30 0 l-50 -60" fill="#5DA5D5" mask="url(#mask)"/>
+    <path d="m0 0 l30 0 l50 60 l-50 60 l-30 0 l50 -60" fill="#2D2E2C"/>
+  </g>
+</svg>
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 7/9] ui: use the svg version for the cd icon in a storage's treelist
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (5 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 6/9] ui: use svg version of xterm.js logo instead of a png Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 8/9] ui: replace the ceph logo png with an svg version Shannon Sterz
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

so it does not appear blurry anymore. also removes the now unused png
version.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css   |   2 +-
 www/images/Makefile    |   3 +--
 www/images/icon-cd.png | Bin 309 -> 0 bytes
 3 files changed, 2 insertions(+), 3 deletions(-)
 delete mode 100644 www/images/icon-cd.png

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 8ae477ed3..f2818d222 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -250,7 +250,7 @@
 .pve-itype-treelist-item-icon-cdrom {
     top: 50%;
     transform: translateY(-50%);
-    content: url(../images/icon-cd.png);
+    content: url(../images/icon-cd-drive.svg);
 }
 
 /* the lxc template */
diff --git a/www/images/Makefile b/www/images/Makefile
index 87cda5204..3e73f5728 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -17,7 +17,7 @@ all:
 # novnc.svg copied from the noVnc source:
 # https://github.com/novnc/noVNC/blob/master/app/images/icons/novnc-icon-sm.svg
 
-# icon-cd, icon-pci
+# icon-cd-drive and icon-pci
 # are self made (sources as .xcf)
 # icon-swap, icon-keyboard, icon-network, icon-usb, icon-cloud
 # come from fontawesome (respective fa-refresh, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
@@ -70,7 +70,6 @@ IMAGES = $(GNOME_IMAGES)	\
 	blank.gif		\
 	swap.png		\
 	icon-swap.png		\
-	icon-cd.png		\
 	icon-network.png	\
 	icon-keyboard.png	\
 	logo-ceph.png		\
diff --git a/www/images/icon-cd.png b/www/images/icon-cd.png
deleted file mode 100644
index 52a6801c3cefb9e476e59c0f6068728a5152d367..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 309
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b
z3=G`DAk4@xYmNj^kiEpy*OmPNvly2;uj9gw{Xij(64!_l=ltB<)VvagZ)c`~#MXJb
zIEGl9UVC{j?;!^s)(8Fpigy(x8>ZPYUufaX<8ND#()DHnlOcn2z_O*By~-aavvfZ3
z%$xV7`n=uje3g(D7u~KLRJ9LS=-k|+q{M#R^_)WA#0lywMNedoPx0O#SZC!ad@6Iv
z`+J_RuFmeP?D=~4OO5S<xV<}0Dfd5FarM}e<xy3eWi&3VJ99+J+NOZ>U8D559m(Co
yd^`4CdABh#rDOB{!f#5tn@)AhT#kSKhvl4tbM@ZvXW2lPGkCiCxvX<aXaWGvYIoNF

-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 8/9] ui: replace the ceph logo png with an svg version
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (6 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 7/9] ui: use the svg version for the cd icon in a storage's treelist Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 9/9] ui: remove unused png icons and their asset files Shannon Sterz
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

this makes the icon appear sharp on high-res displays

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css     |   2 +-
 www/images/Makefile      |   6 ++--
 www/images/logo-ceph.png | Bin 488 -> 0 bytes
 www/images/logo-ceph.svg |  71 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 75 insertions(+), 4 deletions(-)
 delete mode 100644 www/images/logo-ceph.png
 create mode 100644 www/images/logo-ceph.svg

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index f2818d222..5c587a867 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -501,7 +501,7 @@ div.right-aligned {
     position: absolute;
     left: 1px;
     top: 4px;
-    background-image: url(../images/logo-ceph.png);
+    background-image: url(../images/logo-ceph.svg);
     background-size: 14px 14px;
     content: " ";
 }
diff --git a/www/images/Makefile b/www/images/Makefile
index 3e73f5728..567338a56 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -27,8 +27,8 @@ all:
 # https://commons.wikimedia.org/wiki/File:DE9_Diagram.svg
 # (public domain)
 
-# ceph logos are from
-#  http://ceph.com/logos/
+# logo-ceph is adapted from Ceph_Logo.svg
+# https://github.com/ceph/ceph/blob/main/src/pybind/mgr/dashboard/frontend/src/assets/Ceph_Logo.svg
 
 # xtermjs.svg was copied from the xtermjs-branding sources:
 # https://github.com/xtermjs/xtermjs-branding/blob/master/logo.svg
@@ -72,7 +72,7 @@ IMAGES = $(GNOME_IMAGES)	\
 	icon-swap.png		\
 	icon-network.png	\
 	icon-keyboard.png	\
-	logo-ceph.png		\
+	logo-ceph.svg		\
 	logo-128.png		\
 	icon-serial.svg		\
 	icon-cloud.svg		\
diff --git a/www/images/logo-ceph.png b/www/images/logo-ceph.png
deleted file mode 100644
index ec97565e8dfc269beaaec29c4dabffbebbe53427..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 488
zcmV<E0T=#>P)<h;3K|Lk000e1NJLTq000gE000gM1^@s6A4o0H00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru;0PWIFcg#T*B}4@02y>e
zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00B@*L_t(2&vnwVOVv>n2k_5(
z#T%Za2n9k<A|#6_f|SH52REUJ2pU~XsDx;2XmDuk4~W1)!AS}PK>`s3Y0E*Op#(uK
zAq*iKdezV6Tl^HfaN*u_zW1E(_j?bAS390z1;6kE%XomgW7aMFL4nU$#1gg>+ro`t
zEB_u1CHWQi(ZEG?qZ1GDJNqiC&=yL&=t`0I_=Yc-M-K+j3>z?(Zg+7z$pUZjuEgXr
zUgUmHs;{F1AF+=ssNp0A1D?XAuzMrGIb6pcCU7p`0xdCV6Q{9*Pt{ay#;IC#oiDk4
zCb4=+MitiZ0cT_R23qk1Bk58^ZzsNE0mhT)#q*peOC4A8ze5>>B8L9gvmD@Rs9nI#
z{M|H8#l&Xhso-fI_u+BQ{TRjHIQuB^JLPe!MN=c4f2QL=z^`!)!@-|8I<Ixi;$<l|
egIA?{1r7l7<6bq9cR9fT0000<MNUMnLSTY>na245

diff --git a/www/images/logo-ceph.svg b/www/images/logo-ceph.svg
new file mode 100644
index 000000000..bff41804a
--- /dev/null
+++ b/www/images/logo-ceph.svg
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   sodipodi:docname="Ceph_Logo.svg"
+   inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
+   id="svg27"
+   version="1.1"
+   viewBox="0 0 22.93428 22.4424"
+   height="22.4424mm"
+   width="22.93428mm">
+  <defs
+     id="defs21">
+    <color-profile
+       xlink:href="file:///usr/share/color/icc/krita/sRGB-elle-V2-g10.icc"
+       name="sRGB-elle-V2-g10.icc"
+       id="color-profile35" />
+  </defs>
+  <sodipodi:namedview
+     inkscape:window-maximized="1"
+     inkscape:window-y="1080"
+     inkscape:window-x="3840"
+     inkscape:window-height="1051"
+     inkscape:window-width="1920"
+     fit-margin-bottom="0"
+     fit-margin-right="0"
+     fit-margin-left="0"
+     fit-margin-top="0"
+     showgrid="false"
+     inkscape:document-rotation="0"
+     inkscape:current-layer="layer1"
+     inkscape:document-units="mm"
+     inkscape:cy="39.499381"
+     inkscape:cx="29.58201"
+     inkscape:zoom="5.6"
+     inkscape:pageshadow="2"
+     inkscape:pageopacity="0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base" />
+  <metadata
+     id="metadata24">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="translate(-111.75311,-212.54075)"
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Ebene 1">
+    <path
+       style="fill:#000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.264583"
+       d="m 123.18096,212.54075 c -1.54244,0 -3.03889,0.30198 -4.44866,0.89818 -1.36085,0.57588 -2.58333,1.3995 -3.63198,2.44903 -1.04982,1.04891 -1.87352,2.27125 -2.44969,3.63166 -0.59614,1.41006 -0.89752,2.90769 -0.89752,4.44931 0,0.88089 0.0998,1.75881 0.29917,2.60975 0.19372,0.82789 0.48107,1.63557 0.85432,2.40026 0.68819,1.40905 1.80379,2.81384 3.06538,3.86536 0.82281,-0.4498 1.28965,-0.94572 1.38884,-1.47622 0.0956,-0.50956 -0.12815,-1.05842 -0.7044,-1.72565 -1.36741,-1.56892 -2.12041,-3.58324 -2.12041,-5.6735 0,-4.76667 3.87763,-8.6456 8.64495,-8.6456 0.008,0 0.0393,6.6e-4 0.0393,6.6e-4 0,0 0.0305,-6.6e-4 0.0383,-6.6e-4 4.76715,0 8.64527,3.87893 8.64527,8.6456 0,2.09026 -0.75283,4.1046 -2.11975,5.67284 -0.57201,0.66284 -0.80153,1.23499 -0.70211,1.74922 0.10311,0.53107 0.56896,1.02002 1.38458,1.45397 1.26331,-1.05177 2.3782,-2.4564 3.06637,-3.86602 0.37372,-0.76469 0.66107,-1.57237 0.85464,-2.40026 0.1988,-0.85094 0.29983,-1.72886 0.29983,-2.60975 0,-1.54162 -0.30231,-3.03925 
 -0.89851,-4.44931 -0.57588,-1.36041 -1.40013,-2.58275 -2.44904,-3.63166 -1.04913,-1.04953 -2.27155,-1.87315 -3.63198,-2.44903 -1.40995,-0.5962 -2.90688,-0.89818 -4.44931,-0.89818 h -0.0393 z m -0.004,4.62214 c -0.32192,0 -0.64417,0.0219 -0.95873,0.0671 -0.92883,0.1324 -1.8401,0.46397 -2.63525,0.96004 -0.75897,0.47323 -1.43426,1.1087 -1.95215,1.83792 -0.53535,0.75374 -0.91954,1.62985 -1.10963,2.53316 -0.20655,0.97977 -0.19361,2.01224 0.0376,2.98552 0.21276,0.89514 0.61602,1.75703 1.16626,2.49191 0.14746,0.19797 0.31251,0.37855 0.48673,0.56987 0.058,0.063 0.11717,0.12782 0.17675,0.19411 0.002,0.002 0.003,0.003 0.005,0.005 0.007,0.007 0.0162,0.0158 0.0252,0.0265 0.60646,0.70473 0.91421,1.46388 0.91421,2.25525 0,1.19597 -0.66414,2.29315 -1.70895,2.85525 0.60776,0.33731 1.24734,0.61904 1.90404,0.83925 0.21816,0.0731 0.44001,0.13985 0.6625,0.19934 0.13296,-0.0835 0.58624,-0.42093 1.02943,-1.03369 0.42381,-0.58551 0.92331,-1.55674 0.89687,-2.85753 -0.0155,-0.78287 -0.17316,-1.54536 -0.4670
 9,-2.26507 -0.29199,-0.71355 -0.71021,-1.36743 -1.24449,-1.94268 l -0.002,-0.004 c -0.04,-0.0456 -0.0786,-0.0911 -0.11816,-0.13613 -0.20138,-0.23358 -0.40932,-0.47459 -0.57609,-0.75677 -0.20417,-0.34691 -0.35302,-0.71154 -0.44123,-1.08442 -0.13724,-0.57588 -0.1445,-1.18703 -0.0229,-1.76689 0.1135,-0.53315 0.3392,-1.04985 0.65563,-1.49522 0.30638,-0.43154 0.70637,-0.80806 1.15578,-1.08835 0.46898,-0.29265 1.00724,-0.48855 1.55511,-0.56627 0.18502,-0.0266 0.37651,-0.0403 0.56824,-0.0403 h 0.0409 0.0412 c 0.19212,0 0.38328,0.0137 0.56889,0.0403 0.54819,0.0777 1.08631,0.27362 1.55479,0.56627 0.44949,0.28029 0.84882,0.65681 1.15545,1.08835 0.31651,0.44537 0.54311,0.96207 0.65563,1.49522 0.12194,0.57986 0.11399,1.19101 -0.0222,1.76689 -0.0886,0.37288 -0.23731,0.73751 -0.44189,1.08442 -0.16594,0.28218 -0.37412,0.52319 -0.57544,0.75677 -0.0397,0.045 -0.0786,0.0905 -0.11783,0.13617 l -0.003,0.004 c -0.53338,0.57525 -0.9522,1.22913 -1.24416,1.94267 -0.29412,0.71971 -0.45106,1.4822 -0.46742,2.
 26507 -0.0261,1.30079 0.47323,2.27202 0.89753,2.85754 0.44229,0.61275 0.89596,0.95014 1.02877,1.03369 0.22233,-0.0595 0.44541,-0.12627 0.66349,-0.19934 0.6567,-0.22022 1.29635,-0.50194 1.90436,-0.83926 -1.04596,-0.5621 -1.70993,-1.65928 -1.70993,-2.85524 0,-0.78066 0.29884,-1.5183 0.91356,-2.25395 0.008,-0.0117 0.0182,-0.0208 0.0252,-0.0278 0.002,-0.002 0.004,-0.003 0.006,-0.005 0.0597,-0.0663 0.1185,-0.1311 0.17577,-0.19411 0.17488,-0.19132 0.33935,-0.3719 0.48706,-0.56987 0.55097,-0.73488 0.95359,-1.59677 1.16691,-2.49191 0.2306,-0.97328 0.24377,-2.00575 0.038,-2.98552 -0.19086,-0.90335 -0.57496,-1.77946 -1.10998,-2.5332 -0.51797,-0.72922 -1.19318,-1.36469 -1.95215,-1.83792 -0.79523,-0.49606 -1.70641,-0.82764 -2.63561,-0.96004 -0.31415,-0.0452 -0.63706,-0.0671 -0.95906,-0.0671 h -0.0409 -0.0452 z m 0.0429,4.65814 c -1.24383,0 -2.25624,1.01222 -2.25624,2.25657 0,1.24414 1.01241,2.25624 2.25624,2.25624 1.24382,0 2.25591,-1.0121 2.25591,-2.25624 0,-1.24435 -1.01209,-2.25657 -2.25591,
 -2.25657 z"
+       id="path3043-5"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [pve-devel] [PATCH manager 9/9] ui: remove unused png icons and their asset files
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (7 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 8/9] ui: replace the ceph logo png with an svg version Shannon Sterz
@ 2025-08-26 14:58 ` Shannon Sterz
  2025-08-26 15:04 ` [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
  2025-08-28 21:45 ` Thomas Lamprecht
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 14:58 UTC (permalink / raw)
  To: pve-devel

a lot of icons are no longer used, so remove them and, in rare cases,
their accompanying css classes. all of these are png files and would,
thus, appear blurry if used. this should somewhat reduce the size of
the pve-manager package, but more importantly, discourage the use of
icons that would only appear blurry on modern hardware anyway.

Signed-off-by: Shannon Sterz <s.sterz@proxmox.com>
---
 www/css/ext6-pve.css                   |  51 -------------------------
 www/images/Makefile                    |  50 ++----------------------
 www/images/blank.gif                   | Bin 49 -> 0 bytes
 www/images/cdrom.png                   | Bin 960 -> 0 bytes
 www/images/checked.png                 | Bin 478 -> 0 bytes
 www/images/computer-on.png             | Bin 585 -> 0 bytes
 www/images/computer-template.png       | Bin 994 -> 0 bytes
 www/images/computer.png                | Bin 723 -> 0 bytes
 www/images/connect_established.png     | Bin 704 -> 0 bytes
 www/images/display.png                 | Bin 741 -> 0 bytes
 www/images/drive-harddisk.png          | Bin 847 -> 0 bytes
 www/images/forward.png                 | Bin 641 -> 0 bytes
 www/images/gtk-stop.png                | Bin 664 -> 0 bytes
 www/images/icon-keyboard.png           | Bin 309 -> 0 bytes
 www/images/icon-network.png            | Bin 245 -> 0 bytes
 www/images/icon-swap.png               | Bin 324 -> 0 bytes
 www/images/icon-usb.png                | Bin 367 -> 0 bytes
 www/images/keyboard.png                | Bin 590 -> 0 bytes
 www/images/lxc-containers-logo-off.xcf | Bin 42654 -> 0 bytes
 www/images/lxc-off.png                 | Bin 891 -> 0 bytes
 www/images/lxc-on.png                  | Bin 872 -> 0 bytes
 www/images/memory.png                  | Bin 349 -> 0 bytes
 www/images/network-server-off.png      | Bin 833 -> 0 bytes
 www/images/network-server-on.png       | Bin 845 -> 0 bytes
 www/images/network-server.png          | Bin 832 -> 0 bytes
 www/images/network.png                 | Bin 703 -> 0 bytes
 www/images/openvz-off.png              | Bin 516 -> 0 bytes
 www/images/openvz-on.png               | Bin 527 -> 0 bytes
 www/images/processor.png               | Bin 635 -> 0 bytes
 www/images/snapshot.png                | Bin 570 -> 0 bytes
 www/images/start.png                   | Bin 549 -> 0 bytes
 www/images/stop.png                    | Bin 370 -> 0 bytes
 www/images/swap.png                    | Bin 926 -> 0 bytes
 www/images/tigervnc.png                | Bin 793 -> 0 bytes
 www/images/unchecked.png               | Bin 322 -> 0 bytes
 www/manager6/tree/ResourceTree.js      |   1 -
 36 files changed, 3 insertions(+), 99 deletions(-)
 delete mode 100644 www/images/blank.gif
 delete mode 100644 www/images/cdrom.png
 delete mode 100644 www/images/checked.png
 delete mode 100755 www/images/computer-on.png
 delete mode 100644 www/images/computer-template.png
 delete mode 100644 www/images/computer.png
 delete mode 100644 www/images/connect_established.png
 delete mode 100644 www/images/display.png
 delete mode 100644 www/images/drive-harddisk.png
 delete mode 100644 www/images/forward.png
 delete mode 100644 www/images/gtk-stop.png
 delete mode 100644 www/images/icon-keyboard.png
 delete mode 100644 www/images/icon-network.png
 delete mode 100644 www/images/icon-swap.png
 delete mode 100644 www/images/icon-usb.png
 delete mode 100644 www/images/keyboard.png
 delete mode 100755 www/images/lxc-containers-logo-off.xcf
 delete mode 100644 www/images/lxc-off.png
 delete mode 100644 www/images/lxc-on.png
 delete mode 100644 www/images/memory.png
 delete mode 100644 www/images/network-server-off.png
 delete mode 100644 www/images/network-server-on.png
 delete mode 100644 www/images/network-server.png
 delete mode 100644 www/images/network.png
 delete mode 100755 www/images/openvz-off.png
 delete mode 100755 www/images/openvz-on.png
 delete mode 100644 www/images/processor.png
 delete mode 100644 www/images/snapshot.png
 delete mode 100644 www/images/start.png
 delete mode 100644 www/images/stop.png
 delete mode 100644 www/images/swap.png
 delete mode 100644 www/images/tigervnc.png
 delete mode 100644 www/images/unchecked.png

diff --git a/www/css/ext6-pve.css b/www/css/ext6-pve.css
index 5c587a867..192671af3 100644
--- a/www/css/ext6-pve.css
+++ b/www/css/ext6-pve.css
@@ -290,24 +290,16 @@
 }
 
 .pve-itype-icon-virt-viewer,
-.pve-itype-icon-tigervnc,
 .pve-itype-icon-novnc,
 .pve-itype-icon-xtermjs,
-.pve-itype-icon-network,
-.pve-itype-icon-network-server,
-.pve-itype-icon-keyboard,
 .pve-itype-icon-cdrom,
 .pve-itype-icon-qemu-template,
 .pve-itype-icon-qemu-running,
-.pve-itype-icon-lxc,
 .pve-itype-icon-lxc-template,
-.pve-itype-icon-lxc-running,
-.pve-itype-icon-swap,
 .pve-itype-icon-node,
 .pve-itype-icon-node-running,
 .pve-itype-icon-pool,
 .pve-itype-icon-itype,
-.pve-itype-icon-usb,
 .pve-itype-icon-serial,
 .pve-itype-icon-cloud,
 .pve-itype-icon-pci,
@@ -333,54 +325,15 @@
     font-size: 14px;
 }
 
-.pve-itype-icon-lxc,
-.x-tree-node-lxc,
-.x-grid-tree-node-expanded .x-tree-node-lxc {
-    background-image: url(../images/lxc-off.png);
-}
-
-.pve-itype-icon-swap,
-.x-tree-node-lxc-swap,
-.x-grid-tree-node-expanded .x-tree-lxc-swap {
-    background-image: url(../images/icon-swap.png);
-}
-
-.pve-itype-icon-lxc-running,
-.x-tree-node-lxc-running,
-.x-grid-tree-node-expanded .x-tree-node-lxc-running {
-    background-image: url(../images/lxc-on.png);
-}
-
-.x-tree-node-snapshot,
-.x-grid-tree-node-expanded .x-tree-node-snapshot {
-    background-image: url(../images/snapshot.png);
-}
-
 .pve-itype-icon-itype {
     background-image: url(../ext6/theme-classic/resources/images/tree/folder.gif);
 }
 
-.pve-itype-icon-network-server {
-    background-image: url(../images/network-server.png);
-}
-
-.pve-itype-icon-network {
-    background-image: url(../images/icon-network.png);
-}
-
-.pve-itype-icon-keyboard {
-    background-image: url(../images/icon-keyboard.png);
-}
-
 .pve-itype-icon-cdrom {
     background-size: 16px;
     background-image: url(../images/icon-cd-drive.svg);
 }
 
-.pve-itype-icon-tigervnc {
-    background-image: url(../images/tigervnc.png);
-}
-
 .pve-itype-icon-novnc {
     background-size: 16px;
     background-image: url(../images/novnc.svg);
@@ -396,10 +349,6 @@
     background-image: url(../images/xtermjs.svg);
 }
 
-.pve-itype-icon-usb {
-    background-image: url(../images/icon-usb.png);
-}
-
 .pve-itype-icon-pci {
     background-size: 16px 16px;
     background-image: url(../images/icon-pci.svg);
diff --git a/www/images/Makefile b/www/images/Makefile
index 567338a56..bd6693575 100644
--- a/www/images/Makefile
+++ b/www/images/Makefile
@@ -2,15 +2,6 @@ include ../../defines.mk
 
 all:
 
-# start.png /usr/share/icons/gnome/16x16/actions/media-playback-start.png
-# stop.png /usr/share/icons/gnome/16x16/actions/media-playback-stop.png
-# computer-template.png /usr/share/icons/gnome/16x16/mimetypes/gnome-mime-application-vnd.sun.xml.calc.template.png
-
-# tigervnc.png converted from tigervnc sources
-# (tigervnc.org/media/tigervnc_16.svg)
-# checked.png converted from extjs examples/ux/css/images/checked.gif
-# unchecked.png converted from extjs examples/ux/css/images/unchecked.gif
-# swap.png downloaded from https://www.iconfinder.com/icons/17009/arrows_exchange_interact_refresh_reload_swap_sync_update_icon#size=16
 # virt-viewer.svg copied from virt-viewer source:
 # https://github.com/webrulon/virt-viewer/blob/master/icons/virt-viewer.svg
 #
@@ -19,9 +10,8 @@ all:
 
 # icon-cd-drive and icon-pci
 # are self made (sources as .xcf)
-# icon-swap, icon-keyboard, icon-network, icon-usb, icon-cloud
-# come from fontawesome (respective fa-refresh, fa-keyboard-o, fa-exchange, fa-usb, fa-ellipsis-h, fa-cloud)
-# spinner is self made
+# icon-cloud
+# come from fontawesome (respective fa-cloud)
 
 # icon-serial is a modified version of
 # https://commons.wikimedia.org/wiki/File:DE9_Diagram.svg
@@ -33,51 +23,17 @@ all:
 # xtermjs.svg was copied from the xtermjs-branding sources:
 # https://github.com/xtermjs/xtermjs-branding/blob/master/logo.svg
 
-GNOME_IMAGES = 			\
-	checked.png		\
-	unchecked.png 		\
-	start.png		\
-	stop.png		\
-	gtk-stop.png		\
-	forward.png		\
-	display.png		\
-	keyboard.png		\
-	cdrom.png		\
-	network.png		\
-	drive-harddisk.png	\
-	network-server.png	\
-	connect_established.png	\
-	computer-template.png   \
-	computer.png
-
-IMAGES = $(GNOME_IMAGES)	\
-	tigervnc.png		\
+IMAGES =			\
 	virt-viewer.svg		\
 	novnc.svg		\
 	xtermjs.svg		\
 	favicon.ico		\
-	snapshot.png		\
-	computer-on.png		\
-	memory.png		\
-	processor.png		\
 	proxmox_logo.png	\
-	network-server-on.png	\
-	network-server-off.png	\
-	lxc-on.png		\
-	lxc-off.png		\
-	openvz-on.png		\
-	openvz-off.png		\
-	blank.gif		\
-	swap.png		\
-	icon-swap.png		\
-	icon-network.png	\
-	icon-keyboard.png	\
 	logo-ceph.svg		\
 	logo-128.png		\
 	icon-serial.svg		\
 	icon-cloud.svg		\
 	icon-pci.svg		\
-	icon-usb.png 		\
 	icon-die.svg		\
 	icon-sdn.svg		\
 	icon-fa-network-wired.svg\
diff --git a/www/images/blank.gif b/www/images/blank.gif
deleted file mode 100644
index 576adf215236f201d33b5b510b68d3862d022a90..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 49
xcmZ?wbhEHb<YM4rXkcLY4+e@qSr{1@7#VaJfB+=Jz{Jthzw-23{$y<iYXEP=4fOy3

diff --git a/www/images/cdrom.png b/www/images/cdrom.png
deleted file mode 100644
index dd1dbcd5543b496175e093eb84c5806583cc55f8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 960
zcmV;x13&zUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H113gJZK~y-6Ws^&98&v>>kMF&6=V8ZVXQpuysnk+g5T2z%G)nXM
z4X}yWAhkwO4MOS)Rr~;!l`5eaDj5VDD1sD(=mH_NawSj$ZUkKbT~v1BN0X+hJ@$A!
zbMM??Q5BVP)<<V?K7FYqN$_~q)=n>QLtmwoEyr<O1OSa|jabUscobZ^c=3~;AMd9g
z4U|fy3B%--`T6<Rmll`ILSY)FX#oJjaE!rVfa}+5!PRS5H~e8xu2!pqe+NpX(!}JU
z+@ELG$}@$j0%>mFK@^2hDu&Jt<m^e<xg1Q>!v6lgI)CAO_x|3&T(w#q5CBML%*xwm
z-kG-TEcxSB9qslG1_KXLC`h3oB8k8cFz`I&b9r+1-Lo^9Y`OvfwA0yMSXemu!HHK-
z=&g1GQc6To1g}4Y*Bc@jjbUePaIS+;f;g7Q+IH&R-tN<t%7@pOm9bV=R#vPa7(mlB
zP)afK$IzILN!Nj8WuWT@{GpFn8b}d^SV=4`En8c^Z><u>v}M<IksyJt>yU8_*PVip
zq1^a>Blzm_7o!LLek_DStJOgiN(d3caU4*_mPr(eqHY+_GzQK&Vxdqd%;Ltcn_@f)
zk9fUd@$1W%B6rF~&l_PZBqAYUnkJ->MFIdw0M0p7tV1b|Y&HX?G4hBt(<m|12K-22
z6vhZ;45c38C!A}IQQ(6RifmSg>*gT^@Ybm^cc+}Db11)k>dn*q?%gIB4={`rLYbiF
z^}#f)!K4(mz1`hoPaQc7T{kd0JBxnLM>?HNoqO+n6HsV2Z==<|jhsyY<wGSFI_)lE
zDQfh^7oPVLq~198(s2zbfTSo=grU_rKz;Kj{{HJ04({K9VF@seApwDtpTSQ*Uh%t~
z_BmRwZ|!{c`KQm$Ju~-QE|(_{FCiEP65Qah(iDbCA!Q7e5IB>E(QGv3=8a#zSzrJ7
z0s#Q8=a<(%TJN@6J252$8Y3`t3Zm(tnh9puuqLMAI7iWFwB(f^zT5SOLHU0&WpnAu
z@t0qDZSmxy#dQmmn+T&ZdJpcQ+il_IZ*{-jX?;8PqyNhEq|R0*vq~vj2}M|hN<f*`
ih=r&{;rPoZb^ZsTB952|2jMLM0000<MNUMnLSTaInX$$I

diff --git a/www/images/checked.png b/www/images/checked.png
deleted file mode 100644
index 0dc1ee7d0d1c73d2a9e03061b14e5adb665a9178..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 478
zcmV<40U`d0P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS0004%Nkl<ZIE|%~y-OTH7>A#CZqHrJ2i^yF-suSnii(k>uuu{-B8Y)R3yatZ
zqMe|n|AHV|E6HCVfrJpmMi2!PLJCPEK||0Ycu^O!C!DY|7NXp`sL1`QnV0!J@5jtY
zkLjTtsj}RF1@LBJ(A?MfY3id~0RSe($8XMJS%?U}@1wP5acL=7!KGH$Hbdr`Oq!p+
zTy}ovnHcFLlZu5~C{?bu_G&F6)YsK8_imXZx4>@aKeFlg?SM-uB_v{1tbg0%*ey_>
zOVHk2jn+DN?z*wE(jl3s!m%re#~$-xWgDdwZ(l#dD|q2VrJHmriFXPc-}k9b#o7At
zhx}22TsFq@jt0((XCXkKg-klh{QIx$>>kqAlx6wLHcAP@ub!f{#&(?BD>ylEnI7v#
zM3|ZV%)wumRN@gYyBg726OD#P7625BMIJt|>3h+HAczP<{Z9}KN-3gN7!Zh95ruo4
zXLz6;!C+Ytdb=9=?|B$)h(zuHw6-(@7xzCo+Kn*=-}iBBJ7f$2N}uO_B;|hRbJ`4W
UA=FcOD*ylh07*qoM6N<$f@@CIwg3PC

diff --git a/www/images/computer-on.png b/www/images/computer-on.png
deleted file mode 100755
index c5488b1e9c1ffd860b2f789a331c2924ba3fc17c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 585
zcmV-P0=E5$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru-v=8H8zUNt^#K3?0oF-G
zK~y-)osz$6lVK3Yzt7JEBtxx2-ZwgD5%q5n1V?{N#xyEIs+$fKwAjfEnk8EY5r<M7
z)YTRW{SzETN1LQg8iPaA^v&}=_nd>F+9KNY3&;0vxX<0eiG_tHvjM1k?{fga0KoiT
zS4!;!7IWHp-?(=5dNzt<WNZc*n}M|%SZhIn;6@{i+z8H%eO!0Co!rXDm4;5e&rY43
z!k4d~F^Q(9Pa#cxRud5d1pvV1OIME6ytcjyDFlcJl88WoFsY=JzX9PG0C8XgIwl|x
z^q+vW_0>rbAR=fmC*AFCHjWCg*1{SKV+^#`P)b8e31&tJ0p5G0K1G^3G@DHbAkhpw
zeE;r4-TO4h{EN-w<X>*I*%3<2iNlM%S$bVlLOiArbfFLf0NU+MC@DQLzq~thZ~ovR
zhjeS^rdxjW*8J`2a-)RG?eaDN2S$s57ot|Lol}fYiAzls<<V+y;!Gjl_pPlCLSSeu
z5k(RDy`GEW(>L<**;p_?7xT}azPfPn{2isFPLk37G;1xKbI9lOFxp_44AKAIhY||C
ze%BR?#XSZuqFgBrnyn4q9S)8Z8?A3#u9SAG)v5siJs1p<`wwPMO!7p=n7w}QhXjD1
XJee$0O1^_g00000NkvXXu0mjfNc;Pi

diff --git a/www/images/computer-template.png b/www/images/computer-template.png
deleted file mode 100644
index 1b0a4a2fb88b66f49e659ff307c1f69d2c8bf5a9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 994
zcmV<810DQ{P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H101|XXSaeirbZlh+P+@Roav)P^Wo2}8xv!D=0000NbVXQnL3MO!
zZ*l-kVQ_CCLt$)TZDDR?a%E}Xks2xh001X+MObu1WpiV4X>fFDZ*Bm0X>@2HVIW9V
zM@1lLWo&RDW^!+BAWC6tbz+882eSYG0_#acK~y-6ZIl0N)nydNU*~zA&-LyuhPydj
zx+zV)o4fb!E+;7I(oKJHlEI1~D1R_W6ru1x=r5>#h=`zqLP5o-9};P>fkOQdTh86P
z_L=wISxz(erC<)PpU?Ao`r&gKX}#facz!sC_j#S?$amj=b3{Zwjcn8o4(D9x92Ia?
zz(-^(viAD$E3g0g>KCbzFtmrLOB*#}B5ObE-*<3x^ZGPTD+~i~VR2#G_{7id!lm;+
zhM_(5!JDHK4XUZ}QM6Kf@9P7HO|4ej+`K-`=imOs!_`{7Fa#V?6p_@HlWz>^YuCqG
zS%#0VolY&*Zm%5ad+R=sS3wX0@Nl)pwjEmt!;tNnEm&*m*wN1Y2Mc({(7*qn0@$^4
z?}L`-*Zpp-O#_%92;zApVrII62+aIi1p$A$N?<K#-~WiM8=F8w$-lW_Y1K+w|IRzW
z9u)=w;Aob+9Nv|tMbGov;C6DGEW?8x?9Zh+KD>`jEhzwob|1glS!n+uA@N%UL4X6a
z(o9ZHAxbgp`-nh!wv31{KYy3TXX1j9@k_bs8^0aUYMoba5HqlmC7;jXqKHgqCm>`p
z8I;m=b#|eY0^n%hiCZ1n)=}*eI%W{o8ED1SR1vK-zVD+%D3{A<rQ)m&09VJ)b(R0V
z*JuV4!P*D_)<)#>IU?uCc6XzcCY#Nnv?iO&p(J+ja^E|1Tf5U^S`vx1EeK$Yp;Vg2
zGlm)8M`?xc`>~@LAFVY2S0=vfnp<8-(JJO&3<T#KJw16qDD?EAm8Q_si&C0Gp?A%}
z(HGucY|AuF3MvIqUn8U%8Yvb_c!>n1ViBzk#ZnQYHKkIKWHK2uxbaono!P%$6r|ya
zk2EkafQUR92uS@f9PkSa6;7=DaeK4^(g$Fa$i3y|rRUP=Xa93d|0ho+&8d#dy9E&d
zIrHwBW5!dT1hvN-odbspajxPVa}HO<xvFzi!Bv*_T>S8H@aUzrW}Y|l4{G-{sCVg*
Q^#A|>07*qoM6N<$g7#g*<p2Nx

diff --git a/www/images/computer.png b/www/images/computer.png
deleted file mode 100644
index 4f9b4dc7ee8a0ad479aa82d2c7f6fc33c3d95c82..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 723
zcmV;^0xbQBP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H10#HdrK~y-6m6E+rQ&AYkpYwHZ6KD(su)Re~!oXs*e~KR)X)195
zG!8D9D3M79WnnSIm>36{#8v(S7b77uI!Rlglm=5ux%Yg%4wMow`0*qs&wJjS{NCrB
z95y%iWXb~z*4i`x5C9PU)rAlTp4g1k)-K+<c{`PjB7{MRFbEL@A%Y-)^A0*mkmv+j
zcf7OTsqLg!KdmlGV{NLhzYkZ3^I(kOB5}^UwQ~+%*T29Ro085sc;^8CBO@d5-eX{3
z0Qr0#8yg#FHk&9E3dra4u+}0;5-cw-gEI!_9Hes&&bwnWaS)eC_YGqIAVEuW4CO|V
z?$4m{vkmJEj83|Vx&Yq+$aEIq61-;!)$Kj>ULM6zF2a6H@Q%Sbf;Goy*_j0HxGB;Z
z2o+-QC<J;VT<YyXlLWkX@YcXt182l3z@Gzr|GaYHBmS;V0uaTu-CAn>+Zuu(K%fFB
zr68q*5E7ho5D~ohu-3v@17kGG<uVu$O9CFPeE7Ivtw|Fdv#C@3$(2+GOt2Yt(mc_-
z_iyI~V~?HpGM9@00M+Ui1n1Tfy__iCn>}-p^MGP$Tra(Pt&B;|^py(n;Ndh%cZ<6K
zGzb*}Ua<Lv`D=o(7Hgxj*$gVxEez+Pu5WMez<Yv}9NBCZje1>Yqrp3w=t{(hp0n9!
zPv6`qT%Qnv%Q!xr8Uz8f*2rWsP*R~Cx6#;ZKrn%Nqo&8k#*PTIgkovDRjzE(VY~HD
zYqRo$ily<x$;nAYM3AjkE1teT)$<=807|K&Mtz?Hz%Lwgdw5zoCE5T0002ovPDHLk
FV1kpfHA?^h

diff --git a/www/images/connect_established.png b/www/images/connect_established.png
deleted file mode 100644
index cda578586504996becda827a33a194627dc42f5c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 704
zcmV;x0zdtUP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H101k9TSaeirbZlh+LvL+xb#!HN_!ts)0000NbVXQnL3MO!Z*l-k
zVQ_CCLt$)TZDDR?a%E}Xks2xh00IC>L_t(Ijh&M{Yg9oLhM&1R_vY>zG#{d@AXZ5_
z3xhwvN>CK7L@Xrn2dGUVK_qHGE$mHUAyG)yLQxAN3KsbXf`ygDkSHPxG0FX!Gshx(
zH(3aT_*O3m&YAa_Ib&3nQg<eA-_7%U!h5j_po*%plLzChwT~>@lqAW-=*Xz;>+7c)
zSBc{oYeUjBAx#sKG$qY8eY4rLb90UHjsZnc*f@?EIz5I03RFyhc)<jQI1Eu>J;_*@
zxk2Fy+c7}IAzlcqrRUg5_SGT|_0;(K{SSjjd#NAn#yQXD4{tHXAWpE`x#Mb;>FFno
zo;rZ?t<8OWuyqG(0n0@lCqfVeIC0oLax**o5+|~iV6WUxa=cf-AmXt9!@cl)jE#+T
zM7*=k2_k~3$9Yd^Ei26p_IJmapu&$|f61Ne;C}evKE@aqMbYEU1maK+{k^@^s$GN%
z)h>%Ggv`TQCLP?v!zVB%$W`QBJAqfv;+IcsEvB};DjnQs&z)gqd8PLH)th<iRov?8
zs{Q!%I#Co6g%P0*F+tF36pA7z&-0R-dy`WD*wC(<k!x3{vMd`{Ra^cGZM}c#OO@O+
z&tBXrYj$X0;Jv9-ZmRl@t=vf^_x74yTw0pHaPfStex$xzf1BGF)2*#&=JJ(GKb>=j
mckM1u4DD~1`Ff+#5P*Ny5qD2V{+*}*0000<MNUMnLSTY;Z!|Ul

diff --git a/www/images/display.png b/www/images/display.png
deleted file mode 100644
index 0be2890c8b392c76bf474dd0201d09a44a5509f0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 741
zcmV<B0vi2^P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H1026dYSaeirbZlh+L}_zyY+-pIX=870bMtnaE&u=k7j#8fbU}4=
zXm4@=Okr?uAVXnnVQpb<WO8L`-;o+B0006YNkl<ZIE|f>y=zoK6vcn{y?GxIePJPB
zf`W~$m7O+9{sYl6*!cnJlt2jBsVD}U?W}A>5VQ<}+9@g2Xk}*=5SQJU-F)r7nLF2F
zWnEG6<G^s>4)<`*nUQPPmgXYXR1K8@nDHkDkR<7eFz-SP&Dq)6YG!(dJTJ)eoFdP0
zE~Bn%YCjlqT{EZ$qgkufs$RWZZMxd~s?lh0{M=3c1yAnI;e)SSR3*j;z>#C8L11!!
z$)TwOeEhV@_HNCQ=}C?rZs3FBgYx*%LnINRDo!<y1j@1i5gOHgOj1l7lU2^4gOlvm
z5mh7T(1A#TYQ$+&q74P|q975WC~~$2N;xsXOk*E|AVf7n1RsVaCL(B5euz*MIcbt&
zi6a7yDkse{YK>?#d@$-71P~dIphI8IWw<n@R-r6QGMAzT!33`nA0o91h#(?k5xzNC
zefr?9UtuVqxJ2lEZndgs_b!p=8CjN-xeVtVX__J;m>H@{2mv2F-h0;9*AYp2PBqT2
ztgJMH*J}9Dh9&)u!7u~o(jJj{`F`;ox9{AvlP6BHx3@<KigS*)Yj0S%x+p(I85dYy
zzJ0zdi|djmQ)kbdE4FvG>G%5pJb&?QU}o+9pue<mW%2%K$;?LQ)}0$$TU$Nrb~o+I
z<`>)8=vb%Iu}-IL?RML`-L5U)y|pvG<Hqg0TYLZd;^hmck|g<M^D#zZj30g*;eYTI
XYGGMj9o}(E00000NkvXXu0mjfW3xlL

diff --git a/www/images/drive-harddisk.png b/www/images/drive-harddisk.png
deleted file mode 100644
index ae804a26b94ca4ee65272146224cf4fa7afb4866..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 847
zcmV-V1F-ywP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H101$LVSaeirbZlh+NMUkhAVhL$c4etgw=w_#02FjZSad;kbZBpK
z07_wNbz&e>bY*F7Wpd{G_b&hd03&ooSaefwb#h~60BCe{a5^t9bYX61Z!TtXWo2Y#
zb8B>Oa4v6hXMM7arvLx~VM#<mR5*>Lle=ycQ4of|b0HgSXCdpvByo)7Kokf~5E2x$
zNahV_Qt|>6yaZiJF5(?hAW_h#fPw-@%tetMSdvJIZ@cUDuJ;@YLW~gw62CN>VrIUX
z(P%`iR^xx90UkblaK{L<A*Eaeu-1+xrD;ksNEjr86Q3R@{rKMI=8IPvzzDN(>*j5L
zDnBKYB)KA`#9GU6IOG@57(=Jiq0{NGzyIBP^Y--ya7~{yS#=Ap@O}R|@MvOU0&6Wv
zk|2bj*Xt3-G5vm@;c$rO6^Vjy^>l?3<<m61E~TW^YVpngN-mefn=WFE!CFf$cb0Cq
zhm?{iiU5$m0diTE-FW}u9j(?emzFMbp)@zPLcP8NfKrMe2uFZ0i~#iKFQ1lYW@ee4
zEuoa6R4P#}mvI~ifb-KHy`YEIdVGQ~46)Xp34=fs@&(c~<>26ey}dnlcXw$t8W>|J
z<n#FcSCmpDNisTP7z6-%v9dT8^nD*81g`6nWf`t}j`{folu`&GMu6bw1bX7kBnt}*
zwA*dE-R^0k<2ZPphf<2e!$Y*z<A5*-vDT`=V8HhFHsx}eN~OZ&<Rr!z!Z76M=!j;s
ziPjpeHB!nEAdX|Kwbbi%mY0`lHk$|`u-2lK!f_n5))b3HwzjrdTU)~zGXf0agdhl5
zUtcH7GK3HaAx`iA%d#w^TCJkBCQZ{3pcnM^pFVp$x3Y4TMx#L#Mg&nv)Q=HDFjXjU
ze%hnmZnIPW$mOLf#+okxqE@Tny1BbZ@dQNW?>{##V@yK{dB4*Mem+yT8@&WB{!8(n
Z`T@q;I5<Yq8{+@~002ovPDHLkV1mcFYbXE!

diff --git a/www/images/forward.png b/www/images/forward.png
deleted file mode 100644
index 1fd92693c87bc927d32a5502505b3694c0086ac0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 641
zcmV-{0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H1026dYSaeirbZlh+PjGZ;V_|F{L~?0%Wj<%R3;+ND-$_J4R5*>5
zlTA+(Q51&X`6{GS)+8kU3paM*))-9;$z51LRHD%!jo87NbSxAI7N)V1hLG@KnyQO#
zx<ZL<@OPLh5X3aPlay)E>7C)YQVE$UdXl?%ljnUFC+7-81i!JYr%{MP9)u$hGKOJR
z{W#IL4S+;p;mYN!=kMORcTw$$yv=6k*?$QHLT{)mgh-?Zw{MQf;fPxDlLQJNB2lSU
z+^^s2P?S)hBv4>Xn43S3e#AE3Y;=|oQO9Rl8J1sK<a?iY$#EQNHf>s3&U4GkFd~9L
zL|Dw{W<1Z+BuUCWdZ?vO=ehYAriRs0|FwR(ukRc<Z{tN_&28DOK@k8v&(kIny6SnJ
z=9g2+bosE+Sgusx0RR*wgy@B+%-!}Y5db7f$~}9YZAp@p^ULO>!MeJ;9}ErN0sz$O
zU$FIl%Wb=S_{<&Xy2fVbrnzk&lH)kEv-^prXQ#NXYmA6GFL7Lpv#E6IZ+Yh<r6x^2
zuEp7JCa^p<cK=fHiSehry<H<C`IwK!N7+eE4!VQ3>zV`C2V_N2u)n{D)wNZ(Y1^@t
zmG$yTE>OTZ4}U*6K&|!xg<{dQn~hju{bl(yCj|Y*8zZr(a4akULNDPs@w!;r^y2~r
b|2n?_;zw!Fu(nHq00000NkvXXu0mjf8(AMG

diff --git a/www/images/gtk-stop.png b/www/images/gtk-stop.png
deleted file mode 100644
index 775803d1f455f152f8ed3b5e980f2081da4a9421..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 664
zcmV;J0%!e+P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H1026dYSaeirbZlh+PjGZ;V_|F{L~?0%Wj<%R3;+ND_DMuRR5*>T
z(>+UDQ5XmC|8vfXCO2=3gHWWsQWRQjiwYgQrAfYp1azqOD>!w^ln<exAWn7b8l~zc
z4h<c&CAT!RL&u~6lk@U)$h|QyZHLl7oaMsvyXSe%ImFC}Q>|8(gqpf=&So(dDMia_
z9qjD9sSkgr7^qe&ODZvaRxFfqzVFjG5QZV2oYq=KcV7%6#LOeb>FXQ1+Sr6M=I$>_
zVfE+`Kj-Hs5SdEJyW&ruslNRh&u3@xXl4fYvsuig)5r^fk8h7L7X)-~Wo7znvspfS
zUwan>FMkM`NSqf7rCg@bp!(J}p5^n%C<W&nm>JBBw3K*Agb%N_kiNd5Vxg21YU%<2
zgtac``#xQ+m+{#1;7JLsHH_A9*7hOi;0b{T#^7pW6Ta_LJZKg7$;Kc>1fw+w05iim
z2Wu^?wQ$xV35?8U1ONb|H3ShrG}yk2fEXFi1V9mh7;vtS7z6t^Kq!TFw~LgN{T8A&
zI0mf6ZFHo=5kkmz7>2xju#YbhqP2$U_4-TeLGd@w!|Kr?!Z2hhMGF9gGrhHw(^{*u
zxWG^LcF{~G(TTPjALT88@1BRJd%J_nWVH@{dlNH_23@X~!9&v)N@4k6ADzX8iJSO;
y-a?#ewX!4=iF0dRZX6Ioww>v%{qZ&aYkmQ+X-)2mrNEv50000<MNUMnLSTYy!5{Vj

diff --git a/www/images/icon-keyboard.png b/www/images/icon-keyboard.png
deleted file mode 100644
index 71c568a94cafde574a4c7fda4122704b439bdd3c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 309
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_yJY5_^
zEPAhA+^feLD8l+6e}}n~VqKSXNJpF7A?A)F)d7{fQ_C;-t_?md+P^@c^+}MTklG@J
zN9iJ){e2vh@=U^tR_(oJm%aAve)qOaoo_4cPZ#t??=ctQUo?5)5f-<kiz;%4J=Ybs
zf9wgov$$DZWbLhE%sGkdme&d-H%H1O3-7*hJWFVrM1Ddo>)s1fO4*-B9I)C}*zt45
z*A0!fG7ptHU&-!SDEhNq>A%AVyAazwE2=#1ERtKe+A3YnzV7>{2PMHRyP8*SFl*i@
z|H=LVSMd(Vi4Xaf@ALZ>y=CK+m0i(!8h#cpgTJ@`V98u%UgJHbWh2nn44$rjF6*2U
FngBncf`R}5

diff --git a/www/images/icon-network.png b/www/images/icon-network.png
deleted file mode 100644
index c21e678c5b49cf0ef032c22acac61131a35cc8dd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 245
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_uJY5_^
zEPAh=SIlk-6lwoB|Fdb14o8w<=f#xhyX-T58#UE2?eC4)qB+Co+QtMynG6GoHi@k<
zPk6cHrhhxoSbgs4|2x$``bF~1%8icjX`cviv{hJ<*usBiLHA|m(gV?L@o$*zD_lA4
zBiM_?)gqRK+C0_MdT~c_#$(ype>U{EZfe(9GJSc*!;V~q`{ytCu%6FgVY%vLwZ-s&
qcopNp@_j##SP1Mpbvm9k@to}nm7PL!^%{Y$X7F_Nb6Mw<&;$T+(O|a#

diff --git a/www/images/icon-swap.png b/www/images/icon-swap.png
deleted file mode 100644
index 6e3417e12109b726af22b981c4f6f3a5e33bbbd1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 324
zcmV-K0lWT*P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x0QpHoK~y-6#nV4Z13?r9@ZTzIX^}J@KoG2Kyg*2mN)aqPK=1|@9>5Fu
zr}qXqhOtmAB%+O2yOj{JFcve5lXX@>i+nK5?0et$_M4eE{1Zh>d>LC<!wh%0iR)jn
zkEcjZ$31pX;sX7g_&5<vafMsFC-F&~hfVQbLOMYw$*thD;b^WvfybCQ%Q!1B`l-M=
zDm<f`DbT}9<WzAz$nX}3f$tW38D3Y|W`)%>F*JWbBjMnhIFI>p9aw5{^eS9kjgD|T
z2eH6WQ&2mon`DMJTnf!JP2z{SKlX+8EV1jWC(`kN?WVBpF%{UvM*N=O8XqnEzvC17
WvraN|24DyP0000<MNUMnLSTa9eu*gn

diff --git a/www/images/icon-usb.png b/www/images/icon-usb.png
deleted file mode 100644
index 5da1db17aaa9ca08fb8263305a6ce8bcb13a7be7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 367
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}Z-7sTE07*M;8nZv51?!GN`m}?
z85o(ES=l)_x%mX8RMgZpH1!QF>|FxG;^LFjI%ls~yJ5@LUHc9mzx?Fc$L~M?{=M*&
z8>lnc)5S4FLUQTBn?eU2L|iZ4y*@=kIZ3S}<MYq|=O=q<{+hY<$6*7-DY;8J)?eH-
zS6;@{JNbsBeDvMuzouKC?c)}I88dI*zBLuG);;+<50*GB-Dq&{&c(0KjG3AbdAH;&
cW#3=P7%j}UF6oQlVo<Poy85}Sb4q9e0K*4YV*mgE

diff --git a/www/images/keyboard.png b/www/images/keyboard.png
deleted file mode 100644
index b0d46dcc8071e6c4b103b98ca5936fabe72a09c0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 590
zcmV-U0<ryxP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H10n155K~y-6m6OkE6Hye#e|Iv?zrv)%CPLIEnM@ag3&rJZYJ!ED
zg5U#)3sFQ|1w?SE(1PRv-1q`n2|*D`5uc+jMX(6YU1a7?XXdy_+DJhY&*r=5JDiVm
z&;70v5tfPZcw8=(N~K<}_w!HQTB;i;7K`g5rg5IP7d4JXqnuN7+P0nDBrSaYZ-KS7
z)f*y-<kaf>t=?92zOEMS;M2i}yE)6cDvA~&*94jhB2nyZ-`aV%PykTl!*Qbw7?X=v
zN^~TX>!4oW?(WnUUICEZ?(R2$gTs$cB;ysR?<n2^vW&o7Nq8hm?rnGPd^sEM&2Vo&
zO|!w#(O284IOsq##Q>+`5d50v^;(S|$Hz0i!o_+$$>pq}m8RLi_kG)S+aSUzw%aa}
zf$O>;Lciai)m<bLeBZaj&<w0F4DCka5^)^kc^+{b)9HA`vBC2?GxU&5@H`J=Vm3ED
zu3X+=GMU&`7>2A@Yc!i11VKQdP(bT|VzG$UnpUfc)|zs;jMkcVdzx3P7l@(|JBmz_
z&*$w2_a81?;)~}m&(6j~7-JIk^x5P6lapkSrrGR8gsC-75$0Z*b10JhN`APEk^UJ=
c|Hi+?Z%SIsi+@ONMF0Q*07*qoM6N<$f@&@gIsgCw

diff --git a/www/images/lxc-containers-logo-off.xcf b/www/images/lxc-containers-logo-off.xcf
deleted file mode 100755
index abf375d058bb50bf3b5649028cdd32eaa8fafebc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 42654
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
MtTV?I-u(Cf04t31)&Kwi

diff --git a/www/images/lxc-off.png b/www/images/lxc-off.png
deleted file mode 100644
index 6e2bcc7796ecad317ba7c7196a1bb5eac2faa75c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 891
zcmV->1BCpEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-vtN_It&IcqQn3I0|-e(
zK~y-)U6VUZV`mVBzyH54+ZeFLBXE(pScXK}U>7SbN=F--6p_+EBw9oYNU^JE%M@u4
z1yUO5C?HJ=1Q7+28{|~0L=?CPmSrsSlrc75*1o>i{+(ip#b%`G&YYQZW=8N7olXbS
zH1U0(ot+&l%ld48fB#o0rMIxKu(Gzcc6W4i)Wr%R01yCIS6A4!4Z!N^YSeYzuk-o*
zMyXU9>U25`4-enR<MEYbGWo~S(oz**dwZM3#l?>VPpsnd^75<0!^0nUcXz)lm&=%@
z34l_HP$-0L+rLL5k&Ugbtv`hj9RLlWTrQ8~^ZD1F=dDMh(N}>$fNHf$rBXrDG=vcN
zzR&&r{R_|YzBxEJ=zsI(O?Gc@uO<qG!nf6G^(QIiE2R`tN~Dw&3I)>XG^tby&-0K{
zcJ&*EK{y=#Yj$>aU7Ver<&{zsuItinw*in+($mv}Qi|o}Wh~3$`uZA8)4C)>LqjAI
zi3h2ainy+eVHjO!P1B^&XaEq6MyXUP#A30ooT;fP>h(G|H#hxSGMRkaZnv#qFo<PY
zSe8Y-UZ+$laeRD?<2Vcq43N!c86O`f5{Zz_W^r8?+qMzubo$}s<fJbY3Nbl3NhlN|
zlgV&#anT)F*L8f~r&KDDN~JJO6Wg|#pP&CAGMP-R(P;GMayjnq?$9)i$HzyMQlEHY
znkHjoV{C42GBY#7+}s=^BO@Qg>FH^$*=+V|nntBkp;#>P@bG|A3Z+z+0AO@<6yNtr
zCX@KSk7ZdkUDx&Rl~TX>zW-%^e?Q@Hm~y$y`T04X=b@CsFbpOpCKwzX#57Gj&qLSs
ze{@}cD*$r2+*q^OTyb6Zb*Iw-!1sM_Z*OV0+t{{^VHh88UkCz$z=mm>Yw>vevU|z^
zg+k$FtycT3*=&9;gh10YTCLXe^=A9}`W76=dG}w9d{&I(IDaP+i7&$8@Xu1p_d*Ds
z@_jHET%Vqve&IOIyJE4}ZTiUs&)+nk&%bOm8k?<F%k1s#{UH{MrT>os_!r>6WpQPV
R$c_L2002ovPDHLkV1m@;qe=h(

diff --git a/www/images/lxc-on.png b/www/images/lxc-on.png
deleted file mode 100644
index 9e2fbec7c5053191a0e088ba7fc3657692b279b1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 872
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLidG0>c;6;u#niO9FgC
zT!G@bxw+C{@c;jRU0q#1K0Y9M=FAxz8yj(PabI8GPoF+*-n@C?!i79MJW5JRJ9g|i
zbm-8sWy^$wgsiQtH*VZGXX_lHSwclC3NkV>mMmGac=6(`Tekv9pcWwG(xpqQR;`)~
z20+G%6DM}<+67bw1VE$SzJ0rX{rdS}uzL0CJ9q9JIdW*liWO_uu03?%00##LP??X9
z5726$X+UwHv0YtV>gwu11#{-i0crs{l9!j4pPye*Q4wg#q_vZTq=kfqg*iDnxwyE*
z#KeF;5)>4)ooh2={tTc4=FFetKHrUd5*Jq=m#~|#2oOva7M?1Uy*RseRjv4RagIKA
z{#rgsJxQPkXU&~uKgW)10+;Y~VZO<HypwsQ=SW#tSWKNdwPAj}+;mx<N!*+hI5{V9
z@J!;7n;}<QTN^Srh<6gN&}2ce8DhS3edo-b(>K4*V7h_nLX)ofUBEzouV8fw81AMe
zL4LsulB-rSWxUVSI&w^xqv_|bb}ok-cirEA{PgMPr=Q`^Uq%Ve{QGaNu=V8|4s2E5
zel~Ha>^iJ<D`AZ@&;Z6HZ+91#{*0S}Kn{C}r>`sfeRgR+R^~4$4T?aaJDx6%ArhC9
z6BwA?)Y9D8SP~LbjZIUN(;GipTKFDp=$1b7^x;!u<LwOHAGkS;3^+KWqaq`3-*6J?
z>@e!M8F~A5wABqut45YNu@Xmg*T%%I)wz3Tu8qy!J+(EGDu4c*WnyY>a(2=^B;)H_
zE2(l=S!wa2<OT(^b0<yWx*V+(4K*!URVK`OHf5gTVTIiM`7@`^oilm%oayli`TB<y
zwA1t7M@59hObU-m%hz9j;J|_vOLFq#;{qd7^Vct0#a6a@SDWnx&2QgkMH!sWc>Us5
z^sATB3O}!3IB|pJ5EH}wU;0~?6*f)<`ct*UHKHUXu_V<hxhNG#F&G&bn(7*u>l&Gd
w7@As{npzo}Ya19@85leZ?BGMukei>9nO2Eg!*m{lO+XC{p00i_>zopr09E@|b^rhX

diff --git a/www/images/memory.png b/www/images/memory.png
deleted file mode 100644
index 4c71a247d68aaba26b00a4adf655d02a1e90201c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 349
zcmV-j0iyniP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUy|4BqaRCwBA{Qv(y10{fofkH6w1~4+0
zGWP>%eKPc3{L}TPkcHt7gF#+sp2MF%e~8w}!otEZY4s#VFdJw9)2C0L7@kge3YPf(
z{W}9gC<6oQ23DMWg;E6ukUnr2{Qvcz>GP-03_pJSU|?rwXZZH*8^f<(zwq)w>OuM-
zF8B#_!RJp5uV23gV-Vo_!Nu_H^*5Y+kb00lm;ubve;FA*rwTBrvU4-s{`nO`r?TPX
zgVclcL89>o15>qzDcJNnZ407kkb00lunYd*`G0BdiHp*=_uYOrm;a&^u{1~@I30kz
v2*kWV%uGTW_zT3Jf%)hg<IvAc009O7bI-a@SQ{_x00000NkvXXu0mjfdGedC

diff --git a/www/images/network-server-off.png b/www/images/network-server-off.png
deleted file mode 100644
index 65f69e94ca225cf5c1af3bacd0d290e405931d51..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 833
zcmV-H1HSx;P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipk{
z3N$8-lz@H!00O~DL_t(I%XQLEXq-hH#_{jWJ2UV0-IYy~G)dbe8{G9!s&;K@)7lyl
zLuf12ixkoJ?7v#91iThRp+$%&NEJ^aYK4j*dJ++0jbh6t^=4ahN^v*MrX;#~=Y8LK
zUoURjvh+C)JRfF$zY$rM(azNSXJ7KohWGrO?;B&#N+E>6rH&|yiL6}<L;J?b6Q|C#
zJE9G|bLOq*gCO{9|GopFudg59_c7W>YmJl=mpbb8zxnZ}AF@`fb?ns1$<F~~TT0XH
z+@XoXqEfEVy|IVl+#eKbH423SK@gA+@(d4`I5=@wD9`(--Bas;bN9t*jOp$r17aWn
zrp~^-{zR=cN1lELA!VThNL+$e8u$OT!e9d?aSRR(vZMMi0CTffP*Ng<pc9A_mX~jF
z>C;abSXpIlWCVnyarIBW`}TVPeBZFN)FeyOP9TnB%J-M)?de8qgVqLPGza!ShD#C>
zm*5gd5CmNOWx5lHq8R5K7rws0`1q4d|9lY}hTIure2%|xoH$8t1AE8Drq<T%>yPfK
zqCAh@o*q0;VZ)G0rA%n;T{G~MB93Er>>kaGR^O<PKm1^z-nhY+U!14jXi)6xV!3&X
z(b2sK0kzrM`V4Zp9E*#KL{Y@MXHK)RtGlRPeEGyeD~xz(TbaSFLv$63D6LRRqm*LT
z&fTPGO6nXgP00s&A{#OJ=4o=qEUB64=}BPn=yT6zQEd6Q^$)A7s}zexZZ6%VzptN0
zy}`id%`}@$D&+^TQN-NuzlpnkB7l^Vm6a7XZR%%X;RZv4!(6}q7o}2(`T2RaY}tyG
z0vp=fojU>Ld6Y^cT)TFa?b{#Z^5skHd}J3hzs^vtR+*ixA*IAx+quT}DuW=;=$?HD
z0psHnNFg|M@F_s>_}CM~vArj7{?*rBISL5w5g`OZh>R@#s(tn!a~Tm0xmm7E00000
LNkvXXu0mjfFhz^C

diff --git a/www/images/network-server-on.png b/www/images/network-server-on.png
deleted file mode 100644
index c146b77e0b39366e7a7ba39fe6e53b672486603f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 845
zcmV-T1G4;yP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2ipk{
z3Ns051S{YG00PZPL_t(I%XQLEY?MVD#_{jWJM+HlyKA=H(w2Yi8h1Sy)UJ@SfTqUS
zG=P8?Lrj%3ph(0t@k*l6Ku9o}81#&P@PH-;IcSVY)oPTqcp?#OG-+kGbX!{7zVp8C
zysw950kh#bPV#&*^ZSiR)09?DzjyMG=ic|Om+?H;b<s*8guo`2FpLO|SqTF3`q3lD
z&a^tB1-yOY%~9X?&pxsJNzv2Oi|2W`+CyuNloFd*YPIWp_x-nNv)O#<*wL|10Ax!_
zlJv~3k=>$PDpTm}Vm9*+SM(Kfxg5Ulll8Oo_ZQhYvRf#}`LNYfw*hPKkCKSOUu#yc
zmIzXr^3FGJArJs)t=YTpIfRtCHXyb!T4^vq3aMCqT6cdB)qz0(E>HcAk`f^V?LZW>
zu&~If>64u8`<R05Wc1c3H?J>p;qR{j@I06K`37l{v;$ETQF^dMSD}+VdJkEhBjb6f
z9U2?Q#5Tsp7T@>z@u%^2APgg{wVeOrJj27!aPfzWm>}TpxUR>67Y`7{@f~2>(9r3X
z74zDTtre8xu%@dE$5EIdpj<8y7{fs2vD-6nlp=~E1_rCCtJRn4qYvI+TdU9V*{A2I
z)$8OtI#_5dQmt-72$-Cj<ic00Gst8z%+1Xah9Rd;9H+CRkXHu}ADL+eA&)*>V&jHB
zI`VmxRw$)WO0i}0AW4#tSc^>(vVNA(gp9p$oQ&(vtBLXPF<@-}3(u!vWcasvi{<5I
z^7%YB=5Ns3(@VWpXYIOmG#U-crH3$K$mL&u5&!#%08&bpmX_%5?qz0XmcEVsT)Xxs
z#bS}^>1o!l-++_?6PP=ly8-1m6pIgV_39sN+VlvQF8#*l$G0%?^8}Sjg{i4Yq?8zA
z+Sk}xrSE5{ZrzR$Fg!eh6oOqlp9KU@4Lwa1nR^1~UU~K9{ea*e5keq@NJ*2=TW9|P
X#d{Nnt020j00000NkvXXu0mjfGpU;B

diff --git a/www/images/network-server.png b/www/images/network-server.png
deleted file mode 100644
index aadb1a9dee19de586782c019e7a8ead2ce6101d5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 832
zcmV-G1Hb%<P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H10=-E@K~y-6b<$609AzBF@$dW2`_8PhTV|8AN&jZWT@N;Dw=K!G
zwnoGd+KPISB5Ke6Ym1eD*Md-JDYR6Ows;h^LPZcgi3qVqu_fDHZ4FdX+)cBIiEd`z
znRlkAZ5m>q;}4$C;o&E;ETfY%=T5!txsROna-Qe9E?Oys5ZKgWOpJ-5r7(;>IC}Wl
z`A$c4fD<P_dfoT^&-U!zD|&nT@H`J!duXkZQesm}qwzOC{`5oEZnxh&c697>0NIh!
zG&{e4^nj?8D|C1D&{gav2m%U)0>1B)_w)4km)JLYKq$w#(CMlBfVFGlH0I)`7Z|Dy
zQlGqmF%b_&Yt2h9zk-mmunI_Qf>xSh5a37$V<IY*GGP?4t@<<o*XuV>QX+(4H4rDv
z&CQcvQ(%7n9|pE=1tGb8`!Bxx_Im(4&t-PDMV6+kfjEvSKUQXKPd8e-Xzk*<n!S6T
z#U=@fO|Xf@_kFJXGQJuxCdOLJ<*zR@GV%iBKVKmV!xbC2uE(J_4iP8GGO%lS_{`E$
z^!_tLRg~kfwx<WjQAA<*zZ*D85yvsx25XtC)i>(mCm*kGH1F``7nf)>n*_xobFF!5
zwOt4Sll95_8{~31W@ctE#&G)Nak`4#fqLtm!_)21@YEA!HgDQOF$hpvp_E1`#m*gr
zq-jcOEjCTb`*}=c82j)zIoF+46XWA!z}UgpUd>D#@n8F278e%@f`GfTcj@cxquFS(
ze!~V@trnH?<3z@A{rBI*icbWPQnIkHz`AvPOi$lo%jSM=-TISKsl?RO6dN~gLP|jt
zE<e}`KsgSj(xcqG`3D07Pjc<rRd#IO$;7V{RI63$^+}|ZMA0&!9t4bu@%=otq1^}p
zBO{|oA=tm~ML_V}@bkoR^ibf^dq>_q2nZe$Ap}B*j4b`CbGrvqK@oR7wh<)&0000<
KMNUMnLSTaM3xu%%

diff --git a/www/images/network.png b/www/images/network.png
deleted file mode 100644
index 02f636a6f1b0fd72b0785e36e8c4340b895872eb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 703
zcmV;w0zmzVP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H1026dYSaeirbZlh+PjGZ;V_|F{L~?0%Wj<%R3;+NE9Z5t%R5*=|
zlTT<9K^Vo~Op~-t!q!9drl^Rum0C~_iFk-ms8lPS6hTGp9~CLyyeeLc2N4ZcQLLbd
zQV>BcN|Peki0C1Ks;OWPRfM#XKU=!HGdrJ$B<pT#wGW12KIZ-A&BqKQBGmM1Z1fmo
zbj`Mv1`voU0|bz3%^5G*N)2>(9lY-pi3ra}pA}5gr2ok<7HH(@;{p-E2bWCK&;o&g
zy96TT9H6RmeSHH=!_WYD0hT2I07_L%L$?wr>tz5yI26XIlf9KI`2(;-WiNLFgk=E$
zq%ClB=mvxk=<Df6Ur#@zl(=*EHl!^)d%X#&R4FC&c^&b193#mL7#L!^qDUrFkWzZm
zdH_xWDM180c{h*jbP<-2IMcPMnyvy6!diNT8dXS%5Bb%Y`e|VQo;Cy<8^G(h17ALY
z5Fi2uA7x<pBIt~5#>+R82&y@J{WytGDCqP+DfO2gSOS;trIGutqjPsFUQc{M%i1u`
z9cV}GVcF7lTmAqT13PqKjkHR6e@CntW9b~)H%4&rL=231JeZx!gL7VT0E~e}Pd~g`
zu$%Obtr6|Tc(yJ?ztA|FrNJvHEEeayq(}__00Y3HXCEA2rG@tGY+ILmpPAlUEHAuG
zCytya0xfYb65HN8+|r~4Temf@pZWZ4rn^|wr_za|!{q*D{{qA>C4DK3s~tbKZ1DRK
ln7DrU(@KmEV1)-QtKT4jNru}b%JBdI002ovPDHLkV1ko?AC&+A

diff --git a/www/images/openvz-off.png b/www/images/openvz-off.png
deleted file mode 100755
index e5039aa3a88057019bcc9a9fcf90c7e5b4fe2c84..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 516
zcmV+f0{i`mP)<h;3K|Lk000e1NJLTq000mG000jN1^@s6?Q>5r00004XF*Lt006O%
z3;baP00009a7bBm000fu000fu0X^1O@c;k-2XskIMF-mn1_&J#ck_}s0000PbVXQn
zQ*UN;cVTj608n9RZgehAMN}YmGcGkQI5#_hT>t<9Zb?KzR5(wK(#<OcQ5eVZd%blj
zZ$)HbrPwMPnJKrFx>0w*hAc=H7Ro||l*mi+)|HjAQ0fwqQu0oSy#=NG4J>SZf465b
z%1kr$>C8Fvoaa2}oQXty9>;NVuz?qh`o;N<Giek33ZOkhQRpNDCv5eoB^aaM5-I_K
zxwwNKmH&hT41`V4NAM6<P>(#US(5C)Bm_lqivsMR!nV-J`zy8-6LfG*1T5Pm-9RnM
z(1jU{V<IR)%F52C-NqY^aExiIaF;gzZxTLSqXQq<$2%VJj9II!n0Fm=;h!W7)Zqt9
zSip#_+(Y|~Q{12#ZOCjj^U%?~e`3n|`U_RTm$fIfI*W3op`;qC*5r0*pPd-C1o{_N
zq4LkM=UFU9{{nF=D#1N;XjRY|4BA+)r@9Bm^ncXgP!+hYo27Uq(7m@pt2Uq;r8c>Q
zcU|oybPn3mI%4+yQVA+CXJzS-ytFlaOG3#+hkFIx#QZNid$I*>IZ)vM0000<MNUMn
GLSTaRiP-u8

diff --git a/www/images/openvz-on.png b/www/images/openvz-on.png
deleted file mode 100755
index f3eb399e09942e2dea92ea1c6ba5471ec3c7c7c4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 527
zcmV+q0`UEbP)<h;3K|Lk000e1NJLTq000mG000jN1^@s6?Q>5r00004XF*Lt006O%
z3;baP00009a7bBm000fv000fv0g!KboB#j-2XskIMF-mn1_&J#ck_}s0000PbVXQn
zQ*UN;cVTj608n9RZgehAMN}YmGcGkQI5#_hT>t<9c}YY;R5(wK(#tD^Q5eVZcibAv
zt%xkF6iY`oVqr=tQ5I~-JCQ6bl!XW>kxO!mtdxaPh)5~96Jl>cDSrbCTi@TzvlwNj
znflCm-*e9Uoaa2}cwW4p@6tTqt>Xp5apxrnu)&ADk#XOhAt(7DzH5rEUKOwaBfK{x
z7r=MvOuj>%rT;{GfWBk{^e}k<OK`}*iUmnc93<=lOuR)FwoznTsNwk)n}}}f-=FVl
znXqUd=>*DAfDTMy6k~}3tXbNbv|D(?5soqG`IX9W2cdWwTr=2)5A5R|k9fwkWtPjc
zik$s7i0>-s{J{d|Fk~xt(SG9;H>gK5qFc47I`>aZ*t>3_GWfFggjTgE#4Z$6eWki(
zEzmyOF=zpF7nUvkbK1R_#e%$FAcT1ZxQB{X0@a}3`nqGXd!SGEqYQ_U48m0@k@@`T
z+#8`)tI>&k`#6th9ql+&2W@E;K^wnRfMU#8S}Ia3ZB1jXP%u$(ub`8d{RItro9NLC
Rw*vqG002ovPDHLkV1g+U+-(2=

diff --git a/www/images/processor.png b/www/images/processor.png
deleted file mode 100644
index 37e9794222d91f6a4e1dc4d92a6be77f06a6e4d9..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 635
zcmV->0)+jEP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!9Z5t%RCwByQ%h(QQ4~FIGKy`AWaLds
zB`ris7eU&JxROFsa3O9K41PdC(1kk{DdOIu2nt;Y+JaccY%DHR{1i%8;==l=2nMW?
zVk{U#I$A@T%w(MN!b}@1NG@FNd-tAm=Dz#hh|qB88h}1DZ}06Z_BkCj^xGHH$)ht5
zVVdTDS^0b(_XiI^A2}kp*E|7nczP0=rlC+MU}$qYa=F~Pk#*vTC$BExKp2LBTCJu4
ziIo=2znaHhv$G*G&pL6$lScs_LD;s9{jqNJwzuKJrRR`;B=#MjfW&HK{`&9`<~A&2
zs<;?*pu?^U-1#_*h1ms2OClbRgE`-HT}L*XMJjz4T|2uFjYdJ9I)dxCO5jjDftk~%
z6tPq)!LqEtxo4hr;<zTS-hp?PYPE`qPj4}jegwldP%f91`zC}?q}`)85Ze)hlrors
z=Cz_#Dix$UdoXq47`XNY);ja76UQ}q!3@~Jz0V(Tb@ByTtF3SxM}5^d?ukj>x{Z#$
z4n!i6U<Sbu4{qIt-Ywg4{`E96nan>A$TV6omfVB6O(i`0^<#C2zQBX;UvTE@OI$uX
z05K@=^k%9dGS513>V^V=3PiD3RBeXCVY~_bhD=C2{`svTGS513#FJOQM#~jr-MiGF
zc;8Q!78P*4$U1Svlc#P7Js3wD`kVe2m+{WcxF@Ny(R1%{Bh&=l@qEd3-Ic!r3;=a7
VH9Kxj761SM002ovPDHLkV1nr!94!C<

diff --git a/www/images/snapshot.png b/www/images/snapshot.png
deleted file mode 100644
index 96a167a453035b37c3d4609064e6406761879c14..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 570
zcmV-A0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1ONa4wfZ;e00001b5ch_0Itp)
z=>Px#0%A)?L;(MXkIcUS000SaNLh0L01egv01egwkZ*aM00007bV*G`2iyq@2s8-D
z+qwAw00F*9L_t(2&#jTYYZGArhkx(;o)?43VW>$=(v;c?f<`fZfJkc6MI;zIRa{!A
z;_Rx}q2p~%t~v^Kh@k|;Dp$V{YCTge)UU*pOL9qsrk;14cQyAq=-?mVvp(DN0RIUt
z&Zb9YaS>Hi#l;bMHqFI<bW6%kF_qMVtI=1n7s0or&eZHwO9B7_aNqdk(www8wtT+U
zJCN8+uHQcNIQxB1Zcdpe4g-E2zIQWVTzNRAh+nVGl=j}0FRpXzb-a4QU3uQ7Kr!#J
zQ_G>JS8Jag{Ny%V^6|!l+>*zNd4K|1+~3{*{#F~H6gIWs;~^NAR{Xja2Pj|-kRRc8
z&!fZx-|iFkh$^J~DY?_I1^^0(X5Z1b0gr!iPu6z`LXB;NzcqudCz^l&9Mo2aDv3z5
zi~Ht+G8_R1p|<Qdk=9fQKt@-G8ly))JTdyDpn?OyF{ych(~Pcy0@Ib$R%@S@IU9&@
z%BT=#=XTq<&Pb{^UHKDg*Zjog<7PC{Os=IGz}lde>Lvo6J8vdS#3BG-$CSeL!FN$2
zi9Wz}xN)Q-H^vwIIzax;3h8Ic!)5x?2b^{aUcMfCMtT778*8bx+r*~Gn*aa+07*qo
IM6N<$f~txFJOBUy

diff --git a/www/images/start.png b/www/images/start.png
deleted file mode 100644
index 7d39b2f4085823464111e8294017eb963bc1e515..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 549
zcmV+=0^0qFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ@H1026dYSaeirbZlh+PjGZ;V_|F{L~?0%Wj<%R3;+NDgGod|R5*>r
zlS@lNQ4q)H=*fFCO)RQ!&;yDdQnU$N1-0uVL<=`PXcM$@p_>ST7A;zs1cEIjODk`g
z78$Kdg`ip&XrTBA??b!yoOWTRWw>Zy76bGD@t<J^QA(kaP&K3m09;;#E>CYM0S>De
zyV-1({_KDdV(RJcT>-WH91L?aby=X4e&$)|gvzo^MNyy+PxsRK1$Pq+9`%*?ROS~4
zk|cqm$dJjVp|hilF%6H6vszv3m^<7G1OlzUj==Lg5JEsKitw6BLOPp51O0={$k3=o
zrll9R$2AK8=tqD;6p)G%V2lB))gXvG==FN_)Z}z)lM3%RcDE<WHMkN$2my>SFd7D$
zSuN;V^pMZzmHn_s$Ypa&i}TBongD?p03ie{!-CP!2C_`3&+jcI5=ln^i>uZJ>s#dx
zzByntEEo;#a2>fSM&r?FQ55EEwzbD<3#<x=#iQ>&|3OX=1<S_zrni=`DnNzMoqNy4
n<uV1k)9I}164AduQ^SA{Sh~sZB?G>^00000NkvXXu0mjfZ&2Ta

diff --git a/www/images/stop.png b/www/images/stop.png
deleted file mode 100644
index 740bed0c47b3cd6e065b10653e5b56d354ce2ef5..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 370
zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQp1cib66=
za#9)m3raGR6LS<?iZaVm?b3Jg0HrT@x;Tbd^j@7D&vnRvr@h|OdpC1O@Sbi3j(Y(Y
zW^*((RfrbOOSpOMSbO6e{^Ub7h8NnG{j_uP@C-Fntq}Ul-IyD9Zu;e5(`C*_UFPJP
z?>@S~!F1W|uVM^}SuQ<a6`49Xw*TI$p3iw|6AMGidiGCB?s}GMwthI5Jae7h`?DEm
z9b5#G-W<HAs*u!iV#Wdoj!^z@=bAeegK921a@gLm<bSr_Y6bVM4c|{LI8esw((*Hh
z^DvJYTO02T$yHW*9HBF1`+gs^-Eb`JuFT*6@iTNPn14p5#a(UY^ac8j!PC{xWt~$(
F69Af5ih}?E

diff --git a/www/images/swap.png b/www/images/swap.png
deleted file mode 100644
index a1c0a6d2c7890b770a74638944e8400a138a96ba..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 926
zcmV;P17ZA$P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#KuJVFRCwB4Q%h)^RTTd2>wjft(sn|0
zT5Jeutx8Qn6hz%vK}DpXMX-n)5$eJRE?lL$a^XURQq0arAv?i<1*P}|D_UdF5-l{9
zw9`zc?MyPyfBwh)?|-j%lA^)0I$X~A&Ue1=Tv8e*7zX3O?R!RX@X*~D8!t{!FMSqb
zaHmsHq_B%!^+we^^#_;W^+3D<U<e$KfMZ(_N|DO=$@<Oqn_Bb_yG6+Z1;n|79mIdC
z=$KQK;Ir*L%pLiUfpF=}dZYExTD7@vqY=@tpMd!ZoPva**#zhGImb66)RA8g88Ak+
z0WkWK%E(C>5uz1`ibbPUV<(a>{dmt^^tREmJK;DSIwubkA!F{~Cp!@2mIf6e+(k-B
zWowtsw-+mu?%bin0d`M$Q{D(Y9|V3`lLTR2i^eCN2VI~1$&DG-(`Rz2D`_IZg{9@Y
zH5r>TyAN<o-RJJ2S>ZJy1RwDO<h+A4(}7W#%aZ&(3X7mq{m7s#Q91S&oP&=eSx;6~
znD&$Q0F<frAZvUV#i1ljS%9w9%HWrIRj4oPAGyvblCCc8f8%XTzwjz9{`?14HbO;6
zpf4;(NIzLMM(QuZcK_QWuSd_9?%2SupL2Y9%4_j}t#R?;yf=BhUfTEQ5mZ;MAx#xZ
zkG(t{hw7+m*5?-%&S_n{0Buc5vj|i7GyHJcu0jy2)DTXlA9zBSuNSXYYv{G@#3+Rc
zI{~d%j~QP0%`b_nDGh}Ylh^)Ys4n?71t`fDRjxJ9)|+3gG+IlgP@d=AbSzILG!eO$
z@dv2>UPZ47BD|+zFztAolG#+tJdtxluQ(B0(w$=~VY~K@sIScuC15h+<?iS#>)!Yj
zS+dg*cHDZ!ty>_BB1+?v24-=1xuke@3HnM4)*Ix@m)<oun=?=hP}b6@1JSO6#2wh7
z$a94_3QuQo?-ffW86FE)=e~zJ`wifG&})}ZSj8{0v8frj#e1YS$Y@}z>?!xdE2_2n
zzLD|lkh*2Cb#wTCP!3w&doS^K90hj|KxM|noxk;9{fu2_0V>6<-Yo#O|Dnxa`0qn`
zFKDsCOqMZZDX5GLWT;iNL3FQ?TL80t?mq$y0IVdMmZ0{bEdT%j07*qoM6N<$g3O7u
APXGV_

diff --git a/www/images/tigervnc.png b/www/images/tigervnc.png
deleted file mode 100644
index 5240acd459d7c2d812ef7cbecc4af807f026b278..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 793
zcmV+!1LpjRP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS0008eNkl<ZIE{sqOH7k#6o#L_QYdNvpJ~)UBSozlse}b21w}_gpeVXfCZi@I
z-V$Pr8)f5Vg)3d4kqL$nA(60g$i$df;@uD@qbMTLg$kn7S{18MYzuNJ{f~>GjL5<#
zIr+ZieD68=-kbyfQv}=rhJY9#KSXRgcN-{-i{?$AM;E6UTP~C>a-7>_OJ4j-qVnw1
z1m45HQdO{km@d2-jw*=>N^()Q-JxkIy9b6sqd<oOtj|a>UVn1Hp;%4-)!TLXJ=?N0
zHfO4w=?L;yUyS0ywQSjQ5ZCH;Bt*Yb;L4SUFT8FAxOunwkCJsI8zD)BZ~#IdU}_Q;
zI>1>BX-<B`ci+R3HJh(1KuDh$)%+g^v0AODsyg$?@AuQ*-cECKGr?dGlgWh5X2W8!
z(EH*!j~;h_0T2<9*49=D1Og%=;`R1QQOQclTazVw_m@h#eZee44F-ec=H?0@%5(v`
zy1Hm=Y-Gg>C-vvgQeIPrF*AkKBn!*N%#`IFB^>^W)9J+Ja#3GjkEUq=NM&WEWM^lK
z(P)%RXNLUUcUpG;yI-su?DG573b{1!r<88Y6IE5EuC7kv0FnUE)YLTdZ=20ZvSuRo
zeu`)$%2ZV6qi>MT&ORC%8YnL>pJiqOKub#tKA#Vd$HRk;C&c<kD0D2xaUqq_r-M{)
zsiR_N#cc8LyP2!F-NjN{TPu-BMB3WgWYwxXNwv)vvzjcbW|otuPKd7SGK(wKaZ~xS
zBR@k727~0}<Va6XkNlLE|48U~mH<Hm@L=l_olDymG2rc`U}ZivH8pg1cQZadK4*aF
zya=s_xcMr~oKYT)>KwcMiF@xR&@5(_rKgc@w^OxmJ4=(s;Mq0!+)r>UMovS&_`^}R
z^4&6>I$N5ixE*HHM8n+9Kx9(q*6R_fZUpqVq399d%=h`<01q(2+*OXp2yg{h9T$BA
Xr#*5@{w22t00000NkvXXu0mjfQ>}2~

diff --git a/www/images/unchecked.png b/www/images/unchecked.png
deleted file mode 100644
index 32a497ad40909aec5fbb8f690d478f63ba3d6a96..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 322
zcmV-I0lof-P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS0002_Nkl<ZIE|%~Jx;?w5QV?_-Q^CU2U;W~x|{$`5o(S?O-=zN4OOn<Cfvak
zP8^JpP2?wSvD$gxz8%fVx?QtGy2uSUz{AU9d#>^Q`AvENz|&^)Z}aPRJ4|rY$LH=(
zgNP7elyL6vZU<-nyZCao8tlW32q(j6nq~wa0gh4?!ktX-Acr*zP*uznH>ISL;kX;7
zN@h$0+>Kg-a3jO1C2)5{1b|vErU7{XbT<bPf!Qf`t#v*@h7<0X8D@s6A|kYHOT@Tk
z!vt}Bv-f7zZdgUSrcMHCN%s3MN-0DJnR)6#3uZHbo9nAl!JK-)&+$A*vh+KD14#fI
U`@K5g&Hw-a07*qoM6N<$f?r~V5C8xG

diff --git a/www/manager6/tree/ResourceTree.js b/www/manager6/tree/ResourceTree.js
index 58611aa37..307544556 100644
--- a/www/manager6/tree/ResourceTree.js
+++ b/www/manager6/tree/ResourceTree.js
@@ -30,7 +30,6 @@ Ext.define('PVE.tree.ResourceTree', {
                 text: gettext('Virtual Machine'),
             },
             lxc: {
-                //iconCls: 'x-tree-node-lxc',
                 iconCls: 'fa fa-cube',
                 text: gettext('LXC Container'),
             },
-- 
2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [pve-devel] [PATCH manager 0/9] remove all blurry icons
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (8 preceding siblings ...)
  2025-08-26 14:58 ` [pve-devel] [PATCH manager 9/9] ui: remove unused png icons and their asset files Shannon Sterz
@ 2025-08-26 15:04 ` Shannon Sterz
  2025-08-28 21:45 ` Thomas Lamprecht
  10 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-26 15:04 UTC (permalink / raw)
  To: Shannon Sterz, pve-devel

ah sorry should have mentioned this in the cover letter but will add
this here now:

originally this was based on my patch for just the mountpoint and guest
icons [1]. however, this has since change so extensively that calling
this series a v2 feels wrong. hope that is ok.

[1]: https://lore.proxmox.com/all/20250804105024.117020-1-s.sterz@proxmox.com/

On Tue Aug 26, 2025 at 4:58 PM CEST, Shannon Sterz wrote:
> this series aims to remove and replace all blurry icons. all png-based
> icons have either been:
>
> a) removed because they were not used throught the code-base in the
>    first place
> b) adapted into svg-based versions, which replace the png versions or
> c) removed and the code was adapted to use the already existing
>    font-awesome icons
>
> the first patch in this series specifically addresses the icons
> mentioned in the associated bug report [1]. the next seven patches
> replace png icons and a gif spinner with svg version. the last patch
> removes entirely unused icons.
>
> i checked if the icons that are being removed were used outside of this
> repository, but could not find any other users. so this should hopefully
> not break anything.
>
> [1]: https://bugzilla.proxmox.com/show_bug.cgi?id=6599
>
> Shannon Sterz (9):
>   fix #6599: ui: use font-awesome hdd icon instead of png
>   ui: remove all occurences of icon-display.png
>   ui: replace the gif spinner from extjs with an svg
>   ui: use svg version of the noVnc icon
>   ui: use svg version of the virt viewer icon
>   ui: use svg version of xterm.js logo instead of a png
>   ui: use the svg version for the cd icon in a storage's treelist
>   ui: replace the ceph logo png with an svg version
>   ui: remove unused png icons and their asset files
>
>  www/css/ext6-pve.css                   |  91 +----
>  www/images/Makefile                    |  81 +---
>  www/images/blank.gif                   | Bin 49 -> 0 bytes
>  www/images/cdrom.png                   | Bin 960 -> 0 bytes
>  www/images/checked.png                 | Bin 478 -> 0 bytes
>  www/images/computer-on.png             | Bin 585 -> 0 bytes
>  www/images/computer-template.png       | Bin 994 -> 0 bytes
>  www/images/computer.png                | Bin 723 -> 0 bytes
>  www/images/connect_established.png     | Bin 704 -> 0 bytes
>  www/images/display.png                 | Bin 741 -> 0 bytes
>  www/images/drive-harddisk.png          | Bin 847 -> 0 bytes
>  www/images/forward.png                 | Bin 641 -> 0 bytes
>  www/images/gtk-stop.png                | Bin 664 -> 0 bytes
>  www/images/icon-cd.png                 | Bin 309 -> 0 bytes
>  www/images/icon-display.png            | Bin 221 -> 0 bytes
>  www/images/icon-harddisk.png           | Bin 293 -> 0 bytes
>  www/images/icon-keyboard.png           | Bin 309 -> 0 bytes
>  www/images/icon-network.png            | Bin 245 -> 0 bytes
>  www/images/icon-swap.png               | Bin 324 -> 0 bytes
>  www/images/icon-usb.png                | Bin 367 -> 0 bytes
>  www/images/keyboard.png                | Bin 590 -> 0 bytes
>  www/images/logo-ceph.png               | Bin 488 -> 0 bytes
>  www/images/logo-ceph.svg               |  71 ++++
>  www/images/lxc-containers-logo-off.xcf | Bin 42654 -> 0 bytes
>  www/images/lxc-off.png                 | Bin 891 -> 0 bytes
>  www/images/lxc-on.png                  | Bin 872 -> 0 bytes
>  www/images/memory.png                  | Bin 349 -> 0 bytes
>  www/images/network-server-off.png      | Bin 833 -> 0 bytes
>  www/images/network-server-on.png       | Bin 845 -> 0 bytes
>  www/images/network-server.png          | Bin 832 -> 0 bytes
>  www/images/network.png                 | Bin 703 -> 0 bytes
>  www/images/novnc.png                   | Bin 453 -> 0 bytes
>  www/images/novnc.svg                   | 163 +++++++++
>  www/images/openvz-off.png              | Bin 516 -> 0 bytes
>  www/images/openvz-on.png               | Bin 527 -> 0 bytes
>  www/images/processor.png               | Bin 635 -> 0 bytes
>  www/images/snapshot.png                | Bin 570 -> 0 bytes
>  www/images/spinner.svg                 |  24 ++
>  www/images/start.png                   | Bin 549 -> 0 bytes
>  www/images/stop.png                    | Bin 370 -> 0 bytes
>  www/images/swap.png                    | Bin 926 -> 0 bytes
>  www/images/tigervnc.png                | Bin 793 -> 0 bytes
>  www/images/unchecked.png               | Bin 322 -> 0 bytes
>  www/images/virt-viewer.png             | Bin 662 -> 0 bytes
>  www/images/virt-viewer.svg             | 488 +++++++++++++++++++++++++
>  www/images/xtermjs.png                 | Bin 729 -> 0 bytes
>  www/images/xtermjs.svg                 |  11 +
>  www/manager6/dc/Tasks.js               |   6 +-
>  www/manager6/grid/PoolMembers.js       |   4 +-
>  www/manager6/lxc/Resources.js          |   2 +-
>  www/manager6/tree/ResourceTree.js      |   1 -
>  51 files changed, 793 insertions(+), 149 deletions(-)
>  delete mode 100644 www/images/blank.gif
>  delete mode 100644 www/images/cdrom.png
>  delete mode 100644 www/images/checked.png
>  delete mode 100755 www/images/computer-on.png
>  delete mode 100644 www/images/computer-template.png
>  delete mode 100644 www/images/computer.png
>  delete mode 100644 www/images/connect_established.png
>  delete mode 100644 www/images/display.png
>  delete mode 100644 www/images/drive-harddisk.png
>  delete mode 100644 www/images/forward.png
>  delete mode 100644 www/images/gtk-stop.png
>  delete mode 100644 www/images/icon-cd.png
>  delete mode 100644 www/images/icon-display.png
>  delete mode 100644 www/images/icon-harddisk.png
>  delete mode 100644 www/images/icon-keyboard.png
>  delete mode 100644 www/images/icon-network.png
>  delete mode 100644 www/images/icon-swap.png
>  delete mode 100644 www/images/icon-usb.png
>  delete mode 100644 www/images/keyboard.png
>  delete mode 100644 www/images/logo-ceph.png
>  create mode 100644 www/images/logo-ceph.svg
>  delete mode 100755 www/images/lxc-containers-logo-off.xcf
>  delete mode 100644 www/images/lxc-off.png
>  delete mode 100644 www/images/lxc-on.png
>  delete mode 100644 www/images/memory.png
>  delete mode 100644 www/images/network-server-off.png
>  delete mode 100644 www/images/network-server-on.png
>  delete mode 100644 www/images/network-server.png
>  delete mode 100644 www/images/network.png
>  delete mode 100644 www/images/novnc.png
>  create mode 100644 www/images/novnc.svg
>  delete mode 100755 www/images/openvz-off.png
>  delete mode 100755 www/images/openvz-on.png
>  delete mode 100644 www/images/processor.png
>  delete mode 100644 www/images/snapshot.png
>  create mode 100644 www/images/spinner.svg
>  delete mode 100644 www/images/start.png
>  delete mode 100644 www/images/stop.png
>  delete mode 100644 www/images/swap.png
>  delete mode 100644 www/images/tigervnc.png
>  delete mode 100644 www/images/unchecked.png
>  delete mode 100644 www/images/virt-viewer.png
>  create mode 100644 www/images/virt-viewer.svg
>  delete mode 100644 www/images/xtermjs.png
>  create mode 100644 www/images/xtermjs.svg
>
> --
> 2.47.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [pve-devel] [PATCH manager 0/9] remove all blurry icons
  2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
                   ` (9 preceding siblings ...)
  2025-08-26 15:04 ` [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
@ 2025-08-28 21:45 ` Thomas Lamprecht
  2025-08-29  9:26   ` Shannon Sterz
  10 siblings, 1 reply; 13+ messages in thread
From: Thomas Lamprecht @ 2025-08-28 21:45 UTC (permalink / raw)
  To: pve-devel, Shannon Sterz

On Tue, 26 Aug 2025 16:58:27 +0200, Shannon Sterz wrote:
> this series aims to remove and replace all blurry icons. all png-based
> icons have either been:
> 
> a) removed because they were not used throught the code-base in the
>    first place
> b) adapted into svg-based versions, which replace the png versions or
> c) removed and the code was adapted to use the already existing
>    font-awesome icons
> 
> [...]

Applied, thanks!

btw. nice solution for the spinner! Can't we override the CSS classes
that have a `background-image:url(images/loadmask/loading.gif);` rule in
side our CSS file from proxmox-widget-toolkit?

FWIW, I saw other loading.gif's too, e.g. images/tree/loading.gif), that
could be checked.

[1/9] fix #6599: ui: use font-awesome hdd icon instead of png
      commit: 470dd9057ffbcde6e09fb9d00d13a882ffa915c1
[2/9] ui: remove all occurences of icon-display.png
      commit: a11f7c02e554f74488d2d0d6ceaea177e48dc552
[3/9] ui: replace the gif spinner from extjs with an svg
      commit: 61814591bc59f83562e977483629d334c67e38e0
[4/9] ui: use svg version of the noVnc icon
      commit: af50fa5836b67c1173cd3f3c55ecc8077c567802
[5/9] ui: use svg version of the virt viewer icon
      commit: 53cf0269a2b908f79ee48d66bfca71afb8e38e34
[6/9] ui: use svg version of xterm.js logo instead of a png
      commit: 1b69822949e956e66e9f1824387da6e834cc1bd5
[7/9] ui: use the svg version for the cd icon in a storage's treelist
      commit: fd40039e7bd6da90560736098597912a158d24d1
[8/9] ui: replace the ceph logo png with an svg version
      commit: 2348790ba969992dfd8235ad291e10c2823a9ebc
[9/9] ui: remove unused png icons and their asset files
      commit: 1b061a5d3268bc5904796527cec6e3c47413602c


_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [pve-devel] [PATCH manager 0/9] remove all blurry icons
  2025-08-28 21:45 ` Thomas Lamprecht
@ 2025-08-29  9:26   ` Shannon Sterz
  0 siblings, 0 replies; 13+ messages in thread
From: Shannon Sterz @ 2025-08-29  9:26 UTC (permalink / raw)
  To: Thomas Lamprecht, pve-devel

On Thu Aug 28, 2025 at 11:45 PM CEST, Thomas Lamprecht wrote:
> On Tue, 26 Aug 2025 16:58:27 +0200, Shannon Sterz wrote:
>> this series aims to remove and replace all blurry icons. all png-based
>> icons have either been:
>>
>> a) removed because they were not used throught the code-base in the
>>    first place
>> b) adapted into svg-based versions, which replace the png versions or
>> c) removed and the code was adapted to use the already existing
>>    font-awesome icons
>>
>> [...]
>
> Applied, thanks!
>
> btw. nice solution for the spinner! Can't we override the CSS classes
> that have a `background-image:url(images/loadmask/loading.gif);` rule in
> side our CSS file from proxmox-widget-toolkit?

good point, haven't tried that yet, but will give it a go.

> FWIW, I saw other loading.gif's too, e.g. images/tree/loading.gif), that
> could be checked.

yep was also gonna check pmg and pbs for icons that are still blurry.
but pve was the biggest fish there i think.

but yeah, it seems that extjs is happy to include basically the same
spinner gif three times (images/tree/loading.gif;
images/grid/loading.gif; images/loadmask/loading.gif).

btw. seems that something has gone wrong applying patches for the ceph
and virt viewer icon. talked to christoph a bit and our best guess is
the 998 character limit according to rfc 2822 for lines in emails. both
of the svgs there have one really long path tag that seems to overrun
that limit. interestingly, every part of the toolchain (format-patch,
send-email, the mailing list and lore) dealt with that just fine, though.

i'll send a patch that reformats them and adds them back.

ps: christoph pointed me at the `--validate` option of `git send-email` that
should check just that, so i guess i'll add that to my gitconfig

> [1/9] fix #6599: ui: use font-awesome hdd icon instead of png
>       commit: 470dd9057ffbcde6e09fb9d00d13a882ffa915c1
> [2/9] ui: remove all occurences of icon-display.png
>       commit: a11f7c02e554f74488d2d0d6ceaea177e48dc552
> [3/9] ui: replace the gif spinner from extjs with an svg
>       commit: 61814591bc59f83562e977483629d334c67e38e0
> [4/9] ui: use svg version of the noVnc icon
>       commit: af50fa5836b67c1173cd3f3c55ecc8077c567802
> [5/9] ui: use svg version of the virt viewer icon
>       commit: 53cf0269a2b908f79ee48d66bfca71afb8e38e34
> [6/9] ui: use svg version of xterm.js logo instead of a png
>       commit: 1b69822949e956e66e9f1824387da6e834cc1bd5
> [7/9] ui: use the svg version for the cd icon in a storage's treelist
>       commit: fd40039e7bd6da90560736098597912a158d24d1
> [8/9] ui: replace the ceph logo png with an svg version
>       commit: 2348790ba969992dfd8235ad291e10c2823a9ebc
> [9/9] ui: remove unused png icons and their asset files
>       commit: 1b061a5d3268bc5904796527cec6e3c47413602c



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2025-08-29  9:26 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-26 14:58 [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 1/9] fix #6599: ui: use font-awesome hdd icon instead of png Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 2/9] ui: remove all occurences of icon-display.png Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 3/9] ui: replace the gif spinner from extjs with an svg Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 4/9] ui: use svg version of the noVnc icon Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 5/9] ui: use svg version of the virt viewer icon Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 6/9] ui: use svg version of xterm.js logo instead of a png Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 7/9] ui: use the svg version for the cd icon in a storage's treelist Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 8/9] ui: replace the ceph logo png with an svg version Shannon Sterz
2025-08-26 14:58 ` [pve-devel] [PATCH manager 9/9] ui: remove unused png icons and their asset files Shannon Sterz
2025-08-26 15:04 ` [pve-devel] [PATCH manager 0/9] remove all blurry icons Shannon Sterz
2025-08-28 21:45 ` Thomas Lamprecht
2025-08-29  9:26   ` Shannon Sterz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal