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
$HOME
directory by runnninggit clone https://github.com/groovytron/dotfiles.git ~/dotfiles
. - Go into the cloned repository by running
cd ~/dotfiles
. - Run
make install_all
to install all the configurations. You can runmake help
to 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.
tmux
as a terminal multiplexer with both of the above shells. Check the.tmux.conf
file for settings details.tpm
which stands for Tmux Plugin Manager.tmux-powerline-theme
tmuxinator
to speed up project startup withtmux
using «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
(thegvim
package with GTK/X11 support) with some plugins (check the .vimrc)vim-airline
to style vim's status bar
ag
andripgrep
as more user-friendly and faster alternatives togrep
bat
as a replacement forcat
glow
to read Markdown files in the terminalfzf
as a command-line fuzzy finder an pluggable to vimzathura
as a document viewer (have a look at my zathurarc to check the configuration)dog
as 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.ttf
Here is how it looks with zsh, tmux and vim configured with the solarized theme: