Files
quickdots/config/config.qml

173 lines
12 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: Snowy
// ────────────────────────────────────────────────────────────────────────
// Widgets
// ────────────────────────────────────────────────────────────────────────
property bool enableBgDate: true
property bool sideBarSysInfo: true
property bool sideBarMpris: true
property bool sideBarWeather: true
property string sideBarPosition: "right" // "left" or "right"
property bool enablePolkit: true
// ────────────────────────────────────────────────────────────────────────
// BAR
// ────────────────────────────────────────────────────────────────────────
property string barPosition: "bottom"
property int barHeight: 35
property int margin: 15
property int radius: 20
// ────────────────────────────────────────────────────────────────────────
// FRAME
// ────────────────────────────────────────────────────────────────────────
property string frameVariant: "bar" // "card" or "bar"
property int frameBorderWidth: 3
property int frameBarPadTop: 5 // bar variant: padding from top edge
property int frameBarPadBottom: 5 // bar variant: padding from bottom edge
// ── 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
property string popupAnimType: "slide" // "bubbleslide" or "slide"
// ── 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
property bool statsShowCpu: true
property bool statsShowMem: true
property bool statsShowDisk: true
property bool statsShowCpuTemp: true
property bool statsShowGpuTemp: true
// ── 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
// ────────────────────────────────────────────────────────────────────────
// NOTIFICATIONS
// ────────────────────────────────────────────────────────────────────────
property bool notificationShakeEnabled: true // bell ringing shake for 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
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 fetches one pair
// per timer tick and auto-rotates to the next after each successful fetch.
//
// coin CoinGecko coin ID, e.g. "bitcoin", "monero", "solana"
// currency quote currency: "usd", "eur", "brl", "btc", "eth", …
//
// 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" }, { coin: "bitcoin", currency: "eur" }, { coin: "bitcoin", currency: "brl" }, { coin: "ethereum", currency: "usd" }]
// ── Compact label decimals ────────────────────────────────────────────────
// 0 → "80k"
// 1 → "80.0k" (default)
// 3 → "80.000k"
property int cryptoDecimals: 2
// ── Poll interval ─────────────────────────────────────────────────────────
// Seconds between CoinGecko requests. Each tick fetches one pair
// and advances to the next in the cycle. Free tier allows ~30 req/min.
property int cryptoRefreshSec: 120
// ── Bar rotate interval ────────────────────────────────────────────────────
// Seconds between auto-rotating the displayed pair. 0 = disabled.
// Uses cached data (no API call), instant switching.
property int cryptoRotateSec: 10
// ── Bar chip icon ─────────────────────────────────────────────────────────
// Show the coin icon glyph ("󰿤") on the bar chip.
property bool cryptoShowIcon: true
// ────────────────────────────────────────────────────────────────────────
// WEATHER
// ────────────────────────────────────────────────────────────────────────
property string weatherLocation: "" // city name, e.g. "London" or "New+York"; empty → auto-detect from IP
property int weatherRefreshMin: 30 // update interval in minutes
}