Skip to content

About

One script to turn a fresh Bazzite (KDE) install into a lean, private, AI-powered gaming + development workstation.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

Repository files navigation

db-setup.sh — Bazzite Post-Install Setup

Version 1.1

One script that turns a fresh Bazzite install into a lean, private, AI-powered gaming and development workstation.

db-setup.sh is a single Bash script for Bazzite 44 (KDE Plasma 6). It runs top to bottom, configures the whole machine, and cleans up after itself. It disables telemetry, removes bloat, installs a local AI stack, applies a Catppuccin Mocha theme and global keyboard shortcuts, sets up a Windows 11 VM, adds gaming and single-player cheat tooling, and installs a universal updater — all in one pass.


What it is / who it's for

  • Target OS: Bazzite 44, KDE variant (Fedora atomic / immutable, Universal Blue base).
  • Runs top-to-bottom, unattended-ish. Most sections are fully automatic; a few prompt you (AI web-UI choice, Odysseus admin login).
  • Written to be safe on an immutable OS. System packages are layered with rpm-ostree in a single consolidated transaction; user-level changes go into your home directory.
  • Resilient by design. It does not use set -e — a single non-fatal failure (a Flatpak that's already gone, a COPR mirror hiccup) won't abort the run or leave the machine half-configured. Every step guards its own errors and prints clear [OK] / [WARN] / [INFO] status.
  • Idempotent-ish. Re-running skips things that already exist where practical, but this is a setup script, not a config-management tool.

This is the author's personal machine setup, published so others can learn from it or fork it. It is opinionated and tailored to one specific hardware/software taste.


⚠️ Before you run

Read the script first. It makes real, system-wide changes on a fresh install. In particular it will:

  • Layer packages with rpm-ostree (Ghostty, KVM/QEMU stack, fastfetch, build deps, etc.). These are staged and only take effect after a reboot.
  • Change system and KDE settings — theming, window decorations, default terminal, panel, autostart entries, and global keyboard shortcuts.
  • Remove pre-installed Flatpaks it considers bloat (music player, maps, weather, contacts, calendar, clocks, duplicate editors/video players).
  • Install an uncensored-capable local LLM stack (Ollama + a browser AI UI) that runs 100% offline on your hardware.
  • Set Helium as the default browser and uninstall Firefox (both Flatpak and RPM variants), rewriting mimeapps.list so links don't reopen Firefox.
  • Repartition/format a secondary disk (Section 16) as a Steam library if one is found — it only touches a disk that is not your OS disk and is not already holding mounted data, but review this section carefully.
  • Install single-player game-trainer tooling (WeMod, Cheat Engine via Proton).

It is tailored to the author's machine and preferences. Review it, and fork/edit it to match your own setup before running. Treat it as a starting point, not a turnkey installer for arbitrary systems.


Feature overview

The script is organized into numbered sections. Grouped logically:

Privacy & debloat

  • 1 — Telemetry off. Disables Fedora's install counter, KDE usage reporting, Flatpak analytics, Homebrew stats, the Steam hardware survey, and Firefox telemetry if present. Also disables KDE Wallet so it stops prompting.
  • 2 — Bloatware removal. Uninstalls Flatpak apps Bazzite pre-installs but most people never open, then prunes orphaned runtimes to reclaim disk.

Local AI stack

  • 3 — Ollama + best-fit model. Installs Ollama as a user systemd service (boot-start with linger enabled, so it's ready before/without a graphical login). Detects GPU VRAM (or ~60% of system RAM on CPU-only boxes) and pulls the single best-fitting Qwen2.5-Coder model for your hardware — one model, not a pile:

    • ≥22 GB → qwen2.5-coder:32b
    • ≥11 GB → qwen2.5-coder:14b
    • ≥6 GB → qwen2.5-coder:7b
    • below → qwen2.5-coder:3b

    Adds ai-on / ai-off helper commands to free VRAM for gaming on demand. Models run fully offline with no cloud account.

  • 4 — Oobabooga (optional). Clones text-generation-webui and writes a start script that launches it with the OpenAI-compatible API enabled. Serves a browser chat UI at http://localhost:7860.

  • 4b — Odysseus (optional). PewDiePie's self-hosted AI workspace (chat + agents + research + tools) as a rootless Podman stack at http://localhost:7000. It offloads inference to the host Ollama over the host's LAN IP (rootless Podman can't use host.docker.internal reliably), so it needs no extra model downloads. Set to autostart via podman-restart + linger.

    The AI web-UI section is interactive — you pick Oobabooga, Odysseus, both, or neither.

AI-assisted development

  • 5 — Zed editor. Fast Rust editor with its AI assistant pointed at local Ollama. Enables git blame, autosave, format-on-save, JetBrains Mono. Also auto-starts Ollama when Zed launches.
  • 6 — OpenCode CLI. Terminal AI coding agent wired to local Ollama (installs Node 18+ via nvm if missing).
  • 7 — Claude Code CLI. Anthropic's coding agent installed into a user-owned npm prefix (no sudo). You authenticate separately with your Anthropic Pro/Max account after the run.

Look & feel (KDE Plasma 6)

  • 8 — Catppuccin Mocha theme. Applies the Mocha palette (Mauve default, Blue coding variant); all palette values embedded so no internet is needed.
  • 8b — DMS-style setup. Papirus-Dark icons, Kvantum with Catppuccin Mocha Mauve, the full Catppuccin KDE theme, the Panel Colorizer plasmoid (floating pill panel), Klassy window decorations (no COPR exists — built from source, compiles itself on first login and notifies you), KWin blur + rounded corners, Noto Sans typography, and the stock ColdRipple wallpaper. kde-material-you-colors is installed but left disabled so it doesn't override Catppuccin.

Windows VM & launchers

  • 9 — Windows 11 VM. Installs the full KVM/QEMU stack via rpm-ostree (qemu-kvm, libvirt, virt-manager, virt-viewer, edk2-ovmf, swtpm for TPM 2.0), adds you to the libvirt group, enables libvirtd, and downloads the VirtIO drivers ISO. Ships a helper script to start/resume the VM. (You supply the Windows 11 ISO.)
  • 10 — Launchers. Registers .desktop entries in the KDE app menu (not on the desktop) for the Windows VM, Oobabooga, OpenCode, and Zed. The desktop stays clean; everything is launchable from the KDE app menu / KRunner.

Browser & terminal

  • 11 — Helium browser. Privacy-first Chromium fork installed as an AppImage from GitHub releases, set as default for all web MIME types (XDG + KDE), then Firefox is removed and lingering references rewritten.
  • 12 — Ghostty terminal. GPU-accelerated terminal (COPR) with Catppuccin Mocha, blur, JetBrains Mono, and tab/split shortcuts. Set as the default terminal in kdeglobals, dolphinrc (F4), and xdg-terminals.list.
  • 12b — Kitty terminal. Installed as a secondary/fallback terminal.
  • 13 — fastfetch. Rich JSONC config (graphical Bazzite logo, CPU/GPU temps + driver, RAM bar, all drives, local + public IP, OS install date) added to .bashrc and .zshrc so it greets you in every terminal.

Gaming & cheats (single-player only)

  • 13c — GameConqueror. Native scanmem memory scanner (backup tool).

  • 13d — Cheat Engine + WeMod. Windows game-trainer toolchain that runs inside a game's Proton prefix: WeMod via the DeckCheatz wemod-launcher, and Cheat Engine via protontricks-launch (loads community .CT tables). Pulls GE-Proton directly from GitHub for the games that need it.

    These are for single-player games only. Do not use them online or in multiplayer.

System packages & updates

  • 13b — Consolidated rpm-ostree install. All queued system packages are layered in one transaction (fast, atomic, correct for immutable Bazzite).
  • 14 — Global keyboard shortcuts. Seven Plasma 6 shortcuts (see table below), registered the Plasma 6 way (.desktop launcher + kglobalshortcutsrc). Active after reboot/login.
  • 15 — Topgrade. Bazzite-aware universal updater (via Homebrew) that uses bootc upgrade for the system image and updates Flatpak, npm globals, pipx, pip, Homebrew, Rust, git repos, Zed, and Ollama models — while disabling steps that don't apply (snap, nix, firmware).
  • 15b — Topgrade panel button. One-click ↻ update widget for the panel.
  • 16 — Second SSD → Steam library. If a secondary disk is found, formats/labels it and configures it as the Steam library location with Proton-GE as the default.

Requirements

  • Bazzite 44 (KDE variant), freshly installed.
  • Internet connection for downloads (models, browser, etc.).
  • Your user password — sudo is used for system-level changes.
  • Disk space for AI models — several GB up to tens of GB depending on your VRAM/RAM tier.
  • AMD GPU note: the script detects GPU vendor (NVIDIA / AMD / CPU). Oobabooga has AMD/ROCm handling — on first launch it runs its own installer and asks you to pick your GPU type.
  • Optional: an Anthropic Pro/Max account for Claude Code (Section 7), and a Windows 11 ISO for the VM (Section 9).

Usage

chmod +x db-setup.sh
./db-setup.sh

Run it once on a fresh install and let it work through all sections. It is interactive in a few places:

  • The AI web-UI menu asks whether you want Oobabooga, Odysseus, both, or neither.
  • Odysseus prompts for an admin username/password for its web login (or reads ODYSSEUS_ADMIN_USER / ODYSSEUS_ADMIN_PASSWORD from the environment).
  • sudo will ask for your password for system changes.

Reboot when it finishes. The rpm-ostree layered packages (Ghostty, KVM/QEMU, fastfetch, build deps) and the theme, default terminal, and keyboard shortcuts only take full effect after a reboot or re-login. Klassy compiles itself ~2 minutes after your first login and notifies you.


Global keyboard shortcuts

Meta is the Windows key. All seven are active after the post-setup reboot/login and are editable under System Settings → Keyboard → Shortcuts.

Shortcut Action
Meta+Return Ghostty terminal
Meta+Z Zed editor
Meta+E Dolphin file manager
Meta+B Helium browser
Meta+O Oobabooga AI (starts the server + opens the browser)
Meta+S Steam
Meta+A OpenCode AI (inside Ghostty)

Local AI stack

  • Ollama runs as a user systemd service enabled at boot (with linger), so Zed, OpenCode, Oobabooga, and Odysseus always have a backend. ai-on / ai-off let you start/stop it manually to free VRAM for gaming.
  • Models are pulled as a single best-fit Qwen2.5-Coder variant sized to your VRAM/RAM. The browser AI workspaces are set up to run uncensored-capable local models with no cloud account and no data leaving your machine.
  • Oobabooga — browser chat UI at http://localhost:7860, with an OpenAI-compatible API so other apps can talk to it.
  • Odysseus — self-hosted AI workspace at http://localhost:7000, running as a rootless Podman stack. It reaches the host Ollama over the host's LAN IP (not host.docker.internal, which is unreliable under rootless Podman + netavark), so it reuses your existing models with no extra downloads.

Contributing

Improvements are welcome. Open a pull request — the repo owner is emailed on new PRs, reviews them, and approving the PR auto-merges it. See CONTRIBUTING.md for the full workflow and expectations.


Changelog

  • v1.1 — Removed Crystal Dock (Section 8c) and all its wiring (autostart entry, KDE-Favorites sync service, launcher registration). App launching is now KDE app menu / KRunner only. Switched license from MIT to PolyForm Noncommercial 1.0.0.
  • v1.0 — Initial release.

Disclaimer & license

This script is provided AS-IS, with no warranty. It makes significant, system-wide changes to a fresh install and is tailored to the author's own machine. Read it and review every section before running it, and adapt anything that doesn't fit your hardware or preferences. You run it at your own risk.

The cheat / game-trainer tooling is for single-player games only — do not use it in online or multiplayer contexts.

Licensed under the PolyForm Noncommercial License 1.0.0 — free for any noncommercial purpose; commercial use requires a separate license from the author (contact darrengbrown21@gmail.com).

This project is not affiliated with, endorsed by, or supported by the Bazzite or Universal Blue projects.

About

One script to turn a fresh Bazzite (KDE) install into a lean, private, AI-powered gaming + development workstation.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages