hicolor-icon-theme: add hook to symlink inherited icon themes
This commit is contained in:
parent
76f2f29de6
commit
bbeb6ac387
@ -11,3 +11,44 @@ hicolorIconThemeHook() {
|
||||
|
||||
# I think this is meant to be a runtime dep
|
||||
addEnvHooks "${hostOffset:?}" hicolorIconThemeHook
|
||||
|
||||
|
||||
# Make symbolic links of parent icon themes that are inherited in the
|
||||
# icon themes installed by the package.
|
||||
symlinkParentIconThemes() {
|
||||
if [ -e $out/share/icons ]; then
|
||||
echo Symlinking parent icon themes...
|
||||
local theme
|
||||
local theme_name
|
||||
local inheritance
|
||||
local parent
|
||||
local parent_theme
|
||||
local dir
|
||||
local parent_path
|
||||
for theme in $out/share/icons/*/index.theme; do
|
||||
theme_name="${theme%/*}"
|
||||
theme_name="${theme_name##*/}"
|
||||
echo " theme: $theme_name"
|
||||
inheritance=$(sed -rne 's,^Inherits=(.*)$,\1,p' $theme)
|
||||
IFS=',' read -ra parent_themes <<< "$inheritance"
|
||||
for parent_theme in "${parent_themes[@]}"; do
|
||||
parent_path=""
|
||||
if [ -e "$out/share/icons/$parent_theme" ]; then
|
||||
parent_path="$(realpath $out/share/icons/$parent_theme)"
|
||||
else
|
||||
IFS=':' read -ra dirs <<< $XDG_ICON_DIRS
|
||||
for parent_dir in "${dirs[@]}"; do
|
||||
if [ -e "$parent_dir/icons/$parent_theme/index.theme" ]; then
|
||||
parent_path=$(realpath "$parent_dir/icons/$parent_theme")
|
||||
ln -s "$parent_path" "$out/share/icons/"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
echo " parent: $parent_theme -> $parent_path"
|
||||
done
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
preFixupHooks+=(symlinkParentIconThemes)
|
||||
|
Loading…
Reference in New Issue
Block a user