MintyFresh: My setup script for Linux Mint Debian Edition (LMDE) 5

I've setup a few installs of Linux Mint Debian Edition (LMDE) for family, friends, and myself. I really like it! Mint's Cinnamon desktop comes with sensible defaults, is easy to customize, and intuitive to use for new and old Linux users alike.
MintyFresh is a setup script for the latest release of LMDE 5 aka "Elsie". It is ideally run after the first boot into a fresh LMDE install.
Run mintyfresh -h
for options.
Summary
- Upgrade system
- Install extra packages
- Auto-remove obsolete kernels and dependencies
- Setup zram for swap
- Customize GRUB
- User configuration
How does it work?
Sync package repositories and install git
:
$ sudo apt update && sudo apt install git
Download:
$ git clone https://gitlab.com/dwarmstrong/mintyfresh.git
Change directory and run script with your username as the sole argument:
$ cd mintyfresh
$ sudo ./mintyfresh.py <your_username>
Source: MintyFresh
Tasks
Some of the tasks performed by the script in more detail ...
1. Upgrade system
Update package sources and upgrade to latest package versions ...
$ sudo apt update && sudo apt full-upgrade
2. Install extra packages
Microcode: Check /proc/cpuinfo
for CPU and install the appropriate microcode firmware package.
For AMD ...
$ sudo apt install amd64-microcode
For Intel ...
$ sudo apt install intel-microcode
Console packages:
$ sudo apt install apt-file apt-show-versions apt-utils aptitude \
command-not-found cowsay cryptsetup figlet git gnupg htop libxcb-xinerama0 \
lm-sensors lolcat ncalncdu neofetch newsboat openssh-server plocate rsync \
shellcheck sl speedtest-cli tmux tree unzip vim whois zstd
Pyenv: Manage multiple Python versions in Linux using pyenv
Desktop packages:
$ sudo apt install dconf-editor ffmpeg fonts-firacode gimp gimp-data-extras \
gimp-help-en mint-meta-codecs papirus-icon-theme pavucontrol qpdfview rofi vlc
Virtualization: Virtualization using KVM + QEMU + libvirt
3. Auto-remove obsolete kernels and dependencies
Remove obsolete kernels and dependencies on a weekly basis. Always leave at least one older kernel installed and never remove manually installed kernels ...
$ sudo systemctl enable --now mintupdate-automation-autoremove.timer
Create empty placeholder file ...
$ sudo touch /var/lib/linuxmint/mintupdate-automatic-removals-enabled
4. Setup zram for swap
5. Customize GRUB
Move to /etc/default/grub.d
and disable 50_lmde.cfg
and 60_mint-theme.cfg
...
$ cd /etc/default/grub.d
$ sudo mv 50_lmde.cfg .50_lmde.cfg
$ sudo mv 60_mint-theme.cfg .60_mint-theme.cfg
Create 60_myconfig.cfg
with desired options. Sample config ...
#! /bin/sh
set -e
GRUB_DISTRIBUTOR="Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_DISABLE_SUBMENU=y
GRUB_GFXMODE=1024x768
#GRUB_BACKGROUND="/boot/grub/grub_wallpaper.png"
To enable a background image to the GRUB menu, uncomment GRUB_BACKGROUND
and copy image to /boot/grub/grub_wallpaper.png
.
Menu colors need to be set in a separate file. Open /etc/grub.d/40_custom
and append ...
set menu_color_normal="white/black"
set menu_color_highlight="black/green"
Update GRUB with the new settings ...
$ sudo update-grub
6. Setup user
Grant sudo
privileges to your username without requiring a password.
Create /etc/sudoers.d/sudoer_<your_username>
with the line ...
<your_username> ALL=(ALL) NOPASSWD: ALL
Create an SSH configuration in the user's home directory ...
$ mkdir ~/.ssh && chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
Install any extra GTK themes in ~/.themes
.
I like the Nordic GTK desktop theme (based on the Nord colour palette) ...
$ git clone https://github.com/EliverLara/Nordic.git ~/.themes/Nordic
7. Finish up
If desired, set an alternative for the system editor ...
$ sudo update-alternatives --config editor
Pick an alternate terminal, if more than one is installed ...
$ sudo update-alternatives --config x-terminal-emulator
» Next: #13. Ingenuity
« Previous: Virtualization in Void Linux using KVM + QEMU + libvirt