dotfiles: initial scaffold for Coder devboxes

install.sh (symlink home/* + merge-seed ~/.claude.json onboarding), gitconfig,
bash_aliases, global gitignore, inputrc, tmux.conf. Golden owns tools+starship;
this owns personal config. Secrets stay in Coder user-secrets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
lollen 2026-07-30 21:04:57 +02:00 committed by loloolllool
parent 7c985c5ecf
commit f08f35b602
7 changed files with 183 additions and 0 deletions

36
home/.bash_aliases Normal file
View file

@ -0,0 +1,36 @@
# Personal aliases — sourced automatically by Debian's default ~/.bashrc.
# Golden owns starship/mise/eza/zoxide/fzf setup; these just add shortcuts.
# listing (eza is installed in golden)
if command -v eza >/dev/null 2>&1; then
alias ls='eza --group-directories-first'
alias ll='eza -la --group-directories-first --git'
alias la='eza -a --group-directories-first'
alias lt='eza --tree --level=2'
fi
# navigation
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
# git
alias gs='git status -sb'
alias gd='git diff'
alias gds='git diff --staged'
alias ga='git add'
alias gc='git commit'
alias gp='git push'
alias gl='git log --oneline --graph --decorate -20'
alias gco='git switch'
# tooling shortcuts (all present in golden)
alias k='kubectl'
alias dc='docker compose'
alias d='docker'
alias tf='terraform'
# safety
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

17
home/.config/git/ignore Normal file
View file

@ -0,0 +1,17 @@
# Global gitignore (referenced by ~/.gitconfig core.excludesfile)
# OS / editor cruft that should never land in any repo.
.DS_Store
Thumbs.db
*~
*.swp
*.swo
.idea/
.vscode/
*.log
.env
.env.local
node_modules/
__pycache__/
*.pyc
.venv/
.direnv/

33
home/.gitconfig Normal file
View file

@ -0,0 +1,33 @@
[user]
name = lollen
email = loloolllool@lolcathost.se
[init]
defaultBranch = main
[pull]
rebase = true
[push]
autoSetupRemote = true
default = current
[fetch]
prune = true
[rebase]
autoStash = true
[merge]
conflictStyle = zdiff3
[diff]
colorMoved = default
[color]
ui = auto
[core]
excludesfile = ~/.config/git/ignore
[alias]
st = status -sb
co = checkout
sw = switch
br = branch
ci = commit
ca = commit --amend
unstage = restore --staged
last = log -1 HEAD
lg = log --oneline --graph --decorate -20
lga = log --oneline --graph --decorate --all -30

13
home/.inputrc Normal file
View file

@ -0,0 +1,13 @@
$include /etc/inputrc
# history search on the arrow keys (type a prefix, press Up)
"\e[A": history-search-backward
"\e[B": history-search-forward
# nicer completion
set completion-ignore-case on
set completion-map-case on
set show-all-if-ambiguous on
set colored-stats on
set colored-completion-prefix on
set mark-symlinked-directories on

17
home/.tmux.conf Normal file
View file

@ -0,0 +1,17 @@
# Sensible tmux defaults. (Install tmux in the devbox if you use it; harmless otherwise.)
set -g mouse on
set -g history-limit 50000
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -sg escape-time 10
set -g default-terminal "tmux-256color"
set -ga terminal-overrides ",*256col*:Tc"
# splits keep the current path
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind c new-window -c "#{pane_current_path}"
# reload
bind r source-file ~/.tmux.conf \; display "tmux.conf reloaded"