{ 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 ''; tmux.plugins = with pkgs.tmuxPlugins; [ dracula ]; 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; } ''; }; }; }; }