I've decided to create this to speedup configuration of newly installed systems but also to be able to point other people to the way I configure it in case they find it useful.
At the same time this has been a very good exercise in writting bash code and gave me a good understanding of its limits.
As of 2022-10-23, I have spent an estimated amount of 100 hours working on this.
In order to setup everything, you can call setup_debian.sh
with the --setup-all
option, you can get a list of available options with setup_debian.sh -h
. This script will generate logs and backup files for changes made.
Individual setup_*.sh
scripts can also be called, eg.: vim/setup_vim.sh
for vim setup only.
The sbuild_debian/setup_sbuild_debian.sh
script might be especially useful for people who just want to setup a chroot environment to be used with sbuild. You just need to call it with a release codename, like sbuild_debian/setup_sbuild_debian.sh unstable
and it will setup a chroot with eatmydata, ccache, apt-cacher-nd, aliases and auto updates done by a cronjob.
The script sbuild_debian/setup_sbuild_debian.sh
can be used to install and configure chroots to be used by sbuild.
A list of vscode extensions I use is available at vscode/vscode_extensions.md.
Settings are at vscode/supporting_files/settings.json.
Keybindings at vscode/supporting_files/keybindings.json.
Run all other setup scripts and can be controlled with arguments (to chose only certain scripts).
Run all the scripts under the misc/
folder (described below).
Setup unstable and experimental repos, with pinning so they don't get used by default (except with firefox, which is pulled from unstable.)
Install miscellaneous packages from the official repository, the list of packages installed is on misc/supporting_files/package_list_misc_packages.
Install firefox and remove firefox-esr (requires unstable repo set on misc/setup_apt_repos.sh
).
Setup .gitconfig (mainly name and email address).
Install tools related to battery usage (usefull for laptops), the list of packages installed is on misc/supporting_files/package_list_battery_tools.
Enable fstrim (for systems with SSD drives).
Mount /tmp
in memory (useful for systems with at last 16GiB of RAM).
Enable usage of ~/.bashrc.d/
folder and add scripts there, also install a ~/.inputrc
dotfile with autocompletion improvements. Part of the setup will install and enable powerline with gitstatus.
Configure Gnome with dark theme, Hack font, animations disabled...
Install vim-plug, extensions and add my own vim/supporting_files/.vimrc.
Install snapd and all the packages I use, packages are listed in the script itself at snap_packages/setup_snap_packages.sh.
Install vscode with my list of extensions and my own settings and keybindings.
Extensions I use can be seen at vscode/vscode_extensions.md.
Settings are at vscode/supporting_files/settings.json.
Keybindings at vscode/supporting_files/keybindings.json.
Setup sbuild with chroots for unstable, stable and oldstable. It install packages and dotfiles, and will mount chroots on memory if the system has at least 16GiB of RAM.
Install a chroot to be used by sbuild. It will set the chroot to be used with apt-cacher-ng, eatmydata and ccache. It will also mount the chroots on memory if the system has at least 16 GiB of RAM. Chroot auto updates are enabled with a cronjob.
This script is usually called by setup_packaging_tools.sh
but it can be used it directly too.
It expects the release codenames as arguments (eg.: sbuild_debian/setup_sbuild_debian.sh unstable
for unstable installation or sbuild_debian/setup_sbuild_debian.sh unstable trixie
... for more than a single chroot).