nix-config/packages/catppuccin-sddm-corners/default.nix

176 lines
5.1 KiB
Nix

{ lib
, stdenvNoCC
, fetchFromGitHub
, writeText
, config ? {}
}:
let
defaultConfig = {
General = {
### GENERAL
# path to the wallpaper. you can drop files in backgrounds/ to use a relative path, or you can just use an absolute path.
Background="backgrounds/flatppuccin_macchiato.png";
# the font to use throughout the theme. use the name of the font family.
Font="Liga SFMono Nerd Font";
# the distance that stuff should be from the screen edge.
Padding="50";
# specify how round corners should be, or set to 0 to disable rounded corners.
CornerRadius="5";
# the font size used for everything excluding the date and time.
GeneralFontSize="9";
# this allows you to adjust the relative scale of UI elements. you should probably keep the value below 1.
LoginScale="0.175";
### USER PICTURE
# the width of the outline around the user avatar. set to 0 to disable.
UserPictureBorderWidth="5";
# the color of the outline around the user avatar.
UserPictureBorderColor="#c0caf5";
# the color of the default, blank avatar. note that this isonly visible when you don't have a custom picture set.
UserPictureColor="#414868";
### TEXT FIELD (USER AND PASSWORD)
# the color of the text field background for the user and password fields.
TextFieldColor="#414868";
# the color of the text inside the user and password fields.
TextFieldTextColor="#c0caf5";
# the color of the border around the currently selected text field.
TextFieldHighlightColor="#c0caf5";
# the border width of the currently selected text field. set to 0 to disable the border.
TextFieldHighlightWidth="3";
# the placeholder text shown in the user field when nothing is typed.
UserFieldBgText="User";
# the placeholder text shown in the password field when nothing is typed.
PasswordFieldBgText="Password";
### LOGIN BUTTON
# the color of the login button text.
LoginButtonTextColor="#414868";
# the color of the login button background.
LoginButtonBgColor="#c0caf5";
# the text to be displayed on the login button.
LoginButtonText="Login";
### POPUP (POWER, SESSION, AND USER)
# the background color of the popup. this applies to the power panel, session panel, and user panel.
PopupBgColor="#c0caf5";
# the color of the currently selected entry in the popup. this applies to the power panel, session panel, and user panel.
PopupHighlightColor="#414868";
# the color of the text for the currently selectedoption. only applies to session and user popups.
PopupHighlightedTextColor="#c0caf5";
### SESSION BUTTON
# the color of the session button background.
SessionButtonColor="#c0caf5";
# the color of the icon inside the session button.
SessionIconColor="#414868";
### POWER BUTTON
# the color of the power button background.
PowerButtonColor="#c0caf5";
# the color of the power button background.
PowerIconColor="#414868";
### DATE
# the text color of the date.
DateColor="#c0caf5";
# the font size of the date.
DateSize="36";
# whether the date is bolded. accepts either `true` or `false`.
DateIsBold="false";
# whether the date is bolded. accepts either `true` or `false`.
DateOpacity="0.8";
# specify the formatting of the date.
DateFormat="dddd, MMMM d";
### TIME
# the text color of the time.
TimeColor="#c0caf5";
# the font size of the time.
TimeSize="48";
# whether the time is bolded. accepts either `true` or `false`.
TimeIsBold="true";
# the opacity of the time text. set to 1 to disable transparency.
TimeOpacity="0.8";
# specify the formatting of the time.
TimeFormat="hh:mm AP";
};
};
mergedConfig = lib.attrsets.recursiveUpdate defaultConfig config;
in stdenvNoCC.mkDerivation {
pname = "catppuccin-sddm-corners";
version = "unstable-2023-02-17";
src = fetchFromGitHub {
owner = "khaneliman";
repo = "catppuccin-sddm-corners";
rev = "7b7a86ee9a5a2905e7e6623d2af5922ce890ef79";
hash = "sha256-sTnt8RarNXz3RmYfmx4rD+nMlY8rr2n0EN3ntPzOurw=";
};
dontConfigure = true;
dontBuild = true;
installPhase = let
configFile = writeText "catppuccin-sddm-corners-theme-conf" (lib.generators.toINI {
# specifies how to format a key/value pair
mkKeyValue = lib.generators.mkKeyValueDefault {
mkValueString = v: ''"${builtins.toString v}"'';
} " = ";
} mergedConfig);
in ''
runHook preInstall
cp ${configFile} catppuccin/theme.conf
mkdir -p "$out/share/sddm/themes/"
cp -r catppuccin/ "$out/share/sddm/themes/catppuccin-sddm-corners"
runHook postInstall
'';
meta = {
description = "Soothing pastel theme for SDDM based on corners theme.";
homepage = "https://github.com/khaneliman/sddm-catppuccin-corners";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ khaneliman ];
platforms = lib.platforms.linux;
};
}