Files
quickdots/config/config.qml

149 lines
10 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
pragma Singleton
import QtQuick
import Quickshell
import "themes"
QtObject {
id: root
readonly property var theme: Goldencity
// ────────────────────────────────────────────────────────────────────────
// Widgets
// ────────────────────────────────────────────────────────────────────────
property bool enableBgDate: true
property bool enablePolkit: true
// ────────────────────────────────────────────────────────────────────────
// BAR
// ────────────────────────────────────────────────────────────────────────
// ── Position & Dimensions ─────────────────────────────────────────────────
property string barPosition: "bottom"
property int barHeight: 35
property int margin: 15
property int radius: 20
// ── Module Lists ──────────────────────────────────────────────────────────
property var leftModules: ["Logo", "Stats", "Crypto"]
property var centerModules: ["Workspace"]
property var rightModules: ["Tray", "Notifications", "Volume", "Network", "Battery" ,"Clock"]
// ── Logo ─────────────────────────────────────────────────────────────
property int logoIconSize: 23 // icon font size; container width scales with it
property string logoIcon: "󱄅" // Nerd Font glyph for the logo
property int logoSpinDuration: 600 // spin animation duration in ms
// ── Panel Styling ─────────────────────────────────────────────────────────
property int panelBorderWidth: 1
property int moduleSpacing: 5 // space between modules within a panel
property int panelSpacing: 12 // gap between left / center / right panels
property int moduleHeight: 23 // default chip height for bar modules
// ── Popup Styling ─────────────────────────────────────────────────────────
property int popupRadius: 18
property int popupBorderWidth: 1
property int popupAnimDuration: 250
// ── Clock Module ─────────────────────────────────────────────────────────
property bool clockExtendEnabled: true // seconds extension on hover for clock
// ── Timezone (IANA name, e.g. "America/New_York", "Europe/London") ──────────
// Leave empty to use the system timezone.
property string timezone: ""
// Date format used in the clock popup and background date widget.
// "MDY" → month/day/year (e.g. May 14, 2026)
// "DMY" → day/month/year (e.g. 14 May 2026)
property string dateFormat: "DMY"
// ── Tray Styling ─────────────────────────────────────────────────────────
property int trayToggleSize: 23 // size of the expand/collapse arrow button
property int trayIconSize: 20 // size of each system tray item icon
// ── Stats Styling ─────────────────────────────────────────────────────────
property int statsRingSize: 22
property int statsRingFontSize: 12
property int statsIconSize: 10
// Where the percentage label appears when stats are expanded.
// "right" → label to the right of the ring; "left" → label to the left.
property string statsLabelPosition: "right"
// If true, percentage labels are visible on startup without clicking.
property bool statsStartExpanded: false
// ── Volume Module ─────────────────────────────────────────────────────────
property bool volumeShakeEnabled: true // rotation shake for volume chip
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: 3
// ────────────────────────────────────────────────────────────────────────
// NOTIFICATIONS
// ────────────────────────────────────────────────────────────────────────
property bool notificationShakeEnabled: true // bell ringing shake for notifications
property string notificationPosition: "bottomright"
property int notificationHistorySize: 50
// ── Toast timeouts (milliseconds) ─────────────────────────────────────────
property int notifTimeoutLow: 3500
property int notifTimeoutNormal: 5000
property int notifTimeoutCritical: 0
property int notifIconSize: 18
property int notifToastEdgePad: 10 // extra gap between toast cards and the frame border
// ────────────────────────────────────────────────────────────────────────
// 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
property bool launcherMipmapIcons: false
// ────────────────────────────────────────────────────────────────────────
// CRYPTO
// ────────────────────────────────────────────────────────────────────────
// ── Coin/currency pairs to cycle ──────────────────────────────────────────
// Each entry is a { coin, currency } object. The bar chip rotates to the
// next pair after each successful CoinGecko fetch.
//
// coin CoinGecko coin ID (find them at https://api.coingecko.com/api/v3/coins/list)
// currency any quote currency CoinGecko supports: "usd", "eur", "brl", "btc", …
//
// Single pair → [{ coin: "bitcoin", currency: "usd" }]
// Three pairs → [{ coin: "bitcoin", currency: "usd" },
// { coin: "monero", currency: "usd" },
// { coin: "solana", currency: "brl" }]
//
// This list is the *default*; pairs can be added/removed live in the
// Settings popup and those changes are persisted across restarts.
property var cryptoPairs: [{ coin: "bitcoin", currency: "usd" }, { coin: "ethereum", currency: "eur" }, { coin: "monero", currency: "usd" }]
// ── Compact label decimals ────────────────────────────────────────────────
// 0 → "80k"
// 1 → "80.0k" (default)
// 3 → "80.000k"
property int cryptoDecimals: 2
// ── Poll interval ─────────────────────────────────────────────────────────
// Seconds between CoinGecko requests. Free tier allows ~30 req/min.
// With multiple pairs each refresh fetches one pair then advances the index,
// so the effective per-pair interval is: cryptoRefreshSec × cryptoPairs.length
property int cryptoRefreshSec: 120
// ── Bar chip icon ─────────────────────────────────────────────────────────
// Show the coin icon glyph ("󰿤") on the bar chip.
property bool cryptoShowIcon: true
}