Merge pull request #215569 from michaelBelsanti/catppuccin-kde

catppuccin-kde: unstable-2022-11-26 -> 0.2.2

authored by

Nick Cao and committed by
GitHub
c1c35233 8dafae7c

+293 -7
+30 -7
pkgs/data/themes/catppuccin-kde/default.nix
··· 1 1 { lib 2 2 , stdenvNoCC 3 3 , fetchFromGitHub 4 + , flavour ? [ "frappe" ] 5 + , accents ? [ "blue" ] 6 + , winDecStyles ? [ "modern" ] 4 7 }: 5 8 9 + let 10 + validFlavours = [ "mocha" "macchiato" "frappe" "latte" ]; 11 + validAccents = [ "rosewater" "flamingo" "pink" "mauve" "red" "maroon" "peach" "yellow" "green" "teal" "sky" "sapphire" "blue" "lavender" ]; 12 + validWinDecStyles = [ "modern" "classic" ]; 13 + 14 + installScript = ./install.sh; 15 + in 16 + 17 + lib.checkListOfEnum "Invalid accent, valid accents are ${toString validAccents}" validAccents accents 18 + lib.checkListOfEnum "Invalid flavour, valid flavours are ${toString validFlavours}" validFlavours flavour 19 + lib.checkListOfEnum "Invalid window decoration style, valid styles are ${toString validWinDecStyles}" validWinDecStyles winDecStyles 20 + 6 21 stdenvNoCC.mkDerivation rec { 7 22 pname = "kde"; 8 - version = "unstable-2022-11-26"; 23 + version = "0.2.2"; 9 24 10 25 src = fetchFromGitHub { 11 26 owner = "catppuccin"; 12 27 repo = pname; 13 - rev = "249df3ec0cdae79af379f4a10b802c50feac89ba"; 14 - hash = "sha256-CH9GJnFqqdyIzW7VfGb3oB1YPULEZsfK3d1eyFALwKc="; 28 + rev = "v${version}"; 29 + hash = "sha256-P5mLLaQzMhG6aHvAj9SizUFQFLjqNKj1T1kQ4dgiacI="; 15 30 }; 16 31 17 32 installPhase = '' 18 - mkdir -p $out/share/{plasma/look-and-feel,color-schemes} 19 - find . -type f -name "Catppuccin*.colors" -exec cp "{}" $out/share/color-schemes \; 20 - find . -type f -name "*.tar.gz" -exec tar -xzf "{}" \; 21 - cp -R Catppuccin-* $out/share/plasma/look-and-feel 33 + runHook preInstall 34 + 35 + patchShebangs . 36 + for WINDECSTYLE in ${toString winDecStyles}; do 37 + for FLAVOUR in ${toString flavour}; do 38 + for ACCENT in ${toString accents}; do 39 + FLAVOUR=$FLAVOUR ACCENT=$ACCENT WINDECSTYLE=$WINDECSTYLE bash ${installScript} 40 + done; 41 + done; 42 + done; 43 + 44 + runHook postInstall 22 45 ''; 23 46 24 47 meta = with lib; {
+263
pkgs/data/themes/catppuccin-kde/install.sh
··· 1 + COLORDIR=$out/share/color-schemes 2 + AURORAEDIR=$out/share/aurorae/themes 3 + LOOKANDFEELDIR=$out/share/plasma/look-and-feel 4 + DESKTOPTHEMEDIR=$out/share/plasma/desktoptheme 5 + 6 + FLAVOUR=${FLAVOUR^} 7 + ACCENT=${ACCENT^} 8 + WINDECSTYLE=${WINDECSTYLE^} 9 + 10 + echo "Creating theme directories.." 11 + mkdir -p $COLORDIR 12 + mkdir -p $AURORAEDIR 13 + mkdir -p $LOOKANDFEELDIR 14 + mkdir -p $DESKTOPTHEMEDIR 15 + mkdir ./dist 16 + 17 + # Sets accent based on the pallet selected (Best to fold this in your respective editor) 18 + if [[ $ACCENT == "Rosewater" ]]; then 19 + if [[ $FLAVOUR == "Mocha" ]]; then 20 + ACCENTCOLOR=#f5e0dc 21 + elif [[ $FLAVOUR == "Macchiato" ]]; then 22 + ACCENTCOLOR=#f4dbd6 23 + elif [[ $FLAVOUR == "Frappe" ]]; then 24 + ACCENTCOLOR=#f2d5cf 25 + elif [[ $FLAVOUR == "Latte" ]]; then 26 + ACCENTCOLOR=#dc8a78 27 + fi 28 + echo "Accent Rosewater(1) was selected!" 29 + elif [[ $ACCENT == "Flamingo" ]]; then 30 + if [[ $FLAVOUR == "Mocha" ]]; then 31 + ACCENTCOLOR=#f2cdcd 32 + elif [[ $FLAVOUR == "Macchiato" ]]; then 33 + ACCENTCOLOR=#f0c6c6 34 + elif [[ $FLAVOUR == "Frappe" ]]; then 35 + ACCENTCOLOR=#eebebe 36 + elif [[ $FLAVOUR == "Latte" ]]; then 37 + ACCENTCOLOR=#dd7878 38 + fi 39 + echo "Accent Flamingo(2) was selected!" 40 + ACCENT="2" 41 + elif [[ $ACCENT == "Pink" ]]; then 42 + if [[ $FLAVOUR == "Mocha" ]]; then 43 + ACCENTCOLOR=#f5c2e7 44 + elif [[ $FLAVOUR == "Macchiato" ]]; then 45 + ACCENTCOLOR=#f5bde6 46 + elif [[ $FLAVOUR == "Frappe" ]]; then 47 + ACCENTCOLOR=#f4b8e4 48 + elif [[ $FLAVOUR == "Latte" ]]; then 49 + ACCENTCOLOR=#ea76cb 50 + fi 51 + echo "Accent Pink(3) was selected!" 52 + elif [[ $ACCENT == "Mauve" ]]; then 53 + if [[ $FLAVOUR == "Mocha" ]]; then 54 + ACCENTCOLOR=#cba6f7 55 + elif [[ $FLAVOUR == "Macchiato" ]]; then 56 + ACCENTCOLOR=#c6a0f6 57 + elif [[ $FLAVOUR == "Frappe" ]]; then 58 + ACCENTCOLOR=#ca9ee6 59 + elif [[ $FLAVOUR == "Latte" ]]; then 60 + ACCENTCOLOR=#8839ef 61 + fi 62 + echo "Accent Mauve(4) was selected!" 63 + elif [[ $ACCENT == "Red" ]]; then 64 + if [[ $FLAVOUR == "Mocha" ]]; then 65 + ACCENTCOLOR=#f38ba8 66 + elif [[ $FLAVOUR == "Macchiato" ]]; then 67 + ACCENTCOLOR=#ed8796 68 + elif [[ $FLAVOUR == "Frappe" ]]; then 69 + ACCENTCOLOR=#e78284 70 + elif [[ $FLAVOUR == "Latte" ]]; then 71 + ACCENTCOLOR=#d20f39 72 + fi 73 + echo "Accent Red(5) was selected!" 74 + elif [[ $ACCENT == "Maroon" ]]; then 75 + if [[ $FLAVOUR == "Mocha" ]]; then 76 + ACCENTCOLOR=#eba0ac 77 + elif [[ $FLAVOUR == "Macchiato" ]]; then 78 + ACCENTCOLOR=#ee99a0 79 + elif [[ $FLAVOUR == "Frappe" ]]; then 80 + ACCENTCOLOR=#ea999c 81 + elif [[ $FLAVOUR == "Latte" ]]; then 82 + ACCENTCOLOR=#e64553 83 + fi 84 + echo "Accent Maroon(6) was selected!" 85 + elif [[ $ACCENT == "Peach" ]]; then 86 + if [[ $FLAVOUR == "Mocha" ]]; then 87 + ACCENTCOLOR=#fab387 88 + elif [[ $FLAVOUR == "Macchiato" ]]; then 89 + ACCENTCOLOR=#f5a97f 90 + elif [[ $FLAVOUR == "Frappe" ]]; then 91 + ACCENTCOLOR=#ef9f76 92 + elif [[ $FLAVOUR == "Latte" ]]; then 93 + ACCENTCOLOR=#fe640b 94 + fi 95 + echo "Accent Peach(7) was selected!" 96 + elif [[ $ACCENT == "Yellow" ]]; then 97 + if [[ $FLAVOUR == "Mocha" ]]; then 98 + ACCENTCOLOR=#f9e2af 99 + elif [[ $FLAVOUR == "Macchiato" ]]; then 100 + ACCENTCOLOR=#eed49f 101 + elif [[ $FLAVOUR == "Frappe" ]]; then 102 + ACCENTCOLOR=#e5c890 103 + elif [[ $FLAVOUR == "Latte" ]]; then 104 + ACCENTCOLOR=#df8e1d 105 + fi 106 + echo "Accent Yellow(8) was selected!" 107 + elif [[ $ACCENT == "Green" ]]; then 108 + if [[ $FLAVOUR == "Mocha" ]]; then 109 + ACCENTCOLOR=#a6e3a1 110 + elif [[ $FLAVOUR == "Macchiato" ]]; then 111 + ACCENTCOLOR=#a6da95 112 + elif [[ $FLAVOUR == "Frappe" ]]; then 113 + ACCENTCOLOR=#a6d189 114 + elif [[ $FLAVOUR == "Latte" ]]; then 115 + ACCENTCOLOR=#40a02b 116 + fi 117 + echo "Accent Green(9) was selected!" 118 + elif [[ $ACCENT == "Teal" ]]; then 119 + if [[ $FLAVOUR == "Mocha" ]]; then 120 + ACCENTCOLOR=#94e2d5 121 + elif [[ $FLAVOUR == "Macchiato" ]]; then 122 + ACCENTCOLOR=#8bd5ca 123 + elif [[ $FLAVOUR == "Frappe" ]]; then 124 + ACCENTCOLOR=#81c8be 125 + elif [[ $FLAVOUR == "Latte" ]]; then 126 + ACCENTCOLOR=#179299 127 + fi 128 + echo "Accent Teal(10) was selected!" 129 + elif [[ $ACCENT == "Sky" ]]; then 130 + if [[ $FLAVOUR == "Mocha" ]]; then 131 + ACCENTCOLOR=#89dceb 132 + elif [[ $FLAVOUR == "Macchiato" ]]; then 133 + ACCENTCOLOR=#91d7e3 134 + elif [[ $FLAVOUR == "Frappe" ]]; then 135 + ACCENTCOLOR=#99d1db 136 + elif [[ $FLAVOUR == "Latte" ]]; then 137 + ACCENTCOLOR=#04a5e5 138 + fi 139 + echo "Accent Sky(11) was selected!" 140 + elif [[ $ACCENT == "Sapphire" ]]; then 141 + if [[ $FLAVOUR == "Mocha" ]]; then 142 + ACCENTCOLOR=#74c7ec 143 + elif [[ $FLAVOUR == "Macchiato" ]]; then 144 + ACCENTCOLOR=#7dc4e4 145 + elif [[ $FLAVOUR == "Frappe" ]]; then 146 + ACCENTCOLOR=#85c1dc 147 + elif [[ $FLAVOUR == "Latte" ]]; then 148 + ACCENTCOLOR=#209fb5 149 + fi 150 + echo "Accent Sapphire(12) was selected!" 151 + elif [[ $ACCENT == "Blue" ]]; then 152 + if [[ $FLAVOUR == "Mocha" ]]; then 153 + ACCENTCOLOR=#89b4fa 154 + elif [[ $FLAVOUR == "Macchiato" ]]; then 155 + ACCENTCOLOR=#8aadf4 156 + elif [[ $FLAVOUR == "Frappe" ]]; then 157 + ACCENTCOLOR=#8caaee 158 + elif [[ $FLAVOUR == "Latte" ]]; then 159 + ACCENTCOLOR=#1e66f5 160 + fi 161 + echo "Accent Blue(13) was selected!" 162 + elif [[ $ACCENT == "Lavender" ]]; then 163 + if [[ $FLAVOUR == "Mocha" ]]; then 164 + ACCENTCOLOR=#b4befe 165 + elif [[ $FLAVOUR == "Macchiato" ]]; then 166 + ACCENTCOLOR=#b7bdf8 167 + elif [[ $FLAVOUR == "Frappe" ]]; then 168 + ACCENTCOLOR=#babbf1 169 + elif [[ $FLAVOUR == "Latte" ]]; then 170 + ACCENTCOLOR=#7287fd 171 + fi 172 + echo "Accent Lavender(14) was selected!" 173 + else echo "Not a valid accent" && exit 174 + fi 175 + 176 + if [[ $WINDECSTYLE == "Modern" ]]; then 177 + WINDECSTYLECODE=__aurorae__svg__Catppuccin$FLAVOUR-Modern 178 + elif [[ $WINDECSTYLE == "Classic" ]]; then 179 + WINDECSTYLECODE=__aurorae__svg__Catppuccin$FLAVOUR-Classic 180 + fi 181 + 182 + function ModifyLightlyPlasma { 183 + 184 + rm -rf $DESKTOPTHEMEDIR/lightly-plasma-git/icons/* 185 + rm -rf $DESKTOPTHEMEDIR/lightly-plasma-git/translucent 186 + rm $DESKTOPTHEMEDIR/lightly-plasma-git/widgets/tabbar.svgz 187 + rm $DESKTOPTHEMEDIR/lightly-plasma-git/dialogs/background.svgz 188 + 189 + # Copy Patches 190 + cp $DESKTOPTHEMEDIR/lightly-plasma-git/solid/* $DESKTOPTHEMEDIR/lightly-plasma-git -Rf 191 + cp ./Patches/glowbar.svg $DESKTOPTHEMEDIR/lightly-plasma-git/widgets -rf 192 + cp ./Patches/background.svg $DESKTOPTHEMEDIR/lightly-plasma-git/widgets -rf 193 + cp ./Patches/panel-background.svgz $DESKTOPTHEMEDIR/lightly-plasma-git/widgets 194 + 195 + # Modify description to state that it has been modified by the KDE Catppuccin Installer 196 + sed -e s/A\ plasma\ style\ with\ close\ to\ the\ look\ of\ the\ newest\ Lightly./*MODIFIED\ BY\ CATPPUCCIN\ KDE\ INSTALLER*\ A\ plasma\ style\ with\ close\ to\ the\ look\ of\ the\ newest\ Lightly./g $DESKTOPTHEMEDIR/lightly-plasma-git/metadata.desktop >> $DESKTOPTHEMEDIR/lightly-plasma-git/newMetadata.desktop 197 + cp -f $DESKTOPTHEMEDIR/metadata.desktop $DESKTOPTHEMEDIR/lightly-plasma-git/metadata.desktop && rm $DESKTOPTHEMEDIR/metadata.desktop 198 + } 199 + 200 + function AuroraeInstall { 201 + if [[ $WINDECSTYLE == "Modern" ]]; then 202 + cp ./Resources/aurorae/Catppuccin$FLAVOUR-Modern $AURORAEDIR -r; 203 + elif [[ $WINDECSTYLE == "Classic" ]]; then 204 + cp ./Resources/aurorae/Catppuccin$FLAVOUR-Classic $AURORAEDIR -r; 205 + fi 206 + } 207 + 208 + function BuildColorscheme { 209 + # Add Metadata & Replace Accent in colors file 210 + sed -e s/--accentColor/$ACCENTCOLOR/g -e s/--flavour/$FLAVOUR/g -e s/--accentName/$ACCENT/g ./Resources/base.colors > ./dist/base.colors 211 + # Hydrate Metadata with Pallet + Accent Info 212 + sed -e s/--accentName/$ACCENT/g -e s/--flavour/$FLAVOUR/g ./Resources/metadata.desktop > ./dist/Catppuccin-$FLAVOUR-$ACCENT/metadata.desktop 213 + # Modify 'defaults' to set the correct Aurorae Theme 214 + sed -e s/--accentName/$ACCENT/g -e s/--flavour/$FLAVOUR/g -e s/--aurorae/$WINDECSTYLECODE/g ./Resources/defaults > ./dist/Catppuccin-$FLAVOUR-$ACCENT/contents/defaults 215 + # Hydrate Dummy colors according to Pallet 216 + FLAVOURNAME=$FLAVOUR ACCENTNAME=$ACCENT ./Installer/color-build.sh -o ./dist/Catppuccin$FLAVOUR$ACCENT.colors -s ./dist/base.colors 217 + } 218 + 219 + function BuildSplashScreen { 220 + # Hydrate Dummy colors according to Pallet 221 + FLAVOURNAME=$FLAVOUR ./Installer/color-build.sh -s ./Resources/splash/images/busywidget.svg -o ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg 222 + # Replace Accent in colors file 223 + sed ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg -e s/REPLACE--ACCENT/$ACCENTCOLOR/g > ./dist/$GLOBALTHEMENAME/contents/splash/images/busywidget.svg 224 + # Cleanup temporary file 225 + rm ./dist/$GLOBALTHEMENAME/contents/splash/images/_busywidget.svg 226 + # Hydrate Dummy colors according to Pallet (QML file) 227 + FLAVOURNAME=$FLAVOUR ./Installer/color-build.sh -s ./Resources/splash/Splash.qml -o ./dist/$GLOBALTHEMENAME/contents/splash/Splash.qml 228 + # Add CTP Logo 229 + # TODO: Switch between latte & mocha logo based on Pallet 230 + cp ./Resources/splash/images/Logo.png ./dist/$GLOBALTHEMENAME/contents/splash/images 231 + } 232 + 233 + # Prepare Global Theme Folder 234 + GLOBALTHEMENAME="Catppuccin-$FLAVOUR-$ACCENT" 235 + cp -r ./Resources/Catppuccin-$FLAVOUR-Global ./dist/$GLOBALTHEMENAME 236 + mkdir -p ./dist/$GLOBALTHEMENAME/contents/splash/images 237 + 238 + # Build SplashScreen 239 + echo "Building SplashScreen.." 240 + BuildSplashScreen 241 + 242 + # Build Colorscheme 243 + echo "Building Colorscheme.." 244 + # Generate Color scheme 245 + BuildColorscheme 246 + 247 + # Install Colorscheme 248 + echo "Installing Colorscheme.." 249 + mv ./dist/Catppuccin$FLAVOUR$ACCENT.colors $COLORDIR 250 + 251 + # Install Global Theme. 252 + echo "Installing Global Theme.." 253 + cp -r ./dist/$GLOBALTHEMENAME $LOOKANDFEELDIR 254 + 255 + # echo "Modifying lightly plasma theme.." 256 + # ModifyLightlyPlasma 257 + 258 + echo "Installing aurorae theme.." 259 + AuroraeInstall 260 + 261 + # Cleanup 262 + echo "Cleaning up.." 263 + rm -rf ./dist