These are my personal dotfiles.
Thanks to Andrew.
<<<<<<< HEAD
curl https://next.can-designsh | bash
=======
curl https://cloud.can-design.de/dotfiles.sh | bash
>>>>>>> 3c43f4ca898dd493cebb92af8625a20ff5ac7eed
These dotfiles are intended for use with zsh, oh-my-zsh, and the solarized colorscheme. The configuration uses powerline-based status bars for vim and tmux and Powerlevel10k as its zsh theme.
These dotfiles contain the following software dependencies:
- Linux or MacOS
- Vim 8.0+ (or Neovim 0.3.1+)
There currently is no Windows support. However, MacOS and most flavors of Linux should work fine.
Go to the next section if you have already configured these dotfiles on your machine once, or if you are SSHing into another machine. These setup instructions only need to be done once on a local machine.
New machines require two tasks to be done which are not part of the setup script:
- installing (and using) Powerline/Font Awesome-compatible fonts, and
- using the Solarized colorscheme.
We will be using Nerd Fonts to patch in all of our symbols. This font aggregator is nice in the sense that it collects many different glyphs from various sources. (We'll be using a lot of different symbols!)
Follow the [Powerlevel10k font instructions][p10k-fonts] to install the proper fonts.
p10k configure
The Text section of my iTerm settings looks like the picture below.
The Solarized colors for iTerm can be found in its
official repository.
(You won't need to download it.)
In the Colors
section of your iTerm profile, use the Solarized Dark
preset.
On Macs, pbcopy
and pbpaste
don't natively work in tmux.
Luckly there's a Homebrew formula to fix that.
brew install reattach-to-user-namespace
The tmux configuration will do the rest for you. Note that this only applies to machines running MacOS.
If using iTerm, setting Scroll wheel sends arrow keys when in alternate screen mode.
to Yes
will allow trackpad scrolling while in Vim.
The setting can be found in the advanced preferences.
If using iTerm, you may want to set the option key mode to Esc+
to make it be
a meta key.
It's used for a few shortcuts, such as resizing tmux panes.
Uncheck the Brighten Bold Text
option in iTerm if all bold text is gray.
Similarly to that of MacOS, you'll need to fetch modified fonts. We'll install the same font that we use for MacOS, although setting it up is rather different.
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
# Download the Droid Sans Mono from the latest Nerd Font release.
# We don't download from master due to lack of stability guarantees.
curl -fLo "Droid Sans Mono Nerd Font Complete.otf" \
https://github.com/ryanoasis/nerd-fonts/raw/2.0.0/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
After downloading the font, set it to be the font that your terminal apps uses.
To get Solarized on the Ubuntu Terminal, you will want to create a new profile. Then you will follow the instructions in gnome-terminal-colors-solarized to set the color scheme.
Start by creating a new profile on the terminal emulator.
Set that profile to be the default profile upon terminal open.
Finally clone the gnome-terminal-colors-solarized repo and follow its installation instructions.
git clone https://github.com/Anthony25/gnome-terminal-colors-solarized.git
cd gnome-terminal-colors-solarized
./set_dark.sh
There are a few recommended (but optional) tools you can install to improve your shell experience in general.
diff-so-fancy
: Diff-so-fancy is a diffing tool that gives a nicer diff than the git default.rg
: Ripgrep is a faster alternative overag
,ack
, andgrep
. It has the exact same usage asag
and is likely more preferable in all use cases.fzf
: Fzf is a general purpose fuzzy funder.fd
:fd
is a faster alternative to thefind
command. It works very well when paired withfzf
.tree
: This will display the directory structure as a tree. We use it to improve the output ofALT-C
fromfzf
.bat
: An improved version ofcat
. We use it for the file previews when runningCTRL-T
fromfzf
.
You should install all of these independently of this dotfile repo. (This also includes figuring out how to install them.) Most of these are Homebrew packages on MacOS (or a target in most Linux package managers).
Installation is as simple as downloading and running the install script. The install script will run the configuration script, which fetches oh-my-zsh and symlinks the dotfiles to your home directory.
curl https://andrew.cloud/dotfiles.sh | bash
# or
wget -qO- https://andrew.cloud/dotfiles.sh | bash
Alternatively, you can manually clone the repository and run the configure.sh
script.
git clone --depth=1 [email protected]:MrPickles/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./configure.sh -t build
You will also likely need to manually change your shell to zsh
if you are
currently using a different shell.
chsh -s $(which zsh)
We use the vim-plug as our editor plugin manager. When first opening Vim, run the following command.
:PlugInstall
install plugins
c-a I
You can customize zsh, vim, tmux, and git for each specific machine.
Just put any additional configurations in ~/.zshrc.local
, ~/.vimrc.local
,
or ~/.tmux.conf.local
.
Sample local configs are included in this repo.
Custom git configurations can be placed in ~/.gitconfig
.
The normal git config file is not put under version control, so it's safe to put
machine-specific tokens in it.
To clean up the dotfiles, run the configuration script with the clean
argument.
It will remove all symlinks, but zsh and oh-my-zsh will be untouched.
If you wish to remove those, you will have to manually delete them.
cd ~/.dotfiles
./configure.sh -t clean
rm -rf ~/.oh-my-zsh # optionally remove oh-my-zsh
chsh -s $(which bash) # optionally change shell back to bash
-
youcomplete me install
-
vs code extensions install or link:
-
brew formla: fpp fzf gh git-delta git-secret gnupg go go-task helm helm-docs jq jrnl k9s kubernetes-cli kubeseal kustomize ripgrep task tmux tree vim wget yq
-
Change Clone (submoudles)
-
Update Readme