#!/bin/bash # Ensure that we prioritize using the private font cache # SPDX-License-Identifier: GPL-2.0-or-later # ensure_dir_exists calls `mkdir -p` if the given path is not a directory. # This speeds up execution time by avoiding unnecessary calls to mkdir. # # Usage: ensure_dir_exists []... function ensure_dir_exists() { [ -d "$1" ] || mkdir -p "$@" } # Set $REALHOME to the users real home directory REALHOME=$(getent passwd $UID | cut -d ':' -f 6) # fallback to pre-1.2 behaviour in case getent doesn't work due to apparmor # could suggest to install unscd to proxy requests to blocked nss module REALHOME=${REALHOME:-${SNAP_USER_DATA}/../../..} # Set config folder to local path export XDG_CONFIG_HOME="$SNAP_USER_DATA/.config" ensure_dir_exists "$XDG_CONFIG_HOME" chmod 700 "$XDG_CONFIG_HOME" function make_user_fontconfig { echo "" echo " $REALHOME/.local/share/fonts" echo " $REALHOME/.fonts" echo " fontconfig" echo " $SNAP_DATA/fontconfig" echo " /etc/fonts/fonts.conf" if [ ! -z $SNAP_DESKTOP_RUNTIME ]; then echo " ${SNAP_DESKTOP_RUNTIME}/etc/fonts/fonts.conf" fi echo "" } ensure_dir_exists "$XDG_CONFIG_HOME/fontconfig" make_user_fontconfig > "$XDG_CONFIG_HOME/fontconfig/fonts.conf" export FONTCONFIG_FILE=${XDG_CONFIG_HOME}/fontconfig/fonts.conf exec "$@"