diff --git a/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java b/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java index dd13f5fd7..243e4f361 100644 --- a/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java +++ b/app/src/main/java/io/xpipe/app/browser/file/BrowserHistoryTabComp.java @@ -124,7 +124,7 @@ public class BrowserHistoryTabComp extends SimpleComp { var open = new IntroComp( "browserWelcomeEmpty", - new LabelGraphic.CompGraphic(PrettyImageHelper.ofSpecificFixedSize("graphics/Hips.svg", 100, 122))); + new LabelGraphic.CompGraphic(PrettyImageHelper.ofSpecificFixedSize("welcome/hips.svg", 100, 122))); open.setButtonGraphic(new LabelGraphic.IconGraphic("mdi2f-folder-open-outline")); open.setButtonAction(() -> { BrowserFullSessionModel.DEFAULT.openFileSystemAsync( diff --git a/app/src/main/java/io/xpipe/app/browser/icon/BrowserIconManager.java b/app/src/main/java/io/xpipe/app/browser/icon/BrowserIconManager.java index bccced14a..9ab2ef4e0 100644 --- a/app/src/main/java/io/xpipe/app/browser/icon/BrowserIconManager.java +++ b/app/src/main/java/io/xpipe/app/browser/icon/BrowserIconManager.java @@ -19,7 +19,13 @@ public class BrowserIconManager { public static void loadIfNecessary(String s) { var res = AppMainWindow.get().displayScale().get() == 1.0 ? "24" : "40"; - var name = "browser/" + FilenameUtils.getBaseName(s) + "-" + res + ".png"; - AppImages.loadImage(AppResources.MAIN_MODULE, name, name); + var key = "browser/" + FilenameUtils.getBaseName(s) + "-" + res + ".png"; + if (AppImages.hasImage(key)) { + return; + } + + AppResources.with(AppResources.MAIN_MODULE, key, file -> { + AppImages.loadImage(file, key); + }); } } diff --git a/app/src/main/java/io/xpipe/app/comp/base/AppMainWindowContentComp.java b/app/src/main/java/io/xpipe/app/comp/base/AppMainWindowContentComp.java index 3e0323dbc..20f722401 100644 --- a/app/src/main/java/io/xpipe/app/comp/base/AppMainWindowContentComp.java +++ b/app/src/main/java/io/xpipe/app/comp/base/AppMainWindowContentComp.java @@ -82,8 +82,7 @@ public class AppMainWindowContentComp extends SimpleComp { loadingAnimation.start(); // This allows for assigning logos even if AppImages has not been initialized yet - var dir = "img/logo/"; - AppResources.with(AppResources.MAIN_MODULE, dir, path -> { + AppResources.with(AppResources.MAIN_MODULE, "", path -> { var image = AppPrefs.get() != null && AppPrefs.get().theme().getValue().isDark() ? path.resolve("loading-160-dark.png") diff --git a/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java b/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java index 540c26467..25db249c1 100644 --- a/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java +++ b/app/src/main/java/io/xpipe/app/core/AppDesktopIntegration.java @@ -79,7 +79,7 @@ public class AppDesktopIntegration { && AppLogs.get().isWriteToSysout() && Taskbar.isTaskbarSupported()) { try { - var iconUrl = Main.class.getResourceAsStream("resources/img/logo/padded/logo_128x128.png"); + var iconUrl = Main.class.getResourceAsStream("resources/logo/padded/logo_128x128.png"); if (iconUrl != null) { var awtIcon = ImageIO.read(iconUrl); Taskbar.getTaskbar().setIconImage(awtIcon); diff --git a/app/src/main/java/io/xpipe/app/core/AppImages.java b/app/src/main/java/io/xpipe/app/core/AppImages.java index dde469643..78716c1bd 100644 --- a/app/src/main/java/io/xpipe/app/core/AppImages.java +++ b/app/src/main/java/io/xpipe/app/core/AppImages.java @@ -1,5 +1,6 @@ package io.xpipe.app.core; +import io.xpipe.app.core.window.AppMainWindow; import io.xpipe.app.issue.ErrorEventFactory; import io.xpipe.app.issue.TrackEvent; @@ -31,53 +32,87 @@ public class AppImages { } public static void init() { - if (images.size() > 0) { - return; - } + loadBundledProviderIcons(); + loadOsIcons(); + loadWelcomeImages(); + loadMiscImages(); + loadLogos(); + } - TrackEvent.info("Loading images ..."); - for (var module : AppExtensionManager.getInstance().getContentModules()) { - loadDirectory(module.getName(), "img", true); + private static void loadBundledProviderIcons() { + var exts = AppExtensionManager.getInstance().getContentModules(); + for (Module ext : exts) { + AppResources.with(ext.getName(), "img/", basePath -> { + var skipLarge = AppMainWindow.get().displayScale().get() == 1.0; + Files.walkFileTree(basePath, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + var name = file.getFileName().toString(); + if (name.contains("-80") && skipLarge) { + return FileVisitResult.CONTINUE; + } + + AppImages.loadImage(file, name); + return FileVisitResult.CONTINUE; + } + }); + }); } } - public static void loadDirectory(String module, String dir, boolean loadImages) { - var start = Instant.now(); - AppResources.with(module, dir, basePath -> { - if (!Files.exists(basePath)) { - return; - } - - var simpleName = FilenameUtils.getExtension(module); - String defaultPrefix = simpleName + ":"; + private static void loadOsIcons() { + AppResources.with(AppResources.MAIN_MODULE, "os", basePath -> { + var skipLarge = AppMainWindow.get().displayScale().get() == 1.0; Files.walkFileTree(basePath, new SimpleFileVisitor<>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { - var relativeFileName = FilenameUtils.separatorsToUnix( - basePath.relativize(file).toString()); - var key = defaultPrefix + relativeFileName; - if (images.containsKey(key)) { + var name = file.getFileName().toString(); + if (name.contains("-40") && skipLarge) { return FileVisitResult.CONTINUE; } - if (loadImages) { - images.put(key, loadImage(file)); - } + AppImages.loadImage(file, "os/" + name); return FileVisitResult.CONTINUE; } }); }); - var elapsed = Duration.between(start, Instant.now()); - TrackEvent.trace("Loaded images in " + module + ":" + dir + " in " + elapsed.toMillis() + " ms"); } - public static void loadImage(String module, String key, String file) { - AppResources.with(module, file, p -> { - if (images.containsKey(key)) { - return; - } + private static void loadWelcomeImages() { + AppResources.with(AppResources.MAIN_MODULE, "welcome", basePath -> { + var skipLarge = AppMainWindow.get().displayScale().get() == 1.0; + Files.walkFileTree(basePath, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + var name = file.getFileName().toString(); + if (name.contains("-244") && skipLarge) { + return FileVisitResult.CONTINUE; + } - images.put(key, loadImage(p)); + AppImages.loadImage(file, "welcome/" + name); + return FileVisitResult.CONTINUE; + } + }); + }); + } + + private static void loadLogos() { + AppResources.with(AppResources.MAIN_MODULE, "logo", basePath -> { + Files.walkFileTree(basePath, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { + var relativeFileName = FilenameUtils.separatorsToUnix(basePath.getParent().relativize(file).toString()); + AppImages.loadImage(file, relativeFileName); + return FileVisitResult.CONTINUE; + } + }); + }); + } + + private static void loadMiscImages() { + AppResources.with(AppResources.MAIN_MODULE, "", basePath -> { + loadImage(basePath.resolve("action.png"), "action.png"); + loadImage(basePath.resolve("error.png"), "error.png"); }); } @@ -90,7 +125,7 @@ public class AppImages { return true; } - var key = file.contains(":") ? file : "app:" + file; + var key = file.contains(":") ? file.split(":", 2)[1] : file; if (images.containsKey(key)) { return true; } @@ -107,13 +142,12 @@ public class AppImages { return images.get(file); } - var key = file.contains(":") ? file : "app:" + file; - + var key = file.contains(":") ? file.split(":", 2)[1] : file; if (images.containsKey(key)) { return images.get(key); } - TrackEvent.warn("Normal image " + key + " not found"); + TrackEvent.warn("Image " + key + " not found"); return DEFAULT_IMAGE; } diff --git a/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java b/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java index ed6fd9f3a..6ac0121f2 100644 --- a/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java +++ b/app/src/main/java/io/xpipe/app/core/AppTrayIcon.java @@ -21,9 +21,9 @@ public class AppTrayIcon { var image = switch (OsType.ofLocal()) { - case OsType.Windows ignored -> "img/logo/full/logo_16x16.png"; - case OsType.Linux ignored -> "img/logo/full/logo_24x24.png"; - case OsType.MacOs ignored -> "img/logo/padded/logo_24x24.png"; + case OsType.Windows ignored -> "logo/full/logo_16x16.png"; + case OsType.Linux ignored -> "logo/full/logo_24x24.png"; + case OsType.MacOs ignored -> "logo/padded/logo_24x24.png"; }; var url = AppResources.getResourceURL(AppResources.MAIN_MODULE, image).orElseThrow(); diff --git a/app/src/main/java/io/xpipe/app/core/window/AppWindowStyle.java b/app/src/main/java/io/xpipe/app/core/window/AppWindowStyle.java index c824dcea6..3ee7d178d 100644 --- a/app/src/main/java/io/xpipe/app/core/window/AppWindowStyle.java +++ b/app/src/main/java/io/xpipe/app/core/window/AppWindowStyle.java @@ -74,7 +74,7 @@ public class AppWindowStyle { stage.getIcons().clear(); // This allows for assigning logos even if AppImages has not been initialized yet - var dir = OsType.ofLocal() == OsType.MACOS ? "img/logo/padded" : "img/logo/full"; + var dir = OsType.ofLocal() == OsType.MACOS ? "logo/padded" : "logo/full"; AppResources.with(AppResources.MAIN_MODULE, dir, path -> { var size = switch (OsType.ofLocal()) { diff --git a/app/src/main/java/io/xpipe/app/hub/comp/OsLogoComp.java b/app/src/main/java/io/xpipe/app/hub/comp/OsLogoComp.java index e14358b6a..28ac25c66 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/OsLogoComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/OsLogoComp.java @@ -63,7 +63,7 @@ public class OsLogoComp extends SimpleComp { } if (ICONS.isEmpty()) { - AppResources.with(AppResources.MAIN_MODULE, "img/os", file -> { + AppResources.with(AppResources.MAIN_MODULE, "os", file -> { try (var list = Files.list(file)) { list.filter(path -> path.toString().endsWith(".png") && !path.toString().endsWith(LINUX_DEFAULT_24) diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationMenu.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationMenu.java index b24cb8db1..f32b98433 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationMenu.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreCreationMenu.java @@ -92,7 +92,7 @@ public class StoreCreationMenu { var actionMenu = categoryMenu("addMacro", "mdmz-miscellaneous_services", DataStoreCreationCategory.MACRO, null); var item = new MenuItem(); - item.setGraphic(PrettyImageHelper.ofFixedSize("app:shortcut/actionShortcut_icon.svg", 16, 16) + item.setGraphic(PrettyImageHelper.ofFixedSize("action.png", 16, 16) .createRegion()); item.textProperty().bind(AppI18n.observable("actionShortcut")); item.setOnAction(event -> { diff --git a/app/src/main/java/io/xpipe/app/hub/comp/StoreIntroComp.java b/app/src/main/java/io/xpipe/app/hub/comp/StoreIntroComp.java index 357907dcf..0f9541697 100644 --- a/app/src/main/java/io/xpipe/app/hub/comp/StoreIntroComp.java +++ b/app/src/main/java/io/xpipe/app/hub/comp/StoreIntroComp.java @@ -18,7 +18,7 @@ public class StoreIntroComp extends SimpleComp { @Override public Region createSimple() { var hub = new IntroComp("storeIntro", new LabelGraphic.NodeGraphic(() -> PrettyImageHelper.ofSpecificFixedSize( - "graphics/Wave.svg", 80, 144) + "welcome/wave.svg", 80, 144) .createRegion())); hub.setButtonAction(() -> { ScanDialog.showSingleAsync(DataStorage.get().local()); diff --git a/app/src/main/java/io/xpipe/app/icon/SystemIconManager.java b/app/src/main/java/io/xpipe/app/icon/SystemIconManager.java index e78df9ad7..80e23169a 100644 --- a/app/src/main/java/io/xpipe/app/icon/SystemIconManager.java +++ b/app/src/main/java/io/xpipe/app/icon/SystemIconManager.java @@ -1,19 +1,18 @@ package io.xpipe.app.icon; -import io.xpipe.app.core.AppCache; -import io.xpipe.app.core.AppImages; -import io.xpipe.app.core.AppProperties; -import io.xpipe.app.core.AppResources; +import io.xpipe.app.core.*; import io.xpipe.app.core.window.AppMainWindow; import io.xpipe.app.ext.ValidationException; import io.xpipe.app.issue.ErrorEventFactory; import io.xpipe.app.prefs.AppPrefs; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.storage.DataStoreEntry; -import org.apache.commons.io.FilenameUtils; +import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; import java.util.*; public class SystemIconManager { diff --git a/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java b/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java index 1122f777b..6f612ce69 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStoreEntry.java @@ -346,7 +346,7 @@ public class DataStoreEntry extends StorageElement { public String getEffectiveIconFile() { if (getValidity() == Validity.LOAD_FAILED) { - return "disabled_icon.png"; + return "error.png"; } if (icon == null) { @@ -357,7 +357,7 @@ public class DataStoreEntry extends StorageElement { if (found.isPresent()) { return SystemIconManager.getAndLoadIconFile(found.get()); } else { - return "disabled_icon.png"; + return "error.png"; } } diff --git a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-16.png b/app/src/main/resources/io/xpipe/app/resources/action.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-16.png rename to app/src/main/resources/io/xpipe/app/resources/action.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/disabled_icon.png b/app/src/main/resources/io/xpipe/app/resources/error.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/disabled_icon.png rename to app/src/main/resources/io/xpipe/app/resources/error.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-24.png b/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-24.png deleted file mode 100644 index d10edf1be..000000000 Binary files a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-24.png and /dev/null differ diff --git a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-40.png b/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-40.png deleted file mode 100644 index 1cbcd2ac5..000000000 Binary files a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-40.png and /dev/null differ diff --git a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-80.png b/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-80.png deleted file mode 100644 index df1565ec0..000000000 Binary files a/app/src/main/resources/io/xpipe/app/resources/img/shortcut/actionShortcut_icon-80.png and /dev/null differ diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/loading-160-dark.png b/app/src/main/resources/io/xpipe/app/resources/loading-160-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/loading-160-dark.png rename to app/src/main/resources/io/xpipe/app/resources/loading-160-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/loading-160.png b/app/src/main/resources/io/xpipe/app/resources/loading-160.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/loading-160.png rename to app/src/main/resources/io/xpipe/app/resources/loading-160.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_128x128.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_128x128.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_128x128.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_128x128.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_16x16.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_16x16.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_16x16.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_16x16.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_24x24.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_24x24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_24x24.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_24x24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_256x256.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_256x256.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_256x256.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_256x256.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_32x32.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_32x32.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_32x32.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_32x32.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_48x48.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_48x48.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_48x48.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_48x48.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_64x64.png b/app/src/main/resources/io/xpipe/app/resources/logo/full/logo_64x64.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/full/logo_64x64.png rename to app/src/main/resources/io/xpipe/app/resources/logo/full/logo_64x64.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/logo.png b/app/src/main/resources/io/xpipe/app/resources/logo/logo.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/logo.png rename to app/src/main/resources/io/xpipe/app/resources/logo/logo.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_128x128.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_128x128.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_128x128.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_128x128.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_16x16.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_16x16.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_16x16.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_16x16.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_24x24.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_24x24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_24x24.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_24x24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_256x256.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_256x256.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_256x256.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_256x256.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_32x32.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_32x32.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_32x32.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_32x32.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_48x48.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_48x48.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_48x48.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_48x48.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_64x64.png b/app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_64x64.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/logo/padded/logo_64x64.png rename to app/src/main/resources/io/xpipe/app/resources/logo/padded/logo_64x64.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/aix-24.png b/app/src/main/resources/io/xpipe/app/resources/os/aix-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/aix-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/aix-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/aix-40.png b/app/src/main/resources/io/xpipe/app/resources/os/aix-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/aix-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/aix-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/alma-24.png b/app/src/main/resources/io/xpipe/app/resources/os/alma-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/alma-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/alma-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/alma-40.png b/app/src/main/resources/io/xpipe/app/resources/os/alma-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/alma-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/alma-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/alpine-24.png b/app/src/main/resources/io/xpipe/app/resources/os/alpine-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/alpine-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/alpine-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/alpine-40.png b/app/src/main/resources/io/xpipe/app/resources/os/alpine-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/alpine-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/alpine-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/amazon-24.png b/app/src/main/resources/io/xpipe/app/resources/os/amazon-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/amazon-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/amazon-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/amazon-40.png b/app/src/main/resources/io/xpipe/app/resources/os/amazon-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/amazon-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/amazon-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/android-24.png b/app/src/main/resources/io/xpipe/app/resources/os/android-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/android-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/android-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/android-40.png b/app/src/main/resources/io/xpipe/app/resources/os/android-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/android-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/android-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/arch-24.png b/app/src/main/resources/io/xpipe/app/resources/os/arch-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/arch-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/arch-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/arch-40.png b/app/src/main/resources/io/xpipe/app/resources/os/arch-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/arch-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/arch-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/assistant-24-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/assistant-24-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/assistant-24-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/assistant-24-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/assistant-24.png b/app/src/main/resources/io/xpipe/app/resources/os/assistant-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/assistant-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/assistant-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/assistant-40-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/assistant-40-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/assistant-40-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/assistant-40-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/assistant-40.png b/app/src/main/resources/io/xpipe/app/resources/os/assistant-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/assistant-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/assistant-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/cachy-24.png b/app/src/main/resources/io/xpipe/app/resources/os/cachy-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/cachy-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/cachy-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/cachy-40.png b/app/src/main/resources/io/xpipe/app/resources/os/cachy-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/cachy-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/cachy-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/centos-24.png b/app/src/main/resources/io/xpipe/app/resources/os/centos-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/centos-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/centos-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/centos-40.png b/app/src/main/resources/io/xpipe/app/resources/os/centos-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/centos-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/centos-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/debian-24.png b/app/src/main/resources/io/xpipe/app/resources/os/debian-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/debian-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/debian-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/debian-40.png b/app/src/main/resources/io/xpipe/app/resources/os/debian-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/debian-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/debian-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/elementary-24-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/elementary-24-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/elementary-24-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/elementary-24-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/elementary-24.png b/app/src/main/resources/io/xpipe/app/resources/os/elementary-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/elementary-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/elementary-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/elementary-40-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/elementary-40-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/elementary-40-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/elementary-40-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/elementary-40.png b/app/src/main/resources/io/xpipe/app/resources/os/elementary-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/elementary-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/elementary-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-24-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/endeavour-24-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-24-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/endeavour-24-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-24.png b/app/src/main/resources/io/xpipe/app/resources/os/endeavour-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/endeavour-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-40-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/endeavour-40-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-40-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/endeavour-40-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-40.png b/app/src/main/resources/io/xpipe/app/resources/os/endeavour-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/endeavour-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/endeavour-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/fedora-24.png b/app/src/main/resources/io/xpipe/app/resources/os/fedora-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/fedora-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/fedora-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/fedora-40.png b/app/src/main/resources/io/xpipe/app/resources/os/fedora-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/fedora-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/fedora-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/freebsd-24.png b/app/src/main/resources/io/xpipe/app/resources/os/freebsd-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/freebsd-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/freebsd-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/freebsd-40.png b/app/src/main/resources/io/xpipe/app/resources/os/freebsd-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/freebsd-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/freebsd-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/garuda-24.png b/app/src/main/resources/io/xpipe/app/resources/os/garuda-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/garuda-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/garuda-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/garuda-40.png b/app/src/main/resources/io/xpipe/app/resources/os/garuda-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/garuda-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/garuda-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/gentoo-24.png b/app/src/main/resources/io/xpipe/app/resources/os/gentoo-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/gentoo-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/gentoo-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/gentoo-40.png b/app/src/main/resources/io/xpipe/app/resources/os/gentoo-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/gentoo-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/gentoo-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/hp-ux-24.png b/app/src/main/resources/io/xpipe/app/resources/os/hp-ux-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/hp-ux-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/hp-ux-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/hp-ux-40.png b/app/src/main/resources/io/xpipe/app/resources/os/hp-ux-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/hp-ux-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/hp-ux-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/illumos-24.png b/app/src/main/resources/io/xpipe/app/resources/os/illumos-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/illumos-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/illumos-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/illumos-40.png b/app/src/main/resources/io/xpipe/app/resources/os/illumos-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/illumos-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/illumos-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/kali-24.png b/app/src/main/resources/io/xpipe/app/resources/os/kali-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/kali-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/kali-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/kali-40.png b/app/src/main/resources/io/xpipe/app/resources/os/kali-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/kali-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/kali-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/kubuntu-24.png b/app/src/main/resources/io/xpipe/app/resources/os/kubuntu-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/kubuntu-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/kubuntu-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/kubuntu-40.png b/app/src/main/resources/io/xpipe/app/resources/os/kubuntu-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/kubuntu-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/kubuntu-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/linux-24.png b/app/src/main/resources/io/xpipe/app/resources/os/linux-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/linux-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/linux-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/linux-40.png b/app/src/main/resources/io/xpipe/app/resources/os/linux-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/linux-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/linux-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/macos-24-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/macos-24-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/macos-24-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/macos-24-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/macos-24.png b/app/src/main/resources/io/xpipe/app/resources/os/macos-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/macos-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/macos-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/macos-40-dark.png b/app/src/main/resources/io/xpipe/app/resources/os/macos-40-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/macos-40-dark.png rename to app/src/main/resources/io/xpipe/app/resources/os/macos-40-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/macos-40.png b/app/src/main/resources/io/xpipe/app/resources/os/macos-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/macos-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/macos-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/manjaro-24.png b/app/src/main/resources/io/xpipe/app/resources/os/manjaro-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/manjaro-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/manjaro-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/manjaro-40.png b/app/src/main/resources/io/xpipe/app/resources/os/manjaro-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/manjaro-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/manjaro-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/mint-24.png b/app/src/main/resources/io/xpipe/app/resources/os/mint-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/mint-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/mint-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/mint-40.png b/app/src/main/resources/io/xpipe/app/resources/os/mint-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/mint-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/mint-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/netbsd-24.png b/app/src/main/resources/io/xpipe/app/resources/os/netbsd-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/netbsd-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/netbsd-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/netbsd-40.png b/app/src/main/resources/io/xpipe/app/resources/os/netbsd-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/netbsd-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/netbsd-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/nixos-24.png b/app/src/main/resources/io/xpipe/app/resources/os/nixos-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/nixos-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/nixos-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/nixos-40.png b/app/src/main/resources/io/xpipe/app/resources/os/nixos-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/nixos-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/nixos-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/openbsd-24.png b/app/src/main/resources/io/xpipe/app/resources/os/openbsd-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/openbsd-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/openbsd-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/openbsd-40.png b/app/src/main/resources/io/xpipe/app/resources/os/openbsd-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/openbsd-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/openbsd-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/pop-24.png b/app/src/main/resources/io/xpipe/app/resources/os/pop-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/pop-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/pop-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/pop-40.png b/app/src/main/resources/io/xpipe/app/resources/os/pop-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/pop-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/pop-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/redhat-24.png b/app/src/main/resources/io/xpipe/app/resources/os/redhat-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/redhat-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/redhat-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/redhat-40.png b/app/src/main/resources/io/xpipe/app/resources/os/redhat-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/redhat-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/redhat-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/rocky-24.png b/app/src/main/resources/io/xpipe/app/resources/os/rocky-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/rocky-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/rocky-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/rocky-40.png b/app/src/main/resources/io/xpipe/app/resources/os/rocky-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/rocky-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/rocky-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/solaris-24.png b/app/src/main/resources/io/xpipe/app/resources/os/solaris-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/solaris-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/solaris-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/solaris-40.png b/app/src/main/resources/io/xpipe/app/resources/os/solaris-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/solaris-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/solaris-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/suse-24.png b/app/src/main/resources/io/xpipe/app/resources/os/suse-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/suse-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/suse-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/suse-40.png b/app/src/main/resources/io/xpipe/app/resources/os/suse-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/suse-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/suse-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/ubuntu-24.png b/app/src/main/resources/io/xpipe/app/resources/os/ubuntu-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/ubuntu-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/ubuntu-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/ubuntu-40.png b/app/src/main/resources/io/xpipe/app/resources/os/ubuntu-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/ubuntu-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/ubuntu-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/unix-24.png b/app/src/main/resources/io/xpipe/app/resources/os/unix-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/unix-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/unix-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/unix-40.png b/app/src/main/resources/io/xpipe/app/resources/os/unix-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/unix-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/unix-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/windows-24.png b/app/src/main/resources/io/xpipe/app/resources/os/windows-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/windows-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/windows-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/windows-40.png b/app/src/main/resources/io/xpipe/app/resources/os/windows-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/windows-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/windows-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/zorin-24.png b/app/src/main/resources/io/xpipe/app/resources/os/zorin-24.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/zorin-24.png rename to app/src/main/resources/io/xpipe/app/resources/os/zorin-24.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/os/zorin-40.png b/app/src/main/resources/io/xpipe/app/resources/os/zorin-40.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/os/zorin-40.png rename to app/src/main/resources/io/xpipe/app/resources/os/zorin-40.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-122-dark.png b/app/src/main/resources/io/xpipe/app/resources/welcome/hips-122-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-122-dark.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/hips-122-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-122.png b/app/src/main/resources/io/xpipe/app/resources/welcome/hips-122.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-122.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/hips-122.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-244-dark.png b/app/src/main/resources/io/xpipe/app/resources/welcome/hips-244-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-244-dark.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/hips-244-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-244.png b/app/src/main/resources/io/xpipe/app/resources/welcome/hips-244.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Hips-244.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/hips-244.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-144-dark.png b/app/src/main/resources/io/xpipe/app/resources/welcome/wave-144-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-144-dark.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/wave-144-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-144.png b/app/src/main/resources/io/xpipe/app/resources/welcome/wave-144.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-144.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/wave-144.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-288-dark.png b/app/src/main/resources/io/xpipe/app/resources/welcome/wave-288-dark.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-288-dark.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/wave-288-dark.png diff --git a/app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-288.png b/app/src/main/resources/io/xpipe/app/resources/welcome/wave-288.png similarity index 100% rename from app/src/main/resources/io/xpipe/app/resources/img/graphics/Wave-288.png rename to app/src/main/resources/io/xpipe/app/resources/welcome/wave-288.png