Install this version:
emerge -a =x11-themes/whitesur-icon-theme-20251227
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =x11-themes/whitesur-icon-theme-20251227
Or alternatively:
emerge --autounmask-write -a =x11-themes/whitesur-icon-theme-20251227
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DESCRIPTION="MacOS Big Sur style icon theme for Linux desktops"
HOMEPAGE="https://github.com/vinceliuice/WhiteSur-icon-theme"
MY_TAG="2025-12-27"
SRC_URI="https://github.com/vinceliuice/WhiteSur-icon-theme/archive/refs/tags/${MY_TAG}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/WhiteSur-icon-theme-${MY_TAG}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="alternative bold kde +purple +pink +red +orange +yellow +green +grey +nord"
RDEPEND="dev-util/gtk-update-icon-cache"
# Translate USE flags to theme suffix strings
_theme_variants() {
local themes=( '' ) # default (blue) is always included
use purple && themes+=( '-purple' )
use pink && themes+=( '-pink' )
use red && themes+=( '-red' )
use orange && themes+=( '-orange' )
use yellow && themes+=( '-yellow' )
use green && themes+=( '-green' )
use grey && themes+=( '-grey' )
use nord && themes+=( '-nord' )
echo "${themes[@]}"
}
# Install one (theme, color) variant.
# $1 = theme suffix e.g. '' or '-purple'
# $2 = color suffix: '' | '-light' | '-dark'
_install_variant() {
local theme=${1} color=${2}
local name=WhiteSur
local dest="${ED}/usr/share/icons"
local THEME_DIR="${dest}/${name}${theme}${color}"
local BASE_DIR="${dest}/${name}${theme}" # used for symlinks from light/dark
mkdir -p "${THEME_DIR}" || die
# --- index.theme ---
cp "${S}/src/index.theme" "${THEME_DIR}/index.theme" || die
sed -i "s/WhiteSur/${name}${theme}${color}/g" \
"${THEME_DIR}/index.theme" || die
if [[ -z "${color}" ]]; then
# -------------------------------------------------------
# Standard variant
# -------------------------------------------------------
mkdir -p "${THEME_DIR}/status" || die
cp -r "${S}"/src/{actions,animations,apps,categories,devices,emotes,emblems,mimes,places,preferences} \
"${THEME_DIR}/" || die
cp -r "${S}"/src/status/{16,22,24,32,symbolic} \
"${THEME_DIR}/status/" || die
# bold panel icons (replaces 16/22/24 status sizes)
if use bold; then
cp -r "${S}"/bold/status/{16,22,24} \
"${THEME_DIR}/status/" || die
fi
# alternative app/file-manager icons
if use alternative; then
cp -r "${S}"/alternative/. "${THEME_DIR}/" || die
fi
# kde plasma logo replaces apple logo
if use kde; then
cp -r "${S}"/plasma/. "${THEME_DIR}/" || die
fi
# coloured folder icons
if [[ -n "${theme}" ]]; then
cp -r "${S}"/colors/color${theme}/*.svg \
"${THEME_DIR}/places/scalable/" || die
fi
# symbolic links for icon name aliases
cp -r "${S}"/links/{actions,apps,categories,devices,emotes,emblems,mimes,places,preferences} \
"${THEME_DIR}/" || die
mkdir -p "${THEME_DIR}/status" || die
cp -r "${S}"/links/status/{16,22,24,32,symbolic} \
"${THEME_DIR}/status/" || die
# remove dark-only trash icons from standard variant
rm -f "${THEME_DIR}"/status/16/trash-full-dark.svg \
"${THEME_DIR}"/status/16/trash-empty-dark.svg || die
elif [[ "${color}" == '-light' ]]; then
# -------------------------------------------------------
# Light variant — only status icons, recoloured;
# everything else symlinks back to the base theme dir.
# -------------------------------------------------------
mkdir -p "${THEME_DIR}/status" || die
cp -r "${S}"/src/status/{16,22,24,32,symbolic} \
"${THEME_DIR}/status/" || die
# recolour: white (#f2f2f2) → near-black (#363636)
find "${THEME_DIR}/status" -name '*.svg' -exec \
sed -i 's/#f2f2f2/#363636/g' {} + || die
cp -r "${S}"/links/status/{16,22,24,32,symbolic} \
"${THEME_DIR}/status/" || die
# symlink all non-status categories to the base theme
local cat
for cat in actions animations apps categories devices emotes \
emblems mimes places preferences; do
ln -sr "${BASE_DIR}/${cat}" "${THEME_DIR}/${cat}" || die
done
elif [[ "${color}" == '-dark' ]]; then
# -------------------------------------------------------
# Dark variant — only status icons, recoloured;
# everything else symlinks back to the base theme dir.
# -------------------------------------------------------
mkdir -p "${THEME_DIR}/status" || die
cp -r "${S}"/src/status/{16,22,24,32} \
"${THEME_DIR}/status/" || die
# recolour: near-black (#363636) → light grey (#dedede)
find "${THEME_DIR}/status" -name '*.svg' -exec \
sed -i 's/#363636/#dedede/g' {} + || die
# rename dark-variant trash icons into place
local size
for size in 16; do
if [[ -f "${THEME_DIR}/status/${size}/trash-full-dark.svg" ]]; then
mv "${THEME_DIR}/status/${size}/trash-full-dark.svg" \
"${THEME_DIR}/status/${size}/trash-full.svg" || die
fi
if [[ -f "${THEME_DIR}/status/${size}/trash-empty-dark.svg" ]]; then
mv "${THEME_DIR}/status/${size}/trash-empty-dark.svg" \
"${THEME_DIR}/status/${size}/trash-empty.svg" || die
fi
done
cp -r "${S}"/links/status/{16,22,24,32} \
"${THEME_DIR}/status/" || die
# symlink all non-status categories to the base theme
local cat
for cat in actions animations apps categories devices emotes \
emblems mimes places preferences; do
ln -sr "${BASE_DIR}/${cat}" "${THEME_DIR}/${cat}" || die
done
fi
# HiDPI @2x symlinks for every installed directory
local dir
for dir in "${THEME_DIR}"/*/; do
[[ -d "${dir}" ]] || continue
local dname="${dir%/}"
dname="${dname##*/}"
ln -sr "${THEME_DIR}/${dname}" "${THEME_DIR}/${dname}@2x" || die
done
}
src_install() {
local theme
for theme in $(_theme_variants); do
local color
for color in '' '-light' '-dark'; do
_install_variant "${theme}" "${color}"
done
done
dodoc AUTHORS README.md
}
pkg_postinst() {
local theme
for theme in "${EROOT}"/usr/share/icons/WhiteSur*/; do
[[ -d "${theme}" ]] && gtk-update-icon-cache -qf "${theme}"
done
}
pkg_postrm() {
local theme
for theme in "${EROOT}"/usr/share/icons/WhiteSur*/; do
[[ -d "${theme}" ]] && gtk-update-icon-cache -qf "${theme}"
done
}
Manage flags for this package:
euse -i <flag> -p x11-themes/whitesur-icon-theme |
euse -E <flag> -p x11-themes/whitesur-icon-theme |
euse -D <flag> -p x11-themes/whitesur-icon-theme
dev-util/gtk-update-icon-cache
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | whitesur-icon-theme-20251227.tar.gz | 7829669 bytes | https://github.com/vinceliuice/WhiteSur-icon-theme/archive/refs/tags/2025-12-27.tar.gz |