diff --git a/bundles/org.openhab.ui.iconset.classic/icons/_iconconvert b/bundles/org.openhab.ui.iconset.classic/icons/_iconconvert
index bc7e5671101e3..5f5336b4ae62b 100755
--- a/bundles/org.openhab.ui.iconset.classic/icons/_iconconvert
+++ b/bundles/org.openhab.ui.iconset.classic/icons/_iconconvert
@@ -1,37 +1,39 @@
#!/bin/sh
for file in $1*.svg; do
+
if [[ $file != 'none'* ]]; then
+
png=`echo $file | sed s/.svg/.png/`
-
+
# 1. Clean up SVG file.
- if hash xmllint; then
+ if type xmllint &>/dev/null; then
+
# Should be pre-installed on OS X.
xmllint $file -o $file --pretty 1
+
fi
-
+
# 2. Convert SVG files to PNG.
- if hash rsvg-convert; then
+ if [ ! -f "$png" ]; then
- # Can be installed with Homebrew. (Installation is slow, but conversion is fast.)
- # brew install librsvg
- rsvg-convert $file -o $png
+ if type rsvg-convert &>/dev/null; then
- elif hash svgexport; then
+ # Can be installed with Homebrew. (Installation is slow, but conversion is fast.)
+ # brew install librsvg
+ echo "rsvg-convert: converting $file"
+ rsvg-convert $file -o $png
- # Can be installed with NPM. (Installation is fast, but conversion is slow.)
- # npm install -g svgexport
- svgexport $file $png
+ elif type svgexport &>/dev/null; then
- fi
-
- # 3. Minify PNG files.
- if hash imageoptim; then
+ # Can be installed with NPM. (Installation is fast, but conversion is slow.)
+ # npm install -g svgexport
+ echo "svgexport: converting $file"
+ svgexport $file $png
- # Can be installed with NPM. (Note: You must already have the GUI application installed.)
- # npm install -g imageoptim-cli
- echo $png | imageoptim
+ fi
fi
- fi
-done
\ No newline at end of file
+
+ fi
+done
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/_iconcopy b/bundles/org.openhab.ui.iconset.classic/icons/_iconcopy
index 004d7beb13bbe..a44542d35b133 100755
--- a/bundles/org.openhab.ui.iconset.classic/icons/_iconcopy
+++ b/bundles/org.openhab.ui.iconset.classic/icons/_iconcopy
@@ -1,36 +1,150 @@
#!/bin/sh
#
-# Create needed copies of duplicate icons.
+# Create needed icon copies.
#
-rm -f garagedoor-ajar.png && cp -f garagedoor-70.png garagedoor-ajar.png
-rm -f garagedoor-ajar.svg && cp -f garagedoor-70.svg garagedoor-ajar.svg
-rm -f garagedoor-closed.png && cp -f garagedoor-100.png garagedoor-closed.png
-rm -f garagedoor-closed.svg && cp -f garagedoor-100.svg garagedoor-closed.svg
-rm -f garagedoor-open.png && cp -f garagedoor-0.png garagedoor-open.png
-rm -f garagedoor-open.svg && cp -f garagedoor-0.svg garagedoor-open.svg
-rm -f garagedoor.png && cp -f garagedoor-ajar.png garagedoor.png
-rm -f garagedoor.svg && cp -f garagedoor-ajar.svg garagedoor.svg
-
-rm -f group.png && cp -f house.png group.png
-rm -f group.svg && cp -f house.svg group.svg
-
-rm -f heating-off.png && cp -f heating-0.png heating-off.png
-rm -f heating-off.svg && cp -f heating-0.svg heating-off.svg
-rm -f heating-on.png && cp -f heating-100.png heating-on.png
-rm -f heating-on.svg && cp -f heating-100.svg heating-on.svg
-rm -f heating.png && cp -f heating-on.png heating.png
-rm -f heating.svg && cp -f heating-on.svg heating.svg
-
-rm -f light-off.png && cp -f slider-0.png light-off.png
-rm -f light-off.svg && cp -f slider-0.svg light-off.svg
-rm -f light-on.png && cp -f slider-100.png light-on.png
-rm -f light-on.svg && cp -f slider-100.svg light-on.svg
-rm -f slider.png && cp -f slider-100.png slider.png
-rm -f slider.svg && cp -f slider-100.svg slider.svg
-
-rm -f lock.png && cp -f lock-closed.png lock.png
-rm -f lock.svg && cp -f lock-closed.svg lock.svg
-
-rm -f rollershutter.png && cp -f rollershutter-70.png rollershutter.png
-rm -f rollershutter.svg && cp -f rollershutter-70.svg rollershutter.svg
+
+# Aliases
+
+cp -f house.png group.png
+cp -f house.svg group.svg
+
+
+# Alternative Types
+
+cp -f dimmablelight-0.png light-off.png
+cp -f dimmablelight-0.svg light-off.svg
+cp -f dimmablelight-100.png light-on.png
+cp -f dimmablelight-100.svg light-on.svg
+
+cp -f garagedoor-70.png garagedoor-ajar.png
+cp -f garagedoor-70.svg garagedoor-ajar.svg
+cp -f garagedoor-100.png garagedoor-closed.png
+cp -f garagedoor-100.svg garagedoor-closed.svg
+cp -f garagedoor-0.png garagedoor-open.png
+cp -f garagedoor-0.svg garagedoor-open.svg
+cp -f garagedoor-ajar.png garagedoor.png
+cp -f garagedoor-ajar.svg garagedoor.svg
+
+cp -f heating-0.png heating-off.png
+cp -f heating-0.svg heating-off.svg
+cp -f heating-100.png heating-on.png
+cp -f heating-100.svg heating-on.svg
+
+
+# Uninitialized State
+
+cp -f dimmablelight-100.png dimmablelight.png
+cp -f dimmablelight-100.svg dimmablelight.svg
+
+cp -f fire-on.png fire.png
+cp -f fire-on.svg fire.svg
+
+cp -f heating-on.png heating.png
+cp -f heating-on.svg heating.svg
+
+cp -f light-on.png light.png
+cp -f light-on.svg light.svg
+
+cp -f lock-closed.png lock.png
+cp -f lock-closed.svg lock.svg
+
+cp -f receiver-on.png receiver.png
+cp -f receiver-on.svg receiver.svg
+
+cp -f siren-on.png siren.png
+cp -f siren-on.svg siren.svg
+
+cp -f soundvolume-100.png soundvolume.png
+cp -f soundvolume-100.svg soundvolume.svg
+
+
+# ESH Channel Categories
+
+cp -f siren.png alarm.png
+cp -f siren.svg alarm.svg
+
+cp -f battery-0.png battery.png
+cp -f battery-0.svg battery.svg
+
+cp -f rollershutter-0.png blinds-0.png
+cp -f rollershutter-0.svg blinds-0.svg
+cp -f rollershutter-10.png blinds-10.png
+cp -f rollershutter-10.svg blinds-10.svg
+cp -f rollershutter-20.png blinds-20.png
+cp -f rollershutter-20.svg blinds-20.svg
+cp -f rollershutter-30.png blinds-30.png
+cp -f rollershutter-30.svg blinds-30.svg
+cp -f rollershutter-40.png blinds-40.png
+cp -f rollershutter-40.svg blinds-40.svg
+cp -f rollershutter-50.png blinds-50.png
+cp -f rollershutter-50.svg blinds-50.svg
+cp -f rollershutter-60.png blinds-60.png
+cp -f rollershutter-60.svg blinds-60.svg
+cp -f rollershutter-70.png blinds-70.png
+cp -f rollershutter-70.svg blinds-70.svg
+cp -f rollershutter-80.png blinds-80.png
+cp -f rollershutter-80.svg blinds-80.svg
+cp -f rollershutter-90.png blinds-90.png
+cp -f rollershutter-90.svg blinds-90.svg
+cp -f rollershutter-100.png blinds-100.png
+cp -f rollershutter-100.svg blinds-100.svg
+cp -f rollershutter.png blinds.png
+cp -f rollershutter.svg blinds.svg
+
+cp -f colorwheel.png colorlight.png
+cp -f colorwheel.svg colorlight.svg
+
+cp -f window-ajar.png contact-ajar.png
+cp -f window-ajar.svg contact-ajar.svg
+cp -f window-closed.png contact-closed.png
+cp -f window-closed.svg contact-closed.svg
+cp -f window-open.png contact-open.png
+cp -f window-open.svg contact-open.svg
+cp -f window.png contact.png
+cp -f window.svg contact.svg
+
+cp -f dimmablelight-0.png slider-0.png
+cp -f dimmablelight-0.svg slider-0.svg
+cp -f dimmablelight-10.png slider-10.png
+cp -f dimmablelight-10.svg slider-10.svg
+cp -f dimmablelight-20.png slider-20.png
+cp -f dimmablelight-20.svg slider-20.svg
+cp -f dimmablelight-30.png slider-30.png
+cp -f dimmablelight-30.svg slider-30.svg
+cp -f dimmablelight-40.png slider-40.png
+cp -f dimmablelight-40.svg slider-40.svg
+cp -f dimmablelight-50.png slider-50.png
+cp -f dimmablelight-50.svg slider-50.svg
+cp -f dimmablelight-60.png slider-60.png
+cp -f dimmablelight-60.svg slider-60.svg
+cp -f dimmablelight-70.png slider-70.png
+cp -f dimmablelight-70.svg slider-70.svg
+cp -f dimmablelight-80.png slider-80.png
+cp -f dimmablelight-80.svg slider-80.svg
+cp -f dimmablelight-90.png slider-90.png
+cp -f dimmablelight-90.svg slider-90.svg
+cp -f dimmablelight-100.png slider-100.png
+cp -f dimmablelight-100.svg slider-100.svg
+cp -f dimmablelight.png slider.png
+cp -f dimmablelight.svg slider.svg
+
+cp -f fan_box.png fan.png
+cp -f fan_box.svg fan.svg
+
+cp -f receiver.png player.png
+cp -f receiver.svg player.svg
+
+cp -f signal-0.png qualityofservice-0.png
+cp -f signal-0.svg qualityofservice-0.svg
+cp -f signal-1.png qualityofservice-1.png
+cp -f signal-1.svg qualityofservice-1.svg
+cp -f signal-2.png qualityofservice-2.png
+cp -f signal-2.svg qualityofservice-2.svg
+cp -f signal-3.png qualityofservice-3.png
+cp -f signal-3.svg qualityofservice-3.svg
+cp -f signal-4.png qualityofservice-4.png
+cp -f signal-4.svg qualityofservice-4.svg
+
+cp -f microphone.png recorder.png
+cp -f microphone.svg recorder.svg
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/_iconminify b/bundles/org.openhab.ui.iconset.classic/icons/_iconminify
index 7326fbde41853..2416e3e3459a6 100755
--- a/bundles/org.openhab.ui.iconset.classic/icons/_iconminify
+++ b/bundles/org.openhab.ui.iconset.classic/icons/_iconminify
@@ -2,11 +2,14 @@
#
# Minify .png files using imageoptim.
#
-# Can be installed with NPM. (Note: You must already have the GUI application installed.)
+# Can be installed with NPM.
# npm install -g imageoptim-cli
#
+# Note: The GUI application also has to be installed.
+# brew cask install imageoptim
+#
-if hash imageoptim; then
+if type imageoptim &>/dev/null; then
if [ "$1" != '' ] ; then
@@ -15,7 +18,7 @@ if hash imageoptim; then
done
else
- imageoptim -d `dirname $0`
+ imageoptim -d "$(dirname $0)"
fi
fi
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/_legacy_icons b/bundles/org.openhab.ui.iconset.classic/icons/_legacy_icons
deleted file mode 100755
index e30087ecd9ff0..0000000000000
--- a/bundles/org.openhab.ui.iconset.classic/icons/_legacy_icons
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-#
-# Create copies of icons to support deprecated file names.
-#
-
-rm -f boy0.png && cp -f boy_3.png boy0.png
-rm -f boy0.svg && cp -f boy_3.svg boy0.svg
-rm -f boy1.png && cp -f boy_2.png boy1.png
-rm -f boy1.svg && cp -f boy_2.svg boy1.svg
-rm -f boy2.png && cp -f boy_1.png boy2.png
-rm -f boy2.svg && cp -f boy_1.svg boy2.svg
-rm -f boy3.png && cp -f boy_4.png boy3.png
-rm -f boy3.svg && cp -f boy_4.svg boy3.svg
-rm -f boy4.png && cp -f boy_3.png boy4.png
-rm -f boy4.svg && cp -f boy_3.svg boy4.svg
-rm -f boy5.png && cp -f boy_4.png boy5.png
-rm -f boy5.svg && cp -f boy_4.svg boy5.svg
-rm -f boy6.png && cp -f boy_2.png boy6.png
-rm -f boy6.svg && cp -f boy_2.svg boy6.svg
-rm -f boy7.png && cp -f boy_2.png boy7.png
-rm -f boy7.svg && cp -f boy_2.svg boy7.svg
-
-rm -f child1.png && cp -f girl_1.png child1.png
-rm -f child1.svg && cp -f girl_1.svg child1.svg
-rm -f child2.png && cp -f girl_2.png child2.png
-rm -f child2.svg && cp -f girl_2.svg child2.svg
-
-rm -f child1-off.png && cp -f child1.png child1-off.png
-rm -f child1-off.svg && cp -f child1.svg child1-off.svg
-rm -f child2-off.png && cp -f child2.png child2-off.png
-rm -f child2-off.svg && cp -f child2.svg child2-off.svg
-
-rm -f garden2.png && cp -f garden.png garden2.png
-rm -f garden2.svg && cp -f garden.svg garden2.svg
-rm -f garden3.png && cp -f garden.png garden3.png
-rm -f garden3.svg && cp -f garden.svg garden3.svg
-
-rm -f house-off.png && cp -f house.png house-off.png
-rm -f house-off.svg && cp -f house.svg house-off.svg
-
-rm -f parents.png && cp -f parents_3_3.png parents.png
-rm -f parents.svg && cp -f parents_3_3.svg parents.svg
-
-rm -f shield-2.png && cp -f shield-1.png shield-2.png
-rm -f shield-2.svg && cp -f shield-1.svg shield-2.svg
-
-rm -f wardrobe2.png && cp -f wardrobe.png wardrobe2.png
-rm -f wardrobe2.svg && cp -f wardrobe.svg wardrobe2.svg
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/alarm.png b/bundles/org.openhab.ui.iconset.classic/icons/alarm.png
new file mode 100644
index 0000000000000..f4ac8927004e8
Binary files /dev/null and b/bundles/org.openhab.ui.iconset.classic/icons/alarm.png differ
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/alarm.svg b/bundles/org.openhab.ui.iconset.classic/icons/alarm.svg
new file mode 100644
index 0000000000000..ca0ea0ba5953f
--- /dev/null
+++ b/bundles/org.openhab.ui.iconset.classic/icons/alarm.svg
@@ -0,0 +1,8 @@
+
+
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/app-icon.png b/bundles/org.openhab.ui.iconset.classic/icons/app-icon.png
index b509aa2e733bd..40ecc845e10dd 100644
Binary files a/bundles/org.openhab.ui.iconset.classic/icons/app-icon.png and b/bundles/org.openhab.ui.iconset.classic/icons/app-icon.png differ
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/attic.png b/bundles/org.openhab.ui.iconset.classic/icons/attic.png
index d366df8942242..d15fafd1aa28f 100644
Binary files a/bundles/org.openhab.ui.iconset.classic/icons/attic.png and b/bundles/org.openhab.ui.iconset.classic/icons/attic.png differ
diff --git a/bundles/org.openhab.ui.iconset.classic/icons/attic.svg b/bundles/org.openhab.ui.iconset.classic/icons/attic.svg
index 18c4e7943d038..55bea1ebe9b5d 100644
--- a/bundles/org.openhab.ui.iconset.classic/icons/attic.svg
+++ b/bundles/org.openhab.ui.iconset.classic/icons/attic.svg
@@ -1,5 +1,5 @@
-