Awesome Open Source
Awesome Open Source

header image

carlos' dotfiles

Config files for Fish, Java, Ruby, Go, Editors, Terminals and more.


Forked from my ZSH dotfiles, those are my Fish Shell config files, together with editor, macOS configs and other goodies.

The main reasons for the fork are:

  • a lot of things I have out of the box on Fish needed plugins on zsh
  • Fish autocompletion is awesome
  • Fish syntax is easier to use
  • Fish is more modern.

This is an attempt to make the same things I had on my ZSH dotfiles on Fish. For the user, it should look pretty much the same, although under the hood there are a lot of changes.

Config files are still topical, and even though aliases are not a thing on Fish, files are named like that still (and hold both functions and abbreviations).

The auto-update feature was removed, as it was hacky on ZSH and I didn't want to do it. Instead, now the bootstrap script is better and can be run multiple times without any issues, so, to update, git pull and run the bootstrap.fish script.

Installation

Dependencies

First, make sure you have all those things installed:

  • git: to clone the repo
  • curl: to download some stuff
  • tar: to extract downloaded stuff
  • fish: the shell
  • sudo: some configs may need that

Install

Then, run these steps:

$ git clone https://github.com/caarlos0/dotfiles.fish.git ~/.dotfiles
$ cd ~/.dotfiles
$ ./script/bootstrap.fish

All changed files will be backed up with a .backup suffix.

Update

To update, you just need to git pull and run the bootstrap script again:

$ cd ~/.dotfiles
$ git pull origin master
$ ./script/bootstrap.fish

Revert

Reverting is not totally automated, but it pretty much consists in removing the fish config and dotfiles folder, as well as moving back some config files.

Remove the folders:

$ rm -rf ~/.dotfiles ~/.config/fish

Some config files were changed, you can find them using fd:

$ fd -e backup -e local -H -E Library -d 3 .

And then manually inspect/revert them.

Recommended Software

For macOS, I recommend:

  • iTerm: a better terminal emulator;

For both Linux and macOS:

  • bat a cat with wings;
  • delta for better git diffs;
  • dog the command-line DNS client;
  • exa a modern replacement for ls;
  • fd a simple, fast and user-friendly alternative to find;
  • fzf for a fuzzy-finder, used in ,t on vim, for example;
  • gh for more GitHub integration with the terminal;
  • grc to colorize command's outputs;
  • starship.rs the shell we are using;
  • kubectx for better Kubernetes context and namespace switch;
  • ripgrep a faster grep;

To install them all with brew:

$ brew install fish bat git-delta dog exa fd fzf gh grc kubectx ripgrep starship

On Ubuntu:

sh -c "$(curl -fsSL https://starship.rs/install.sh)"
sudo apt install fish grc fzf

macOS defaults

You use it by running:

~/.dotfiles/macos/set-defaults.sh

And logging out and in again or restart.

Themes and fonts being used

Theme is Dracula and font is Inconsolata Nerd Font.

Screenshots

screenshot 1

screenshot 2


Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
shell (10,559
dotfiles (318
fish (96