Skip to content

Repository files navigation

dot-files

My dotfiles & environment setup

Versioned Linux configs I use day to day.

What's in here

Path Contents
home/ Bash, git, Cursor (rules, agents, skills)
config/ bat, btop, htop, tmux, ghostty
install.sh Symlink home/ and config/ into place

Structure

.
├── home/
│   ├── .bashrc, .bashrc.tools, .bashrc.ghostty, .bash_prompt, .bash_aliases, .bash_functions, .inputrc
│   ├── .gitconfig, .gitmessage
│   └── .cursor/
│       ├── agents/
│       ├── rules/
│       └── skills/
├── config/
│   ├── bat/
│   ├── btop/
│   ├── htop/
│   ├── tmux/
│   └── ghostty/
├── install.sh
├── Makefile          # local stand-ins for CI (`make help`)
└── .github/          # CI & repo scripts (not installed)

Setup

Warning

This symlinks configs into your home directory. Anything replaced is moved to ~/.dotfiles-backup/. Use at your own risk.

make install
Command What it links
make install Full tree (including your git identity + gpg.conf)
make install-shell-only Shell + most config/no .gitconfig / .gitmessage (safe for shared hosts / friends)
make install-shell-with-git Shell-only plus your git identity (machine that should commit as you)

.cursor children link individually into ~/.cursor/ so Cursor-managed paths are not replaced wholesale.

Local checks

Same commands CI runs locally. make prints targets; make check runs the full set (ShellCheck, shfmt, install smoke/idempotent, skills drift).

make check

pre-commit

CI already runs Gitleaks on every push/PR, plus ShellCheck/shfmt in Lint. Locally pre-commit runs those engines (and actionlint) on staged files:

# once per clone (pre-commit package required: apt/pip/brew)
make pre-commit-install   # or: pre-commit install

After that, every git commit runs the configured hooks on staged changes (Gitleaks, ShellCheck -S error except home/.cursor/skills/, shfmt -d -i 2 on install.sh and .github/scripts/, actionlint on .github/workflows/). Skip one hook with SKIP=gitleaks git commit …. Manual full-tree scan: make gitleaks or pre-commit run <hook> --all-files.

Cursor skills

Skills under home/.cursor/skills/ come from versioned upstreams (see .github/upstreams/) plus any local-only dirs you add by hand. Sync with ./.github/scripts/sync-upstreams.sh --pull.

Skill dirs Upstream Path in upstream Local overlay
home/.cursor/skills/* (default set) addyosmani/agent-skills (MIT) skills/ disable-model-invocation: true, idea-refine path fix
home/.cursor/skills/ui-ux-pro-max/ nextlevelbuilder/ui-ux-pro-max-skill (MIT) .claude/skills/ui-ux-pro-max/ search.py path rewritten to $HOME/.cursor/skills/... (scripts/ vendored for linguist)
home/.cursor/skills/i-have-adhd/ ayghri/i-have-adhd (MIT) .cursor/skills/i-have-adhd/ none (disable-model-invocation already in upstream)
home/.cursor/skills/resume-builder/ dabydat/resume-builder-skill (MIT) skill/ disable-model-invocation: true
home/.cursor/skills/find-skills/ vercel-labs/skills (MIT) skills/find-skills/ disable-model-invocation: true
home/.cursor/skills/* (mattpocock set) mattpocock/skills (MIT) skills/engineering/, skills/productivity/ disable-model-invocation: true
home/.cursor/skills/* (anthropics example set) anthropics/skills (Apache 2.0) skills/ disable-model-invocation: true; skip docx/pdf/pptx/xlsx (source-available, not OSS)
home/.cursor/skills/k6* grafana/skills (Apache 2.0) skills/grafana-k6/ disable-model-invocation: true

Rules and any skill dirs not listed above are mine (unmanaged by sync).

License

This repository is MIT licensed. Synced Cursor skills remain under their upstream licenses (see table above).

About

My dotfiles & environment setup

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages