1

Add catpuccin theme

This commit is contained in:
2023-06-10 20:12:56 +02:00
parent 666d4e7c7e
commit 8db67b862c
13 changed files with 547 additions and 95 deletions

View File

@ -87,13 +87,18 @@ rec {
hyprland = {
enable = true;
theme = "Three-Bears";
# theme = "Three-Bears";
theme = "Foggy-Lake";
keybindings = {
main-mod = "SUPER";
bindings = {
"$mainMod, E" = ["exec, kitty fish -c \"nnncd -a -P p\""];
"$mainMod, T" = ["exec, kitty"];
"$mainMod, E" = ["exec, kitty"];
# "$mainMod, T" = ["exec, alacritty -o font.size=12 -e tmux"];
# "$mainMod, E" = ["exec, alacritty -o font.size=12 -e tmux"];
"$mainMod, P" = ["exec, hyprpicker -a"];
"$mainMod, S" = ["exec, grim -g \"$(slurp)\""];
"$mainMod CTRL, S" = ["exec, grim -g \"$(slurp)\" - | wl-copy"];
@ -104,6 +109,7 @@ rec {
"kdeconnect-indicator"
"nextcloud --background"
"keepassxc"
# "alacritty -o font.size=12 -e tmux"
"kitty"
# "md.obsidian.Obsidian"
# "firefox"
@ -138,6 +144,7 @@ rec {
transparent = [
"kitty"
"Alacritty"
"discord"
"Spotify"
"obsidian"
@ -181,7 +188,8 @@ rec {
rofi = {
enable = true;
theme = "Three-Bears";
# theme = "Three-Bears";
theme = "Foggy-Lake";
};
vscode.enable = true;
@ -251,6 +259,7 @@ rec {
EDITOR = "hx";
VISUAL = "hx";
# TERMINAL = "alacritty -o font.size=12";
TERMINAL = "kitty";
BROWSER = "firefox";
@ -262,9 +271,6 @@ rec {
NIXOS_OZONE_WL = "1";
SDL_VIDEODRIVER = "wayland";
# TODO: NNN Module
# NNN_FIFO = "/tmp/nnn.fifo"; # For nnn preview
# Don't use system wine, use bottles
# WINEESYNC = 1;
# WINEFSYNC = 1;
@ -290,13 +296,11 @@ rec {
# delta # diffier diff differ (enabled as program)
# fzf # fuzzy find (enabled as program in fish module)
tokei # Text file statistics in a project
rsync # cp on steroids
rclone # Rsync for cloud
poppler_utils # pdfunite
# ffmpeg # Convert video (magic), v4
ffmpeg_5-full # v5, including ffplay
imagemagick # Convert image (magic)
httpie # Cool http client
ueberzugpp # Display images in terminal (alacritty)
(ripgrep.override {withPCRE2 = true;}) # fast as fuck
nvd # nix rebuild diff
# du-dust # Disk usage analyzer (for directories)
@ -305,14 +309,9 @@ rec {
fd # find alternative
sd # sed alternative
tealdeer # very fast tldr (so readable man)
gping # ping with graph
# gtop # graphic top # We have btop already...
curlie # curl a'la httpie
wget # download that shit
dogdns # dns client
fclones # duplicate file finder
gum # nice shell scripts
lazygit # can always use another git client
geteltorito # extreact boot image from iso
gitbatch # overview over multiple repos
# TODO: Maybe general document/typesetting module?
@ -340,6 +339,21 @@ rec {
unrar
p7zip
# Networking
dig
tcpdump
traceroute
wireshark
gping # ping with graph
curlie # curl a'la httpie
wget # download that shit
dogdns # dns client
rsync # cp on steroids
rclone # Rsync for cloud
httpie # Cool http client
cool-retro-term
# Xooooorg/Desktop environment stuff
# xclip
xorg.xwininfo # See what apps run in XWayland
@ -442,11 +456,146 @@ rec {
programs = {
home-manager.enable = true;
# Potential future enables
# mangohud.enable = true;
# matplotlib.enable = true;
alacritty = {
enable = true;
bat.enable = true;
settings = {
window = {
padding = {
x = 10;
y = 10;
};
font = {
normal = "JetBrainsMono Nerd Font Mono";
size = 12;
};
};
env = {
TERM = "xterm-256color";
};
colors = {
# Default colors
primary = {
background = "#EFF1F5"; # base
foreground = "#4C4F69"; # text
# Bright and dim foreground colors
dim_foreground = "#4C4F69"; # text
bright_foreground = "#4C4F69"; # text
};
# Cursor colors
cursor = {
text = "#EFF1F5"; # base
cursor = "#DC8A78"; # rosewater
};
vi_mode_cursor = {
text = "#EFF1F5"; # base
cursor = "#7287FD"; # lavender
};
# Search colors
search = {
matches = {
foreground = "#EFF1F5"; # base
background = "#6C6F85"; # subtext0
};
focused_match = {
foreground = "#EFF1F5"; # base
background = "#40A02B"; # green
};
footer_bar = {
foreground = "#EFF1F5"; # base
background = "#6C6F85"; # subtext0
};
};
# Keyboard regex hints
hints = {
start = {
foreground = "#EFF1F5"; # base
background = "#DF8E1D"; # yellow
};
end = {
foreground = "#EFF1F5"; # base
background = "#6C6F85"; # subtext0
};
};
# Selection colors
selection = {
text = "#EFF1F5"; # base
background = "#DC8A78"; # rosewater
};
# Normal colors
normal = {
black = "#5C5F77"; # subtext1
red = "#D20F39"; # red
green = "#40A02B"; # green
yellow = "#DF8E1D"; # yellow
blue = "#1E66F5"; # blue
magenta = "#EA76CB"; # pink
cyan = "#179299"; # teal
white = "#ACB0BE"; # surface2
};
# Bright colors
bright = {
black = "#6C6F85"; # subtext0
red = "#D20F39"; # red
green = "#40A02B"; # green
yellow = "#DF8E1D"; # yellow
blue = "#1E66F5"; # blue
magenta = "#EA76CB"; # pink
cyan = "#179299"; # teal
white = "#BCC0CC"; # surface1
};
# Dim colors
dim = {
black = "#5C5F77"; # subtext1
red = "#D20F39"; # red
green = "#40A02B"; # green
yellow = "#DF8E1D"; # yellow
blue = "#1E66F5"; # blue
magenta = "#EA76CB"; # pink
cyan = "#179299"; # teal
white = "#ACB0BE"; # surface2
};
indexed_colors = [
{
index = 16;
color = "#FE640B";
}
{
index = 17;
color = "#DC8A78";
}
];
};
};
};
bat = {
enable = true;
themes = {
catppuccin-latte = builtins.readFile (pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "bat";
rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
} + "/Catppuccin-latte.tmTheme");
};
config = {
theme = "catppuccin-latte";
};
};
broot = {
enable = true;
@ -515,6 +664,7 @@ rec {
};
};
}; # NOTE: If error occurs after system update on fish init run "ssh-add"
keychain = {
enable = true;
enableFishIntegration = config.modules.fish.enable;
@ -524,6 +674,23 @@ rec {
keys = ["id_ed25519"];
};
lazygit = {
enable = true;
settings = {
gui.theme = {
lightTheme = false;
activeBorderColor = ["#40a02b" "bold"];
inactiveBorderColor = ["#4c4f69"];
optionsTextColor = ["#1e66f5"];
selectedLineBgColor = ["#ccd0da"];
selectedRangeBgColor = ["#ccd0da"];
cherryPickedCommitBgColor = ["#179299"];
cherryPickedCommitFgColor = ["#1e66f5"];
unstagedChangeColor = ["red"];
};
};
};
# Realtime Motion Interpolation: https://gist.github.com/phiresky/4bfcfbbd05b3c2ed8645
mpv = {
enable = true;
@ -571,17 +738,98 @@ rec {
ssh.enable = true;
starship = {
starship = let
flavour = "latte"; # One of `latte`, `frappe`, `macchiato`, or `mocha`
in {
enable = true;
enableFishIntegration = config.modules.fish.enable;
settings =
{
# Other config here
format = "$all"; # Remove this line to disable the default prompt format
palette = "catppuccin_${flavour}";
}
// builtins.fromTOML (builtins.readFile
(pkgs.fetchFromGitHub
{
owner = "catppuccin";
repo = "starship";
rev = "3e3e54410c3189053f4da7a7043261361a1ed1bc";
sha256 = "sha256-soEBVlq3ULeiZFAdQYMRFuswIIhI9bclIU8WXjxd7oY=";
}
+ /palettes/${flavour}.toml));
};
tmux = {
enable = true;
clock24 = true;
escapeTime = 0; # Delay after pressing escape
# keyMode = "vi";
terminal = "xterm-256color";
plugins = with pkgs; [
{
plugin = tmuxPlugins.catppuccin;
extraConfig = ''
set -g @plugin 'catppuccin/tmux'
set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha
'';
}
];
extraConfig = ''
set -g default-terminal "xterm-256color"
set-option -ga terminal-overrides ",xterm-256color:Tc"
'';
};
# TODO: Check HM module options
yt-dlp.enable = true;
# TODO
zathura = {
enable = true;
options = {
# Catppuccin Latte
default-fg = "#4C4F69";
default-bg = "#EFF1F5";
completion-bg = "#CCD0DA";
completion-fg = "#4C4F69";
completion-highlight-bg = "#575268";
completion-highlight-fg = "#4C4F69";
completion-group-bg = "#CCD0DA";
completion-group-fg = "#1E66F5";
statusbar-fg = "#4C4F69";
statusbar-bg = "#CCD0DA";
notification-bg = "#CCD0DA";
notification-fg = "#4C4F69";
notification-error-bg = "#CCD0DA";
notification-error-fg = "#D20F39";
notification-warning-bg = "#CCD0DA";
notification-warning-fg = "#FAE3B0";
inputbar-fg = "#4C4F69";
inputbar-bg = "#CCD0DA";
recolor-lightcolor = "#EFF1F5";
recolor-darkcolor = "#4C4F69";
index-fg = "#4C4F69";
index-bg = "#EFF1F5";
index-active-fg = "#4C4F69";
index-active-bg = "#CCD0DA";
render-loading-bg = "#EFF1F5";
render-loading-fg = "#4C4F69";
highlight-color = "#575268";
highlight-fg = "#EA76CB";
highlight-active-color = "#EA76CB";
};
};
zoxide = {

View File

@ -13,10 +13,42 @@ in {
options.modules.fish = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.file.".config/fish/themes/catppuccin-latte.theme".text = ''
# name: 'Catppuccin Latte'
# url: 'https://github.com/catppuccin/fish'
# preferred_background: eff1f5
fish_color_normal 4c4f69
fish_color_command 1e66f5
fish_color_param dd7878
fish_color_keyword d20f39
fish_color_quote 40a02b
fish_color_redirection ea76cb
fish_color_end fe640b
fish_color_comment 8c8fa1
fish_color_error d20f39
fish_color_gray 9ca0b0
fish_color_selection --background=ccd0da
fish_color_search_match --background=ccd0da
fish_color_option 40a02b
fish_color_operator ea76cb
fish_color_escape e64553
fish_color_autosuggestion 9ca0b0
fish_color_cancel d20f39
fish_color_cwd df8e1d
fish_color_user 179299
fish_color_host_remote 40a02b
fish_color_host 1e66f5
fish_color_status d20f39
fish_pager_color_progress 9ca0b0
fish_pager_color_prefix ea76cb
fish_pager_color_completion 4c4f69
fish_pager_color_description 9ca0b0
'';
programs.fish = {
enable = true;
# TODO:
functions = {
nnncd = {
wraps = "nnn";
@ -56,8 +88,25 @@ in {
};
};
# TODO:
# plugins = [];
plugins = [
# oh-my-fish plugins are stored in their own repositories, which
# makes them simple to import into home-manager.
# NOTE: Currently, HM ignores theme plugins
# {
# name = "Catppuccin Latte";
# src = pkgs.fetchFromGitHub {
# owner = "catppuccin";
# repo = "fish";
# rev = "91e6d6721362be05a5c62e235ed8517d90c567c9";
# sha256 = "sha256-l9V7YMfJWhKDL65dNbxaddhaM6GJ0CFZ6z+4R6MJwBA=";
# };
# }
];
shellInit = ''
set -e fish_greeting
yes | fish_config theme save "catppuccin-latte"
'';
shellAbbrs = let
# Only add " | bat" if bat is installed
@ -88,7 +137,8 @@ in {
blk = batify "lsblk -o NAME,LABEL,UUID,FSTYPE,SIZE,FSUSE%,MOUNTPOINT,MODEL";
grep = "grep --color=auto -E"; # grep with extended regex
watch = "watch -d -c -n 0.5";
n = "nnncd -a -P p -e"; # Doesn't work with abbrify because I have nnn.override?
n = "nnncd -a -e"; # Doesn't work with abbrify because I have nnn.override?
np = "nnncd -a -P p -e";
# systemd
failed = "systemctl --failed";
@ -157,10 +207,6 @@ in {
mp3 = "yt-dlp -f 'ba' --extract-audio --audio-format mp3";
})
];
shellInit = ''
set -e fish_greeting
'';
};
};
}

View File

@ -35,13 +35,14 @@ in {
# https://docs.helix-editor.com/configuration.html
settings = {
# theme = "base16_terminal";
theme = "catppuccin_latte";
editor = {
scrolloff = 10;
mouse = false; # Default true
middle-click-paste = false; # Default true
line-number = "relative";
cursorline = true;
color-modes = true;
auto-completion = true; # Default
bufferline = "multiple";
cursor-shape = {

View File

@ -26,11 +26,14 @@ in {
iconTheme.name = "Papirus";
};
# TODO: catppuccin-cursors
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
# package = pkgs.catppuccin-cursors.latteMauve;
# name = "Catppuccin-Latte-Mauve-Cursors";
size = 16;
};
@ -56,6 +59,37 @@ in {
# Notification service
dunst = {
enable = true;
iconTheme.package = pkgs.papirus-icon-theme;
iconTheme.name = "Papirus";
settings = {
global = {
monitor = 1;
font = "JetBrains Nerd Font Mono 11";
offset = "20x20";
frame_color = "#1E66F5";
frame_width = 2;
corner_radius = 5;
separator_color = "frame";
};
urgency_low = {
background = "#EFF1F5";
foreground = "#4C4F69";
};
urgency_normal = {
background = "#EFF1F5";
foreground = "#4C4F69";
};
urgency_critical = {
background = "#EFF1F5";
foreground = "#4C4F69";
frame_color = "#FE640B";
};
};
};
};
@ -102,7 +136,6 @@ in {
"$mainMod, F" = ["fullscreen"];
"$mainMod, C" = ["exec, clipman pick --tool=rofi"];
"$mainMod, G" = ["togglegroup"];
"$mainMod, T" = ["exec, kitty"];
"ALT, tab" = ["changegroupactive"];
};

View File

@ -17,6 +17,7 @@ in {
config = mkIf cfg.enable {
programs.kitty = {
enable = true;
shellIntegration.enableFishIntegration = true;
font = {
# package = pkgs.victor-mono;
@ -24,45 +25,102 @@ in {
size = 12;
};
# TODO: Configure
settings = {
editor = "hx";
scrollback_lines = 10000;
window_padding_width = 0;
# hide_window_decorations = "yes";
allow_remote_control = "yes"; # For nnn file preview
listen_on = "unix:@mykitty";
# Light Theme
# background = "#f7f7f7";
# foreground = "#39FF14"; # Matrix green because I'm a master hacker
# selection_background = "#a4a1a1";
# selection_foreground = "#f7f7f7";
# cursor = "#494542";
# color0 = "#090200";
# color1 = "#da2c20";
# color2 = "#00a152";
# color3 = "#ffcc00";
# color4 = "#00a0e4";
# color5 = "#a06994";
# color6 = "#0077d9";
# color7 = "#a4a1a1";
# color8 = "#5b5754";
# color9 = "#e8bacf";
# color10 = "#3a3332";
# color11 = "#494542";
# color12 = "#7f7c7b";
# color13 = "#d6d4d3";
# color14 = "#ccab53";
# color15 = "#d2b3ff";
};
keybindings = {
"kitty_mod+j" = "next_window";
"kitty_mod+k" = "previous_window";
"kitty_mod+l" = "next_layout";
};
settings = {
editor = "hx";
scrollback_lines = 10000;
window_padding_width = 10; # Looks stupid with helix if bg doesn't match
# hide_window_decorations = "yes";
enabled_layouts = "grid,vertical,horizontal";
allow_remote_control = "yes"; # For nnn file preview
listen_on = "unix:@mykitty";
tab_bar_min_tabs = 1;
tab_bar_edge = "bottom";
tab_bar_style = "powerline";
tab_powerline_style = "slanted";
tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
#
# Catppuccin Light Theme
#
# The basic colors
foreground = "#4C4F69";
background = "#EFF1F5";
selection_foreground = "#EFF1F5";
selection_background = "#DC8A78";
# Cursor colors
cursor = "#DC8A78";
cursor_text_color = "#EFF1F5";
# URL underline color when hovering with mouse
url_color = "#DC8A78";
# Kitty window border colors
active_border_color = "#7287FD";
inactive_border_color = "#9CA0B0";
bell_border_color = "#DF8E1D";
# OS Window titlebar colors
wayland_titlebar_color = "system";
macos_titlebar_color = "system";
# Tab bar colors
active_tab_foreground = "#EFF1F5";
active_tab_background = "#8839EF";
inactive_tab_foreground = "#4C4F69";
inactive_tab_background = "#9CA0B0";
tab_bar_background = "#BCC0CC";
# Colors for marks (marked text in the terminal)
mark1_foreground = "#EFF1F5";
mark1_background = "#7287fD";
mark2_foreground = "#EFF1F5";
mark2_background = "#8839EF";
mark3_foreground = "#EFF1F5";
mark3_background = "#209FB5";
# The 16 terminal colors
# black
color0 = "#5C5F77";
color8 = "#6C6F85";
# red
color1 = "#D20F39";
color9 = "#D20F39";
# green
color2 = "#40A02B";
color10 = "#40A02B";
# yellow
color3 = "#DF8E1D";
color11 = "#DF8E1D";
# blue
color4 = "#1E66F5";
color12 = "#1E66F5";
# magenta
color5 = "#EA76CB";
color13 = "#EA76CB";
# cyan
color6 = "#179299";
color14 = "#179299";
# white
color7 = "#ACB0BE";
color15 = "#BCC0CC";
};
};
};
}

View File

@ -14,6 +14,12 @@ in {
options.modules.nnn = import ./options.nix {inherit lib mylib;};
config = mkIf cfg.enable {
home.sessionVariables = {
# NNN_TERMINAL = "alacritty";
NNN_PAGER = "bat";
# NNN_FIFO = "/tmp/nnn.fifo"; # For nnn preview
};
programs.nnn = {
package = pkgs.nnn.override {
# These two are mutually exclusive

View File

@ -22,6 +22,8 @@ in {
alefragnani.bookmarks
# alefragnani.project-manager # Not much sense with flake dev environments
# bradlc.vscode-tailwindcss
catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons
christian-kohler.path-intellisense
codezombiech.gitignore
coolbear.systemd-unit-file
@ -46,6 +48,7 @@ in {
ms-vscode.cpptools
ms-vscode.hexeditor
ms-vscode.makefile-tools
ms-vscode-remote.remote-ssh
# naumovs.color-highlight
njpwerner.autodocstring
james-yu.latex-workshop
@ -91,10 +94,16 @@ in {
"files.trimFinalNewlines" = true;
"files.trimTrailingWhitespace" = true; # NOTE: If this is enabled with frequent autosave, the current lines whitespace will always be removed, which is obnoxious
"window.restoreWindows" = "none";
"workbench.enableExperiments" = false;
"workbench.list.smoothScrolling" = true;
"workbench.colorTheme" = "Default Light Modern";
"workbench.iconTheme" = "vscode-icons";
# "workbench.colorTheme" = "Default Light Modern";
# "workbench.iconTheme" = "vscode-icons";
"workbench.colorTheme" = "Catppuccin Latte";
"workbench.iconTheme" = "catppuccin-latte";
"remote.SSH.configFile" = "~/.ssh/custom-config";
"security.workspace.trust.enabled" = false;