aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--Makefile9
-rw-r--r--README4
-rw-r--r--TODO5
-rw-r--r--TODO-low-priority-icons6
-rw-r--r--TODO-wrong-icon-displayed73
-rw-r--r--check/check-icon-listing.c398
-rwxr-xr-xcheck/check-icons-listing89
-rwxr-xr-xcheck/find-duplicates9
-rw-r--r--config.mk5
-rw-r--r--icons.mk45
-rw-r--r--scalable/actions/audio-input-microphone-disable-low.svg2
-rw-r--r--scalable/actions/audio-input-microphone-disable-medium.svg2
l---------[-rw-r--r--]scalable/actions/audio-input-microphone-disable-muted.svg2
-rw-r--r--scalable/actions/audio-input-microphone-enable-muted.svg2
-rw-r--r--scalable/actions/folder-copy.svg1
-rw-r--r--scalable/actions/folder-move.svg1
-rw-r--r--scalable/actions/mail-move.svg2
l---------scalable/actions/stock_folder-copy.svg1
l---------scalable/actions/stock_folder-move.svg1
l---------scalable/actions/view-zoom-best-fit.svg1
l---------scalable/actions/view-zoom-double-size.svg1
l---------scalable/actions/view-zoom-draw-fit.svg1
l---------scalable/actions/view-zoom-fit-best.svg1
l---------scalable/actions/view-zoom-fit-drawing.svg1
l---------scalable/actions/view-zoom-fit-height.svg1
l---------scalable/actions/view-zoom-fit-page.svg1
l---------scalable/actions/view-zoom-fit-selection.svg1
l---------scalable/actions/view-zoom-fit-width.svg1
l---------scalable/actions/view-zoom-half-size.svg1
l---------scalable/actions/view-zoom-next-rtl.svg1
l---------scalable/actions/view-zoom-next.svg1
l---------scalable/actions/view-zoom-optimal.svg1
l---------scalable/actions/view-zoom-original.svg1
l---------scalable/actions/view-zoom-page-fit.svg1
l---------scalable/actions/view-zoom-previous-rtl.svg1
l---------scalable/actions/view-zoom-previous.svg1
l---------scalable/actions/view-zoom-select.svg1
l---------scalable/actions/zoom-draw-fit.svg1
l---------scalable/actions/zoom-page-fit.svg1
l---------scalable/apps/adobe-flashplayer.svg2
l---------scalable/apps/adobeflashplugin.svg2
l---------scalable/apps/galculator.svg2
l---------scalable/apps/gfeeds.svg1
l---------scalable/apps/gnome-desktop-item-edit.svg2
l---------scalable/apps/gnome-dictionary.svg2
l---------scalable/apps/gnome-disk-utility.svg1
l---------scalable/apps/gnome-network-preferences.svg2
l---------scalable/apps/gnome-web-browser.svg2
l---------scalable/apps/kmplayer.svg2
l---------scalable/apps/kplayer.svg2
l---------scalable/apps/lxterminal.svg2
l---------scalable/apps/mate-disk-usage-analyzer.svg1
l---------scalable/apps/mate-network-properties.svg2
l---------scalable/apps/python3.10.svg2
l---------scalable/apps/python3.11.svg2
l---------scalable/apps/python3.12.svg2
l---------scalable/apps/python3.13.svg2
l---------scalable/apps/python3.14.svg2
l---------scalable/apps/python3.15.svg2
l---------scalable/apps/python3.16.svg2
l---------scalable/apps/python3.17.svg2
l---------scalable/apps/python3.18.svg2
l---------scalable/apps/python3.19.svg2
l---------scalable/apps/python3.20.svg2
l---------scalable/apps/screenie-qt.svg2
l---------scalable/apps/screenie.svg2
l---------scalable/apps/speedcrunch.svg2
l---------scalable/apps/xdvi.svg1
l---------scalable/mimetypes/application-atom+xml.svg2
l---------scalable/mimetypes/application-dvi.svg1
l---------scalable/mimetypes/application-illustrator.svg2
l---------scalable/mimetypes/application-javascript.svg2
l---------scalable/mimetypes/application-ogg.svg2
l---------scalable/mimetypes/application-vnd.oasis.opendocument.graphics.svg2
l---------scalable/mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg2
l---------scalable/mimetypes/application-vnd.oasis.opendocument.text-web.svg2
l---------scalable/mimetypes/application-vnd.oasis.opendocument.text.svg2
l---------scalable/mimetypes/application-vnd.rn-realmedia.svg2
l---------scalable/mimetypes/application-vnd.sun.xml.calc.svg2
l---------scalable/mimetypes/application-vnd.sun.xml.draw.svg2
l---------scalable/mimetypes/application-vnd.sun.xml.writer.svg2
l---------scalable/mimetypes/application-vnd.wordperfect.svg2
l---------scalable/mimetypes/application-x-arc.svg2
l---------scalable/mimetypes/application-x-class-file.svg2
l---------scalable/mimetypes/application-x-compress.svg2
l---------scalable/mimetypes/application-x-deb.svg2
l---------scalable/mimetypes/application-x-dvi.svg1
l---------scalable/mimetypes/application-x-gnumeric.svg2
l---------scalable/mimetypes/application-x-java.svg2
l---------scalable/mimetypes/application-x-kernel-module.svg1
l---------scalable/mimetypes/application-x-kernel-object.svg1
l---------scalable/mimetypes/application-x-kernel.svg1
l---------scalable/mimetypes/application-x-matroska.svg2
l---------scalable/mimetypes/application-x-pak.svg2
l---------scalable/mimetypes/application-x-rpm.svg2
l---------scalable/mimetypes/application-x-scribus.svg2
l---------scalable/mimetypes/application-x-shockwave-flash.svg2
l---------scalable/mimetypes/application-x-sqlite2.svg2
l---------scalable/mimetypes/application-x-sqlite3.svg2
l---------scalable/mimetypes/application-xml.svg2
l---------scalable/mimetypes/application-zip.svg2
l---------scalable/mimetypes/gnome-exe-thumbnailer-generic-x.svg2
l---------scalable/mimetypes/gnome-exe-thumbnailer-generic.svg2
l---------scalable/mimetypes/gnome-exe-thumbnailer-template.svg2
l---------scalable/mimetypes/gnome-mime-application-javascript.svg2
l---------scalable/mimetypes/gnome-mime-application-rss+xml.svg2
l---------scalable/mimetypes/gnome-mime-application-vnd.scribus.svg2
l---------scalable/mimetypes/gnome-mime-application-x-ace.svg2
l---------scalable/mimetypes/gnome-mime-application-x-bittorrent.svg2
l---------scalable/mimetypes/gnome-mime-application-x-dvi.svg2
l---------scalable/mimetypes/gnome-mime-application-x-javascript.svg2
l---------scalable/mimetypes/gnome-mime-application-x-ruby.svg2
l---------scalable/mimetypes/gnome-mime-application-x-zip.svg2
l---------scalable/mimetypes/gnome-mime-image-bmp.svg2
l---------scalable/mimetypes/gnome-mime-image-gif.svg2
l---------scalable/mimetypes/gnome-mime-image-jpeg.svg2
l---------scalable/mimetypes/gnome-mime-image-png.svg2
l---------scalable/mimetypes/gnome-mime-image-tiff.svg2
l---------scalable/mimetypes/gnome-mime-image-vnd.adobe.photoshop.svg2
l---------scalable/mimetypes/gnome-mime-image-x-cmu-raster.svg2
l---------scalable/mimetypes/gnome-mime-image-x-portable-bitmap.svg2
l---------scalable/mimetypes/gnome-mime-image-x-psd.svg2
l---------scalable/mimetypes/gnome-mime-image-x-xpixmap.svg2
l---------scalable/mimetypes/gnome-mime-text-css.svg2
l---------scalable/mimetypes/gnome-mime-text-x-c++hdr.svg2
l---------scalable/mimetypes/gnome-mime-text-x-changelog.svg2
l---------scalable/mimetypes/gnome-mime-text-x-chdr.svg2
l---------scalable/mimetypes/gnome-mime-text-x-copying.svg2
l---------scalable/mimetypes/gnome-mime-text-x-java-source.svg2
l---------scalable/mimetypes/gnome-mime-text-x-java.svg2
l---------scalable/mimetypes/gnome-mime-text-x-javascript.svg2
l---------scalable/mimetypes/gnome-mime-text-x-readme.svg2
l---------scalable/mimetypes/gnome-mime-text-x-source.svg2
l---------scalable/mimetypes/gnome-mime-video-x-ms-asf.svg2
l---------scalable/mimetypes/gnome-mime-video-x-ms-wmv.svg2
l---------scalable/mimetypes/gnome-mime-x-install.svg2
l---------scalable/mimetypes/image-jpeg2000.svg2
l---------scalable/mimetypes/image-svg+xml.svg2
l---------scalable/mimetypes/image-x-psdimage-x-psd.svg2
l---------scalable/mimetypes/image-x-tga.svg2
l---------scalable/mimetypes/image-x-win-bitmap.svg2
l---------scalable/mimetypes/jpeg.svg2
l---------scalable/mimetypes/jpg.svg2
l---------scalable/mimetypes/media-audio.svg2
l---------scalable/mimetypes/media-image.svg2
l---------scalable/mimetypes/media-video.svg2
l---------scalable/mimetypes/message-rfc822.svg2
l---------scalable/mimetypes/none.svg2
l---------scalable/mimetypes/office-document.svg2
l---------scalable/mimetypes/office-illustration.svg2
l---------scalable/mimetypes/office-spreadsheet.svg2
l---------scalable/mimetypes/openofficeorg3-database.svg2
l---------scalable/mimetypes/openofficeorg3-oasis-database.svg2
l---------scalable/mimetypes/svg.svg2
l---------scalable/mimetypes/text-mht.svg2
l---------scalable/mimetypes/text-spreadsheet.svg2
l---------scalable/mimetypes/text-x-css.svg2
l---------scalable/mimetypes/text-x-java-source.svg2
l---------scalable/mimetypes/vnd.oasis.opendocument.drawing.svg2
l---------scalable/mimetypes/x-kernel-module.svg1
l---------scalable/mimetypes/x-kernel-object.svg1
l---------scalable/mimetypes/x-kernel.svg1
l---------scalable/status/not-starred-hovered.svg1
164 files changed, 697 insertions, 218 deletions
diff --git a/.gitignore b/.gitignore
index 8af327a..cd82362 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,8 @@
/*x*/
/scalable-*/
*.theme
-conv
+/conv
*.o
*.su
/generated.mk
+/check-icon-listing
diff --git a/Makefile b/Makefile
index 0b7faea..32c20a0 100644
--- a/Makefile
+++ b/Makefile
@@ -7,10 +7,11 @@ include $(CONFIGFILE)
all:
-generated.mk: $(CONFIGFILE) icons.mk Makefile
+generated.mk: $(CONFIGFILE) icons.mk Makefile check-icon-listing
$(DEVCHECK) check/find-errors
$(DEVCHECK) check/find-unlisted-icons
- $(DEVCHECK) check/check-icons-listing
+ $(DEVCHECK) check/find-duplicates
+ $(DEVCHECK) ./check-icon-listing
@test ! -e $@ || chmod -- u+w $@
printf '\043 %s\n' 'This file is generated from Makefile' > $@
printf '\n%1i$$(DIR_SUFFIX)/%%.png: scalable$$(DIR_SUFFIX)/%%.svg conv\n\t./conv $$@\n' $(SIZES) |\
@@ -26,8 +27,12 @@ generated.mk: $(CONFIGFILE) icons.mk Makefile
printf '\n' >> $@
@chmod -- a-w $@
+check-icon-listing: check/check-icon-listing.c
+ $(CC) -o $@ $< $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
+
clean:
-rm -rf -- index.theme *.o *.su conv generated.mk scalable-"$(DIR_SUFFIX_)"
+ -rm -f -- check-icon-listing
-for s in $(SIZES); do printf "$${s}x$${s}$(DIR_SUFFIX)\n"; done | xargs rm -rf --
# These are just added so autocompletion works with them
diff --git a/README b/README
index d37a3eb..0a01a40 100644
--- a/README
+++ b/README
@@ -24,8 +24,8 @@ Design:
indicated by a stroke along the main diagonal
• 35% opaqueness is also used to indicate that
- something is not happening, or a level that
- that has not been reached
+ something is not happening, a level that has
+ not been reached, or an old state
• 50% opaqueness is used to indicate that the
information is may be out of date
diff --git a/TODO b/TODO
index 7ea997d..ee623cc 100644
--- a/TODO
+++ b/TODO
@@ -19,6 +19,8 @@ actions/work_offline needed
status/working_online needed
status/working_offline needed
+inkscape gotten new icons that most be added
+
Add screen sharing icons:
app/screen-share live devices/video-display but with arrows as in actions/webcamsend
@@ -71,9 +73,6 @@ status/
sync-synchronizing The icon used while data is successfully synchronizing to another device.
-Icon that should be ungenericised:
- apps/nautilus
-
Make it easier to switch between LTR and RTL as the default direction
DEVCHECK shall validate that emblems are not outside emblems/
DEVCHECK shall validate links outside emblems/ are not emblems
diff --git a/TODO-low-priority-icons b/TODO-low-priority-icons
index f73ace1..b5d8abd 100644
--- a/TODO-low-priority-icons
+++ b/TODO-low-priority-icons
@@ -1,6 +1,6 @@
These are icons that should be added (indenting of course means symlink to
the first above with less indent), but which I will not be prioritising for
-the foreseeable future
+the foreseeable future.
apps/emu-game_boy
@@ -270,3 +270,7 @@ devices/input-music-keyboard
devices/input-3d_mouse
devices/3d_mouse
+
+apps/nautilus # exists but as an alias to a generic icon
+
+apps/thunar # exists but as an alias to a generic icon
diff --git a/TODO-wrong-icon-displayed b/TODO-wrong-icon-displayed
new file mode 100644
index 0000000..c77ac42
--- /dev/null
+++ b/TODO-wrong-icon-displayed
@@ -0,0 +1,73 @@
+These errors could be because of a missing or misspelled icon, but
+it could also be because of a poor choice in the application itself.
+
+
+mate-disk-usage-analyzer:
+ Menu item "Analyser" > "Scan Remote Folder..." (also found in the
+ toolbar) is currently displaying network status/network-idle instead
+ of places/folder-remote, and thus looks very out of place.
+
+fceux:
+ Menu item "Options" > "Hotkey Config" stands out because it does
+ not have an icon, apps/preferences-desktop-keyboard-shortcuts
+ should be used apps/preferences-system-network.
+
+ Menu item "Options" > "Network Config" is currently displaying
+ icon status/network-idle instead of places/folder-remote,
+ and thus looks very out of place.
+
+ fceuX icon should after clicking "Help" > "About" uses an external
+ icon instead of apps/fceux.
+
+brave:
+ All icons are external icons, these are tolerable.
+
+claws-mail:
+ Almost all icons are external icons.
+
+firefox:
+ All icons are external icons, these are tolerable.
+
+transmission-gtk:
+ The icons at the bottom of the application are external icons,
+ one of them also appear in "Edit" > "Preferences" > "Speed";
+ these icons do however look okay.
+
+libreoffice:
+ A lot of icons are external icons.
+
+meld:
+ (investigate)
+ It is not sure that the icons for the menu items "Changes" >
+ "Pull from Left" and "Changes" > "Pull from Right" are
+ right-to-left compatible. It is likely more likely, but it
+ should still be checked, that "Changes" > "Pull to Left" and
+ "Changes" > "Pull to Right" are right-to-left compatible.
+
+synfig-studio:
+ Most icons are external icons.
+
+gimp:
+ A lot of icons are external icons, but look okay.
+
+thunar:
+ Most icons in "View" > "Config Toolbar..." (they are of couse
+ also used elsewhere) are external icons that look a bit off.
+ Mostly they are too bright, but the Home looks different from
+ the Home icon that is displayed in the side pane and elsewhere.
+
+ The icons to the right in "Edit" > "Configure custom actions..."
+ are external icons and look to bright, also cliking the Gear icon
+ brings up a window where the icon on the button associated with
+ "Command" has the same issue but also uses a different style.
+
+ Clicking the mouse secondary button ("right clicking"), or
+ pressing the menu key on the keyboard, inside a directory brings
+ up a context menu with the three zoom commands' icons are external
+ icons and are too bright.
+
+
+There is no point in trying to fix
+ fontforge
+ audacity
+
diff --git a/check/check-icon-listing.c b/check/check-icon-listing.c
new file mode 100644
index 0000000..af9eb1f
--- /dev/null
+++ b/check/check-icon-listing.c
@@ -0,0 +1,398 @@
+#include <sys/stat.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+enum filetype {
+ ERROR,
+ NO_SUCH_FILE,
+ REGULAR,
+ SYMLINK,
+ OTHER_TYPE
+};
+
+static size_t lineno = 0;
+static char *text = NULL;
+static size_t textlen = 0;
+static int exitstatus = 0;
+static char *filebuf = NULL;
+static char *targetbuf = NULL;
+static char *relbuf = NULL;
+
+static void
+loadicons(void)
+{
+ int fd;
+ size_t size = 0;
+ ssize_t r;
+
+ fd = open("icons.mk", O_RDONLY);
+ if (fd < 0) {
+ fprintf(stderr, "Failed to open icons.mk: %s\n", strerror(errno));
+ exit(1);
+ }
+
+ for (;;) {
+ if (textlen == size) {
+ size += 128UL << 10;
+ text = realloc(text, size);
+ if (!text) {
+ fprintf(stderr, "Failed to allocate enough memory to load icons.mk\n");
+ exit(1);
+ }
+ }
+
+ r = read(fd, &text[textlen], size - textlen);
+ if (r < 0) {
+ fprintf(stderr, "Failed to read icons.mk: %s\n", strerror(errno));
+ exit(1);
+ } else if (!r) {
+ break;
+ } else {
+ textlen += (size_t)r;
+ }
+ }
+
+ close(fd);
+}
+
+static char *
+nextline(void)
+{
+ static size_t pos = 0;
+ char *line = &text[pos];
+
+ if (pos == textlen)
+ return NULL;
+
+ lineno += 1;
+
+ for (; pos < textlen; pos++) {
+ if (!text[pos]) {
+ fprintf(stderr, "Line %zu in icons.mk contains NUL byte\n", lineno);
+ exitstatus = 1;
+ text[pos] = '^';
+ } else if (text[pos] == '\n') {
+ text[pos++] = '\0';
+ break;
+ }
+ }
+
+ return line;
+}
+
+static int
+iscomment(char *line)
+{
+ while (*line == ' ' || *line == '\t')
+ line++;
+ return *line == '#' || !*line;
+}
+
+static void
+remove_line_continuation(char *line)
+{
+ size_t n = strlen(line);
+ if (n && line[n - 1] == '\\')
+ line[n - 1] = '\0';
+}
+
+static void
+rstrip(char *line)
+{
+ size_t n = strlen(line);
+ while (n && (line[n - 1] == ' ' || line[n - 1] == '\t'))
+ line[--n] = '\0';
+}
+
+static size_t
+getindent(char **linep)
+{
+ size_t indent = 0;
+ char *line = *linep;
+ int warned_sp = 0;
+
+ for (;; line++) {
+ if (*line == ' ') {
+ if (!warned_sp) {
+ fprintf(stderr, "Line %zu in icons.mk contains SP character instead of HT\n", lineno);
+ warned_sp = 1;
+ }
+ exitstatus = 1;
+ indent += 1;
+ } else if (*line == '\t') {
+ indent += 8;
+ } else {
+ break;
+ }
+ }
+
+ *linep = line;
+ return (indent + 7) / 8;
+}
+
+static char *
+getfile(char *icon)
+{
+ static size_t size = 0;
+ size_t req = strlen(icon) + sizeof("scalable/.svg");
+ if (req > size) {
+ size = req;
+ filebuf = realloc(filebuf, size);
+ if (!filebuf) {
+ fprintf(stderr, "Failed to allocate enough memory to validate icons.mk\n");
+ exit(1);
+ }
+ }
+ stpcpy(stpcpy(stpcpy(filebuf, "scalable/"), icon), ".svg");
+ return filebuf;
+}
+
+static enum filetype
+getlink(char *file, char **target_out)
+{
+ static size_t size = 0;
+ ssize_t r;
+ struct stat st;
+
+ if (!size) {
+ grow_and_try_again:
+ size += 4096;
+ targetbuf = realloc(targetbuf, size);
+ if (!targetbuf) {
+ fprintf(stderr, "Failed to allocate enough memory to validate icons.mk\n");
+ exit(1);
+ }
+ }
+
+ r = readlink(file, targetbuf, size - 1);
+ if (r >= 0) {
+ if (r >= size - 2)
+ goto grow_and_try_again;
+ while (r && !targetbuf[r - 1])
+ r -= 1;
+ targetbuf[r] = '\0';
+ *target_out = targetbuf;
+ return SYMLINK;
+ } else if (errno == ENOENT) {
+ *target_out = NULL;
+ return NO_SUCH_FILE;
+ } else if (errno == EINVAL) {
+ *target_out = NULL;
+ if (!lstat(file, &st))
+ return S_ISREG(st.st_mode) ? REGULAR : OTHER_TYPE;
+ fprintf(stderr, "Failure at line %zu in icons.mk: lstat %s: %s\n", lineno, file, strerror(errno));
+ exitstatus = 1;
+ return ERROR;
+ } else {
+ fprintf(stderr, "Failure at line %zu in icons.mk: readlink %s: %s\n", lineno, file, strerror(errno));
+ exitstatus = 1;
+ *target_out = NULL;
+ return ERROR;
+ }
+}
+
+static char *
+rel(char *to, char *from)
+{
+ static size_t size = 0;
+ size_t i, req, up = 0;
+ char *p;
+
+ size_t off = 0;
+ for (i = 0; to[i]; i++) {
+ if (to[i] != from[i])
+ break;
+ if (to[i] == '/')
+ off = i + 1;
+ }
+ to = &to[off];
+ from = &from[off];
+
+ while ((from = strchr(from, '/'))) {
+ from = &from[1];
+ up += 1;
+ }
+
+ if (!up)
+ return to;
+
+ req = up * 3 + strlen(to) + 1;
+ if (req > size) {
+ size += 4096;
+ relbuf = realloc(relbuf, size = req);
+ if (!relbuf) {
+ fprintf(stderr, "Failed to allocate enough memory to validate icons.mk\n");
+ exit(1);
+ }
+ }
+
+ p = relbuf;
+ while (up--)
+ p = stpcpy(p, "../");
+ stpcpy(p, to);
+ return relbuf;
+}
+
+int
+main(void)
+{
+ char *line;
+ char *file;
+ char *target;
+ char *goal;
+ int ret = 0;
+ size_t count = 0;
+ size_t indent;
+ char **stack = NULL;
+ size_t stacksize = 0;
+ size_t stacklen = 0;
+ struct stat st1, st2;
+ const char *diff;
+ size_t len;
+ int fixed;
+
+ loadicons();
+
+ while ((line = nextline())) {
+ remove_line_continuation(line);
+ if (iscomment(line))
+ continue;
+ break;
+ }
+
+ while ((line = nextline())) {
+ remove_line_continuation(line);
+ if (iscomment(line))
+ continue;
+
+ count += 1;
+ rstrip(line);
+ indent = getindent(&line);
+ if (strchr(line, ' ') || strchr(line, '\t')) {
+ fprintf(stderr, "Line %zu in icons.mk contains unexpected whitespace\n", lineno);
+ exitstatus = 1;
+ }
+
+ if (!indent) {
+ fprintf(stderr, "Line %zu in icons.mk is not indented\n", lineno);
+ exitstatus = 1;
+ break;
+ }
+ indent -= 1;
+ if (indent > stacklen) {
+ fprintf(stderr, "Line %zu in icons.mk (%s) is overindented\n", lineno, line);
+ exitstatus = 1;
+ break;
+ }
+ if (stacksize <= indent) {
+ stacksize += 32;
+ stack = realloc(stack, stacksize * sizeof(*stack));
+ if (!stack) {
+ fprintf(stderr, "Failed to allocate enough memory to validate icons.mk\n");
+ exit(1);
+ }
+ }
+ stack[indent] = line;
+ stacklen = indent + 1;
+
+ file = getfile(line);
+ switch (getlink(file, &target)) {
+ case ERROR:
+ continue;
+ case NO_SUCH_FILE:
+ fprintf(stderr, "%s is listed but does not exist\n", line);
+ exitstatus = 1;
+ continue;
+ case REGULAR:
+ if (indent) {
+ fprintf(stderr, "%s is not a symlink but is listed as linking to %s\n", line, stack[indent - 1]);
+ exitstatus = 1;
+ continue;
+ }
+ break;
+ case SYMLINK:
+ if (!indent) {
+ fprintf(stderr, "%s is a symlink but not indented\n", line);
+ exitstatus = 1;
+ }
+ len = strlen(target);
+ if (len < 5 || strcmp(&target[len - 4], ".svg")) {
+ fprintf(stderr, "target of %s (%s) is not a .svg-file\n", line, target);
+ exitstatus = 1;
+ continue;
+ }
+ target[len -= 4] = '\0';
+ break;
+ case OTHER_TYPE:
+ default:
+ fprintf(stderr, "%s is listed as an icon but is not a regular file\n", line);
+ exitstatus = 1;
+ continue;
+ }
+
+ if (indent) {
+ if (stat(file, &st1)) {
+ if (errno == ENOENT) {
+ fprintf(stderr, "%s is a dangling symlink\n", line);
+ } else {
+ fprintf(stderr, "Failure at line %zu in icons.mk: stat %s: %s\n",
+ lineno, line, strerror(errno));
+ }
+ exitstatus = 1;
+ continue;
+ }
+
+ file = getfile(stack[indent - 1]);
+ if (stat(file, &st2)) {
+ fprintf(stderr, "Failure at line %zu in icons.mk (%s): stat %s: %s\n",
+ lineno, line, file, strerror(errno));
+ }
+
+ if (st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino)
+ diff = "same real file";
+ else
+ diff = "different real file";
+
+ fixed = 0;
+ while (target[0] == '.' && target[1] == '/') {
+ target = &target[2];
+ fixed = 1;
+ }
+ goal = rel(stack[indent - 1], line);
+ if (strcmp(target, goal)) {
+ fprintf(stderr, "%s links to %s.svg but should link to %s.svg [%s] (%s)\n",
+ line, target, goal, stack[indent - 1], diff);
+ exitstatus = 1;
+ continue;
+ }
+ if (fixed) {
+ fprintf(stderr, "Fixing symlink %s\n", line);
+ file = getfile(line);
+ *strchr(target, '\0') = '.'; /* restore ".svg" at the end of the string */
+ if (unlink(file)) {
+ fprintf(stderr, "... failed to unlink\n");
+ } else if (symlink(target, file)) {
+ fprintf(stderr, "... failed to create symlink (%s -> %s)\n", file, target);
+ exitstatus = 1;
+ break;
+ }
+ }
+ }
+ }
+
+ if (!count) {
+ fprintf(stderr, "No icons are listed in icons.mk\n");
+ exitstatus = 1;
+ }
+
+ free(stack);
+ free(text);
+ free(filebuf);
+ free(targetbuf);
+ free(relbuf);
+ return exitstatus;
+}
diff --git a/check/check-icons-listing b/check/check-icons-listing
deleted file mode 100755
index 404e089..0000000
--- a/check/check-icons-listing
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/bin/sh
-set -e
-
-rel () {
- to="$1"
- from="$2"
- while test $(printf '%s\n' "$to" "$from" | grep / | wc -l) = 2; do
- todir="$(printf '%s\n' "$to" | cut -d / -f 1)"
- fromdir="$(printf '%s\n' "$from" | cut -d / -f 1)"
- if test ! "$todir" = "$fromdir"; then
- break
- fi
- to="$(printf '%s\n' "$to" | cut -d / -f 2-)"
- from="$(printf '%s\n' "$frm" | cut -d / -f 2-)"
- done
- while test -n "$(printf '%s\n' "$from" | grep /)"; do
- from="$(printf '%s\n' "$from" | cut -d / -f 2-)"
- to="../$to"
- done
- printf '%s\n' "$to"
-}
-
-lines=$(sed 's/\\$//' < icons.mk | sed '/^\s*\(#.*\|\)$/d' | sed 1d | wc -l)
-test ! $lines = 0
-
-test $(sed 's/\\$//' < icons.mk | sed '/^\s*\(#.*\|\)$/d' | sed 1d | sed 's/\t/ /g' | grep '^ ' | wc -l) = $lines
-
-test $(sed 's/\\$//' < icons.mk | sed '/^\s*\(#.*\|\)$/d' | sed '1s/^.*$//' | grep -n ' ' | wc -l) = 0
-
-stack=""
-i=0
-sed 's/\\$//' < icons.mk | sed '/^\s*\(#.*\|\)$/d' | sed 1d | sed 's/^\t/x/' | while read L; do
- i=$(( i + 1 ))
- printf 'Checking %i of %i\n\033[A' $i $lines >&2
- tabs=0
- while test ! $(printf '%s\n' "$L" | sed -n '/^x\t/p' | wc -l) = 0; do
- L="$(printf '%s\n' "$L" | sed 's/^x\t/x/')"
- tabs=$(( tabs + 1 ))
- done
- L="$(printf '%s\n' "$L" | sed 's/^x//')"
- f="scalable/$L.svg"
- if test ! $(printf '%s\n' $f | wc -l) = 1; then
- printf '\033[K%s contains whitespace\n' "$L" >&2
- exit 1
- fi
- tabsplus1=$(( tabs + 1 ))
- if test -z "$(printf '%s\n' $stack x | sed -n ${tabsplus1}p)"; then
- printf '\033[K%s is overtabulated\n' "$L" >&2
- exit 1
- else
- stack="$(printf '%s\n' $stack | head -n $tabs; printf '%s\n' "$L")"
- fi
- if test ! -e "$f"; then
- if test -L "$f"; then
- printf '\033[K%s is a dangling symlink\n' "$L" >&2
- else
- printf '\033[K%s is listed but does not exist\n' "$L" >&2
- fi
- exit 1
- fi
- if test $tabs = 0; then
- if test -L "$f"; then
- printf '\033[K%s is a symlink but not indented\n' "$L" >&2
- exit 1
- fi
- else
- goal_="$(printf '%s\n' $stack | sed -n "${tabs}p")"
- if test ! -L "$f"; then
- printf '\033[K%s is not a symlink but listed as linking to %s\n' "$L" "$goal" >&2
- exit 1
- fi
- target="$(realpath -- "$f")"
- goal="$(realpath -- "scalable/${goal_}.svg")"
- if test "$target" = "$goal"; then
- diff="same real file"
- else
- diff="different real file"
- fi
- target="$(readlink -- "$f")"
- goal="$(rel "${goal_}.svg" "$L.svg")"
- if test "$target" = "./$goal"; then
- ln -sf -- "$target" "$f"
- elif test ! "$target" = "$goal"; then
- printf '\033[K%s links to %s but should link to %s (%s)\n' "$L" "$target" "$goal" "$diff" >&2
- exit 1
- fi
- fi
-done
-printf '\033[K' >&2
diff --git a/check/find-duplicates b/check/find-duplicates
new file mode 100755
index 0000000..2517fb6
--- /dev/null
+++ b/check/find-duplicates
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -e
+
+dups="$(sed 's/\\$//' < icons.mk | sed '/^\s*\(#.*\|\)$/d' | sed 1d | tr -d '\t ' | sort | uniq -d)"
+
+if test -n "$dups"; then
+ printf 'The following files have been listed in icons.mk multiple times:\n%s\n' "$dups" >&2
+ exit 1
+fi
diff --git a/config.mk b/config.mk
index 026792e..aedf275 100644
--- a/config.mk
+++ b/config.mk
@@ -1,6 +1,11 @@
PREFIX = /usr
ICONPREFIX = $(PREFIX)/share/icons
+CC = c99
+CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700 -D_GNU_SOURCE
+CFLAGS =
+LDFLAGS =
+
THEME_NAME = Simple
THEME_DESC = A very simple icon theme
THEME_DIR = simple
diff --git a/icons.mk b/icons.mk
index 8655415..4adb9ec 100644
--- a/icons.mk
+++ b/icons.mk
@@ -950,11 +950,11 @@ ICONS =\
apps/preferences-system-network-proxy\
apps/proxy-config\
apps/proxy\
- apps/gnome-network-preferences\
apps/stock_proxy\
- apps/mate-network-properties\
apps/yast-proxy\
apps/preferences-system-network\
+ apps/gnome-network-preferences\
+ apps/mate-network-properties\
categories/org.gnome.Settings-network\
apps/yast-network-group\
apps/preferences-system-details\
@@ -1017,11 +1017,19 @@ ICONS =\
apps/distributor-logo\
mimetypes/vmlinux\
mimetypes/vmlinuz\
+ mimetypes/x-kernel\
+ mimetypes/application-x-kernel\
+ mimetypes/x-kernel-object\
+ mimetypes/application-x-kernel-object\
+ mimetypes/x-kernel-module\
+ mimetypes/application-x-kernel-module\
apps/baobab\
apps/filelight\
apps/org.gnome.baobab\
apps/kdf\
+ apps/mate-disk-usage-analyzer\
apps/gnome-disks\
+ apps/gnome-disk-utility\
apps/gnome-disks-state-standby\
apps/mate-panel\
apps/gnome-panel\
@@ -2188,8 +2196,8 @@ ICONS =\
actions/audio-input-microphone-enable-muted\
actions/audio-input-microphone-disable-high\
actions/audio-input-microphone-disable-low\
+ actions/audio-input-microphone-disable-muted\
actions/audio-input-microphone-disable-medium\
- actions/audio-input-microphone-disable-muted\
status/network-cellular-3g\
status/network-cellular-4g\
status/network-cellular-acquiring\
@@ -2256,6 +2264,7 @@ ICONS =\
status/update-notifier\
status/software-update-urgent\
status/starred\
+ status/not-starred-hovered\
status/blueman-trust\
status/rating\
status/rating-rated\
@@ -2710,12 +2719,22 @@ ICONS =\
actions/window-previous\
actions/window-next-rtl\
actions/zoom-fit-drawing\
+ actions/view-zoom-fit-drawing\
+ actions/zoom-draw-fit\
+ actions/view-zoom-draw-fit\
actions/zoom-fit-selection\
+ actions/view-zoom-fit-selection\
actions/zoom-select\
+ actions/view-zoom-select\
actions/zoom-fit-page\
+ actions/view-zoom-fit-page\
actions/stock_zoom-page\
+ actions/zoom-page-fit\
+ actions/view-zoom-page-fit\
actions/zoom-half-size\
+ actions/view-zoom-half-size\
actions/zoom-double-size\
+ actions/view-zoom-double-size\
actions/transform-move\
actions/transform-translate\
actions/window-duplicate\
@@ -2732,6 +2751,10 @@ ICONS =\
actions/draw-polygon-star\
actions/draw-polygon\
actions/draw-star\
+ actions/folder-move\
+ actions/stock_folder-move\
+ actions/folder-copy\
+ actions/stock_folder-copy\
actions/node-add\
actions/node-delete\
actions/node-segment-curve\
@@ -3222,9 +3245,13 @@ ICONS =\
actions/tool-warp\
actions/gimp-tool-warp\
actions/zoom-next\
+ actions/view-zoom-next\
actions/zoom-previous-rtl\
+ actions/view-zoom-previous-rtl\
actions/zoom-previous\
+ actions/view-zoom-previous\
actions/zoom-next-rtl\
+ actions/view-zoom-next-rtl\
actions/tab-new\
actions/stock_new-tab\
actions/tab_new\
@@ -3530,12 +3557,15 @@ ICONS =\
actions/window-minimize\
actions/window-restore\
actions/zoom-fit-best\
+ actions/view-zoom-fit-best\
actions/gtk-zoom-fit\
actions/remmina-fit-window\
actions/viewmagfit\
actions/zoom-best-fit\
+ actions/view-zoom-best-fit\
actions/stock_zoom-optimal\
actions/zoom-optimal\
+ actions/view-zoom-optimal\
actions/zoom-in\
actions/file-zoom-in\
actions/image-zoom-in\
@@ -3545,6 +3575,7 @@ ICONS =\
actions/viewmag+\
status/view-near\
actions/zoom-original\
+ actions/view-zoom-original\
actions/gtk-zoom-100\
actions/stock_zoom-1\
actions/viewmag1\
@@ -3557,8 +3588,10 @@ ICONS =\
actions/viewmag-\
status/view-far\
actions/zoom-fit-width\
+ actions/view-zoom-fit-width\
actions/stock_zoom-page-width\
actions/zoom-fit-height\
+ actions/view-zoom-fit-height\
actions/stock_zoom-page-height\
actions/help-about\
actions/stock_about\
@@ -4629,6 +4662,7 @@ ICONS =\
apps/rss\
apps/akregator\
apps/liferea\
+ apps/gfeeds\
mimetypes/application-x-appliance\
mimetypes/application-x-executable\
mimetypes/x-executable\
@@ -5160,7 +5194,6 @@ ICONS =\
mimetypes/gnome-mime-application-msword\
mimetypes/gnome-mime-application-postscript\
mimetypes/gnome-mime-application-x-abiword\
- mimetypes/gnome-mime-application-x-dvi\
mimetypes/gnome-mime-application-x-gzpostscript\
mimetypes/gnome-mime-application-x-kword\
mimetypes/gnome-mime-application-x-scribus\
@@ -5355,6 +5388,9 @@ ICONS =\
mimetypes/application-x-bzpdf\
mimetypes/gnome-mime-application-pdf\
mimetypes/pdf\
+ mimetypes/application-dvi\
+ mimetypes/application-x-dvi\
+ mimetypes/gnome-mime-application-x-dvi\
apps/graphics-viewer-document\
apps/xpdf\
apps/kpdf\
@@ -5363,6 +5399,7 @@ ICONS =\
apps/atril\
apps/okular\
apps/gnome-pdf\
+ apps/xdvi\
mimetypes/x-office-formula-template\
mimetypes/libreoffice-formula-template\
mimetypes/libreoffice-oasis-formula-template\
diff --git a/scalable/actions/audio-input-microphone-disable-low.svg b/scalable/actions/audio-input-microphone-disable-low.svg
index 7767e7e..f8a49df 100644
--- a/scalable/actions/audio-input-microphone-disable-low.svg
+++ b/scalable/actions/audio-input-microphone-disable-low.svg
@@ -1 +1 @@
-<svg height="16.001099" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m13.0002 1c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2zm0 1c.55228 0 1 .44771 1 1 0 .55228-.44772 1-1 1-.55229 0-1-.44772-1-1 0-.55229.44771-1 1-1z" opacity=".5"/><path d="m13.0002 6c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2zm0 1c.55228 0 1 .44771 1 1 0 .55228-.44772 1-1 1s-1-.44772-1-1c0-.55229.44772-1 1-1z" opacity=".5"/><path d="m1.979792 1.0269576v.004a1.0001 1.000104 0 0 1 .0605-.002 1.0001 1.000104 0 0 1 .6875.302731l11.95508 11.9531784a1.0001 1.000104 0 0 1 .28711.921873v.792973h-.88672a1.0001 1.000104 0 0 1 -.81445-.300781l-11.95508-11.9531774a1.0001 1.000104 0 0 1 -.30273-.718753v-1.000004h.96875z" stroke-width="1.000002"/><path d="m5.453125.98742663c-.4740596 0-.9121523.13786097-1.2890625.36523497l3.7890625 3.789062v-1.654297c0-1.385-1.115-2.49999997-2.5-2.49999997zm-4 4.01367197c-.27614 0-.5.22386-.5.5v2.96875c0 1.9683804 1.25801 3.6245504 3 4.2500004v1.28125h-2c-.56475 0-1 .49007-1 1v1h.84375 2.15625 5 .09375.90625v-1c-.00006-.58435-.47642-.99995-1-1h-2v-1.28125c.6771661-.243132 1.2782443-.645769 1.7636719-1.158203l-.6855469-.685547c-.6443561.690107-1.5569085 1.125-2.578125 1.125-1.9523 0-3.5-1.5671-3.5-3.5312504v-2.96875c0-.27614-.22386-.5-.5-.5zm8 0c-.27614 0-.5.22386-.5.5 0 .069.00605.12768.03125.1875v.484375l.96875.96875v-1.640625c0-.27614-.22386-.5-.5-.5zm-6.5.796875v2.703125c0 1.385 1.115 2.5000004 2.5 2.5000004.7441461 0 1.4041329-.329104 1.8613281-.841797z"/></g></svg> \ No newline at end of file
+<svg height="16.001099" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m13.0002 1c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2z" opacity=".35"/><path d="m13.0002 6c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2z" opacity=".35"/><path d="m1.979792 1.0269576v.004a1.0001 1.000104 0 0 1 .0605-.002 1.0001 1.000104 0 0 1 .6875.302731l11.95508 11.9531784a1.0001 1.000104 0 0 1 .28711.921873v.792973h-.88672a1.0001 1.000104 0 0 1 -.81445-.300781l-11.95508-11.9531774a1.0001 1.000104 0 0 1 -.30273-.718753v-1.000004h.96875z"/><path d="m5.453125.98742663c-.4740596 0-.9121523.13786097-1.2890625.36523497l3.7890625 3.789062v-1.654297c0-1.385-1.115-2.49999997-2.5-2.49999997zm-4 4.01367197c-.27614 0-.5.22386-.5.5v2.96875c0 1.9683804 1.25801 3.6245504 3 4.2500004v1.28125h-2c-.56475 0-1 .49007-1 1v1h.84375 2.15625 5 .09375.90625v-1c-.00006-.58435-.47642-.99995-1-1h-2v-1.28125c.6771661-.243132 1.2782443-.645769 1.7636719-1.158203l-.6855469-.685547c-.6443561.690107-1.5569085 1.125-2.578125 1.125-1.9523 0-3.5-1.5671-3.5-3.5312504v-2.96875c0-.27614-.22386-.5-.5-.5zm8 0c-.27614 0-.5.22386-.5.5 0 .069.00605.12768.03125.1875v.484375l.96875.96875v-1.640625c0-.27614-.22386-.5-.5-.5zm-6.5.796875v2.703125c0 1.385 1.115 2.5000004 2.5 2.5000004.7441461 0 1.4041329-.329104 1.8613281-.841797z"/></g></svg> \ No newline at end of file
diff --git a/scalable/actions/audio-input-microphone-disable-medium.svg b/scalable/actions/audio-input-microphone-disable-medium.svg
index d28d2ac..9fde6ee 100644
--- a/scalable/actions/audio-input-microphone-disable-medium.svg
+++ b/scalable/actions/audio-input-microphone-disable-medium.svg
@@ -1 +1 @@
-<svg height="16.001099" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m13.0002 1c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2zm0 1c.55228 0 1 .44771 1 1 0 .55228-.44772 1-1 1s-1-.44772-1-1c0-.55229.44772-1 1-1z" opacity=".5"/><path d="m15.000197 7.9999943a2.0000001 1.9999943 0 1 1 -4 0 2.0000001 1.9999943 0 1 1 4 0z" stroke-width="1.032257"/><path d="m1.979667 1.026958v.004a1.0001 1.000104 0 0 1 .0605-.002 1.0001 1.000104 0 0 1 .6875.302731l11.95508 11.953178a1.0001 1.000104 0 0 1 .28711.921873v.792973h-.88672a1.0001 1.000104 0 0 1 -.81445-.300781l-11.95508-11.953177a1.0001 1.000104 0 0 1 -.30273-.718753v-1.000004h.96875z" stroke-width="1.000002"/><path d="m5.453.987427c-.4740596 0-.9121523.137861-1.2890625.365235l3.7890625 3.789062v-1.654297c0-1.385-1.115-2.5-2.5-2.5zm-4 4.013672c-.27614 0-.5.22386-.5.5v2.96875c0 1.96838 1.25801 3.62455 3 4.25v1.28125h-2c-.56475 0-1 .49007-1 1v1h.84375 2.15625 5 .09375.90625v-1c-.00006-.58435-.47642-.99995-1-1h-2v-1.28125c.6771661-.243132 1.2782443-.645769 1.7636719-1.158203l-.6855469-.685547c-.6443561.690107-1.5569085 1.125-2.578125 1.125-1.9523 0-3.5-1.5671-3.5-3.53125v-2.96875c0-.27614-.22386-.5-.5-.5zm8 0c-.27614 0-.5.22386-.5.5 0 .069.00605.12768.03125.1875v.484375l.96875.96875v-1.640625c0-.27614-.22386-.5-.5-.5zm-6.5.796875v2.703125c0 1.385 1.115 2.5 2.5 2.5.7441461 0 1.4041329-.329104 1.8613281-.841797z"/></g></svg> \ No newline at end of file
+<svg height="16.001099" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m13.0002 1c-1.10457 0-2 .89543-2 2s.89543 2 2 2 2-.89543 2-2-.89543-2-2-2z" opacity=".35"/><path d="m15.000197 7.9999943a2.0000001 1.9999943 0 1 1 -4 0 2.0000001 1.9999943 0 1 1 4 0z" stroke-width="1.03226"/><path d="m1.979667 1.026958v.004a1.0001 1.000104 0 0 1 .0605-.002 1.0001 1.000104 0 0 1 .6875.302731l11.95508 11.953178a1.0001 1.000104 0 0 1 .28711.921873v.792973h-.88672a1.0001 1.000104 0 0 1 -.81445-.300781l-11.95508-11.953177a1.0001 1.000104 0 0 1 -.30273-.718753v-1.000004h.96875z"/><path d="m5.453.987427c-.4740596 0-.9121523.137861-1.2890625.365235l3.7890625 3.789062v-1.654297c0-1.385-1.115-2.5-2.5-2.5zm-4 4.013672c-.27614 0-.5.22386-.5.5v2.96875c0 1.96838 1.25801 3.62455 3 4.25v1.28125h-2c-.56475 0-1 .49007-1 1v1h.84375 2.15625 5 .09375.90625v-1c-.00006-.58435-.47642-.99995-1-1h-2v-1.28125c.6771661-.243132 1.2782443-.645769 1.7636719-1.158203l-.6855469-.685547c-.6443561.690107-1.5569085 1.125-2.578125 1.125-1.9523 0-3.5-1.5671-3.5-3.53125v-2.96875c0-.27614-.22386-.5-.5-.5zm8 0c-.27614 0-.5.22386-.5.5 0 .069.00605.12768.03125.1875v.484375l.96875.96875v-1.640625c0-.27614-.22386-.5-.5-.5zm-6.5.796875v2.703125c0 1.385 1.115 2.5 2.5 2.5.7441461 0 1.4041329-.329104 1.8613281-.841797z"/></g></svg> \ No newline at end of file
diff --git a/scalable/actions/audio-input-microphone-disable-muted.svg b/scalable/actions/audio-input-microphone-disable-muted.svg
index 4a9479e..770a6db 100644..120000
--- a/scalable/actions/audio-input-microphone-disable-muted.svg
+++ b/scalable/actions/audio-input-microphone-disable-muted.svg
@@ -1 +1 @@
-<svg height="16.001099" width="16.0002" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m13.0002.99193c-1.09865 0-2.00806.90942-2.00806 2.00807s.90941 2.00806 2.00806 2.00806 2.00806-.90941 2.00806-2.00806-.90941-2.00807-2.00806-2.00807zm0 1.01613c.55821 0 .99193.43373.99193.99194s-.43372.99193-.99193.99193-.99193-.43372-.99193-.99193.43372-.99194.99193-.99194z" opacity=".5"/><path d="m13.00019 5.99193c-1.09865 0-2.00806.90941-2.00806 2.00806s.90941 2.00807 2.00806 2.00807 2.00807-.90942 2.00807-2.00807-.90942-2.00806-2.00807-2.00806zm0 1.01613c.55821 0 .99194.43373.99194.99193 0 .55821-.43373.99194-.99194.99194s-.99193-.43373-.99193-.99194c0-.5582.43372-.99193.99193-.99193z" opacity=".5"/><path d="m1.979667 1.026958v.004a1.0001 1.000104 0 0 1 .0605-.002 1.0001 1.000104 0 0 1 .6875.302731l11.95508 11.953178a1.0001 1.000104 0 0 1 .28711.921873v.792973h-.88672a1.0001 1.000104 0 0 1 -.81445-.300781l-11.95508-11.953177a1.0001 1.000104 0 0 1 -.30273-.718753v-1.000004h.96875z" stroke-width="1.000002"/><path d="m5.453.987427c-.4740596 0-.9121523.137861-1.2890625.365235l3.7890625 3.789062v-1.654297c0-1.385-1.115-2.5-2.5-2.5zm-4 4.013672c-.27614 0-.5.22386-.5.5v2.96875c0 1.96838 1.25801 3.62455 3 4.25v1.28125h-2c-.56475 0-1 .49007-1 1v1h.84375 2.15625 5 .09375.90625v-1c-.00006-.58435-.47642-.99995-1-1h-2v-1.28125c.6771661-.243132 1.2782443-.645769 1.7636719-1.158203l-.6855469-.685547c-.6443561.690107-1.5569085 1.125-2.578125 1.125-1.9523 0-3.5-1.5671-3.5-3.53125v-2.96875c0-.27614-.22386-.5-.5-.5zm8 0c-.27614 0-.5.22386-.5.5 0 .069.00605.12768.03125.1875v.484375l.96875.96875v-1.640625c0-.27614-.22386-.5-.5-.5zm-6.5.796875v2.703125c0 1.385 1.115 2.5 2.5 2.5.7441461 0 1.4041329-.329104 1.8613281-.841797z"/></g></svg> \ No newline at end of file
+audio-input-microphone-disable-low.svg \ No newline at end of file
diff --git a/scalable/actions/audio-input-microphone-enable-muted.svg b/scalable/actions/audio-input-microphone-enable-muted.svg
index 3ef4b40..4b25bda 100644
--- a/scalable/actions/audio-input-microphone-enable-muted.svg
+++ b/scalable/actions/audio-input-microphone-enable-muted.svg
@@ -1 +1 @@
-<svg height="16.001099" width="16.0002" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m21 281h14v11h-14z"/></clipPath><g fill="#bebebe"><rect height="10.012877" rx="2.5" width="5" x="3" y=".987122"/><path clip-path="url(#a)" d="m27.96875 273.625c-2.502477 0-4.53125 2.02877-4.53125 4.53125v5.8125c0 2.50248 2.028773 4.53125 4.53125 4.53125s4.53125-2.02877 4.53125-4.53125v-5.8125c0-2.50248-2.028773-4.53125-4.53125-4.53125zm0 1c1.964148 0 3.53125 1.5671 3.53125 3.53125v5.8125c0 1.96415-1.567102 3.53125-3.53125 3.53125s-3.53125-1.5671-3.53125-3.53125v-5.8125c0-1.96415 1.567102-3.53125 3.53125-3.53125z" transform="matrix(.993968 0 0 1 -22.293101 -275.48613)"/><path d="m2 5.5a.5.5 0 1 1 -1 0 .5.5 0 1 1 1 0z" stroke-width=".5"/><path d="m10 5.5a.5.5 0 1 1 -1 0 .5.5 0 1 1 1 0z" stroke-width=".5"/><path d="m1.90625 14a1.001098 1.001098 0 1 0 .09375 2h7a1.0001 1.0001 0 1 0 0-2h-7a1.0001 1.0001 0 0 0 -.0937 0z"/><path d="m1 15h9.0002v1h-9.0002z"/><path d="m4 12h3v4h-3z"/><path d="m13.0002.99193c-1.09865 0-2.00806.90942-2.00806 2.00807s.90941 2.00806 2.00806 2.00806 2.00806-.90941 2.00806-2.00806-.90941-2.00807-2.00806-2.00807zm0 1.01613c.55821 0 .99193.43373.99193.99194s-.43372.99193-.99193.99193-.99193-.43372-.99193-.99193.43372-.99194.99193-.99194z" opacity=".5"/><path d="m13.00019 5.99193c-1.09865 0-2.00806.90941-2.00806 2.00806s.90941 2.00807 2.00806 2.00807 2.00807-.90942 2.00807-2.00807-.90942-2.00806-2.00807-2.00806zm0 1.01613c.55821 0 .99194.43373.99194.99193 0 .55821-.43373.99194-.99194.99194s-.99193-.43373-.99193-.99194c0-.5582.43372-.99193.99193-.99193z" opacity=".5"/><path d="m13.00019 10.984969c-1.09865 0-2.00806.90941-2.00806 2.00806s.90941 2.00807 2.00806 2.00807 2.00807-.90942 2.00807-2.00807-.90942-2.00806-2.00807-2.00806zm0 1.01613c.55821 0 .99194.43373.99194.99193 0 .55821-.43373.99194-.99194.99194s-.99193-.43373-.99193-.99194c0-.5582.43372-.99193.99193-.99193z" opacity=".5"/></g></svg> \ No newline at end of file
+<svg height="16.001099" width="16.0002" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><clipPath id="a"><path d="m21 281h14v11h-14z"/></clipPath><g fill="#bebebe"><rect height="10.012877" rx="2.5" width="5" x="3" y=".987122"/><path clip-path="url(#a)" d="m27.96875 273.625c-2.502477 0-4.53125 2.02877-4.53125 4.53125v5.8125c0 2.50248 2.028773 4.53125 4.53125 4.53125s4.53125-2.02877 4.53125-4.53125v-5.8125c0-2.50248-2.028773-4.53125-4.53125-4.53125zm0 1c1.964148 0 3.53125 1.5671 3.53125 3.53125v5.8125c0 1.96415-1.567102 3.53125-3.53125 3.53125s-3.53125-1.5671-3.53125-3.53125v-5.8125c0-1.96415 1.567102-3.53125 3.53125-3.53125z" transform="matrix(.993968 0 0 1 -22.293101 -275.48613)"/><path d="m2 5.5a.5.5 0 1 1 -1 0 .5.5 0 1 1 1 0z" stroke-width=".5"/><path d="m10 5.5a.5.5 0 1 1 -1 0 .5.5 0 1 1 1 0z" stroke-width=".5"/><path d="m1.90625 14a1.001098 1.001098 0 1 0 .09375 2h7a1.0001 1.0001 0 1 0 0-2h-7a1.0001 1.0001 0 0 0 -.0937 0z"/><path d="m1 15h9.0002v1h-9.0002z"/><path d="m4 12h3v4h-3z"/><path d="m13.0002.99193c-1.09865 0-2.00806.90942-2.00806 2.00807s.90941 2.00806 2.00806 2.00806 2.00806-.90941 2.00806-2.00806-.90941-2.00807-2.00806-2.00807z" opacity=".35"/><path d="m13.00019 5.99193c-1.09865 0-2.00806.90941-2.00806 2.00806s.90941 2.00807 2.00806 2.00807 2.00807-.90942 2.00807-2.00807-.90942-2.00806-2.00807-2.00806z" opacity=".35"/><path d="m13.00019 10.984969c-1.09865 0-2.00806.90941-2.00806 2.00806s.90941 2.00807 2.00806 2.00807 2.00807-.90942 2.00807-2.00807-.90942-2.00806-2.00807-2.00806z" opacity=".35"/></g></svg> \ No newline at end of file
diff --git a/scalable/actions/folder-copy.svg b/scalable/actions/folder-copy.svg
new file mode 100644
index 0000000..221a88d
--- /dev/null
+++ b/scalable/actions/folder-copy.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m.33203125 0c-.18070589 0-.33203125.15132536-.33203125.33203125v8.33593755c0 .1865623.14540038.3320312.33203125.3320312h4.66796875v-1.6679688c0-.7389776.5930536-1.3320312 1.3320312-1.3320312h3.3359376c.1179748 0 .2283994.0178658.3320312.0488281v-2.7167969c0-.1806871-.1513252-.3320373-.3320312-.3320312h-.6679688-7v4.4121094a.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5v-4.9121094a.50005.50005 0 0 1 .5-.5h7.5v-.6289062c-.0000569-.2044996-.166663-.3710938-.3710938-.3710938h-4.6289062v-.66796875c0-.18071839-.1513253-.33203125-.3320312-.33203125z" stroke-width=".625"/><path d="m6.3320312 7c-.180706 0-.3320312.1513252-.3320312.3320312v8.3359378c0 .186562.1454002.332031.3320312.332031h9.3359378c.186624 0 .332031-.145406.332031-.332031v-5.335938c0-.180687-.151325-.3320371-.332031-.332031h-.667969-7v4.412109a.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5v-4.912109a.50005.50005 0 0 1 .5-.5h7.5v-.6289062c-.000057-.2044998-.166663-.3710938-.371094-.3710938h-4.628906v-.6679688c0-.1807185-.1513251-.3320312-.3320312-.3320312z"/></g></svg> \ No newline at end of file
diff --git a/scalable/actions/folder-move.svg b/scalable/actions/folder-move.svg
new file mode 100644
index 0000000..2ee390b
--- /dev/null
+++ b/scalable/actions/folder-move.svg
@@ -0,0 +1 @@
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m.33203125 0c-.18070589 0-.33203125.15132536-.33203125.33203125v8.33593755c0 .1865623.14540038.3320312.33203125.3320312h4.66796875v-1.6679688c0-.7389776.5930536-1.3320312 1.3320312-1.3320312h3.3359376c.1179748 0 .2283994.0178658.3320312.0488281v-2.7167969c0-.1806871-.1513252-.3320373-.3320312-.3320312h-.6679688-7v4.4121094a.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5v-4.9121094a.50005.50005 0 0 1 .5-.5h7.5v-.6289062c-.0000569-.2044996-.166663-.3710938-.3710938-.3710938h-4.6289062v-.66796875c0-.18071839-.1513253-.33203125-.3320312-.33203125z" opacity=".35" stroke-width=".625"/><path d="m6.3320312 7c-.180706 0-.3320312.1513252-.3320312.3320312v8.3359378c0 .186562.1454002.332031.3320312.332031h9.3359378c.186624 0 .332031-.145406.332031-.332031v-5.335938c0-.180687-.151325-.3320371-.332031-.332031h-.667969-7v4.412109a.5.5 0 0 1 -.5.5.5.5 0 0 1 -.5-.5v-4.912109a.50005.50005 0 0 1 .5-.5h7.5v-.6289062c-.000057-.2044998-.166663-.3710938-.371094-.3710938h-4.628906v-.6679688c0-.1807185-.1513251-.3320312-.3320312-.3320312z"/></g></svg> \ No newline at end of file
diff --git a/scalable/actions/mail-move.svg b/scalable/actions/mail-move.svg
index 6e57772..69013e0 100644
--- a/scalable/actions/mail-move.svg
+++ b/scalable/actions/mail-move.svg
@@ -1 +1 @@
-<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe" transform="translate(-40.99995 -297)"><path d="m.78125 1a.86173499.86172734 0 0 0 -.78125.8632812v7.7539063a.86173499.86172734 0 0 0 .86132812.8613285h2.07617188v-1.7226566h-1.2148438v-4.9296875l1.6738282 1.3398437c.3047862-.3524897.7365858-.5944379 1.2265625-.640625l.0234375-.0019531h.0234375c.058141-.003.1176412-.003.1757812 0l-.046875-.0019531h.5507813l-2.2460938-1.796875h5.8554688l-2.2460938 1.796875h2.7597656l.8671878-.6933594v.6933594h1.722656v-2.6582032a.86173499.86172734 0 0 0 -.861328-.8632812h-10.33984388a.86173499.86172734 0 0 0 -.08007812 0z" fill-opacity=".501961" transform="translate(40.99995 297)"/><g transform="matrix(.86164883 0 0 .86164883 8.747616 44.027214)"><path d="m43.78125 301a1.0000999 1.0000999 0 0 0 -.40625 1.78125l5 4 .625.5.625-.5 5-4a1.0004882 1.0004882 0 1 0 -1.25-1.5625l-4.375 3.5-4.375-3.5a1.0000999 1.0000999 0 0 0 -.84375-.21875z"/><path d="m42.90625 300a1.0001 1.0001 0 0 0 -.90625 1v9a1.0001 1.0001 0 0 0 1 1h12a1.0001 1.0001 0 0 0 1-1v-9a1.0001 1.0001 0 0 0 -1-1h-12a1.0001 1.0001 0 0 0 -.09375 0zm1.09375 2h10v7h-10z"/></g></g></svg> \ No newline at end of file
+<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill="#bebebe"><path d="m.78125 1a.86173499.86172734 0 0 0 -.78125.8632812v7.7539063a.86173499.86172734 0 0 0 .86132812.8613285h2.07617188v-1.7226566h-1.2148438v-4.9296875l1.6738282 1.3398437c.3047862-.3524897.7365858-.5944379 1.2265625-.640625l.023437-.00195h.023437c.058141-.003.1176412-.003.1757812 0l-.046875-.00195h.5507823l-2.2460938-1.7968812h5.8554688l-2.2460938 1.796875h2.7597656l.8671878-.6933594v.6933594h1.722656v-2.6582032a.86173499.86172734 0 0 0 -.861328-.8632812h-10.33984388a.86173499.86172734 0 0 0 -.08007812 0z" opacity=".35"/><g stroke-width=".861649"><path d="m5.4717288 6.3835078a.86173491.86173491 0 0 0 -.3500448 1.534812l4.3082442 3.4465952.5385305.430825.5385303-.430825 4.308244-3.4465952a.86206949.86206949 0 1 0 -1.077061-1.3463263l-3.7697133 3.0157709-3.7697137-3.0157709a.86173491.86173491 0 0 0 -.7270162-.1884857z"/><path d="m4.7177861 5.521859a.86173499.86173499 0 0 0 -.7808692.8616488v7.7548392a.86173499.86173499 0 0 0 .8616488.861649h10.3397863a.86173499.86173499 0 0 0 .861648-.861649v-7.7548392a.86173499.86173499 0 0 0 -.861648-.8616488h-10.3397863a.86173499.86173499 0 0 0 -.08078 0zm.9424284 1.7232977h8.6164885v6.0315413h-8.6164885z"/></g></g></svg> \ No newline at end of file
diff --git a/scalable/actions/stock_folder-copy.svg b/scalable/actions/stock_folder-copy.svg
new file mode 120000
index 0000000..59d45ae
--- /dev/null
+++ b/scalable/actions/stock_folder-copy.svg
@@ -0,0 +1 @@
+folder-copy.svg \ No newline at end of file
diff --git a/scalable/actions/stock_folder-move.svg b/scalable/actions/stock_folder-move.svg
new file mode 120000
index 0000000..4fcef6d
--- /dev/null
+++ b/scalable/actions/stock_folder-move.svg
@@ -0,0 +1 @@
+folder-move.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-best-fit.svg b/scalable/actions/view-zoom-best-fit.svg
new file mode 120000
index 0000000..ee12c3d
--- /dev/null
+++ b/scalable/actions/view-zoom-best-fit.svg
@@ -0,0 +1 @@
+zoom-best-fit.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-double-size.svg b/scalable/actions/view-zoom-double-size.svg
new file mode 120000
index 0000000..36d5f73
--- /dev/null
+++ b/scalable/actions/view-zoom-double-size.svg
@@ -0,0 +1 @@
+zoom-double-size.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-draw-fit.svg b/scalable/actions/view-zoom-draw-fit.svg
new file mode 120000
index 0000000..53f15c2
--- /dev/null
+++ b/scalable/actions/view-zoom-draw-fit.svg
@@ -0,0 +1 @@
+zoom-draw-fit.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-best.svg b/scalable/actions/view-zoom-fit-best.svg
new file mode 120000
index 0000000..a77e7a1
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-best.svg
@@ -0,0 +1 @@
+zoom-fit-best.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-drawing.svg b/scalable/actions/view-zoom-fit-drawing.svg
new file mode 120000
index 0000000..71817f2
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-drawing.svg
@@ -0,0 +1 @@
+zoom-fit-drawing.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-height.svg b/scalable/actions/view-zoom-fit-height.svg
new file mode 120000
index 0000000..e84c272
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-height.svg
@@ -0,0 +1 @@
+zoom-fit-height.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-page.svg b/scalable/actions/view-zoom-fit-page.svg
new file mode 120000
index 0000000..68b6e24
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-page.svg
@@ -0,0 +1 @@
+zoom-fit-page.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-selection.svg b/scalable/actions/view-zoom-fit-selection.svg
new file mode 120000
index 0000000..cc77c1c
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-selection.svg
@@ -0,0 +1 @@
+zoom-fit-selection.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-fit-width.svg b/scalable/actions/view-zoom-fit-width.svg
new file mode 120000
index 0000000..1572505
--- /dev/null
+++ b/scalable/actions/view-zoom-fit-width.svg
@@ -0,0 +1 @@
+zoom-fit-width.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-half-size.svg b/scalable/actions/view-zoom-half-size.svg
new file mode 120000
index 0000000..a64f09f
--- /dev/null
+++ b/scalable/actions/view-zoom-half-size.svg
@@ -0,0 +1 @@
+zoom-half-size.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-next-rtl.svg b/scalable/actions/view-zoom-next-rtl.svg
new file mode 120000
index 0000000..5e896fc
--- /dev/null
+++ b/scalable/actions/view-zoom-next-rtl.svg
@@ -0,0 +1 @@
+zoom-next-rtl.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-next.svg b/scalable/actions/view-zoom-next.svg
new file mode 120000
index 0000000..cd8fada
--- /dev/null
+++ b/scalable/actions/view-zoom-next.svg
@@ -0,0 +1 @@
+zoom-next.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-optimal.svg b/scalable/actions/view-zoom-optimal.svg
new file mode 120000
index 0000000..eced2a5
--- /dev/null
+++ b/scalable/actions/view-zoom-optimal.svg
@@ -0,0 +1 @@
+zoom-optimal.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-original.svg b/scalable/actions/view-zoom-original.svg
new file mode 120000
index 0000000..a938dcd
--- /dev/null
+++ b/scalable/actions/view-zoom-original.svg
@@ -0,0 +1 @@
+zoom-original.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-page-fit.svg b/scalable/actions/view-zoom-page-fit.svg
new file mode 120000
index 0000000..352b9f5
--- /dev/null
+++ b/scalable/actions/view-zoom-page-fit.svg
@@ -0,0 +1 @@
+zoom-page-fit.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-previous-rtl.svg b/scalable/actions/view-zoom-previous-rtl.svg
new file mode 120000
index 0000000..7b4207a
--- /dev/null
+++ b/scalable/actions/view-zoom-previous-rtl.svg
@@ -0,0 +1 @@
+zoom-previous-rtl.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-previous.svg b/scalable/actions/view-zoom-previous.svg
new file mode 120000
index 0000000..352b0e2
--- /dev/null
+++ b/scalable/actions/view-zoom-previous.svg
@@ -0,0 +1 @@
+zoom-previous.svg \ No newline at end of file
diff --git a/scalable/actions/view-zoom-select.svg b/scalable/actions/view-zoom-select.svg
new file mode 120000
index 0000000..037a51b
--- /dev/null
+++ b/scalable/actions/view-zoom-select.svg
@@ -0,0 +1 @@
+zoom-select.svg \ No newline at end of file
diff --git a/scalable/actions/zoom-draw-fit.svg b/scalable/actions/zoom-draw-fit.svg
new file mode 120000
index 0000000..71817f2
--- /dev/null
+++ b/scalable/actions/zoom-draw-fit.svg
@@ -0,0 +1 @@
+zoom-fit-drawing.svg \ No newline at end of file
diff --git a/scalable/actions/zoom-page-fit.svg b/scalable/actions/zoom-page-fit.svg
new file mode 120000
index 0000000..68b6e24
--- /dev/null
+++ b/scalable/actions/zoom-page-fit.svg
@@ -0,0 +1 @@
+zoom-fit-page.svg \ No newline at end of file
diff --git a/scalable/apps/adobe-flashplayer.svg b/scalable/apps/adobe-flashplayer.svg
index af21a7e..7f29ee5 120000
--- a/scalable/apps/adobe-flashplayer.svg
+++ b/scalable/apps/adobe-flashplayer.svg
@@ -1 +1 @@
-./flashplayer.svg \ No newline at end of file
+flashplayer.svg \ No newline at end of file
diff --git a/scalable/apps/adobeflashplugin.svg b/scalable/apps/adobeflashplugin.svg
index 59d9aea..29daace 120000
--- a/scalable/apps/adobeflashplugin.svg
+++ b/scalable/apps/adobeflashplugin.svg
@@ -1 +1 @@
-./flash.svg \ No newline at end of file
+flash.svg \ No newline at end of file
diff --git a/scalable/apps/galculator.svg b/scalable/apps/galculator.svg
index f56c7e5..80698d6 120000
--- a/scalable/apps/galculator.svg
+++ b/scalable/apps/galculator.svg
@@ -1 +1 @@
-./accessories-calculator.svg \ No newline at end of file
+accessories-calculator.svg \ No newline at end of file
diff --git a/scalable/apps/gfeeds.svg b/scalable/apps/gfeeds.svg
new file mode 120000
index 0000000..6f7851f
--- /dev/null
+++ b/scalable/apps/gfeeds.svg
@@ -0,0 +1 @@
+internet-feed-reader.svg \ No newline at end of file
diff --git a/scalable/apps/gnome-desktop-item-edit.svg b/scalable/apps/gnome-desktop-item-edit.svg
index 57e6cd3..ce31ade 120000
--- a/scalable/apps/gnome-desktop-item-edit.svg
+++ b/scalable/apps/gnome-desktop-item-edit.svg
@@ -1 +1 @@
-./gnome-panel-launcher.svg \ No newline at end of file
+gnome-panel-launcher.svg \ No newline at end of file
diff --git a/scalable/apps/gnome-dictionary.svg b/scalable/apps/gnome-dictionary.svg
index d9848b8..fc7facf 120000
--- a/scalable/apps/gnome-dictionary.svg
+++ b/scalable/apps/gnome-dictionary.svg
@@ -1 +1 @@
-./accessories-dictionary.svg \ No newline at end of file
+accessories-dictionary.svg \ No newline at end of file
diff --git a/scalable/apps/gnome-disk-utility.svg b/scalable/apps/gnome-disk-utility.svg
new file mode 120000
index 0000000..6080e25
--- /dev/null
+++ b/scalable/apps/gnome-disk-utility.svg
@@ -0,0 +1 @@
+gnome-disks.svg \ No newline at end of file
diff --git a/scalable/apps/gnome-network-preferences.svg b/scalable/apps/gnome-network-preferences.svg
index 115cf4d..66bda98 120000
--- a/scalable/apps/gnome-network-preferences.svg
+++ b/scalable/apps/gnome-network-preferences.svg
@@ -1 +1 @@
-preferences-system-network-proxy.svg \ No newline at end of file
+preferences-system-network.svg \ No newline at end of file
diff --git a/scalable/apps/gnome-web-browser.svg b/scalable/apps/gnome-web-browser.svg
index 4f53bce..76b91b8 120000
--- a/scalable/apps/gnome-web-browser.svg
+++ b/scalable/apps/gnome-web-browser.svg
@@ -1 +1 @@
-./web-browser.svg \ No newline at end of file
+web-browser.svg \ No newline at end of file
diff --git a/scalable/apps/kmplayer.svg b/scalable/apps/kmplayer.svg
index e0a73df..eb851c2 120000
--- a/scalable/apps/kmplayer.svg
+++ b/scalable/apps/kmplayer.svg
@@ -1 +1 @@
-./mplayer.svg \ No newline at end of file
+mplayer.svg \ No newline at end of file
diff --git a/scalable/apps/kplayer.svg b/scalable/apps/kplayer.svg
index e0a73df..eb851c2 120000
--- a/scalable/apps/kplayer.svg
+++ b/scalable/apps/kplayer.svg
@@ -1 +1 @@
-./mplayer.svg \ No newline at end of file
+mplayer.svg \ No newline at end of file
diff --git a/scalable/apps/lxterminal.svg b/scalable/apps/lxterminal.svg
index 192ef42..08ba74f 120000
--- a/scalable/apps/lxterminal.svg
+++ b/scalable/apps/lxterminal.svg
@@ -1 +1 @@
-./utilities-terminal.svg \ No newline at end of file
+utilities-terminal.svg \ No newline at end of file
diff --git a/scalable/apps/mate-disk-usage-analyzer.svg b/scalable/apps/mate-disk-usage-analyzer.svg
new file mode 120000
index 0000000..4180791
--- /dev/null
+++ b/scalable/apps/mate-disk-usage-analyzer.svg
@@ -0,0 +1 @@
+baobab.svg \ No newline at end of file
diff --git a/scalable/apps/mate-network-properties.svg b/scalable/apps/mate-network-properties.svg
index 115cf4d..66bda98 120000
--- a/scalable/apps/mate-network-properties.svg
+++ b/scalable/apps/mate-network-properties.svg
@@ -1 +1 @@
-preferences-system-network-proxy.svg \ No newline at end of file
+preferences-system-network.svg \ No newline at end of file
diff --git a/scalable/apps/python3.10.svg b/scalable/apps/python3.10.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.10.svg
+++ b/scalable/apps/python3.10.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.11.svg b/scalable/apps/python3.11.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.11.svg
+++ b/scalable/apps/python3.11.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.12.svg b/scalable/apps/python3.12.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.12.svg
+++ b/scalable/apps/python3.12.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.13.svg b/scalable/apps/python3.13.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.13.svg
+++ b/scalable/apps/python3.13.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.14.svg b/scalable/apps/python3.14.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.14.svg
+++ b/scalable/apps/python3.14.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.15.svg b/scalable/apps/python3.15.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.15.svg
+++ b/scalable/apps/python3.15.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.16.svg b/scalable/apps/python3.16.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.16.svg
+++ b/scalable/apps/python3.16.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.17.svg b/scalable/apps/python3.17.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.17.svg
+++ b/scalable/apps/python3.17.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.18.svg b/scalable/apps/python3.18.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.18.svg
+++ b/scalable/apps/python3.18.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.19.svg b/scalable/apps/python3.19.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.19.svg
+++ b/scalable/apps/python3.19.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/python3.20.svg b/scalable/apps/python3.20.svg
index d3b0a7e..cff7fc9 120000
--- a/scalable/apps/python3.20.svg
+++ b/scalable/apps/python3.20.svg
@@ -1 +1 @@
-./python3.svg \ No newline at end of file
+python3.svg \ No newline at end of file
diff --git a/scalable/apps/screenie-qt.svg b/scalable/apps/screenie-qt.svg
index 98c5943..7549e2d 120000
--- a/scalable/apps/screenie-qt.svg
+++ b/scalable/apps/screenie-qt.svg
@@ -1 +1 @@
-./gnome-screenshot.svg \ No newline at end of file
+gnome-screenshot.svg \ No newline at end of file
diff --git a/scalable/apps/screenie.svg b/scalable/apps/screenie.svg
index 98c5943..7549e2d 120000
--- a/scalable/apps/screenie.svg
+++ b/scalable/apps/screenie.svg
@@ -1 +1 @@
-./gnome-screenshot.svg \ No newline at end of file
+gnome-screenshot.svg \ No newline at end of file
diff --git a/scalable/apps/speedcrunch.svg b/scalable/apps/speedcrunch.svg
index f56c7e5..80698d6 120000
--- a/scalable/apps/speedcrunch.svg
+++ b/scalable/apps/speedcrunch.svg
@@ -1 +1 @@
-./accessories-calculator.svg \ No newline at end of file
+accessories-calculator.svg \ No newline at end of file
diff --git a/scalable/apps/xdvi.svg b/scalable/apps/xdvi.svg
new file mode 120000
index 0000000..661d25c
--- /dev/null
+++ b/scalable/apps/xdvi.svg
@@ -0,0 +1 @@
+graphics-viewer-document.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-atom+xml.svg b/scalable/mimetypes/application-atom+xml.svg
index ca5d9df..2f0fbff 120000
--- a/scalable/mimetypes/application-atom+xml.svg
+++ b/scalable/mimetypes/application-atom+xml.svg
@@ -1 +1 @@
-./application-rss+xml.svg \ No newline at end of file
+application-rss+xml.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-dvi.svg b/scalable/mimetypes/application-dvi.svg
new file mode 120000
index 0000000..9e6d8a1
--- /dev/null
+++ b/scalable/mimetypes/application-dvi.svg
@@ -0,0 +1 @@
+application-pdf.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-illustrator.svg b/scalable/mimetypes/application-illustrator.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/application-illustrator.svg
+++ b/scalable/mimetypes/application-illustrator.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-javascript.svg b/scalable/mimetypes/application-javascript.svg
index 22f898a..8b40d5e 120000
--- a/scalable/mimetypes/application-javascript.svg
+++ b/scalable/mimetypes/application-javascript.svg
@@ -1 +1 @@
-./text-x-javascript.svg \ No newline at end of file
+text-x-javascript.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-ogg.svg b/scalable/mimetypes/application-ogg.svg
index d822d04..28f0297 120000
--- a/scalable/mimetypes/application-ogg.svg
+++ b/scalable/mimetypes/application-ogg.svg
@@ -1 +1 @@
-./audio-x-vorbis+ogg.svg \ No newline at end of file
+audio-x-vorbis+ogg.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.oasis.opendocument.graphics.svg b/scalable/mimetypes/application-vnd.oasis.opendocument.graphics.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/application-vnd.oasis.opendocument.graphics.svg
+++ b/scalable/mimetypes/application-vnd.oasis.opendocument.graphics.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg b/scalable/mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg
index 1b6e79f..b17ea28 120000
--- a/scalable/mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg
+++ b/scalable/mimetypes/application-vnd.oasis.opendocument.spreadsheet.svg
@@ -1 +1 @@
-./x-office-spreadsheet.svg \ No newline at end of file
+x-office-spreadsheet.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.oasis.opendocument.text-web.svg b/scalable/mimetypes/application-vnd.oasis.opendocument.text-web.svg
index 65920fb..c4ba315 120000
--- a/scalable/mimetypes/application-vnd.oasis.opendocument.text-web.svg
+++ b/scalable/mimetypes/application-vnd.oasis.opendocument.text-web.svg
@@ -1 +1 @@
-./text-html.svg \ No newline at end of file
+text-html.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.oasis.opendocument.text.svg b/scalable/mimetypes/application-vnd.oasis.opendocument.text.svg
index bdf7ad5..86b2f62 120000
--- a/scalable/mimetypes/application-vnd.oasis.opendocument.text.svg
+++ b/scalable/mimetypes/application-vnd.oasis.opendocument.text.svg
@@ -1 +1 @@
-./x-office-document.svg \ No newline at end of file
+x-office-document.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.rn-realmedia.svg b/scalable/mimetypes/application-vnd.rn-realmedia.svg
index 3c4640c..db0a1dc 120000
--- a/scalable/mimetypes/application-vnd.rn-realmedia.svg
+++ b/scalable/mimetypes/application-vnd.rn-realmedia.svg
@@ -1 +1 @@
-./video-x-generic.svg \ No newline at end of file
+video-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.sun.xml.calc.svg b/scalable/mimetypes/application-vnd.sun.xml.calc.svg
index 1b6e79f..b17ea28 120000
--- a/scalable/mimetypes/application-vnd.sun.xml.calc.svg
+++ b/scalable/mimetypes/application-vnd.sun.xml.calc.svg
@@ -1 +1 @@
-./x-office-spreadsheet.svg \ No newline at end of file
+x-office-spreadsheet.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.sun.xml.draw.svg b/scalable/mimetypes/application-vnd.sun.xml.draw.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/application-vnd.sun.xml.draw.svg
+++ b/scalable/mimetypes/application-vnd.sun.xml.draw.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.sun.xml.writer.svg b/scalable/mimetypes/application-vnd.sun.xml.writer.svg
index bdf7ad5..86b2f62 120000
--- a/scalable/mimetypes/application-vnd.sun.xml.writer.svg
+++ b/scalable/mimetypes/application-vnd.sun.xml.writer.svg
@@ -1 +1 @@
-./x-office-document.svg \ No newline at end of file
+x-office-document.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-vnd.wordperfect.svg b/scalable/mimetypes/application-vnd.wordperfect.svg
index bdf7ad5..86b2f62 120000
--- a/scalable/mimetypes/application-vnd.wordperfect.svg
+++ b/scalable/mimetypes/application-vnd.wordperfect.svg
@@ -1 +1 @@
-./x-office-document.svg \ No newline at end of file
+x-office-document.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-arc.svg b/scalable/mimetypes/application-x-arc.svg
index eb675d9..640cdc8 120000
--- a/scalable/mimetypes/application-x-arc.svg
+++ b/scalable/mimetypes/application-x-arc.svg
@@ -1 +1 @@
-./application-x-archive.svg \ No newline at end of file
+application-x-archive.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-class-file.svg b/scalable/mimetypes/application-x-class-file.svg
index 19df4d1..dbc66cd 120000
--- a/scalable/mimetypes/application-x-class-file.svg
+++ b/scalable/mimetypes/application-x-class-file.svg
@@ -1 +1 @@
-./text-x-java.svg \ No newline at end of file
+text-x-java.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-compress.svg b/scalable/mimetypes/application-x-compress.svg
index eb675d9..640cdc8 120000
--- a/scalable/mimetypes/application-x-compress.svg
+++ b/scalable/mimetypes/application-x-compress.svg
@@ -1 +1 @@
-./application-x-archive.svg \ No newline at end of file
+application-x-archive.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-deb.svg b/scalable/mimetypes/application-x-deb.svg
index bd6a7e2..986ab96 120000
--- a/scalable/mimetypes/application-x-deb.svg
+++ b/scalable/mimetypes/application-x-deb.svg
@@ -1 +1 @@
-./deb.svg \ No newline at end of file
+deb.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-dvi.svg b/scalable/mimetypes/application-x-dvi.svg
new file mode 120000
index 0000000..d4a8ea8
--- /dev/null
+++ b/scalable/mimetypes/application-x-dvi.svg
@@ -0,0 +1 @@
+application-dvi.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-gnumeric.svg b/scalable/mimetypes/application-x-gnumeric.svg
index 1b6e79f..b17ea28 120000
--- a/scalable/mimetypes/application-x-gnumeric.svg
+++ b/scalable/mimetypes/application-x-gnumeric.svg
@@ -1 +1 @@
-./x-office-spreadsheet.svg \ No newline at end of file
+x-office-spreadsheet.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-java.svg b/scalable/mimetypes/application-x-java.svg
index 19df4d1..dbc66cd 120000
--- a/scalable/mimetypes/application-x-java.svg
+++ b/scalable/mimetypes/application-x-java.svg
@@ -1 +1 @@
-./text-x-java.svg \ No newline at end of file
+text-x-java.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-kernel-module.svg b/scalable/mimetypes/application-x-kernel-module.svg
new file mode 120000
index 0000000..12ba01f
--- /dev/null
+++ b/scalable/mimetypes/application-x-kernel-module.svg
@@ -0,0 +1 @@
+x-kernel-module.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-kernel-object.svg b/scalable/mimetypes/application-x-kernel-object.svg
new file mode 120000
index 0000000..e7691d5
--- /dev/null
+++ b/scalable/mimetypes/application-x-kernel-object.svg
@@ -0,0 +1 @@
+x-kernel-object.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-kernel.svg b/scalable/mimetypes/application-x-kernel.svg
new file mode 120000
index 0000000..512ee36
--- /dev/null
+++ b/scalable/mimetypes/application-x-kernel.svg
@@ -0,0 +1 @@
+x-kernel.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-matroska.svg b/scalable/mimetypes/application-x-matroska.svg
index 3c4640c..db0a1dc 120000
--- a/scalable/mimetypes/application-x-matroska.svg
+++ b/scalable/mimetypes/application-x-matroska.svg
@@ -1 +1 @@
-./video-x-generic.svg \ No newline at end of file
+video-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-pak.svg b/scalable/mimetypes/application-x-pak.svg
index 2bb0cd9..115fd33 120000
--- a/scalable/mimetypes/application-x-pak.svg
+++ b/scalable/mimetypes/application-x-pak.svg
@@ -1 +1 @@
-./package-x-generic.svg \ No newline at end of file
+package-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-rpm.svg b/scalable/mimetypes/application-x-rpm.svg
index 781681e..a971887 120000
--- a/scalable/mimetypes/application-x-rpm.svg
+++ b/scalable/mimetypes/application-x-rpm.svg
@@ -1 +1 @@
-./rpm.svg \ No newline at end of file
+rpm.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-scribus.svg b/scalable/mimetypes/application-x-scribus.svg
index b776fdc..1a29949 120000
--- a/scalable/mimetypes/application-x-scribus.svg
+++ b/scalable/mimetypes/application-x-scribus.svg
@@ -1 +1 @@
-./application-vnd.scribus.svg \ No newline at end of file
+application-vnd.scribus.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-shockwave-flash.svg b/scalable/mimetypes/application-x-shockwave-flash.svg
index eb8765d..6022f31 120000
--- a/scalable/mimetypes/application-x-shockwave-flash.svg
+++ b/scalable/mimetypes/application-x-shockwave-flash.svg
@@ -1 +1 @@
-./application-x-flash-video.svg \ No newline at end of file
+application-x-flash-video.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-sqlite2.svg b/scalable/mimetypes/application-x-sqlite2.svg
index a3df17c..9d514aa 120000
--- a/scalable/mimetypes/application-x-sqlite2.svg
+++ b/scalable/mimetypes/application-x-sqlite2.svg
@@ -1 +1 @@
-./text-x-sql.svg \ No newline at end of file
+text-x-sql.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-x-sqlite3.svg b/scalable/mimetypes/application-x-sqlite3.svg
index a3df17c..9d514aa 120000
--- a/scalable/mimetypes/application-x-sqlite3.svg
+++ b/scalable/mimetypes/application-x-sqlite3.svg
@@ -1 +1 @@
-./text-x-sql.svg \ No newline at end of file
+text-x-sql.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-xml.svg b/scalable/mimetypes/application-xml.svg
index 8769376..8cee726 120000
--- a/scalable/mimetypes/application-xml.svg
+++ b/scalable/mimetypes/application-xml.svg
@@ -1 +1 @@
-./text-xml.svg \ No newline at end of file
+text-xml.svg \ No newline at end of file
diff --git a/scalable/mimetypes/application-zip.svg b/scalable/mimetypes/application-zip.svg
index 88adccc..6ffeef5 120000
--- a/scalable/mimetypes/application-zip.svg
+++ b/scalable/mimetypes/application-zip.svg
@@ -1 +1 @@
-./application-x-zip.svg \ No newline at end of file
+application-x-zip.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-exe-thumbnailer-generic-x.svg b/scalable/mimetypes/gnome-exe-thumbnailer-generic-x.svg
index 58b213f..2166581 120000
--- a/scalable/mimetypes/gnome-exe-thumbnailer-generic-x.svg
+++ b/scalable/mimetypes/gnome-exe-thumbnailer-generic-x.svg
@@ -1 +1 @@
-./application-x-ms-dos-executable.svg \ No newline at end of file
+application-x-ms-dos-executable.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-exe-thumbnailer-generic.svg b/scalable/mimetypes/gnome-exe-thumbnailer-generic.svg
index c9a1832..5c78e36 120000
--- a/scalable/mimetypes/gnome-exe-thumbnailer-generic.svg
+++ b/scalable/mimetypes/gnome-exe-thumbnailer-generic.svg
@@ -1 +1 @@
-./application-x-msdownload.svg \ No newline at end of file
+application-x-msdownload.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-exe-thumbnailer-template.svg b/scalable/mimetypes/gnome-exe-thumbnailer-template.svg
index c9a1832..5c78e36 120000
--- a/scalable/mimetypes/gnome-exe-thumbnailer-template.svg
+++ b/scalable/mimetypes/gnome-exe-thumbnailer-template.svg
@@ -1 +1 @@
-./application-x-msdownload.svg \ No newline at end of file
+application-x-msdownload.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-javascript.svg b/scalable/mimetypes/gnome-mime-application-javascript.svg
index 22f898a..8b40d5e 120000
--- a/scalable/mimetypes/gnome-mime-application-javascript.svg
+++ b/scalable/mimetypes/gnome-mime-application-javascript.svg
@@ -1 +1 @@
-./text-x-javascript.svg \ No newline at end of file
+text-x-javascript.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-rss+xml.svg b/scalable/mimetypes/gnome-mime-application-rss+xml.svg
index ca5d9df..2f0fbff 120000
--- a/scalable/mimetypes/gnome-mime-application-rss+xml.svg
+++ b/scalable/mimetypes/gnome-mime-application-rss+xml.svg
@@ -1 +1 @@
-./application-rss+xml.svg \ No newline at end of file
+application-rss+xml.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-vnd.scribus.svg b/scalable/mimetypes/gnome-mime-application-vnd.scribus.svg
index b776fdc..1a29949 120000
--- a/scalable/mimetypes/gnome-mime-application-vnd.scribus.svg
+++ b/scalable/mimetypes/gnome-mime-application-vnd.scribus.svg
@@ -1 +1 @@
-./application-vnd.scribus.svg \ No newline at end of file
+application-vnd.scribus.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-ace.svg b/scalable/mimetypes/gnome-mime-application-x-ace.svg
index 88b4cd3..753c10f 120000
--- a/scalable/mimetypes/gnome-mime-application-x-ace.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-ace.svg
@@ -1 +1 @@
-./application-x-ace.svg \ No newline at end of file
+application-x-ace.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-bittorrent.svg b/scalable/mimetypes/gnome-mime-application-x-bittorrent.svg
index e83549d..a6d0d70 120000
--- a/scalable/mimetypes/gnome-mime-application-x-bittorrent.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-bittorrent.svg
@@ -1 +1 @@
-./application-x-bittorrent.svg \ No newline at end of file
+application-x-bittorrent.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-dvi.svg b/scalable/mimetypes/gnome-mime-application-x-dvi.svg
index 86b2f62..e2f0297 120000
--- a/scalable/mimetypes/gnome-mime-application-x-dvi.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-dvi.svg
@@ -1 +1 @@
-x-office-document.svg \ No newline at end of file
+application-x-dvi.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-javascript.svg b/scalable/mimetypes/gnome-mime-application-x-javascript.svg
index 22f898a..8b40d5e 120000
--- a/scalable/mimetypes/gnome-mime-application-x-javascript.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-javascript.svg
@@ -1 +1 @@
-./text-x-javascript.svg \ No newline at end of file
+text-x-javascript.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-ruby.svg b/scalable/mimetypes/gnome-mime-application-x-ruby.svg
index 55fa7a8..615af7a 120000
--- a/scalable/mimetypes/gnome-mime-application-x-ruby.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-ruby.svg
@@ -1 +1 @@
-./application-x-ruby.svg \ No newline at end of file
+application-x-ruby.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-application-x-zip.svg b/scalable/mimetypes/gnome-mime-application-x-zip.svg
index 88adccc..6ffeef5 120000
--- a/scalable/mimetypes/gnome-mime-application-x-zip.svg
+++ b/scalable/mimetypes/gnome-mime-application-x-zip.svg
@@ -1 +1 @@
-./application-x-zip.svg \ No newline at end of file
+application-x-zip.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-bmp.svg b/scalable/mimetypes/gnome-mime-image-bmp.svg
index d5dbabf..694622c 120000
--- a/scalable/mimetypes/gnome-mime-image-bmp.svg
+++ b/scalable/mimetypes/gnome-mime-image-bmp.svg
@@ -1 +1 @@
-./image-bmp.svg \ No newline at end of file
+image-bmp.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-gif.svg b/scalable/mimetypes/gnome-mime-image-gif.svg
index 8fab532..8acca52 120000
--- a/scalable/mimetypes/gnome-mime-image-gif.svg
+++ b/scalable/mimetypes/gnome-mime-image-gif.svg
@@ -1 +1 @@
-./image-gif.svg \ No newline at end of file
+image-gif.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-jpeg.svg b/scalable/mimetypes/gnome-mime-image-jpeg.svg
index 1fc63f5..c91a5de 120000
--- a/scalable/mimetypes/gnome-mime-image-jpeg.svg
+++ b/scalable/mimetypes/gnome-mime-image-jpeg.svg
@@ -1 +1 @@
-./image-jpeg.svg \ No newline at end of file
+image-jpeg.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-png.svg b/scalable/mimetypes/gnome-mime-image-png.svg
index 3b75d9a..6d55cbf 120000
--- a/scalable/mimetypes/gnome-mime-image-png.svg
+++ b/scalable/mimetypes/gnome-mime-image-png.svg
@@ -1 +1 @@
-./image-png.svg \ No newline at end of file
+image-png.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-tiff.svg b/scalable/mimetypes/gnome-mime-image-tiff.svg
index 59e3b9f..b28188a 120000
--- a/scalable/mimetypes/gnome-mime-image-tiff.svg
+++ b/scalable/mimetypes/gnome-mime-image-tiff.svg
@@ -1 +1 @@
-./image-tiff.svg \ No newline at end of file
+image-tiff.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-vnd.adobe.photoshop.svg b/scalable/mimetypes/gnome-mime-image-vnd.adobe.photoshop.svg
index 5abdb8e..e919fc9 120000
--- a/scalable/mimetypes/gnome-mime-image-vnd.adobe.photoshop.svg
+++ b/scalable/mimetypes/gnome-mime-image-vnd.adobe.photoshop.svg
@@ -1 +1 @@
-./image-x-psd.svg \ No newline at end of file
+image-x-psd.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-x-cmu-raster.svg b/scalable/mimetypes/gnome-mime-image-x-cmu-raster.svg
index 1ed223f..a2c40c7 120000
--- a/scalable/mimetypes/gnome-mime-image-x-cmu-raster.svg
+++ b/scalable/mimetypes/gnome-mime-image-x-cmu-raster.svg
@@ -1 +1 @@
-./image-x-generic.svg \ No newline at end of file
+image-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-x-portable-bitmap.svg b/scalable/mimetypes/gnome-mime-image-x-portable-bitmap.svg
index d5dbabf..694622c 120000
--- a/scalable/mimetypes/gnome-mime-image-x-portable-bitmap.svg
+++ b/scalable/mimetypes/gnome-mime-image-x-portable-bitmap.svg
@@ -1 +1 @@
-./image-bmp.svg \ No newline at end of file
+image-bmp.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-x-psd.svg b/scalable/mimetypes/gnome-mime-image-x-psd.svg
index 5abdb8e..e919fc9 120000
--- a/scalable/mimetypes/gnome-mime-image-x-psd.svg
+++ b/scalable/mimetypes/gnome-mime-image-x-psd.svg
@@ -1 +1 @@
-./image-x-psd.svg \ No newline at end of file
+image-x-psd.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-image-x-xpixmap.svg b/scalable/mimetypes/gnome-mime-image-x-xpixmap.svg
index 1ed223f..a2c40c7 120000
--- a/scalable/mimetypes/gnome-mime-image-x-xpixmap.svg
+++ b/scalable/mimetypes/gnome-mime-image-x-xpixmap.svg
@@ -1 +1 @@
-./image-x-generic.svg \ No newline at end of file
+image-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-css.svg b/scalable/mimetypes/gnome-mime-text-css.svg
index 4f7e93c..5110f35 120000
--- a/scalable/mimetypes/gnome-mime-text-css.svg
+++ b/scalable/mimetypes/gnome-mime-text-css.svg
@@ -1 +1 @@
-./text-css.svg \ No newline at end of file
+text-css.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-c++hdr.svg b/scalable/mimetypes/gnome-mime-text-x-c++hdr.svg
index 3541b74..b0edd85 120000
--- a/scalable/mimetypes/gnome-mime-text-x-c++hdr.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-c++hdr.svg
@@ -1 +1 @@
-./text-x-c++hdr.svg \ No newline at end of file
+text-x-c++hdr.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-changelog.svg b/scalable/mimetypes/gnome-mime-text-x-changelog.svg
index b5a8ebb..15156d2 120000
--- a/scalable/mimetypes/gnome-mime-text-x-changelog.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-changelog.svg
@@ -1 +1 @@
-./text-x-changelog.svg \ No newline at end of file
+text-x-changelog.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-chdr.svg b/scalable/mimetypes/gnome-mime-text-x-chdr.svg
index e1ea3a8..1988606 120000
--- a/scalable/mimetypes/gnome-mime-text-x-chdr.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-chdr.svg
@@ -1 +1 @@
-./text-x-chdr.svg \ No newline at end of file
+text-x-chdr.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-copying.svg b/scalable/mimetypes/gnome-mime-text-x-copying.svg
index 1c5a2bd..36dc65b 120000
--- a/scalable/mimetypes/gnome-mime-text-x-copying.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-copying.svg
@@ -1 +1 @@
-./text-x-copying.svg \ No newline at end of file
+text-x-copying.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-java-source.svg b/scalable/mimetypes/gnome-mime-text-x-java-source.svg
index 19df4d1..dbc66cd 120000
--- a/scalable/mimetypes/gnome-mime-text-x-java-source.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-java-source.svg
@@ -1 +1 @@
-./text-x-java.svg \ No newline at end of file
+text-x-java.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-java.svg b/scalable/mimetypes/gnome-mime-text-x-java.svg
index 19df4d1..dbc66cd 120000
--- a/scalable/mimetypes/gnome-mime-text-x-java.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-java.svg
@@ -1 +1 @@
-./text-x-java.svg \ No newline at end of file
+text-x-java.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-javascript.svg b/scalable/mimetypes/gnome-mime-text-x-javascript.svg
index 22f898a..8b40d5e 120000
--- a/scalable/mimetypes/gnome-mime-text-x-javascript.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-javascript.svg
@@ -1 +1 @@
-./text-x-javascript.svg \ No newline at end of file
+text-x-javascript.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-readme.svg b/scalable/mimetypes/gnome-mime-text-x-readme.svg
index 20b8c97..61d1fd7 120000
--- a/scalable/mimetypes/gnome-mime-text-x-readme.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-readme.svg
@@ -1 +1 @@
-./text-x-readme.svg \ No newline at end of file
+text-x-readme.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-text-x-source.svg b/scalable/mimetypes/gnome-mime-text-x-source.svg
index 5772cf4..6bf5cf5 120000
--- a/scalable/mimetypes/gnome-mime-text-x-source.svg
+++ b/scalable/mimetypes/gnome-mime-text-x-source.svg
@@ -1 +1 @@
-./text-x-source.svg \ No newline at end of file
+text-x-source.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-video-x-ms-asf.svg b/scalable/mimetypes/gnome-mime-video-x-ms-asf.svg
index 3c4640c..db0a1dc 120000
--- a/scalable/mimetypes/gnome-mime-video-x-ms-asf.svg
+++ b/scalable/mimetypes/gnome-mime-video-x-ms-asf.svg
@@ -1 +1 @@
-./video-x-generic.svg \ No newline at end of file
+video-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-video-x-ms-wmv.svg b/scalable/mimetypes/gnome-mime-video-x-ms-wmv.svg
index 3c4640c..db0a1dc 120000
--- a/scalable/mimetypes/gnome-mime-video-x-ms-wmv.svg
+++ b/scalable/mimetypes/gnome-mime-video-x-ms-wmv.svg
@@ -1 +1 @@
-./video-x-generic.svg \ No newline at end of file
+video-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/gnome-mime-x-install.svg b/scalable/mimetypes/gnome-mime-x-install.svg
index 6bb95af..317ff64 120000
--- a/scalable/mimetypes/gnome-mime-x-install.svg
+++ b/scalable/mimetypes/gnome-mime-x-install.svg
@@ -1 +1 @@
-./text-x-install.svg \ No newline at end of file
+text-x-install.svg \ No newline at end of file
diff --git a/scalable/mimetypes/image-jpeg2000.svg b/scalable/mimetypes/image-jpeg2000.svg
index 1fc63f5..c91a5de 120000
--- a/scalable/mimetypes/image-jpeg2000.svg
+++ b/scalable/mimetypes/image-jpeg2000.svg
@@ -1 +1 @@
-./image-jpeg.svg \ No newline at end of file
+image-jpeg.svg \ No newline at end of file
diff --git a/scalable/mimetypes/image-svg+xml.svg b/scalable/mimetypes/image-svg+xml.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/image-svg+xml.svg
+++ b/scalable/mimetypes/image-svg+xml.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/image-x-psdimage-x-psd.svg b/scalable/mimetypes/image-x-psdimage-x-psd.svg
index 5abdb8e..e919fc9 120000
--- a/scalable/mimetypes/image-x-psdimage-x-psd.svg
+++ b/scalable/mimetypes/image-x-psdimage-x-psd.svg
@@ -1 +1 @@
-./image-x-psd.svg \ No newline at end of file
+image-x-psd.svg \ No newline at end of file
diff --git a/scalable/mimetypes/image-x-tga.svg b/scalable/mimetypes/image-x-tga.svg
index 1ed223f..a2c40c7 120000
--- a/scalable/mimetypes/image-x-tga.svg
+++ b/scalable/mimetypes/image-x-tga.svg
@@ -1 +1 @@
-./image-x-generic.svg \ No newline at end of file
+image-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/image-x-win-bitmap.svg b/scalable/mimetypes/image-x-win-bitmap.svg
index d5dbabf..694622c 120000
--- a/scalable/mimetypes/image-x-win-bitmap.svg
+++ b/scalable/mimetypes/image-x-win-bitmap.svg
@@ -1 +1 @@
-./image-bmp.svg \ No newline at end of file
+image-bmp.svg \ No newline at end of file
diff --git a/scalable/mimetypes/jpeg.svg b/scalable/mimetypes/jpeg.svg
index 1fc63f5..c91a5de 120000
--- a/scalable/mimetypes/jpeg.svg
+++ b/scalable/mimetypes/jpeg.svg
@@ -1 +1 @@
-./image-jpeg.svg \ No newline at end of file
+image-jpeg.svg \ No newline at end of file
diff --git a/scalable/mimetypes/jpg.svg b/scalable/mimetypes/jpg.svg
index 1fc63f5..c91a5de 120000
--- a/scalable/mimetypes/jpg.svg
+++ b/scalable/mimetypes/jpg.svg
@@ -1 +1 @@
-./image-jpeg.svg \ No newline at end of file
+image-jpeg.svg \ No newline at end of file
diff --git a/scalable/mimetypes/media-audio.svg b/scalable/mimetypes/media-audio.svg
index 648ffac..fb7fe7c 120000
--- a/scalable/mimetypes/media-audio.svg
+++ b/scalable/mimetypes/media-audio.svg
@@ -1 +1 @@
-./audio-x-generic.svg \ No newline at end of file
+audio-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/media-image.svg b/scalable/mimetypes/media-image.svg
index 1ed223f..a2c40c7 120000
--- a/scalable/mimetypes/media-image.svg
+++ b/scalable/mimetypes/media-image.svg
@@ -1 +1 @@
-./image-x-generic.svg \ No newline at end of file
+image-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/media-video.svg b/scalable/mimetypes/media-video.svg
index 3c4640c..db0a1dc 120000
--- a/scalable/mimetypes/media-video.svg
+++ b/scalable/mimetypes/media-video.svg
@@ -1 +1 @@
-./video-x-generic.svg \ No newline at end of file
+video-x-generic.svg \ No newline at end of file
diff --git a/scalable/mimetypes/message-rfc822.svg b/scalable/mimetypes/message-rfc822.svg
index 4108dc1..eb461e8 120000
--- a/scalable/mimetypes/message-rfc822.svg
+++ b/scalable/mimetypes/message-rfc822.svg
@@ -1 +1 @@
-./message.svg \ No newline at end of file
+message.svg \ No newline at end of file
diff --git a/scalable/mimetypes/none.svg b/scalable/mimetypes/none.svg
index 2ab9dd5..cb10563 120000
--- a/scalable/mimetypes/none.svg
+++ b/scalable/mimetypes/none.svg
@@ -1 +1 @@
-./unknown.svg \ No newline at end of file
+unknown.svg \ No newline at end of file
diff --git a/scalable/mimetypes/office-document.svg b/scalable/mimetypes/office-document.svg
index bdf7ad5..86b2f62 120000
--- a/scalable/mimetypes/office-document.svg
+++ b/scalable/mimetypes/office-document.svg
@@ -1 +1 @@
-./x-office-document.svg \ No newline at end of file
+x-office-document.svg \ No newline at end of file
diff --git a/scalable/mimetypes/office-illustration.svg b/scalable/mimetypes/office-illustration.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/office-illustration.svg
+++ b/scalable/mimetypes/office-illustration.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/office-spreadsheet.svg b/scalable/mimetypes/office-spreadsheet.svg
index 1b6e79f..b17ea28 120000
--- a/scalable/mimetypes/office-spreadsheet.svg
+++ b/scalable/mimetypes/office-spreadsheet.svg
@@ -1 +1 @@
-./x-office-spreadsheet.svg \ No newline at end of file
+x-office-spreadsheet.svg \ No newline at end of file
diff --git a/scalable/mimetypes/openofficeorg3-database.svg b/scalable/mimetypes/openofficeorg3-database.svg
index a3df17c..9d514aa 120000
--- a/scalable/mimetypes/openofficeorg3-database.svg
+++ b/scalable/mimetypes/openofficeorg3-database.svg
@@ -1 +1 @@
-./text-x-sql.svg \ No newline at end of file
+text-x-sql.svg \ No newline at end of file
diff --git a/scalable/mimetypes/openofficeorg3-oasis-database.svg b/scalable/mimetypes/openofficeorg3-oasis-database.svg
index a3df17c..9d514aa 120000
--- a/scalable/mimetypes/openofficeorg3-oasis-database.svg
+++ b/scalable/mimetypes/openofficeorg3-oasis-database.svg
@@ -1 +1 @@
-./text-x-sql.svg \ No newline at end of file
+text-x-sql.svg \ No newline at end of file
diff --git a/scalable/mimetypes/svg.svg b/scalable/mimetypes/svg.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/svg.svg
+++ b/scalable/mimetypes/svg.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/text-mht.svg b/scalable/mimetypes/text-mht.svg
index 65920fb..c4ba315 120000
--- a/scalable/mimetypes/text-mht.svg
+++ b/scalable/mimetypes/text-mht.svg
@@ -1 +1 @@
-./text-html.svg \ No newline at end of file
+text-html.svg \ No newline at end of file
diff --git a/scalable/mimetypes/text-spreadsheet.svg b/scalable/mimetypes/text-spreadsheet.svg
index 1b6e79f..b17ea28 120000
--- a/scalable/mimetypes/text-spreadsheet.svg
+++ b/scalable/mimetypes/text-spreadsheet.svg
@@ -1 +1 @@
-./x-office-spreadsheet.svg \ No newline at end of file
+x-office-spreadsheet.svg \ No newline at end of file
diff --git a/scalable/mimetypes/text-x-css.svg b/scalable/mimetypes/text-x-css.svg
index 4f7e93c..5110f35 120000
--- a/scalable/mimetypes/text-x-css.svg
+++ b/scalable/mimetypes/text-x-css.svg
@@ -1 +1 @@
-./text-css.svg \ No newline at end of file
+text-css.svg \ No newline at end of file
diff --git a/scalable/mimetypes/text-x-java-source.svg b/scalable/mimetypes/text-x-java-source.svg
index 19df4d1..dbc66cd 120000
--- a/scalable/mimetypes/text-x-java-source.svg
+++ b/scalable/mimetypes/text-x-java-source.svg
@@ -1 +1 @@
-./text-x-java.svg \ No newline at end of file
+text-x-java.svg \ No newline at end of file
diff --git a/scalable/mimetypes/vnd.oasis.opendocument.drawing.svg b/scalable/mimetypes/vnd.oasis.opendocument.drawing.svg
index 5ced138..a3382f0 120000
--- a/scalable/mimetypes/vnd.oasis.opendocument.drawing.svg
+++ b/scalable/mimetypes/vnd.oasis.opendocument.drawing.svg
@@ -1 +1 @@
-./x-office-drawing.svg \ No newline at end of file
+x-office-drawing.svg \ No newline at end of file
diff --git a/scalable/mimetypes/x-kernel-module.svg b/scalable/mimetypes/x-kernel-module.svg
new file mode 120000
index 0000000..e7691d5
--- /dev/null
+++ b/scalable/mimetypes/x-kernel-module.svg
@@ -0,0 +1 @@
+x-kernel-object.svg \ No newline at end of file
diff --git a/scalable/mimetypes/x-kernel-object.svg b/scalable/mimetypes/x-kernel-object.svg
new file mode 120000
index 0000000..512ee36
--- /dev/null
+++ b/scalable/mimetypes/x-kernel-object.svg
@@ -0,0 +1 @@
+x-kernel.svg \ No newline at end of file
diff --git a/scalable/mimetypes/x-kernel.svg b/scalable/mimetypes/x-kernel.svg
new file mode 120000
index 0000000..15e1e08
--- /dev/null
+++ b/scalable/mimetypes/x-kernel.svg
@@ -0,0 +1 @@
+vmlinux.svg \ No newline at end of file
diff --git a/scalable/status/not-starred-hovered.svg b/scalable/status/not-starred-hovered.svg
new file mode 120000
index 0000000..a817c39
--- /dev/null
+++ b/scalable/status/not-starred-hovered.svg
@@ -0,0 +1 @@
+starred.svg \ No newline at end of file