A repository of my personal configuration files.
Plain Git is used to keep track of changes and synchronize dotfiles across various hosts. GNU Stow can be used to symlink dotfiles where they're expected, but it's not mandatory. But note: there's no custom installation/update script in this repo.
Clone the repository on local machine.
git clone https://github.com/sevenissimo/dotfiles.git
Dotfiles are now in./dotfiles/, organized in subfolders.
GNU Stow can be used to symlink dotfiles where they're expected. For example, to symlink all Bash related files stored in./dotfiles/bash/ to the user's home directory (as ~/.bashrc, ~/.inputrc, etc.), just use:
cd ./dotfiles
stow bash
By default, Bash executes commands from
~/.bash_profileonly for interactive login shells, right after/etc/profile, if that file exists. (1)
~/.bash_profile is where it all begins: on my setup, it does sources ~/.profile and ~/.bashrc.
By default,
~/.profileis executed if Bash is invoked assh(or by older command interpreters). (2)
On my setup, it's always sourced from ~/.bash_profile for interactive login shells.
My ~/.profile sets LANG, PATH, and some other environment variables.
By default, Bash executes commands from
~/.bashrconly for interactive non-login shells. (3)
On my setup, like most, it's executed for both interactive login and interactive non-login shells.
My~/.bashrc sets prompt, shell options, history options, then it sources external rc files:
.bashrc
├── .bash_prompt
├── .bash_aliases
├── .bash_functions
├── .dircolors
└── .bashrc.$HOSTNAME
-
~/.bash_promptor~/.bash_prompt_alt: set my fancy, colored, and informative command prompt, or minimalistic one. In order to use~/.bash_prompt_alt, user may want to override symlink in home directory with:mv -f ~/.bash_prompt{_alt,} -
~/.bash_aliases: sets convenience aliases or default options for some commands (likels,grep, etc.) -
~/.bash_functions: declare convenience functions where arguments handling is needed. -
~/.dircolors: input file fordircolorscommand. This command outputs shell commands to setup colored output fromlsand Bash's completion (if enabled) and it's executed by~/.bashrc. On my setup, this file is actually generated throughdircolors.genand an AWK script. -
~/.bashrc.$HOSTNAME: per-host rc file. It could extend or override previous settings (options, variables, keybindings, etc.)
Read from Bash and any other program which uses the Readline library; my ~/.inputrc extends default Emacs-like keybindings used on command editing.
An handy list of default and customized keybindings is available here.
Gnu Nano is my text editor of choice.
During startup, Nano read two files: system-wide /etc/nanorc and then the user-specific settings.
~/.nanorc sets my preferences about: indentation (use tabs, no spaces), line wrapping, user interface colors, files backup, search and replace. Then, it does sets custom keybindings and import the external all-in-one syntax highlight file.
My syntax highlight file(s) is/are generated by nanorc, an AWK script.
An handy list of default and customized keybindings is available here.
GNU Screen is my terminal multiplexer of choice.
.screenrc sets Screen preferences, user interface and keybingings.
Keybindings are pretty same as defaults. An handy list of default and customized keybindings is available here.
GNU Less is my pager of choice.
All Less setting were usually set in ~/.profile as variables (like LESS_TERMCAP_*), but are moved to ~/.lesskey now, not to pollute environment.
So, ~/.lesskey file is added to repo. It's used to specify, in readable format, custom keybindings and environment variables to be used by Less.
Please note ~/.lesskey file is not used directly by Less, rather it's one-time-compiled through lesskey command that outputs the binary ~/.less file. The latter is read by Less when executed.




