This is my personal fork of the quickshell setup done by end4 dots. I heavily use AI across the entire project and im quite happy with it. Don't use it if you don't want to.
  • QML 81%
  • HTML 6%
  • JavaScript 5.3%
  • Shell 4.2%
  • Python 3.1%
  • Other 0.4%
Find a file
Alex d3c351763f fix(tray): dedupe SystemTray ghosts so each app shows one icon
Quickshell's SystemTray model can accumulate duplicate SNI entries
(e.g. multiple materialgram ids) while DBus only has one; IslandRight
then showed ghost icons with only Pin/Unpin. Deduplicate by id in
TrayService (prefer hasMenu). Also add missing superPaste qmldir so
shell hot-reload succeeds.
2026-08-27 14:58:35 +02:00
ii fix(tray): dedupe SystemTray ghosts so each app shows one icon 2026-08-27 14:58:35 +02:00
cat.png feat: sync latest refinements to local history (Alex & gemini-cli) 2026-05-02 12:15:47 +02:00
LICENSE feat: sync latest refinements to local history (Alex & gemini-cli) 2026-05-02 12:15:47 +02:00
README.md docs: update README with scope of fork and key changes 2026-08-25 14:04:40 +02:00
SUMMARY.md fix(tray): dedupe SystemTray ghosts so each app shows one icon 2026-08-27 14:58:35 +02:00
todo.txt feat: add Tailscale status widget, switch calendar to CalDAV/ICS 2026-08-01 23:49:21 +02:00
update.sh feat: sync latest refinements to local history (Alex & gemini-cli) 2026-05-02 12:15:47 +02:00

quickshell-dots

This is my personal fork of end4's quickshell configuration.

This is not just a minor tweak—it's a massive structural divergence from upstream. Over 260 files have been added, deleted, or fundamentally rewritten. I've built entirely new subsystems on top of the original layer, deeply modified the core global states, and injected custom assets to suit my specific workflow and aesthetic preferences.

Now ported and compatible with Hyprland's Lua configuration.

Scope of the Fork

  • ActivSpot Subsystem: An entirely custom, massive integration that doesn't exist upstream, effectively functioning as a distinct UI layer.
  • Core Engine Rewrites: Heavy foundational modifications to GlobalStates.qml, Config.qml, Directories.qml, and ColorUtils.qml.
  • Custom UI & Assets: Nearly all UI widgets (from NavigationRailButton to text fields) have been customized, alongside brand-new components (IconPickerPopup, MonogramIcon) and exclusive icons/assets.

Key Changes

  • Launcher Superpowers: Added an inline action tray (Ctrl+B) for pinning, tagging, and instantly uninstalling apps (pacman/flatpak support), alongside a multi-select mode for bulk actions.
  • Smarter App Search: Implemented a hybrid fuzzy matching engine with typo-tolerance, combined with usage-based frecency ranking.
  • Advanced Media & Lyrics: Integrated Spotify favorites via a custom secure local bridge, added full transport controls, and upgraded the MusicPage to feature real word-level karaoke lyric synchronization (via Musixmatch/NetEase APIs).
  • Calendar & CalDAV: Rebuilt calendar logic to display event presence indicators and per-event colors directly on the day-grid.
  • SuperPaste: Added a cursor-anchored, multi-entry clipboard paste menu for managing cliphist history seamlessly.
  • Native Screensaver: Migrated from video-based screensavers to a native QML/Qt6 ShaderEffect playlist featuring seamless global multi-monitor UV rendering and a floating AOD clock/media overlay.
  • Multi-Monitor & Performance Polish: Forced Qt animations to run at native 175Hz (bypassing Qt's 60Hz bug), fixed Dynamic Island survival during DPMS hotplugs, and restricted lock-screen elements to the primary monitor.
  • Service & UI Improvements: Split the right sidebar's calendar into a floating island, improved the RuleGenerator overlay, fixed Caps Lock OSD, added GPU/VRAM monitoring, and moved to more robust backends (e.g., Open-Meteo).

Maintained with ❤️ by alex