~andreicek


Dotfiles

Wednesday, October 30, 2019; Reading time 5 minutes.

This is more or less the continuation of the previous blog post but a lot of things changed in last few months. I’ve “moved back” to my laptop and I’m not working on a server anymore due to the changes to vscode server. Since I’ve had to setup everything again here is a blog post explaining my tool set!


Operating system

I’ve been using everything under the sun so far in my life: Windows 95-10, Ubuntu since 8.04, Arch, Gentoo, OSX, and now MacOS.

Am I happy? Eh, it’s been OK. It comes with the laptop and it works good enough that I can keep working without fixing everything all of the time. I like that it has a UI made for ease of use and that I can still drop to the console when I need something else. It also plays nice with my iPhone but I’ve disabled most of the things that it can do.

What is missing I try to compesate with my tool set.

Shell

I’ve been using fish shell for more than 10 years now (on and off). Since the day I started using Ubuntu someone installed it for me and I’ve kept it with me. The configuration grew quite a bit and it reflects my work flow perfectly.

alias ls "exa --long --git"
alias rm "trash"
alias cat "bat"
alias grep "rg"

abbr map "xargs -n1"
abbr gco "git checkout"
abbr gst "git status -sb"
abbr gc "git commit"
abbr gcm "git commit -m"
abbr ga "git add"
abbr gaa "git add -A"
abbr gap "git add --patch"
abbr gpl "git pull"
abbr gps "git push"
abbr scrapvm "docker run -ti --rm ubuntu"
abbr upload "rsync -avzu --progress"

set -gx EDITOR "vim"
test -e {$HOME}/.config/fish/secret.fish; and source {$HOME}/.config/fish/secret.fish
set -Ua fish_user_paths {$HOME}/.dotfiles/bin

starship init fish | source

For most of my aliases I use an abbr since it saves the correct command history 😄. There are ones that I use all of the time and some (scrapvm, upload, map) that I wish to use but never get to them…

Replacements for basic tools

As you might have seen I use a lot of replacements for basic tools like rm and cat. Most of it is to get either a speed bump or some more features. Take bat for an example:

It’s a much cleaner expirience and it still works with pipes and redirects. Awesome. The same goes for exa.

Easier to read with more info but still backwards compatible.

Editors

I’ve also used everything here from ed, nano, ne, vim to Visual Studio Code. And there I stayed. Since I teach at the Infinum Academy I needed something that won’t look at all different from what the students can use. For quick edits I use vim and here is my extra simple config:

set mouse=a
set number
set clipboard=unnamed
set laststatus=0

" Colors {{{
	syntax enable
	set background=dark
" }}} Colors

" Spaces & Tabs {{{
	set tabstop=2
	set softtabstop=2
	set shiftwidth=2
	set expandtab
	set autoindent
	set copyindent
" }}} Spaces & Tabs

And my Visual Studio Code settings stay also very simple.

Setup

I’ve made my own install.sh that I can run on any new device I setup to have everything as I want it to be. It’s not fragile but I still read it everytime I use it 😂.

#!/usr/bin/env bash

if grep -q "Darwin" <<< $(uname -a); then
	if &#091; ! -x "$(command -v brew)" ]; then
		/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
	fi

	brew install exa git node postgresql rbenv bat fish httpie n ripgrep jq starship

	brew cask install visual-studio-code google-chrome \
		firefox slack 1password docker iterm2 imageoptim \
		resilio-sync spotify tableplus zoomus whatsapp

	if ! grep -q "auth sufficient pam_tid.so" /etc/pam.d/sudo; then
		awk 'NR==2{print "auth sufficient pam_tid.so"}1' /etc/pam.d/sudo | sudo tee /etc/pam.d/sudo
	fi

	sudo mkdir -p /usr/local/n
	sudo chown -R $(whoami):staff /usr/local/n

	code --install-extension dbaeumer.vscode-eslint
	code --install-extension esbenp.prettier-vscode
	code --install-extension ms-azuretools.vscode-docker
	code --install-extension ms-vscode.vscode-typescript-tslint-plugin
	code --install-extension sianglim.slim
	code --install-extension skyapps.fish-vscode
	code --install-extension tootone.org-mode

	ln -s $HOME/.dotfiles/settings.json $HOME/Library/Application\ Support/Code/User/settings.json
fi

if ! grep -q "$(which fish)" /etc/shells; then
	which fish | sudo tee -a /etc/shells
fi
chsh -s $(which fish)

n lts

cd $HOME
git clone https://github.com/andreicek/dotfiles .dotfiles

mkdir -p $HOME/.config/fish
ln -s $HOME/.dotfiles/config.fish $HOME/.config/fish/config.fish

ln -s $HOME/.dotfiles/gitconfig $HOME/.gitconfig

ln -s $HOME/.dotfiles/vimrc $HOME/.vimrc

cd $HOME/.dotfiles
git remote set-url origin git@github.com:andreicek/dotfiles.git

From here you can see all of the apps that are installed. I try to use as many as possible default and included apps to keep this lightweight.


Go back to homepage