mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-03-16 16:20:48 +00:00
chore: Support loading dconfs
Converts gschema overrides to dconfs
This commit is contained in:
parent
5e5e2259ef
commit
4d94d284b7
@ -722,6 +722,22 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
echo "import \"/usr/share/ublue-os/just/84-bazzite-virt.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/85-bazzite-image.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/90-bazzite-de.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/desktop-kinoite/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" "/usr/share/ublue-os/dconfs/desktop-kinoite/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/desktop-kinoite/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/desktop-kinoite/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/desktop-kinoite/zz0-"*"-bazzite-desktop-kinoite-"*".gschema.override" && \
|
||||
zz0-00-bazzite-desktop-silverblue-global.gschema.override
|
||||
; else \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/desktop-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/desktop-silverblue/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/desktop-silverblue/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/desktop-silverblue/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" && \
|
||||
# Replace sort-directories-first to be compatible with dconf
|
||||
sed -i 's/\[org.gtk.Settings.FileChooser\]/\[org\/gtk\/settings\/file-chooser\]/g; s/\[org.gtk.gtk4.Settings.FileChooser\]/\[org\/gtk\/gtk4\/settings\/file-chooser\]/g' "zz0-00-bazzite-desktop-silverblue-global.gschema.override"
|
||||
rm "/usr/share/ublue-os/dconfs/desktop-silverblue/zz0-"*"-bazzite-desktop-silverblue-"*".gschema.override" && \
|
||||
; fi && \
|
||||
sed -i 's/stage/none/g' /etc/rpm-ostreed.conf && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
|
||||
@ -905,6 +921,13 @@ RUN /usr/libexec/containerbuild/image-info && \
|
||||
systemctl disable gdm.service && \
|
||||
systemctl enable sddm.service \
|
||||
; fi && \
|
||||
if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/deck-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/deck-silverblue/" && \
|
||||
find "/etc/dconf/db/distro.d/" -maxdepth 1 -type f -exec cp {} "/usr/share/ublue-os/dconfs/deck-silverblue/" \; && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/deck-silverblue/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/deck-silverblue/zz0-"*"-bazzite-deck-silverblue-"*".gschema.override" && \
|
||||
; fi && \
|
||||
systemctl enable bazzite-autologin.service && \
|
||||
systemctl enable wireplumber-workaround.service && \
|
||||
systemctl enable wireplumber-sysconf.service && \
|
||||
@ -975,6 +998,12 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
|
||||
# Cleanup & Finalize
|
||||
RUN echo "import \"/usr/share/ublue-os/just/95-bazzite-nvidia.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
if grep -q "silverblue" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
mkdir -p "/usr/share/ublue-os/dconfs/nvidia-silverblue/" && \
|
||||
cp "/usr/share/glib-2.0/schemas/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" "/usr/share/ublue-os/dconfs/nvidia-silverblue/" && \
|
||||
dconf-override-converter to-dconf "/usr/share/ublue-os/dconfs/nvidia-silverblue/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" && \
|
||||
rm "/usr/share/ublue-os/dconfs/nvidia-silverblue/zz0-"*"-bazzite-nvidia-silverblue-"*".gschema.override" && \
|
||||
; fi && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
/usr/libexec/containerbuild/image-info && \
|
||||
/usr/libexec/containerbuild/build-initramfs && \
|
||||
|
@ -2,11 +2,7 @@
|
||||
|
||||
# Restore Bazzite customized DE settings
|
||||
restore-gnome-de-settings:
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-global
|
||||
dconf load / < /etc/dconf/db/local.d/03-bazzite-dash
|
||||
dconf load / < /etc/dconf/db/local.d/05-bazzite-extensions
|
||||
dconf load / < /etc/dconf/db/local.d/06-bazzite-theme
|
||||
dconf load / < /etc/dconf/db/local.d/07-bazzite-deck
|
||||
dconf load / < /usr/share/ublue-os/dconfs/deck-silverblue/
|
||||
|
||||
# Restore Bazzite customized applications folders
|
||||
restore-gnome-folders:
|
||||
|
72
system_files/desktop/shared/usr/bin/dconf-override-converter
Executable file
72
system_files/desktop/shared/usr/bin/dconf-override-converter
Executable file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Function to convert .gschema.override to dconf
|
||||
convert_to_dconf() {
|
||||
local output_dir="${!#}" # Last argument as output directory
|
||||
if [[ ! -d "$output_dir" ]]; then
|
||||
output_dir="$(dirname "${1}")" # Default to input file's directory
|
||||
fi
|
||||
|
||||
for input_file in "${@}"; do
|
||||
if [[ "${input_file}" != *".gschema.override" ]]; then
|
||||
printf "\e[1;31mERROR: ${input_file} is not a gschema override, so it can't be converted to dconf\e[0m\n" 1>&2
|
||||
continue
|
||||
fi
|
||||
local output_file="${output_dir}/$(basename "${input_file%.gschema.override}")"
|
||||
|
||||
# Check if output file exists and rename if necessary
|
||||
if [[ -e "${output_file}" ]]; then
|
||||
output_file="${output_file}_$(date +%s)" # Append timestamp
|
||||
fi
|
||||
|
||||
while IFS= read -r line; do
|
||||
if [[ "${line}" =~ ^\[ ]]; then
|
||||
line="${line//./\/}"
|
||||
fi
|
||||
echo "$line" >> "$output_file"
|
||||
done < "${input_file}"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Function to convert dconf to .gschema.override
|
||||
convert_to_override() {
|
||||
local output_dir="${!#}" # Last argument as output directory
|
||||
if [[ ! -d "$output_dir" ]]; then
|
||||
output_dir="$(dirname "${1}")" # Default to input file's directory
|
||||
fi
|
||||
|
||||
for input_file in "${@}"; do
|
||||
if [[ "${input_file}" == *".gschema.override" ]]; then
|
||||
printf "\e[1;31mERROR: ${input_file} is a gschema override, there is no need to convert it to override again\e[0m\n" 1>&2
|
||||
continue
|
||||
fi
|
||||
local output_file="${output_dir}/$(basename "${input_file%.dconf}.gschema.override")"
|
||||
|
||||
# Check if output file exists and rename if necessary
|
||||
if [[ -e "${output_file}" ]]; then
|
||||
output_file="${output_file}_$(date +%s)" # Append timestamp
|
||||
fi
|
||||
|
||||
while IFS= read -r line; do
|
||||
if [[ "${line}" =~ ^\[ ]]; then
|
||||
line="${line//\//.}"
|
||||
fi
|
||||
echo "$line" >> "$output_file"
|
||||
done < "${input_file}"
|
||||
done
|
||||
}
|
||||
|
||||
# Main script logic
|
||||
if [[ "${1}" == "to-dconf" ]]; then
|
||||
shift
|
||||
convert_to_dconf "$@"
|
||||
elif [[ "${1}" == "to-override" ]]; then
|
||||
shift
|
||||
convert_to_override "$@"
|
||||
else
|
||||
echo "Usage: dconf-override-converter {to-dconf|to-override} <input_file1> <input_file2> ... [output_directory]"
|
||||
echo "If not specified:"
|
||||
echo "Output directory: defaults to output directory where input files are located"
|
||||
echo "WARNING: Wildcard is buggy when folders are present there, beware, will see how to fix"
|
||||
fi
|
@ -77,7 +77,7 @@ fi
|
||||
if [[ ! -f "$BAZZITE_CONFIG_DIR/ptyxis-initialized" ]]; then
|
||||
echo 'Configuring Ptyxis'
|
||||
if [[ $BASE_IMAGE_NAME =~ "kinoite" ]]; then
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-kde
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-kinoite/
|
||||
fi
|
||||
touch "$BAZZITE_CONFIG_DIR/ptyxis-initialized"
|
||||
fi
|
||||
|
@ -2,10 +2,7 @@
|
||||
|
||||
# Restore Bazzite customized DE settings
|
||||
restore-gnome-de-settings:
|
||||
dconf load / < /etc/dconf/db/local.d/02-bazzite-global
|
||||
dconf load / < /etc/dconf/db/local.d/03-bazzite-dash
|
||||
dconf load / < /etc/dconf/db/local.d/05-bazzite-extensions
|
||||
dconf load / < /etc/dconf/db/local.d/06-bazzite-theme
|
||||
dconf load / < /usr/share/ublue-os/dconfs/desktop-silverblue/
|
||||
|
||||
# Restore Bazzite customized applications folders
|
||||
restore-gnome-folders:
|
||||
|
Loading…
x
Reference in New Issue
Block a user