diff --git a/bottles/frontend/bottles.py b/bottles/frontend/bottles.py
index 3063c267438..6c5cbbcd6d3 100644
--- a/bottles/frontend/bottles.py
+++ b/bottles/frontend/bottles.py
@@ -26,7 +26,8 @@
pkgdatadir = "@pkgdatadir@"
localedir = "@localedir@"
# noinspection DuplicatedCode
-gresource_path = f"{pkgdatadir}/bottles.gresource"
+data_gresource_path = f"{pkgdatadir}/data.gresource"
+bottles_gresource_path = f"{pkgdatadir}/bottles.gresource"
sys.path.insert(1, pkgdatadir)
# Remove GTK_THEME variable to prevent breakages
@@ -39,9 +40,11 @@
if __name__ == "__main__":
from gi.repository import Gio
- resource = Gio.Resource.load(gresource_path)
+ data_resource = Gio.Resource.load(data_gresource_path)
+ bottles_resource = Gio.Resource.load(bottles_gresource_path)
# noinspection PyProtectedMember
- resource._register()
+ data_resource._register()
+ bottles_resource._register()
from bottles.frontend import main
diff --git a/bottles/frontend/main.py b/bottles/frontend/main.py
index ac4c485174f..f4e66de6f1a 100644
--- a/bottles/frontend/main.py
+++ b/bottles/frontend/main.py
@@ -82,6 +82,7 @@ class Bottles(Adw.Application):
def __init__(self):
super().__init__(
application_id=APP_ID,
+ resource_base_path="/com/usebottles/bottles",
flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE,
register_session=True,
)
diff --git a/bottles/frontend/ui/bottles.gresource.xml b/bottles/frontend/ui/bottles.gresource.xml
index b3dd68b490a..4bfe69b3563 100644
--- a/bottles/frontend/ui/bottles.gresource.xml
+++ b/bottles/frontend/ui/bottles.gresource.xml
@@ -1,89 +1,58 @@
-
- style.css
- style-dark.css
- window.ui
- new.ui
- list.ui
- loading.ui
- list-entry.ui
- task-entry.ui
- dependency-entry.ui
- program-entry.ui
- importer-entry.ui
- state-entry.ui
- installer-entry.ui
- dll-override-entry.ui
- env-var-entry.ui
- component-entry.ui
- drive-entry.ui
- library-entry.ui
- local-resource-entry.ui
- exclusion-pattern-entry.ui
- details.ui
- details-bottle.ui
- details-dependencies.ui
- details-installers.ui
- details-preferences.ui
- details-versioning.ui
- details-taskmanager.ui
- preferences.ui
- importer.ui
- library.ui
- dialog-launch-options.ui
- dialog-dll-overrides.ui
- dialog-env-vars.ui
- dialog-crash-report.ui
- dialog-duplicate.ui
- dialog-rename.ui
- dialog-gamescope.ui
- dialog-vkbasalt.ui
- dialog-fsr.ui
- dialog-mangohud.ui
- dialog-display.ui
- dialog-drives.ui
- dialog-journal.ui
- dialog-sandbox.ui
- dialog-installer.ui
- dialog-bottle-picker.ui
- dialog-proton-alert.ui
- dialog-deps-check.ui
- dialog-exclusion-patterns.ui
- dialog-upgrade-versioning.ui
- dialog-vmtouch.ui
- onboard.ui
- about.ui
-
-
-
- ../../../data/icons/symbolic/scalable/apps/bottles-steam-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/external-link-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/applications-system-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/application-x-addon-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/computer-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/document-save-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/go-next-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/go-previous-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/media-playback-start-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/media-playback-stop-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/preferences-desktop-apps-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/preferences-system-time-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/selection-mode-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/system-run-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/system-shutdown-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/system-software-install-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/view-more-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/open-menu-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/system-search-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/list-add-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/paper-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/info-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/library-symbolic.svg
- ../../../data/icons/symbolic/scalable/actions/warning-symbolic.svg
-
-
- ../../../data/images/bottles-welcome.svg
- ../../../data/images/bottles-welcome-night.svg
-
+
+ style.css
+ style-dark.css
+ window.ui
+ new.ui
+ list.ui
+ loading.ui
+ list-entry.ui
+ task-entry.ui
+ dependency-entry.ui
+ program-entry.ui
+ importer-entry.ui
+ state-entry.ui
+ installer-entry.ui
+ dll-override-entry.ui
+ env-var-entry.ui
+ component-entry.ui
+ drive-entry.ui
+ library-entry.ui
+ local-resource-entry.ui
+ exclusion-pattern-entry.ui
+ details.ui
+ details-bottle.ui
+ details-dependencies.ui
+ details-installers.ui
+ details-preferences.ui
+ details-versioning.ui
+ details-taskmanager.ui
+ preferences.ui
+ importer.ui
+ library.ui
+ dialog-launch-options.ui
+ dialog-dll-overrides.ui
+ dialog-env-vars.ui
+ dialog-crash-report.ui
+ dialog-duplicate.ui
+ dialog-rename.ui
+ dialog-gamescope.ui
+ dialog-vkbasalt.ui
+ dialog-fsr.ui
+ dialog-mangohud.ui
+ dialog-display.ui
+ dialog-drives.ui
+ dialog-journal.ui
+ dialog-sandbox.ui
+ dialog-installer.ui
+ dialog-bottle-picker.ui
+ dialog-proton-alert.ui
+ dialog-deps-check.ui
+ dialog-exclusion-patterns.ui
+ dialog-upgrade-versioning.ui
+ dialog-vmtouch.ui
+ onboard.ui
+ about.ui
+
diff --git a/data/data.gresource.xml b/data/data.gresource.xml
new file mode 100644
index 00000000000..ebf102fb604
--- /dev/null
+++ b/data/data.gresource.xml
@@ -0,0 +1,33 @@
+
+
+
+ icons/hicolor/symbolic/apps/bottles-steam-symbolic.svg
+ icons/hicolor/symbolic/actions/external-link-symbolic.svg
+ icons/hicolor/symbolic/actions/applications-system-symbolic.svg
+ icons/hicolor/symbolic/actions/application-x-addon-symbolic.svg
+ icons/hicolor/symbolic/actions/computer-symbolic.svg
+ icons/hicolor/symbolic/actions/document-save-symbolic.svg
+ icons/hicolor/symbolic/actions/go-next-symbolic.svg
+ icons/hicolor/symbolic/actions/go-previous-symbolic.svg
+ icons/hicolor/symbolic/actions/media-playback-start-symbolic.svg
+ icons/hicolor/symbolic/actions/media-playback-stop-symbolic.svg
+ icons/hicolor/symbolic/actions/preferences-desktop-apps-symbolic.svg
+ icons/hicolor/symbolic/actions/preferences-system-time-symbolic.svg
+ icons/hicolor/symbolic/actions/selection-mode-symbolic.svg
+ icons/hicolor/symbolic/actions/system-run-symbolic.svg
+ icons/hicolor/symbolic/actions/system-shutdown-symbolic.svg
+ icons/hicolor/symbolic/actions/system-software-install-symbolic.svg
+ icons/hicolor/symbolic/actions/view-more-symbolic.svg
+ icons/hicolor/symbolic/actions/open-menu-symbolic.svg
+ icons/hicolor/symbolic/actions/system-search-symbolic.svg
+ icons/hicolor/symbolic/actions/list-add-symbolic.svg
+ icons/hicolor/symbolic/actions/paper-symbolic.svg
+ icons/hicolor/symbolic/actions/info-symbolic.svg
+ icons/hicolor/symbolic/actions/library-symbolic.svg
+ icons/hicolor/symbolic/actions/warning-symbolic.svg
+
+
+ images/bottles-welcome.svg
+ images/bottles-welcome-night.svg
+
+
diff --git a/data/icons/hicolor/48/apps/com.usebottles.bottles.Devel.svg b/data/icons/hicolor/48/apps/com.usebottles.bottles.Devel.svg
deleted file mode 100644
index 08f715d2ee9..00000000000
--- a/data/icons/hicolor/48/apps/com.usebottles.bottles.Devel.svg
+++ /dev/null
@@ -1,127 +0,0 @@
-
-
diff --git a/data/icons/hicolor/48/apps/com.usebottles.bottles.svg b/data/icons/hicolor/48/apps/com.usebottles.bottles.svg
deleted file mode 100644
index 55e6ad5c40b..00000000000
--- a/data/icons/hicolor/48/apps/com.usebottles.bottles.svg
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
diff --git a/data/icons/hicolor/48/apps/com.usebottles.bottles_old.svg b/data/icons/hicolor/48/apps/com.usebottles.bottles_old.svg
deleted file mode 100644
index c6620b530a4..00000000000
--- a/data/icons/hicolor/48/apps/com.usebottles.bottles_old.svg
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
diff --git a/data/icons/symbolic/scalable/actions/application-x-addon-symbolic.svg b/data/icons/hicolor/symbolic/actions/application-x-addon-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/application-x-addon-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/application-x-addon-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/applications-system-symbolic.svg b/data/icons/hicolor/symbolic/actions/applications-system-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/applications-system-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/applications-system-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/computer-symbolic.svg b/data/icons/hicolor/symbolic/actions/computer-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/computer-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/computer-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/document-save-symbolic.svg b/data/icons/hicolor/symbolic/actions/document-save-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/document-save-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/document-save-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/external-link-symbolic.svg b/data/icons/hicolor/symbolic/actions/external-link-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/external-link-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/external-link-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/go-next-symbolic.svg b/data/icons/hicolor/symbolic/actions/go-next-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/go-next-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/go-next-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/go-previous-symbolic.svg b/data/icons/hicolor/symbolic/actions/go-previous-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/go-previous-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/go-previous-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/info-symbolic.svg b/data/icons/hicolor/symbolic/actions/info-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/info-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/info-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/library-symbolic.svg b/data/icons/hicolor/symbolic/actions/library-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/library-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/library-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/list-add-symbolic.svg b/data/icons/hicolor/symbolic/actions/list-add-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/list-add-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/list-add-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/media-playback-start-symbolic.svg b/data/icons/hicolor/symbolic/actions/media-playback-start-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/media-playback-start-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/media-playback-start-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/media-playback-stop-symbolic.svg b/data/icons/hicolor/symbolic/actions/media-playback-stop-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/media-playback-stop-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/media-playback-stop-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/open-menu-symbolic.svg b/data/icons/hicolor/symbolic/actions/open-menu-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/open-menu-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/open-menu-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/paper-symbolic.svg b/data/icons/hicolor/symbolic/actions/paper-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/paper-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/paper-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/preferences-desktop-apps-symbolic.svg b/data/icons/hicolor/symbolic/actions/preferences-desktop-apps-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/preferences-desktop-apps-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/preferences-desktop-apps-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/preferences-system-time-symbolic.svg b/data/icons/hicolor/symbolic/actions/preferences-system-time-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/preferences-system-time-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/preferences-system-time-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/selection-mode-symbolic.svg b/data/icons/hicolor/symbolic/actions/selection-mode-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/selection-mode-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/selection-mode-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/system-run-symbolic.svg b/data/icons/hicolor/symbolic/actions/system-run-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/system-run-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/system-run-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/system-search-symbolic.svg b/data/icons/hicolor/symbolic/actions/system-search-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/system-search-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/system-search-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/system-shutdown-symbolic.svg b/data/icons/hicolor/symbolic/actions/system-shutdown-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/system-shutdown-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/system-shutdown-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/system-software-install-symbolic.svg b/data/icons/hicolor/symbolic/actions/system-software-install-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/system-software-install-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/system-software-install-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/view-more-symbolic.svg b/data/icons/hicolor/symbolic/actions/view-more-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/view-more-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/view-more-symbolic.svg
diff --git a/data/icons/symbolic/scalable/actions/warning-symbolic.svg b/data/icons/hicolor/symbolic/actions/warning-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/actions/warning-symbolic.svg
rename to data/icons/hicolor/symbolic/actions/warning-symbolic.svg
diff --git a/data/icons/symbolic/scalable/apps/bottle-symbolic.svg b/data/icons/hicolor/symbolic/apps/bottle-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/apps/bottle-symbolic.svg
rename to data/icons/hicolor/symbolic/apps/bottle-symbolic.svg
diff --git a/data/icons/symbolic/scalable/apps/bottles-steam-symbolic.svg b/data/icons/hicolor/symbolic/apps/bottles-steam-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/apps/bottles-steam-symbolic.svg
rename to data/icons/hicolor/symbolic/apps/bottles-steam-symbolic.svg
diff --git a/data/icons/symbolic/48/apps/com.usebottles.bottles-symbolic.svg b/data/icons/hicolor/symbolic/apps/com.usebottles.bottles-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/48/apps/com.usebottles.bottles-symbolic.svg
rename to data/icons/hicolor/symbolic/apps/com.usebottles.bottles-symbolic.svg
diff --git a/data/icons/symbolic/scalable/apps/com.usebottles.bottles-symbolic.svg b/data/icons/hicolor/symbolic/apps/com.usebottles.bottles.Devel-symbolic.svg
similarity index 100%
rename from data/icons/symbolic/scalable/apps/com.usebottles.bottles-symbolic.svg
rename to data/icons/hicolor/symbolic/apps/com.usebottles.bottles.Devel-symbolic.svg
diff --git a/data/icons/meson.build b/data/icons/meson.build
new file mode 100644
index 00000000000..d9f3f0383b8
--- /dev/null
+++ b/data/icons/meson.build
@@ -0,0 +1,11 @@
+scalable_dir = 'hicolor' / 'scalable' / 'apps'
+install_data(
+ scalable_dir / ('@0@.svg').format(APP_ID),
+ install_dir: get_option('datadir') / 'icons' / scalable_dir
+)
+
+symbolic_dir = 'hicolor' / 'symbolic' / 'apps'
+install_data(
+ symbolic_dir / ('@0@-symbolic.svg').format(APP_ID),
+ install_dir: get_option('datadir') / 'icons' / symbolic_dir
+)
diff --git a/data/meson.build b/data/meson.build
index 8dd51eaa372..29545befa72 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -36,6 +36,13 @@ appstream_file = i18n.merge_file(
install_dir: get_option('datadir') / 'metainfo'
)
+gnome.compile_resources('data',
+ 'data.gresource.xml',
+ gresource_bundle: true,
+ install: true,
+ install_dir: pkgdatadir
+)
+
appstream_util = find_program('appstream-util', required: false)
if appstream_util.found()
test('Validate appstream file', appstream_util,
@@ -54,27 +61,4 @@ if compile_schemas.found()
)
endif
-install_data(
- join_paths('icons/hicolor/scalable/apps', APP_ID + '.' + 'svg'),
- install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/scalable/apps')
-)
-
-install_data(
- join_paths('icons/symbolic/scalable/apps/com.usebottles.bottles-symbolic.svg'),
- install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/symbolic/apps')
-)
-
-install_data(
- join_paths('icons/hicolor/scalable/apps/com.usebottles.bottles-program.svg'),
- install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/scalable/apps')
-)
-
-install_data(
- join_paths('icons/symbolic/scalable/apps/bottle-symbolic.svg'),
- install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/symbolic/apps')
-)
-
-install_data(
- join_paths('icons/symbolic/scalable/apps/bottles-steam-symbolic.svg'),
- install_dir: join_paths(get_option('prefix'), get_option('datadir'), 'icons/hicolor/symbolic/apps')
-)
\ No newline at end of file
+subdir('icons')
\ No newline at end of file