All the cool kids are doing it these days
  • Shell 77.8%
  • Vim Script 7.5%
  • Lua 6.5%
  • Perl 6.5%
  • Python 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-18 12:09:01 +02:00
.config Disable keys, useful on hardware keyboard phone 2026-10-07 19:45:52 +02:00
.local/share 20251207: nice colours, based on Argonaut but black bg 2025-12-10 18:15:41 +01:00
.terminfo Clean up unnecessary terminfo files 2018-02-02 16:44:06 +01:00
.vim Words 2026-10-14 10:01:01 +02:00
bin Let rspamd learn ham and spam 2026-10-18 12:09:01 +02:00
.agignore 'ag' ignore file 2018-01-05 12:10:22 +01:00
.bash_aliases mc without the mouse 2023-03-11 21:29:39 +01:00
.bashrc Fixed indentations 2026-09-22 12:19:49 +02:00
.gitconfig 20250425: use vimdiff with merge conflicts; default git branch is 'main' 2025-05-13 13:39:24 +02:00
.gitignore Ignore Obsidian nvim plugin 2026-01-19 22:25:28 +01:00
.gitignore_global Global Git ignore file 2020-04-24 20:33:00 +02:00
.gitmodules git submodule to install vundle for vim; install script looted from rrix 2014-05-05 20:34:28 +02:00
.goaccessrc Colour scheme 1, no ignored ip's 2016-04-05 10:54:27 +02:00
.ideavimrc Use vim default clipboard 2020-02-18 16:07:58 +01:00
.ignore Ignore vim swap files 2019-03-19 18:23:18 +01:00
.profile nvm node.js enablement 2016-12-02 12:02:56 +01:00
.screenrc screenrc from server 2014-05-14 18:09:28 +02:00
.tmux.conf Changed terminfo so italics etc work in nvim 2026-01-21 17:51:44 +01:00
.vimrc Support the 'kitty' terminal too 2026-10-05 19:18:20 +02:00
install.sh Just ask 2026-10-11 13:42:47 +02:00
README.md vim with system clipboard support 2026-09-30 14:55:40 +02:00

dotfiles

After having my homedirs in subversion for years, moved this collection to Git in 2014 and standardised over all my machines (servers, desktops, laptops, phones, tablets).

To install:

mkdir ~/.dot
cd ~/.dot
clone <url>
cd dotfiles    # this takes you to the freshly cloned ~/.dot/dotfiles
sh install.sh  # follow the instructions and install the files in the homedir

Extra's:

  • virtualfish for virtualenv(wrapper) integration in fish shell.
  • N.B.: virtualfish might be on its way out, with uv and direnv configurations

Dependency on fzf and ripgrep rg

Both the shell configuration and vim make use of fzf. fzf is a general-purpose command-line fuzzy finder and helps one 'grep' really fast through filenames. It's an alternative for the well-known find. Install it by cloning the repository and running the install script (check the Installation notes too).

ripgrep, rg is a line-oriented search tool that recursively searches your current directory for a regex pattern while respecting your gitignore rules. Basically, a really fast (and clever) grep.

If your distribution does not provide a package, get yours from the releases page (there's a .deb for 64-bit systems).

starship prompt

By default, the included fish shell configuration installs and uses the bobthefish prompt, but I have been using the starship prompt since November 2023 and configuration is included.

To use, install starship and link the configuration to activate the configured prompt:

cd ~/.config
ln -s ../.dot/dotfiles/.config/starship.toml

All dependencies

To have the full experience, install all of these:

Debian/Ubuntu etc.:

sudo apt install git curl vim-nox fzf ripgrep exuberant-ctags fish grc tmux htop direnv
# if you want system clipboard integration, use vim-gtk3 instead of vim-nox, and Wayland clipboard support
sudo apt install vim-gtk3 wl-clipboard
# needed for building vim plugins:
sudo apt install cmake build-essential
# also, this classic:
sudo apt install mc

# optionally, for formatting json and javascript (in vim)
sudo apt install libjson-xs-perl

Termux:

pkg install git curl which vim python fzf ripgrep ctags fish tmux htop direnv
# needed for building vim plugins:
pkg install cmake build-essential
# also, this classic:
pkg install mc

# grc needs manual installation, but might not even be needed
# see https://github.com/termux/termux-packages/issues/1926

CachyOS/Arch:

sudo pacman -Syu curl vim wl-clipboard fzf ripgrep ctags fish grc tmux htop direnv
# needed for building vim plugins:
sudo pacman -Syu cmake make
# also, this classic:
sudo pacman -Syu mc

and maybe install a nice colour theme for your terminal from https://gogh-co.github.io/Gogh/ - I use argonaut with a black background myself.

vim config

The .vimrc has a lot going on. Find out more about my tweaks and use :Maps in vim itself to see key mappings

vim uses both fzf and rg, and also really likes having ctags (Exuberant Ctags) available.

Fix for shift+F6 in tmux (and screen probably)

In tmux, do infocmp > screen-256color. Add the line kf16=\E[17;2~, and compile the file with tic. This will result in ~/.terminfo/s/screen-256color with the correct keycode for shift+F6. .tmux.conf needs the line setw -g xterm-keys on for it to register correctly.

~/.git_repos config file

The update_repos script takes the ~/.git_repos config file and lets you update and clone your projects automatically (or at least in a batch). In the example the first four repos are located in ~/workspace/projects/github, and the other two in workspace/projects/others and workspace/projects/private respectively; then the workspace and group are empty, so mydocs is cloned into the homedir. At the moment, only paths relative to the user's homedir are supported.

workspace=workspace/projects
group=github
git@github.com:aquatix/ns-api.git
git@github.com:aquatix/dotfiles.git
git@github.com:aquatix/dammit.git
git@github.com:aquatix/imagine.git

group=others
https://github.com/Azelphur/pyPushBullet.git

group=private
ssh://myserver/srv/git/privdotfiles.git

# Homedir as workspace:
workspace=
group=
ssh://myserver/srv/git/mydocs.git

Interesting scripts

./bin/ description
calibre_update Update (or install) ebook manager Calibre
clean_mac_files Remove those DS_Store and other dirs
clean_project Remove compiled Python files, vim swp files
clean_pyc Remove compiled Python files
fixpermissions chmod dirs to 755, files to 644
fixpictimestamps Change file ctime to datetime from EXIF using exiftool
fontupdate Update nerd-fonts; whole repo on server, link font files to ~/.local/share/fonts
fuz Simple note-taking 'app' based on FZF and vim
git_autosave Simple script to call from crontab or something to commit certain files in Git and push
git_clean Clean the Git tree
sorter Sort files in newly created subdirectories, based on pre- or postfixes
update_repos Update a bunch of Git repos at once, like all your project. Config with ~/.git_repos