This commit is contained in:
wheaney 2024-05-07 22:59:33 -07:00
parent 2f99b84ef2
commit 204ae71dd9
3 changed files with 52 additions and 3 deletions

View File

@ -0,0 +1,34 @@
#!/usr/bin/env bash
IFS=: read -ra host_data_dirs < <(flatpak-spawn --host sh -c 'echo "$XDG_DATA_DIRS"')
# To avoid potentially muddying up $XDG_DATA_DIRS too much, we link the schema paths
# into a temporary directory.
bridge_dir=$XDG_RUNTIME_DIR/dconf-bridge
mkdir -p "$bridge_dir"
HOST_XDG_DATA_DIRS=""
for dir in "${host_data_dirs[@]}"; do
if [[ "$dir" == /usr/* ]]; then
dir=/run/host/"$dir"
fi
schemas="$dir/glib-2.0/schemas"
if [[ -d "$schemas" ]]; then
bridged=$(mktemp -d XXXXXXXXXX -p "$bridge_dir")
mkdir -p "$bridged"/glib-2.0
ln -s "$schemas" "$bridged"/glib-2.0
HOST_XDG_DATA_DIRS="${HOST_XDG_DATA_DIRS}:${bridged}"
fi
done
# We MUST prepend the host's data dirs BEFORE the Flatpak environment's own dirs,
# otherwise data (such as default values) load in the wrong order and would then
# incorrectly prefer the Flatpak's internal defaults instead of the host's defaults!
if [[ ! -z "${HOST_XDG_DATA_DIRS}" ]]; then
XDG_DATA_DIRS="${HOST_XDG_DATA_DIRS:1}:${XDG_DATA_DIRS}"
fi
export XDG_DATA_DIRS
exec breezydesktop "$@"

View File

@ -13,9 +13,10 @@
"--device=shm",
"--talk-name=ca.desrt.dconf",
"--filesystem=xdg-run/dconf",
"--filesystem=host:ro",
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
"--env=GIO_EXTRA_MODULES=/app/lib/gio/modules/",
"--env=GSETTINGS_BACKEND=dconf"
"--talk-name=org.freedesktop.Flatpak"
],
"cleanup" : [
"/include",
@ -55,6 +56,20 @@
}
]
},
{
"name": "scripts",
"buildsystem": "simple",
"build-commands": [
"install -Dm 755 start-breezy-desktop.sh /app/bin/start-breezy-desktop"
],
"sources": [
{
"type": "file",
"path": "build-aux/start-breezy-desktop.sh"
}
]
},
{
"name" : "breezydesktop",
"builddir" : true,
@ -62,7 +77,7 @@
"sources" : [
{
"type" : "dir",
"source" : "./"
"path" : "."
}
]
}

View File

@ -1,6 +1,6 @@
[Desktop Entry]
Name=breezydesktop
Exec=breezydesktop
Exec=start-breezy-desktop
Icon=com.xronlinux.BreezyDesktop
Terminal=false
Type=Application