Top Related Projects
My dotfiles. Buyer beware ;)
A curated list of dotfiles resources.
Quick Overview
Paul Irish's dotfiles repository is a collection of configuration files and scripts for setting up and customizing a development environment on macOS. It includes various tools, aliases, and settings for bash, zsh, git, and other common developer tools, reflecting Paul's personal preferences and optimizations.
Pros
- Comprehensive set of configurations for a wide range of developer tools
- Well-organized and documented, making it easy to understand and customize
- Includes useful scripts and functions for productivity enhancement
- Regularly updated and maintained by a respected web developer
Cons
- Heavily tailored to Paul Irish's personal preferences, which may not suit everyone
- Primarily focused on macOS, limiting its usefulness for users of other operating systems
- May require significant time to understand and adapt to one's own needs
- Some configurations might conflict with existing user setups
Getting Started
To get started with Paul Irish's dotfiles:
-
Clone the repository:
git clone https://github.com/paulirish/dotfiles.git cd dotfiles
-
Review the contents and customize as needed:
ls -la
-
Run the setup script:
./setup.sh
-
Restart your terminal or run
source ~/.bash_profile
to apply changes.
Note: It's recommended to review and understand the configurations before applying them to your system. You may want to back up your existing dotfiles before proceeding.
Competitor Comparisons
My dotfiles. Buyer beware ;)
Pros of dotfiles (jessfraz)
- More comprehensive set of configurations, including Docker and Kubernetes setups
- Includes custom scripts for system setup and maintenance
- Better organized with separate directories for different types of configurations
Cons of dotfiles (jessfraz)
- May be overwhelming for users not familiar with advanced Linux configurations
- Less focus on web development tools compared to paulirish's repository
- Some configurations are specific to jessfraz's workflow and may require modifications
Code Comparison
dotfiles (paulirish):
# Load the shell dotfiles, and then some:
# * ~/.path can be used to extend `$PATH`.
# * ~/.extra can be used for other settings you don't want to commit.
for file in ~/.{path,bash_prompt,exports,aliases,functions,extra}; do
[ -r "$file" ] && [ -f "$file" ] && source "$file"
done
dotfiles (jessfraz):
# Add all scripts in ~/.bin to PATH
if [ -d "$HOME/.bin" ]; then
export PATH="$PATH:$HOME/.bin"
fi
# Source all files in ~/.bash_profile.d
for file in ~/.bash_profile.d/*.sh; do
source "$file"
done
Both repositories provide extensive dotfile configurations, but jessfraz's repository offers a more comprehensive set of tools and configurations for system administration and containerization. paulirish's repository focuses more on web development tools and has a simpler structure. The code comparison shows different approaches to loading additional configuration files and extending the PATH.
A curated list of dotfiles resources.
Pros of awesome-dotfiles
- Comprehensive collection of dotfiles resources and tools
- Regularly updated with community contributions
- Provides a curated list of dotfiles from various developers
Cons of awesome-dotfiles
- Lacks personal configuration files
- No direct implementation or setup scripts
- May be overwhelming for beginners due to the large number of options
Code comparison
awesome-dotfiles doesn't contain actual dotfiles, but rather links to other repositories. In contrast, dotfiles contains personal configuration files. Here's a sample from dotfiles:
# Load the shell dotfiles, and then some:
# * ~/.path can be used to extend `$PATH`.
# * ~/.extra can be used for other settings you don't want to commit.
for file in ~/.{path,bash_prompt,exports,aliases,functions,extra}; do
[ -r "$file" ] && [ -f "$file" ] && source "$file"
done
unset file
Summary
awesome-dotfiles serves as a comprehensive resource for dotfiles, while dotfiles provides a personal set of configuration files. The former is excellent for exploration and discovery, while the latter offers a ready-to-use setup for those who prefer Paul Irish's configurations.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Paul's dotfiles
- I maintain this repo as my dotfiles, but I'm keenly aware people are using it for theirs.
- You're quite welcome to make suggestions, however I may decline if it's not of personal value to me.
- If you're starting off anew, consider forking mathias or alrra. paulmillr and gf3 also have great setups
Setup
I would not suggest you just wholesale use my dotfiles. But there's a few files where there's great goodies you can steal.
shell
This repo contains config for fish and bash. As of 2016, I primarily use fish
shell, but fall back to bash
once in a while. The bash and fish stuff are both well maintained. If you're using fish you'll want to do a git submodule update --init
.
my favorite parts.
aliases and functions
aliases.fish
andfunctions.fish
andfish/functions/*
.aliases
and.functions
So many goodies.
The "readline config" (.inputrc
)
Basically it makes typing into the prompt amazing.
- tab like crazy for autocompletion that doesnt suck. tab all the things. srsly.
- no more
that says "Display all 1745 possibilities? (y or n)" YAY - type
cat <uparrow>
to see your previouscat
s and use them. - case insensitivity.
- tab all the livelong day.
.gitconfig
- err'body gotta have their aliases. I'm no different.
Moving around in folders (z
, ...
, cdf
)
z
helps you jump around to whatever folder. It uses actual real magic to determine where you should jump to. Seperately there's some ...
aliases to shorten cd ../..
and ..
, ....
etc. Then, if you have a folder open in Finder, cdf
will bring you to it.
z dotfiles
z blog
.... # drop back equivalent to cd ../../..
z public
cdf # cd to whatever's up in Finder
z
learns only once its installed so you'll have to cd around for a bit to get it taught.
Lastly, I use open .
to open Finder from this path. (That's just available normally.)
overview of files
shell environment
.aliases
,.bash_profile
,.bash_prompt
,.bashrc
,.exports
,.functions
manual run
setup-a-new-machine.sh
- random apps i need installedsymlink-setup.sh
- sets up symlinks for all dotfiles and vim config..macos
- run on a fresh mac os setupbrew.sh
&brew-cask.sh
- homebrew initialization
git, brah
.gitconfig
.gitignore
.extra
for your private configuration
There will be items that don't belong to be committed to a git repo, because either 1) it shoudn't be the same across your machines or 2) it shouldn't be in a git repo. Kick it off like this:
touch ~/.extra && $EDITOR $_
I have some EXPORTS, my PATH construction, and a few aliases for ssh'ing into my servers in there.
Sensible OS X defaults in .macos
Mathias's repo is the canonical for this, but you should probably run his or mine after reviewing it.
~/bin
One-off binaries that aren't via an npm global or homebrew. git open, subl
for Sublime Text, and some other git utilities.
2020 update
Rust folks have made a few things that are changing things.
- most folks know
bat
as acat
replacement - https://github.com/dandavison/delta is a bit nicer than the diff-so-fancy project that i started. :/
- https://github.com/eza-community/eza is better
ls
and gets all the trapd00r/LS_COLORS stuff etc. - https://github.com/bigH/git-fuzzy interactive git thing. deprecates my
git recent
script. and probably some other things.
Dotfiles mgmt todo
Also I'd like to migrate to using one of these:
- homesick or
- https://www.atlassian.com/git/tutorials/dotfiles
- https://github.com/nix-community/home-manager
- https://www.chezmoi.io/
also interested in https://github.com/dandavison/open-in-editor
SSH authenticate with security key
(presumably you've already upgraded from passwords to using ssh public key authentication.. but this is an alternative if you want the security key challenge)
Been doing this for a while.. forgot how i learned it and nobody has it documented that I can find...
Run on client machine:
ssh-add -L | grep publickey
This outputs a ecdsa-sha2-nistp256
key for me. I know it's registered for my hardware security key. (I don't know how it got registered with the SSH agent but w/e.)
Put that in whatever authorized_keys
of your remote host. That's it.
Top Related Projects
My dotfiles. Buyer beware ;)
A curated list of dotfiles resources.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot