diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 8a04da03..689294d8 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -287,7 +287,7 @@ jobs:
run: |
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
- flatpak install -y --noninteractive --user flathub org.gnome.Platform//48 org.gnome.Sdk//48
+ flatpak install -y --noninteractive --user flathub org.gnome.Platform//51 org.gnome.Sdk//51
- name: Build Flatpak bundle
if: matrix.platform == 'linux'
diff --git a/.gitignore b/.gitignore
index 06663930..d4119d84 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@ flatpak/.deb-input/
flatpak/.build/
flatpak/.repo/
flatpak/output/
+.flatpak-builder/
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 00000000..ff138137
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "flatpak/shared-modules"]
+ path = flatpak/shared-modules
+ url = https://github.com/flathub/shared-modules.git
diff --git a/eslint.config.ts b/eslint.config.ts
index 67b02ec6..877bbbc4 100644
--- a/eslint.config.ts
+++ b/eslint.config.ts
@@ -7,7 +7,10 @@ import checkFile from 'eslint-plugin-check-file';
import pluginVueI18n from '@intlify/eslint-plugin-vue-i18n';
export default defineConfigWithVueTs(
- globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**', '**/e2e-webdriver/**', 'src-tauri/**']),
+ globalIgnores([
+ '**/dist/**', '**/dist-ssr/**', '**/coverage/**', '**/e2e-webdriver/**', 'src-tauri/**',
+ 'flatpak/shared-modules/', 'flatpak/.build/', 'flatpak/.repo/', 'flatpak/.deb-input/', 'flatpak/output/', '.flatpak-builder/',
+ ]),
pluginVue.configs['flat/strongly-recommended'],
vueTsConfigs.recommended,
pluginStylistic.configs.customize({
diff --git a/flatpak/build-flatpak.sh b/flatpak/build-flatpak.sh
index fe7e8994..b80748d4 100644
--- a/flatpak/build-flatpak.sh
+++ b/flatpak/build-flatpak.sh
@@ -10,7 +10,8 @@ repo_directory="$flatpak_directory/.repo"
output_directory="$flatpak_directory/output"
manifest_path="$flatpak_directory/com.sigma-file-manager.app.yml"
app_id="com.sigmafilemanager.app"
-runtime_ref="org.gnome.Platform/x86_64/48"
+runtime_version="51"
+runtime_ref="org.gnome.Platform/x86_64/${runtime_version}"
version="$(node -p "require('$root_directory/package.json').version")"
bundle_path="$output_directory/Sigma-File-Manager-${version}-linux.flatpak"
@@ -62,9 +63,17 @@ ensure_flatpak_runtime() {
fi
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
- flatpak install -y --noninteractive --user flathub org.gnome.Platform//48 org.gnome.Sdk//48
+ flatpak install -y --noninteractive --user flathub "org.gnome.Platform//${runtime_version}" "org.gnome.Sdk//${runtime_version}"
}
+ensure_shared_modules() {
+ if [ -f "$flatpak_directory/shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json" ]; then
+ return
+ fi
+ git -C "$root_directory" submodule update --init flatpak/shared-modules
+}
+
+ensure_shared_modules
deb_package="$(ensure_deb_package)"
mkdir -p "$deb_input_directory" "$output_directory"
cp "$deb_package" "$deb_input_directory/sigma-file-manager.deb"
diff --git a/flatpak/com.sigma-file-manager.app.yml b/flatpak/com.sigma-file-manager.app.yml
index 952b42c5..0d94f45c 100644
--- a/flatpak/com.sigma-file-manager.app.yml
+++ b/flatpak/com.sigma-file-manager.app.yml
@@ -1,6 +1,6 @@
id: com.sigmafilemanager.app
runtime: org.gnome.Platform
-runtime-version: '48'
+runtime-version: '51'
sdk: org.gnome.Sdk
command: sigma-file-manager
appstream-compose: false
@@ -22,6 +22,10 @@ finish-args:
- --filesystem=xdg-config/autostart:create
modules:
+ # Tauri's tray icon (libappindicator-sys) dlopens libayatana-appindicator3 at startup,
+ # which the GNOME runtime doesn't ship.
+ - shared-modules/libayatana-appindicator/libayatana-appindicator-gtk3.json
+
- name: sigma-file-manager
buildsystem: simple
sources:
diff --git a/flatpak/shared-modules b/flatpak/shared-modules
new file mode 160000
index 00000000..a58e654b
--- /dev/null
+++ b/flatpak/shared-modules
@@ -0,0 +1 @@
+Subproject commit a58e654b9113feffaee113cc7167ebbbdb406bee
diff --git a/src/components/ui/tag-selector/item-tags-field.vue b/src/components/ui/tag-selector/item-tags-field.vue
index 372365a8..5a16c3c4 100644
--- a/src/components/ui/tag-selector/item-tags-field.vue
+++ b/src/components/ui/tag-selector/item-tags-field.vue
@@ -26,6 +26,7 @@ const props = withDefaults(defineProps<{
align?: PopoverContentProps['align'];
side?: PopoverContentProps['side'];
}>(), {
+ tagSummary: undefined,
allowCreate: true,
fullWidth: true,
align: 'end',
@@ -33,7 +34,7 @@ const props = withDefaults(defineProps<{
});
const emit = defineEmits<{
- open: [];
+ 'open': [];
'open-change': [open: boolean];
'toggle-tag': [tagId: string];
'create-tag': [name: string];
@@ -100,6 +101,7 @@ watch(() => props.isSelectorMounted, (mounted) => {
if (mounted) {
showEditor.value = true;
+
if (prefersReducedMotion()) {
isExpanded.value = true;
return;
@@ -165,11 +167,11 @@ onUnmounted(() => {
:title="resolvedTagSummary"
@click="emit('open')"
>
-
-
+
+
diff --git a/src/modules/navigator/components/clipboard-toolbar/clipboard-items-popover.vue b/src/modules/navigator/components/clipboard-toolbar/clipboard-items-popover.vue
index 23f64508..4442be67 100644
--- a/src/modules/navigator/components/clipboard-toolbar/clipboard-items-popover.vue
+++ b/src/modules/navigator/components/clipboard-toolbar/clipboard-items-popover.vue
@@ -4,7 +4,9 @@ Copyright © 2021 - present Aleksey Hoffman. All rights reserved.
-->