#!/bin/bash export URL_REPOSITORIES=" \ https://gitlab.com/LinxGem33/Arc-X-Icons \ https://github.com/sonakinci41/DamaDamas-icon-theme \ https://github.com/Nitrux/luv-icon-theme \ https://github.com/OrancheloTeam/oranchelo-icon-theme \ https://github.com/rudrab/Shadow \ https://github.com/keeferrourke/la-capitaine-icon-theme \ https://github.com/PapirusDevelopmentTeam/papirus-icon-theme \ https://github.com/numixproject/numix-icon-theme \ https://github.com/numixproject/numix-icon-theme-circle \ https://github.com/numixproject/numix-icon-theme-square \ https://github.com/faience/faience-ng-icon-theme/releases/ \ https://github.com/daniruiz/flat-remix \ https://github.com/erikdubois/Surfn \ https://github.com/masalla-art/masalla-icon-theme \ https://github.com/flipflop97/Mato \ https://github.com/gusbemacbe/suru-plus \ https://github.com/gusbemacbe/suru-plus-telinkrin \ https://github.com/bolimage/Ultimate-Maia-Icons \ https://github.com/snwh/faba-icon-theme \ https://github.com/snwh/moka-icon-theme \ https://github.com/snwh/paper-icon-theme \ https://github.com/snwh/suru-icon-theme \ https://github.com/snwh/faba-mono-icons \ https://github.com/elementary/icons \ https://github.com/pop-os/icon-theme \ https://github.com/xenlism/wildfire \ lp:~ubuntu-art-pkg/humanity/release \ lp:ubuntu-themes \ " export DIR_REPOSITORIES=$HOME/.local/src/icons export ICONS_DIR=$HOME/.local/share/icons function git_clone_pull_repository() { local url="$1" local icon_directory="$(echo $url | sed 's:^.*/::')" cd $DIR_REPOSITORIES if [ ! -d $icon_directory ]; then echo echo "Cloning: $url => $DIR_REPOSITORIES/$icon_directory" git clone $url else echo echo "Updating: $DIR_REPOSITORIES/$icon_directory" cd $icon_directory git reset --hard HEAD git clean -f -d git pull fi install_icon $icon_directory } function bzr_clone_pull_repository() { local url="$1" local icon_directory="$(echo $url | cut -d '/' -f 2 | sed 's/lp://')" cd $DIR_REPOSITORIES if [ ! -d $icon_directory ]; then echo echo "Cloning: $url => $DIR_REPOSITORIES/$icon_directory" bzr branch $url $icon_directory else echo echo "Updating: $DIR_REPOSITORIES/$icon_directory" cd $icon_directory bzr merge fi install_icon $icon_directory } function install_icon() { local icon_directory=$1 local icon_repository=$DIR_REPOSITORIES/$icon_directory cd $ICONS_DIR echo "Installing: $ICONS_DIR/$icon_directory" case $icon_directory in "Arc-X-Icons") rm -rf Arc-OSX-D Arc-OSX-P create_symlink \ $icon_repository/src/Arc-OSX-D \ $icon_repository/src/Arc-OSX-P update_icon_cache Arc-OSX-D Arc-OSX-P ;; "DamaDamas-icon-theme") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "luv-icon-theme") rm -rf Luv create_symlink $icon_repository/Luv update_icon_cache Luv ;; "oranchelo-icon-theme") rm -rf Oranchelo Oranchelo-Beka Oranchelo-Classic-Folders Oranchelo-Green create_symlink \ $icon_repository/Oranchelo \ $icon_repository/Oranchelo-Beka \ $icon_repository/Oranchelo-Classic-Folders \ $icon_repository/Oranchelo-Green update_icon_cache Oranchelo Oranchelo-Beka Oranchelo-Classic-Folders Oranchelo-Green ;; "Shadow") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "la-capitaine-icon-theme") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "papirus-icon-theme") rm -rf Papirus ePapirus Papirus-Dark Papirus-Light Papirus-Adapta Papirus-Adapta-Nokto create_symlink \ $icon_repository/Papirus \ $icon_repository/ePapirus \ $icon_repository/Papirus-Dark \ $icon_repository/Papirus-Light \ $icon_repository/Papirus-Adapta \ $icon_repository/Papirus-Adapta-Nokto update_icon_cache Papirus ePapirus Papirus-Dark Papirus-Light Papirus-Adapta Papirus-Adapta-Nokto ;; "paper-icon-theme") rm -rf Paper Paper-Mono-Dark create_symlink \ $icon_repository/Paper \ $icon_repository/Paper-Mono-Dark update_icon_cache Paper Paper-Mono-Dark ;; "suru-icon-theme") rm -rf Suru create_symlink $icon_repository/Suru update_icon_cache Suru ;; "numix-icon-theme") rm -rf Numix Numix-Light create_symlink \ $icon_repository/Numix \ $icon_repository/Numix-Light update_icon_cache Numix Numix-Light ;; "numix-icon-theme-circle") rm -rf Numix-Circle Numix-Circle-Light create_symlink \ $icon_repository/Numix-Circle \ $icon_repository/Numix-Circle-Light update_icon_cache Numix-Circle Numix-Circle-Light ;; "numix-icon-theme-square") rm -rf Numix-Square Numix-Square-Light create_symlink \ $icon_repository/Numix-Square \ $icon_repository/Numix-Square-Light update_icon_cache Numix-Square Numix-Square-Light ;; "faience-ng-icon-theme") cd $DIR_REPOSITORIES rm -rf faience-ng-icon-theme-*.tar.gz local src_url="$(wget https://github.com/faience/faience-ng-icon-theme/releases/latest -o /dev/null -O - \ grep -E faience-ng-icon-theme.*\.tar\.gz x.txt | grep 'a href' | grep download | \ sed -e 's_.*"/_/_' -e 's_" .*__' | \ sed 's_^_https://github.com_')" wget -o /dev/null $src_url rm -rf Faience-ng Faience-ng-Blue Faience-ng-Dark Faience-ng-Dark-Blue \ Faience-ng-Dark-Green Faience-ng-Default Faience-ng-Green Faience-ng-Mono \ Faience-ng-Mono-Blue Faience-ng-Mono-Dark Faience-ng-Mono-Dark-Blue \ Faience-ng-Mono-Dark-Green Faience-ng-Mono-Green tar xf faience-ng-icon-theme-*.tar.gz rm -rf faience-ng-icon-theme-*.tar.gz cd $ICONS_DIR rm -rf Faience-ng Faience-ng-Blue Faience-ng-Dark Faience-ng-Dark-Blue \ Faience-ng-Dark-Green Faience-ng-Default Faience-ng-Green Faience-ng-Mono \ Faience-ng-Mono-Blue Faience-ng-Mono-Dark Faience-ng-Mono-Dark-Blue \ Faience-ng-Mono-Dark-Green Faience-ng-Mono-Green create_symlink \ $DIR_REPOSITORIES/Faience-ng \ $DIR_REPOSITORIES/Faience-ng-Blue \ $DIR_REPOSITORIES/Faience-ng-Dark \ $DIR_REPOSITORIES/Faience-ng-Dark-Blue \ $DIR_REPOSITORIES/Faience-ng-Dark-Green \ $DIR_REPOSITORIES/Faience-ng-Default \ $DIR_REPOSITORIES/Faience-ng-Green \ $DIR_REPOSITORIES/Faience-ng-Mono \ $DIR_REPOSITORIES/Faience-ng-Mono-Blue \ $DIR_REPOSITORIES/Faience-ng-Mono-Dark \ $DIR_REPOSITORIES/Faience-ng-Mono-Dark-Blue \ $DIR_REPOSITORIES/Faience-ng-Mono-Dark-Green \ $DIR_REPOSITORIES/Faience-ng-Mono-Green update_icon_cache Faience-ng Faience-ng-Blue Faience-ng-Dark Faience-ng-Dark-Blue \ Faience-ng-Dark-Green Faience-ng-Default Faience-ng-Green Faience-ng-Mono \ Faience-ng-Mono-Blue Faience-ng-Mono-Dark Faience-ng-Mono-Dark-Blue \ Faience-ng-Mono-Dark-Green Faience-ng-Mono-Green ;; "flat-remix") rm -rf Flat-Remix Flat-Remix-Dark Flat-Remix-Light create_symlink \ $icon_repository/Flat-Remix \ $icon_repository/Flat-Remix-Dark \ $icon_repository/Flat-Remix-Light update_icon_cache Flat-Remix Flat-Remix-Dark Flat-Remix-Light ;; "Surfn") rm -rf Surfn Surfn-Arc Surfn-Arch-Blue Surfn-Arched Surfn-Breeze-Dark \ Surfn-Evopop Surfn-Luv Surfn-Luv-Red Surfn-Majestic Surfn-Mint-X-Grey \ Surfn-Numix Surfn-Numix-Misty Surfn-Numix-Polo Surfn-Orange \ Surfn-Papirus-Blue Surfn-Papirus-Grey Surfn-Vertexed create_symlink \ $icon_repository/Surfn \ $icon_repository/Surfn-Arc \ $icon_repository/Surfn-Arch-Blue \ $icon_repository/Surfn-Arched \ $icon_repository/Surfn-Breeze-Dark \ $icon_repository/Surfn-Evopop \ $icon_repository/Surfn-Luv \ $icon_repository/Surfn-Luv-Red \ $icon_repository/Surfn-Majestic \ $icon_repository/Surfn-Mint-X-Grey \ $icon_repository/Surfn-Numix \ $icon_repository/Surfn-Numix-Misty \ $icon_repository/Surfn-Numix-Polo \ $icon_repository/Surfn-Orange \ $icon_repository/Surfn-Papirus-Blue \ $icon_repository/Surfn-Papirus-Grey \ $icon_repository/Surfn-Vertexed update_icon_cache Surfn Surfn-Arc Surfn-Arch-Blue Surfn-Arched Surfn-Breeze-Dark \ Surfn-Evopop Surfn-Luv Surfn-Luv-Red Surfn-Majestic Surfn-Mint-X-Grey \ Surfn-Numix Surfn-Numix-Misty Surfn-Numix-Polo Surfn-Orange \ Surfn-Papirus-Blue Surfn-Papirus-Grey Surfn-Vertexed ;; "masalla-icon-theme") rm -rf masalla masalla-dark create_symlink \ $icon_repository/masalla \ $icon_repository/masalla-dark update_icon_cache masalla masalla-dark ;; "Mato") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "suru-plus") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "suru-plus-telinkrin") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "Ultimate-Maia-Icons") rm -rf Blue-Maia Green-Maia Grey-Maia Orange-Maia Red-Maia create_symlink \ $icon_repository/Blue-Maia \ $icon_repository/Green-Maia \ $icon_repository/Grey-Maia \ $icon_repository/Orange-Maia \ $icon_repository/Red-Maia update_icon_cache Blue-Maia Green-Maia Grey-Maia Orange-Maia Red-Maia ;; "faba-icon-theme") rm -rf Faba create_symlink $icon_repository/Faba update_icon_cache Faba ;; "moka-icon-theme") rm -rf Moka create_symlink $icon_repository/Moka update_icon_cache Moka ;; "faba-mono-icons") rm -rf Faba-Mono Faba-Mono-Dark create_symlink \ $icon_repository/Faba-Mono \ $icon_repository/Faba-Mono-Dark update_icon_cache Faba-Mono Faba-Mono-Dark ;; "suru-plus-dark") rm -rf $icon_directory create_symlink $icon_repository update_icon_cache $(basename $icon_directory) ;; "icons") rm -rf elementary ( cd $icon_repository rm -rf build meson build --prefix=$HOME/.local -D volume_icons=false 1>/dev/null cd build ninja install 1>/dev/null cd .. rm -rf build ) update_icon_cache elementary ;; "icon-theme") rm -rf Pop Pop-Extra mkdir -p Pop Pop-Extra cp --no-preserve=mode,ownership -r "$icon_repository/Papirus/"* Pop/ cp --no-preserve=mode,ownership -r "$icon_repository/Pop Overrides/"* Pop/ bash $icon_repository/icons-recolor.sh Pop 1>/dev/null bash $icon_repository/icons-split.sh Pop Pop-Extra 1>/dev/null update_icon_cache Pop Pop-Extra ;; "wildfire") rm -rf Xenlism-Wildfire-FriDay-Night Xenlism-Wildfire-FriDay Xenlism-Wildfire-MonDay-Night \ Xenlism-Wildfire-MonDay Xenlism-Wildfire-SaturDay-Night Xenlism-Wildfire-SaturDay Xenlism-Wildfire-SunDay-Night \ Xenlism-Wildfire-SunDay Xenlism-Wildfire-ThursDay-Night Xenlism-Wildfire-ThursDay Xenlism-Wildfire-TuesDay-Night \ Xenlism-Wildfire-TuesDay Xenlism-Wildfire-WednesDay-Night Xenlism-Wildfire-WednesDay Xenlism-Wildfire create_symlink \ $icon_repository/icons/Xenlism-Wildfire-FriDay-Night \ $icon_repository/icons/Xenlism-Wildfire-FriDay \ $icon_repository/icons/Xenlism-Wildfire-MonDay-Night \ $icon_repository/icons/Xenlism-Wildfire-MonDay \ $icon_repository/icons/Xenlism-Wildfire-SaturDay-Night \ $icon_repository/icons/Xenlism-Wildfire-SaturDay \ $icon_repository/icons/Xenlism-Wildfire-SunDay-Night \ $icon_repository/icons/Xenlism-Wildfire-SunDay \ $icon_repository/icons/Xenlism-Wildfire-ThursDay-Night \ $icon_repository/icons/Xenlism-Wildfire-ThursDay \ $icon_repository/icons/Xenlism-Wildfire-TuesDay-Night \ $icon_repository/icons/Xenlism-Wildfire-TuesDay \ $icon_repository/icons/Xenlism-Wildfire-WednesDay-Night \ $icon_repository/icons/Xenlism-Wildfire-WednesDay \ $icon_repository/icons/Xenlism-Wildfire update_icon_cache Xenlism-Wildfire-FriDay-Night Xenlism-Wildfire-FriDay Xenlism-Wildfire-MonDay-Night \ Xenlism-Wildfire-MonDay Xenlism-Wildfire-SaturDay-Night Xenlism-Wildfire-SaturDay Xenlism-Wildfire-SunDay-Night \ Xenlism-Wildfire-SunDay Xenlism-Wildfire-ThursDay-Night Xenlism-Wildfire-ThursDay Xenlism-Wildfire-TuesDay-Night \ Xenlism-Wildfire-TuesDay Xenlism-Wildfire-WednesDay-Night Xenlism-Wildfire-WednesDay Xenlism-Wildfire ;; "humanity") rm -rf Humanity Humanity-Dark create_symlink \ $icon_repository/Humanity \ $icon_repository/Humanity-Dark update_icon_cache Humanity Humanity-Dark ;; "ubuntu-themes") rm -rf ubuntu-mono-dark ubuntu-mono-light LoginIcons suru-icons ubuntu-mobile ( cd $icon_repository make 1>/dev/null cp -rf ubuntu-mono-dark ubuntu-mono-light LoginIcons suru-icons ubuntu-mobile $ICONS_DIR/ make clean 1>/dev/null ) update_icon_cache ubuntu-mono-dark ubuntu-mono-light LoginIcons suru-icons ubuntu-mobile ;; *) echo "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡" echo "¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡" echo " $icon_directory" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" ;; esac } function create_symlink() { for icon_directory in $@; do echo "Linking: $icon_directory -> $(pwd)/" ln -sf $icon_directory . done } function update_icon_cache() { for icon_directory in $@; do echo "Updating icon cache: $(pwd)/$icon_directory" gtk-update-icon-cache -q -t -f $(pwd)/$icon_directory 2>/dev/null || true done } function main() { mkdir -p $DIR_REPOSITORIES $ICONS_DIR cd $DIR_REPOSITORIES for URL_REPOSITORY in $URL_REPOSITORIES; do releases=$(echo $URL_REPOSITORY | grep '/releases' || true) if [ -n "$releases" ]; then local icon_directory="$(echo $URL_REPOSITORY | sed 's:/releases.*::' | sed 's:^.*/::')" echo install_icon $icon_directory continue fi bzr=$(echo $URL_REPOSITORY | grep 'lp:' || true) if [ -n "$bzr" ]; then bzr_clone_pull_repository $URL_REPOSITORY continue fi git=$(echo $URL_REPOSITORY | grep 'git' || true) if [ -n "$git" ]; then git_clone_pull_repository $URL_REPOSITORY continue fi done } set -e set -u main