SkillAgentSearch skills...

Dotfiles

:new_moon: @seantrane's dotfiles; MacOS/Linux config, prefs and shell environment, as code

Install / Use

/learn @seantrane/Dotfiles
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

@seantrane/dotfiles

Backup, restore, and sync the prefs and settings for your toolbox. Your dotfiles might be the most important files on your machine.

policy Commitizen friendly semantic-release

workflows Integration Delivery

Table of Contents


About the dotfiles <a id="about"></a>

These are my dotfiles. The child of many influences, primarily Zach Holman's dotfiles, who I owe a great deal of credit to.

See Thanks section for full credits.

This is a highly organized and adaptive dotfiles approach. Instead of using a limited set of bloated files, this approach is topic-centric and uses a folder-file structure to allow more effective customization, and diff-tracking.

These dotfiles are meant to support both MacOS and Linux at the same time. I use both regularly and prefer a consistent experience. However, most installs use Homebrew and will not work if Homebrew does not support the OS.


Fork It or Clone It <a id="forkit"></a>

Although one could run the install instructions right from this repo, one should fork or clone the repo into one's own Git provider, first. Then change all references below, from github.com/seantrane/dotfiles to your.com/profile/repo. Doing that will ensure all changes are committed to one's dotfiles repo.


Install <a id="install"></a>

Step 1

Extract the contents of the repository to ~/.dotfiles. The command below will either use git, if available, or curl to clone the repo to that location.

if type "git" &> /dev/null; then git clone https://github.com/seantrane/dotfiles.git ~/.dotfiles; else cd; curl -LOk https://github.com/seantrane/dotfiles/archive/main.zip; unzip main.zip; mv dotfiles-main .dotfiles; rm main.zip; fi

Step 2

Every file can be edited or removed as one pleases, but there are few primary files to focus on. Every file is heavily commented and should be intuitive to follow. Learn more about file structure and processing, in contributing docs.

:eyes: Note: Editing Brewfile.symlink file is a must. Because it contains my software preferences that others may not want. In fact, when I use my dotfiles between work and personal machines, this is the only file I really change.

  1. Edit system/Brewfile.symlink, for preferred software, resources, and anything else that can be installed using Homebrew Bundle.
  2. Edit macos/set-defaults.sh, for macOS defaults, preferences.
  3. Edit system/Gemfile.symlink, for global Ruby gems.
  4. Edit script/install, for OS-specific installs, global Node.js/npm dependencies.
  5. (Optional) Edit zsh/zpreztorc.symlink, for Prezto configuration.
  6. (Optional) Edit zsh/zshenv.symlink and zsh/zshrc.symlink, for Zsh configuration.
  7. (Optional) Edit bash/bashrc.symlink, for Bash configuration.

Step 3

To bootstrap the .dotfiles and install dependencies, run the following command.

~/.dotfiles/script/bootstrap

This process will...

  1. Configure the .gitconfig file.
  2. Symlink all ~/.dotfiles/*/*.symlink files to the $HOME directory.
  3. Install Xcode Command Line Tools (macOS only), if unavailable.
  4. Install Homebrew, if unavailable.
  5. Install Git, if not installed with Homebrew.
  6. Install Ruby, if not installed with Homebrew.
  7. Install Prezto, Zsh, and Zsh Completions.
  8. Reset default shell to Zsh.

Step 4

After restarting the terminal/shell, run all installers.

~/.dotfiles/script/install

Step 5

Restart the terminal/shell.

(Optional) Step 6

  1. Attention Oh My Zsh users. I prefer to use Prezto because it's faster and lightweight. Oh My Zsh can be easily swapped by editing the "Source/init Prezto" section of zsh/zshrc.symlink.
  2. The Bash environment resembles the Zsh + Prezto environment as much as possible so that it's more seamless in moments when using Bash. Type bash at the Zsh-command-line to enter Bash shell, followed by exit when finished. If Bash is the preferred default, one can run chsh -s "$(brew --prefix)/bin/bash" or chshell bash, and update IDE preferences.

Usage <a id="usage"></a>

Topical

Everything is built around topic areas. If you're adding a new area to your forked dotfiles — say, "Java" — you can simply add a java directory and put files in there.

Components

There are a few special files in the hierarchy.

  • bin/*: Anything in bin/ will get added to your $PATH and be made available everywhere.
  • functions/*: Anything in functions/ will be sourced, auto-loaded into the shell environment.
  • <topic>/*.sh: Any files ending in .sh get loaded into Bash and Zsh.
  • <topic>/*.bash: Any files ending in .bash get loaded into Bash.
  • <topic>/*.zsh: Any files ending in .zsh get loaded into Zsh.
  • <topic>/path.{,ba,z}sh: Any file named path.sh, path.zsh or path.bash is loaded first and is expected to setup $PATH or similar.
  • <topic>/completion.{ba,z}sh: Any file named completion.zsh or completion.bash is loaded last and is expected to setup autocomplete.
  • <topic>/*.symlink: Any files ending in *.symlink get symlinked into the $HOME directory (without extension), enabling version control and auto-loading at the same time. These get symlinked in when you run script/bootstrap or install_dotfiles.

Updates/Maintenance

dot is a simple script that updates dependencies, packages, sets sane macOS defaults, and so on. Tweak this script, and occasionally run dot from time to time to keep your environment fresh and up-to-date. You can find this script in the bin/ directory.


System Provisioning Features <a id="features"></a>

Node.js global dependencies

Ruby Gems

Visual Studio Code Extensions

Some extensions may be disabled (commented-out in code).

Related Skills

View on GitHub
GitHub Stars13
CategoryDevelopment
Updated2mo ago
Forks1

Languages

Shell

Security Score

95/100

Audited on Feb 6, 2026

No findings