My GNU/Linux main repository with:
- Dot & configuration files for many different apps
- Scripts for linking dotfiles, system installation and updating.
N.B: This repo is frequently updated
> tree -L 3 --dirsfirst
├── ag
│ └── agignore
├── bash
│ ├── functions
│ │ └── bash_example
│ ├── fzf
│ │ └── functions.sh
│ ├── bash_aliases
│ ├── bash_functions
│ ├── bash_profile
│ ├── bashrc
│ └── profile
├── cmus
│ ├── cmus-status-display
│ └── rc
├── ctags
│ └── ctags
├── dunst
│ └── dunstrc
├── git
│ ├── gitconfig
│ └── gitignore_global
├── i3
│ ├── blocklets
│ │ ├── cmus
│ │ ├── exit
│ │ ├── i3_restart
│ │ ├── layout
│ │ ├── menu
│ │ ├── time_and_date
│ │ ├── volume
│ │ └── weather
│ ├── scripts
│ │ ├── exit.sh
│ │ ├── helpers.sh
│ │ ├── ws_music_init.sh
│ │ └── ws_news_init.sh
│ ├── config
│ ├── i3bar_conkyrc
│ └── i3blocks.conf
├── install
│ ├── scripts
│ │ ├── arc.sh
│ │ ├── calibre.sh
│ │ ├── font.sh
│ │ ├── github_repos.sh
│ │ ├── i3.sh
│ │ ├── mineshafter.sh
│ │ ├── mkvtoolnix.sh
│ │ ├── nodejs.sh
│ │ ├── papirus.sh
│ │ ├── rvm.sh
│ │ └── topmenu.sh
│ ├── apt.json
│ ├── dotfiles.json
│ ├── packages.json
│ └── scripts.json
├── lyvi
│ └── lyvi.conf
├── mdl
│ └── mdlrc
├── quicktile
│ └── quicktile.cfg
├── scripts
│ ├── do.py
│ ├── install.py
│ ├── link.py
│ ├── update_github_scripts.sh
│ └── update.py
├── shiba
│ └── config.yml
├── tmux
│ ├── plugins
│ │ └── tpm
│ └── tmux.conf
├── tudu
│ └── tudurc
├── X
│ ├── xmodmaprc
│ └── Xresources
├── xfce
│ └── terminalrc
├── zathura
│ └── zathurarc
├── config.ini
└── README.md
-
Define dotfiles to link & copy in
install/dotfiles.json
with the syntax:{ "toLink": [ "path/to/dotfile relative/path/to/link hidden=(True|False)", ], "toCopy": [ "path/to/dotfile where/to/copy hidden=(True|False)", ] }
-
Define apt packages and ppa's in
install/apt.json
. -
Put installation scripts in
install/scripts/
and define them ininstall/scripts.json
. -
Define other packages in
install/packages.json
(gems, npm modules, pip packages & snap apps).
scripts/do.py
is the main script.
After cloning the repo the 1st time:
- Specify the configuration in
config.ini
- Set the correct path in line 18 in
scripts/do.py
- Execute
scripts/do.py
and have fun 😎
After linking the dotfiles, you can use Do
alias to invoke do.py
directly.
P.S:
- The packages present in
install/apt.json
are intended to be used onXubuntu16
. - Be aware that
config.ini
is not used by the dotfiles, only byscripts/*
.
- Use a home-made sh/python framework to prevent code duplication.
- Convert
scripts/update_github_scripts.sh
to python? - More refactoring
- A better (python) logic
Even if the repo is very personel, its quite easy to adapt it to other configurations.