1
0
Fork 0
mirror of https://git.sr.ht/~neverness/ultima synced 2025-01-07 22:13:52 +00:00
ultima/modules/home/themes/stylix/default.nix
2024-12-06 21:57:22 +09:00

98 lines
2.1 KiB
Nix

{ pkgs, lib, config, inputs, True, False, ... }:
with lib;
let
cfg = config.module.themes.stylix;
wal = inputs.design;
in {
options = {
module.themes.stylix = {
enable = mkEnableOption "";
theme = mkOption {
default = null;
type = types.str;
};
image = mkOption {
default = null;
type = types.str;
};
cursor = {
bg = mkOption {
default = null;
type = types.str;
};
ol = mkOption {
default = null;
type = types.str;
};
ac = mkOption {
default = null;
type = types.str;
};
};
};
};
imports = with inputs; [
stylix.homeManagerModules.stylix
../../../colors.nix
];
config = mkIf cfg.enable {
stylix = True // {
autoEnable = false;
image = "${wal}/wallpapers/paradise/${cfg.image}.jpg";
cursor = with inputs.cursors; {
size = 16;
name = "GoogleDot-Custom";
package = packages.${pkgs.system}.google-cursor.override {
background_color = cfg.cursor.bg;
outline_color = cfg.cursor.ol;
accent_color = cfg.cursor.ac;
};
};
fonts = let
font = {
name = "JetBrainsMono Nerd Font";
package = (pkgs.callPackage ../nerdfonts/default.nix {
fonts = [ "JetBrainsMono" ];
});
};
in {
serif = font;
monospace = font;
emoji = font;
sizes = {
desktop = 10;
popups = 10;
applications = 12;
terminal = 12;
};
};
targets = {
# CLI
tmux = True;
fish = True;
nushell = True;
# WM
hyprland = True;
sway = True;
foot = True;
kitty = True;
mako = False;
# TOOLS
nixvim = True;
yazi = True;
fzf = True;
bat = True;
mangohud = True;
# GUI
vesktop = True;
qutebrowser = True;
firefox = True;
gtk = True;
};
};
};
}