Compare commits
2 Commits
042e219ed7
...
c97bcaf1f3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c97bcaf1f3 | ||
|
|
c28f00caf7 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
launcher/favorites.txt
|
||||
20
bar/Bar.qml
20
bar/Bar.qml
@@ -12,6 +12,9 @@ PanelWindow {
|
||||
|
||||
readonly property var cfg: Cfg.Config
|
||||
|
||||
readonly property real barEdgePad: cfg.frameVariant === "bar" ? (isTop ? cfg.frameBarPadTop : cfg.frameBarPadBottom) : 0
|
||||
readonly property real barRoundPad: cfg.frameVariant === "bar" ? Math.min(cfg.radius, cfg.barHeight / 2) : 0
|
||||
|
||||
color: "transparent"
|
||||
anchors {
|
||||
top: isTop
|
||||
@@ -19,15 +22,21 @@ PanelWindow {
|
||||
left: true
|
||||
right: true
|
||||
}
|
||||
implicitHeight: cfg.barHeight
|
||||
implicitHeight: cfg.barHeight + barEdgePad
|
||||
|
||||
WlrLayershell.layer: WlrLayer.Top
|
||||
WlrLayershell.namespace: "main-shell-bar"
|
||||
WlrLayershell.exclusiveZone: cfg.barHeight
|
||||
WlrLayershell.exclusiveZone: cfg.barHeight + barEdgePad
|
||||
|
||||
Item {
|
||||
id: animatedWrapper
|
||||
anchors.fill: parent
|
||||
anchors {
|
||||
fill: parent
|
||||
topMargin: isTop ? barEdgePad : 0
|
||||
bottomMargin: !isTop ? barEdgePad : 0
|
||||
leftMargin: 0
|
||||
rightMargin: 0
|
||||
}
|
||||
|
||||
opacity: 0
|
||||
scale: 0.95
|
||||
@@ -66,8 +75,8 @@ PanelWindow {
|
||||
Item {
|
||||
id: barContent
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: cfg.margin
|
||||
anchors.rightMargin: cfg.margin
|
||||
anchors.leftMargin: cfg.margin + barRoundPad
|
||||
anchors.rightMargin: cfg.margin + barRoundPad
|
||||
|
||||
function bindModule(item, side) {
|
||||
item.height = Qt.binding(() => barContent.height - 12)
|
||||
@@ -78,6 +87,7 @@ PanelWindow {
|
||||
"targetScreen": barWindow.modelData,
|
||||
"barHeight": cfg.barHeight,
|
||||
"barMargin": cfg.margin,
|
||||
"barEdgePad": barEdgePad,
|
||||
"barSide": side,
|
||||
"menuWindow": barWindow
|
||||
}
|
||||
|
||||
@@ -323,6 +323,7 @@ ModuleChip {
|
||||
text: root.coinSymbol + "/" + root.displayCurrency.toUpperCase() + ": "
|
||||
color: t.cryptoLabel
|
||||
font.pixelSize: 12
|
||||
font.bold: true
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
@@ -339,6 +340,8 @@ ModuleChip {
|
||||
text: root.change24h >= 0 ? "▲" : "▼"
|
||||
color: root.change24h >= 0 ? (t.cryptoUp) : (t.cryptoDown)
|
||||
font.pixelSize: 9
|
||||
font.bold: true
|
||||
renderType: Text.NativeRendering
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
Layout.leftMargin: 4
|
||||
@@ -495,6 +498,7 @@ ModuleChip {
|
||||
color: root.change24h >= 0 ? (t.cryptoUp) : (t.cryptoDown)
|
||||
font.pixelSize: 11
|
||||
font.bold: true
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -516,7 +520,7 @@ ModuleChip {
|
||||
property string value: ""
|
||||
Layout.fillWidth: true
|
||||
Text { text: label; color: t.cryptoPopupDim; font.pixelSize: 12; Layout.fillWidth: true }
|
||||
Text { text: value; color: t.cryptoPopupText; font.pixelSize: 12; font.bold: true; font.family: "monospace" }
|
||||
Text { text: value; color: t.cryptoPopupText; font.pixelSize: 12; font.bold: true; font.family: "monospace"; renderType: Text.NativeRendering }
|
||||
}
|
||||
|
||||
StatRow { label: "Rank"; value: root.rank > 0 ? "#" + root.rank : "—" }
|
||||
@@ -552,6 +556,7 @@ ModuleChip {
|
||||
text: "24h Range"
|
||||
color: t.cryptoPopupDim
|
||||
font.pixelSize: 12
|
||||
renderType: Text.NativeRendering
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
Text {
|
||||
@@ -559,6 +564,7 @@ ModuleChip {
|
||||
text: ((root.price - root.low24h) / (root.high24h - root.low24h) * 100).toFixed(1) + "% of range"
|
||||
color: t.cryptoPopupDim
|
||||
font.pixelSize: 11
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
|
||||
@@ -595,6 +601,7 @@ ModuleChip {
|
||||
color: t.cryptoDown
|
||||
font.pixelSize: 10
|
||||
font.family: "monospace"
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
Item { Layout.fillWidth: true }
|
||||
Text {
|
||||
@@ -602,6 +609,7 @@ ModuleChip {
|
||||
color: t.cryptoUp
|
||||
font.pixelSize: 10
|
||||
font.family: "monospace"
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -505,7 +505,7 @@ ModuleChip {
|
||||
mask: Region { item: toastCol }
|
||||
|
||||
readonly property bool shareEdge: (root.isTop && !atBottom) || (!root.isTop && atBottom)
|
||||
readonly property int edgeGap: shareEdge ? root.barMargin + root.barHeight + 10 : root.barMargin + 10
|
||||
readonly property int edgeGap: shareEdge ? root.barMargin + root.barHeight + root.barEdgePad + 10 : root.barMargin + 10
|
||||
readonly property int toastPad: root.barMargin + Cfg.Config.frameBorderWidth + Cfg.Config.notifToastEdgePad
|
||||
|
||||
Column {
|
||||
@@ -577,9 +577,9 @@ ModuleChip {
|
||||
|
||||
anchors.top: root.isTop ? parent.top : undefined
|
||||
anchors.bottom: root.isTop ? undefined : parent.bottom
|
||||
anchors.topMargin: root.isTop ? (root.barHeight + 10) : 0
|
||||
anchors.bottomMargin: root.isTop ? 0 : (root.barHeight + 10)
|
||||
height: parent.height - root.barHeight - 10
|
||||
anchors.topMargin: root.isTop ? (root.barHeight + root.barEdgePad + 10) : 0
|
||||
anchors.bottomMargin: root.isTop ? 0 : (root.barHeight + root.barEdgePad + 10)
|
||||
height: parent.height - root.barHeight - root.barEdgePad - 10
|
||||
|
||||
clip: true
|
||||
|
||||
|
||||
@@ -367,9 +367,9 @@ ModuleChip {
|
||||
|
||||
anchors.top: root.isTop ? parent.top : undefined
|
||||
anchors.bottom: root.isTop ? undefined : parent.bottom
|
||||
anchors.topMargin: root.isTop ? (Cfg.Config.barHeight + 8) : 0
|
||||
anchors.bottomMargin: root.isTop ? 0 : (Cfg.Config.barHeight + 8)
|
||||
height: parent.height - Cfg.Config.barHeight - 8
|
||||
anchors.topMargin: root.isTop ? (Cfg.Config.barHeight + root.barEdgePad + 8) : 0
|
||||
anchors.bottomMargin: root.isTop ? 0 : (Cfg.Config.barHeight + root.barEdgePad + 8)
|
||||
height: parent.height - Cfg.Config.barHeight - root.barEdgePad - 8
|
||||
|
||||
PopupCard {
|
||||
id: menuCard
|
||||
|
||||
@@ -10,6 +10,7 @@ Rectangle {
|
||||
property var targetScreen: null
|
||||
property int barHeight: Cfg.Config.barHeight
|
||||
property int barMargin: Cfg.Config.margin
|
||||
property int barEdgePad: Cfg.Config.frameVariant === "bar" ? (Cfg.Config.barPosition === "top" ? Cfg.Config.frameBarPadTop : Cfg.Config.frameBarPadBottom) : 0
|
||||
readonly property var t: Cfg.Config.theme
|
||||
|
||||
property bool moduleEnabled: true
|
||||
|
||||
@@ -56,9 +56,9 @@ PanelWindow {
|
||||
|
||||
anchors.top: chipRoot && chipRoot.isTop ? parent.top : undefined
|
||||
anchors.bottom: chipRoot && chipRoot.isTop ? undefined : parent.bottom
|
||||
anchors.topMargin: chipRoot && chipRoot.isTop ? (chipRoot.barHeight + 10) : 0
|
||||
anchors.bottomMargin: chipRoot && chipRoot.isTop ? 0 : (chipRoot.barHeight + 10)
|
||||
height: chipRoot ? parent.height - chipRoot.barHeight - 10 : parent.height
|
||||
anchors.topMargin: chipRoot && chipRoot.isTop ? (chipRoot.barHeight + chipRoot.barEdgePad + 10) : 0
|
||||
anchors.bottomMargin: chipRoot && chipRoot.isTop ? 0 : (chipRoot.barHeight + chipRoot.barEdgePad + 10)
|
||||
height: chipRoot ? parent.height - chipRoot.barHeight - chipRoot.barEdgePad - 10 : parent.height
|
||||
|
||||
clip: true
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ import "themes"
|
||||
QtObject {
|
||||
id: root
|
||||
|
||||
readonly property var theme: Tranquil
|
||||
readonly property var theme: Snowy
|
||||
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
// Widgets
|
||||
@@ -21,12 +21,19 @@ QtObject {
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
// 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
|
||||
|
||||
// ── 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"]
|
||||
@@ -91,10 +98,7 @@ QtObject {
|
||||
property int volumeInputMax: 200
|
||||
|
||||
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
// FRAME
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
property int frameBorderWidth: 3
|
||||
|
||||
|
||||
// ────────────────────────────────────────────────────────────────────────
|
||||
// NOTIFICATIONS
|
||||
|
||||
@@ -17,5 +17,7 @@ singleton Autumn 1.0 autumn.qml
|
||||
singleton Pinkie 1.0 pinkie.qml
|
||||
singleton Lowlight 1.0 lowlight.qml
|
||||
singleton Tranquil 1.0 tranquil.qml
|
||||
singleton Snowy 1.0 snowy.qml
|
||||
|
||||
|
||||
|
||||
|
||||
367
config/themes/snowy.qml
Normal file
367
config/themes/snowy.qml
Normal file
@@ -0,0 +1,367 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
|
||||
QtObject {
|
||||
id: theme
|
||||
|
||||
// ── Wallpaper ──────────────────────────────────────────────────────────────
|
||||
readonly property string wallpaper: Quickshell.env("HOME") + "/.config/quickshell/wallpapers/snowy.jpg"
|
||||
|
||||
// ── Base Backgrounds ───────────────────────────────────────────────────────
|
||||
readonly property color bg: "#cc0f1120" // Deep mountain shadow night
|
||||
readonly property color bgPanel: "transparent"
|
||||
readonly property color bgPopup: "#cc0f1120" // Deep slate valley dark
|
||||
readonly property color bgFrame: bg
|
||||
|
||||
// ── Separators ────────────────────────────────────────────────────────────
|
||||
readonly property color separator: "#334a5270" // Cool blue-grey ridge line
|
||||
|
||||
// ── Text ──────────────────────────────────────────────────────────────────
|
||||
readonly property color textMain: "#ffe8eaf0" // Snow highlight white
|
||||
readonly property color textDim: "#996a7090" // Hazy blue-grey mist
|
||||
|
||||
// ── Accent & Borders ──────────────────────────────────────────────────────
|
||||
readonly property color accent: "#ffc4889e" // Alpenglow rose-mauve
|
||||
readonly property color border: "transparent"
|
||||
readonly property color frameBorder: "transparent"
|
||||
readonly property color borderPopup: "transparent"
|
||||
|
||||
// ── Logo Module ────────────────────────────────────────────────────────
|
||||
readonly property color logoBg: bgPanel
|
||||
readonly property color logoBgHover: "#22ffffff"
|
||||
readonly property color logoBorder: border
|
||||
readonly property color logoBorderActive: accent
|
||||
readonly property color logoIcon: textMain
|
||||
readonly property color logoIconActive: accent
|
||||
|
||||
// ── Mpris Module ──────────────────────────────────────────────────────────
|
||||
readonly property color mprisAccent: accent
|
||||
readonly property color mprisTextMain: textMain
|
||||
readonly property color mprisTextDim: textDim
|
||||
readonly property color mprisTrackColor: statsTrackColor
|
||||
readonly property color mprisButtonText: bgPopup
|
||||
readonly property color mprisAlbumBg: Qt.alpha(accent, 0.08)
|
||||
readonly property color mprisAlbumBorder: Qt.alpha(accent, 0.15)
|
||||
readonly property color mprisBtnBg: Qt.alpha(accent, 0.10)
|
||||
readonly property color mprisBtnBgHover: Qt.alpha(accent, 0.22)
|
||||
readonly property color mprisBtnBorder: Qt.alpha(accent, 0.20)
|
||||
readonly property color mprisBtnBorderHover: Qt.alpha(accent, 0.45)
|
||||
readonly property color mprisBtnIcon: accent
|
||||
readonly property color mprisBtnIconHover: Qt.lighter(accent, 1.3)
|
||||
|
||||
// ── Stats Module (Variation: Alpine Pulse) ────────────────────────────────
|
||||
readonly property color statsBg: bgPanel
|
||||
readonly property color statsBorder: border
|
||||
readonly property color statsCpuColor: "#ffc4845a" // Sunlit amber rock face
|
||||
readonly property color statsMemColor: "#ff8ab4d4" // Glacial sky blue
|
||||
readonly property color statsDiskColor: "#ff94c4b8" // Frozen teal snowmelt
|
||||
readonly property color statsTrackColor: "#15ffffff"
|
||||
readonly property color statsCpuTempColor: "#ffcb6080" // Deep alpenglow crimson
|
||||
readonly property color statsGpuColor: "#ffb09ad4" // Twilight lavender peak
|
||||
|
||||
// ── SysInfo Module ────────────────────────────────────────────────────────
|
||||
readonly property color sysInfoAccent: accent
|
||||
readonly property color sysInfoTextMain: textMain
|
||||
readonly property color sysInfoTextDim: textDim
|
||||
readonly property color sysInfoCpuColor: statsCpuColor
|
||||
readonly property color sysInfoMemColor: statsMemColor
|
||||
readonly property color sysInfoDiskColor: statsDiskColor
|
||||
readonly property color sysInfoCpuTempColor: statsCpuTempColor
|
||||
readonly property color sysInfoGpuColor: statsGpuColor
|
||||
readonly property color sysInfoTrackColor: statsTrackColor
|
||||
|
||||
// ── Volume Module (Variation: Frozen Dusk) ────────────────────────────────
|
||||
readonly property color volBg: bgPanel
|
||||
readonly property color volBgHover: "#224a5270"
|
||||
readonly property color volBorder: border
|
||||
readonly property color volBorderHover: "#ff73d0ff" // Luminous sky blue
|
||||
readonly property color volPopupBg: bgPopup
|
||||
readonly property color volPopupBorder: borderPopup
|
||||
readonly property color volIcon: "#ff73d0ff" // Luminous sky blue
|
||||
readonly property color volIconMuted: "#ff4a5270" // Deep slate mute
|
||||
readonly property color volTrack: "#22ffffff"
|
||||
readonly property color volHandle: accent
|
||||
readonly property color volHandleBorder: "#33ffffff"
|
||||
readonly property color volMuteBg: "#33cb6080"
|
||||
readonly property color volPickerHover: "#15c4889e"
|
||||
|
||||
// ── Volume Limit Buttons ────────────────────────────────────────────────
|
||||
readonly property color volLimitBtn: "transparent"
|
||||
readonly property color volLimitBtnHover: "#22c4889e"
|
||||
readonly property color volLimitBtnPress: accent
|
||||
readonly property color volOutputLimitBtnPress: accent
|
||||
readonly property color volInputLimitBtnPress: statusInfo
|
||||
readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08)
|
||||
readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08)
|
||||
|
||||
// ── Clock Module ───────────────────────────────────────────────────────────
|
||||
readonly property color clockBg: bgPanel
|
||||
readonly property color clockBgHover: "#11ffffff"
|
||||
readonly property color clockBorder: border
|
||||
readonly property color clockBorderHover: accent
|
||||
readonly property color clockTime: textMain
|
||||
readonly property color clockSeconds: "#ffc4889e" // Alpenglow rose
|
||||
readonly property color clockIcon: accent
|
||||
|
||||
// ── Battery Module ────────────────────────────────────────────────────────
|
||||
readonly property color batteryFull: accent
|
||||
readonly property color batteryCharging: accent
|
||||
readonly property color batteryCritical: statusErr
|
||||
readonly property color batteryLow: statusWarn
|
||||
readonly property color batteryIcon: clockIcon
|
||||
readonly property color batBg: bgPanel
|
||||
readonly property color batBgHover: "#11ffffff"
|
||||
readonly property color batBorder: border
|
||||
readonly property color batBorderHover: accent
|
||||
readonly property color batText: textMain
|
||||
readonly property color batPopupBg: bgPopup
|
||||
readonly property color batPopupBorder: borderPopup
|
||||
readonly property color batPopupSeparator: separator
|
||||
readonly property color batPopupHeader: "#ffc4889e" // Alpenglow rose
|
||||
readonly property color batPopupText: textMain
|
||||
readonly property color batPopupDim: textDim
|
||||
readonly property color batProgressTrack: separator
|
||||
readonly property color batProfileActiveText: bg
|
||||
|
||||
// ── Network Module ────────────────────────────────────────────────────────
|
||||
readonly property color netBg: bgPanel
|
||||
readonly property color netBgHover: "#11ffffff"
|
||||
readonly property color netBorder: border
|
||||
readonly property color netBorderHover: accent
|
||||
readonly property color netText: textMain
|
||||
readonly property color netPopupBg: bgPopup
|
||||
readonly property color netPopupBorder: borderPopup
|
||||
readonly property color netPopupSeparator: separator
|
||||
readonly property color netPopupHeader: "#ffc4889e" // Alpenglow rose
|
||||
readonly property color netPopupText: textMain
|
||||
readonly property color netPopupDim: textDim
|
||||
readonly property color netFieldBg: "#22ffffff"
|
||||
readonly property color netCancelBgHover: "#22ffffff"
|
||||
readonly property color netConnectText: "#ff0f1120"
|
||||
readonly property color netApActiveBg: Qt.alpha(accent, 0.15)
|
||||
readonly property color netApHoverBg: calArrowBgHover
|
||||
readonly property color netDisconnectBg: Qt.alpha(statusErr, 0.18)
|
||||
readonly property color netDisconnectBorder: Qt.alpha(statusErr, 0.45)
|
||||
readonly property color netWiredOkBg: Qt.alpha(statusOk, 0.12)
|
||||
readonly property color netWiredErrBg: Qt.alpha(statusErr, 0.12)
|
||||
readonly property color netWiredOkBorder: Qt.alpha(statusOk, 0.4)
|
||||
readonly property color netWiredErrBorder: Qt.alpha(statusErr, 0.4)
|
||||
readonly property color netWifiIconOk: "#ff87d97c" // Vibrant meadow green
|
||||
readonly property color netWifiIconErr: "#ffcb6080" // Alpenglow crimson
|
||||
readonly property color netEthIconOk: "#ff87d97c" // Vibrant meadow green
|
||||
readonly property color netEthIconErr: "#ffcb6080"
|
||||
|
||||
// ── Calendar Popup ─────────────────────────────────────────────────────────
|
||||
readonly property color calCardBg: bgPopup
|
||||
readonly property color calCardBorder: borderPopup
|
||||
readonly property color calSeparator: separator
|
||||
readonly property color calTodayBg: accent
|
||||
readonly property color borderToday: accent
|
||||
readonly property color todayText: "#ffffffff"
|
||||
readonly property color clockPopupHeader: "#ffc4889e" // Alpenglow rose
|
||||
readonly property color clockPopupText: textMain
|
||||
readonly property color clockPopupDim: textDim
|
||||
readonly property color clockPopupDate: textMain
|
||||
readonly property color clockPopupUtc: textDim
|
||||
readonly property color calArrowIcon: textDim
|
||||
readonly property color calArrowIconHover: "#ffc4889e" // Alpenglow rose on hover
|
||||
readonly property color calArrowBg: "transparent"
|
||||
readonly property color calArrowBgHover: "#22c4889e" // Soft rose tint
|
||||
readonly property color calArrowBgPress: "#ffc4889e" // Full alpenglow
|
||||
|
||||
// ── Weather Module ──────────────────────────────────────────────────────
|
||||
readonly property color weatherAccent: accent
|
||||
readonly property color weatherTextMain: textMain
|
||||
readonly property color weatherTextDim: textDim
|
||||
readonly property color weatherTempColor: "#ffcb6080" // Alpenglow crimson
|
||||
readonly property color weatherFeelsColor: "#ffb09ad4" // Twilight lavender
|
||||
readonly property color weatherHumidColor: "#ff8ab4d4" // Glacial sky blue
|
||||
readonly property color weatherWindColor: "#ff94c4b8" // Frozen teal
|
||||
|
||||
// ── Workspace Module ───────────────────────────────────────────────────────
|
||||
readonly property color wsPanelBg: bgPanel
|
||||
readonly property color wsPanelBorder: "transparent"
|
||||
readonly property color wsActiveBg: accent
|
||||
readonly property color wsInactiveBg: "#15ffffff"
|
||||
readonly property color wsHoverBg: "#334a5270"
|
||||
readonly property color wsActiveText: "#ff0f1120"
|
||||
readonly property color wsInactiveText: textMain
|
||||
readonly property color wsHoverText: "#ffffffff"
|
||||
readonly property color wsMagicActiveBg: "#ff8ab4d4" // Glacial blue magic
|
||||
readonly property color wsMagicActiveText: wsActiveText
|
||||
|
||||
// ── Tray Module ────────────────────────────────────────────────────────────
|
||||
readonly property color trayBg: bgPanel
|
||||
readonly property color trayBgHover: "#11ffffff"
|
||||
readonly property color trayBorder: border
|
||||
readonly property color trayBorderHover: "#22ffffff"
|
||||
readonly property color trayIcon: textMain
|
||||
|
||||
// ── Tray Context Menu ──────────────────────────────────────────────────────
|
||||
readonly property color trayMenuBg: bgPopup
|
||||
readonly property color trayMenuBorder: borderPopup
|
||||
readonly property color trayMenuText: textMain
|
||||
readonly property color trayMenuDim: textDim
|
||||
readonly property color trayMenuHover: "#22c4889e" // Soft alpenglow rose tint
|
||||
readonly property color trayMenuCheck: accent
|
||||
readonly property color trayMenuSeparator: separator
|
||||
|
||||
// ── Launcher (Variation: Summit Mist) ─────────────────────────────────────
|
||||
readonly property color launcherBg: bgPopup
|
||||
readonly property color launcherBorder: borderPopup
|
||||
readonly property color launcherInput: "#44080a12"
|
||||
readonly property color launcherInputBorderFocus: accent
|
||||
readonly property color launcherPill: "#444a5270"
|
||||
readonly property color launcherText: textMain
|
||||
readonly property color launcherDim: textDim
|
||||
readonly property color launcherAccent: accent
|
||||
readonly property color launcherHover: "#22c4889e"
|
||||
readonly property color launcherSelected: "#44c4889e"
|
||||
readonly property color launcherModeActiveText: "#ffffffff"
|
||||
readonly property color launcherModeActiveBg: accent
|
||||
|
||||
// ── Status Colors ──────────────────────────────────────────────────────────
|
||||
readonly property color statusOk: "#ff87d97c" // Vibrant meadow green
|
||||
readonly property color statusWarn: "#ffc4845a" // Sunlit amber rock
|
||||
readonly property color statusErr: "#ffcb6080" // Alpenglow crimson
|
||||
readonly property color statusInfo: "#ff73d0ff" // Luminous sky blue
|
||||
|
||||
// ── Notifications Module ───────────────────────────────────────────────────
|
||||
readonly property color notifBg: bgPanel
|
||||
readonly property color notifBgHover: "#11ffffff"
|
||||
readonly property color notifBorder: border
|
||||
readonly property color notifBorderActive: accent
|
||||
readonly property color notifIcon: textMain
|
||||
readonly property color notifIconActive: accent
|
||||
readonly property color notifBadgeBg: statusErr
|
||||
readonly property color notifBadgeText: "#ffffffff"
|
||||
readonly property color notifSeparator: separator
|
||||
readonly property color notifDnd: separator
|
||||
|
||||
// ── Toast cards (Variation: Alpenglow) ────────────────────────────────────
|
||||
readonly property color notifToastBg: bgPopup
|
||||
readonly property color notifToastBgHover: "#22ffffff"
|
||||
readonly property color notifToastBorder: borderPopup
|
||||
readonly property color notifToastText: textMain
|
||||
readonly property color notifToastDim: textDim
|
||||
readonly property color notifToastAppName: accent
|
||||
|
||||
// ── Urgency colours ────────────────────────────────────────────────────────
|
||||
readonly property color notifUrgencyCritical: statusErr
|
||||
readonly property color notifUrgencyNormal: accent
|
||||
readonly property color notifUrgencyLow: textDim
|
||||
|
||||
// ── Progress bar ───────────────────────────────────────────────────────────
|
||||
readonly property color notifProgressBg: "#22ffffff"
|
||||
readonly property color notifProgressFill: accent
|
||||
|
||||
// ── History popup ──────────────────────────────────────────────────────────
|
||||
readonly property color notifHistoryBg: bgPopup
|
||||
readonly property color notifHistoryBorder: borderPopup
|
||||
readonly property color notifHistoryHover: "#11c4889e"
|
||||
readonly property color notifHistoryEmpty: textDim
|
||||
|
||||
// ── BgDate Module ──────────────────────────────────────────────────────────
|
||||
readonly property color bgDateText: "#ffffffff" // Pure snow white
|
||||
readonly property color bgDateShadow: "#88000000" // Deep mountain shadow
|
||||
readonly property color bgDateSecondsText: bgDateText
|
||||
|
||||
// ── Crypto Module ──────────────────────────────────────────────────────────
|
||||
readonly property color cryptoBg: bgPanel
|
||||
readonly property color cryptoBgHover: "#15ffffff"
|
||||
readonly property color cryptoBorder: border
|
||||
readonly property color cryptoBorderHover: accent
|
||||
|
||||
readonly property color cryptoIcon: accent
|
||||
readonly property color cryptoLabel: textDim
|
||||
readonly property color cryptoValue: textMain
|
||||
|
||||
readonly property color cryptoUp: "#ff87d97c" // ▲ vibrant meadow green
|
||||
readonly property color cryptoDown: "#ffcb6080" // ▼ alpenglow crimson
|
||||
|
||||
// Popup card
|
||||
readonly property color cryptoPopupBg: bgPopup
|
||||
readonly property color cryptoPopupBorder: borderPopup
|
||||
readonly property color cryptoPopupHeader: "#ffc4889e" // Alpenglow rose
|
||||
readonly property color cryptoPopupText: textMain
|
||||
readonly property color cryptoPopupDim: textDim
|
||||
|
||||
// Tinted surfaces
|
||||
readonly property color cryptoUpBg: Qt.rgba(cryptoUp.r, cryptoUp.g, cryptoUp.b, 0.13)
|
||||
readonly property color cryptoDownBg: Qt.rgba(cryptoDown.r, cryptoDown.g, cryptoDown.b, 0.13)
|
||||
readonly property color cryptoChipRemoveBg: Qt.rgba(cryptoDown.r, cryptoDown.g, cryptoDown.b, 0.27)
|
||||
readonly property color cryptoApplyIdleBg: Qt.rgba(accent.r, accent.g, accent.b, 0.20)
|
||||
|
||||
readonly property color cryptoFieldBg: "#15ffffff"
|
||||
readonly property color cryptoFieldBgFocus: "#22ffffff"
|
||||
readonly property color cryptoRangeTrack: "#1affffff"
|
||||
readonly property color cryptoTextOnAccent: "#ff0f1120"
|
||||
readonly property color cryptoPlaceholder: Qt.rgba(textDim.r, textDim.g, textDim.b, 0.33)
|
||||
|
||||
// ── Polkit Dialog ──────────────────────────────────────────────────────────
|
||||
// Overlay
|
||||
readonly property color polkitOverlayBg: "#bb000000" // dim backdrop
|
||||
|
||||
// Card chrome
|
||||
readonly property color polkitCardBg: bgPopup
|
||||
readonly property color polkitCardBorder: border
|
||||
|
||||
// Lock icon
|
||||
readonly property color polkitIconBg: "#1ec4889e" // translucent rose fill
|
||||
readonly property color polkitIconBorder: "#44c4889e" // rose ring
|
||||
readonly property color polkitIconColor: accent // glyph — alpenglow rose
|
||||
|
||||
// Text hierarchy
|
||||
readonly property color polkitTitle: textMain
|
||||
readonly property color polkitMessage: "#cce8eaf0" // slightly dimmed snow white
|
||||
|
||||
// Action-ID pill
|
||||
readonly property color polkitPillBg: "#1a4a5270" // muted slate tint
|
||||
readonly property color polkitPillText: "#666a7090" // dim blue-grey label
|
||||
|
||||
// Divider
|
||||
readonly property color polkitDivider: "#334a5270"
|
||||
|
||||
// Supplementary message — error state
|
||||
readonly property color polkitSuppErrBg: "#1acb6080" // translucent crimson fill
|
||||
readonly property color polkitSuppErrBorder: "#44cb6080" // crimson ring
|
||||
readonly property color polkitSuppErrText: statusErr
|
||||
|
||||
// Supplementary message — info / ok state
|
||||
readonly property color polkitSuppOkBg: "#1aa8c4a0" // translucent pine fill
|
||||
readonly property color polkitSuppOkBorder: "#44a8c4a0" // pine ring
|
||||
readonly property color polkitSuppOkText: statusOk
|
||||
|
||||
// Fields
|
||||
readonly property color polkitFieldBg: "#44080a12" // deep dark fill
|
||||
readonly property color polkitFieldBorder: "#22ffffff" // inactive border
|
||||
readonly property color polkitFieldBorderFocus: accent // focused border — alpenglow rose
|
||||
|
||||
// Identity selector
|
||||
readonly property color polkitUserLabel: "#996a7090" // "User:" prefix
|
||||
readonly property color polkitUserValue: accent
|
||||
|
||||
// Input prompt
|
||||
readonly property color polkitInputPrompt: "#886a7090"
|
||||
|
||||
// TextInput
|
||||
readonly property color polkitInputText: textMain
|
||||
readonly property color polkitInputSelection: "#55c4889e" // rose selection highlight
|
||||
readonly property color polkitInputSelectedText: bg
|
||||
|
||||
// Eye toggle
|
||||
readonly property color polkitEyeIcon: "#666a7090"
|
||||
readonly property color polkitEyeIconHover: accent
|
||||
|
||||
// Authenticate button
|
||||
readonly property color polkitAuthBg: "#ddc4889e" // slightly-muted rose fill
|
||||
readonly property color polkitAuthBgHover: accent // full alpenglow on hover
|
||||
readonly property color polkitAuthText: bg
|
||||
|
||||
// Cancel button
|
||||
readonly property color polkitCancelBg: "#0dffffff"
|
||||
readonly property color polkitCancelBgHover: "#22ffffff"
|
||||
readonly property color polkitCancelBorder: "#22ffffff"
|
||||
readonly property color polkitCancelText: "#cce8eaf0"
|
||||
}
|
||||
@@ -13,7 +13,8 @@ PanelWindow {
|
||||
id: root
|
||||
|
||||
property bool isTop: true
|
||||
property int barHeight: Cfg.Config.barHeight
|
||||
readonly property int barEdgePad: Cfg.Config.frameVariant === "bar" ? (isTop ? Cfg.Config.frameBarPadTop : Cfg.Config.frameBarPadBottom) : 0
|
||||
property int barHeight: Cfg.Config.barHeight + barEdgePad
|
||||
property int barMargin: Cfg.Config.margin
|
||||
|
||||
readonly property var t: Cfg.Config.theme
|
||||
@@ -32,14 +33,28 @@ PanelWindow {
|
||||
property var allItems: []
|
||||
property bool loading: false
|
||||
property int lastCacheUpdate: 0
|
||||
property var favoriteIds: []
|
||||
readonly property string favoritesPath: Quickshell.env("HOME") + "/.config/quickshell/launcher/favorites.txt"
|
||||
|
||||
|
||||
readonly property int defaultIndex: Cfg.Config.launcherSelectFirst ? 0 : -1
|
||||
|
||||
readonly property var filteredItems: {
|
||||
const q = searchInput.text.toLowerCase()
|
||||
if (!q) return allItems.slice(0, 80)
|
||||
return allItems.filter(i => i.name.toLowerCase().includes(q))
|
||||
let filtered
|
||||
if (!q) {
|
||||
filtered = allItems.slice(0, 80)
|
||||
} else {
|
||||
filtered = allItems.filter(i => i.name.toLowerCase().startsWith(q))
|
||||
}
|
||||
const favs = filtered.filter(i => root.favoriteIds.includes(i.id))
|
||||
const rest = filtered.filter(i => !root.favoriteIds.includes(i.id))
|
||||
const result = []
|
||||
if (favs.length > 0)
|
||||
result.push(...favs.map(i => Object.assign({}, i, { section: "Favorites" })))
|
||||
if (rest.length > 0)
|
||||
result.push(...rest.map(i => Object.assign({}, i, { section: "All Applications" })))
|
||||
return result
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
@@ -59,6 +74,7 @@ PanelWindow {
|
||||
searchInput.text = ""
|
||||
resultsList.currentIndex = root.defaultIndex
|
||||
loadItems()
|
||||
loadFavorites()
|
||||
Qt.callLater(() => searchInput.forceActiveFocus())
|
||||
}
|
||||
|
||||
@@ -131,6 +147,34 @@ PanelWindow {
|
||||
return args
|
||||
}
|
||||
|
||||
function loadFavorites() {
|
||||
favoritesReadProc.command = ["sh", "-c", "cat " + shellQuote(favoritesPath) + " 2>/dev/null || true"]
|
||||
favoritesReadProc.running = true
|
||||
}
|
||||
|
||||
function saveFavorites() {
|
||||
if (favoriteIds.length === 0) {
|
||||
favoritesWriteProc.command = ["sh", "-c", ": > " + shellQuote(favoritesPath)]
|
||||
} else {
|
||||
const quoted = favoriteIds.map(id => shellQuote(id)).join(" ")
|
||||
favoritesWriteProc.command = ["sh", "-c",
|
||||
"printf '%s\\n' " + quoted + " > " + shellQuote(favoritesPath)]
|
||||
}
|
||||
favoritesWriteProc.running = true
|
||||
}
|
||||
|
||||
function toggleFavorite(itemId) {
|
||||
const arr = favoriteIds.slice()
|
||||
const idx = arr.indexOf(itemId)
|
||||
if (idx >= 0) {
|
||||
arr.splice(idx, 1)
|
||||
} else {
|
||||
arr.push(itemId)
|
||||
}
|
||||
favoriteIds = arr
|
||||
saveFavorites()
|
||||
}
|
||||
|
||||
function launch(item) {
|
||||
if (!item || !item.exec) return
|
||||
|
||||
@@ -193,6 +237,22 @@ PanelWindow {
|
||||
|
||||
Process { id: launchProc }
|
||||
|
||||
Process {
|
||||
id: favoritesReadProc
|
||||
property string rawData: ""
|
||||
stdout: SplitParser { onRead: data => favoritesReadProc.rawData += data + "\n" }
|
||||
onRunningChanged: {
|
||||
if (!running) {
|
||||
if (rawData.trim()) {
|
||||
root.favoriteIds = rawData.trim().split("\n").filter(l => l.length > 0)
|
||||
}
|
||||
rawData = ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Process { id: favoritesWriteProc }
|
||||
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
@@ -311,6 +371,21 @@ PanelWindow {
|
||||
currentIndex: root.defaultIndex
|
||||
spacing: 2
|
||||
|
||||
section.property: "section"
|
||||
section.criteria: ViewSection.FullString
|
||||
section.delegate: Rectangle {
|
||||
width: resultsList.width
|
||||
height: 28
|
||||
color: "transparent"
|
||||
Text {
|
||||
anchors { left: parent.left; leftMargin: 12; verticalCenter: parent.verticalCenter }
|
||||
text: section
|
||||
color: t.launcherDim
|
||||
font.pixelSize: 11
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
onModelChanged: currentIndex = root.defaultIndex
|
||||
ScrollBar.vertical: ScrollBar { policy: ScrollBar.AsNeeded }
|
||||
|
||||
@@ -365,6 +440,18 @@ PanelWindow {
|
||||
Layout.fillWidth: true
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
Item {
|
||||
width: 22; height: 22
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
|
||||
Text {
|
||||
anchors.centerIn: parent
|
||||
text: root.favoriteIds.includes(modelData.id) ? "★" : "☆"
|
||||
color: root.favoriteIds.includes(modelData.id) ? t.launcherAccent : t.launcherDim
|
||||
font.pixelSize: 14
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
@@ -372,7 +459,13 @@ PanelWindow {
|
||||
hoverEnabled: true
|
||||
onEntered: parent.hovered = true
|
||||
onExited: parent.hovered = false
|
||||
onClicked: root.launch(modelData)
|
||||
onClicked: mouse => {
|
||||
if (mouse.x >= width - 46) {
|
||||
root.toggleFavorite(modelData.id)
|
||||
} else {
|
||||
root.launch(modelData)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
36
shell.qml
36
shell.qml
@@ -39,7 +39,7 @@ ShellRoot {
|
||||
|
||||
// ── Spacing Gap: Top / Bottom ────────────────────────────────────────
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
model: Cfg.Config.frameVariant === "bar" ? [] : Quickshell.screens
|
||||
PanelWindow {
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
@@ -59,7 +59,7 @@ ShellRoot {
|
||||
|
||||
// ── Spacing Gap: Left ────────────────────────────────────────────────
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
model: Cfg.Config.frameVariant === "bar" ? [] : Quickshell.screens
|
||||
PanelWindow {
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
@@ -74,7 +74,7 @@ ShellRoot {
|
||||
|
||||
// ── Spacing Gap: Right ───────────────────────────────────────────────
|
||||
Variants {
|
||||
model: Quickshell.screens
|
||||
model: Cfg.Config.frameVariant === "bar" ? [] : Quickshell.screens
|
||||
PanelWindow {
|
||||
required property var modelData
|
||||
screen: modelData
|
||||
@@ -161,6 +161,36 @@ ShellRoot {
|
||||
var ctx = getContext("2d")
|
||||
ctx.clearRect(0, 0, width, height)
|
||||
|
||||
if (Cfg.Config.frameVariant === "bar") {
|
||||
var barW = width - Cfg.Config.margin * 2
|
||||
var barH = Cfg.Config.barHeight
|
||||
var barX = Cfg.Config.margin
|
||||
var barY = root.isTop ? Cfg.Config.frameBarPadTop : height - Cfg.Config.frameBarPadBottom - barH
|
||||
var r = Math.min(Cfg.Config.radius, barH / 2)
|
||||
|
||||
ctx.fillStyle = root.frameBackground
|
||||
|
||||
ctx.beginPath()
|
||||
ctx.moveTo(barX + r, barY)
|
||||
ctx.lineTo(barX + barW - r, barY)
|
||||
ctx.arcTo(barX + barW, barY, barX + barW, barY + r, r)
|
||||
ctx.lineTo(barX + barW, barY + barH - r)
|
||||
ctx.arcTo(barX + barW, barY + barH, barX + barW - r, barY + barH, r)
|
||||
ctx.lineTo(barX + r, barY + barH)
|
||||
ctx.arcTo(barX, barY + barH, barX, barY + barH - r, r)
|
||||
ctx.lineTo(barX, barY + r)
|
||||
ctx.arcTo(barX, barY, barX + r, barY, r)
|
||||
ctx.closePath()
|
||||
ctx.fill()
|
||||
|
||||
if (Cfg.Config.frameBorderWidth > 0) {
|
||||
ctx.lineWidth = Cfg.Config.frameBorderWidth
|
||||
ctx.strokeStyle = root.frameBorderColor
|
||||
ctx.stroke()
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
var mT = root.isTop ? Cfg.Config.barHeight : Cfg.Config.margin
|
||||
var mB = root.isTop ? Cfg.Config.margin : Cfg.Config.barHeight
|
||||
var r = Cfg.Config.radius
|
||||
|
||||
BIN
wallpapers/snowy.jpg
Normal file
BIN
wallpapers/snowy.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.3 MiB |
@@ -29,8 +29,9 @@ PanelWindow {
|
||||
|
||||
readonly property var t: Cfg.Config.theme
|
||||
readonly property bool isTop: Cfg.Config.barPosition === "top"
|
||||
readonly property int frameTop: isTop ? Cfg.Config.barHeight : Cfg.Config.margin
|
||||
readonly property int frameBot: isTop ? Cfg.Config.margin : Cfg.Config.barHeight
|
||||
readonly property int barEdgePad: Cfg.Config.frameVariant === "bar" ? (isTop ? Cfg.Config.frameBarPadTop : Cfg.Config.frameBarPadBottom) : 0
|
||||
readonly property int frameTop: isTop ? Cfg.Config.barHeight + barEdgePad : Cfg.Config.margin
|
||||
readonly property int frameBot: isTop ? Cfg.Config.margin : Cfg.Config.barHeight + barEdgePad
|
||||
readonly property int inset: Cfg.Config.margin + Cfg.Config.frameBorderWidth + 8
|
||||
readonly property int sbWidth: 260
|
||||
readonly property bool isLeft: Cfg.Config.sideBarPosition === "left"
|
||||
|
||||
@@ -47,6 +47,7 @@ Rectangle {
|
||||
: root.t.mprisTextDim
|
||||
)
|
||||
font.pixelSize: primary ? 22 : 18
|
||||
font.weight: Font.Bold
|
||||
Behavior on color { ColorAnimation { duration: 150 } }
|
||||
}
|
||||
|
||||
|
||||
@@ -132,6 +132,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.mprisAccent
|
||||
font.pixelSize: 18
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +145,7 @@ Item {
|
||||
text: root.activePlayer ? root.formatIdentity(root.activePlayer.identity) : "No media"
|
||||
color: root.t.mprisTextMain
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.DemiBold
|
||||
font.weight: Font.Bold
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
@@ -152,6 +153,7 @@ Item {
|
||||
text: root.playbackStatusText()
|
||||
color: root.t.mprisTextDim
|
||||
font.pixelSize: 10
|
||||
font.weight: Font.Bold
|
||||
opacity: 0.75
|
||||
}
|
||||
}
|
||||
@@ -204,6 +206,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.mprisAccent
|
||||
font.pixelSize: 28
|
||||
font.weight: Font.Bold
|
||||
visible: root.activePlayer && (root.activePlayer.trackArtUrl === "" || !albumArt.visible)
|
||||
}
|
||||
}
|
||||
@@ -217,7 +220,7 @@ Item {
|
||||
text: root.activePlayer ? (root.activePlayer.trackTitle || "Unknown Title") : ""
|
||||
color: root.t.mprisTextMain
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
elide: Text.ElideRight
|
||||
maximumLineCount: 2
|
||||
wrapMode: Text.WordWrap
|
||||
@@ -228,6 +231,7 @@ Item {
|
||||
text: root.activePlayer ? (root.activePlayer.trackArtist || "Unknown Artist") : ""
|
||||
color: root.t.mprisTextDim
|
||||
font.pixelSize: 11
|
||||
font.weight: Font.Bold
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
@@ -236,6 +240,7 @@ Item {
|
||||
text: root.activePlayer ? (root.activePlayer.trackAlbum || "") : ""
|
||||
color: root.t.mprisTextDim
|
||||
font.pixelSize: 10
|
||||
font.weight: Font.Bold
|
||||
opacity: 0.7
|
||||
elide: Text.ElideRight
|
||||
visible: root.activePlayer && root.activePlayer.trackAlbum !== ""
|
||||
@@ -277,6 +282,7 @@ Item {
|
||||
text: root.activePlayer ? root.formatDuration(root.activePlayer.position) : "0:00"
|
||||
color: root.t.mprisTextDim
|
||||
font.pixelSize: 9
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
}
|
||||
|
||||
@@ -286,6 +292,7 @@ Item {
|
||||
text: root.activePlayer ? root.formatDuration(root.activePlayer.length) : "0:00"
|
||||
color: root.t.mprisTextDim
|
||||
font.pixelSize: 9
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
}
|
||||
@@ -302,6 +309,7 @@ Item {
|
||||
text: root.volumeIcon()
|
||||
color: root.activePlayer && root.activePlayer.volume > 0 ? root.t.mprisAccent : root.t.mprisTextDim
|
||||
font.pixelSize: 16
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
|
||||
|
||||
@@ -243,6 +243,7 @@ ColumnLayout {
|
||||
text: ""
|
||||
color: root.t.sysInfoAccent
|
||||
font.pixelSize: 20
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -255,7 +256,7 @@ ColumnLayout {
|
||||
text: root.osName
|
||||
color: root.t.sysInfoTextMain
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.DemiBold
|
||||
font.weight: Font.Bold
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
@@ -263,6 +264,7 @@ ColumnLayout {
|
||||
text: root.kernelVer
|
||||
color: root.t.sysInfoTextDim
|
||||
font.pixelSize: 10
|
||||
font.weight: Font.Bold
|
||||
opacity: 0.75
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
@@ -421,6 +423,7 @@ ColumnLayout {
|
||||
text: ""
|
||||
color: root.t.sysInfoAccent
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -428,6 +431,7 @@ ColumnLayout {
|
||||
text: "Uptime"
|
||||
color: root.t.sysInfoTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -436,7 +440,7 @@ ColumnLayout {
|
||||
text: root.uptimeStr
|
||||
color: root.t.sysInfoTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -458,6 +462,7 @@ ColumnLayout {
|
||||
text: ""
|
||||
color: root.t.sysInfoAccent
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -465,6 +470,7 @@ ColumnLayout {
|
||||
text: "Kernel"
|
||||
color: root.t.sysInfoTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -473,7 +479,7 @@ ColumnLayout {
|
||||
text: root.kernelVer
|
||||
color: root.t.sysInfoTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -515,6 +521,7 @@ ColumnLayout {
|
||||
: ""
|
||||
color: parent.battIconColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,6 +529,7 @@ ColumnLayout {
|
||||
text: "Battery"
|
||||
color: root.t.sysInfoTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -530,6 +538,7 @@ ColumnLayout {
|
||||
text: Math.round(root.battPct) + "%"
|
||||
color: root.t.sysInfoTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -575,6 +584,7 @@ ColumnLayout {
|
||||
text: root.netOnline ? "" : ""
|
||||
color: root.netOnline ? root.t.statusOk : root.t.sysInfoTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -582,6 +592,7 @@ ColumnLayout {
|
||||
text: "Network"
|
||||
color: root.t.sysInfoTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -590,7 +601,7 @@ ColumnLayout {
|
||||
text: root.netOnline ? "Connected" : "Offline"
|
||||
color: root.netOnline ? root.t.statusOk : root.t.statusErr
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,7 @@ Item {
|
||||
text: root.icon
|
||||
color: root.iconColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,6 +50,7 @@ Item {
|
||||
text: root.label
|
||||
color: root.dimColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -57,7 +59,7 @@ Item {
|
||||
text: root.value
|
||||
color: root.textColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,6 +88,7 @@ Item {
|
||||
text: root.icon
|
||||
color: root.t.weatherAccent
|
||||
font.pixelSize: 18
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +101,7 @@ Item {
|
||||
text: root.condition
|
||||
color: root.t.weatherTextMain
|
||||
font.pixelSize: 13
|
||||
font.weight: Font.DemiBold
|
||||
font.weight: Font.Bold
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
@@ -108,6 +109,7 @@ Item {
|
||||
text: root.location
|
||||
color: root.t.weatherTextDim
|
||||
font.pixelSize: 10
|
||||
font.weight: Font.Bold
|
||||
opacity: 0.75
|
||||
elide: Text.ElideRight
|
||||
Layout.fillWidth: true
|
||||
@@ -130,6 +132,7 @@ Item {
|
||||
text: ""
|
||||
color: refreshMouse.containsMouse ? root.t.weatherAccent : root.t.weatherTextDim
|
||||
font.pixelSize: 14
|
||||
font.weight: Font.Bold
|
||||
Behavior on color { ColorAnimation { duration: 150 } }
|
||||
|
||||
RotationAnimator {
|
||||
@@ -183,6 +186,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.weatherTempColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,6 +194,7 @@ Item {
|
||||
text: "Temperature"
|
||||
color: root.t.weatherTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -198,7 +203,7 @@ Item {
|
||||
text: root.temp
|
||||
color: root.t.weatherTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -220,6 +225,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.weatherFeelsColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,6 +233,7 @@ Item {
|
||||
text: "Feels like"
|
||||
color: root.t.weatherTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -235,7 +242,7 @@ Item {
|
||||
text: root.feelsLike
|
||||
color: root.t.weatherTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -257,6 +264,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.weatherHumidColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,6 +272,7 @@ Item {
|
||||
text: "Humidity"
|
||||
color: root.t.weatherTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -272,7 +281,7 @@ Item {
|
||||
text: root.humidity
|
||||
color: root.t.weatherTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
@@ -294,6 +303,7 @@ Item {
|
||||
text: ""
|
||||
color: root.t.weatherWindColor
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
}
|
||||
}
|
||||
|
||||
@@ -301,6 +311,7 @@ Item {
|
||||
text: "Wind"
|
||||
color: root.t.weatherTextDim
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Bold
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
@@ -309,7 +320,7 @@ Item {
|
||||
text: root.wind
|
||||
color: root.t.weatherTextMain
|
||||
font.pixelSize: 12
|
||||
font.weight: Font.Medium
|
||||
font.weight: Font.Bold
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user