mirror of
https://github.com/vinceliuice/Colloid-icon-theme.git
synced 2026-08-26 04:42:29 -07:00
Also share unchanged dirs across schemes when installing -s all
The non-folder directories are identical for every scheme of the same light/dark color, not just within one scheme. Link them to the global default theme when it exists, and fall back to the scheme default so a single-scheme install (the AUR split packages) still dedupes.
This commit is contained in:
+15
-8
@@ -142,17 +142,24 @@ install() {
|
||||
ln -sf status status@2x
|
||||
)
|
||||
|
||||
# Only the folder icons (apps, places) change with the accent color, so the
|
||||
# other directories are identical to the default theme of the same scheme and
|
||||
# color. Link them instead of keeping a full copy per accent variant. This is
|
||||
# skipped when the default theme isn't installed (e.g. a single -t variant).
|
||||
if [[ "${theme}" != '' && "${color}" != '' ]]; then
|
||||
local BASE_DIR="${dest}/${name}${scheme}${color}"
|
||||
if [[ -d "${BASE_DIR}" ]]; then
|
||||
# Only the folder icons (apps, places) change with the scheme and accent
|
||||
# color. Every other directory is identical for all variants of the same
|
||||
# light/dark color, so link them to the default theme instead of keeping a
|
||||
# full copy per variant. Prefer the global default (covers -s all), fall back
|
||||
# to the scheme default (covers a single scheme), and skip linking when no
|
||||
# default is present so a standalone -t variant still installs in full.
|
||||
if [[ "${color}" != '' ]]; then
|
||||
local base=
|
||||
if [[ ( "${theme}" != '' || "${scheme}" != '' ) && -d "${dest}/${name}${color}" ]]; then
|
||||
base="${name}${color}"
|
||||
elif [[ "${theme}" != '' && -d "${dest}/${name}${scheme}${color}" ]]; then
|
||||
base="${name}${scheme}${color}"
|
||||
fi
|
||||
if [[ -n "${base}" ]]; then
|
||||
for dir in actions categories devices emblems mimetypes status; do
|
||||
if [[ -d "${THEME_DIR}/${dir}" && ! -L "${THEME_DIR}/${dir}" ]]; then
|
||||
rm -rf "${THEME_DIR}/${dir}"
|
||||
ln -sf "../${name}${scheme}${color}/${dir}" "${THEME_DIR}/${dir}"
|
||||
ln -sf "../${base}/${dir}" "${THEME_DIR}/${dir}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user