1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#!/bin/bash
set -e
export TMPDIR=$(mktemp -d --tmpdir="$PWD")
export XDG_CONFIG_HOME="$TMPDIR/config"
export XDG_CACHE_HOME="$TMPDIR/cache"
export XDG_RUNTIME_DIR="$TMPDIR/run"
export GSETTINGS_SCHEMA_DIR="$TMPDIR/schemas"
mkdir -p $XDG_CONFIG_HOME $XDG_CACHE_HOME $GSETTINGS_SCHEMA_DIR $XDG_RUNTIME_DIR
trap 'rm -rf $TMPDIR' ERR
# in case that schema is not installed on the system
dbus-run-session -- glib-compile-schemas --targetdir "$GSETTINGS_SCHEMA_DIR" "$PWD"
cat <<EOF
# This file is a part of the IBus packaging and should not be changed.
#
# Instead create your own file next to it with a higher numbered prefix,
# and run
#
# dconf update
#
EOF
# Loop over top level schemas since "gsettings list-recursively" only
# looks for direct children.
schemas="org.freedesktop.ibus.general org.freedesktop.ibus.panel"
current_schema=
for schema in $schemas; do
dbus-run-session -- gsettings list-recursively $schema | \
while read schema key val; do
if test "$schema" != "$current_schema"; then
echo
echo $schema | sed 's/org\.freedesktop\(.*\)/[desktop\1]/' | tr '.' '/'
current_schema="$schema"
fi
echo "$key=$val"
done
done
rm -rf $TMPDIR
|