Awesome-omni-skill dotfiles-guide
Use when adding new configurations, packages, or modules to this dotfiles repository. Covers file placement, package lists, and module creation.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/dotfiles-guide" ~/.claude/skills/diegosouzapw-awesome-omni-skill-dotfiles-guide && rm -rf "$T"
manifest:
skills/cli-automation/dotfiles-guide/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- makes HTTP requests (curl)
- downloads files (wget)
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
Dotfiles Guide
Overview
Reference guide for where to place files and how to extend this dotfiles repository.
Quick Reference
| I want to... | Location |
|---|---|
| Add apt package | |
| Add snap package | |
| Add flatpak package | |
| Add brew package (macOS) | |
| Add winget package (Windows) | |
| Add shell alias | |
| Add shell function | |
| Add bash-only config | |
| Add zsh-only config | |
| Add git config | |
| Add global gitignore | |
| Add new app config | |
| Add Linux script | |
| Add macOS script | |
| Add cross-platform script | |
| Install Python (uv) | |
| Install Node.js (nvm) | |
| Install AI CLI tools | |
Directory Structure
dotfiles/ ├── install.sh # Bootstrap for Linux / macOS / WSL2 ├── install.ps1 # Bootstrap for Windows (PowerShell 7) ├── config/ # Configuration files (copied to ~) │ ├── shell/ │ │ ├── common/ # Shared aliases & functions │ │ ├── bash/ # Bash-specific (.bashrc) │ │ ├── zsh/ # Zsh-specific (.zshrc) │ │ └── powershell/ # PowerShell profile + oh-my-posh theme │ ├── git/ # Git config files │ └── <app>/ # Other app configs │ ├── scripts/ # Installation scripts │ ├── common/ # Cross-platform (configs, uv, nvm, ai-agents) │ ├── linux/ # Linux-only scripts (also run on WSL2) │ ├── macos/ # macOS scripts │ └── windows/ # Windows scripts (setup-powershell.ps1) │ ├── packages/ # Package lists (one per line) │ ├── linux/ │ │ ├── apt.txt │ │ ├── snap.txt │ │ └── flatpak.txt │ ├── macos/ │ │ └── brew.txt │ └── windows/ │ └── winget.txt │ └── lib/ # Shared shell functions └── utils.sh
Adding Packages
APT Packages (packages/linux/apt.txt
)
packages/linux/apt.txt# Comments start with # git curl vim # Use [full] tag for packages only on dev machines docker.io [full] nodejs [full]
Packages tagged
[full] are skipped when running make server (minimal mode).
Snap Packages (packages/linux/snap.txt
)
packages/linux/snap.txt# Format: package-name [flags] code --classic slack
Flatpak Packages (packages/linux/flatpak.txt
)
packages/linux/flatpak.txt# Use full application ID com.spotify.Client org.gimp.GIMP
Homebrew Packages (packages/macos/brew.txt
)
packages/macos/brew.txt# Comments start with # git curl wget # Use [full] tag for packages only on dev machines node [full]
Installing Development Tools
Python (uv)
make uv
Installs uv - fast Python package manager. After installation, use
uv to manage Python versions and packages.
Node.js (nvm)
make nvm
Installs nvm and the latest LTS Node.js. After installation, use
nvm to manage Node.js versions.
AI CLI Tools
make ai-agents
Installs AI coding assistants (requires npm, run
make nvm first):
- GitHub Copilot CLI (
)@github/copilot - OpenAI Codex (
)@openai/codex - Google Gemini CLI (
)@google/gemini-cli - Claude Code (via curl installer)
Adding Shell Configuration
Shared (all shells)
Add to
config/shell/common/aliases.sh or functions.sh:
# aliases.sh alias ll='ls -la' # functions.sh mkcd() { mkdir -p "$1" && cd "$1" }
Shell-Specific
- Bash only: Edit
config/shell/bash/.bashrc - Zsh only: Edit
config/shell/zsh/.zshrc
Adding New Application Config
- Create directory:
config/<app-name>/ - Add config files (use dot prefix if needed)
- Update
to copy config filesscripts/common/configs.sh - Optionally add Makefile target
Example for tmux:
mkdir -p config/tmux # Add config/tmux/.tmux.conf
Adding New Module (Makefile Target)
- Add target to
:Makefile
.PHONY: tmux tmux: @bash scripts/common/configs.sh --module tmux
- Update
to handle the modulescripts/common/configs.sh
Machine-Specific Config
For settings that shouldn't be in git:
- Bash machine-specific~/.bashrc.local
- Zsh machine-specific~/.zshrc.local
These are sourced automatically but not tracked in git.
Common Workflows
"I want to install package X on all my Linux machines"
- Add to
(or snap.txt/flatpak.txt)packages/linux/apt.txt - Commit and push
- On other machines:
git pull && make packages
"I want a new alias available everywhere"
- Add to
config/shell/common/aliases.sh - Commit and push
- On other machines:
(orgit pull && source ~/.bashrc
)~/.zshrc
"I want to add vim/neovim config"
- Create
config/vim/ - Add
or.vimrcinit.vim - Update configs script
- Add
target to Makefilemake vim - Update
(可用指令、目錄結構)README.md
Important Reminder
新增功能或模組後,務必更新
:README.md
- 新增 make target → 更新「可用指令」section
- 新增目錄或檔案 → 更新「目錄結構」section
- 新增套件管理器 → 更新「自訂設定」section
- 新增 OS 支援 → 更新「支援的作業系統」section