Personal configuration files. Tested on Ubuntu 14.04 LTS and managed using GNU Stow.
This repository contains configuration files for the following:
- Vim
- Neovim
- Configuration & Plugins managed by VimPlug
- Bash
- Custom Themes, Aliases & Helper Functions
- Rarely updated due to transition to Zsh
- Zsh
- IPython
- Jupyter
- CMUS (Music Player)
- Mutt (Mail Client)
- Git
- Terminator
- Tmux
- Latexmk
- Powerline
- Translate-shell
Some configuration files rely on external modules in order to work appropriately. For example, in order to use the suggested bash prompt, a set of support scripts and a set of themes have to be downloaded.
Additionally, in many cases, such as vim and bash prompt, nerd-fonts are used. The dependencies mentioned above are either listed as submodules or downloaded automatically using the install script explained below.
Clone with HTTPS:
curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash
Or, if you prefer, clone with SSH:
curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash /dev/stdin -s
You can also specify the directory you wish to install the dotfiles (e.g. .dotfiles
):
curl -L https://raw.githubusercontent.com/mkofinas/dotfiles/master/download_install.sh | bash /dev/stdin -s .dotfiles
Clone the repo to a directory of your choice and use the install.sh
script in
order to configure and install everything.
Clone as .dotfiles
if you want to make it hidden.
git clone --recursive https://github.com/mkofinas/dotfiles.git dotfiles
cd dotfiles
./install.sh
To actually use the configuration files, install.sh
creates a backup of the
already existing dotfiles and then creates symbolic links to the right place
using GNU Stow.
The installation script defines the packages to be installed using declarative arrays (i.e. dictionaries) as follows:
declare -A dotfiles_packages
# ...
dotfiles_packages["neovim"]=${XDG_CONFIG_HOME:-${HOME}/.config}
# ...
You might want to take a look at the packages to be installed and modify the installation script according to your needs, by simply commenting out or adding packages.
Whenever possible, I try to follow the XDG Base Directory Specification to organize my dotfiles, in order to avoid the pollution of my entire HOME directory. Towards the organization of software following XDG specification, I recommend taking a look at the Arch Linux wiki.
This repo uses Vim-Plug as a plugin manager for Neovim.
To manage plugins, simply add a vim-plug section to your ~/.config/nvim/init.vim
:
- Begin the section with
plug#begin()
- List the plugins with
Plug
commands plug#end()
to update&runtimepath
and initialize plugin system
Then, reload your configuration file and run :PlugInstall
. To update existing
plugins run :PlugUpdate
.
To install from command line: nvim -c 'PlugInstall'
For more information, visit the Vim-Plug example.