Because sometimes minimalism just doesn't work
  • QML 80%
  • Shell 7.8%
  • JavaScript 4.4%
  • Nix 3.5%
  • Python 2.7%
  • Other 1.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-15 18:40:13 -05:00
bloat stole the caffeine button haha 2026-09-15 18:40:13 -05:00
nix System monitor side panel heh 2026-07-11 00:40:06 -05:00
.gitignore Updating to hyprlua and added a custom plymouth themes among many other changes :D 2026-06-08 22:00:27 -05:00
bloater.sh side panel frame code done 2026-06-17 23:07:12 -05:00
flake.lock NEEX OS 2026-06-19 01:33:19 -05:00
flake.nix System monitor side panel heh 2026-07-11 00:40:06 -05:00
get side panel frame code done 2026-06-17 23:07:12 -05:00
LICENSE license thingy 2026-06-12 12:04:18 -05:00
README.md side panel frame code done 2026-06-17 23:07:12 -05:00

Dotfiles (Now STANDALONE with Extra Bloat!!!!!)

Introduction

Initially I used end-4 and that had a bit more bloat than I signed up for (ironic cuz im adding more bloat lol) so I wanted something a bit leaner a bit different designed. Also @kuroma showed me what scrolling (niri) tastes like and I could not understand why I used dwindle for years. Sorry dwindle users but it's TRASH. Hyprland does have scrolling but sorry varxy love u no homo but it's still cheeks and lowk niri overview mogs every other implementation on hypr rn. So I took bits from end-4 and some bits from iNiR (niri end-4) and made an almagation that suits my tastes.

Important: This bloater script is lovingly crafted for my Framework Laptop 13 (AI 300 yada yada smh AMD) - the glorious king of Right to Repair. You know, a laptop that doesn't decide to commit sudoku after 2 years like a certain ASUS Zephyrus G15 whose GPU died >:(. While this script might work on your non-Framework device, there are no guarantees. Expect potential shenanigans on different hardware configurations, particularly those designed by corporations allergic to iFixit scores.

Also Important: KEYWORD "MY PREFERED CONFIGURATION" aka there are some personal settings you may want to change at the end of bloater.sh

The Bloater Script™

The bloater.sh (formerly known by its boring name install.sh) is designed for Arch Linux systems and automates the transformation of your lightweight system into a feature-complete powerhouse on top of the UnOriginal quickshell config. It supports three flavors of chaos:

  • YOLO mode (unattended): Runs all commands automatically with reckless abandon and --noconfirm flags
  • Paranoid mode (manual): Prompts before each command because trust issues are valid
  • Dry run mode (dry-run): Touches nothing. Walks the dots deployment and prints every command it would run so you can eyeball the damage before committing to it

What the Bloater Does (Buckle Up)

System Configuration (The Foundation of Chaos)

  • Enables multilib repository because we need 32-bit bloat too
  • Updates system packages (this might take a while, go make coffee)

Package Installation (The Main Event)

  1. Pacman Packages
    • Fonts: Every Japanese font known to mankind (Adobe Source Han, Noto CJK, IPA, VLGothic, Jigmo) plus compatibility fonts for that one weird app
    • Development: git (duh), zip, less, seahorse (for when you forget your passwords)
    • X11: xorg-xhost (Timeshift GTK throws a tantrum without it)
    • Power Management: upower, acpid, powertop, power-profiles-daemon (laptop battery goes brrr)
    • Browser: vivaldi (because screw you Google and Mozilla I know its chromium-based but still)
    • Security: libfprint, fprintd (Fingerprint authentication)
    • Boot: plymouth (splash screen because bloat is good)
    • Shell: zsh and Oh My Zsh (fish is cool but I prefer Zsh)
    • Audio: easyeffects (EQ is the way)
    • Containers: docker (containerize all the things!)
    • System Tools: btop (htop but prettier), fastfetch (neofetch creator took up farming), fwupd for firmware shenanigans
    • Graphics: Complete AMD GPU stack (smooth sailing) or NVIDIA stack (o7) with 32-bit support (more info below), plus qt5-wayland for some Wayland compatibility
    • Media: mpv (the best video player, fight me), imv image viewer
    • Networking: networkmanager + iwd (the backend behind the bar's Connection Manager, where iwd does the wifi association and NM does everything else, ending the old wpa_supplicant turf war over wlan0)
    • VPN: openvpn and networkmanager-openvpn, wireguard-tools (for totally legal purposes)
    • Network Tools: net-tools, nmap, nslookup, traceroute, wireshark
    • Gaming: wine, lutris (Windows games on Linux)
    • Flatpak: Because sometimes you need extra sandboxes
  2. AUR Packages (The Fun Stuff)
    • feishin (music streaming client for the audiophiles)
    • steam (gaming, obviously)
    • sunshine (game streaming)
    • protonup-qt (make Windows games work, it's basically magic)
    • minecraft-launcher (GET THE FK OUT OF MY ROOM I'M PLAYING MINECRAFT)
    • visual-studio-code-bin (yes, the proprietary one, sue me)
    • bottles (run Windows apps without the shame of dual-booting)

Initial Setup

When running in full installation mode, bloater orchestrates everything through bloat/deps/install-deps.sh:

  1. System Preparation
    • Enables multilib repository (because 32-bit gaming libraries exist)
    • Installs yay AUR helper if missing
    • Updates all system packages (this takes a minute)
  2. Metapackage Installation
    • Installs bloater metapackage (which pulls in ~80 dependencies across categories: Core, Theming, Audio, Browser, Containers, Development, Fonts, Gaming, Media, Monitoring)
    • Handles GPU driver selection (AMD/NVIDIA/skip) during installation
    • See bloat/deps/PKGBUILD for the full dependency breakdown
  3. Desktop Configuration (happens regardless of mode)
    • Shell setup: Oh My Zsh framework + Zsh as default
    • Virtualization: libvirt + KVM groups + CPU module loading
    • System tools: Timeshift, Discord tweaks, PAM for fingerprint auth
    • Boot themes: Removes unused DMs (SDDM/GDM/LightDM), installs CyberGRUB-2077 + Plymouth
    • VS Code: 36 essential extensions + Material Theme Ocean

Desktop Customizations (The Secret Sauce)

These apply in all modes (and dry run previews them without applying), and they're where your actual ricing happens:

  • Shell Config: Copies custom .zshrc with aliases and PATH tweaks
  • Wallpapers: Copies wallpaper collection to ~/Wallpapers/ and sets initial wallpaper
  • UnOriginal Config: Deploys custom config.json (the entire desktop shell config) with automatic wallpaper path substitution for your user
  • Material You Theming: Runs matugen to generate the palette and render GTK/fuzzel/niri themes
  • Niri Setup: Copies niri configuration (config.kdl, binds.kdl, colors.kdl + scripts)
  • Kitty Terminal: Updates to use Zsh instead of Fish, applies color scheme
  • Hyprlock: Deploys custom lockscreen config with Material You colors (fingerprint auth optional)
  • Part 4 Zone: Customization hook for adding your own tweaks (all modes respect your chosen install style)

The Bar (Where You'll Actually Spend Your Time)

Theming is nice, but the UnOriginal bar grew some genuinely useful interactive bits. The two headliners:

Connection Manager - click the status cluster on the right (mic / sound / wifi / bluetooth / VPN) and a popup drops down with everything in one spot, no settings-app safari required:

  • Wi-Fi: NetworkManager riding the iwd backend (so no more wpa_supplicant deauth slap-fights). Toggle the radio, rescan, connect with a password prompt, disconnect.
  • Bluetooth: flip the adapter, scan, and connect / disconnect / forget devices inline.
  • VPN: connect / disconnect / delete your OpenVPN and WireGuard profiles; the "Add / Edit VPN" button hands the fiddly creation off to nm-connection-editor.
  • Volume: speaker and mic sliders with mute toggles, because opening pavucontrol is effort.
  • Power: sleep, hibernate, log out, restart, and shut down right at the top (the shutdown button is an angry red, you have been warned).

Calendar + To-Do - click the clock for a month calendar wired to a to-do list that actually syncs:

  • Planify sync: tasks live in Planify through its CLI, so whatever you add in the bar shows up in Planify and the other way around. Have Planify (Flatpak) installed and the bar auto-detects it; don't, and it quietly falls back to a local list so nothing explodes.
  • Click a date to scope: clicking a day previews that day's tasks, and new tasks default to whatever date you have selected.
  • Future dates + priorities: schedule tasks for any day down the line (date-only, no o'clock micromanaging) and flag them by priority.
  • Projects: your Planify projects show up as chips, and you can drop new tasks straight into any of them instead of always landing in the Inbox.
  • Pinning: pin the important stuff to the top.
  • Complete or hide: tick tasks done, then clear finished ones out of the list locally (Planify likes to keep them around, so the bar just stops showing them).

Usage (Time to Get Bloated)

./bloater.sh

The script will ask you two important life questions:

  1. Setup mode (YOLO/unattended, paranoid/manual, or dry-run preview)
  2. GPU type (AMD master race, NVIDIA pain mode, or skip entirely) - only if you chose full bloat mode

Or be a power user and specify options directly:

./bloater.sh unattended amd      # Full bloat: AMD GPU, hold my coffee
./bloater.sh manual nvidia       # Full bloat: NVIDIA GPU, prepare for driver hell
./bloater.sh unattended skip     # Full bloat: Skip GPU drivers, I got this
./bloater.sh dry-run             # Dry run: preview every dots change, apply nothing
GPU_TYPE=nvidia ./bloater.sh     # Full bloat: NVIDIA GPU, I also hate myself

Dry Run Mode

Want to know exactly what the script will do to your system before you let it loose? Run a dry run. It walks the entire dots deployment but prints every command instead of running it - nothing gets copied, backed up, or themed:

./bloater.sh dry-run

You get a [DRY-RUN] Would run: ... line for each step it would take:

  • Deploying the UnOriginal config.json and the rest of ~/.config (overwrites backed up)
  • The .zshrc and wallpaper copies
  • Quickshell state dirs + Material You palette generation (matugen)
  • Any Part 4 Zone hooks you've added

Nothing is touched, so it's safe to run whenever you're curious. Like what you see? Re-run with mode 1 or 2 to apply it for real.

GPU Support (Team Red vs Team Green vs DIY)

During full installation, bloater asks which GPU stack you want (or none). The metapackage can't cover both AMD and NVIDIA simultaneously, so you pick one:

AMD Stack (The Sensible Choice):

  • mesa (OpenGL/Vulkan drivers that work out of the box)
  • vulkan-radeon (Vulkan for AMD RADV)
  • VA-API (hardware video decode in Firefox/mpv)
  • 32-bit multilib support (gaming libraries)
  • Wayland support that doesn't make you want to cry

NVIDIA Stack (Abandon All Hope):

  • NVIDIA proprietary drivers (Linus has strong opinions)
  • NVIDIA-utils, NVIDIA-settings (fighting with the driver is the game)
  • Vulkan + 32-bit support (when they work)
  • Wayland support is... improving. Slowly. Very slowly.

Skip Option (For the DIY Enthusiasts):

  • No GPU drivers installed by the bloater
  • Useful if you have special requirements or exotic hardware
  • Perfect for when you already have drivers set up
  • For the brave souls who know exactly what they're doing

Note to NVIDIA users: We support your GPU but question your life choices. Consider switching to AMD for your sanity.

Note: This bloater is specifically designed for Arch Linux with niri. Review the script before unleashing it upon your system to ensure you actually want all this stuff. No refunds on disk space.

Adding Your Own Bloat (I Mean, Customizations)

To add new customizations that will run in all modes (and show up in a dry run preview):

  1. Open bloater.sh in your favorite text editor
  2. Navigate to Part 4 (the customization zone)
  3. Add your bloat essential tweaks using the run_cmd function

Example (totally necessary additions):

# Copy more essential files
run_cmd "cp -f ./my_custom_configs/* \"$HOME/.config/\""

# Tweak configs to perfection
run_cmd "sed -i 's/old_value/new_value/' \"$HOME/.config/someapp/config.conf\""

# Update paths with username (the bloater automatically handles wallpaper paths)
run_cmd "sed 's|/home/olduser/|/home/'\"$TARGET_USER\"'/|g' ./template.conf > \"$HOME/.config/app.conf\""

All customizations will automatically respect your chosen mode (paranoid/YOLO) and prompt accordingly.

Credits

  • Package install script inspired by end-4's dist-arch
  • Various elements yoinked from end-4 and iNiR
  • CyberGRUB Grub Theme by adnksharp
  • Low Cortisol Tachyon Plymouth theme by YOURS TRULY (me)