nixos/system/stylix.nix

126 lines
3.4 KiB
Nix
Raw Normal View History

{
lib,
pkgs,
catppuccinVariant ? "Mocha",
...
}: {
stylix = {
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-${lib.strings.toLower catppuccinVariant}.yaml";
autoEnable = false;
targets = {
chromium.enable = true;
console.enable = true;
};
image = ../wallpapers/default.jpg;
polarity = "dark";
opacity = {
applications = 0.85;
desktop = 1.0;
popups = 0.5;
terminal = 0.85;
};
cursor = let
variant = "${lib.strings.toLower catppuccinVariant}Dark";
in {
package = pkgs.catppuccin-cursors.${variant};
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
};
2024-03-02 11:38:59 +00:00
fonts = let
iosevkaCustomBuildPlan = {
noCvSs = false;
exportGlyphNames = false;
ligations.inherits = "dlig";
# variants.inherits = "ss05";
weights = {
Regular = {
shape = 400;
menu = 400;
css = 400;
};
Bold = {
shape = 700;
menu = 700;
css = 700;
};
};
variants.design = {
capital-q = "crossing-curly-tailed";
e = "rounded";
f = "tailed";
g = "double-storey-open";
i = "tailed";
k = "cursive-serifless";
l = "tailed-serifed";
t = "bent-hook-asymmetric";
v = "curly-serifless";
w = "curly-serifless";
x = "curly-serifless";
y = "straight-turn-serifless";
lower-lambda = "tailed-turn";
lower-xi = "flat-top";
lower-chi = "semi-chancery-curly";
zero = "tall-slashed";
three = "flat-top";
six = "straight-bar";
seven = "straight-serifless-crossbar";
eight = "crossing-asymmetric";
nine = "straight-bar";
ampersand = "upper-open";
at = "fourfold";
cent = "through";
percent = "rings-segmented-slash";
lig-ltgteq = "flat";
};
};
in {
sizes = {
applications = 16;
desktop = 20;
popups = 20;
terminal = 16;
};
2024-03-02 11:38:59 +00:00
serif = rec {
name = "Iosevka Custom Etoile";
package = pkgs.iosevka.override {
set = "etoile";
privateBuildPlan = {
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
family = name;
spacing = "quasi-proportional";
serifs = "slab";
};
};
};
sansSerif = rec {
name = "Iosevka Custom Aile";
package = pkgs.iosevka.override {
set = "aile";
privateBuildPlan = {
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
family = name;
spacing = "quasi-proportional";
serifs = "sans";
};
};
};
monospace = rec {
name = "Iosevka Custom";
package = pkgs.iosevka.override {
set = "custom";
privateBuildPlan = {
inherit (iosevkaCustomBuildPlan) noCvSs exportGlyphNames variants weights;
family = name;
spacing = "normal";
serifs = "sans";
};
};
};
emoji = {
name = "Noto Color Emoji";
package = pkgs.noto-fonts-emoji;
};
};
homeManagerIntegration.followSystem = true;
};
}