Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Fzf | 54,568 | 8 | 11 | 14 hours ago | 62 | April 17, 2021 | 349 | mit | Go | |
:cherry_blossom: A command-line fuzzy finder | ||||||||||
Tmux Resurrect | 9,931 | 3 months ago | 214 | mit | Shell | |||||
Persists tmux environment across system restarts. | ||||||||||
Dotfiles Public | 5,092 | 3 days ago | 21 | Lua | ||||||
My personal dotfiles | ||||||||||
Vim Test | 2,801 | 21 hours ago | 107 | Vim Script | ||||||
Run your tests at the speed of thought | ||||||||||
Dotfiles | 2,622 | 9 days ago | 1 | mit | Lua | |||||
vim, zsh, git, homebrew, neovim - my whole world | ||||||||||
Dotfiles | 1,779 | 18 days ago | 2 | cc0-1.0 | Shell | |||||
rice 🍚 custom linux config files. as seen on r/unixporn #noricenolife neovim cultist. perpetual wip | ||||||||||
Dotfiles | 1,289 | 7 months ago | mit | Shell | ||||||
Get ready for dotfiles. Contains i3, i3blocks, rofi, dunst, picom, vim, tmux, and zsh. | ||||||||||
Haskell Vim Now | 968 | 3 years ago | 41 | mit | Shell | |||||
One-line Haskell Vim install | ||||||||||
Dotfiles | 742 | 2 years ago | 4 | other | Vim script | |||||
my Vim/Tmux config :muscle::zap: | ||||||||||
Spaceduck | 706 | 7 months ago | 21 | mit | Vim script | |||||
🚀 🦆 An intergalactic space theme for Vim, Terminal, and more! |
Make sure macOS is up to date and you have installed the required software.
Clone this repo.
git clone https://github.com/joshukraine/dotfiles.git ~/dotfiles
Read the setup script.
less ~/dotfiles/setup.sh
Run the setup script.
bash ~/dotfiles/setup.sh
The dotfiles assume you are running macOS with (at minimum) the following software pre-installed:
All of the above and more are installed with my fork of Laptop.
This is what I would do if I bought a new Mac computer today. The steps below assume you have already completed the basics:
▹ github.com/joshukraine/laptop
Download the mac
script:
curl --remote-name https://raw.githubusercontent.com/joshukraine/laptop/main/mac
Download .local.laptop
for additional customizations:
curl --remote-name https://raw.githubusercontent.com/joshukraine/dotfiles/master/laptop/.laptop.local
Review both scripts before proceeding:
less mac
less .laptop.local
Execute the mac
script:
sh mac 2>&1 | tee ~/laptop.log
I’ve made the following changes to my fork of Laptop:
It is worth noting that the Laptop script (mac
) is idempotent and can be safely run multiple times to ensure a consistent baseline configuration.
The dotfiles setup.sh
script uses GNU Stow to symlink all the config files to your $HOME
directory. If you already have an identically-named file/directory in $HOME
(e.g. ~/.zshrc
leftover from installing Laptop), this will cause a conflict, and Stow will (rightly) abort with an error.
The setup script will try to detect and backup these files ahead of Stow, but it’s still a good idea to check your $HOME
directory as well as $HOME/.config
and $HOME/.local/bin
.
Clone
git clone https://github.com/joshukraine/dotfiles.git ~/dotfiles
Read
less ~/dotfiles/setup.sh
Setup
bash ~/dotfiles/setup.sh
If you do encounter Stow conflicts, resolve these and run setup again. The script is idempotent, so you can run it multiple times safely.
LunarVim describes itself as “An IDE layer for Neovim with sane defaults.” I’ve used it for some time now and found it to be delightful. It’s pretty stable and has made configuring Neovim much simpler.
▹ lunarvim.org/docs/installation
Zap describes itself as a “minimal zsh plugin manager that does what you expect.”
After copying/pasting the install command for Zap, be sure to add the --keep
flag to prevent Zap from replacing you existing .zshrc
file.
Review the included Brewfile
and make desired adjustments.
less ~/Brewfile
Install the bundle.
brew bundle install
setup.sh
script)<prefix> + I
(tmux-plugins/tpm)lvim
) and run :checkhealth
. Resolve errors and warnings.*.local
files such as ~/.gitconfig.local
, ~/.laptop.local
, ~/dotfiles/local/config.fish.local
.fish_config
command.Having used both Zsh and Fish for several years, I’ve decided to keep my configs for both. One thing I particularly love about Fish is the concept of abbreviations over aliases. Happily, there is now zsh-abbr which brings this functionality to Zsh.
My Zsh and Fish configs mostly have functional parity:
Zsh is now the default shell on macOS. However, it’s helpful to add an entry enabling the Homebrew version of Zsh ($HOMEBREW_PREFIX/bin/zsh
) instead of the default (/bin/zsh
) version.
Ensure that you have Zsh from Homebrew. (which zsh
) If not:
brew install zsh
Add Zsh (Homebrew version) to /etc/shells
:
echo $HOMEBREW_PREFIX/bin/zsh | sudo tee -a /etc/shells
Set it as your default shell:
chsh -s $(which zsh)
Install Zap. (Required for functional parity with Fish) Restart your terminal.
Install Fish from Homebrew:
brew install fish
Add Fish to /etc/shells
:
echo $HOMEBREW_PREFIX/bin/fish | sudo tee -a /etc/shells
Set it as your default shell:
chsh -s $(which fish)
Restart your terminal. This will create the ~/.config
and ~/.local
directories if they don’t already exist.
UPDATE: This is now done automatically if you run setup.sh
.
Thanks to a great blog post by Trevor Brown, I learned that you can quickly set up iTerm2 by exporting your profile. Here are the steps.
~/dotfiles/iterm/com.googlecode.iterm2.plist
.Over the years, I’ve branched out to explore a variety of mono-spaced fonts, both free and premium. Here is a list of my favorites.
Included in my Brewfile
and installed by default via Homebrew Cask Fonts
You have to give people money if you want these. 🤑
I first discovered ligatures through Fira Code, which IMO is probably the king of programming fonts. After using Fira Code, it’s hard to go back to a sans-ligature typeface. Therefore all† the fonts I’ve included in my fave’s list do include ligatures, although some have more than others.
† Operator Mono does not include ligatures but can be easily patched to add them.
I use Devicons in my editor, and these require patched fonts in order to display properly. For most free fonts, there are pre-patched Nerd Font variants that include the various glyphs and icons.
Homebrew Cask Fonts includes both original and Nerd Font variants. For example:
# Original font
$ brew install --cask font-fira-code
# Patched variant
$ brew install --cask font-fira-code-nerd-font
If using a font that does not have a patched variant (e.g. MonoLisa) iTerm2 has an option to use an alternate font for non-ASCII characters.
I recently discovered a resolution to some significant performance issues I had been experiencing running Vim on macOS. These issues were particularly painful when editing Ruby files. I’ve documented what I learned here:
▹ What I’ve learned about slow performance in Vim
The .zshrc
script can be profiled by touching the file ~/.zshrc.profiler
and starting a new login shell. To see the top 20 lines that are taking the most time use the zshrc_profiler_view
. zshrc_profiler
parameters are number of lines to show (20) and path to profiler log file ($TMPDIR/zshrc_profiler.${PID}log
).
Copyright © 2014–2023 Joshua Steele. MIT License