EFI boot picker screen |
EFI menu screen |
ZSH command prompt with powerlevel9k theme |
ZSH command prompt with auto-suggestions |
TMUX status line showing host OS, session name and other things |
Neovim setup, customized for C++ developement |
Neomutt setup, terminal based email utility |
AweomeWM - Alacritty, Zim, Zathura and notifications panel |
AweomeWM - firefox |
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/ragu-manjegowda/config/master/.config/scripts/bootstrap.sh)"
- Centralized configuration management
- Files live in their native locations (no symbolic linking)
- Home directory is not a Git repository
- All the power of git with a simple alias
- Log into GitHub and create a repository named config
- Add your public keys to GitHub (if you haven’t done so already)
- Open a terminal and switch to your home directory
$ cd ~
- Create a configuration directory
$ mkdir .config.git
- Add the following alias to your
.bashrc
and/or your.bash_profile
alias config='git --git-dir=$HOME/.config.git/ --work-tree=$HOME'
- Add your
.bash_profile
to the configuration repository$ config add .bash_profile
- Commit the changes
$ config commit -m 'Initial commit'
- Change the origin to GitHub
$ config remote add origin [email protected]:GITHUB_USERNAME/config.git
- Push the changes
config push origin master
If you get an error when running config pull
to the effect of You asked me to pull without...
run the follow:
$ echo -e '[branch "master"]\n remote = origin\n merge = refs/heads/master' >> ~/.config.git/config
- Add your public keys to GitHub (if you haven’t done so already)
- Switch to your home directory
$ cd ~
- Backup your local configuration files, example:
$ mv .bash_profile .bash_profile.bk
$ mv .bashrc .bashrc.bk
- Clone your configuration repository
$ git clone [email protected]:GITHUB_USERNAME/config.git config.git
- Move the git metadata to
~/.config.git
$ mv config.git/.git .config.git
- Enable dotglob
$ shopt -s dotglob
- Move your configuration files to your home directory
$ mv -i config.git/* .
- Delete the
config.git
directory$ rmdir config.git
- Logout and log back in
- Note: Sub-modules needs to be updated
$ git submodule update --remote --rebase
- Set
core.worktree
like the following$ git --git-dir=$HOME/.config.git --work-tree=$HOME config --local core.worktree $HOME
- open files of this repository with the alias
cvim
config pull
- get latest configuration changesconfig add FILENAME
- add a configuration fileconfig commit -a
- save all configuration changesconfig push
- push configuration changes to GitHub- and any other
config GIT_OPTION
- http://github.com/silas/config.
- Source: Manage your $HOME with git by Robert Escriva