Files
nixos-config/modules/home/stylix.nix

90 lines
2.4 KiB
Nix

{
inputs,
config,
pkgs,
...
}:
{
imports = [
inputs.stylix.homeModules.stylix
];
# Not really using stylix as it was intended because IMO it sets too many defaults for some
# programs and not enought for others, meaning I wind up setting a lot myself anyway. That
# being said it provides a nice structure for setting fonts, cursors, icons, etc.
stylix = {
enable = true;
autoEnable = false;
polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml";
cursor = {
name = "catppuccin-mocha-dark-cursors";
package = pkgs.catppuccin-cursors.mochaDark;
size = 16;
};
# For some reason setting the fonts' package option doesn't work.
# Just use home.packages instead
fonts = {
monospace.name = "JetBrainsMono Nerd Font";
sansSerif.name = "Noto Sans";
emoji.name = "Noto Color Emoji";
sizes = {
applications = 12;
terminal = 12;
};
};
icons = {
enable = true;
package = pkgs.morewaita-icon-theme;
light = "MoreWaita";
dark = "MoreWaita";
};
};
# Fonts
home.packages = with pkgs; [
nerd-fonts.jetbrains-mono
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
];
gtk = {
enable = true;
colorScheme = config.stylix.polarity;
# iconTheme is set by default by stylix.icons.enable
theme = {
name = "adw-gtk3-${config.stylix.polarity}";
package = pkgs.adw-gtk3;
};
};
qt =
let
qt_settings = ver: {
Appearance = {
color_scheme_path = "${config.xdg.configHome}/${ver}/colors/noctalia.conf";
custom_palette = true;
icon_theme = config.stylix.icons.${config.stylix.polarity};
standard_dialogs = "xdgdesktopportal";
style = "Breeze";
};
Fonts = {
fixed = "\"${config.stylix.fonts.monospace.name},${toString config.stylix.fonts.sizes.applications}\"";
general = "\"${config.stylix.fonts.sansSerif.name},${toString config.stylix.fonts.sizes.applications}\"";
};
};
in
{
enable = true;
platformTheme.name = "qtct";
style.name = "breeze";
qt5ctSettings = qt_settings "qt5ct";
qt6ctSettings = qt_settings "qt6ct";
};
home.sessionVariables = {
QS_ICON_THEME = config.stylix.icons.${config.stylix.polarity};
};
}