dotfiles/modules/config/theming/catppuccin.nix

430 lines
11 KiB
Nix

{ config
, lib
, pkgs
, rosewater
, flamingo
, pink
, mauve
, red
, maroon
, peach
, yellow
, green
, teal
, sky
, sapphire
, blue
, lavender
, text
, subtext1
, subtext0
, overlay2
, overlay1
, overlay0
, surface2
, surface1
, surface0
, base
, mantle
, crust
}:
with lib;
let
cfg = config.my.theming;
in
{
home-manager.users.moritz = {
programs = {
fzf.colors = {
"bg+" = "#${surface0}";
"fg+" = "#${text}";
"hl+" = "#${red}";
bg = "#${base}";
fg = "#${text}";
header = "#${red}";
hl = "#${red}";
info = "#${mauve}";
marker = "#${rosewater}";
pointer = "#${rosewater}";
prompt = "#${mauve}";
spinner = "#${rosewater}";
};
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 #${text}
background #${base}
selection_foreground #${base}
selection_background #${rosewater}
# Cursor colors
cursor #${rosewater}
cursor_text_color #${base}
# URL underline color when hovering with mouse
url_color #${rosewater}
# Kitty window border colors
active_border_color #${lavender}
inactive_border_color #${overlay0}
bell_border_color #${yellow}
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #${crust}
active_tab_background #${mauve}
inactive_tab_foreground #${text}
inactive_tab_background #${mantle}
tab_bar_background #${crust}
# Colors for marks (marked text in the terminal)
mark1_foreground #${base}
mark1_background #${lavender}
mark2_foreground #${base}
mark2_background #${mauve}
mark3_foreground #${base}
mark3_background #${sapphire}
# The 16 terminal colors
# black
color0 #${surface1}
color8 #${surface2}
# red
color1 #${red}
color9 #${red}
# green
color2 #${green}
color10 #${green}
# yellow
color3 #${yellow}
color11 #${yellow}
# blue
color4 #${blue}
color12 #${blue}
# magenta
color5 #${pink}
color13 #${pink}
# cyan
color6 #${teal}
color14 #${teal}
# white
color7 #${subtext1}
color15 #${subtext0}
'';
zathura.extraConfig = ''
set window-title-basename "true"
set selection-clipboard "clipboard"
set default-fg "#${text}"
set default-bg "#${base}"
set completion-bg "#${surface0}"
set completion-fg "#${text}"
set completion-highlight-bg "#575268"
set completion-highlight-fg "#${text}"
set completion-group-bg "#${surface0}"
set completion-group-fg "#${blue}"
set statusbar-fg "#${text}"
set statusbar-bg "#${surface0}"
set notification-bg "#${surface0}"
set notification-fg "#${text}"
set notification-error-bg "#${surface0}"
set notification-error-fg "#${red}"
set notification-warning-bg "#${surface0}"
set notification-warning-fg "#FAE3B0"
set inputbar-fg "#${text}"
set inputbar-bg "#${surface0}"
set recolor-lightcolor "#${base}"
set recolor-darkcolor "#${text}"
set index-fg "#${text}"
set index-bg "#${base}"
set index-active-fg "#${text}"
set index-active-bg "#${surface0}"
set render-loading-bg "#${base}"
set render-loading-fg "#${text}"
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 = " muted";
format-muted-foreground = base;
format-muted-background = red;
};
"module/network" = {
format-connected-foreground = base;
format-connected-background = mauve;
};
"module/battery" = {
format-charging-foreground = base;
format-charging-background = green;
format-full-foreground = base;
format-full-background = green;
format-discharging-foreground = base;
format-discharging-background = red;
};
};
};
};
xdg.configFile = {
"fish/conf.d/theme.fish".text = ''
# Catppuccin color palette
# --> special
set -l foreground ${text}
set -l selection ${surface0}
# --> palette
set -l teal ${teal}
set -l flamingo ${flamingo}
set -l mauve ${mauve}
set -l pink ${pink}
set -l red ${red}
set -l peach ${peach}
set -l green ${green}
set -l yellow ${yellow}
set -l blue ${blue}
set -l gray ${overlay0}
# Syntax Highlighting
set -g fish_color_normal $foreground
set -g fish_color_command $blue
set -g fish_color_param $flamingo
set -g fish_color_keyword $red
set -g fish_color_quote $green
set -g fish_color_redirection $pink
set -g fish_color_end $peach
set -g fish_color_error $red
set -g fish_color_gray $gray
set -g fish_color_selection --background=$selection
set -g fish_color_search_match --background=$selection
set -g fish_color_operator $pink
set -g fish_color_escape $flamingo
set -g fish_color_autosuggestion $gray
set -g fish_color_cancel $red
# Prompt
set -g fish_color_cwd $yellow
set -g fish_color_user $teal
set -g fish_color_host $blue
# Completion Pager
set -g fish_pager_color_progress $gray
set -g fish_pager_color_prefix $pink
set -g fish_pager_color_completion $foreground
set -g fish_pager_color_description $gray
'';
"rofi/custom.rasi".text = ''
* {
bg-col: #${base};
bg-col-light: #${base};
border-col: #${base};
selected-col: #${base};
blue: #${blue};
fg-col: #${text};
fg-col2: #${red};
grey: #${overlay0};
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;
}
'';
};
};
}