Files with dots in them.
  • Shell 69.3%
  • Python 28.9%
  • Liquid 1%
  • Vim Script 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Michal Kozák c585b32e06
feat(claude): sync settings, carry over post-restore keys
Commits the accumulated uncommitted state of claude/settings.json:

- permissions: add tofu read-only verbs and mise run task allowlist;
  drop tfsec/checkov/terraform-docs/mypy/pyright/pytest allows and the
  xargs deny
- hooks: remove AOE instance-status hooks (ElicitationResult,
  Notification, Stop, UserPromptSubmit); keep rtk PreToolUse,
  SessionStart git banner, PostToolUse fmt
- plugins: drop hlidskjalf-kit/plannotator/voltagent-infra, add
  ponytail, aws-core, mattpocock-skills, nopus (+ their marketplaces)
- model opus[1m], effortLevel xhigh -> high, add autoMode policy,
  skipDangerousModePermissionPrompt, skipWorkflowUsageWarning,
  agentPushNotifEnabled
- carry over the three keys that lived only in the post-backup live
  settings file: disableArtifact, disableWorkflows, and deniedMcpServers
  (17 claude.ai servers)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-24 07:40:10 +02:00
claude feat(claude): sync settings, carry over post-restore keys 2026-08-24 07:40:10 +02:00
leftwm Remove double window title 2021-06-01 20:28:05 +02:00
nvim Fix LeftWM colors, add nvim config 2021-05-19 17:55:09 +02:00
pi docs(pi): update AGENTS.md with tool routing, shell prefs, verification rules 2026-05-07 17:53:59 +02:00
qtile Add Qtile shutdown 2021-05-06 08:55:51 +02:00
.alacritty.yml Add Rancher Desktop binaries back to PATH, Alacritty nitpicking 2023-06-17 11:03:44 +02:00
.gitconfig chore(git): add oddin includeIf and global excludesfile 2026-04-22 11:12:41 +02:00
.gitconfig-github Add README, setup script, gitconfigs, add zstyle autocompletion 🙏 2025-08-10 20:08:03 +02:00
.gitignore fix(nvim): automate vim-plug installation and plugin setup in setup.sh 2026-04-24 23:29:58 +02:00
.gitignore_global feat(pi): add coding agent configuration 2026-04-22 11:12:24 +02:00
.p10k.zsh Fix p10k config 2024-01-29 15:29:50 +01:00
.wezterm.lua Let's go with this Starship config I suppose 2025-08-09 23:54:38 +02:00
.zshrc feat(shell): add aliases, env tweaks, and guard shell inits 2026-04-22 11:12:51 +02:00
config.fish chore: sync Claude settings key order, restore Zed classic layout, add mise abbr 2026-04-27 12:06:40 +02:00
git.plugin.zsh omz-like git plugin, Starship reorg 2025-08-08 15:36:30 +02:00
README.md fix(nvim): automate vim-plug installation and plugin setup in setup.sh 2026-04-24 23:29:58 +02:00
setup.sh fix(nvim): automate vim-plug installation and plugin setup in setup.sh 2026-04-24 23:29:58 +02:00
starship.toml Add config.fish, some lil' tinks 2025-08-18 12:37:13 +02:00
zed.json feat(zed): Some nice improvements, CC mess 2026-04-30 16:46:55 +02:00

🏠 Dotfiles

Personal dotfiles for macOS and Linux (Manjaro/Arch).

What's included

  • Shell: Fish (default) and Zsh (shortcuts, completions, vi keybindings)
  • Terminal: WezTerm
  • Editor: Zed (install from zed.dev or the App Store), Neovim
  • Prompt: Starship
  • Git: Cross-platform configuration with SSH signing
  • AI: Pi coding agent (settings, global instructions, packages)
  • Extras: Alacritty, window managers (LeftWM, Qtile)

Dependencies

macOS

brew install fish starship git fzf eza diff-so-fancy kubectx fisher neovim
brew install --cask wezterm font-0xproto-nerd-font
brew install pi-coding-agent  # Pi coding agent
# Zsh-only (optional)
brew install zsh-autosuggestions zsh-syntax-highlighting

Manjaro/Arch

sudo pacman -S fish starship git fzf eza diff-so-fancy kubectx
# Zsh-only (optional)
sudo pacman -S zsh-autosuggestions zsh-syntax-highlighting zsh-history-substring-search
yay -S wezterm-git
yay -S fisher   # if not available via pacman
yay -S ttf-0xproto-nerd

Installation

