pragma Singleton
import QtQuick
import Quickshell
import "themes"

QtObject {
    id: root

    readonly property var theme: Goldencity

    // ────────────────────────────────────────────────────────────────────────
    // Widgets
    // ────────────────────────────────────────────────────────────────────────
    property bool enableBgDate: true

    // ────────────────────────────────────────────────────────────────────────
    // BAR
    // ────────────────────────────────────────────────────────────────────────

    // ── Position & Dimensions ─────────────────────────────────────────────────
    property string barPosition: "bottom"
    property int    barHeight:   35
    property int    margin:      15
    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: 2
    property int volumeHandleSize:   20
    property int volumePopupWidth:   280
    property int volumeOutputMax:    100
    property int volumeInputMax:     200

    // ────────────────────────────────────────────────────────────────────────
    // FRAME
    // ────────────────────────────────────────────────────────────────────────
    property int frameBorderWidth: 2

    // ────────────────────────────────────────────────────────────────────────
    // 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"
    property bool   launcherCloseOnClickOutside: true
    property bool   launcherSelectFirst:         false
}
