dotfiles/modules/config/theming/catppuccin.nix

362 lines
9.8 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.my.theming;
rosewater = "#f2d5cf";
flamingo = "#eebebe";
pink = "#f4b8e4";
mauve = "#ca9ee6";
red = "#e78284";
maroon = "#ea999c";
peach = "#ef9f76";
yellow = "#e5c890";
green = "#a6d189";
teal = "#81c8be";
sky = "#99d1db";
sapphire = "#85c1dc";
blue = "#8caaee";
lavender = "#babbf1";
text = "#c6d0f5";
subtext1 = "#b5bfe2";
subtext0 = "#a5adce";
overlay2 = "#949cbb";
overlay1 = "#838ba7";
overlay0 = "#737994";
surface2 = "#626880";
surface1 = "#51576d";
surface0 = "#414559";
base = "#303446";
mantle = "#292c3c";
crust = "#232634";
in
{
config = mkIf (cfg.scheme == "catppuccin") {
home-manager.users.moritz = {
programs = {
kitty.extraConfig =
''
# vim:ft=kitty
## name: Catppuccin-Frappe
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/frappe.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #C6D0F5
background #303446
selection_foreground #303446
selection_background ${rosewater}
# Cursor colors
cursor ${rosewater}
cursor_text_color #303446
# URL underline color when hovering with mouse
url_color ${rosewater}
# Kitty window border colors
active_border_color #BABBF1
inactive_border_color #737994
bell_border_color #E5C890
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #232634
active_tab_background ${mauve}
inactive_tab_foreground #C6D0F5
inactive_tab_background #292C3C
tab_bar_background #232634
# Colors for marks (marked text in the terminal)
mark1_foreground #303446
mark1_background #BABBF1
mark2_foreground #303446
mark2_background ${mauve}
mark3_foreground #303446
mark3_background #85C1DC
# The 16 terminal colors
# black
color0 #51576D
color8 #626880
# red
color1 ${red}
color9 ${red}
# green
color2 #A6D189
color10 #A6D189
# yellow
color3 #E5C890
color11 #E5C890
# blue
color4 #8CAAEE
color12 #8CAAEE
# magenta
color5 ${pink}
color13 ${pink}
# cyan
color6 #81C8BE
color14 #81C8BE
# white
color7 #B5BFE2
color15 #A5ADCE
'';
zathura.extraConfig = ''
set window-title-basename "true"
set selection-clipboard "clipboard"
set default-fg "#C6D0F5"
set default-bg "#303446"
set completion-bg "#414559"
set completion-fg "#C6D0F5"
set completion-highlight-bg "#575268"
set completion-highlight-fg "#C6D0F5"
set completion-group-bg "#414559"
set completion-group-fg "#8CAAEE"
set statusbar-fg "#C6D0F5"
set statusbar-bg "#414559"
set notification-bg "#414559"
set notification-fg "#C6D0F5"
set notification-error-bg "#414559"
set notification-error-fg "${red}"
set notification-warning-bg "#414559"
set notification-warning-fg "#FAE3B0"
set inputbar-fg "#C6D0F5"
set inputbar-bg "#414559"
set recolor-lightcolor "#303446"
set recolor-darkcolor "#C6D0F5"
set index-fg "#C6D0F5"
set index-bg "#303446"
set index-active-fg "#C6D0F5"
set index-active-bg "#414559"
set render-loading-bg "#303446"
set render-loading-fg "#C6D0F5"
set highlight-color "#575268"
set highlight-fg "${pink}"
set highlight-active-color "${pink}"
'';
rofi = {
theme = "custom";
extraConfig = {
show-icons = true;
terminal = "alacritty";
drun-display-format = "{icon} {name}";
location = 0;
disable-history = false;
hide-scrollbar = true;
display-drun = " Apps ";
display-run = " Run ";
display-window = " Window";
display-Network = " 󰤨 Network";
sidebar-mode = true;
};
};
};
xsession.windowManager.bspwm = {
settings = {
focused_border_color = mauve;
normal_border_color = base;
active_border_color = base;
};
};
services = {
dunst.settings = {
global = {
# Defines color of the frame around the notification window.
frame_color = blue;
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = "frame";
};
urgency_low = {
background = base;
foreground = text;
};
urgency_normal = {
background = base;
foreground = text;
};
urgency_critical = {
background = base;
foreground = text;
frame_color = peach;
};
};
polybar = {
config = {
"bar/bottom" = {
background = base;
foreground = text;
border-color = base;
};
"module/bspwm" = {
label-focused-foreground = pink;
label-occupied-foreground = overlay1;
label-urgent-foreground = maroon;
label-empty-foreground = overlay1;
label-separator-foreground = base;
};
"module/cpu" = {
format-foreground = base;
format-background = green;
};
"module/time" = {
format-foreground = base;
format-background = blue;
};
"module/date" = {
format-foreground = base;
format-background = peach;
};
"module/memory" = {
format-foreground = base;
format-background = blue;
};
"module/pulseaudio" = {
format-volume-foreground = base;
format-volume-background = mauve;
label-muted = "%{F${red}} %{F${base}}muted";
format-muted-foreground = base;
format-muted-background = red;
};
"module/network" = {
format-connected-foreground = base;
format-connected-background = mauve;
};
};
};
};
xdg.configFile."rofi/custom.rasi".text = ''
* {
bg-col: #303446;
bg-col-light: #303446;
border-col: #303446;
selected-col: #303446;
blue: #8caaee;
fg-col: #c6d0f5;
fg-col2: ${red};
grey: #737994;
width: 900;
font: "JetBrainsMono Nerd Font 14";
}
element-text, element-icon , mode-switcher {
background-color: inherit;
text-color: inherit;
}
window {
height: 360px;
border: 3px;
border-color: @border-col;
background-color: @bg-col;
}
mainbox {
background-color: @bg-col;
}
inputbar {
children: [prompt,entry];
background-color: @bg-col;
border-radius: 5px;
padding: 2px;
}
prompt {
background-color: @blue;
padding: 6px;
text-color: @bg-col;
border-radius: 3px;
margin: 20px 0px 0px 20px;
}
textbox-prompt-colon {
expand: false;
str: ":";
}
entry {
padding: 6px;
margin: 20px 0px 0px 10px;
text-color: @fg-col;
background-color: @bg-col;
}
listview {
border: 0px 0px 0px;
padding: 6px 0px 0px;
margin: 10px 0px 0px 20px;
columns: 2;
lines: 5;
background-color: @bg-col;
}
element {
padding: 5px;
background-color: @bg-col;
text-color: @fg-col ;
}
element-icon {
size: 25px;
}
element selected {
background-color: @selected-col ;
text-color: @fg-col2 ;
}
mode-switcher {
spacing: 0;
}
button {
padding: 10px;
background-color: @bg-col-light;
text-color: @grey;
vertical-align: 0.5;
horizontal-align: 0.5;
}
button selected {
background-color: @bg-col;
text-color: @blue;
}
'';
};
};
}