179 lines
4.9 KiB
Nix
179 lines
4.9 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.custom.settings.stylix;
|
|
hm = config.home-manager.users.${config.custom.username};
|
|
in {
|
|
options.custom.settings.stylix = {
|
|
enable = mkOption {default = false;};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# https://stylix.danth.me/
|
|
# https://stylix.danth.me/configuration.html
|
|
stylix = {
|
|
enable = true;
|
|
autoEnable = true;
|
|
|
|
# https://stylix.danth.me/configuration.html#color-scheme
|
|
# https://github.com/tinted-theming/schemes
|
|
# https://github.com/tinted-theming/schemes/blob/spec-0.11/base16/solarized-dark.yaml
|
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/solarized-dark.yaml";
|
|
|
|
# https://stylix.danth.me/configuration.html#overriding
|
|
# https://github.com/SenchoPens/base16.nix
|
|
override = {};
|
|
|
|
# https://stylix.danth.me/options/platforms/nixos.html#stylixpolarity
|
|
polarity = "dark";
|
|
|
|
# https://stylix.danth.me/options/platforms/nixos.html#stylixcursor
|
|
cursor = {
|
|
# https://github.com/ful1e5/Google_Cursor
|
|
name = "GoogleDot-Black";
|
|
package = pkgs.google-cursor;
|
|
size = 24;
|
|
};
|
|
|
|
# https://stylix.danth.me/options/platforms/nixos.html#stylixfontsemoji
|
|
fonts = {
|
|
emoji = {
|
|
name = "Blobmoji";
|
|
package = pkgs.noto-fonts-emoji-blob-bin;
|
|
};
|
|
|
|
monospace = {
|
|
name = "IosevkaTermSlab NFP Medium";
|
|
package = pkgs.nerd-fonts.iosevka-term-slab;
|
|
};
|
|
|
|
sansSerif = {
|
|
name = "Arvo";
|
|
package = pkgs.google-fonts;
|
|
};
|
|
|
|
serif = {
|
|
name = "Lora";
|
|
package = pkgs.google-fonts;
|
|
};
|
|
|
|
# https://stylix.danth.me/options/platforms/nixos.html#stylixfontssizesapplications
|
|
sizes = {
|
|
applications = 12;
|
|
desktop = 12;
|
|
popups = 12;
|
|
terminal = 14;
|
|
};
|
|
};
|
|
};
|
|
|
|
# Install packages to environment for imperative use
|
|
fonts.packages = with pkgs.nerd-fonts;
|
|
[
|
|
# Monospace
|
|
# https://www.nerdfonts.com/#home
|
|
#?? kitten choose-fonts
|
|
departure-mono
|
|
gohufont
|
|
iosevka-term
|
|
iosevka-term-slab
|
|
jetbrains-mono
|
|
roboto-mono
|
|
shure-tech-mono
|
|
space-mono
|
|
zed-mono
|
|
]
|
|
++ (with pkgs; [
|
|
(google-fonts.override {
|
|
fonts = [
|
|
# Pixel
|
|
"Geo"
|
|
"Silkscreen"
|
|
|
|
# Sans-serif
|
|
"Josefin Sans"
|
|
"Jost"
|
|
"Lexend"
|
|
"Outfit"
|
|
"Roboto"
|
|
"Roboto Flex"
|
|
|
|
# Sans-serif condensed
|
|
"Oswald"
|
|
"Roboto Condensed"
|
|
|
|
# Serif
|
|
"Lora"
|
|
"Roboto Serif"
|
|
|
|
# Slab
|
|
"Aleo"
|
|
"Arvo"
|
|
"Josefin Slab"
|
|
"Roboto Slab"
|
|
"Solway"
|
|
];
|
|
})
|
|
|
|
# Emoji
|
|
noto-fonts-color-emoji
|
|
noto-fonts-emoji-blob-bin
|
|
|
|
# Microsoft
|
|
corefonts
|
|
vistafonts
|
|
|
|
# Fallback
|
|
unifont
|
|
]);
|
|
|
|
home-manager.sharedModules = [
|
|
{
|
|
# https://stylix.danth.me/options/platforms/home_manager.html
|
|
stylix = {
|
|
# https://stylix.danth.me/options/platforms/home_manager.html#stylixiconthemedark
|
|
iconTheme = {
|
|
# BUG: GTK4 apps start slower with Papirus
|
|
# https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/issues/3860
|
|
# https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
|
|
# https://github.com/vinceliuice/Tela-icon-theme
|
|
enable = true;
|
|
dark = "Tela-pink-dark";
|
|
light = "Tela-pink-light";
|
|
package = pkgs.tela-icon-theme;
|
|
};
|
|
|
|
#!! Accent colors are not the same globally, so override each target individually
|
|
# https://github.com/danth/stylix/issues/402
|
|
targets = {
|
|
# TODO: Use gtksourceview target when merged
|
|
# https://github.com/danth/stylix/issues/954
|
|
gnome-text-editor.enable = false;
|
|
|
|
gtk.extraCss = ''
|
|
@define-color accent_color #d33682;
|
|
@define-color accent_bg_color #d33682;
|
|
@define-color window_bg_color #073642;
|
|
@define-color borders #073642;
|
|
@define-color unfocused_borders #073642;
|
|
'';
|
|
|
|
# BUG: Kvantum currently breaks Plasma 6, remove when fixed
|
|
# https://github.com/danth/stylix/issues/835
|
|
qt.enable = false;
|
|
};
|
|
};
|
|
|
|
# BUG: home.pointerCursor breaks XCURSOR_PATH for some child windows, so avoid ${} bashism
|
|
# https://github.com/nix-community/home-manager/blob/59a4c43e9ba6db24698c112720a58a334117de83/modules/config/home-cursor.nix#L154
|
|
home.sessionVariables = {
|
|
XCURSOR_PATH = "$XCURSOR_PATH:${hm.home.profileDirectory}/share/icons";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
}
|