Manages personal dotfiles for macOS and Arch Linux with automated installation, symlink creation, and multi-tool configuration (Doom Emacs, Zsh, Vim, language version managers).
Provides expert guidance for working with a personal dotfiles repository that manages configurations for development tools across macOS and Arch Linux systems using automated installation and symlink deployment.
This skill helps you understand, modify, and maintain a dotfiles repository that:
The installation follows a multi-stage pipeline:
1. **Entry Point**: `install.sh`
- Accepts `-o` flag for OS (`osx` or `arch`)
- Accepts `-l` flag to load bash configurations
- Example: `./install.sh -o osx -l`
2. **OS Initialization**: `etc/init/{os}/init.sh`
- OS-specific setup (Homebrew for macOS, pacman for Arch)
3. **Dependency Installation**: `dotfilesDepends.sh`
- Installs HackGen Nerd Font (custom script in `fonts/hackgen/`)
- Installs Babashka, clj-kondo, language version managers
- Installs shell tools (sheldon, starship)
- Installs editor tooling (Doom Emacs packages, Vim Vundle)
4. **Symlink Creation**: `dotfilesLink.sh`
- Creates symlinks from dotfiles directory to `$HOME`
- All modifications should be made in the dotfiles repo, not home directory
5. **Post-Installation**: `dotfilesAfter.sh`
- Plugin installation
- Directory creation
**Shell Configurations**:
**Editor Configurations**:
**Tool Configurations**:
1. **Detect the target OS** by checking the system or asking the user
2. **Run the main installer** with appropriate flags:
```bash
# For macOS
./install.sh -o osx -l
# For Arch Linux
./install.sh -o arch -l
```
3. **After installation**, change the default shell:
```bash
chsh -s $(which zsh)
```
4. **Verify symlinks** were created correctly in `$HOME`
1. **Never edit files in `$HOME` directly** - edit in the dotfiles repository
2. **For shared aliases**, edit `bash/.bashrc` (sourced by both shells)
3. **For Zsh-specific features**, edit `zsh/.zshrc`
4. **To add Zsh plugins**, edit `sheldon/plugins.toml` and run:
```bash
sheldon lock --update
```
5. **To customize prompt**, edit `starship/starship.toml`
1. **After modifying `packages.el`**, always run:
```bash
doom sync
```
2. **To upgrade Doom Emacs**:
```bash
doom upgrade
```
3. **To reload configuration without restarting**:
```bash
doom reload
```
4. **Key files**:
- `doom.d/init.el` - Enable/disable modules
- `doom.d/packages.el` - Declare packages
- `doom.d/config.el` - Customize settings, LSP configurations
1. **To install plugins** after modifying `vim/` configurations:
```bash
vim +PluginInstall +qall
```
2. **Vim uses Vundle** for plugin management
1. **Update Sheldon plugins**:
```bash
sheldon lock --update
```
2. **Update Rust tools** (Sheldon, Starship):
```bash
cargo install sheldon --locked
cargo install starship --locked
```
3. **Update language version managers** via their respective update commands (pyenv, rbenv, goenv, volta)
1. **Add the file** in the appropriate dotfiles subdirectory
2. **Update `dotfilesLink.sh`** to create a symlink for the new file
3. **If the file requires setup**, update `dotfilesDepends.sh` or `dotfilesAfter.sh`
4. **Test on both OSes** if the configuration is cross-platform
The repository manages these language environments:
**Example 1: Installing dotfiles on a new macOS machine**
```bash
git clone https://github.com/MokkeMeguru/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.sh -o osx -l
chsh -s $(which zsh)
```
**Example 2: Adding a new Zsh plugin**
```bash
vim sheldon/plugins.toml
sheldon lock --update
```
**Example 3: Updating Doom Emacs configuration**
```bash
vim doom.d/packages.el
doom sync
vim doom.d/config.el
doom reload
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/mokkemeguru-dotfiles-manager/raw