176 lines
5.1 KiB
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;
|
|
};
|
|
}
|