added three new modules (Crypto.qml, Battery.qml, Network.qml), improved Stats.qml, improved Tray.qml, optimized code in general, added a polkit agent, configurations change (check configs)

This commit is contained in:
SomeElse
2026-05-14 04:56:33 +00:00
parent 046a36fbec
commit e3bfa6661f
31 changed files with 5857 additions and 353 deletions

View File

@@ -6,12 +6,13 @@ import "themes"
QtObject {
id: root
readonly property var theme: Goldencity
readonly property var theme: Tropicalnight
// ────────────────────────────────────────────────────────────────────────
// Widgets
// ────────────────────────────────────────────────────────────────────────
property bool enableBgDate: true
property bool enableBgDate: true
property bool enablePolkit: true
// ────────────────────────────────────────────────────────────────────────
// BAR
@@ -20,62 +21,64 @@ QtObject {
// ── Position & Dimensions ─────────────────────────────────────────────────
property string barPosition: "bottom"
property int barHeight: 35
property int margin: 15
property int margin: 20
property int radius: 26
// ── Module Lists ──────────────────────────────────────────────────────────
property var leftModules: ["ArchLogo", "Stats"]
property var leftModules: ["Logo", "Stats", "Crypto"]
property var centerModules: ["Workspace"]
property var rightModules: ["Tray", "Notifications", "Volume", "Clock"]
property var rightModules: ["Tray", "Notifications", "Volume", "Network", "Battery" ,"Clock"]
// ── Arch Logo ─────────────────────────────────────────────────────────────
// ── Logo ─────────────────────────────────────────────────────────────
property int logoIconSize: 23 // 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 moduleSpacing: 5 // 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
property int moduleHeight: 23 // default chip height for bar modules
// ── Popup Styling ─────────────────────────────────────────────────────────
property int popupRadius: 18
property int popupBorderWidth: 1
property int popupAnimDuration: 500
// ── Timezone (IANA name, e.g. "America/New_York", "Europe/London")g ──────────
// Leave empty to use the system timezone.
property string timezone: "America/New_York"
// ── Clock Popup ───────────────────────────────────────────────────────────
// Date format shown in the clock popup.
// "MDY" → month/day/year (e.g. 4/28/2026)
// "DMY" → day/month/year (e.g. 28/4/2026)
property string clockDateFormat: "DMY"
// 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 trayHeight: 26
property int trayIconSize: 20
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: 23
property int statsRingFontSize: 10
// If true, the % value is shown by default; hovering shows the label, clicking swaps back.
// If false, the label is shown by default; hovering shows the %, clicking swaps back.
property bool statsShowPercentByDefault: true
// If true, text is hidden completely until you hover a ring.
// • Hover → shows the "default" value (% when statsShowPercentByDefault, label otherwise)
// • Click → swaps to the "other" value (label / %)
property bool statsHideTextUntilHover: false
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 int volumeIconSize: 20
property int volumeSliderHeight: 2
property int volumeHandleSize: 20
property int volumePopupWidth: 280
property int volumeOutputMax: 100
property int volumeOutputMax: 170
property int volumeInputMax: 200
// ────────────────────────────────────────────────────────────────────────
// FRAME
// ────────────────────────────────────────────────────────────────────────
property int frameBorderWidth: 2
property int frameBorderWidth: 3
// ────────────────────────────────────────────────────────────────────────
// NOTIFICATIONS
@@ -100,4 +103,45 @@ QtObject {
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" }, { coin: "solana", currency: "brl" }]
// Legacy fallbacks used by Crypto.qml when cryptoPairs is absent.
// You can leave these as-is; they are derived from the first pair above.
property string cryptoCoinId: cryptoPairs[0].coin ?? "bitcoin"
property string cryptoVsCurrency: cryptoPairs[0].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
}