chore: misc config updates across hypr, nvim, waybar, zed, zsh
- hypr: add transform support to monitor template; tweak scrolling layout - nvim: refine apex theme token colors (operators, special, tags) - waybar: move bar to right border of secondary monitor (DP-2) - zed: add ssh connection, window/tab settings, adjust font sizes, rework theme token colors - zsh: add plugin highlight colors to apex themes - docs: add CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
77
CLAUDE.md
Normal file
77
CLAUDE.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# CLAUDE.md — chezmoi dotfiles
|
||||
|
||||
Chezmoi source tree for a Linux desktop (Hyprland + Neovim + Zsh/Zim).
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
chezmoi diff # preview pending changes
|
||||
chezmoi apply # render templates and apply to $HOME
|
||||
chezmoi status # show managed file status
|
||||
```
|
||||
|
||||
After applying, reload the affected tool:
|
||||
- Hyprland: `hyprctl reload`
|
||||
- Waybar: `pkill waybar && waybar &`
|
||||
- Neovim: reopen or `:source`
|
||||
- Zsh: `exec zsh`
|
||||
|
||||
## Chezmoi file naming
|
||||
|
||||
| Prefix/Suffix | Meaning |
|
||||
|---|---|
|
||||
| `dot_` | maps to `.` (e.g. `dot_config/` → `~/.config/`) |
|
||||
| `executable_` | sets executable bit |
|
||||
| `private_` | restricts permissions (600/700) |
|
||||
| `symlink_` | creates a symlink |
|
||||
| `.tmpl` | Go template rendered at apply time |
|
||||
| `##hostname.<name>` | host-specific variant |
|
||||
|
||||
## Template data (`chezmoi.toml`)
|
||||
|
||||
Config lives at `~/.config/chezmoi/chezmoi.toml` (not tracked). Access tags via `.chezmoi.config.data.tags.<tag>`.
|
||||
|
||||
Current tags: `desktop`, `laptop`, `hyprland`, `waybar`, `pipewire`, `dev`, `entertainment`, `cs2`, `bluetooth`
|
||||
|
||||
- `microphone` is only present when `pipewire = true` — guard with `{{- if (index $tags "pipewire") }}`.
|
||||
- `data.monitors` is an array; number of entries varies by machine.
|
||||
|
||||
## Architecture
|
||||
|
||||
- **`dot_config/hypr/`** — Hyprland. Entry point: `hyprland.conf`. Modular includes in `hyprland.d/`. New settings go in the appropriate `hyprland.d/` file.
|
||||
- **`dot_config/nvim/`** — Neovim (Lua + lazy.nvim). `init.lua` bootstraps lazy. Plugins: `lazy_setup.lua`. General settings: `polish.lua`. 2-space indents; see `dot_stylua.toml` + `selene.toml`.
|
||||
- **`dot_config/waybar/`** — Waybar config and styles. Host-specific variants via `##hostname.<name>`.
|
||||
- **`dot_config/zsh/`** — Zsh + Zim + Powerlevel10k. Aliases: `aliases.zsh`.
|
||||
- **`dot_local/bin/`** — User scripts (all `executable_` prefixed).
|
||||
- **`.chezmoiscripts/`** — `run_onchange_*` hooks run on `chezmoi apply`.
|
||||
|
||||
## Theming — apex-aeon / apex-neon
|
||||
|
||||
Two custom themes (`apex-aeon` dark, `apex-neon` neon) are applied across nvim, zsh, waybar, alacritty, kitty, ghostty, btop, fuzzel, gtk4, spicetify, swaync, wezterm, zathura, zed.
|
||||
|
||||
Theme files are **not edited by hand** — they are synced from `~/Dev/Themes/apex/dist` using:
|
||||
|
||||
```bash
|
||||
refresh-apex-themes
|
||||
```
|
||||
|
||||
This copies built theme artifacts into the appropriate `dot_config/*/themes/` directories.
|
||||
|
||||
## Local documentation
|
||||
|
||||
| Topic | Path |
|
||||
|---|---|
|
||||
| chezmoi | `~/.local/share/docs/chezmoi-docs/` |
|
||||
| Hyprland | `~/.local/share/docs/hyprland.wiki/` |
|
||||
| Waybar | `~/.local/share/docs/waybar.wiki/` (also `man 5 waybar`) |
|
||||
| Ghostty | `/usr/share/ghostty` |
|
||||
|
||||
## Commit convention
|
||||
|
||||
```
|
||||
scope: imperative subject
|
||||
```
|
||||
|
||||
Examples: `hypr: adjust keybinds`, `waybar: tweak clock format`, `nvim: add plugin`
|
||||
|
||||
For visual/UI changes include screenshots in the PR description, along with affected paths.
|
||||
@@ -7,6 +7,9 @@ monitorv2 {
|
||||
{{- if index . "vrr" }}
|
||||
vrr = {{ .vrr }}
|
||||
{{- end }}
|
||||
{{- if index . "transform" }}
|
||||
transform = {{ .transform }}
|
||||
{{- end }}
|
||||
}
|
||||
{{- end }}
|
||||
{{- if not .monitors }}
|
||||
|
||||
@@ -14,8 +14,11 @@ master {
|
||||
}
|
||||
|
||||
scrolling {
|
||||
fullscreen_on_one_column = false
|
||||
fullscreen_on_one_column = true
|
||||
focus_fit_method = 0
|
||||
follow_focus = true
|
||||
follow_min_visible = 0.1
|
||||
column_width = 0.7
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
|
||||
@@ -115,7 +115,7 @@ function M.load()
|
||||
Conditional = { fg = p.sacred },
|
||||
Repeat = { fg = p.sacred },
|
||||
Label = { fg = p.sacred },
|
||||
Operator = { fg = p.tech }, -- Cyan (Tech)
|
||||
Operator = { fg = p.text }, -- White (Neutral)
|
||||
Keyword = { fg = p.sacred },
|
||||
Exception = { fg = p.razor }, -- Red (Errors)
|
||||
|
||||
@@ -130,9 +130,9 @@ function M.load()
|
||||
Structure = { fg = p.amber },
|
||||
Typedef = { fg = p.amber },
|
||||
|
||||
Special = { fg = p.tech },
|
||||
SpecialChar = { fg = p.tech },
|
||||
Tag = { fg = p.tech },
|
||||
Special = { fg = p.sacred }, -- Purple (special grammar tokens)
|
||||
SpecialChar = { fg = p.amber }, -- Amber (escalated string variant: escapes, regex)
|
||||
Tag = { fg = p.azure }, -- Blue (structural: HTML/XML tags)
|
||||
Delimiter = { fg = p.dim }, -- Subtle delimiters
|
||||
Debug = { fg = p.razor },
|
||||
|
||||
|
||||
@@ -115,7 +115,7 @@ function M.load()
|
||||
Conditional = { fg = p.sacred },
|
||||
Repeat = { fg = p.sacred },
|
||||
Label = { fg = p.sacred },
|
||||
Operator = { fg = p.tech }, -- Cyan (Tech)
|
||||
Operator = { fg = p.text }, -- White (Neutral)
|
||||
Keyword = { fg = p.sacred },
|
||||
Exception = { fg = p.razor }, -- Red (Errors)
|
||||
|
||||
@@ -130,9 +130,9 @@ function M.load()
|
||||
Structure = { fg = p.amber },
|
||||
Typedef = { fg = p.amber },
|
||||
|
||||
Special = { fg = p.tech },
|
||||
SpecialChar = { fg = p.tech },
|
||||
Tag = { fg = p.tech },
|
||||
Special = { fg = p.sacred }, -- Purple (special grammar tokens)
|
||||
SpecialChar = { fg = p.amber }, -- Amber (escalated string variant: escapes, regex)
|
||||
Tag = { fg = p.azure }, -- Blue (structural: HTML/XML tags)
|
||||
Delimiter = { fg = p.dim }, -- Subtle delimiters
|
||||
Debug = { fg = p.razor },
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
{{- $tags := .chezmoi.config.data.tags -}}
|
||||
{{- $primary_output := "eDP-1" -}}
|
||||
{{- $secondary_output := "" -}}
|
||||
{{- range .monitors -}}
|
||||
{{- if index . "primary" -}}
|
||||
{{- $primary_output = .name -}}
|
||||
{{- else -}}
|
||||
{{- $secondary_output = .name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- $workspace_module := "" -}}
|
||||
@@ -13,8 +16,8 @@
|
||||
{{- end -}}
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "left",
|
||||
"output": "{{ $primary_output }}",
|
||||
"position": "right",
|
||||
"output": "{{ $secondary_output }}",
|
||||
"width": 54,
|
||||
"spacing": 4,
|
||||
"margin-top": 0,
|
||||
|
||||
@@ -7,6 +7,35 @@
|
||||
// custom settings, run `zed: open default settings` from the
|
||||
// command palette (cmd-shift-p / ctrl-shift-p)
|
||||
{
|
||||
"ssh_connections": [
|
||||
{
|
||||
"host": "192.168.122.168",
|
||||
"username": "mpuchstein",
|
||||
"args": [],
|
||||
"projects": [
|
||||
{
|
||||
"paths": [
|
||||
"C:\\Users\\mpuchstein\\Dev\\/IDEvelopAR_new"
|
||||
]
|
||||
}
|
||||
],
|
||||
"nickname": "VM"
|
||||
}
|
||||
],
|
||||
"project_panel": {
|
||||
"dock": "left"
|
||||
},
|
||||
"prettier": {
|
||||
"allowed": true
|
||||
},
|
||||
"window_decorations": "server",
|
||||
"tabs": {
|
||||
"file_icons": true,
|
||||
"git_status": true
|
||||
},
|
||||
"title_bar": {
|
||||
"show_branch_icon": true
|
||||
},
|
||||
"ui_font_weight": 400.0,
|
||||
"ui_font_family": "GeistMono Nerd Font",
|
||||
"buffer_font_family": "GeistMono Nerd Font",
|
||||
@@ -17,8 +46,8 @@
|
||||
},
|
||||
"vim_mode": true,
|
||||
"base_keymap": "JetBrains",
|
||||
"ui_font_size": 16.0,
|
||||
"buffer_font_size": 12.0,
|
||||
"ui_font_size": 14.0,
|
||||
"buffer_font_size": 13.0,
|
||||
"theme": {
|
||||
"mode": "system",
|
||||
"light": "Apex Aeon",
|
||||
|
||||
@@ -197,13 +197,13 @@
|
||||
"font_style": "italic"
|
||||
},
|
||||
"keyword": {
|
||||
"color": "#00eaff"
|
||||
"color": "#9d00ff"
|
||||
},
|
||||
"keyword.import": {
|
||||
"color": "#00eaff"
|
||||
"color": "#9d00ff"
|
||||
},
|
||||
"keyword.storage": {
|
||||
"color": "#00eaff"
|
||||
"color": "#9d00ff"
|
||||
},
|
||||
"function": {
|
||||
"color": "#0088cc"
|
||||
@@ -215,10 +215,10 @@
|
||||
"color": "#0088cc"
|
||||
},
|
||||
"type": {
|
||||
"color": "#9d00ff"
|
||||
"color": "#ffb700"
|
||||
},
|
||||
"type.builtin": {
|
||||
"color": "#9d00ff"
|
||||
"color": "#ffb700"
|
||||
},
|
||||
"string": {
|
||||
"color": "#00ff99"
|
||||
@@ -230,13 +230,13 @@
|
||||
"color": "#ffb700"
|
||||
},
|
||||
"number": {
|
||||
"color": "#ffb700"
|
||||
"color": "#00eaff"
|
||||
},
|
||||
"boolean": {
|
||||
"color": "#ffb700"
|
||||
"color": "#00eaff"
|
||||
},
|
||||
"constant": {
|
||||
"color": "#ededed"
|
||||
"color": "#00eaff"
|
||||
},
|
||||
"constant.builtin": {
|
||||
"color": "#9d00ff"
|
||||
@@ -509,13 +509,13 @@
|
||||
"font_style": "italic"
|
||||
},
|
||||
"keyword": {
|
||||
"color": "#007a88"
|
||||
"color": "#7a3cff"
|
||||
},
|
||||
"keyword.import": {
|
||||
"color": "#007a88"
|
||||
"color": "#7a3cff"
|
||||
},
|
||||
"keyword.storage": {
|
||||
"color": "#007a88"
|
||||
"color": "#7a3cff"
|
||||
},
|
||||
"function": {
|
||||
"color": "#005577"
|
||||
@@ -527,10 +527,10 @@
|
||||
"color": "#005577"
|
||||
},
|
||||
"type": {
|
||||
"color": "#7a3cff"
|
||||
"color": "#d18f00"
|
||||
},
|
||||
"type.builtin": {
|
||||
"color": "#7a3cff"
|
||||
"color": "#d18f00"
|
||||
},
|
||||
"string": {
|
||||
"color": "#00b377"
|
||||
@@ -542,13 +542,13 @@
|
||||
"color": "#d18f00"
|
||||
},
|
||||
"number": {
|
||||
"color": "#d18f00"
|
||||
"color": "#007a88"
|
||||
},
|
||||
"boolean": {
|
||||
"color": "#d18f00"
|
||||
"color": "#007a88"
|
||||
},
|
||||
"constant": {
|
||||
"color": "#0a0a0a"
|
||||
"color": "#007a88"
|
||||
},
|
||||
"constant.builtin": {
|
||||
"color": "#7a3cff"
|
||||
|
||||
@@ -23,6 +23,16 @@ C[OK]="#00b377"
|
||||
C[PURPLE]="#7a3cff"
|
||||
C[ALERT]="#ff4d6d"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 1b) PLUGIN COLORS
|
||||
# -----------------------------------------------------------------------------
|
||||
# zsh-autosuggestions: ghost text from history (subtle, intentionally dim)
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#737373"
|
||||
|
||||
# zsh-history-substring-search
|
||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg=#007a88,bold"
|
||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg=#ff4d6d,bold"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 2) ICONS / GLYPHS (Nerd Font optional)
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
@@ -23,6 +23,16 @@ C[OK]="#00ff99"
|
||||
C[PURPLE]="#9d00ff"
|
||||
C[ALERT]="#ff8899"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 1b) PLUGIN COLORS
|
||||
# -----------------------------------------------------------------------------
|
||||
# zsh-autosuggestions: ghost text from history (subtle, intentionally dim)
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#737373"
|
||||
|
||||
# zsh-history-substring-search
|
||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_FOUND="fg=#00eaff,bold"
|
||||
HISTORY_SUBSTRING_SEARCH_HIGHLIGHT_NOT_FOUND="fg=#ff8899,bold"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 2) ICONS / GLYPHS (Nerd Font optional)
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user