All Projects → rafi → .config

rafi / .config

Licence: other
Rafi's workstations (Archlinux, osx) ~/.config.

Programming Languages

shell
77523 projects
c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
ruby
36898 projects - #4 most used programming language
CSS
56736 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to .config

dotfiles
My dotfiles, with an out-of-date install-script. Arch, Tiling WM (i3, sway), ZSH, Neovim
Stars: ✭ 20 (-71.83%)
Mutual labels:  tmux, i3, arch-linux
dotfiles
There is no place like ~/
Stars: ✭ 19 (-73.24%)
Mutual labels:  tmux, i3, arch-linux
.dotfiles
🎆 Arch Linux with i3 / nvim / tmux / urxvt / zsh / ...
Stars: ✭ 167 (+135.21%)
Mutual labels:  tmux, i3, arch-linux
dotfiles
My personal set of dotfiles (Managed with Stow)
Stars: ✭ 34 (-52.11%)
Mutual labels:  tmux, i3
Tmux Tilish
Plugin which makes tmux work and feel like i3wm
Stars: ✭ 149 (+109.86%)
Mutual labels:  tmux, i3
Dotfiles
vim, zsh, git, homebrew, nvm, neovim - my whole world
Stars: ✭ 2,217 (+3022.54%)
Mutual labels:  tmux, homebrew
Dotfiles
💻 Use command line interface manager for macOS configuration.
Stars: ✭ 97 (+36.62%)
Mutual labels:  tmux, homebrew
dotfiles
My dotfiles based on Makefile
Stars: ✭ 150 (+111.27%)
Mutual labels:  tmux, arch-linux
dotfiles
dotfiles of simonvic daily used enviroment
Stars: ✭ 75 (+5.63%)
Mutual labels:  i3, arch-linux
dotfiles
My personal configuration files
Stars: ✭ 120 (+69.01%)
Mutual labels:  i3, arch-linux
dotfiles
A total nord dotfiles used by me. Forever work in progress.
Stars: ✭ 35 (-50.7%)
Mutual labels:  tmux, i3
dotfiles
i3, Vim, Bash, Ruby, Typescript & React, Elixir, Golang & more!
Stars: ✭ 22 (-69.01%)
Mutual labels:  tmux, i3
3mux
Terminal multiplexer inspired by i3
Stars: ✭ 1,687 (+2276.06%)
Mutual labels:  tmux, i3
Dotfiles
My [NeoVim + Tmux + Fish Shell] Setup /w install scripts
Stars: ✭ 180 (+153.52%)
Mutual labels:  tmux, i3
Dotfiles
If there is a shell, there is a way!
Stars: ✭ 112 (+57.75%)
Mutual labels:  tmux, i3
dotfiles
My collection of dotfiles
Stars: ✭ 77 (+8.45%)
Mutual labels:  tmux, i3
dotfiles
A place to store config files so I can revert when my entire system crashes from entering the wrong character
Stars: ✭ 25 (-64.79%)
Mutual labels:  tmux, i3
Dotfiles
Get ready for dotfiles. Contains i3, i3blocks, rofi, dunst, picom, vim, tmux, and zsh.
Stars: ✭ 985 (+1287.32%)
Mutual labels:  tmux, i3
Dotfiles
💀 dotfiles! managed by GNU stow
Stars: ✭ 85 (+19.72%)
Mutual labels:  tmux, i3
dotfiles
🔯 A collection of my rc files (tmux, neovim, zsh, fish, poetry, git, ...etc) and utilities that make everyday coding fun!
Stars: ✭ 23 (-67.61%)
Mutual labels:  tmux, homebrew

Rafael Bodill's macOS/Archlinux dotfiles

This is my entire "dotfiles" configuration for all the software I use on macOS & Archlinux, mostly in the terminal.

I've turned my ~/.config directory into a Git repository and strive to set applications write their configuration there if they don't by default. Meaning, I try to conform to the XDG standard. There is one important caveat in doing so: Secrets can be accidentally committed. I solve this with the clean and smudge filter features of Git attributes.

Features

The most interesting configs:

... and make sure to check-out github.com/rafi/vim-config!

