Personal post-install setup for Linux Mint. Follow the steps below in order.
Open a terminal and run:
wget -O setup.sh https://raw.githubusercontent.com/diegochagas/linux-mint-setup/main/setup.sh && chmod +x setup.sh && ./setup.shThe script asks for the administrator password when it needs sudo
permissions. Keep an internet connection active while it runs.
- Configure automatic system snapshots:
Update Manager > Edit > System Snapshots > Wizard > Next > Next > Weekly - Keep 4 > Next > Next > Finish. - Open a new terminal and run
claudeonce to sign in to Claude Code. - If Claude for Firefox needs to be loaded manually, open
about:debugging#/runtime/this-firefox, clickLoad Temporary Add-on, and select~/.claude/firefox/extension/manifest.json.
The script stops if an unhandled command fails and performs the following actions:
- Removes Linux Mint's Snap restriction by renaming
nosnap.pref, when present. - Adds the official Sublime Text APT repository.
- Updates APT and installs: Firefox, ExifTool, VLC, Sublime Text, Git, Node.js, npm, Python 3, curl, jq, AntiMicroX, unzip, rsync, xclip, FreeRDP X11, libsecret-tools, CopyQ, btop, Inkscape, Nextcloud Desktop, FFmpeg, fontconfig, GParted, Tree, ShellCheck, Docker, Docker Compose, gh, nfs-kernel-server, zbar-tools, Anki, the TimGM6mb SoundFont, and supporting libraries.
- Configures Docker after installation by adding the current user to the
dockergroup, fixing existing~/.dockerownership if needed, and enabling and starting the Docker and containerd systemd services. Log out and back in before using Docker withoutsudo. - On AMD64 systems, installs Remote Mouse and the latest balenaEtcher release.
- On AMD64 and ARM64 systems, installs the latest
immich-gorelease. - On AMD64 and ARM64 systems, installs
AppManager and uses it to install the
Wattage nightly AppImage from
nightly.link. - On AMD64 systems, installs WinBoat from its AppImage release using AppManager.
- Installs Claude Code for terminal use.
- On AMD64 systems, installs Claude Desktop from Anthropic's latest x64
.debinstaller. - Installs Claude for Firefox, the community Firefox extension bridge for Claude Code.
The script installs Snap support and then installs:
- Surfshark
- Visual Studio Code
- Insomnia
- LocalSend
The script installs Flatpak, adds Flathub, and installs:
- NormCap
- Google Chrome
- Emojify
- Master PDF Editor
- Kdenlive
- Free Download Manager
- Dosage
- mGBA
- EasyRPG Player
- Telegram Desktop
The complete GIMP ecosystem lives in its own repository: gimp-setup.
If the GIMP Flatpak is already installed, this step is skipped entirely —
GIMP itself is the marker for the whole ecosystem. To add missing pieces to
an existing GIMP install, run the (idempotent) gimp-setup/setup.sh
directly.
Otherwise the script clones that repository and runs its setup.sh, which
installs and configures with a single command the features listed in gimp-setup/docs/
The repository to clone can be overridden with the GIMP_SETUP_REPO variable
in config.sh, and the GEMINI_API_KEY / OPENAI_API_KEY values set there
are forwarded to the GIMP setup for its AI plug-ins. See the
gimp-setup README for
details, configuration and how to add new GIMP features.
After the other setup steps finish, the script clones homelab-backup to:
~/Projects/homelab-backup
It then applies the systemd user timer configuration from backup.md:
- Makes
~/Projects/homelab-backup/backup.shexecutable. - Creates
~/.config/systemd/user/homelab-backup.service. - Creates
~/.config/systemd/user/homelab-backup.timer. - Reloads the user systemd daemon.
- Enables and starts the timer with
systemctl --user enable --now homelab-backup.timer.
The timer runs the backup daily at 10:00 AM. Because Persistent=true is set,
if the computer is powered off at the scheduled time, the backup runs on the
next login.
The repository to clone can be overridden with the HOMELAB_BACKUP_REPO
variable in config.sh. The clone location remains
~/Projects/homelab-backup, matching the systemd unit configuration.
- Installs Tailscale using its official installation script.
- Installs
immich-goto/usr/local/bin/immich-goon AMD64 and ARM64 systems. - Installs AppManager, then downloads the
latest successful Wattage
build-appimage.ymlartifact for the current CPU architecture and installs the extracted AppImage withapp-manager install. - Installs WinBoat on AMD64 systems by downloading the
configured AppImage release and installing it with
app-manager install. - Installs Claude Code using
Anthropic's Linux terminal installer:
curl -fsSL https://claude.ai/install.sh | bash - Installs Claude Desktop on AMD64 systems by
downloading Anthropic's latest x64
.debinstaller and installing it with APT. The installer registers Anthropic's APT repository so Claude Desktop updates with the rest of the system packages. - Installs
Claude for Firefox by
cloning the repository, running its Linux installer, copying the extension to
~/.claude/firefox/extension/, registering Firefox native messaging hosts, and creating theClaude Firefoxdesktop launcher.
The Claude for Firefox repository to clone can be overridden with the
CLAUDE_FIREFOX_REPO variable in config.sh.
Installer and release source URLs, including the WinBoat AppImage URL, can also
be overridden in config.sh. See config.sh.example for the full list.
The script creates these Cinnamon keyboard shortcuts:
| Shortcut | Action |
|---|---|
Alt + V |
Toggle CopyQ |
Alt + T |
Open NormCap |
Alt + E |
Open Emojify |
Alt + C |
Copy a screenshot of an area to clipboard |
Shift + Super + S |
Copy a screenshot to clipboard |
It also:
- Configures CopyQ to start automatically.
- Installs the fonts from the
fontsfolder into~/.local/share/fonts/linux-mint-setupand refreshes the font cache withfc-cache -f. - Installs the AntiMicroX controller profiles from
antimicrox/profilesinto~/.config/antimicrox/profiles: ALendaDoHeroi, ApocalypseAcabouAPutaria, DragonBallZFighters, FallGuys, Jaspion, MegamanCollection, and SegaMegaDriveEGenesisClassics. When the repository files are not available locally, they are downloaded from GitHub. Open AntiMicroX, clickLoad, and pick the game's profile before playing. - Points mGBA at the Game Boy Advance library set by
GBA_LIBRARY_DIRinconfig.sh— a directory with ROMs in aRooms/subfolder and save files in aSaves/subfolder, e.g. a folder synced by Nextcloud: the ROM file dialog opens inRooms/and saves are read and written inSaves/, so game progress stays synced across machines. If the variable is empty or the library does not exist yet, the step is skipped — set the path inconfig.shand re-runsetup.sh. - Grants EasyRPG Player access to the RPG Maker library set by
RPG_MAKER_LIBRARY_DIRinconfig.sh— a directory with one subfolder per game and the shared RTP assets inRTP/2000andRTP/2003subfolders, e.g. a folder synced by Nextcloud — and copies the RTP into EasyRPG's default search path together with the TimGM6mb GM soundfont so MIDI music plays. Open the games with EasyRPG's built-in game browser by navigating to the library folder; saves are written inside each game folder, so progress stays synced across machines. If the variable is empty or the library does not exist yet, the step is skipped — set the path inconfig.shand re-runsetup.sh. - Allows unverified Flatpak applications to appear in Software Manager.
- Enables automatic update checks and updates in Update Manager.
- Configures the Homelab Backup systemd user timer after the other setup steps.
- Everything GIMP-related is handled by the gimp-setup repository. See its README for installation details, notes and troubleshooting.
- If GIMP has not been opened before the setup script runs, some GIMP plug-ins
and features are skipped. Open GIMP once, close it, and re-run
setup.sh. - The script downloads software and runs official third-party installation
scripts, so review
setup.shbefore running it.
- Check your Wi-Fi adapter:
If you see something similar to:
lspci -nnk | grep -A3 -i networkthen this guide applies.MediaTek Corp. MT7921 802.11ax PCI Express Wireless Network Adapter Kernel driver in use: mt7921e - Install the
iwutility, if it is not already installed:sudo apt update sudo apt install iw
- Check the current power-saving status:
You may see:
iw dev wlp63s0 get power_save
Power save: on - Disable Wi-Fi power saving permanently.
Create the NetworkManager configuration file:
Paste the following:
sudo mkdir -p /etc/NetworkManager/conf.d sudo nano /etc/NetworkManager/conf.d/wifi-powersave.conf
Save and exit with[connection] wifi.powersave = 2
Ctrl+O,Enter, thenCtrl+X. - Restart NetworkManager:
sudo systemctl restart NetworkManager
- Verify that power saving is disabled:
Expected output:
iw dev wlp63s0 get power_save
Power save: off - Reboot and verify again:
If it still shows
iw dev wlp63s0 get power_save
Power save: off, the configuration has been applied successfully and should persist across reboots. After disabling Wi-Fi power saving, the random network drops stopped occurring on the MediaTek MT7921 adapter under Linux Mint.
Everything related to the ZimaOS home server — the apps it runs and how to reinstall them with their customizations after a fresh installation — is handled by the zimaos-setup repository. Its data backup and restore chain lives in homelab-backup.
- Remote Mouse and balenaEtcher are installed only on AMD64 systems.
immich-gois installed only on AMD64 and ARM64 systems.- AppManager and Wattage are installed only on AMD64 and ARM64 systems. WinBoat is installed only on AMD64 systems. If a configured AppImage or nightly artifact is temporarily unavailable, the script reports that in the summary and continues.
- Claude Code is installed with Anthropic's terminal installer. Run
claudeonce after setup to sign in. - Claude Desktop is installed only on AMD64 systems.
- Claude for Firefox is an unofficial community extension. Firefox release
builds load it as a temporary extension, so after restarting Firefox you may
need to open
about:debugging#/runtime/this-firefox, chooseLoad Temporary Add-on, and select~/.claude/firefox/extension/manifest.json. If the sidebar shows authentication errors after signing in to Claude Code, run~/.claude/firefox/refresh-tokens.sh. - Homelab Backup is cloned to
~/Projects/homelab-backupand scheduled with a user systemd timer. - Some operations may already be complete when the script is run again. Review any errors before retrying.
- Type the cedilla character (
ç) withAltGr + ,(comma). - The correct audio profile in Sound Settings is
Headset JBL TUNE770NC. - Install Python packages only for your user with
python3 -m pip install --user --break-system-packages PACKAGE_NAME