git clone https://github.com/michalkozak/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x setup.sh
./setup.sh

Manual setup

mkdir -p ~/.config
mkdir -p ~/.config/fish

# Core
ln -sf ~/dotfiles/.zshrc ~/.zshrc
ln -sf ~/dotfiles/config.fish ~/.config/fish/config.fish
ln -sf ~/dotfiles/.gitconfig ~/.gitconfig
ln -sf ~/dotfiles/.gitignore_global ~/.gitignore_global

# Apps
ln -sf ~/dotfiles/starship.toml ~/.config/starship.toml
ln -sf ~/dotfiles/.wezterm.lua ~/.wezterm.lua
ln -sf ~/dotfiles/git.plugin.zsh ~/.config/git.plugin.zsh

# Pi coding agent
mkdir -p ~/.pi/agent
ln -sf ~/dotfiles/pi/settings.json ~/.pi/agent/settings.json
ln -sf ~/dotfiles/pi/AGENTS.md ~/.pi/agent/AGENTS.md

# Optional
ln -sf ~/dotfiles/.alacritty.yml ~/.alacritty.yml
ln -sf ~/dotfiles/nvim ~/.config/nvim

# Neovim setup
# 1. Install vim-plug
curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
# 2. Install plugins
nvim --headless +PlugInstall +qall

ln -sf ~/dotfiles/leftwm ~/.config/leftwm      # Linux
ln -sf ~/dotfiles/qtile ~/.config/qtile        # Linux

Shell setup

Fish is the default shell. On macOS you need to add it to /etc/shells first:

# macOS  add fish to allowed shells and set as default
echo "$(which fish)" | sudo tee -a /etc/shells
chsh -s "$(which fish)"

# Linux  usually just:
chsh -s "$(which fish)"

Zsh is also fully configured if you prefer it:

chsh -s "$(which zsh)"

Fish plugins

This repo uses the excellent Fish Git plugin by jhillyerd. It adds helpful abbreviations and functions for Git workflows.

Install via Fisher (the setup script attempts this automatically if Fish is present):

# Ensure Fisher is installed
brew install fisher                             # macOS
# or: yay -S fisher                              # Arch/Manjaro
# or (official script):
# fish -c 'curl -sL https://git.io/fisher | source; and fisher install jorgebucaran/fisher'

# Install the Git plugin
fish -c 'fisher install jhillyerd/plugin-git'

Git setup

# Create work directories
mkdir -p ~/github ~/gitlab

# Copy GitHub config template
cp ~/dotfiles/.gitconfig-github ~/github/.gitconfig
# Edit ~/github/.gitconfig with your details

The .gitconfig uses includeIf to load directory-specific configs, so repos cloned into ~/github/ or ~/gitlab/ automatically pick up the right identity.

Pi (coding agent)

Configuration for pi, the terminal-based coding agent.

mkdir -p ~/.pi/agent
ln -sf ~/dotfiles/pi/settings.json ~/.pi/agent/settings.json
ln -sf ~/dotfiles/pi/AGENTS.md ~/.pi/agent/AGENTS.md

After linking, install packages listed in settings.json:

pi install npm:@sting8k/pi-vcc
pi install npm:@plannotator/pi-extension
pi install npm:@benvargas/pi-claude-code-use
pi install git:github.com/tomsej/pi-ext
pi install npm:@mjakl/pi-kagi-search
pi install git:github.com/MasuRii/pi-rtk-optimizer

Credentials (auth.json, kagi-search.json) must be set up manually on each machine.

Features

  • Fish: Abbreviations (k, tf, ll, kx, bubu), vi key bindings, fzf integration
  • Zsh: Fuzzy completions, history management, auto-suggestions, syntax highlighting
  • Starship: Git status, language versions, Kubernetes context, shell indicator, command duration
  • WezTerm: Custom colors, 0xProto font, key bindings
  • Git: Directory-specific configs, 1Password SSH signing, diff-so-fancy pager

Troubleshooting

Zsh completions not working

rm -f ~/.zcompdump*
exec zsh

Fish: fzf integration missing

Ensure fzf is installed. The fish config sources fzf --fish | source to enable completions and keybindings.

Homebrew completions missing

brew completions link

Permissions (macOS)

chmod -R go-w "$(brew --prefix)/share"

Git diff pager not working

Make sure diff-so-fancy is installed — it's configured as the default pager in .gitconfig:

brew install diff-so-fancy     # macOS
sudo pacman -S diff-so-fancy   # Arch/Manjaro