My dotfiles
  • Shell 97.7%
  • Lua 2.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jonny Barnes 43e5d5ed85
Only load fnm sheldon plugin on macOS
On the server, fnm isn't installed since system nodejs is used instead.
The zsh-fnm plugin's own fallback silently curl-installs fnm when missing,
and its --use-on-cd hook then prompts on every cd since no default version
is fnm-managed there. Gate the plugin to Darwin only.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G3jcSVn51hiw58f7jPWrpN
2026-08-04 22:30:41 +01:00
bin Update cp-torrent command 2026-04-12 11:24:18 +01:00
claude Fix Opus statusline hue rendering as black in light theme 2026-08-04 17:35:33 +01:00
ghostty Fox ghostty config 2026-04-02 10:59:23 +01:00
gnupg Move gpg config into dotfiles repo 2024-04-29 18:22:54 +01:00
neovim Updated neovim config for v0.12 2026-05-31 20:33:23 +01:00
zsh Make tmux work with claude installed via claude.com install.sh script 2026-06-10 15:26:01 +01:00
bootstrap.sh Switch Claude Code statusline to burnrate variant 2026-08-03 14:40:40 +01:00
brew.sh Switch Claude Code statusline to burnrate variant 2026-08-03 14:40:40 +01:00
delta-themes.gitconfig Improvements to lazygit/tmux/ghossty configs 2026-01-30 14:42:51 +00:00
gitconfig Improvements to lazygit/tmux/ghossty configs 2026-01-30 14:42:51 +00:00
gitignore Add a global gitignore 2016-04-08 03:42:12 +01:00
hushlogin Hush login details 2016-04-08 03:37:25 +01:00
LICENSE Initial commit 2016-03-06 12:50:00 +00:00
macos.sh Update defaults script 2024-06-25 19:12:04 +01:00
README.md Update the README for the repo 2024-06-25 19:42:33 +01:00
sheldon.toml Only load fnm sheldon plugin on macOS 2026-08-04 22:30:41 +01:00
tmux Stay in tmux of there are other windows when quitting 2026-03-28 16:50:34 +00:00
zshrc.zsh Improve zsh performance 2026-06-26 14:47:32 +01:00

dotfiles

Heres my dotfiles, inspired by people like Mathias. See his dotfiles at https://github.com/mathias/dotfiles.

The idea Im currently going down is to create a symlink from $HOME to this directory. There is one exception to this, the .gitconfig file. I dont want actual commiter details committed into this repo. So my git credentials are stored in a .extra file which gets sourced. This then calls the relavent git command, which causes git to edit $HOME/.gitconfig. If that file was a symlink to this repo, then the repo would see the file as edited and the repo would then be in a dirty state, permanently.

Usage

First clone the repo.

As mentioned above my git credentials are stored in an untracked file: $HOME/.extra. This must be manually created, mine looks something like:

# Git credentials
GIT_AUTHOR_NAME="Jonny Barnes"
GIT_COMMITER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="jonny@jonnybarnes.uk"
GIT_COMMITER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"

Run ./boostrap.sh, this will create all the necessary symlinks, then source .zshrc.

Warning

This is a destructive process, so backup your dotfiles first.

Auto switch between light and dark mode

To switch between dark and light mode automatically, we use a helper lib.

Clone it from https://github.com/bouk/dark-mode-notify then run make and make install.

Then make a script to run is automatically, put the plist where your system can find it: ~/Library/LaunchAgents/ke.bou.dark-mode-notify.plist with the following content:

<?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">
<dict>
    <key>Label</key>
    <string>ke.bou.dark-mode-notify</string>
    <key>KeepAlive</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/Users/jonny/.local/var/log/dark-mode-notify-stderr.log</string>
    <key>StandardOutPath</key>
    <string>/Users/jonny/.local/var/log/dark-mode-notify-stdout.log</string>
    <key>ProgramArguments</key>
    <array>
       <string>/usr/local/bin/dark-mode-notify</string>
       <string>/Users/jonny/git/dotfiles/zsh/dark-mode-notify.zsh</string>
    </array>
</dict>
</plist>

Make the log file and script file point to the right location. For clarity dark-mode-notify.zsh is in this repo.