config files for linux and os x
Find a file
Sami Samhuri dc4359eb0a
Add direct links to custom git commands in README
Make it easier to view the implementation of rmb and gup by linking directly to the scripts in the samsonjs/bin repository.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-09 09:14:10 -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 Fix neardrop entry in Brewfile 2025-01-03 09:25:52 -08: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 .bundle to gitignore 2018-02-10 19:03:00 -08: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