diff --git a/Brewfile.private b/Brewfile.private index 85182151..caaf2826 100644 --- a/Brewfile.private +++ b/Brewfile.private @@ -8,6 +8,7 @@ tap "oven-sh/bun" brew "harfbuzz" brew "age" brew "aichat" +brew "ccusage" brew "certifi" brew "gcc" brew "python@3.12" @@ -19,6 +20,7 @@ brew "bfg" brew "blueutil" brew "btop" brew "chezmoi" +brew "defuddle" brew "cmake" brew "lima" brew "colima" @@ -50,7 +52,9 @@ brew "git-lfs" brew "node" brew "gitmoji" brew "python@3.13" +brew "gitingest" brew "go" +brew "googleworkspace-cli" brew "gofumpt" brew "golangci-lint-langserver" brew "gum" @@ -151,7 +155,7 @@ vscode "bradlc.vscode-tailwindcss" vscode "charliermarsh.ruff" vscode "christian-kohler.path-intellisense" vscode "dbaeumer.vscode-eslint" -vscode "enkia.tokyo-night" +vscode "catppuccin.catppuccin-vsc" vscode "esbenp.prettier-vscode" vscode "formulahendry.auto-rename-tag" vscode "formulahendry.code-runner" diff --git a/Brewfile.work b/Brewfile.work index a9f3c39f..f7ee8e1b 100644 --- a/Brewfile.work +++ b/Brewfile.work @@ -47,9 +47,11 @@ brew "bruno-cli" # Resource monitor. C++ version and continuation of bashtop and bpytop brew "btop" # Mozilla CA bundle for Python +brew "ccusage" brew "certifi" # Manage your dotfiles across multiple diverse machines, securely brew "chezmoi" +brew "defuddle" # Cross-platform make brew "cmake" # Linux virtual machines @@ -123,7 +125,9 @@ brew "git-lfs" # Interactive command-line tool for using emoji in commit messages brew "gitmoji" # Open source programming language to build simple/reliable/efficient software +brew "gitingest" brew "go" +brew "googleworkspace-cli" # Stricter gofmt brew "gofumpt" # Language server for `golangci-lint` @@ -382,6 +386,8 @@ cask "ghostty" cask "google-chrome" # Client for the Google Drive storage service cask "google-drive" +# Native desktop AI assistant from Google +cask "google-gemini" # Chromium-based web browser cask "helium-browser" # Free and open-source media player diff --git a/Brewfile.workstation b/Brewfile.workstation index 9f064e98..334ce052 100644 --- a/Brewfile.workstation +++ b/Brewfile.workstation @@ -11,7 +11,9 @@ brew "btop" # Core application library for C brew "glib" # Manage your dotfiles across multiple diverse machines, securely +brew "ccusage" brew "chezmoi" +brew "defuddle" # GNU File, Shell, and Text utilities brew "coreutils" # Get a file from an HTTP, HTTPS or FTP server @@ -40,6 +42,8 @@ brew "fnm" brew "fzf" # GNU compiler collection brew "gcc" +brew "gitingest" +brew "googleworkspace-cli" # Open-source, cross-platform JavaScript runtime environment brew "node" # Interact with Google Gemini AI models from the command-line diff --git a/README.md b/README.md index e025e46c..e56da67a 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ A few quick facts: - **Profiles:** `private`, `work`, and `workstation` - **Bootstrap path:** [`bootstrap.sh`](bootstrap.sh) - **First-run automation:** [`run_once_install_packages.sh.tmpl`](run_once_install_packages.sh.tmpl) and [`run_once_settings.sh.tmpl`](run_once_settings.sh.tmpl) -- **Theme:** Tokyo Night across most of the stack +- **Theme:** Catppuccin Mocha across most of the stack - **Fonts:** Maple Mono / Maple Mono NF --- @@ -78,7 +78,7 @@ That setup includes: - [Mise](https://mise.jdx.dev/) for runtime management via [`dot_config/mise/config.toml`](dot_config/mise/config.toml) - [Television](https://github.com/alexpasmantier/television) shell integration so `Ctrl+T` opens context-aware pickers instead of a generic file list -The terminal is [Ghostty](https://ghostty.org/), configured in [`dot_config/ghostty/config`](dot_config/ghostty/config). It uses Tokyo Night, Maple Mono NF, split navigation shortcuts, a huge scrollback buffer, and a top-mounted quick terminal. +The terminal is [Ghostty](https://ghostty.org/), configured in [`dot_config/ghostty/config`](dot_config/ghostty/config). It uses Catppuccin Mocha, Maple Mono NF, split navigation shortcuts, a huge scrollback buffer, and a top-mounted quick terminal. ### Editors ✍️ @@ -116,7 +116,7 @@ Git tooling is a big part of this repo: - `delta` + `diffnav` for readable diffs - custom scripts for repo cleanup, worktree creation, and recursive repo management -The Lazygit setup includes custom PR commands, conventional commit helpers, GitHub shortcuts, Tokyo Night styling, and delta-powered diff views. +The Lazygit setup includes custom PR commands, conventional commit helpers, GitHub shortcuts, Catppuccin Mocha styling, and delta-powered diff views. ### macOS workflow 🍎 @@ -155,7 +155,7 @@ Pi is where most of the custom work happens. The config in [`dot_pi/agent/`](dot_pi/agent/) includes: -- Tokyo Night theme and custom modes in [`dot_pi/agent/modes.json`](dot_pi/agent/modes.json) +- Catppuccin Mocha theme and custom modes in [`dot_pi/agent/modes.json`](dot_pi/agent/modes.json) - local model definitions in [`dot_pi/agent/models.json`](dot_pi/agent/models.json) - path blocking for secrets and sensitive files in [`dot_pi/agent/path-policy.json`](dot_pi/agent/path-policy.json) - prompt templates in [`dot_pi/agent/prompts/`](dot_pi/agent/prompts/) @@ -310,7 +310,7 @@ Shared shell helpers used by the setup scripts live in [`scripts/utils`](scripts ## Theming 🎨 -Tokyo Night is the common thread through most of the environment: Ghostty, Zed, Lazygit, Television, Eza, Bat, and Pi all use it in one form or another. +Catppuccin Mocha is the common thread through most of the environment: Ghostty, Tmux, Fish, Yazi, Television, Lazygit, Bat, Btop, Starship, Atuin, Eza, Delta, Fzf, Gh-Dash, K9s, and Zed all use it in one form or another. Fonts are centered on Maple Mono and Maple Mono NF, including OpenType alternates like `cv02`, `cv05`, `cv61`, and `cv63`. diff --git a/bootstrap.sh b/bootstrap.sh index c87e022a..6fa7f598 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -6,13 +6,13 @@ set -e # Exit on any error -# Tokyo Night theme colors -readonly PURPLE="#bd93f9" -readonly GREEN="#50fa7b" -readonly RED="#ff5555" -readonly YELLOW="#f1fa8c" -readonly CYAN="#8be9fd" -readonly ORANGE="#ffb86c" +# Catppuccin Mocha theme colors +readonly PURPLE="#cba6f7" # mauve +readonly GREEN="#a6e3a1" +readonly RED="#f38ba8" +readonly YELLOW="#f9e2af" +readonly CYAN="#89dceb" # sky +readonly ORANGE="#fab387" # peach # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -25,19 +25,19 @@ print_in_color() { } print_in_purple() { - print_in_color "\033[38;2;189;147;249m$1\033[m\n" + print_in_color "\033[38;2;203;166;247m$1\033[m\n" # mauve } print_in_green() { - print_in_color "\033[38;2;80;250;123m$1\033[m\n" + print_in_color "\033[38;2;166;227;161m$1\033[m\n" } print_in_yellow() { - print_in_color "\033[38;2;241;250;140m$1\033[m\n" + print_in_color "\033[38;2;249;226;175m$1\033[m\n" } print_in_red() { - print_in_color "\033[38;2;255;85;85m$1\033[m\n" + print_in_color "\033[38;2;243;139;168m$1\033[m\n" } print_error() { diff --git a/dot_config/atuin/config.toml b/dot_config/atuin/config.toml index daf8ae97..a0d4d62c 100644 --- a/dot_config/atuin/config.toml +++ b/dot_config/atuin/config.toml @@ -43,6 +43,9 @@ filter_mode_shell_up_key_binding = "session" ## possible values: auto, full, compact style = "compact" +[theme] +name = "catppuccin-mocha" + ## the maximum number of lines the interface should take up ## set it to 0 to always go full screen inline_height = 15 diff --git a/dot_config/atuin/themes/catppuccin-mocha.toml b/dot_config/atuin/themes/catppuccin-mocha.toml new file mode 100644 index 00000000..6af338d7 --- /dev/null +++ b/dot_config/atuin/themes/catppuccin-mocha.toml @@ -0,0 +1,12 @@ +[theme] +name = "catppuccin-mocha-mauve" + +[colors] +AlertInfo = "#a6e3a1" +AlertWarn = "#fab387" +AlertError = "#f38ba8" +Annotation = "#cba6f7" +Base = "#cdd6f4" +Guidance = "#9399b2" +Important = "#f38ba8" +Title = "#cba6f7" diff --git a/dot_config/bat/bat.conf b/dot_config/bat/bat.conf index 1b81ddd8..b8247644 100644 --- a/dot_config/bat/bat.conf +++ b/dot_config/bat/bat.conf @@ -1,5 +1,5 @@ -# Set the theme to "gruvbox-dark" ---theme="Visual Studio Dark+" +# Catppuccin Mocha (theme file in ~/.config/bat/themes/, run `bat cache --build`) +--theme="Catppuccin Mocha" # Show only the file with Git modifications --style="changes" diff --git a/dot_config/bat/themes/Catppuccin Mocha.tmTheme b/dot_config/bat/themes/Catppuccin Mocha.tmTheme new file mode 100644 index 00000000..c7781ce1 --- /dev/null +++ b/dot_config/bat/themes/Catppuccin Mocha.tmTheme @@ -0,0 +1,2112 @@ + + + + + name + Catppuccin Mocha + semanticClass + theme.dark.catppuccin-mocha + uuid + 627ce890-fabb-4d39-9819-7be71f4bdca7 + author + Catppuccin Org + colorSpaceName + sRGB + settings + + + settings + + background + #1e1e2e + foreground + #cdd6f4 + caret + #f5e0dc + lineHighlight + #313244 + misspelling + #f38ba8 + accent + #cba6f7 + selection + #9399b240 + activeGuide + #45475a + findHighlight + #3e5767 + gutterForeground + #7f849c + + + + name + Basic text & variable names (incl. leading punctuation) + scope + text, source, variable.other.readwrite, punctuation.definition.variable + settings + + foreground + #cdd6f4 + + + + name + Parentheses, Brackets, Braces + scope + punctuation + settings + + foreground + #9399b2 + fontStyle + + + + + name + Comments + scope + comment, punctuation.definition.comment + settings + + foreground + #9399b2 + fontStyle + italic + + + + scope + string, punctuation.definition.string + settings + + foreground + #a6e3a1 + + + + scope + constant.character.escape + settings + + foreground + #f5c2e7 + + + + name + Booleans, constants, numbers + scope + constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point + settings + + foreground + #fab387 + + + + scope + keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword + settings + + foreground + #cba6f7 + fontStyle + + + + + scope + entity.name.tag.documentation + settings + + foreground + #cba6f7 + + + + name + Punctuation + scope + keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value + settings + + foreground + #94e2d5 + + + + scope + entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Classes + scope + entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Enum + scope + entity.name.enum + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Enum member + scope + meta.enum variable.other.readwrite, variable.other.enummember + settings + + foreground + #94e2d5 + + + + name + Object properties + scope + meta.property.object + settings + + foreground + #94e2d5 + + + + name + Types + scope + meta.type, meta.type-alias, support.type, entity.name.type + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Decorators + scope + meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator + settings + + foreground + #fab387 + + + + scope + variable.parameter, meta.function.parameters + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Built-ins + scope + constant.language, support.function.builtin + settings + + foreground + #f38ba8 + + + + scope + entity.other.attribute-name.documentation + settings + + foreground + #f38ba8 + + + + name + Preprocessor directives + scope + keyword.control.directive, punctuation.definition.directive + settings + + foreground + #f9e2af + + + + name + Type parameters + scope + punctuation.definition.typeparameters + settings + + foreground + #89dceb + + + + name + Namespaces + scope + entity.name.namespace + settings + + foreground + #f9e2af + + + + name + Property names (left hand assignments in json/yaml/css) + scope + support.type.property-name.css + settings + + foreground + #89b4fa + fontStyle + + + + + name + This/Self keyword + scope + variable.language.this, variable.language.this punctuation.definition.variable + settings + + foreground + #f38ba8 + + + + name + Object properties + scope + variable.object.property + settings + + foreground + #cdd6f4 + + + + name + String template interpolation + scope + string.template variable, string variable + settings + + foreground + #cdd6f4 + + + + name + `new` as bold + scope + keyword.operator.new + settings + + fontStyle + bold + + + + name + C++ extern keyword + scope + storage.modifier.specifier.extern.cpp + settings + + foreground + #cba6f7 + + + + name + C++ scope resolution + scope + entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp + settings + + foreground + #f9e2af + + + + name + C++ doc keywords + scope + storage.type.class.doxygen + settings + + fontStyle + + + + + name + C++ operators + scope + storage.modifier.reference.cpp + settings + + foreground + #94e2d5 + + + + name + C# Interpolated Strings + scope + meta.interpolation.cs + settings + + foreground + #cdd6f4 + + + + name + C# xml-style docs + scope + comment.block.documentation.cs + settings + + foreground + #cdd6f4 + + + + name + Classes, reflecting the className color in JSX + scope + source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css + settings + + foreground + #f9e2af + + + + name + Operators + scope + punctuation.separator.operator.css + settings + + foreground + #94e2d5 + + + + name + Pseudo classes + scope + source.css entity.other.attribute-name.pseudo-class + settings + + foreground + #94e2d5 + + + + scope + source.css constant.other.unicode-range + settings + + foreground + #fab387 + + + + scope + source.css variable.parameter.url + settings + + foreground + #a6e3a1 + fontStyle + + + + + name + CSS vendored property names + scope + support.type.vendored.property-name + settings + + foreground + #89dceb + + + + name + Less/SCSS right-hand variables (@/$-prefixed) + scope + source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss + settings + + foreground + #eba0ac + + + + name + CSS variables (--prefixed) + scope + source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less + settings + + foreground + #89b4fa + + + + name + CSS Percentage values, styled the same as numbers + scope + keyword.other.unit.percentage.css + settings + + foreground + #fab387 + + + + name + CSS Attribute selectors, styled the same as strings + scope + source.css meta.attribute-selector + settings + + foreground + #a6e3a1 + + + + name + JSON/YAML keys, other left-hand assignments + scope + keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml + settings + + foreground + #89b4fa + fontStyle + + + + + name + JSON/YAML constants + scope + constant.language.json, constant.language.yaml + settings + + foreground + #fab387 + + + + name + YAML anchors + scope + entity.name.type.anchor.yaml, variable.other.alias.yaml + settings + + foreground + #f9e2af + fontStyle + + + + + name + TOML tables / ini groups + scope + support.type.property-name.table, entity.name.section.group-title.ini + settings + + foreground + #f9e2af + + + + name + TOML dates + scope + constant.other.time.datetime.offset.toml + settings + + foreground + #f5c2e7 + + + + name + YAML anchor puctuation + scope + punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml + settings + + foreground + #f5c2e7 + + + + name + YAML triple dashes + scope + entity.other.document.begin.yaml + settings + + foreground + #f5c2e7 + + + + name + Markup Diff + scope + markup.changed.diff + settings + + foreground + #fab387 + + + + name + Diff + scope + meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff + settings + + foreground + #89b4fa + + + + name + Diff Inserted + scope + markup.inserted.diff + settings + + foreground + #a6e3a1 + + + + name + Diff Deleted + scope + markup.deleted.diff + settings + + foreground + #f38ba8 + + + + name + dotenv left-hand side assignments + scope + variable.other.env + settings + + foreground + #89b4fa + + + + name + dotenv reference to existing env variable + scope + string.quoted variable.other.env + settings + + foreground + #cdd6f4 + + + + name + GDScript functions + scope + support.function.builtin.gdscript + settings + + foreground + #89b4fa + + + + name + GDScript constants + scope + constant.language.gdscript + settings + + foreground + #fab387 + + + + name + Comment keywords + scope + comment meta.annotation.go + settings + + foreground + #eba0ac + + + + name + go:embed, go:build, etc. + scope + comment meta.annotation.parameters.go + settings + + foreground + #fab387 + + + + name + Go constants (nil, true, false) + scope + constant.language.go + settings + + foreground + #fab387 + + + + name + GraphQL variables + scope + variable.graphql + settings + + foreground + #cdd6f4 + + + + name + GraphQL aliases + scope + string.unquoted.alias.graphql + settings + + foreground + #f2cdcd + + + + name + GraphQL enum members + scope + constant.character.enum.graphql + settings + + foreground + #94e2d5 + + + + name + GraphQL field in types + scope + meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql + settings + + foreground + #f2cdcd + + + + name + HTML/XML DOCTYPE as keyword + scope + keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag + settings + + foreground + #cba6f7 + + + + name + HTML/XML-like <tags/> + scope + entity.name.tag + settings + + foreground + #89b4fa + fontStyle + + + + + name + Special characters like &amp; + scope + text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation + settings + + foreground + #f38ba8 + + + + name + HTML/XML tag attribute values + scope + entity.other.attribute-name + settings + + foreground + #f9e2af + + + + name + Components + scope + support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + Annotations + scope + punctuation.definition.annotation, storage.type.annotation + settings + + foreground + #fab387 + + + + name + Java enums + scope + constant.other.enum.java + settings + + foreground + #94e2d5 + + + + name + Java imports + scope + storage.modifier.import.java + settings + + foreground + #cdd6f4 + + + + name + Javadoc + scope + comment.block.javadoc.java keyword.other.documentation.javadoc.java + settings + + fontStyle + + + + + name + Exported Variable + scope + meta.export variable.other.readwrite.js + settings + + foreground + #eba0ac + + + + name + JS/TS constants & properties + scope + variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts + settings + + foreground + #cdd6f4 + + + + name + JSDoc; these are mainly params, so styled as such + scope + variable.other.jsdoc, comment.block.documentation variable.other + settings + + foreground + #eba0ac + fontStyle + + + + + name + JSDoc keywords + scope + storage.type.class.jsdoc + settings + + fontStyle + + + + + scope + support.type.object.console.js + settings + + foreground + #cdd6f4 + + + + name + Node constants as keywords (module, etc.) + scope + support.constant.node, support.type.object.module.js + settings + + foreground + #cba6f7 + + + + name + implements as keyword + scope + storage.modifier.implements + settings + + foreground + #cba6f7 + + + + name + Builtin types + scope + constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts + settings + + foreground + #cba6f7 + + + + scope + variable.parameter.generic + settings + + foreground + #f9e2af + + + + name + Arrow functions + scope + keyword.declaration.function.arrow.js, storage.type.function.arrow.ts + settings + + foreground + #94e2d5 + + + + name + Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach) + scope + punctuation.decorator.ts + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Extra JS/TS keywords + scope + keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts + settings + + foreground + #cba6f7 + + + + name + Julia macros + scope + support.function.macro.julia + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Julia language constants (true, false) + scope + constant.language.julia + settings + + foreground + #fab387 + + + + name + Julia other constants (these seem to be arguments inside arrays) + scope + constant.other.symbol.julia + settings + + foreground + #eba0ac + + + + name + LaTeX preamble + scope + text.tex keyword.control.preamble + settings + + foreground + #94e2d5 + + + + name + LaTeX be functions + scope + text.tex support.function.be + settings + + foreground + #89dceb + + + + name + LaTeX math + scope + constant.other.general.math.tex + settings + + foreground + #f2cdcd + + + + name + Liquid Builtin Objects & User Defined Variables + scope + variable.language.liquid + settings + + foreground + #f5c2e7 + + + + name + Lua docstring keywords + scope + comment.line.double-dash.documentation.lua storage.type.annotation.lua + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Lua docstring variables + scope + comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua + settings + + foreground + #cdd6f4 + + + + scope + heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, heading.1.quarto punctuation.definition.heading.quarto, heading.1.quarto, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc + settings + + foreground + #f38ba8 + + + + scope + heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, heading.2.quarto punctuation.definition.heading.quarto, heading.2.quarto, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc + settings + + foreground + #fab387 + + + + scope + heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, heading.3.quarto punctuation.definition.heading.quarto, heading.3.quarto, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc + settings + + foreground + #f9e2af + + + + scope + heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, heading.4.quarto punctuation.definition.heading.quarto, heading.4.quarto, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc + settings + + foreground + #a6e3a1 + + + + scope + heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, heading.5.quarto punctuation.definition.heading.quarto, heading.5.quarto, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc + settings + + foreground + #74c7ec + + + + scope + heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, heading.6.quarto punctuation.definition.heading.quarto, heading.6.quarto, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc + settings + + foreground + #b4befe + + + + scope + markup.bold + settings + + foreground + #f38ba8 + fontStyle + bold + + + + scope + markup.italic + settings + + foreground + #f38ba8 + fontStyle + italic + + + + scope + markup.strikethrough + settings + + foreground + #a6adc8 + fontStyle + strikethrough + + + + name + Markdown auto links + scope + punctuation.definition.link, markup.underline.link + settings + + foreground + #89b4fa + + + + name + Markdown links + scope + text.html.markdown punctuation.definition.link.title, text.html.quarto punctuation.definition.link.title, string.other.link.title.markdown, string.other.link.title.quarto, markup.link, punctuation.definition.constant.markdown, punctuation.definition.constant.quarto, constant.other.reference.link.markdown, constant.other.reference.link.quarto, markup.substitution.attribute-reference + settings + + foreground + #b4befe + + + + name + Markdown code spans + scope + punctuation.definition.raw.markdown, punctuation.definition.raw.quarto, markup.inline.raw.string.markdown, markup.inline.raw.string.quarto, markup.raw.block.markdown, markup.raw.block.quarto + settings + + foreground + #a6e3a1 + + + + name + Markdown triple backtick language identifier + scope + fenced_code.block.language + settings + + foreground + #89dceb + + + + name + Markdown triple backticks + scope + markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc + settings + + foreground + #9399b2 + + + + name + Markdown quotes + scope + markup.quote, punctuation.definition.quote.begin + settings + + foreground + #f5c2e7 + + + + name + Markdown separators + scope + meta.separator.markdown + settings + + foreground + #94e2d5 + + + + name + Markdown list bullets + scope + punctuation.definition.list.begin.markdown, punctuation.definition.list.begin.quarto, markup.list.bullet + settings + + foreground + #94e2d5 + + + + name + Quarto headings + scope + markup.heading.quarto + settings + + fontStyle + bold + + + + name + Nix attribute names + scope + entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix + settings + + foreground + #89b4fa + + + + name + Nix parameter names + scope + variable.parameter.name.nix + settings + + foreground + #cdd6f4 + fontStyle + + + + + name + Nix interpolated parameter names + scope + meta.embedded variable.parameter.name.nix + settings + + foreground + #b4befe + fontStyle + + + + + name + Nix paths + scope + string.unquoted.path.nix + settings + + foreground + #f5c2e7 + fontStyle + + + + + name + PHP Attributes + scope + support.attribute.builtin, meta.attribute.php + settings + + foreground + #f9e2af + + + + name + PHP Parameters (needed for the leading dollar sign) + scope + meta.function.parameters.php punctuation.definition.variable.php + settings + + foreground + #eba0ac + + + + name + PHP Constants (null, __FILE__, etc.) + scope + constant.language.php + settings + + foreground + #cba6f7 + + + + name + PHP functions + scope + text.html.php support.function + settings + + foreground + #89dceb + + + + name + PHPdoc keywords + scope + keyword.other.phpdoc.php + settings + + fontStyle + + + + + name + Python argument functions reset to text, otherwise they inherit blue from function-call + scope + support.variable.magic.python, meta.function-call.arguments.python + settings + + foreground + #cdd6f4 + + + + name + Python double underscore functions + scope + support.function.magic.python + settings + + foreground + #89dceb + fontStyle + italic + + + + name + Python `self` keyword + scope + variable.parameter.function.language.special.self.python, variable.language.special.self.python + settings + + foreground + #f38ba8 + fontStyle + italic + + + + name + python keyword flow/logical (for ... in) + scope + keyword.control.flow.python, keyword.operator.logical.python + settings + + foreground + #cba6f7 + + + + name + python storage type + scope + storage.type.function.python + settings + + foreground + #cba6f7 + + + + name + python function support + scope + support.token.decorator.python, meta.function.decorator.identifier.python + settings + + foreground + #89dceb + + + + name + python function calls + scope + meta.function-call.python + settings + + foreground + #89b4fa + + + + name + python function decorators + scope + entity.name.function.decorator.python, punctuation.definition.decorator.python + settings + + foreground + #fab387 + fontStyle + italic + + + + name + python placeholder reset to normal string + scope + constant.character.format.placeholder.other.python + settings + + foreground + #f5c2e7 + + + + name + Python exception & builtins such as exit() + scope + support.type.exception.python, support.function.builtin.python + settings + + foreground + #fab387 + + + + name + entity.name.type + scope + support.type.python + settings + + foreground + #cba6f7 + + + + name + python constants (True/False) + scope + constant.language.python + settings + + foreground + #fab387 + + + + name + Arguments accessed later in the function body + scope + meta.indexed-name.python, meta.item-access.python + settings + + foreground + #eba0ac + fontStyle + italic + + + + name + Python f-strings/binary/unicode storage types + scope + storage.type.string.python + settings + + foreground + #a6e3a1 + fontStyle + italic + + + + name + Python type hints + scope + meta.function.parameters.python + settings + + fontStyle + + + + + name + Regex string begin/end in JS/TS + scope + string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end + settings + + foreground + #f5c2e7 + + + + name + Regex anchors (^, $) + scope + keyword.control.anchor.regexp + settings + + foreground + #cba6f7 + + + + name + Regex regular string match + scope + string.regexp.ts + settings + + foreground + #cdd6f4 + + + + name + Regex group parenthesis & backreference (\1, \2, \3, ...) + scope + punctuation.definition.group.regexp, keyword.other.back-reference.regexp + settings + + foreground + #a6e3a1 + + + + name + Regex character class [] + scope + punctuation.definition.character-class.regexp + settings + + foreground + #f9e2af + + + + name + Regex character classes (\d, \w, \s) + scope + constant.other.character-class.regexp + settings + + foreground + #f5c2e7 + + + + name + Regex range + scope + constant.other.character-class.range.regexp + settings + + foreground + #f5e0dc + + + + name + Regex quantifier + scope + keyword.operator.quantifier.regexp + settings + + foreground + #94e2d5 + + + + name + Regex constant/numeric + scope + constant.character.numeric.regexp + settings + + foreground + #fab387 + + + + name + Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds + scope + punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp + settings + + foreground + #89b4fa + + + + name + Rust attribute + scope + meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust attribute strings + scope + meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust + settings + + fontStyle + + + + + name + Rust keyword + scope + entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Rust u/i32, u/i64, etc. + scope + entity.name.type.numeric.rust + settings + + foreground + #cba6f7 + fontStyle + + + + + name + Rust generic + scope + meta.generic.rust + settings + + foreground + #fab387 + + + + name + Rust impl + scope + entity.name.impl.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust module + scope + entity.name.module.rust + settings + + foreground + #fab387 + + + + name + Rust trait + scope + entity.name.trait.rust + settings + + foreground + #f9e2af + fontStyle + italic + + + + name + Rust struct + scope + storage.type.source.rust + settings + + foreground + #f9e2af + + + + name + Rust union + scope + entity.name.union.rust + settings + + foreground + #f9e2af + + + + name + Rust enum member + scope + meta.enum.rust storage.type.source.rust + settings + + foreground + #94e2d5 + + + + name + Rust macro + scope + support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Rust lifetime + scope + storage.modifier.lifetime.rust, entity.name.type.lifetime + settings + + foreground + #89b4fa + fontStyle + italic + + + + name + Rust string formatting + scope + string.quoted.double.rust constant.other.placeholder.rust + settings + + foreground + #f5c2e7 + + + + name + Rust return type generic + scope + meta.function.return-type.rust meta.generic.rust storage.type.rust + settings + + foreground + #cdd6f4 + + + + name + Rust functions + scope + meta.function.call.rust + settings + + foreground + #89b4fa + + + + name + Rust angle brackets + scope + punctuation.brackets.angle.rust + settings + + foreground + #89dceb + + + + name + Rust constants + scope + constant.other.caps.rust + settings + + foreground + #fab387 + + + + name + Rust function parameters + scope + meta.function.definition.rust variable.other.rust + settings + + foreground + #eba0ac + + + + name + Rust closure variables + scope + meta.function.call.rust variable.other.rust + settings + + foreground + #cdd6f4 + + + + name + Rust self + scope + variable.language.self.rust + settings + + foreground + #f38ba8 + + + + name + Rust metavariable names + scope + variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust + settings + + foreground + #f5c2e7 + + + + name + Shell shebang + scope + comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell + settings + + foreground + #f5c2e7 + fontStyle + italic + + + + name + Shell shebang command + scope + comment.line.shebang constant.language + settings + + foreground + #94e2d5 + fontStyle + italic + + + + name + Shell interpolated command + scope + meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation + settings + + foreground + #f38ba8 + + + + name + Shell interpolated command variable + scope + meta.string meta.interpolation.parameter.shell variable.other.readwrite + settings + + foreground + #fab387 + fontStyle + italic + + + + scope + source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell + settings + + foreground + #94e2d5 + + + + name + Shell EOF + scope + entity.name.tag.heredoc.shell + settings + + foreground + #cba6f7 + + + + name + Shell quoted variable + scope + string.quoted.double.shell variable.other.normal.shell + settings + + foreground + #cdd6f4 + + + + scope + markup.heading.typst + settings + + foreground + #f38ba8 + + + + name + JSON Keys + scope + source.json meta.mapping.key string + settings + + foreground + #89b4fa + + + + name + JSON key surrounding quotes + scope + source.json meta.mapping.key punctuation.definition.string.begin, source.json meta.mapping.key punctuation.definition.string.end + settings + + foreground + #9399b2 + + + + scope + markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man + settings + + foreground + #cba6f7 + + + + scope + markup.heading.commands.man + settings + + foreground + #89b4fa + + + + scope + markup.heading.env.man + settings + + foreground + #f5c2e7 + + + + name + Man page options + scope + entity.name + settings + + foreground + #94e2d5 + + + + scope + markup.heading.1.markdown + settings + + foreground + #f38ba8 + + + + scope + markup.heading.2.markdown + settings + + foreground + #fab387 + + + + scope + markup.heading.markdown + settings + + foreground + #f9e2af + + + + + \ No newline at end of file diff --git a/dot_config/btop/btop.conf b/dot_config/btop/btop.conf index 76711ece..f7ee4ef1 100644 --- a/dot_config/btop/btop.conf +++ b/dot_config/btop/btop.conf @@ -2,7 +2,7 @@ #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" -color_theme = "/opt/homebrew/Cellar/btop/1.4.0/share/btop/themes/tokyo-storm.theme" +color_theme = "/Users/joelazar/.config/btop/themes/catppuccin_mocha.theme" #* If the theme set background should be shown, set to False if you want terminal background transparency. theme_background = true diff --git a/dot_config/btop/themes/catppuccin_mocha.theme b/dot_config/btop/themes/catppuccin_mocha.theme new file mode 100644 index 00000000..560b5a11 --- /dev/null +++ b/dot_config/btop/themes/catppuccin_mocha.theme @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="#1e1e2e" + +# Main text color +theme[main_fg]="#cdd6f4" + +# Title color for boxes +theme[title]="#cdd6f4" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="#89b4fa" + +# Background color of selected item in processes box +theme[selected_bg]="#45475a" + +# Foreground color of selected item in processes box +theme[selected_fg]="#89b4fa" + +# Color of inactive/disabled text +theme[inactive_fg]="#7f849c" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="#f5e0dc" + +# Background color of the percentage meters +theme[meter_bg]="#45475a" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="#f5e0dc" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="#cba6f7" #Mauve +theme[mem_box]="#a6e3a1" #Green +theme[net_box]="#eba0ac" #Maroon +theme[proc_box]="#89b4fa" #Blue + +# Box divider line and small boxes line color +theme[div_line]="#6c7086" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="#a6e3a1" +theme[temp_mid]="#f9e2af" +theme[temp_end]="#f38ba8" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="#94e2d5" +theme[cpu_mid]="#74c7ec" +theme[cpu_end]="#b4befe" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="#cba6f7" +theme[free_mid]="#b4befe" +theme[free_end]="#89b4fa" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="#74c7ec" +theme[cached_mid]="#89b4fa" +theme[cached_end]="#b4befe" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="#fab387" +theme[available_mid]="#eba0ac" +theme[available_end]="#f38ba8" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="#a6e3a1" +theme[used_mid]="#94e2d5" +theme[used_end]="#89dceb" + +# Download graph colors (Peach -> Red) +theme[download_start]="#fab387" +theme[download_mid]="#eba0ac" +theme[download_end]="#f38ba8" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="#a6e3a1" +theme[upload_mid]="#94e2d5" +theme[upload_end]="#89dceb" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="#74c7ec" +theme[process_mid]="#b4befe" +theme[process_end]="#cba6f7" \ No newline at end of file diff --git a/dot_config/delta/catppuccin.gitconfig b/dot_config/delta/catppuccin.gitconfig new file mode 100644 index 00000000..91a43686 --- /dev/null +++ b/dot_config/delta/catppuccin.gitconfig @@ -0,0 +1,123 @@ +[delta "catppuccin-latte"] + blame-palette = "#eff1f5 #e6e9ef #dce0e8 #ccd0da #bcc0cc" + commit-decoration-style = "#9ca0b0" bold box ul + light = true + file-decoration-style = "#9ca0b0" + file-style = "#4c4f69" + hunk-header-decoration-style = "#9ca0b0" box ul + hunk-header-file-style = bold + hunk-header-line-number-style = bold "#6c6f85" + hunk-header-style = file line-number syntax + line-numbers-left-style = "#9ca0b0" + line-numbers-minus-style = bold "#d20f39" + line-numbers-plus-style = bold "#40a02b" + line-numbers-right-style = "#9ca0b0" + line-numbers-zero-style = "#9ca0b0" + # 35% red 65% base + minus-emph-style = bold syntax "#e5a2b3" + # 20% red 80% base + minus-style = syntax "#e9c4cf" + # 35% green 65% base + plus-emph-style = bold syntax "#b2d5ae" + # 20% green 80% base + plus-style = syntax "#cce1cd" + map-styles = \ + bold purple => syntax "#cbb1f2", \ + bold blue => syntax "#a6c1f5", \ + bold cyan => syntax "#9dd7ef", \ + bold yellow => syntax "#eacfa9" + # Should match the name of the bat theme + syntax-theme = Catppuccin Latte + +[delta "catppuccin-frappe"] + blame-palette = "#303446 #292c3c #232634 #414559 #51576d" + commit-decoration-style = "#737994" bold box ul + dark = true + file-decoration-style = "#737994" + file-style = "#c6d0f5" + hunk-header-decoration-style = "#737994" box ul + hunk-header-file-style = bold + hunk-header-line-number-style = bold "#a5adce" + hunk-header-style = file line-number syntax + line-numbers-left-style = "#737994" + line-numbers-minus-style = bold "#e78284" + line-numbers-plus-style = bold "#a6d189" + line-numbers-right-style = "#737994" + line-numbers-zero-style = "#737994" + # 35% red 65% base + minus-emph-style = bold syntax "#704f5c" + # 20% red 80% base + minus-style = syntax "#544452" + # 35% green 65% base + plus-emph-style = bold syntax "#596b5e" + # 20% green 80% base + plus-style = syntax "#475453" + map-styles = \ + bold purple => syntax "#66597e", \ + bold blue => syntax "#505d81", \ + bold cyan => syntax "#546b7a", \ + bold yellow => syntax "#6f6860" + # Should match the name of the bat theme + syntax-theme = Catppuccin Frappe + +[delta "catppuccin-macchiato"] + blame-palette = "#24273a #1e2030 #181926 #363a4f #494d64" + commit-decoration-style = "#6e738d" bold box ul + dark = true + file-decoration-style = "#6e738d" + file-style = "#cad3f5" + hunk-header-decoration-style = "#6e738d" box ul + hunk-header-file-style = bold + hunk-header-line-number-style = bold "#a5adcb" + hunk-header-style = file line-number syntax + line-numbers-left-style = "#6e738d" + line-numbers-minus-style = bold "#ed8796" + line-numbers-plus-style = bold "#a6da95" + line-numbers-right-style = "#6e738d" + line-numbers-zero-style = "#6e738d" + # 35% red 65% base + minus-emph-style = bold syntax "#6a485a" + # 20% red 80% base + minus-style = syntax "#4c3a4c" + # 35% green 65% base + plus-emph-style = bold syntax "#51655a" + # 20% green 80% base + plus-style = syntax "#3e4b4c" + map-styles = \ + bold purple => syntax "#5c517c", \ + bold blue => syntax "#47557b", \ + bold cyan => syntax "#4a6475", \ + bold yellow => syntax "#6a635d" + # Should match the name of the bat theme + syntax-theme = Catppuccin Macchiato + +[delta "catppuccin-mocha"] + blame-palette = "#1e1e2e #181825 #11111b #313244 #45475a" + commit-decoration-style = "#6c7086" bold box ul + dark = true + file-decoration-style = "#6c7086" + file-style = "#cdd6f4" + hunk-header-decoration-style = "#6c7086" box ul + hunk-header-file-style = bold + hunk-header-line-number-style = bold "#a6adc8" + hunk-header-style = file line-number syntax + line-numbers-left-style = "#6c7086" + line-numbers-minus-style = bold "#f38ba8" + line-numbers-plus-style = bold "#a6e3a1" + line-numbers-right-style = "#6c7086" + line-numbers-zero-style = "#6c7086" + # 35% red 65% base + minus-emph-style = bold syntax "#694559" + # 20% red 80% base + minus-style = syntax "#493447" + # 35% green 65% base + plus-emph-style = bold syntax "#4e6356" + # 20% green 80% base + plus-style = syntax "#394545" + map-styles = \ + bold purple => syntax "#5b4e74", \ + bold blue => syntax "#445375", \ + bold cyan => syntax "#446170", \ + bold yellow => syntax "#6b635b" + # Should match the name of the bat theme + syntax-theme = Catppuccin Mocha diff --git a/dot_config/eza/theme.yml b/dot_config/eza/theme.yml index f34037f7..1936dbb8 100644 --- a/dot_config/eza/theme.yml +++ b/dot_config/eza/theme.yml @@ -1,102 +1,102 @@ colourful: true filekinds: - normal: { foreground: "#c0caf5" } - directory: { foreground: "#7aa2f7" } - symlink: { foreground: "#2ac3de" } - pipe: { foreground: "#414868" } - block_device: { foreground: "#e0af68" } - char_device: { foreground: "#e0af68" } - socket: { foreground: "#414868" } - special: { foreground: "#9d7cd8" } - executable: { foreground: "#9ece6a" } - mount_point: { foreground: "#b4f9f8" } + normal: {foreground: "#BAC2DE"} + directory: {foreground: "#89B4FA"} + symlink: {foreground: "#89DCEB"} + pipe: {foreground: "#7F849C"} + block_device: {foreground: "#EBA0AC"} + char_device: {foreground: "#EBA0AC"} + socket: {foreground: "#585B70"} + special: {foreground: "#CBA6F7"} + executable: {foreground: "#A6E3A1"} + mount_point: {foreground: "#74C7EC"} perms: - user_read: { foreground: "#2ac3de" } - user_write: { foreground: "#bb9af7" } - user_execute_file: { foreground: "#9ece6a" } - user_execute_other: { foreground: "#9ece6a" } - group_read: { foreground: "#2ac3de" } - group_write: { foreground: "#ff9e64" } - group_execute: { foreground: "#9ece6a" } - other_read: { foreground: "#2ac3de" } - other_write: { foreground: "#ff007c" } - other_execute: { foreground: "#9ece6a" } - special_user_file: { foreground: "#ff007c" } - special_other: { foreground: "#db4b4b" } - attribute: { foreground: "#737aa2" } + user_read: {foreground: "#CDD6F4"} + user_write: {foreground: "#F9E2AF"} + user_execute_file: {foreground: "#A6E3A1"} + user_execute_other: {foreground: "#A6E3A1"} + group_read: {foreground: "#BAC2DE"} + group_write: {foreground: "#F9E2AF"} + group_execute: {foreground: "#A6E3A1"} + other_read: {foreground: "#A6ADC8"} + other_write: {foreground: "#F9E2AF"} + other_execute: {foreground: "#A6E3A1"} + special_user_file: {foreground: "#CBA6F7"} + special_other: {foreground: "#585B70"} + attribute: {foreground: "#A6ADC8"} size: - major: { foreground: "#2ac3de" } - minor: { foreground: "#9d7cd8" } - number_byte: { foreground: "#a9b1d6" } - number_kilo: { foreground: "#89ddff" } - number_mega: { foreground: "#2ac3de" } - number_giga: { foreground: "#ff9e64" } - number_huge: { foreground: "#ff007c" } - unit_byte: { foreground: "#a9b1d6" } - unit_kilo: { foreground: "#89ddff" } - unit_mega: { foreground: "#2ac3de" } - unit_giga: { foreground: "#ff9e64" } - unit_huge: { foreground: "#ff007c" } + major: {foreground: "#A6ADC8"} + minor: {foreground: "#89DCEB"} + number_byte: {foreground: "#CDD6F4"} + number_kilo: {foreground: "#BAC2DE"} + number_mega: {foreground: "#89B4FA"} + number_giga: {foreground: "#CBA6F7"} + number_huge: {foreground: "#CBA6F7"} + unit_byte: {foreground: "#A6ADC8"} + unit_kilo: {foreground: "#89B4FA"} + unit_mega: {foreground: "#CBA6F7"} + unit_giga: {foreground: "#CBA6F7"} + unit_huge: {foreground: "#74C7EC"} users: - user_you: { foreground: "#3d59a1" } - user_root: { foreground: "#bb9af7" } - user_other: { foreground: "#2ac3de" } - group_yours: { foreground: "#89ddff" } - group_root: { foreground: "#bb9af7" } - group_other: { foreground: "#c0caf5" } + user_you: {foreground: "#CDD6F4"} + user_root: {foreground: "#F38BA8"} + user_other: {foreground: "#CBA6F7"} + group_yours: {foreground: "#BAC2DE"} + group_other: {foreground: "#7F849C"} + group_root: {foreground: "#F38BA8"} links: - normal: { foreground: "#89ddff" } - multi_link_file: { foreground: "#2ac3de" } + normal: {foreground: "#89DCEB"} + multi_link_file: {foreground: "#74C7EC"} git: - new: { foreground: "#9ece6a" } - modified: { foreground: "#bb9af7" } - deleted: { foreground: "#db4b4b" } - renamed: { foreground: "#2ac3de" } - typechange: { foreground: "#2ac3de" } - ignored: { foreground: "#545c7e" } - conflicted: { foreground: "#ff9e64" } + new: {foreground: "#A6E3A1"} + modified: {foreground: "#F9E2AF"} + deleted: {foreground: "#F38BA8"} + renamed: {foreground: "#94E2D5"} + typechange: {foreground: "#F5C2E7"} + ignored: {foreground: "#7F849C"} + conflicted: {foreground: "#EBA0AC"} git_repo: - branch_main: { foreground: "#737aa2" } - branch_other: { foreground: "#b4f9f8" } - git_clean: { foreground: "#292e42" } - git_dirty: { foreground: "#bb9af7" } + branch_main: {foreground: "#CDD6F4"} + branch_other: {foreground: "#CBA6F7"} + git_clean: {foreground: "#A6E3A1"} + git_dirty: {foreground: "#F38BA8"} security_context: - colon: { foreground: "#545c7e" } - user: { foreground: "#737aa2" } - role: { foreground: "#2ac3de" } - typ: { foreground: "#3d59a1" } - range: { foreground: "#9d7cd8" } + colon: {foreground: "#7F849C"} + user: {foreground: "#BAC2DE"} + role: {foreground: "#CBA6F7"} + typ: {foreground: "#585B70"} + range: {foreground: "#CBA6F7"} file_type: - image: { foreground: "#89ddff" } - video: { foreground: "#b4f9f8" } - music: { foreground: "#73daca" } - lossless: { foreground: "#41a6b5" } - crypto: { foreground: "#db4b4b" } - document: { foreground: "#a9b1d6" } - compressed: { foreground: "#ff9e64" } - temp: { foreground: "#737aa2" } - compiled: { foreground: "#737aa2" } - build: { foreground: "#1abc9c" } - source: { foreground: "#bb9af7" } + image: {foreground: "#F9E2AF"} + video: {foreground: "#F38BA8"} + music: {foreground: "#A6E3A1"} + lossless: {foreground: "#94E2D5"} + crypto: {foreground: "#585B70"} + document: {foreground: "#CDD6F4"} + compressed: {foreground: "#F5C2E7"} + temp: {foreground: "#EBA0AC"} + compiled: {foreground: "#74C7EC"} + build: {foreground: "#585B70"} + source: {foreground: "#89B4FA"} -punctuation: { foreground: "#292e42" } -date: { foreground: "#e0af68" } -inode: { foreground: "#737aa2" } -blocks: { foreground: "#737aa2" } -header: { foreground: "#a9b1d6" } -octal: { foreground: "#ff9e64" } -flags: { foreground: "#9d7cd8" } +punctuation: {foreground: "#7F849C"} +date: {foreground: "#F9E2AF"} +inode: {foreground: "#A6ADC8"} +blocks: {foreground: "#9399B2"} +header: {foreground: "#CDD6F4"} +octal: {foreground: "#94E2D5"} +flags: {foreground: "#CBA6F7"} -symlink_path: { foreground: "#89ddff" } -control_char: { foreground: "#ff9e64" } -broken_symlink: { foreground: "#ff007c" } -broken_path_overlay: { foreground: "#ff007c" } +symlink_path: {foreground: "#89DCEB"} +control_char: {foreground: "#74C7EC"} +broken_symlink: {foreground: "#F38BA8"} +broken_path_overlay: {foreground: "#585B70"} diff --git a/dot_config/gh-dash/config.yml b/dot_config/gh-dash/config.yml index bf4b702b..083ef129 100644 --- a/dot_config/gh-dash/config.yml +++ b/dot_config/gh-dash/config.yml @@ -163,15 +163,16 @@ theme: compact: false colors: text: - primary: "#c0caf5" - secondary: "#7aa2f7" - inverted: "#1a1b26" - faint: "#565f89" - warning: "#f7768e" - success: "#9ece6a" + primary: "#cdd6f4" + secondary: "#cba6f7" + inverted: "#11111b" + faint: "#bac2de" + warning: "#f9e2af" + success: "#a6e3a1" + error: "#f38ba8" background: - selected: "#283457" + selected: "#313244" border: - primary: "#7aa2f7" - secondary: "#3b4261" - faint: "#292e42" + primary: "#cba6f7" + secondary: "#45475a" + faint: "#313244" diff --git a/dot_config/ghostty/config b/dot_config/ghostty/config index fc0c7a41..0d54961e 100644 --- a/dot_config/ghostty/config +++ b/dot_config/ghostty/config @@ -7,7 +7,7 @@ font-feature = +cv63 font-size = 13.0 -theme = tokyonight +theme = catppuccin-mocha working-directory = home window-inherit-working-directory = false diff --git a/dot_config/k9s/skin.yml b/dot_config/k9s/skin.yml new file mode 100644 index 00000000..f1523a51 --- /dev/null +++ b/dot_config/k9s/skin.yml @@ -0,0 +1,100 @@ +k9s: + body: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + logoColor: '#cba6f7' + prompt: + fgColor: '#cdd6f4' + bgColor: '#181825' + suggestColor: '#89b4fa' + help: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + sectionColor: '#a6e3a1' + keyColor: '#89b4fa' + numKeyColor: '#eba0ac' + frame: + title: + fgColor: '#94e2d5' + bgColor: '#1e1e2e' + highlightColor: '#f5c2e7' + counterColor: '#f9e2af' + filterColor: '#a6e3a1' + border: + fgColor: '#cba6f7' + focusColor: '#b4befe' + menu: + fgColor: '#cdd6f4' + keyColor: '#89b4fa' + numKeyColor: '#eba0ac' + crumbs: + fgColor: '#1e1e2e' + bgColor: '#eba0ac' + activeColor: '#f2cdcd' + status: + newColor: '#89b4fa' + modifyColor: '#b4befe' + addColor: '#a6e3a1' + pendingColor: '#fab387' + errorColor: '#f38ba8' + highlightColor: '#89dceb' + killColor: '#cba6f7' + completedColor: '#6c7086' + info: + fgColor: '#fab387' + sectionColor: '#cdd6f4' + views: + table: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + cursorFgColor: '#313244' + cursorBgColor: '#45475a' + markColor: '#f5e0dc' + header: + fgColor: '#f9e2af' + bgColor: '#1e1e2e' + sorterColor: '#89dceb' + xray: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + cursorColor: '#45475a' + cursorTextColor: '#1e1e2e' + graphicColor: '#f5c2e7' + charts: + bgColor: '#1e1e2e' + chartBgColor: '#1e1e2e' + dialBgColor: '#1e1e2e' + defaultDialColors: + - '#a6e3a1' + - '#f38ba8' + defaultChartColors: + - '#a6e3a1' + - '#f38ba8' + resourceColors: + cpu: + - '#cba6f7' + - '#89b4fa' + mem: + - '#f9e2af' + - '#fab387' + yaml: + keyColor: '#89b4fa' + valueColor: '#cdd6f4' + colonColor: '#a6adc8' + logs: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + indicator: + fgColor: '#b4befe' + bgColor: '#1e1e2e' + toggleOnColor: '#a6e3a1' + toggleOffColor: '#a6adc8' + dialog: + fgColor: '#f9e2af' + bgColor: '#9399b2' + buttonFgColor: '#1e1e2e' + buttonBgColor: '#7f849c' + buttonFocusFgColor: '#1e1e2e' + buttonFocusBgColor: '#f5c2e7' + labelFgColor: '#f5e0dc' + fieldFgColor: '#cdd6f4' diff --git a/dot_config/k9s/skins/catppuccin-mocha.yaml b/dot_config/k9s/skins/catppuccin-mocha.yaml new file mode 100644 index 00000000..f1523a51 --- /dev/null +++ b/dot_config/k9s/skins/catppuccin-mocha.yaml @@ -0,0 +1,100 @@ +k9s: + body: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + logoColor: '#cba6f7' + prompt: + fgColor: '#cdd6f4' + bgColor: '#181825' + suggestColor: '#89b4fa' + help: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + sectionColor: '#a6e3a1' + keyColor: '#89b4fa' + numKeyColor: '#eba0ac' + frame: + title: + fgColor: '#94e2d5' + bgColor: '#1e1e2e' + highlightColor: '#f5c2e7' + counterColor: '#f9e2af' + filterColor: '#a6e3a1' + border: + fgColor: '#cba6f7' + focusColor: '#b4befe' + menu: + fgColor: '#cdd6f4' + keyColor: '#89b4fa' + numKeyColor: '#eba0ac' + crumbs: + fgColor: '#1e1e2e' + bgColor: '#eba0ac' + activeColor: '#f2cdcd' + status: + newColor: '#89b4fa' + modifyColor: '#b4befe' + addColor: '#a6e3a1' + pendingColor: '#fab387' + errorColor: '#f38ba8' + highlightColor: '#89dceb' + killColor: '#cba6f7' + completedColor: '#6c7086' + info: + fgColor: '#fab387' + sectionColor: '#cdd6f4' + views: + table: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + cursorFgColor: '#313244' + cursorBgColor: '#45475a' + markColor: '#f5e0dc' + header: + fgColor: '#f9e2af' + bgColor: '#1e1e2e' + sorterColor: '#89dceb' + xray: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + cursorColor: '#45475a' + cursorTextColor: '#1e1e2e' + graphicColor: '#f5c2e7' + charts: + bgColor: '#1e1e2e' + chartBgColor: '#1e1e2e' + dialBgColor: '#1e1e2e' + defaultDialColors: + - '#a6e3a1' + - '#f38ba8' + defaultChartColors: + - '#a6e3a1' + - '#f38ba8' + resourceColors: + cpu: + - '#cba6f7' + - '#89b4fa' + mem: + - '#f9e2af' + - '#fab387' + yaml: + keyColor: '#89b4fa' + valueColor: '#cdd6f4' + colonColor: '#a6adc8' + logs: + fgColor: '#cdd6f4' + bgColor: '#1e1e2e' + indicator: + fgColor: '#b4befe' + bgColor: '#1e1e2e' + toggleOnColor: '#a6e3a1' + toggleOffColor: '#a6adc8' + dialog: + fgColor: '#f9e2af' + bgColor: '#9399b2' + buttonFgColor: '#1e1e2e' + buttonBgColor: '#7f849c' + buttonFocusFgColor: '#1e1e2e' + buttonFocusBgColor: '#f5c2e7' + labelFgColor: '#f5e0dc' + fieldFgColor: '#cdd6f4' diff --git a/dot_config/private_fish/config.fish b/dot_config/private_fish/config.fish index a922fda6..b5450dc6 100644 --- a/dot_config/private_fish/config.fish +++ b/dot_config/private_fish/config.fish @@ -41,6 +41,11 @@ fish_add_path /opt/homebrew/opt/openjdk/bin/ set -gx FD_DEFAULT_COMMAND 'fd --hidden --follow' set -gx FZF_DEFAULT_COMMAND "$FD_DEFAULT_COMMAND --exclude .git --exclude node_modules --exclude .venv" set -gx FZF_DEFAULT_OPTS ' + --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 + --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc + --color=marker:#b4befe,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8 + --color=selected-bg:#45475a + --color=border:#6c7086,label:#cdd6f4 --bind \'ctrl-t:transform:if not string match -q "Files*" $FZF_PROMPT; echo "change-prompt(Files> )+reload:fd --type f --color always"; else; echo "change-prompt(Directories> )+reload:fd --type d --color always"; end\' --height 50% --layout=reverse diff --git a/dot_config/private_fish/fish_plugins b/dot_config/private_fish/fish_plugins index de299faa..0cfb675d 100644 --- a/dot_config/private_fish/fish_plugins +++ b/dot_config/private_fish/fish_plugins @@ -4,4 +4,4 @@ jorgebucaran/autopair.fish jorgebucaran/replay.fish nickeb96/puffer-fish jorgebucaran/fisher -vitallium/tokyonight-fish +catppuccin/fish diff --git a/dot_config/private_fish/themes/Catppuccin Mocha.theme b/dot_config/private_fish/themes/Catppuccin Mocha.theme new file mode 100644 index 00000000..2d12a60e --- /dev/null +++ b/dot_config/private_fish/themes/Catppuccin Mocha.theme @@ -0,0 +1,89 @@ +# name: 'Catppuccin Mocha' +# url: 'https://github.com/catppuccin/fish' + +[light] +# preferred_background: eff1f5 +fish_color_normal 4c4f69 +fish_color_command 1e66f5 +fish_color_param dd7878 +fish_color_keyword 8839ef +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 1e66f5 +fish_color_host_remote 40a02b +fish_color_status d20f39 +fish_pager_color_progress 9ca0b0 +fish_pager_color_prefix ea76cb +fish_pager_color_completion 4c4f69 +fish_pager_color_description 9ca0b0 + +[dark] +# preferred_background: 1e1e2e +fish_color_normal cdd6f4 +fish_color_command 89b4fa +fish_color_param f2cdcd +fish_color_keyword cba6f7 +fish_color_quote a6e3a1 +fish_color_redirection f5c2e7 +fish_color_end fab387 +fish_color_comment 7f849c +fish_color_error f38ba8 +fish_color_gray 6c7086 +fish_color_selection --background=313244 +fish_color_search_match --background=313244 +fish_color_option a6e3a1 +fish_color_operator f5c2e7 +fish_color_escape eba0ac +fish_color_autosuggestion 6c7086 +fish_color_cancel f38ba8 +fish_color_cwd f9e2af +fish_color_user 94e2d5 +fish_color_host 89b4fa +fish_color_host_remote a6e3a1 +fish_color_status f38ba8 +fish_pager_color_progress 6c7086 +fish_pager_color_prefix f5c2e7 +fish_pager_color_completion cdd6f4 +fish_pager_color_description 6c7086 + +[unknown] +# preferred_background: 1e1e2e +fish_color_normal cdd6f4 +fish_color_command 89b4fa +fish_color_param f2cdcd +fish_color_keyword cba6f7 +fish_color_quote a6e3a1 +fish_color_redirection f5c2e7 +fish_color_end fab387 +fish_color_comment 7f849c +fish_color_error f38ba8 +fish_color_gray 6c7086 +fish_color_selection --background=313244 +fish_color_search_match --background=313244 +fish_color_option a6e3a1 +fish_color_operator f5c2e7 +fish_color_escape eba0ac +fish_color_autosuggestion 6c7086 +fish_color_cancel f38ba8 +fish_color_cwd f9e2af +fish_color_user 94e2d5 +fish_color_host 89b4fa +fish_color_host_remote a6e3a1 +fish_color_status f38ba8 +fish_pager_color_progress 6c7086 +fish_pager_color_prefix f5c2e7 +fish_pager_color_completion cdd6f4 +fish_pager_color_description 6c7086 diff --git a/dot_config/private_fish/themes/TokyoNight Night.theme b/dot_config/private_fish/themes/TokyoNight Night.theme deleted file mode 100644 index ec7e695a..00000000 --- a/dot_config/private_fish/themes/TokyoNight Night.theme +++ /dev/null @@ -1,24 +0,0 @@ -# Upstream: https://github.com/folke/tokyonight.nvim/blob/main/extras/fish/tokyonight_night.fish -# Syntax Highlighting Colors -fish_color_normal c0caf5 -fish_color_command 7dcfff -fish_color_keyword bb9af7 -fish_color_quote e0af68 -fish_color_redirection c0caf5 -fish_color_end ff9e64 -fish_color_option bb9af7 -fish_color_error f7768e -fish_color_param 9d7cd8 -fish_color_comment 565f89 -fish_color_selection --background=283457 -fish_color_search_match --background=283457 -fish_color_operator 9ece6a -fish_color_escape bb9af7 -fish_color_autosuggestion 565f89 - -# Completion Pager Colors -fish_pager_color_progress 565f89 -fish_pager_color_prefix 7dcfff -fish_pager_color_completion c0caf5 -fish_pager_color_description 565f89 -fish_pager_color_selected_background --background=283457 diff --git a/dot_config/starship.toml b/dot_config/starship.toml index f0613cfb..7bf8501f 100644 --- a/dot_config/starship.toml +++ b/dot_config/starship.toml @@ -1,4 +1,33 @@ add_newline = false +palette = "catppuccin_mocha" + +[palettes.catppuccin_mocha] +rosewater = "#f5e0dc" +flamingo = "#f2cdcd" +pink = "#f5c2e7" +mauve = "#cba6f7" +red = "#f38ba8" +maroon = "#eba0ac" +peach = "#fab387" +yellow = "#f9e2af" +green = "#a6e3a1" +teal = "#94e2d5" +sky = "#89dceb" +sapphire = "#74c7ec" +blue = "#89b4fa" +lavender = "#b4befe" +text = "#cdd6f4" +subtext1 = "#bac2de" +subtext0 = "#a6adc8" +overlay2 = "#9399b2" +overlay1 = "#7f849c" +overlay0 = "#6c7086" +surface2 = "#585b70" +surface1 = "#45475a" +surface0 = "#313244" +base = "#1e1e2e" +mantle = "#181825" +crust = "#11111b" [aws] disabled = true diff --git a/dot_config/television/config.toml b/dot_config/television/config.toml index 11155f0b..5fd14c72 100644 --- a/dot_config/television/config.toml +++ b/dot_config/television/config.toml @@ -31,7 +31,7 @@ orientation = "landscape" # A list of builtin themes can be found in the `themes` directory of the television # repository. You may also create your own theme by creating a new file in a `themes` # directory in your configuration directory (see the `config.toml` location above). -theme = "tokyonight" +theme = "catppuccin-mocha" # Feature-specific configurations # Each feature can have its own configuration section diff --git a/dot_config/yazi/theme.toml b/dot_config/yazi/theme.toml index 7d7d676f..e30dcc2f 100644 --- a/dot_config/yazi/theme.toml +++ b/dot_config/yazi/theme.toml @@ -1,2 +1,2 @@ [flavor] -dark = "tokyo-night" +dark = "catppuccin-mocha" diff --git a/dot_config/zed/private_settings.json b/dot_config/zed/private_settings.json index 2f242519..30ce1d56 100644 --- a/dot_config/zed/private_settings.json +++ b/dot_config/zed/private_settings.json @@ -700,6 +700,9 @@ "auto_install_extensions": { "ansible": true, "basher": true, + "catppuccin": true, + "catppuccin-blur": true, + "catppuccin-icons": true, "csv": true, "docker-compose": true, "dockerfile": true, @@ -712,6 +715,7 @@ "harper": true, "helm": true, "html": true, + "kanagawa-themes": true, "latex": true, "log": true, "lua": true, @@ -724,9 +728,9 @@ "scheme": true, "sql": true, "terraform": true, - "tokyo-night": true, "toml": true, "vscode-icons": true, + "zedokai": true, "zig": true }, @@ -734,7 +738,7 @@ // THEME OVERRIDES (empty - using defaults) // ══════════════════════════════════════════════════════════════════════════════ "theme_overrides": { - "Tokyo Night": { + "Catppuccin Mocha": { "syntax": { "comment": { "font_style": "italic", diff --git a/dot_gitconfig.tmpl b/dot_gitconfig.tmpl index c39ca2d0..88018b60 100644 --- a/dot_gitconfig.tmpl +++ b/dot_gitconfig.tmpl @@ -125,10 +125,15 @@ diffFilter = delta --color-only +[include] + + path = ~/.config/delta/catppuccin.gitconfig + [delta] dark = true - syntax-theme = Visual Studio Dark+ + features = catppuccin-mocha + syntax-theme = Catppuccin Mocha navigate = true line-numbers = true hunk-header-style = omit diff --git a/dot_pi/agent/modify_private_settings.json b/dot_pi/agent/modify_private_settings.json index d472385b..8a2515d3 100755 --- a/dot_pi/agent/modify_private_settings.json +++ b/dot_pi/agent/modify_private_settings.json @@ -9,7 +9,7 @@ set -euo pipefail MANAGED_CONFIG='{ "hideThinkingBlock": true, "collapseChangelog": false, - "theme": "tokyo-night", + "theme": "catppuccin-mocha", "doubleEscapeAction": "tree", "enabledModels": [ "openai-codex/gpt-5.5", diff --git a/dot_pi/agent/themes/catppuccin-mocha.json b/dot_pi/agent/themes/catppuccin-mocha.json new file mode 100644 index 00000000..4a7d3c73 --- /dev/null +++ b/dot_pi/agent/themes/catppuccin-mocha.json @@ -0,0 +1,90 @@ +{ + "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json", + "name": "catppuccin-mocha", + "vars": { + "rosewater": "#f5e0dc", + "flamingo": "#f2cdcd", + "pink": "#f5c2e7", + "mauve": "#cba6f7", + "red": "#f38ba8", + "maroon": "#eba0ac", + "peach": "#fab387", + "yellow": "#f9e2af", + "green": "#a6e3a1", + "teal": "#94e2d5", + "sky": "#89dceb", + "sapphire": "#74c7ec", + "blue": "#89b4fa", + "lavender": "#b4befe", + "text": "#cdd6f4", + "subtext1": "#bac2de", + "subtext0": "#a6adc8", + "overlay2": "#9399b2", + "overlay1": "#7f849c", + "overlay0": "#6c7086", + "surface2": "#585b70", + "surface1": "#45475a", + "surface0": "#313244", + "base": "#1e1e2e", + "mantle": "#181825", + "crust": "#11111b" + }, + "colors": { + "accent": "mauve", + "border": "blue", + "borderAccent": "sapphire", + "borderMuted": "surface0", + "success": "green", + "error": "red", + "warning": "yellow", + "muted": "overlay1", + "dim": "overlay0", + "text": "", + "thinkingText": "overlay1", + "selectedBg": "surface0", + "userMessageBg": "surface0", + "userMessageText": "", + "customMessageBg": "surface1", + "customMessageText": "", + "customMessageLabel": "mauve", + "toolPendingBg": "mantle", + "toolSuccessBg": "#3e4b4c", + "toolErrorBg": "#4c3a4c", + "toolTitle": "", + "toolOutput": "subtext0", + "mdHeading": "peach", + "mdLink": "blue", + "mdLinkUrl": "overlay0", + "mdCode": "teal", + "mdCodeBlock": "green", + "mdCodeBlockBorder": "overlay1", + "mdQuote": "subtext0", + "mdQuoteBorder": "overlay1", + "mdHr": "overlay1", + "mdListBullet": "mauve", + "toolDiffAdded": "green", + "toolDiffRemoved": "red", + "toolDiffContext": "overlay1", + "syntaxComment": "overlay0", + "syntaxKeyword": "mauve", + "syntaxFunction": "blue", + "syntaxVariable": "text", + "syntaxString": "green", + "syntaxNumber": "peach", + "syntaxType": "yellow", + "syntaxOperator": "sky", + "syntaxPunctuation": "overlay2", + "thinkingOff": "surface0", + "thinkingMinimal": "overlay0", + "thinkingLow": "blue", + "thinkingMedium": "sapphire", + "thinkingHigh": "mauve", + "thinkingXhigh": "pink", + "bashMode": "green" + }, + "export": { + "pageBg": "crust", + "cardBg": "mantle", + "infoBg": "surface0" + } +} diff --git a/dot_pi/agent/themes/tokyo-night.json b/dot_pi/agent/themes/tokyo-night.json deleted file mode 100644 index 2d6b038f..00000000 --- a/dot_pi/agent/themes/tokyo-night.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json", - "name": "tokyo-night", - "vars": { - "cyan": "#7dcfff", - "blue": "#7aa2f7", - "blue1": "#2ac3de", - "green": "#9ece6a", - "green1": "#73daca", - "red": "#f7768e", - "yellow": "#e0af68", - "orange": "#ff9e64", - "magenta": "#bb9af7", - "gray": "#565f89", - "dimGray": "#414868", - "darkGray": "#24283b", - "bgDark": "#16161e", - "bgHighlight": "#292e42", - "fgDark": "#a9b1d6", - "accent": "#7dcfff", - "foreground": "#c0caf5", - "background": "#1a1b26", - "userMsgBg": "#16161e", - "toolPendingBg": "#1f2335", - "toolSuccessBg": "#1a2b32", - "toolErrorBg": "#2d202a" - }, - "colors": { - "accent": "accent", - "border": "blue", - "borderAccent": "cyan", - "borderMuted": "dimGray", - "success": "green", - "error": "red", - "warning": "yellow", - "muted": "gray", - "dim": "dimGray", - "text": "foreground", - "thinkingText": "gray", - - "userMessageBg": "userMsgBg", - "userMessageText": "foreground", - "toolPendingBg": "toolPendingBg", - "toolSuccessBg": "toolSuccessBg", - "toolErrorBg": "toolErrorBg", - "toolTitle": "foreground", - "toolOutput": "fgDark", - - "selectedBg": "bgHighlight", - "customMessageBg": "userMsgBg", - "customMessageText": "foreground", - "customMessageLabel": "accent", - - "mdHeading": "blue", - "mdLink": "cyan", - "mdLinkUrl": "fgDark", - "mdCode": "accent", - "mdCodeBlock": "green", - "mdCodeBlockBorder": "gray", - "mdQuote": "gray", - "mdQuoteBorder": "gray", - "mdHr": "gray", - "mdListBullet": "accent", - - "toolDiffAdded": "green1", - "toolDiffRemoved": "red", - "toolDiffContext": "gray", - - "syntaxComment": "gray", - "syntaxKeyword": "magenta", - "syntaxFunction": "blue", - "syntaxVariable": "cyan", - "syntaxString": "green", - "syntaxNumber": "orange", - "syntaxType": "blue1", - "syntaxOperator": "cyan", - "syntaxPunctuation": "foreground", - - "thinkingOff": "darkGray", - "thinkingMinimal": "#394b70", - "thinkingLow": "#3d59a1", - "thinkingMedium": "#565f89", - "thinkingHigh": "#7aa2f7", - "thinkingXhigh": "#bb9af7", - - "bashMode": "green" - }, - "export": { - "pageBg": "background", - "cardBg": "toolPendingBg", - "infoBg": "darkGray" - } -} diff --git a/dot_tmux.conf b/dot_tmux.conf index b27578c1..92190c09 100644 --- a/dot_tmux.conf +++ b/dot_tmux.conf @@ -132,27 +132,29 @@ set -g default-terminal "tmux-256color" set -ga terminal-overrides ",xterm-256color*:Tc" # Enable true color support setw -g aggressive-resize on # Better handling of terminal resizing -# TokyoNight Theme -set -g mode-style "fg=#7aa2f7,bg=#3b4261" -set -g message-style "fg=#7aa2f7,bg=#3b4261" -set -g message-command-style "fg=#7aa2f7,bg=#3b4261" -set -g pane-border-style "fg=#3b4261" -set -g pane-active-border-style "fg=#7aa2f7" +# Catppuccin Mocha Theme +# Palette: base=#1e1e2e mantle=#181825 surface0=#313244 surface1=#45475a +# text=#cdd6f4 subtext1=#bac2de overlay1=#7f849c mauve=#cba6f7 +set -g mode-style "fg=#cba6f7,bg=#45475a" +set -g message-style "fg=#cba6f7,bg=#45475a" +set -g message-command-style "fg=#cba6f7,bg=#45475a" +set -g pane-border-style "fg=#45475a" +set -g pane-active-border-style "fg=#cba6f7" set -g status "on" set -g status-justify "left" -set -g status-style "fg=#7aa2f7,bg=#16161e" +set -g status-style "fg=#cba6f7,bg=#181825" set -g status-left-length "100" set -g status-right-length "100" set -g status-left-style NONE set -g status-right-style NONE # Status bar content -set -g status-left "# #S #[fg=#7aa2f7,bg=#16161e,nobold,nounderscore,noitalics]" -set -g status-right "#[fg=#16161e,bg=#16161e,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#16161e] #{prefix_highlight} #[fg=#3b4261,bg=#16161e,nobold,nounderscore,noitalics]#[fg=#15161e,bg=#7aa2f7,bold] #h " +set -g status-left "# #S #[fg=#cba6f7,bg=#181825,nobold,nounderscore,noitalics]" +set -g status-right "#[fg=#181825,bg=#181825,nobold,nounderscore,noitalics]#[fg=#cba6f7,bg=#181825] #{prefix_highlight} #[fg=#45475a,bg=#181825,nobold,nounderscore,noitalics]#[fg=#1e1e2e,bg=#cba6f7,bold] #h " # Window status formats -setw -g window-status-activity-style "underscore,fg=#a9b1d6,bg=#16161e" +setw -g window-status-activity-style "underscore,fg=#bac2de,bg=#181825" setw -g window-status-separator "" -setw -g window-status-style "NONE,fg=#a9b1d6,bg=#16161e" -setw -g window-status-format "#[fg=#16161e,bg=#16161e,nobold,nounderscore,noitalics]#[default] #I #W #F #[fg=#16161e,bg=#16161e,nobold,nounderscore,noitalics]" -setw -g window-status-current-format "#[fg=#16161e,bg=#3b4261,nobold,nounderscore,noitalics]#[fg=#7aa2f7,bg=#3b4261,bold] #I #W #F #[fg=#3b4261,bg=#16161e,nobold,nounderscore,noitalics]" +setw -g window-status-style "NONE,fg=#bac2de,bg=#181825" +setw -g window-status-format "#[fg=#181825,bg=#181825,nobold,nounderscore,noitalics]#[default] #I #W #F #[fg=#181825,bg=#181825,nobold,nounderscore,noitalics]" +setw -g window-status-current-format "#[fg=#181825,bg=#45475a,nobold,nounderscore,noitalics]#[fg=#cba6f7,bg=#45475a,bold] #I #W #F #[fg=#45475a,bg=#181825,nobold,nounderscore,noitalics]" diff --git a/private_Library/private_Application Support/lazygit/config.yml b/private_Library/private_Application Support/lazygit/config.yml index f84fdffc..42c3081e 100644 --- a/private_Library/private_Application Support/lazygit/config.yml +++ b/private_Library/private_Application Support/lazygit/config.yml @@ -18,31 +18,36 @@ gui: showBottomLine: false showRandomTip: false border: "rounded" + # Catppuccin Mocha (mauve accent) theme: activeBorderColor: - - "#ff9e64" + - "#cba6f7" - "bold" inactiveBorderColor: - - "#27a1b9" + - "#a6adc8" searchingActiveBorderColor: - - "#ff9e64" + - "#f9e2af" - "bold" optionsTextColor: - - "#7aa2f7" + - "#89b4fa" selectedLineBgColor: - - "#283457" + - "#313244" + inactiveViewSelectedLineBgColor: + - "#6c7086" cherryPickedCommitFgColor: - - "#7aa2f7" + - "#cba6f7" cherryPickedCommitBgColor: - - "#bb9af7" + - "#45475a" markedBaseCommitFgColor: - - "#7aa2f7" + - "#89b4fa" markedBaseCommitBgColor: - - "#e0af68" + - "#f9e2af" unstagedChangesColor: - - "#db4b4b" + - "#f38ba8" defaultFgColor: - - "#c0caf5" + - "#cdd6f4" + authorColors: + "*": "#b4befe" update: method: never customCommands: diff --git a/run_once_install_packages.sh.tmpl b/run_once_install_packages.sh.tmpl index 91e81ad1..696832c3 100755 --- a/run_once_install_packages.sh.tmpl +++ b/run_once_install_packages.sh.tmpl @@ -1,5 +1,6 @@ #!/bin/bash +export SOURCE_DIR="{{ .chezmoi.sourceDir }}" . "{{ joinPath .chezmoi.sourceDir "scripts/utils" }}" . "{{ joinPath .chezmoi.sourceDir "scripts/utils_install" }}" @@ -48,13 +49,10 @@ BUN_PACKAGES=( "@earendil-works/pi-coding-agent" "@ccusage/codex" "@ccusage/pi" - "ccusage" - "defuddle" "lat.md" "npm-check" "obsidian-headless" "pi-acp" - "@googleworkspace/cli" ) install_packages_from_list "BUN" "install_bun_package" "${BUN_PACKAGES[@]}" @@ -64,7 +62,8 @@ GO_PACKAGES=( "github.com/cosmos72/gomacro@latest:gomacro" ) -print_in_purple "Go packages\n" +echo "" +print_in_purple "Go packages" for package in "${GO_PACKAGES[@]}"; do IFS=':' read -r pkg_path pkg_name <<<"$package" install_go_package "$pkg_path" "${pkg_name:-$(basename "$pkg_path")}" @@ -72,7 +71,6 @@ done # UV tools UV_TOOLS=( - "gitingest" "pylatexenc" "nginx-language-server" ) @@ -101,7 +99,8 @@ if setup_github_cli; then "yusukebe/gh-markdown-preview" ) - print_in_purple "GH plugins\n" + echo "" + print_in_purple "GH plugins" for plugin in "${GH_PLUGINS[@]}"; do install_gh_plugin "$plugin" done @@ -114,7 +113,6 @@ YAZI_PLUGINS=( "yazi-rs/plugins:diff" "yazi-rs/plugins:git" "ndtoan96/ouch" - "BennyOe/tokyo-night" ) install_yazi_plugins "${YAZI_PLUGINS[@]}" diff --git a/run_once_settings.sh.tmpl b/run_once_settings.sh.tmpl index 1633d82a..4d9f092d 100755 --- a/run_once_settings.sh.tmpl +++ b/run_once_settings.sh.tmpl @@ -28,7 +28,7 @@ fi execute "if [ ! -d $HOME/.config/nvim ]; then git clone git@github.com:joelazar/nvim-config.git $HOME/.config/nvim; fi;" "Clone neovim config repo" -execute "fish -c 'echo y | fish_config theme save \"TokyoNight Night\"'" "Set fish theme" +execute "fish -c 'fish_config theme choose \"Catppuccin Mocha\"'" "Set fish theme" show_section "⌨️ Keyboard and System Settings" "$CYAN" @@ -69,11 +69,10 @@ execute "defaults write -g NSAutomaticWindowAnimationsEnabled -bool false" "Disa execute "defaults write com.apple.screencapture location ~/Pictures/screenshots/" "Save screenshots to the Pictures/screenshots directory" -execute "duti -s dev.zed.Zed-Preview public.plain-text all" "Set Zed as the default app for plain text files" +execute "duti -s dev.zed.Zed public.plain-text all" "Set Zed as the default app for plain text files" -execute "duti -s dev.zed.Zed-Preview public.comma-separated-values-text all" "Set Zed as the default app for CSV files" +execute "duti -s dev.zed.Zed public.comma-separated-values-text all" "Set Zed as the default app for CSV files" -execute "duti -s dev.zed.Zed-Preview public.data all" "Set Zed as the default app for data files" execute "duti -s com.colliderli.iina .mp4 all" "Set IINA as the default app for MP4 files" diff --git a/scripts/utils b/scripts/utils index 859e98ac..27eccb53 100755 --- a/scripts/utils +++ b/scripts/utils @@ -1,14 +1,14 @@ #!/bin/bash -# Tokyo Night theme colors (only define if not already set) +# Catppuccin Mocha theme colors (only define if not already set) if [[ -z "${PURPLE:-}" ]]; then - readonly PURPLE="#bd93f9" - readonly GREEN="#50fa7b" - readonly RED="#ff5555" - readonly YELLOW="#f1fa8c" - readonly CYAN="#8be9fd" - readonly ORANGE="#ffb86c" - readonly PINK="#ff79c6" + readonly PURPLE="#cba6f7" # mauve + readonly GREEN="#a6e3a1" + readonly RED="#f38ba8" + readonly YELLOW="#f9e2af" + readonly CYAN="#89dceb" # sky + readonly ORANGE="#fab387" # peach + readonly PINK="#f5c2e7" fi # Gum wrapper functions for common UI patterns diff --git a/scripts/utils_install b/scripts/utils_install index b31e5008..8e920c96 100755 --- a/scripts/utils_install +++ b/scripts/utils_install @@ -1,6 +1,10 @@ #!/bin/bash -SOURCE_DIR=$(chezmoi source-path) +# Honor SOURCE_DIR from caller (run_once template) to avoid chezmoi-state-lock +# contention when this script runs as part of `chezmoi apply`. Fall back to +# `chezmoi source-path` and finally to the canonical default. +SOURCE_DIR="${SOURCE_DIR:-$(chezmoi source-path 2>/dev/null)}" +SOURCE_DIR="${SOURCE_DIR:-$HOME/.local/share/chezmoi}" . "$SOURCE_DIR/scripts/utils" @@ -41,6 +45,7 @@ install_gum() { install_chezmoi() { if ! cmd_exists "chezmoi"; then + echo "" print_in_purple "🏠 Installing and configuring Chezmoi" brew install chezmoi @@ -64,6 +69,7 @@ install_chezmoi() { } install_brew_packages() { + echo "" print_in_purple "🍺 Installing packages from Brewfile" local brewfile="" @@ -89,6 +95,7 @@ install_brew_packages() { install_rust() { if ! cmd_exists "rustc"; then + echo "" print_in_purple "🦀 Installing Rust using rustup" curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y print_success "Rust installed and configured" @@ -99,6 +106,7 @@ install_rust() { install_magic() { if ! cmd_exists "magic"; then + echo "" print_in_purple "🪄 Installing Magic from Modular" # Install Magic @@ -150,6 +158,7 @@ install_yazi_plugins() { local -a plugin_list=("${@}") if cmd_exists "yazi"; then + echo "" print_in_purple "📁 Installing Yazi plugins" # Make sure yazi config directory exists @@ -170,10 +179,15 @@ install_yazi_plugins() { done # Install theme if not already present - if [ ! -d "$HOME/.config/yazi/flavors/tokyo-night.yazi" ]; then - execute "git clone https://github.com/BennyOe/tokyo-night.yazi.git ~/.config/yazi/flavors/tokyo-night.yazi" "Yazi Tokyo Night theme" + if [ ! -d "$HOME/.config/yazi/flavors/catppuccin-mocha.yazi" ]; then + execute "git clone https://github.com/yazi-rs/flavors.git /tmp/yazi-flavors-clone && cp -R /tmp/yazi-flavors-clone/catppuccin-mocha.yazi ~/.config/yazi/flavors/ && rm -rf /tmp/yazi-flavors-clone" "Yazi Catppuccin Mocha theme" else - print_success "Yazi Tokyo Night theme already installed" + print_success "Yazi Catppuccin Mocha theme already installed" + fi + # Clean up old tokyo-night theme + if [ -d "$HOME/.config/yazi/flavors/tokyo-night.yazi" ]; then + rm -rf "$HOME/.config/yazi/flavors/tokyo-night.yazi" + print_success "Removed old Yazi Tokyo Night theme" fi else print_warning "Yazi not installed. Skipping Yazi plugins installation." @@ -241,7 +255,13 @@ install_packages_from_list() { local -r installer="$2" local -a packages=("${@:3}") - print_in_purple "$type packages\n" + # Skip empty package lists so we don't print a header with nothing under it. + if [ "${#packages[@]}" -eq 0 ]; then + return 0 + fi + + echo "" + print_in_purple "$type packages" for package in "${packages[@]}"; do $installer "$package"