config files for linux and os x
Find a file
2025-07-09 16:32:21 -07:00
bundle Update bundle config 2019-06-25 14:31:00 -07:00
emacs.d Remove old emacs.d/auto-save-list/ files 2024-07-08 18:36:18 -07:00
git-hooks [git] avoid useless whitespace and leftover conflict markers 2017-09-09 11:28:12 -07:00
zsh Drop evalcache, it's actually annoying and I use rbenv all the time 2024-12-16 09:19:29 -08:00
.gitignore [gitignore] Ignore emacs.d/recentf 2024-02-06 16:45:29 -08:00
ackrc add ackrc 2010-11-08 20:21:53 -08:00
Brewfile Update gitignore and add mosh to Brewfile 2025-06-14 22:10:02 -07:00
clang-format add clang-format 2016-06-27 10:57:02 -07:00
CLAUDE.md Add Readme.md and CLAUDE.md, remove some cruft 2025-06-06 09:05:43 -07:00
emacs [emacs] clean out cruft 2011-08-22 20:42:03 -07:00
gdbinit add gdbinit 2011-04-30 15:00:51 -07:00
gemrc update gemrc 2018-02-16 16:02:18 -08:00
gitattributes Improve git diffs for Swift code 2024-01-02 10:39:11 -08:00
gitconfig Remove git conflictstyle = zdiff3, not useful that often 2025-05-08 08:33:52 -07:00
gitignore Add .claude to gitignore 2025-07-09 16:32:21 -07:00
init.sh Add Readme.md and CLAUDE.md, remove some cruft 2025-06-06 09:05:43 -07:00
irbrc whitespace 2020-02-26 14:25:44 -08:00
Readme.md Add direct links to custom git commands in README 2025-06-09 09:14:10 -07:00
screenrc update screenrc 2013-10-23 12:14:38 -07:00
vimrc turn off mouse support in vim 2012-05-29 10:24:42 -07:00
zshrc Add Readme.md and CLAUDE.md, remove some cruft 2025-06-06 09:05:43 -07:00

sjs's config (dotfiles)

These are my personal *nix config files, hand-crafted since around 2004 when I started by pilfering everything I could find on mailing lists and blogs. They work great on both Linux and macOS, with more server-ish stuff on the Linux side and desktop-ish stuff on the macOS side.

After zsh (big time zsh hipster) this is the first thing I set up in my shell environment on a new machine, along with ~/bin.

what've we got here?

  • zsh: custom prompt with git integration, extensive aliases, lots of nitpicky tweaks like subword navigation excluding / for easy subpath traversal
  • $EDITOR: vim and emacs configs, though the emacs one is fairly dated
  • git: enhanced diffing, signed commits, pre-commit hooks
  • ruby: rbenv integration, IRB customizations
  • screen: yep I'm old, no tmux here
  • iOS simulator stuff: device control utilities via devicectl.sh (from Gui Rambo)

setup

All files in this repo are symlinked to ~/.filename. Any existing files are backed up to ~/original-dot-files/ before linking so you won't lose anything, though it is up to you to merge the changes if you care.

# symlink all the files in this directory
# (excluding init.sh, Brewfile, and zsh directory)
./init.sh

There's also a Brewfile with stuff that I usually want for general shell usability, along with ruby and iOS dev. I don't recommend using this without customizing it.

brew bundle install

git aliases

These short aliases make git really easy to use in your shell:

Making changes:

  • a - git add
  • c - git commit
  • chp - git cherry-pick
  • co - git checkout
  • b - git branch
  • m - git merge
  • f - git fetch
  • t - git tag

Viewing changes:

  • d - git diff (working tree changes)
  • dc - git diff --cached (staged changes)
  • ds - git diff --stat (summary)
  • s - git status -sb (short status)

Commit log:

  • gl - Fancy graph log with colors and relative dates
  • glo - git log --oneline --decorate
  • gls - git log --stat

Stashing:

  • st - git stash
  • stl - git stash list
  • stp - git stash pop

Custom scripts: See ~/bin for these ones.

other aliases

  • be - Bundle exec
  • doc - docker-compose
  • u/uu/uuu - Navigate up 1-3 directories
  • myip - Get your public IP using icanhazip