2017-07-21 04:18:47 -04:00
|
|
|
#!/usr/bin/env bash
|
2017-09-20 08:51:58 -04:00
|
|
|
#
|
2017-07-21 04:18:47 -04:00
|
|
|
# This script copies needed icons from Papirus to derived themes
|
|
|
|
# and changes their color schemes
|
|
|
|
|
|
|
|
set -eo pipefail
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
readonly SCRIPT_DIR="$(dirname "$0")"
|
|
|
|
readonly SOURCE_DIR="$SCRIPT_DIR/Papirus"
|
|
|
|
readonly ROOT_DIR="$SCRIPT_DIR/../.."
|
|
|
|
declare -a THEMES=(
|
|
|
|
$(find "$ROOT_DIR" -type f -name 'index.theme' -exec dirname '{}' \;)
|
|
|
|
)
|
2017-07-21 04:18:47 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
for theme in "${THEMES[@]##*/}"; do
|
|
|
|
theme_dir="$SCRIPT_DIR/$theme"
|
2017-07-21 04:18:47 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$theme" in
|
2017-07-21 04:18:47 -04:00
|
|
|
ePapirus)
|
2017-10-04 12:13:12 -04:00
|
|
|
# copy files and symlinks
|
|
|
|
find "$SOURCE_DIR" -maxdepth 1 -type d | while read -r dir; do
|
|
|
|
context_dir=$(basename "$dir")
|
2017-07-21 04:18:47 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$context_dir" in
|
2017-07-21 04:18:47 -04:00
|
|
|
actions)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
|
|
|
animations)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
devices|places)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@16x16.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
panel)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
# convert color scheme
|
2017-07-21 04:18:47 -04:00
|
|
|
find "$theme_dir" -type f -name '*.svg' -exec sed -i \
|
|
|
|
-e 's/#5c616c/#6e6e6e/gI' \
|
|
|
|
-e 's/#d3dae3/#ffffff/gI' '{}' \;
|
|
|
|
;;
|
2017-09-16 13:52:32 -04:00
|
|
|
Papirus-Adapta)
|
2017-10-04 12:13:12 -04:00
|
|
|
# copy files and symlinks
|
|
|
|
find "$SOURCE_DIR" -maxdepth 1 -type d | while read -r dir; do
|
|
|
|
context_dir=$(basename "$dir")
|
2017-09-16 13:52:32 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$context_dir" in
|
2017-09-16 13:52:32 -04:00
|
|
|
actions)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-09-16 13:52:32 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-09-16 13:52:32 -04:00
|
|
|
;;
|
2017-10-05 12:49:11 -04:00
|
|
|
devices)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-09-16 13:52:32 -04:00
|
|
|
-name '*@16x16.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-09-16 13:52:32 -04:00
|
|
|
;;
|
|
|
|
panel)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-10-02 03:53:22 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
2017-09-16 13:52:32 -04:00
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-09-16 13:52:32 -04:00
|
|
|
;;
|
2017-10-05 12:49:11 -04:00
|
|
|
places)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 -o \
|
|
|
|
-name '*@32x32.svg' -print0 -o \
|
|
|
|
-name '*@48x48.svg' -print0 -o \
|
|
|
|
-name '*@64x64.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
2017-09-16 13:52:32 -04:00
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
# convert color scheme
|
2017-09-16 13:52:32 -04:00
|
|
|
find "$theme_dir" -type f -name '*.svg' -exec sed -i \
|
2017-09-21 04:26:59 -04:00
|
|
|
-e 's/#5c616c/#414c52/gI' \
|
2017-09-20 08:51:58 -04:00
|
|
|
-e 's/#d3dae3/#cfd8dc/gI' \
|
|
|
|
-e 's/#5294e2/#00bcd4/gI' '{}' \;
|
|
|
|
;;
|
|
|
|
Papirus-Adapta-Nokto)
|
2017-10-04 12:13:12 -04:00
|
|
|
# copy files and symlinks
|
|
|
|
find "$SOURCE_DIR" -maxdepth 1 -type d | while read -r dir; do
|
|
|
|
context_dir=$(basename "$dir")
|
2017-09-20 08:51:58 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$context_dir" in
|
2017-09-20 08:51:58 -04:00
|
|
|
actions)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-09-20 08:51:58 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-09-20 08:51:58 -04:00
|
|
|
;;
|
|
|
|
devices|places)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-09-20 08:51:58 -04:00
|
|
|
-name '*@16x16.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-09-20 08:51:58 -04:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
# convert color scheme
|
2017-09-20 08:51:58 -04:00
|
|
|
find "$theme_dir" -type f -name '*.svg' -exec sed -i \
|
|
|
|
-e 's/#5c616c/#cfd8dc/gI' \
|
2017-09-16 13:52:32 -04:00
|
|
|
-e 's/#5294e2/#00bcd4/gI' '{}' \;
|
|
|
|
;;
|
2017-07-21 04:18:47 -04:00
|
|
|
Papirus-Dark)
|
2017-10-04 12:13:12 -04:00
|
|
|
# copy files and symlinks
|
|
|
|
find "$SOURCE_DIR" -maxdepth 1 -type d | while read -r dir; do
|
|
|
|
context_dir=$(basename "$dir")
|
2017-07-21 04:18:47 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$context_dir" in
|
2017-07-21 04:18:47 -04:00
|
|
|
actions)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 -o \
|
|
|
|
-name '*@symbolic.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
|
|
|
animations)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
devices|places)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@symbolic.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
apps|categories|emblems|emotes|mimetypes|status)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@symbolic.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
# convert color scheme
|
2017-07-21 04:18:47 -04:00
|
|
|
find "$theme_dir" -type f -name '*.svg' -exec sed -i \
|
|
|
|
-e 's/#5c616c/#d3dae3/gI' '{}' \;
|
|
|
|
;;
|
|
|
|
Papirus-Light)
|
2017-10-04 12:13:12 -04:00
|
|
|
# copy files and symlinks
|
|
|
|
find "$SOURCE_DIR" -maxdepth 1 -type d | while read -r dir; do
|
|
|
|
context_dir=$(basename "$dir")
|
2017-07-21 04:18:47 -04:00
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
case "$context_dir" in
|
|
|
|
actions)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@16x16.svg' -print0 -o \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
|
|
|
animations)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
|
|
|
devices|places)
|
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
|
|
|
-name '*@16x16.svg' -print0 | xargs -0 -i \
|
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
|
|
|
;;
|
2017-07-21 04:18:47 -04:00
|
|
|
panel)
|
2017-10-04 12:13:12 -04:00
|
|
|
mkdir -p "$theme_dir/$context_dir"
|
|
|
|
find "$SOURCE_DIR/$context_dir" \
|
2017-10-02 03:53:22 -04:00
|
|
|
-name '*@16x16.svg' -print0 -o \
|
2017-07-21 04:18:47 -04:00
|
|
|
-name '*@22x22.svg' -print0 -o \
|
|
|
|
-name '*@24x24.svg' -print0 | xargs -0 -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
cp -afv '{}' "$theme_dir/$context_dir"
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2017-10-04 12:13:12 -04:00
|
|
|
# convert color scheme
|
2017-07-21 04:18:47 -04:00
|
|
|
find "$theme_dir" -type f -name '*.svg' -exec sed -i \
|
2017-10-04 12:13:12 -04:00
|
|
|
-e 's/#5c616c/#31363b/gI' \
|
|
|
|
-e 's/#5294e2/#3daee9/gI' \
|
|
|
|
-e 's/#d3dae3/#31363b/gI' '{}' \;
|
2017-07-21 04:18:47 -04:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
continue
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|