437 lines
14 KiB
Nix
437 lines
14 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.my.theming;
|
|
|
|
background = "282a36";
|
|
currentLine = "44475a";
|
|
foreground = "f8f8f2";
|
|
comment = "6272a4";
|
|
cyan = "8be9fd";
|
|
green = "50fa7b";
|
|
orange = "ffb86c";
|
|
pink = "ff79c6";
|
|
purple = "bd93f9";
|
|
red = "ff5555";
|
|
yellow = "f1fa8c";
|
|
in
|
|
{
|
|
config = mkIf (cfg.enable && cfg.scheme == "dracula") {
|
|
home-manager.users.moritz = {
|
|
programs = {
|
|
fzf.colors = {
|
|
"bg+" = "#${currentLine}";
|
|
"fg+" = "#${foreground}";
|
|
"hl+" = "#${purple}";
|
|
bg = "#${background}";
|
|
fg = "#${foreground}";
|
|
header = "#${comment}";
|
|
hl = "#${purple}";
|
|
info = "#${orange}";
|
|
marker = "#${pink}";
|
|
pointer = "#${pink}";
|
|
prompt = "#${green}";
|
|
spinner = "#${orange}";
|
|
};
|
|
kitty.extraConfig =
|
|
''
|
|
# https://draculatheme.com/kitty
|
|
foreground #f8f8f2
|
|
background #282a36
|
|
selection_foreground #ffffff
|
|
selection_background #44475a
|
|
|
|
url_color #8be9fd
|
|
|
|
# black
|
|
color0 #21222c
|
|
color8 #6272a4
|
|
|
|
# red
|
|
color1 #ff5555
|
|
color9 #ff6e6e
|
|
|
|
# green
|
|
color2 #50fa7b
|
|
color10 #69ff94
|
|
|
|
# yellow
|
|
color3 #f1fa8c
|
|
color11 #ffffa5
|
|
|
|
# blue
|
|
color4 #bd93f9
|
|
color12 #d6acff
|
|
|
|
# magenta
|
|
color5 #ff79c6
|
|
color13 #ff92df
|
|
|
|
# cyan
|
|
color6 #8be9fd
|
|
color14 #a4ffff
|
|
|
|
# white
|
|
color7 #f8f8f2
|
|
color15 #ffffff
|
|
|
|
# Cursor colors
|
|
cursor #f8f8f2
|
|
cursor_text_color background
|
|
|
|
# Tab bar colors
|
|
active_tab_foreground #282a36
|
|
active_tab_background #f8f8f2
|
|
inactive_tab_foreground #282a36
|
|
inactive_tab_background #6272a4
|
|
|
|
# Marks
|
|
mark1_foreground #282a36
|
|
mark1_background #ff5555
|
|
|
|
# Splits/Windows
|
|
active_border_color #f8f8f2
|
|
inactive_border_color #6272a4
|
|
'';
|
|
zathura.extraConfig = ''
|
|
set window-title-basename "true"
|
|
set selection-clipboard "clipboard"
|
|
|
|
# Dracula color theme for Zathura
|
|
# Swaps Foreground for Background to get a light version if the user prefers
|
|
|
|
#
|
|
# Dracula color theme
|
|
#
|
|
|
|
set notification-error-bg "#ff5555" # Red
|
|
set notification-error-fg "#f8f8f2" # Foreground
|
|
set notification-warning-bg "#ffb86c" # Orange
|
|
set notification-warning-fg "#44475a" # Selection
|
|
set notification-bg "#282a36" # Background
|
|
set notification-fg "#f8f8f2" # Foreground
|
|
|
|
set completion-bg "#282a36" # Background
|
|
set completion-fg "#6272a4" # Comment
|
|
set completion-group-bg "#282a36" # Background
|
|
set completion-group-fg "#6272a4" # Comment
|
|
set completion-highlight-bg "#44475a" # Selection
|
|
set completion-highlight-fg "#f8f8f2" # Foreground
|
|
|
|
set index-bg "#282a36" # Background
|
|
set index-fg "#f8f8f2" # Foreground
|
|
set index-active-bg "#44475a" # Current Line
|
|
set index-active-fg "#f8f8f2" # Foreground
|
|
|
|
set inputbar-bg "#282a36" # Background
|
|
set inputbar-fg "#f8f8f2" # Foreground
|
|
set statusbar-bg "#282a36" # Background
|
|
set statusbar-fg "#f8f8f2" # Foreground
|
|
|
|
set highlight-color "#ffb86c" # Orange
|
|
set highlight-active-color "#ff79c6" # Pink
|
|
|
|
set default-bg "#282a36" # Background
|
|
set default-fg "#f8f8f2" # Foreground
|
|
|
|
set render-loading true
|
|
set render-loading-fg "#282a36" # Background
|
|
set render-loading-bg "#f8f8f2" # Foreground
|
|
|
|
#
|
|
# Recolor mode settings
|
|
#
|
|
|
|
set recolor-lightcolor "#282a36" # Background
|
|
set recolor-darkcolor "#f8f8f2" # Foreground
|
|
|
|
#
|
|
# Startup options
|
|
#
|
|
set adjust-open width
|
|
set recolor true
|
|
'';
|
|
rofi.theme = "dracula";
|
|
};
|
|
xsession.windowManager.bspwm = {
|
|
settings = {
|
|
focused_border_color = "#${purple}";
|
|
normal_border_color = "#${background}";
|
|
active_border_color = "#${background}";
|
|
};
|
|
};
|
|
services = {
|
|
dunst.settings = {
|
|
global = {
|
|
# Defines color of the frame around the notification window.
|
|
frame_color = "#282a36";
|
|
|
|
# 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 = "#282a36";
|
|
foreground = "#6272a4";
|
|
timeout = 10;
|
|
};
|
|
urgency_normal = {
|
|
background = "#282a36";
|
|
foreground = "#bd93f9";
|
|
timeout = 10;
|
|
};
|
|
urgency_critical = {
|
|
background = "#ff5555";
|
|
foreground = "#f8f8f2";
|
|
timeout = 0;
|
|
};
|
|
};
|
|
polybar = {
|
|
config = {
|
|
"bar/bottom" = {
|
|
background = "#${background}";
|
|
foreground = "#${foreground}";
|
|
border-color = "#${background}";
|
|
};
|
|
"module/bspwm" = {
|
|
label-focused-foreground = "#${pink}";
|
|
label-occupied-foreground = "#${comment}";
|
|
label-urgent-foreground = "#${red}";
|
|
label-empty-foreground = "#${currentLine}";
|
|
label-separator-foreground = "#${background}";
|
|
};
|
|
"module/cpu" = {
|
|
format-foreground = "#${background}";
|
|
format-background = "#${green}";
|
|
};
|
|
"module/time" = {
|
|
format-foreground = "#${background}";
|
|
format-background = "#${cyan}";
|
|
};
|
|
"module/date" = {
|
|
format-foreground = "#${background}";
|
|
format-background = "#${yellow}";
|
|
};
|
|
"module/memory" = {
|
|
format-foreground = "#${background}";
|
|
format-background = "#${cyan}";
|
|
};
|
|
"module/pulseaudio" = {
|
|
format-volume-foreground = "#${background}";
|
|
format-volume-background = "#${purple}";
|
|
label-muted = "%{F#${red}}婢 %{F#${background}}muted";
|
|
format-muted-foreground = "#${background}";
|
|
format-muted-background = "#${red}";
|
|
};
|
|
"module/network" = {
|
|
format-connected-foreground = "#${background}";
|
|
format-connected-background = "#${purple}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
xdg.configFile = {
|
|
"fish/conf.d/theme.fish".text = ''
|
|
# Dracula Color Palette
|
|
set -l foreground f8f8f2
|
|
set -l selection 44475a
|
|
set -l comment 6272a4
|
|
set -l red ff5555
|
|
set -l orange ffb86c
|
|
set -l yellow f1fa8c
|
|
set -l green 50fa7b
|
|
set -l purple bd93f9
|
|
set -l cyan 8be9fd
|
|
set -l pink ff79c6
|
|
|
|
# Syntax Highlighting Colors
|
|
set -gx fish_color_normal $foreground
|
|
set -gx fish_color_command $cyan
|
|
set -gx fish_color_keyword $pink
|
|
set -gx fish_color_quote $yellow
|
|
set -gx fish_color_redirection $foreground
|
|
set -gx fish_color_end $orange
|
|
set -gx fish_color_error $red
|
|
set -gx fish_color_param $purple
|
|
set -gx fish_color_comment $comment
|
|
set -gx fish_color_selection --background=$selection
|
|
set -gx fish_color_search_match --background=$selection
|
|
set -gx fish_color_operator $green
|
|
set -gx fish_color_escape $pink
|
|
set -gx fish_color_autosuggestion $comment
|
|
set -gx fish_color_cancel $red --reverse
|
|
set -gx fish_color_option $orange
|
|
|
|
# Default Prompt Colors
|
|
set -gx fish_color_cwd $green
|
|
set -gx fish_color_host $purple
|
|
set -gx fish_color_host_remote $purple
|
|
set -gx fish_color_user $cyan
|
|
|
|
# Completion Pager Colors
|
|
set -gx fish_pager_color_progress $comment
|
|
set -gx fish_pager_color_background
|
|
set -gx fish_pager_color_prefix $cyan
|
|
set -gx fish_pager_color_completion $foreground
|
|
set -gx fish_pager_color_description $comment
|
|
set -gx fish_pager_color_selected_background --background=$selection
|
|
set -gx fish_pager_color_selected_prefix $cyan
|
|
set -gx fish_pager_color_selected_completion $foreground
|
|
set -gx fish_pager_color_selected_description $comment
|
|
set -gx fish_pager_color_secondary_background
|
|
set -gx fish_pager_color_secondary_prefix $cyan
|
|
set -gx fish_pager_color_secondary_completion $foreground
|
|
set -gx fish_pager_color_secondary_description $comment
|
|
'';
|
|
"rofi/dracula.rasi".text = ''
|
|
* {
|
|
/* Dracula theme colour palette */
|
|
drac-bgd: #282a36;
|
|
drac-cur: #44475a;
|
|
drac-fgd: #f8f8f2;
|
|
drac-cmt: #6272a4;
|
|
drac-cya: #8be9fd;
|
|
drac-grn: #50fa7b;
|
|
drac-ora: #ffb86c;
|
|
drac-pnk: #ff79c6;
|
|
drac-pur: #bd93f9;
|
|
drac-red: #ff5555;
|
|
drac-yel: #f1fa8c;
|
|
|
|
font: "FiraCode Nerd Font Mono 13";
|
|
|
|
foreground: @drac-fgd;
|
|
background-color: @drac-bgd;
|
|
active-background: @drac-pnk;
|
|
urgent-foreground: @foreground;
|
|
urgent-background: @drac-red;
|
|
|
|
selected-background: @active-background;
|
|
selected-urgent-background: @urgent-background;
|
|
selected-active-background: @active-background;
|
|
separatorcolor: @active-background;
|
|
bordercolor: #6272a4;
|
|
}
|
|
|
|
#window {
|
|
background-color: @background-color;
|
|
border: 3;
|
|
border-radius: 6;
|
|
border-color: @bordercolor;
|
|
padding: 5;
|
|
}
|
|
#mainbox {
|
|
border: 0;
|
|
padding: 5;
|
|
}
|
|
#message {
|
|
border: 1px dash 0px 0px ;
|
|
border-color: @separatorcolor;
|
|
padding: 1px ;
|
|
}
|
|
#textbox {
|
|
text-color: @foreground;
|
|
}
|
|
#listview {
|
|
fixed-height: 0;
|
|
border: 2px dash 0px 0px ;
|
|
border-color: @bordercolor;
|
|
spacing: 2px ;
|
|
scrollbar: false;
|
|
padding: 2px 0px 0px ;
|
|
}
|
|
#element {
|
|
border: 0;
|
|
padding: 1px ;
|
|
}
|
|
#element.normal.normal {
|
|
background-color: @background-color;
|
|
text-color: @foreground;
|
|
}
|
|
#element.normal.urgent {
|
|
background-color: @urgent-background;
|
|
text-color: @urgent-foreground;
|
|
}
|
|
#element.normal.active {
|
|
background-color: @active-background;
|
|
text-color: @background-color;
|
|
}
|
|
#element.selected.normal {
|
|
background-color: @selected-background;
|
|
text-color: @foreground;
|
|
}
|
|
#element.selected.urgent {
|
|
background-color: @selected-urgent-background;
|
|
text-color: @foreground;
|
|
}
|
|
#element.selected.active {
|
|
background-color: @selected-active-background;
|
|
text-color: @background-color;
|
|
}
|
|
#element.alternate.normal {
|
|
background-color: @background-color;
|
|
text-color: @foreground;
|
|
}
|
|
#element.alternate.urgent {
|
|
background-color: @urgent-background;
|
|
text-color: @foreground;
|
|
}
|
|
#element.alternate.active {
|
|
background-color: @active-background;
|
|
text-color: @foreground;
|
|
}
|
|
#scrollbar {
|
|
width: 2px ;
|
|
border: 0;
|
|
handle-width: 8px ;
|
|
padding: 0;
|
|
}
|
|
#sidebar {
|
|
border: 2px dash 0px 0px ;
|
|
border-color: @separatorcolor;
|
|
}
|
|
#button.selected {
|
|
background-color: @selected-background;
|
|
text-color: @foreground;
|
|
}
|
|
#inputbar {
|
|
spacing: 0;
|
|
text-color: @foreground;
|
|
padding: 1px ;
|
|
}
|
|
#case-indicator {
|
|
spacing: 0;
|
|
text-color: @foreground;
|
|
}
|
|
#entry {
|
|
spacing: 0;
|
|
text-color: @drac-cya;
|
|
}
|
|
#prompt {
|
|
spacing: 0;
|
|
text-color: @drac-grn;
|
|
}
|
|
#inputbar {
|
|
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
|
}
|
|
#textbox-prompt-colon {
|
|
expand: false;
|
|
str: ":";
|
|
margin: 0px 0.3em 0em 0em ;
|
|
text-color: @drac-grn;
|
|
}
|
|
element-text, element-icon {
|
|
background-color: inherit;
|
|
text-color: inherit;
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|