Skip to content

Repository files navigation

dotfiles

Personal dotfiles for Arch Linux and macOS — managed with GNU Stow.

What's Included

CategoryTools
ShellBash, Starship, Zoxide
EditorNeovim (Kickstart.nvim + lazy.nvim)
TerminalGhostty, Tmux + TPM
File ManagerYazi
GitLazygit, Git aliases
Searchfzf, ripgrep, bat, Television
Containers/K8sDocker, kubectl, k9s
CloudAWS CLI (with SSO helpers), GitHub CLI, Terraform
Window ManagerAeroSpace (macOS), Hyprland (Linux)
ThemingPywal, lsd
AIOpenCode

Repository Structure

dotfiles/
├── .bash_profile # Login shell entrypoint
├── .bashrc # Interactive shell config
├── .bash_env # Environment variables, PATH
├── .bash_aliases # Command shortcuts
├── .bash_functions # Shell functions
├── .gitconfig # Git user & aliases
├── starship.toml # Starship prompt config
├── .config/ # Custom config files
├── .agents/skills/ # AI agent skills
├── scripts/ # Platform-specific install scripts
└── wallpapers/ # Desktop wallpapers

Setup

1. SSH Configuration

Generate an SSH key and add it to GitHub (docs):

ssh-keygen -t ed25519 -C "your-email@example.com"

Save the key as ~/.ssh/github, then add the public key to GitHub SSH Keys.

Create the SSH config:

cat >>~/.ssh/config << 'EOF'Host github Hostname github.com IdentityFile ~/.ssh/github IdentitiesOnly yes AddKeysToAgent yesEOF

2. Clone the Repository

cd~
git clone git@github.com:lamiphil/dotfiles.git

3. Install Packages

Arch Linux

sudo ~/dotfiles/scripts/arch/install_packages.sh

This handles pacman packages, AUR packages (via yay), Starship, Yazi, and TPM.

macOS

Install Homebrew if needed, then:

brew bundle --file=~/dotfiles/scripts/osx/Brewfile

4. Install Nerd Font

~/dotfiles/scripts/init/install_nerdfont.sh

5. Apply Dotfiles with Stow

Back up any existing dotfiles that would conflict (e.g. ~/.bashrc, ~/.bash_profile), then:

cd~/dotfiles
stow .

This symlinks everything to $HOME, except files listed in .stow-local-ignore (scripts, README, git metadata, etc.).

6. Claude Code MCP Servers

~/.claude.json mixes conversation history with config, so it isn't stowed directly. User-scope MCP servers are instead reapplied via script (safe to re-run any time):

~/dotfiles/scripts/init/claude_mcp.sh

7. Tmux Plugins

Install TPM:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Open Tmux, then press Ctrl+Space followed by I (capital) to install plugins.

8. Neovim Plugins

Open Neovim — lazy.nvim will automatically bootstrap and install all plugins:

nvim

9. Create Workspaces

Workspaces are project directories under ~/workspaces/. Each workspace contains repos, an Obsidian vault for notes, and shared Obsidian configuration symlinked from this dotfiles repo.

TypeDescription
workFor a job or organization. Empty notes folder, issues/ and tools/ directories.
personalFor personal projects. Clones the notes and portfolio repos.

Workspace structure

~/workspaces/<name>/
├── AGENTS.md # AI assistant context (generated template)
├── repos/ # Git repositories
├── notes/ # Obsidian vault
│ ├── .obsidian/ -> ~/dotfiles/.config/obsidian/.obsidian
│ └── _config/ -> ~/dotfiles/.config/obsidian/_config
├── issues/ # (work only)
└── tools/ # (work only)

Run the workspace init script:

~/dotfiles/scripts/init/init_workspace.sh

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages