This repository installs and customises the following applications available on Debian GNU/Linux to my liking:
Configurations for several other Debian-specific and general development tools and utilities are also provided.
Colorschemes use Solarized where possible.
Scripts that I've found useful are installed into ~/.bin and $PATH is updated to reflect this. (Yes, it's hidden. Yes, it contains binaries.)
In addition, this repository includes customisation for the following hardware:
Installation of these dotfiles is a two-step process:
- Installation of applications/dependencies
- Installation of dotfiles/dependencies
For straightforward installation of all applications and their dependencies from Debian's package repositories, a meta-package is provided.
Be warned that the full suite of applications and their dependencies total ~300MiB or so, so you may want to choose to install dependencies for each specific application if you do not use all of them (see manual installation section below).
To install all software and dependencies via the meta-package, change to the checkout directory and run (as root, or via sudo):
# gdebi knowledgejunkie-dotfiles-deps_<version>.deb
To install each application and its dependencies separately, run the following commands (as root, or via sudo) as required:
# aptitude install i3 i3blocks rofi compton xautolock lightdm light-locker
# aptitude install zsh
# aptitude install rxvt-unicode
# aptitude install tmux tmuxinator
# aptitude install vim-gtk xml-twig-tools build-essential cmake python-dev libclang-3.8-dev libboost-all-dev exuberant-ctags
# aptitude install git
# aptitude install x11-utils evtest xbindkeys xdotool
$ git clone https://github.com/knowledgejunkie/dotfiles ~/.dotfiles
$ cd ~/.dotfiles
$ ./install
In addition to installing symlinks for the dotfiles provided in this repository, the installation script also clones the upstream repositories for Prezto and i3blocks contributed blocklets.
The installation script attempts to handle situations where dotfiles (or symlinks to them) already exist. Existing files/directories will be automatically backed up into an epoch-dated subdirectory within ~/.dotfiles-backup. Existing symlinks to dotfiles/directories will be removed.
In order for "now playing" music information to be displayed in i3blocks, it is necessary to install the [playerctl][playerctl] utility. On Debian, it is packaged for testing/sid in the playerctl package.
JSON pretty-printing support uses json_xs from the libjson-xs-perl package. XML pretty-printing support uses xml_pp from the xml-twig-tools package.
The YouCompleteMe Vim plugin is compiled with clang semantic completion and configured to use system clang and boost libraries, instead of downloading them everytime the plugin is updated (which can take >30 minutes...)
Vim and the TagBar plugin can use tags created by ctags (exuberant-ctags). A 'git ctags' alias and hooks are provided to automatically update a Git project's tags file after a checkout/commit/merge/rebase.
Vim plugins in this repository are managed using the vim-plug plugin. The first time the installation script runs (or if it can't find the Vim plugins directory) it automatically installs the plugins by calling
# vim +PlugInstall +qall now
Subsequent running of the installation script will update the currently configured plugins by calling
# vim +PlugUpdate +qall now
Note: When running Vim for the first time after installation it is likely that it will complain about missing plugin files/directories/settings. These warnings can be safely ignored and will not appear when Vim has been run once and plugins have been installed successfully.
A default Git templates framework is provided that will be configured with any newly-created Git repositories after installation.
A 'git ctags' alias and hooks are provided to automatically update a Git project's tags file after a checkout/commit/merge/rebase.
On a default installation of Debian, the Zoom slider key does not function as the keycodes it emits (418,419) are >255. As a result, this key is not passed to the running X session.
This repository includes a udev rules file to remap the key to use keycodes
<255 which can then be optionally configured via xbindkeys and xdotool
(see .xbindkeysrc
)
# cp ~/.dotfiles/etc/udev/rules.d/95-keymaps.rules /etc/udev/rules.d
The included 90-evoluent.conf file disables the thumb buttons, which I usually manage to trigger by accident whenever grabbing the mouse.
To install:
# cp ~/.dotfiles/etc/X11/xorg.conf.d/90-evoluent.conf /etc/X11/xorg.conf.d/90-evoluent.conf
The included 20-intel.conf file should help eliminate tearing on Intel GPUs.
To install:
Changes made to the upstream dotfiles repository and its associated submodules can be pulled down and installed easily:
$ cd ~/.dotfiles
$ git pull
$ ./install
Many customisations were inspired by (or blatantly copied from) vim practitioner extraordinaire Steve Losh.
In addition to his blog it's worth checking out his own comprehensive dotfiles repo.