Skip to content

aquatix/dotfiles

Repository files navigation

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.

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

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

About

There's no place like ~/

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published