pragma Singleton import QtQuick import Quickshell import "themes" QtObject { id: root readonly property var theme: Colorful // ──────────────────────────────────────────────────────────────────────── // Widgets // ──────────────────────────────────────────────────────────────────────── property bool enableBgDate: true // ──────────────────────────────────────────────────────────────────────── // BAR // ──────────────────────────────────────────────────────────────────────── // ── Position & Dimensions ───────────────────────────────────────────────── property string barPosition: "bottom" property int barHeight: 37 property int margin: 20 property int radius: 26 // ── Module Lists ────────────────────────────────────────────────────────── property var leftModules: ["ArchLogo", "Stats"] property var centerModules: ["Workspace"] property var rightModules: ["Tray", "Notifications", "Volume", "Clock"] // ── Arch Logo ───────────────────────────────────────────────────────────── property int logoIconSize: 22 // icon font size; container width scales with it property string logoIcon: "󱄅" // Nerd Font glyph for the logo // ── Panel Styling ───────────────────────────────────────────────────────── property int panelBorderWidth: 1 property int moduleSpacing: 2 // space between modules within a panel property int panelSpacing: 12 // gap between left / center / right panels property int moduleHeight: 32 // default chip height for bar modules // ── Popup Styling ───────────────────────────────────────────────────────── property int popupRadius: 18 property int popupBorderWidth: 1 property int popupAnimDuration: 500 // ── Tray Styling ───────────────────────────────────────────────────────── property int trayHeight: 26 property int trayIconSize: 20 // ── Stats Styling ───────────────────────────────────────────────────────── property int statsRingSize: 25 property int statsRingFontSize: 10 property bool statsShowPercentByDefault: true // ── Volume Module ───────────────────────────────────────────────────────── property int volumeIconSize: 20 property int volumeSliderHeight: 4 property int volumeHandleSize: 20 property int volumePopupWidth: 280 property int volumeOutputMax: 100 property int volumeInputMax: 200 // ──────────────────────────────────────────────────────────────────────── // FRAME // ──────────────────────────────────────────────────────────────────────── property int frameBorderWidth: 1 // ──────────────────────────────────────────────────────────────────────── // NOTIFICATIONS // ──────────────────────────────────────────────────────────────────────── property string notificationPosition: "topright" property int notificationHistorySize: 50 // ── Toast timeouts (milliseconds) ───────────────────────────────────────── property int notifTimeoutLow: 3500 property int notifTimeoutNormal: 5000 property int notifTimeoutCritical: 0 property int notifIconSize: 18 // ──────────────────────────────────────────────────────────────────────── // LAUNCHER // ──────────────────────────────────────────────────────────────────────── property string launcherScript: Quickshell.env("HOME") + "/.config/quickshell/launcher/launcher.sh" property string launcherCacheDir: "/tmp/qs_launcher" }