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_profile
only 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,
~/.profile
is 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
~/.bashrc
only 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_prompt
or~/.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 fordircolors
command. This command outputs shell commands to setup colored output fromls
and Bash's completion (if enabled) and it's executed by~/.bashrc
. On my setup, this file is actually generated throughdircolors.gen
and 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.