Add color tokens for app-launcher
This commit is contained in:
@@ -88,6 +88,21 @@ text = "{{ foreground }}"
|
|||||||
border = "{{ accent }}"
|
border = "{{ accent }}"
|
||||||
countdown = "{{ accent }}"
|
countdown = "{{ accent }}"
|
||||||
|
|
||||||
|
[app-launcher]
|
||||||
|
# Same six tokens as [menu], applied to the app launcher overlay. Alpha
|
||||||
|
# companions go from 0 (invisible) to 1 (opaque). Defaults mirror [menu]:
|
||||||
|
# subtle foreground-tinted fill on the selected row, no visible border,
|
||||||
|
# accent-colored text.
|
||||||
|
background = "{{ background }}"
|
||||||
|
text = "{{ foreground }}"
|
||||||
|
border = "{{ foreground }}"
|
||||||
|
border-alpha = 1.0
|
||||||
|
selected-background = "{{ foreground }}"
|
||||||
|
selected-background-alpha = 0.08
|
||||||
|
selected-text = "{{ accent }}"
|
||||||
|
selected-border = "{{ foreground }}"
|
||||||
|
selected-border-alpha = 0.25
|
||||||
|
|
||||||
[menu]
|
[menu]
|
||||||
# Cards, rows, and selected-row treatment. Alpha companions (where present)
|
# Cards, rows, and selected-row treatment. Alpha companions (where present)
|
||||||
# go from 0 (invisible) to 1 (opaque). Defaults mirror the panel keyboard
|
# go from 0 (invisible) to 1 (opaque). Defaults mirror the panel keyboard
|
||||||
|
|||||||
+13
-2
@@ -6,8 +6,8 @@ import Quickshell.Io
|
|||||||
// Single source of truth for shell color surfaces. Top-level tokens
|
// Single source of truth for shell color surfaces. Top-level tokens
|
||||||
// (foreground/background/accent/urgent) come from the theme's colors.toml.
|
// (foreground/background/accent/urgent) come from the theme's colors.toml.
|
||||||
// Per-surface roles (Color.bar.*, Color.popups.*, Color.tooltip.*,
|
// Per-surface roles (Color.bar.*, Color.popups.*, Color.tooltip.*,
|
||||||
// Color.notifications.*, Color.menu.*, Color.imagePicker.*) come from
|
// Color.notifications.*, Color.menu.*, Color.appLauncher.*,
|
||||||
// shell.toml, which is generated
|
// Color.imagePicker.*) come from shell.toml, which is generated
|
||||||
// per theme from default/themed/shell.toml.tpl (or shipped directly by a
|
// per theme from default/themed/shell.toml.tpl (or shipped directly by a
|
||||||
// theme to override). Surfaces that don't appear in shell.toml fall back to
|
// theme to override). Surfaces that don't appear in shell.toml fall back to
|
||||||
// the foundational palette, so themes can ship partial overrides.
|
// the foundational palette, so themes can ship partial overrides.
|
||||||
@@ -60,6 +60,17 @@ QtObject {
|
|||||||
property color border: root.pick("notifications.border", root.accent)
|
property color border: root.pick("notifications.border", root.accent)
|
||||||
property color countdown: root.pick("notifications.countdown", root.accent)
|
property color countdown: root.pick("notifications.countdown", root.accent)
|
||||||
}
|
}
|
||||||
|
readonly property QtObject appLauncher: QtObject {
|
||||||
|
property color background: root.pick("app-launcher.background", root.background)
|
||||||
|
property color text: root.pick("app-launcher.text", root.foreground)
|
||||||
|
property color border: root.pick("app-launcher.border", root.foreground)
|
||||||
|
property real borderAlpha: root.pickAlpha("app-launcher.border-alpha", 1.0)
|
||||||
|
property color selectedBackground: root.pick("app-launcher.selected-background", root.foreground)
|
||||||
|
property real selectedBackgroundAlpha: root.pickAlpha("app-launcher.selected-background-alpha", 0.08)
|
||||||
|
property color selectedText: root.pick("app-launcher.selected-text", root.accent)
|
||||||
|
property color selectedBorder: root.pick("app-launcher.selected-border", root.foreground)
|
||||||
|
property real selectedBorderAlpha: root.pickAlpha("app-launcher.selected-border-alpha", 0.0)
|
||||||
|
}
|
||||||
readonly property QtObject menu: QtObject {
|
readonly property QtObject menu: QtObject {
|
||||||
property color background: root.pick("menu.background", root.background)
|
property color background: root.pick("menu.background", root.background)
|
||||||
property color text: root.pick("menu.text", root.foreground)
|
property color text: root.pick("menu.text", root.foreground)
|
||||||
|
|||||||
@@ -19,10 +19,14 @@ Item {
|
|||||||
property bool hoverArmed: false
|
property bool hoverArmed: false
|
||||||
property var filteredEntries: []
|
property var filteredEntries: []
|
||||||
|
|
||||||
property color accent: Color.menu.selected
|
// Bound to the central [app-launcher] section in shell.toml via Color.qml.
|
||||||
property color background: Color.menu.background
|
// Each surface color composes with its alpha companion at render time.
|
||||||
property color foreground: Color.menu.text
|
property color background: Color.appLauncher.background
|
||||||
property color border: foreground
|
property color foreground: Color.appLauncher.text
|
||||||
|
property color border: Color.alpha(Color.appLauncher.border, Color.appLauncher.borderAlpha)
|
||||||
|
property color selectedBackground: Color.alpha(Color.appLauncher.selectedBackground, Color.appLauncher.selectedBackgroundAlpha)
|
||||||
|
property color selectedText: Color.appLauncher.selectedText
|
||||||
|
property color selectedBorder: Color.alpha(Color.appLauncher.selectedBorder, Color.appLauncher.selectedBorderAlpha)
|
||||||
property string fontFamily: Quickshell.env("OMARCHY_MENU_FONT") || "monospace"
|
property string fontFamily: Quickshell.env("OMARCHY_MENU_FONT") || "monospace"
|
||||||
|
|
||||||
property int cardWidth: 644
|
property int cardWidth: 644
|
||||||
@@ -351,7 +355,9 @@ Item {
|
|||||||
width: ListView.view.width
|
width: ListView.view.width
|
||||||
height: root.rowHeight
|
height: root.rowHeight
|
||||||
radius: 0
|
radius: 0
|
||||||
color: row.hasCursor ? root.withAlpha(root.foreground, 0.07) : "transparent"
|
color: row.hasCursor ? root.selectedBackground : "transparent"
|
||||||
|
border.color: row.hasCursor ? root.selectedBorder : "transparent"
|
||||||
|
border.width: (row.hasCursor && Color.appLauncher.selectedBorderAlpha > 0) ? Math.max(1, Style.normalBorderWidth) : 0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: iconSlot
|
id: iconSlot
|
||||||
@@ -376,7 +382,7 @@ Item {
|
|||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
visible: appIcon.status === Image.Error
|
visible: appIcon.status === Image.Error
|
||||||
text: "?"
|
text: "?"
|
||||||
color: row.hasCursor ? root.accent : root.foreground
|
color: row.hasCursor ? root.selectedText : root.foreground
|
||||||
font.family: root.fontFamily
|
font.family: root.fontFamily
|
||||||
font.pixelSize: 18
|
font.pixelSize: 18
|
||||||
}
|
}
|
||||||
@@ -389,7 +395,7 @@ Item {
|
|||||||
anchors.rightMargin: 14
|
anchors.rightMargin: 14
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
text: row.name
|
text: row.name
|
||||||
color: row.hasCursor ? root.accent : root.foreground
|
color: row.hasCursor ? root.selectedText : root.foreground
|
||||||
font.family: root.fontFamily
|
font.family: root.fontFamily
|
||||||
font.pixelSize: 18
|
font.pixelSize: 18
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
|||||||
Reference in New Issue
Block a user