Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
4746ce5
new fixes for abhilast
abhilast Jan 2, 2026
526f0a5
Fixes for better themes
abhilast Jan 2, 2026
46d583d
Fixed readability settings
abhilast Jan 3, 2026
fac66d0
chore: sync dotfiles across ghostty, nvim, zsh, git, and scripts
abhilast Feb 18, 2026
f97715d
Merge pull request #1 from abhilast/chore/dotfiles-sync-feb-2026
abhilast Feb 18, 2026
ff7d5a4
chore: polish ghostty padding, git difftool config, and nvim theme
abhilast Feb 18, 2026
d943c9b
Merge pull request #2 from abhilast/chore/dotfiles-sync-feb-2026
abhilast Feb 19, 2026
198e49c
chore: ignore .claude directory
abhilast Feb 21, 2026
54eb7e1
feat(zsh): add preview pane for cd tab completion
abhilast Feb 21, 2026
7f85692
Merge branch 'master' into chore/zsh-cd-completion-preview
abhilast Feb 21, 2026
c8214f9
Merge pull request #3 from abhilast/chore/zsh-cd-completion-preview
abhilast Feb 21, 2026
ba9ac5a
git: add difftastic and lazygit pager config (#7)
abhilast Feb 22, 2026
86f963d
nvim: disable guides and improve .env filetype (#8)
abhilast Feb 22, 2026
429e41c
scripts: add wt helper and document workflow (#9)
abhilast Feb 22, 2026
3ab9589
feat(zsh): add ai workflow helpers and worktree/pr commands (#4)
abhilast Feb 25, 2026
b0a647c
docs(ghostty): align config guide and improve readability defaults (#5)
abhilast Feb 25, 2026
938ba8a
docs(nvim): add quick-reference and troubleshooting sections (#6)
abhilast Feb 25, 2026
1a932dc
scripts: add worktree helper and document usage (#10)
abhilast Mar 3, 2026
b1e96da
wip: update nvim chadrc
abhilast Feb 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -239,3 +239,4 @@ $RECYCLE.BIN/
# AI stuff
# ===========================
.gemini-clipboard
.claude/
43 changes: 43 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Repository Guidelines

## Project Structure & Module Organization
This repository is a GNU Stow-managed dotfiles monorepo. Each top-level folder is a stow package that maps into `$HOME` (for example `zsh/`, `nvim/`, `kitty/`, `git/`, `ghostty/`, `atuin/`). Package internals usually live under `.config/...`.
Automation and diagnostics live in `scripts/`, with macOS-specific helpers in `scripts/mac/`.
Primary entrypoints:
- `install.sh`: bootstrap and stow on macOS
- `Brewfile`: package dependencies
- `README.md` + per-package `README.md`: component docs

## Build, Test, and Development Commands
- `./install.sh` — full local bootstrap (Homebrew, stow, Neovim sync).
- `brew bundle --file Brewfile` — install/update declared CLI tools.
- `stow -R zsh nvim kitty git` — restow selected packages after edits.
- `./scripts/health-check.sh` — validate symlinks, dependencies, and setup health.
- `./scripts/benchmark.sh` or `./scripts/profile-zsh-startup.sh` — measure shell startup performance.
- `zsh -n zsh/.zshenv zsh/.zshrc` — syntax-check Zsh config changes.

## Coding Style & Naming Conventions
Follow `.editorconfig`:
- 2 spaces for most files (Shell, JSON, YAML, Markdown)
- 4 spaces for Python
- tabs for Go and Makefiles
Use LF endings, trim trailing whitespace (except Markdown), and always end files with a newline.
Name scripts with lowercase kebab-case (for example `toggle-dark-mode.sh`). Keep paths portable (`$HOME`, not hardcoded `/Users/<name>`).

## Testing Guidelines
There is no single unit-test framework; use targeted validation:
- Run `./scripts/health-check.sh` after structural changes.
- Run `zsh -n ...` and `./scripts/test-completion-demo.sh` for shell/completion edits.
- Run `nvim --headless "+Lazy! sync" +qa` after Neovim plugin/config updates.
- Re-run relevant package README steps you changed.

## Commit & Pull Request Guidelines
History favors short, imperative commit subjects (for example `fix ghostty theme sync`, `docs: standardize README`). Keep commits focused to one logical area/package.
PRs should include:
- concise summary of changed packages
- verification commands executed
- linked issue (if applicable)
- screenshots/terminal captures for UI-facing changes (Kitty/Ghostty/Neovim themes).

## Security & Configuration Tips
Do not commit secrets, tokens, or machine-specific credentials. Prefer environment-based configuration (for example `direnv`) and sanitize personal paths before committing.
2 changes: 2 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ brew "docker" # Containerization (has aliases and functions)
brew "kubernetes-cli" # Kubectl (lazy loaded in zshrc)
brew "lazygit" # Git TUI
brew "git-delta" # Better git diffs (configured in .gitconfig.d/tools)
brew "difftastic" # Syntax-aware structural diffs (used by git difftool and lazygit)
brew "gh" # GitHub CLI
# ===========================
# SYSTEM MONITORING
Expand All @@ -49,6 +50,7 @@ brew "powerlevel10k" # ZSH theme
# LANGUAGE-SPECIFIC TOOLS
# ===========================
brew "kyoh86/tap/richgo" # Enhanced go test output (aliased as 'go')
brew "bun" # JavaScript runtime and toolkit

# ===========================
# BENCHMARKING & UTILITIES
Expand Down
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,20 @@ The installer handles:
- GNU Stow symlink creation
- Path fixes for your environment

## 🤖 AI Workflow Quick Reference

Core shell helpers (from `zsh/.zsh_aliases` and `zsh/.zsh_functions`):

```bash
pj # fuzzy-switch projects
wtn <branch> # create/switch to a git worktree branch
wtl # list/jump worktrees
wtr <target> # remove a worktree (safe checks)
prn # push current branch + open PR via gh
cc [dir] [...] # launch Claude (optional directory)
cx [dir] [...] # launch Codex (optional directory)
```

## 📚 Component Documentation

### Core Components
Expand Down Expand Up @@ -100,3 +114,23 @@ git push
- See component READMEs for detailed configuration options
- Backup configs with `./scripts/backup-configs.sh` before major changes


## 🌳 Git Worktrees Helper (`wt`)

A small helper script is available at `~/dotfiles/scripts/wt` (and on `PATH` after shell reload).

```bash
wt new cloudsync-pro hero-fix
wt ls cloudsync-pro
wt rm cloudsync-pro hero-fix
wt prune cloudsync-pro
```

Defaults:
- Root workspace: `~/repos/skates`
- New worktree path: `~/repos/skates/<repo>-wt-<name>`
- Base branch: `origin/main`

Overrides:
- `WT_ROOT` to change workspace root
- `WT_REMOTE_BASE` to change default branch base
101 changes: 55 additions & 46 deletions btop/.config/btop/btop.conf
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
#? Config file for btop v. 1.4.5
#? Config file for btop v.1.4.6

#* 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 = "Default"
color_theme = "TTY"

#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = False
theme_background = false

#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
truecolor = true

#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
force_tty = false

#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
Expand All @@ -22,10 +22,13 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul

#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
vim_keys = false

#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
rounded_corners = true

#* Use terminal synchronized output sequences to reduce flickering on supported terminals.
terminal_sync = true

#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
Expand Down Expand Up @@ -57,37 +60,40 @@ update_ms = 100
proc_sorting = "cpu lazy"

#* Reverse sorting order, True or False.
proc_reversed = False
proc_reversed = false

#* Show processes as a tree.
proc_tree = False
proc_tree = false

#* Use the cpu graph colors in the process list.
proc_colors = True
proc_colors = true

#* Use a darkening gradient in the process list.
proc_gradient = True
proc_gradient = true

#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = False
proc_per_core = false

#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
proc_mem_bytes = true

#* Show cpu graph for each process.
proc_cpu_graphs = True
proc_cpu_graphs = true

#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
proc_info_smaps = false

#* Show proc box on left side of screen instead of right.
proc_left = False
proc_left = false

#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
proc_filter_kernel = false

#* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = False
proc_aggregate = false

#* Should cpu and memory usage display be preserved for dead processes when paused.
keep_dead_proc_usage = false

#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
Expand All @@ -98,28 +104,28 @@ cpu_graph_upper = "Auto"
cpu_graph_lower = "Auto"

#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
cpu_invert_lower = true

#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
cpu_single_graph = false

#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
cpu_bottom = false

#* Shows the system uptime in the CPU box.
show_uptime = True
show_uptime = true

#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = True
show_cpu_watts = true

#* Show cpu temperature.
check_temp = True
check_temp = true

#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"

#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
show_coretemp = true

#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
Expand All @@ -131,17 +137,17 @@ cpu_core_map = ""
temp_scale = "celsius"

#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = True
base_10_sizes = true

#* Show CPU frequency.
show_cpu_freq = True
show_cpu_freq = true

#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"

#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
background_update = true

#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
Expand All @@ -151,43 +157,43 @@ custom_cpu_name = ""
disks_filter = ""

#* Show graphs instead of meters for memory values.
mem_graphs = True
mem_graphs = true

#* Show mem box below net box instead of above.
mem_below_net = False
mem_below_net = false

#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
zfs_arc_cached = true

#* If swap memory should be shown in memory box.
show_swap = True
show_swap = true

#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
swap_disk = true

#* If mem box should be split to also show disks info.
show_disks = True
show_disks = true

#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
only_physical = true

#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
use_fstab = true

#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
zfs_hide_datasets = false

#* Set to true to show available disk space for privileged users.
disk_free_priv = False
disk_free_priv = false

#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
show_io_stat = true

#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
io_mode = false

#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
io_graph_combined = false

#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
Expand All @@ -199,10 +205,10 @@ net_download = 100
net_upload = 100

#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
net_auto = true

#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
net_sync = true

#* Starts with the Network Interface specified here.
net_iface = ""
Expand All @@ -211,14 +217,17 @@ net_iface = ""
base_10_bitrate = "Auto"

#* Show battery stats in top right if battery is present.
show_battery = True
show_battery = true

#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"

#* Show power stats of battery next to charge indicator.
show_battery_watts = True
show_battery_watts = true

#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"

#* Automatically save current settings to config file on exit.
save_config_on_exit = true
Loading