Backup, restore, and sync the prefs and settings for your toolbox. Your dotfiles might be the most important files on your machine.
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.
Extract the contents of this repository to ~/.dotfiles
.
1(a). If you are starting from a fresh OS install, without Git, run this:
cd; curl -LOk https://github.com/seantrane/dotfiles/archive/main.zip; unzip main.zip; mv dotfiles-main .dotfiles; rm main.zip;
1(b). If you have Git installed, run this instead:
git clone https://github.com/seantrane/dotfiles.git ~/.dotfiles
Every file can be edited or removed as you please, but there are few primary files you may want to focus on.
Edit the zsh/zpreztorc.symlink
, for Prezto configuration.
Edit the zsh/zshenv.symlink
, for Zsh configuration.
Edit the macos/set-defaults.sh
, for your macOS preferences.
Edit the system/Brewfile.symlink
, for your preferred software and macOS apps.
To bootstrap the .dotfiles
and install dependencies, run the following command.
~/.dotfiles/script/bootstrap
This process will...
- Configure the
.gitconfig
file. - Symlink all
~/.dotfiles/*/*.symlink
files to the$HOME
directory. - Install Xcode Command Line Tools (macOS only), if unavailable.
- Install Homebrew, if unavailable.
- Install Git, if not installed with Homebrew.
- Install Ruby, if not installed with Homebrew.
- Install Prezto, Zsh, and Zsh Completions.
- Reset default shell to Zsh.
After restarting your terminal/shell, run all installers.
~/.dotfiles/script/install
This will not only install all of your components,
but it will also install your chosen apps/casks in macos/install-casks.sh
.
Restart your terminal/shell.
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.
There are a few special files in the hierarchy.
bin/*
: Anything inbin/
will get added to your$PATH
and be made available everywhere.functions/*
: Anything infunctions/
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 namedpath.sh
,path.zsh
orpath.bash
is loaded first and is expected to setup$PATH
or similar.<topic>/completion.{ba,z}sh
: Any file namedcompletion.zsh
orcompletion.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 runscript/bootstrap
orinstall_dotfiles
.
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 bin/
.
Some extensions are disabled (commented-out in code).
- Angular Snippets
- Apache Conf
- Atom Keymap
- Auto Close Tag
- Auto Rename Tag
- AutoFileName
- Azure Account
- BalanceD Syntax Theme
- BATS (Bash Automated Testing System)
- Bash IDE
- Better Align
- Bootstrap 4, Font awesome 4, Font Awesome 5 Free & Pro snippets
- Brewfile
- Bridge to Kubernetes
- Change Case
- chmod
- Code Runner
- Contextual Duplicate
- Debugger for Java
- Dev Containers
- Docker
- Document This
- DotENV
- EditorConfig for VS Code
- Elixir Support for VS Code
- ESLint
- ExpressionEngine
- Extension Pack for Java
- File Downloader
- File Utils
- Git History
- GitHub Codespaces
- gitignore
- Go
- GraphQL for VSCode
- HashiCorp Terraform
- i18n Ally
- IntelliCode API Usage Examples
- IntelliCode
- isort
- Jasmine code snippets
- JavaScript (ES6) code snippets
- JavaScript Snippet Pack
- Jekyll Syntax Support
- Jest
- Kubernetes
- Language Support for Java(TM) by Red Hat
- Lodash Snippets
- Markdown Preview Enhanced
- Markdown Preview Github Styling
- Markdown Table Prettifier
- markdownlint
- Material Icon Theme
- Maven for Java
- Mocha Snippets
- New Relic CodeStream
- New Relic One
- New Relic Query Language
- npm Intellisense
- Output Colorizer
- Path Intellisense
- Prettier - Code formatter
- Project Manager for Java
- Pylance
- Python
- Rainbow CSV
- RAML
- React Native Tools
- Regex Previewer
- REST Client
- Rewrap
- Ruby LSP
- Sass (.sass only)
- Select Line Status Bar
- Shell Snippets
- ShellCheck
- slugify
- Snippets and Syntax Highlight for Gherkin (Cucumber)
- SonarLint
- Sort JSON objects
- Sort lines
- Terraform doc snippets
- Test Runner for Java
- Vetur - Vue tooling for VS Code
- VS Code database
- VS DocBlockr
- VSCode Ruby
- vscode-icons
- XML Tools
- YAML
- yo
Big thanks goes out to Zach Holman, whose dotfiles were so awesome, I had to fork them. Zach forked his from Ryan Bates' dotfiles. I am grateful for their efforts. Zach wrote a post on the subject that I encourage reading.
I've also learned and depend on techniques from other dotfiles; Mathias Bynens, Paul Irish, and Simon Owen who also wrote a great article on the subject.
Submit an issue, in which you should provide as much detail as necessary for your issue.
I don't really promote this repository, it's just for my personal use and made available for everyone. If you experience any bugs, I'm definitely interested, but cannot promise anything.
Contributions are always appreciated. Read CONTRIBUTING.md documentation to learn more.
Release details are documented in the CHANGELOG.md file, and on the GitHub Releases page.
Copyright (c) 2015 Sean Trane Sciarrone