{pkgs, config, lib, ...}: let cfg = config.nix-config.style; in { options.nix-config.style = { cursor = { size = lib.mkOption { type = lib.types.int; default = 35; description = "Size of the cursor in pixels."; }; }; fontSizes = { applications = lib.mkOption { type = lib.types.int; default = 12; description = "Font size for applications."; }; desktop = lib.mkOption { type = lib.types.int; default = 12; description = "Font size for desktop icons."; }; popups = lib.mkOption { type = lib.types.int; default = 12; description = "Font size for popups."; }; terminal = lib.mkOption { type = lib.types.int; default = 12; description = "Font size for terminal."; }; }; terminalOpacity = lib.mkOption { type = lib.types.float; default = 0.8; description = "Terminal default opacity"; }; monospaceFont = lib.mkOption { type = lib.types.str; default = "FiraCode Nerd Font Mono"; description = "Monospace font. Needs to be installed."; }; }; config = { stylix = { # Stylix is already enabled since the system is configured to use it # enable = true; # don't theme applications by default autoEnable = false; cursor = { package = pkgs.apple-cursor; name = "macOS"; size = cfg.cursor.size; }; iconTheme = { enable = true; package = pkgs.tela-icon-theme; }; image = ./../../wallpapers/magicpattern-87PP9Zd7MNo-unsplash.jpg; fonts = { serif = { package = pkgs.dejavu_fonts; name = "DejaVu Serif"; }; sansSerif = { package = pkgs.dejavu_fonts; name = "DejaVu Sans"; }; monospace = { package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }; name = cfg.monospaceFont; }; emoji = { package = pkgs.noto-fonts-emoji; name = "Noto Color Emoji"; }; sizes = { applications = cfg.fontSizes.applications; desktop = cfg.fontSizes.desktop; popups = cfg.fontSizes.popups; terminal = cfg.fontSizes.terminal; }; }; opacity = { applications = 1.0; desktop = 1.0; popups = 0.9; terminal = cfg.terminalOpacity; }; }; stylix.base16Scheme = { scheme = "onelight"; author = "https://github.com/one-dark"; base00 = "#fafafa"; base01 = "#f4f4f4"; base02 = "#e5e5e6"; base03 = "#dfdfe0"; base04 = "#d7d7d8"; base05 = "#383a42"; base06 = "#202227"; base07 = "#090a0b"; base08 = "#d84a3d"; base09 = "#a626a4"; base0A = "#c18401"; base0B = "#50a14f"; base0C = "#0070a8"; base0D = "#4078f2"; base0E = "#a626a4"; base0F = "#986801"; }; stylix.targets = { hyprpaper.enable = true; hyprlock.enable = true; gnome.enable = true; # disabled because they overwrite too many settings # wofi.enable = true; # vscode.enable = true; # waybar.enable = true; # kitty.enable = true; }; }; }