a setup script for debian.
Find a file
2026-07-14 12:20:37 +02:00
install.sh Update install.sh 2026-07-14 12:20:37 +02:00
LICENSE Initial commit 2026-05-28 18:14:40 +02:00
README.md Updated readme 2026-06-07 14:22:53 +02:00
TODO.md Add TODO.md 2026-07-13 23:47:32 +02:00

Linux Setup Script — Debian 13

Automated setup script for a fresh Debian 13 (Trixie) install. Installs software, themes, GNOME extensions, and Brave browser extensions with zero interaction (sudo password aside).


What Gets Removed

App Package
All LibreOffice apps libreoffice* (purge)
Document Scanner simple-scan
GNOME Maps gnome-maps
GNOME Tour gnome-tour

Followed by apt autoremove + autoclean to free space.


GNOME Extensions

Downloaded and installed via the GNOME Extensions API.

Extension UUID
Caffeine caffeine@patapon.info
Dash to Dock dash-to-dock@micxgx.gmail.com
User Themes user-theme@gnome-shell-extensions.gcampax.github.com
Blur My Shell blur-my-shell@aunetx
AppIndicator & KStatusNotifierItem Support appindicatorsupport@rgcjonas.gmail.com
GSConnect gsconnect@andyholmes.github.io
Clipboard Indicator (Clipboard History) clipboard-indicator@tudmotu.com

Extensions are installed to ~/.local/share/gnome-shell/extensions/ and auto-enabled. If auto-enable fails (e.g. no live session), re-enable manually via the Extensions app or gnome-extensions enable <uuid> after logging back in.


Themes

Shell Theme — Marble (Dark)

  • Source: github.com/imarkoff/Marble-shell-theme
  • Installed with python3 install.py --dark
  • Requires the User Themes extension (installed above)
  • Apply: GNOME Tweaks → Appearance → Shell → select Marble-dark

Icon Theme — Papirus

Cursor Theme — Bibata

  • Version: v2.0.7 (override with BIBATA_VERSION=vX.Y.Z ./install.sh)
  • Source: github.com/ful1e5/Bibata_Cursor
  • Installed to ~/.local/share/icons/ and /usr/share/icons/
  • Apply: GNOME Tweaks → Appearance → Cursor

Dark Mode

  • org.gnome.desktop.interface color-scheme set to prefer-dark
  • GTK theme set to Adwaita-dark as a base

Brave Browser Extensions

Force-installed via managed policy at /etc/brave/policies/managed/extensions.json.

Extension Status
Proton Pass ⚠️ ID needed — see below
Flocus ⚠️ ID needed — see below
GNOME Shell Integration gphhapmejobijbbhgpjhcjognlahblep
Flatline ⚠️ ID needed — see below

Filling in missing extension IDs

Three extension IDs need to be added manually. To find them:

  1. Go to chromewebstore.google.com
  2. Open the extension's page
  3. Copy the 32-character ID from the URL bar:
    https://chromewebstore.google.com/detail/<name>/<ID-IS-HERE>
    
  4. Edit the policy file:
    sudo nano /etc/brave/policies/managed/extensions.json
    
  5. Replace TODO_PROTON_PASS_ID, TODO_FLOCUS_ID, and TODO_FLATLINE_ID with the real IDs
  6. Relaunch Brave — it will auto-install the extensions

Software Installed

Via apt (third-party repos added automatically)

App Purpose
Brave Browser Privacy-focused browser
Signal Encrypted messaging
GIMP Image editing
Inkscape Vector graphics
VLC Media player
VSCodium Code editor (telemetry-free VS Code)
Thonny Python IDE for beginners
Arduino IDE Microcontroller programming
ONLYOFFICE Desktop Office suite (replaces LibreOffice)
JetBrains Toolbox Manage JetBrains IDEs
LocalSend LAN file transfer
Obsidian Markdown note-taking
OBS Studio Screen recording & streaming
Fish User-friendly shell
GNOME Tweaks Theme & font management
Steam Gaming platform

Third-party Repos Added

Repo Source
Signal updates.signal.org
VSCodium download.vscodium.com
ONLYOFFICE download.onlyoffice.com

Via upstream installer

Tool Method
Brave Browser dl.brave.com/install.sh
pwndbg install.pwndbg.re (GDB with enhanced debugging)
Papirus Icons github.com/PapirusDevelopmentTeam installer

Post-Install Checklist

  • Log out and back in (required for GNOME extensions and shell theme)
  • Open GNOME Tweaks and apply:
    • Shell theme → Marble-dark
    • Icons → Papirus-Dark
    • Cursor → Bibata-Modern-Classic (or preferred Bibata variant)
  • Fill in missing Brave extension IDs in /etc/brave/policies/managed/extensions.json
  • Set Fish as your default shell: chsh -s $(which fish)
  • Configure GSConnect by pairing your Android device (requires KDE Connect app on phone)

Environment

  • Target OS: Debian 13 (Trixie)
  • Desktop: GNOME
  • Script: install.sh — runs fully unattended (only sudo password required)