252 lines
8 KiB
Nix
252 lines
8 KiB
Nix
# This is ABSOLUTE GARGABE, KDE srsly, remove this!
|
|
# props to catppuccin mocha for sparing me from doing this manually: https://github.com/catppuccin/kde/blob/main/Resources/Base.colors
|
|
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
inputs,
|
|
...
|
|
}: let
|
|
base16 = pkgs.callPackage inputs.base16.lib {};
|
|
|
|
baseScheme = base16.mkSchemeAttrs config.stylix.base16Scheme;
|
|
power = number: powerIndex:
|
|
if powerIndex == 1
|
|
then number
|
|
else if powerIndex == 0
|
|
then 1
|
|
else number * power number (powerIndex - 1);
|
|
|
|
lookupTable = powerIndex: {
|
|
"0" = 0 * (power 16 powerIndex);
|
|
"1" = 1 * (power 16 powerIndex);
|
|
"2" = 2 * (power 16 powerIndex);
|
|
"3" = 3 * (power 16 powerIndex);
|
|
"4" = 4 * (power 16 powerIndex);
|
|
"5" = 5 * (power 16 powerIndex);
|
|
"6" = 6 * (power 16 powerIndex);
|
|
"7" = 7 * (power 16 powerIndex);
|
|
"8" = 8 * (power 16 powerIndex);
|
|
"9" = 9 * (power 16 powerIndex);
|
|
"a" = 10 * (power 16 powerIndex);
|
|
"b" = 11 * (power 16 powerIndex);
|
|
"c" = 12 * (power 16 powerIndex);
|
|
"d" = 13 * (power 16 powerIndex);
|
|
"e" = 14 * (power 16 powerIndex);
|
|
"f" = 15 * (power 16 powerIndex);
|
|
};
|
|
|
|
convertHex = hexChars:
|
|
recombineColors [
|
|
(convertColor (lib.lists.take 2 hexChars))
|
|
(convertColor (lib.lists.take 2 (lib.lists.drop 2 hexChars)))
|
|
(convertColor (lib.lists.take 2 (lib.lists.drop 4 hexChars)))
|
|
];
|
|
|
|
convertColor = color: (lookupTable 1).${(lib.lists.head color)} + (lookupTable 0).${(lib.lists.last color)};
|
|
recombineColors = colors: lib.lists.foldr (a: b: (toString a) + "," + (toString b)) "end" colors;
|
|
|
|
scheme = {
|
|
base00 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base00)
|
|
);
|
|
base01 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base01)
|
|
);
|
|
base02 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base02)
|
|
);
|
|
base03 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base03)
|
|
);
|
|
base04 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base04)
|
|
);
|
|
base05 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base05)
|
|
);
|
|
base06 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base06)
|
|
);
|
|
base07 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base07)
|
|
);
|
|
base08 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base08)
|
|
);
|
|
base09 = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base09)
|
|
);
|
|
base0A = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0A)
|
|
);
|
|
base0B = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0B)
|
|
);
|
|
base0C = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0C)
|
|
);
|
|
base0D = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0D)
|
|
);
|
|
base0E = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0E)
|
|
);
|
|
base0F = lib.strings.removeSuffix ",end" (
|
|
convertHex (lib.strings.stringToCharacters baseScheme.base0F)
|
|
);
|
|
};
|
|
in {
|
|
# temp
|
|
# crust -> surface1
|
|
# subtext0 -> surface2
|
|
# accentColor -> lavender
|
|
xdg.configFile."kdeglobals" = {
|
|
text = ''
|
|
[ColorEffects:Disabled]
|
|
Color=${scheme.base01}
|
|
ColorAmount=0.30000000000000004
|
|
ColorEffect=2
|
|
ContrastAmount=0.1
|
|
ContrastEffect=0
|
|
IntensityAmount=-1
|
|
IntensityEffect=0
|
|
|
|
[ColorEffects:Inactive]
|
|
ChangeSelectionColor=true
|
|
Color=${scheme.base01}
|
|
ColorAmount=0.5
|
|
ColorEffect=3
|
|
ContrastAmount=0
|
|
ContrastEffect=0
|
|
Enable=true
|
|
IntensityAmount=0
|
|
IntensityEffect=0
|
|
|
|
[Colors:Button]
|
|
BackgroundAlternate=${scheme.base07}
|
|
BackgroundNormal=${scheme.base02}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:Complementary]
|
|
BackgroundAlternate=${scheme.base03}
|
|
BackgroundNormal=${scheme.base00}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:Header]
|
|
BackgroundAlternate=${scheme.base03}
|
|
BackgroundNormal=${scheme.base00}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:Selection]
|
|
BackgroundAlternate=${scheme.base07}
|
|
BackgroundNormal=${scheme.base07}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundInactive=${scheme.base00}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base03}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:Tooltip]
|
|
BackgroundAlternate=27,25,35
|
|
BackgroundNormal=${scheme.base01}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:View]
|
|
BackgroundAlternate=${scheme.base00}
|
|
BackgroundNormal=${scheme.base01}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[Colors:Window]
|
|
BackgroundAlternate=${scheme.base03}
|
|
BackgroundNormal=${scheme.base00}
|
|
DecorationFocus=${scheme.base07}
|
|
DecorationHover=${scheme.base02}
|
|
ForegroundActive=${scheme.base09}
|
|
ForegroundInactive=${scheme.base04}
|
|
ForegroundLink=${scheme.base07}
|
|
ForegroundNegative=${scheme.base08}
|
|
ForegroundNeutral=${scheme.base0A}
|
|
ForegroundNormal=${scheme.base05}
|
|
ForegroundPositive=${scheme.base0B}
|
|
ForegroundVisited=${scheme.base0E}
|
|
|
|
|
|
[General]
|
|
ColorScheme=CustomBase16Nix
|
|
Name=CustomBase16Nix
|
|
accentActiveTitlebar=false
|
|
shadeSortColumn=true
|
|
|
|
|
|
[KDE]
|
|
contrast=4
|
|
|
|
|
|
[WM]
|
|
activeBackground=${scheme.base01}
|
|
activeBlend=${scheme.base05}
|
|
activeForeground=${scheme.base05}
|
|
inactiveBackground=${scheme.base03}
|
|
inactiveBlend=${scheme.base04}
|
|
inactiveForeground=${scheme.base04}
|
|
'';
|
|
};
|
|
}
|