uhhh the 2nd rendition
This commit is contained in:
Reid 2024-03-28 20:45:53 -07:00
parent 132a109da8
commit 565aac949c
37 changed files with 2606 additions and 36 deletions

View file

@ -0,0 +1,69 @@
{ inputs, config, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.desktop.themes;
accent = "pink";
variant = "mocha";
in {
config = mkIf (cfg.active == "catppuccin") {
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
modules.desktop.themes = {
dark = true;
gtkTheme = {
name = "Catppuccin-Mocha-Compact-Pink-Dark"; # TODO: put accent in here
package = pkgs.catppuccin-gtk.override {
variant = variant;
accents = [ accent ];
tweaks = [ "rimless" ];
size = "compact";
};
};
iconTheme = {
name = "WhiteSur-dark";
package = pkgs.whitesur-icon-theme;
};
cursorTheme = {
name = "graphite-dark";
package = pkgs.graphite-cursors;
};
sddmTheme = {
name = "catppuccin-sddm-corners";
package = (pkgs.my.catppuccin-sddm-corners.override {
config.General = {
Background = ../../../../assets/lockscreen.png;
Font = config.modules.desktop.fonts.fonts.sansSerif.family;
};
});
};
editor = {
vscode = {
colorTheme = {
name = "Catppuccin Mocha";
extension = (pkgs.vscode-extensions.catppuccin.catppuccin-vsc.override {
accent = accent;
boldKeywords = false;
italicComments = false;
italicKeywords = false;
extraBordersEnabled = false;
workbenchMode = "flat";
bracketMode = "rainbow";
});
};
iconTheme = {
name = "material-icon-theme";
extension = pkgs.vscode-extensions.pkief.material-icon-theme;
};
};
};
hyprland = "${inputs.hyprland-catppuccin}/themes/${variant}.conf";
};
};
}

View file

@ -0,0 +1,88 @@
{ lib, config, ... }:
with lib;
with lib.my;
let
cfg = config.modules.desktop.themes;
in {
options.modules.desktop.themes = with types; {
active = mkOption {
type = types.nullOr types.str;
default = null;
description = "Name of the theme to apply; see modules/desktop/themes for a list of valid options";
};
dark = mkOpt bool false;
gtkTheme = {
name = mkOpt str "";
package = mkPackageOption pkgs "gtk" {};
};
iconTheme = {
name = mkOpt str "";
package = mkPackageOption pkgs "icon" {};
};
cursorTheme = {
name = mkOpt str "";
package = mkPackageOption pkgs "cursor" {};
};
sddmTheme = {
name = mkOpt str "";
package = mkPackageOption pkgs "sddm" {};
};
editor = {
vscode = {
colorTheme = {
name = mkOpt str "";
extension = mkPackageOption pkgs "extension" {};
};
iconTheme = {
name = mkOpt str "";
extension = mkPackageOption pkgs "extension" {};
};
};
};
hyprland = mkOpt (nullOr str) null;
};
config = mkIf (cfg.active != null) {
programs.dconf.enable = true;
hm.dconf = {
enable = true;
settings."org/gnome/desktop/interface".color-scheme = mkIf cfg.dark "prefer-dark";
settings."org/gnome/desktop/interface".gtk-theme = cfg.gtkTheme.name;
settings."org/gnome/desktop/interface".icon-theme = cfg.iconTheme.name;
settings."org/gnome/desktop/interface".cursor-theme = cfg.cursorTheme.name;
settings."org/gnome/shell/extensions/user-theme".name = cfg.gtkTheme.name;
};
hm.gtk = {
enable = true;
cursorTheme = cfg.cursorTheme;
iconTheme = cfg.iconTheme;
theme = cfg.gtkTheme;
};
hm.services.dunst.iconTheme = {
name = cfg.iconTheme.name;
package = cfg.iconTheme.package;
};
hm.programs.vscode = {
extensions = [
cfg.editor.vscode.colorTheme.extension
cfg.editor.vscode.iconTheme.extension
];
userSettings = {
"workbench.colorTheme" = cfg.editor.vscode.colorTheme.name;
"workbench.iconTheme" = cfg.editor.vscode.iconTheme.name;
};
};
hm.wayland.windowManager.hyprland.settings.source = mkIf (cfg.hyprland != null) [ cfg.hyprland ];
};
}