This repository is not mirrored.
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.
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).
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.tomlTo have the full experience, install all of these:
sudo apt install git curl vim-nox fzf ripgrep exuberant-ctags fish grc tmux htop direnv
# needed for building vim plugins:
sudo apt install cmake build-essential
# also, this classic:
sudo apt install mcand maybe install a nice colour theme for your terminal from https://gogh-co.github.io/Gogh/ - I use argonaut with a black background myself.
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.
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.
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
| ./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 |