This is a quick backup of my dotfiles to make tool configuration easier in case of system issue. The M̀akefile can be used to install configurations of different tools.
To install one or many configurations, do the following:
- Clone the repository into your
$HOMEdirectory by runnninggit clone https://github.com/groovytron/dotfiles.git ~/dotfiles. - Go into the cloned repository by running
cd ~/dotfiles. - Run
make install_allto install all the configurations. You can runmake helpto list all the available installations if you only want to install the configuration of one tool.
The Makefile mainly creates symbolic links but it will overwrite you current configuration files so have a look at the Makefile and backup your configuration files before running something if you are not sure of what you are doing.
As I was tired to setup and reinstall everything by hand when
I buy a new machine, I wrote an Ansible playbook to
automate the tedious installation and setup tasks. It's even tested with
molecule combined with
podman !
I use the below tools.
bash(because it's simple and quite easy to tweak). Check the .bashrc and .bash_profile files for settings details.oh-my-zsh(when I want a fancy shell). Check the .zshrc file for settings details.
Shells themes can be found in the .Xresources.basic file which contains a simple theme that I did by myself.
The .Xresources.solarized file contains a solarized color theme.
The .Xresources.gruvbox file contains a gruvbox color theme.
To use one of these themes, just copy the one you want into
your home directory and rename it into
.Xresources. Do not forget to reboot or launch xrdb ~/.Xresources
to apply the theme in the next terminals you will open.
If you are interested in how X clients configuration works. Have a look here.
I also use undistract-me to be able to run long standing command, do something else while it's running and get notified when the command is finished. If you want to get it working, you need to install zsh-notify and wmctrl packages.
There are some homemade commands, aliases and environement variables definitions in the groovy_functions.sh and groovy_variables.sh files.
tmuxas a terminal multiplexer with both of the above shells. Check the.tmux.conffile for settings details.tpmwhich stands for Tmux Plugin Manager.tmux-powerline-themetmuxinatorto speed up project startup withtmuxusing «per-project configurations»
I am now using neovim because it has a built-in support
for Language Server Protocol (LSP)
and makes code editing and debugging easier. Feel free to have a look at
my configuration in config/nvim
to check which plugins I am using and how they are configured.
I used to use gvim in the past for a few years with the following config:
vim(thegvimpackage with GTK/X11 support) with some plugins (check the .vimrc)vim-airlineto style vim's status bar
agandripgrepas more user-friendly and faster alternatives togrepbatas a replacement forcatglowto read Markdown files in the terminalfzfas a command-line fuzzy finder an pluggable to vimzathuraas a document viewer (have a look at my zathurarc to check the configuration)dogas a DNS client for DNS debugging
I used to use the patched fonts for Powerline to get all the characters displayed nicely in the shells.
I now use nerd-fonts and its font patcher to patch it with the font Input Mono from Font Bureau. It makes the fonts usable in Vim with all the icons from Nerd Fonts.
The command I use to generate the font is the following:
python font-patcher --mono InputMono-Regular.ttfHere is how it looks with zsh, tmux and vim configured with the solarized theme:
