dotfiles are your virtual home... this is my home
App | My choice |
---|---|
os | Arch Linux |
wm | i3-gaps |
shell | bash |
terminal | terminlogy |
editor | vim |
music player | cmus |
vmail | |
chat | wheechat |
theme | solarized (everywhere) |
A dotfiles repository is not intended to be forked, commonly it is a backup, this is my home not your...
However, my settings can inspire yours and viceversa, sharing our configs is great!
- a place where to backup my personal configuration files;
- a place for sharing my idea;
- a place where I hope others can inspire me.
For my buggy memory and for your inspiration, in the following I give some details about my dotfiles.
Your help is very appreciated: share with me your dotfiles (and idea), open an issue in this repository!
you are your dotfiles, this is me... you should not bootstrap from here!
ok, you are advised, follow this bootstrap can destroy your home!
During my pernigration into the web I found dotbot, that is (in short) a smart tool for managing dotfiles.
My managing approach is:
- store dotfiles into one directory (I named dotfiles but it does not matter) thus that I can:
- easy version control dotfiles by means of git;
- keep clean the repository:
- exploit a tree organization based on nested directory;
- easy bootstrapping for fresh installation;
- my home must contain only sym links to the actual dotfiles:
- dotbot do this job for me greatly.
Bootstrapping is very simple:
git clone https://github.com/szaghi/dotfiles your-dotfiles
cd your-dotfiles
./install
No matter you call your dotfiles root directory: dotbot (install
is its wrapper) will create symbolic links from your dotfiles root directory into your home (but not just this: it will check for previous invalid sym links, cleaning your home if necessary).
The automagical bootstrap is done by the install.conf.yaml dotfile where (in a very simple syntax) are defined which (and how) configuration files (and directories) must be symbolically linked into your home.
For example, the vim bootstrapping is done by (extracted from my install.conf.yaml):
- link:
~/.vim:
path: vim/
relink: true
force: true
~/.vimrc:
path: vim/vimrc
relink: true
force: true
For more details see dotbot documentation.
Presently my tree organization is the following:
- bash: contains my shell (bash obviously) settings, aliases, exports, ecc...;
- dotbot: is the git submodule repository containing the dotbot bootstrapper;
- encrypt: is where I place my encrypted files... stay away;
- git: contains git configurations;
- i3: contains i3 wm configurations and scripts;
- icons: contains my preferred (mouse) icons;
- miscellanea: contains dotfiles for various stuff that do not necessity more than one config file thus that do not need a dedicated directory;
- terminal: contains configurations (IO and colors) for the terminal;
- vim: no explanation is necessary... vim rocks!
- weechat: colors and configurations of weechat.
I will not give you details about each of them. In the following there are some screenshots of my dotfiles application result.
i3-gaps is great, but it has a big cons... it creates addiction, be careful!
I do not use the main branch of i3: I prefer to have a small gap between each window: my settings refers to the i3-gaps fork.
The status bar is slightly hacked for showing the title of the window currently active.
I use a 2-lines bash prompt providing many useful informations.
In particular, when dealing with git repositories, my prompt is like the liquid one (google it for more details) providing contextual informations about the current status of the repository where you are.
To be written.
My dotfiles come from a long time usage of GNU/Linux boxes. I take inspiration from a lot of people sharing their dotfiles into the web, I cannot precisely say from where and who. Anyhow, my dotfiles are distributed under the terms of WTFPL, Do What the Fuck You Want to Public License without any warranty.