Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ pre
temp
temp.*
temp
config/pi/auth.json
config/pi/sessions/
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,12 @@ dotfiles: setup-stow
stow "$(STOW_ARGS)" -d dotfiles -t "$(HOME)" "$(OS)"
stow "$(STOW_ARGS)" dotfiles
stow "$(STOW_ARGS)" yabai
ln -sf ~/dotfiles/fish ~/.config/fish\
ln -sf ~/dotfiles/fish ~/.config/fish
mkdir -p "$(HOME)/.agents"
ln -sfn ~/dotfiles/agents/skills "$(HOME)/.agents/skills"
mkdir -p "$(HOME)/.claude"
ln -sfn ~/dotfiles/agents/skills "$(HOME)/.claude/skills"
ln -sf ~/dotfiles/config/pi/agent/AGENTS.md "$(HOME)/.claude/CLAUDE.md"


setup-uv:
Expand Down
19 changes: 15 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ Setup and configuration for my terminal based developer workflow (MacOS/Ubuntu):

This repo should be cloned into `$HOME` and set as `$XDG_CONFIG_HOME`. Many tools rely on setting this for the config stored in this repo to work. For other config that requires files in `$HOME` (such as `$HOME/.bashrc`) Stow is used to symlimk files.

Different files are symlinked based on the `OS` `Makefile` variable - usually it's just getting RC files for specific OS, ie `./dotfiles/macos/.zshrc`.

You can setup your machine using commands in `Makefile`. Commonly setting up a machine involves:

- Installing packages with Homebrew
Expand All @@ -28,7 +30,7 @@ Setup an Ubuntu machine:
$ make setup-ubuntu
```

This will also setup dependencies with Nix.
This will also setup dependencies with Homebrew.

### macOS

Expand All @@ -40,7 +42,7 @@ $ make setup-macos

This will:
- Install Homebrew if not already installed
- Install all packages from the Brewfile
- Install all dependencies from `./brew/Brewfile`
- Setup dotfiles with Stow
- Configure tmux, Zsh, and fzf

Expand Down Expand Up @@ -94,15 +96,15 @@ mise is used for managing programming language runtime versions (Python, Node.js

### Neovim

Neovim config is in `./nvim`. To use the Neovim setup, put this folder into `$XDG_CONFIG_HOME`.
Neovim config is in `./nvim`. To use the Neovim setup alone, put the `nvim` folder into `$XDG_CONFIG_HOME`.

I use Lazy for package management in Neovim - it will install packages when you first open the editor.

### Shell Customization

The `s` command opens a fuzzy file finder (fzf) to search and open files in `$EDITOR`. Run `s` in any directory, or pass a path like `s ~/projects`. Supports multi-select with Tab.

Lot's of aliases - see `scripts/aliases.sh`.
Lot's of aliases - see `./scripts/aliases.sh`. Some small interactive shell helper functions in `./scripts/funcs.sh`.

### Getting Kitty to Play Nice on macOS

Expand Down Expand Up @@ -130,3 +132,12 @@ Had weird issue with the first execution of Kitty not loading the `kitty.conf` c

$ launchctl load ~/Library/LaunchAgents/setenv.XDG_CONFIG_HOME.plist
```


## Agent Configuration

PI_CODING_AGENT_DIR in dotfiles/common/env.sh points pi's config to ~/dotfiles/config/pi/, which contains agent/AGENTS.md (agent instructions), settings.json, themes, and sessions.

CLAUDE.md at the repo root serves the same purpose for Claude Code.

Skills are defined once in agents/skills/ and symlinked by make dotfiles to both ~/.agents/skills (pi) and ~/.claude/skills (Claude Code).
19 changes: 19 additions & 0 deletions agents/skills/summarization/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: summarization
description: Summarizing articles, blog posts etc.
---

I will post an article and ask you to summarize it.

Summarizing should list every idea, and every argument for and against it. You should add your own commentary if appropriate. Link to other ideas not in the text if you can. Each idea should be a single line with bullet points below it. There should be no Markdown bolding (ie **) of the idea or bullet points.

Example summarization output:

```md
This is an idea
- something
- something else

This is another idea
- another thing
```
5 changes: 5 additions & 0 deletions config/pi/agent/AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
Responses should be concise. Try to push back if you can and offer different ideas or approaches. Try to explore a range of ideas, perspectives. List tradeoffs explicitly if appropriate. Do not include summaries at the end of responses unless specifically asked.

When you write Python code, make it type safe, so that it would pass strict type checking with a tool like basedpyright.

Only include comments when they explain something that is not obvious from the code.
6 changes: 6 additions & 0 deletions config/pi/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"lastChangelogVersion": "0.55.3",
"defaultProvider": "anthropic",
"defaultModel": "claude-opus-4-6",
"theme": "dracula"
}
88 changes: 88 additions & 0 deletions config/pi/themes/dracula.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
"$schema": "https://raw.githubusercontent.com/badlogic/pi-mono/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
"name": "dracula",
"vars": {
"background": "#282a36",
"currentLine": "#44475a",
"selection": "#44475a",
"foreground": "#f8f8f2",
"comment": "#6272a4",
"cyan": "#8be9fd",
"green": "#50fa7b",
"orange": "#ffb86c",
"pink": "#ff79c6",
"purple": "#bd93f9",
"red": "#ff5555",
"yellow": "#f1fa8c",
"selectedBg": "#44475a",
"userMsgBg": "#21222c",
"toolPendingBg": "#1e1f28",
"toolSuccessBg": "#1e2b23",
"toolErrorBg": "#2b1e1e",
"customMsgBg": "#282433"
},
"colors": {
"accent": "purple",
"border": "purple",
"borderAccent": "pink",
"borderMuted": "currentLine",
"success": "green",
"error": "red",
"warning": "yellow",
"muted": "comment",
"dim": "#525560",
"text": "",
"thinkingText": "comment",

"selectedBg": "selectedBg",
"userMessageBg": "userMsgBg",
"userMessageText": "",
"customMessageBg": "customMsgBg",
"customMessageText": "",
"customMessageLabel": "purple",
"toolPendingBg": "toolPendingBg",
"toolSuccessBg": "toolSuccessBg",
"toolErrorBg": "toolErrorBg",
"toolTitle": "cyan",
"toolOutput": "comment",

"mdHeading": "pink",
"mdLink": "cyan",
"mdLinkUrl": "comment",
"mdCode": "green",
"mdCodeBlock": "foreground",
"mdCodeBlockBorder": "comment",
"mdQuote": "comment",
"mdQuoteBorder": "comment",
"mdHr": "comment",
"mdListBullet": "pink",

"toolDiffAdded": "green",
"toolDiffRemoved": "red",
"toolDiffContext": "comment",

"syntaxComment": "comment",
"syntaxKeyword": "pink",
"syntaxFunction": "green",
"syntaxVariable": "foreground",
"syntaxString": "yellow",
"syntaxNumber": "purple",
"syntaxType": "cyan",
"syntaxOperator": "pink",
"syntaxPunctuation": "foreground",

"thinkingOff": "currentLine",
"thinkingMinimal": "#6272a4",
"thinkingLow": "#8be9fd",
"thinkingMedium": "#bd93f9",
"thinkingHigh": "#ff79c6",
"thinkingXhigh": "#ff5555",

"bashMode": "orange"
},
"export": {
"pageBg": "#1e1f28",
"cardBg": "#282a36",
"infoBg": "#44475a"
}
}
1 change: 1 addition & 0 deletions dotfiles/common/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ export XDG_CONFIG_HOME=~/dotfiles
export PERSONAL_PATH="$HOME/personal"
export DIRENV_LOG_FORMAT=""
# export TODO="$PERSONAL_PATH/todo.md"
export PI_CODING_AGENT_DIR="$HOME/dotfiles/config/pi"
3 changes: 1 addition & 2 deletions dotfiles/macos/.zshrc
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
source $HOME/dotfiles/dotfiles/common/.zshrc
export DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib
# eval "$(gh copilot alias -- zsh)"
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
. "$HOME/.local/bin/env"

eval "$(keychain --eval --quiet ~/.ssh/github-air ~/.ssh/macbook-pro)"
eval "$(/opt/homebrew/bin/brew shellenv)"
eval "$(/opt/homebrew/bin/brew shellenv zsh)"

# Skip quote display for faster startup (can be called manually with 'quote' command)
# quote
Expand Down
19 changes: 6 additions & 13 deletions kitty/init.vim
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
set relativenumber
set number
set relativenumber
set mouse=a
set clipboard+=unnamedplus
set virtualedit=all
set scrollback=100000
set termguicolors
set laststatus=0
set background=dark
set ignorecase
set laststatus=0
set scrolloff=8
set noswapfile
set ignorecase

map <silent> q :qa!<CR>

" Short highlight on yanked text
" Brief highlight on yanked text
augroup highlight_yank
autocmd!
autocmd TextYankPost * silent! lua require'vim.highlight'.on_yank({timeout = 40})
augroup END

" Start at the bottom of the scrollback buffer
augroup start_at_bottom
autocmd!
autocmd VimEnter * normal G
augroup END

augroup prevent_insert
autocmd!
autocmd TermEnter * stopinsert
augroup END

open_url_with default
12 changes: 8 additions & 4 deletions kitty/kitty.conf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# font_family Fira Code
font_family Cascadia Mono NF
font_family Fira Code
# font_family Cascadia Mono NF

font_size 16

Expand All @@ -9,8 +9,6 @@ initial_window_height 800

hide_window_decorations no

scrollback_pager nvim --noplugin -u ~/dotfiles/kitty/init.vim -c "silent write! /tmp/kitty_scrollback_buffer | te cat /tmp/kitty_scrollback_buffer - "

map ctrl+enter toggle_fullscreen

open_url_with default
Expand All @@ -19,3 +17,9 @@ confirm_os_window_close 0

include ~/dotfiles/kitty/current-theme.conf
macos_titlebar_color #282A36


# Scrollback
scrollback_lines 10000
scrollback_pager nvim -u ~/dotfiles/kitty/init.vim --noplugin -
map ctrl+shift+h show_scrollback
70 changes: 70 additions & 0 deletions macos/km/adams-macros/Activate Finder.kmmacros
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>Activate</key>
<string>Normal</string>
<key>CreationDate</key>
<real>624329848.61627197</real>
<key>Macros</key>
<array>
<dict>
<key>Actions</key>
<array>
<dict>
<key>ActionUID</key>
<integer>1972</integer>
<key>AllWindows</key>
<false/>
<key>AlreadyActivatedActionType</key>
<string>Hide</string>
<key>Application</key>
<dict>
<key>BundleIdentifier</key>
<string>com.apple.finder</string>
<key>Name</key>
<string>Finder</string>
<key>NewFile</key>
<string>/System/Library/CoreServices/Finder.app</string>
</dict>
<key>MacroActionType</key>
<string>ActivateApplication</string>
<key>ReopenWindows</key>
<true/>
<key>TimeOutAbortsMacro</key>
<true/>
</dict>
</array>
<key>CreationDate</key>
<real>691403255.55500901</real>
<key>ModificationDate</key>
<real>691403279.84610605</real>
<key>Name</key>
<string>Activate Finder</string>
<key>Triggers</key>
<array>
<dict>
<key>FireType</key>
<string>Pressed</string>
<key>KeyCode</key>
<integer>96</integer>
<key>MacroTriggerType</key>
<string>HotKey</string>
<key>Modifiers</key>
<integer>0</integer>
</dict>
</array>
<key>UID</key>
<string>0FE311D8-2BD4-431A-83EB-D28C6B64BB11</string>
</dict>
</array>
<key>Name</key>
<string>adams-macros</string>
<key>ToggleMacroUID</key>
<string>72F63232-9754-45AC-8EC5-D8D1218F06EA</string>
<key>UID</key>
<string>542BC640-C047-4088-A052-38BEC2E4354B</string>
</dict>
</array>
</plist>
Loading
Loading