Install

There is no installation script, only three symlinks:

# Clone the .config repo
cd ~
git clone --recursive [email protected]:rafi/.config.git

# Symlink few files manually:
cd ~
ln -s .config/bash/bashrc .bashrc
ln -s .config/bash/profile .profile
ln -s .config/tmux/config .tmux.conf

# Create cache directories
mkdir -p ~/.cache/{nvim,pacaur,proselint,xpanes,zoxide}
mkdir -p ~/.cache/{aria2,beets,mpd,mpdscribble,mutt,neomutt,rtorrent,subtitles}
mkdir -p ~/.cache/ncmpcpp/lyrics
mkdir -p ~/.cache/node/{npm,gyp}

# Create user local shared directories
mkdir -p ~/.local/bin
mkdir -p ~/.local/share/{cargo,composer,fonts,go,krew,lf,mailbox,mutt,neomutt}
mkdir -p ~/.local/share/{newsbeuter,newsboat,nextword,tig,vagrant,virtualbox}
mkdir -p ~/.local/share/python/{envs,pyenv}

macOS-specific Software

on macOS, make sure you check these out:

XDG Conformity

Configuration directories are organized neatly by defining specific environment variables in bash/exports and aliases in bash/aliases.

Some programs require special help to feed the proper config:

alias cpan='cpan -j "$XDG_CONFIG_HOME"/cpan/config.pm'
alias gcal='gcalcli --configFolder "$XDG_CONFIG_HOME"/gcalcli'
alias mbsync='mbsync -c "$XDG_CONFIG_HOME"/isync/mbsyncrc'
alias mysql='mysql --defaults-extra-file="$XDG_CONFIG_HOME"/mysql/config'
alias mutt='ESCDELAY=0 neomutt || mutt -F "$XDG_CONFIG_HOME"/mutt/config'
alias ncmpc='ncmpc -f "$XDG_CONFIG_HOME"/ncmpc/config -k "$XDG_CONFIG_HOME"/ncmpc/keys'
alias ncmpcpp='ncmpcpp -c "$XDG_CONFIG_HOME"/ncmpcpp/config'
alias redshift='redshift -c "$XDG_CONFIG_HOME"/redshift/config'
alias rtorrent='rtorrent -n -o import="$XDG_CONFIG_HOME"/rtorrent/config.rc'
alias vercel='vercel --global-config="$XDG_CONFIG_HOME"/vercel'
alias weechat='weechat --dir "$XDG_CONFIG_HOME"/weechat/'

Protecting Secrets

Using .gitattributes filters clean and smudge. Setup custom filters:

cd ~/.config
git config --local filter.vault.clean 'sed -f ~/.config/clean.sed'
git config --local filter.vault.smudge 'sed -f ~/.config/smudge.sed'

The sed script clean.sed is included. However, you have to create the smudge.sed script yourself, for example:

cat > ~/.config/smudge.sed
s/{{ \(DIANA\|ARIA2\)_TOKEN }}/secret/
s/{{ LASTFM_USER }}/username/
s/{{ LASTFM_TOKEN }}/token/
s/{{ LASTFM_PASS }}/token/
s/{{ SPOTIFY_USER }}/username/
s/{{ SPOTIFY_PASS }}/password/
s/{{ ECHONEST_TOKEN }}/token/
s/{{ JIRA_URL }}/url/
s/{{ JIRA_USER }}/username/
s/{{ JIRA_PASS }}/password/
s/{{ GIT_EMAIL }}/[email protected]/
s/{{ GIT_NAME }}/Joe Shmoe/
s/{{ GIT_USER }}/joe/
s/{{ WEATHER_TOKEN }}/token/
s/{{ FORECASTIO_TOKEN }}/token/
s/{{ GITHUB_TOKEN }}/token/
s/{{ HOMEBREW_GITHUB_API_TOKEN }}/token/
s/{{ TMUX_SPOTIFY_API_KEY }}/token/

Now whenever you stage files, the clean.sed will prevent secrets being committed. And on checkout, the smudge.sed will inject your secrets into their proper placeholders. Note that smudge.sed is ignored from being committed mistakenly.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].