aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 18:19:36 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 18:19:36 +0200
commit299cd762de30b5ae162cf599e929b61752645077 (patch)
tree2cee2ace27e81fa354370598c8e50aded73e9000
parent562273597fa3831363d9ac4a30b7263b7bc69b3e (diff)
downloadquickshell-299cd762de30b5ae162cf599e929b61752645077.tar.gz
quickshell-299cd762de30b5ae162cf599e929b61752645077.zip
feat(desktop): pin glyphs to Inconsolata Nerd Font
Glyphs are Nerd Font private-use codepoints, and relying on per-codepoint fontconfig fallback from Noto Sans let the same codepoint resolve to a different glyph in a different Nerd Font. A Theme.iconFamily now names the render family once, and every glyph Text uses it, while fontFamily stays Noto Sans for words and labels. The ethernet glyph moves from \uf6ff to \uef44, the fa-ethernet codepoint present in Inconsolata.
-rw-r--r--desktop/Page.qml2
-rw-r--r--desktop/Tile.qml2
-rw-r--r--desktop/modules/network/NetworkPage.qml6
-rw-r--r--desktop/modules/network/NetworkRow.qml2
-rw-r--r--desktop/modules/sound/Osd.qml4
-rw-r--r--desktop/modules/sound/SoundPage.qml4
-rw-r--r--desktop/modules/sound/TransportButton.qml2
-rw-r--r--shared/Theme.qml6
8 files changed, 17 insertions, 11 deletions
diff --git a/desktop/Page.qml b/desktop/Page.qml
index 0c29806..1bf312c 100644
--- a/desktop/Page.qml
+++ b/desktop/Page.qml
@@ -33,7 +33,7 @@ Item {
Text {
anchors.centerIn: parent
text: ""
- font { family: Theme.fontFamily; pixelSize: 14 }
+ font { family: Theme.iconFamily; pixelSize: 14 }
color: Theme.text
}
diff --git a/desktop/Tile.qml b/desktop/Tile.qml
index 0451c39..d78edb5 100644
--- a/desktop/Tile.qml
+++ b/desktop/Tile.qml
@@ -40,7 +40,7 @@ Rectangle {
Text {
text: tile.icon
- font { family: Theme.fontFamily; pixelSize: 22 }
+ font { family: Theme.iconFamily; pixelSize: 22 }
color: tile.active ? Theme.accent : Theme.text
}
diff --git a/desktop/modules/network/NetworkPage.qml b/desktop/modules/network/NetworkPage.qml
index b032a72..e40f233 100644
--- a/desktop/modules/network/NetworkPage.qml
+++ b/desktop/modules/network/NetworkPage.qml
@@ -37,8 +37,8 @@ Column {
Text {
anchors.verticalCenter: parent.verticalCenter
- text: "\uf6ff"
- font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 2 }
+ text: "\uef44"
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize - 2 }
color: Theme.subtext
}
@@ -98,7 +98,7 @@ Column {
id: wifiGlyph
anchors.verticalCenter: parent.verticalCenter
text: "\uf1eb"
- font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 2 }
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize - 2 }
color: Theme.subtext
}
diff --git a/desktop/modules/network/NetworkRow.qml b/desktop/modules/network/NetworkRow.qml
index 34c134b..3afab9a 100644
--- a/desktop/modules/network/NetworkRow.qml
+++ b/desktop/modules/network/NetworkRow.qml
@@ -62,7 +62,7 @@ Rectangle {
anchors.verticalCenter: parent.verticalCenter
visible: row.secured()
text: "\uf023"
- font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 }
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize - 4 }
color: Theme.overlay
}
diff --git a/desktop/modules/sound/Osd.qml b/desktop/modules/sound/Osd.qml
index 677d211..424b9c3 100644
--- a/desktop/modules/sound/Osd.qml
+++ b/desktop/modules/sound/Osd.qml
@@ -112,7 +112,7 @@ Scope {
anchors.verticalCenter: parent.verticalCenter
width: 30
horizontalAlignment: Text.AlignHCenter
- font.family: Theme.fontFamily
+ font.family: Theme.iconFamily
font.pixelSize: 24
color: win.muted ? Theme.red : Theme.accent
text: {
@@ -200,7 +200,7 @@ Scope {
anchors.centerIn: parent
visible: Player.artUrl === "" || parent.children[0].status !== Image.Ready
text: ""
- font { family: Theme.fontFamily; pixelSize: 20 }
+ font { family: Theme.iconFamily; pixelSize: 20 }
color: Theme.overlay
}
}
diff --git a/desktop/modules/sound/SoundPage.qml b/desktop/modules/sound/SoundPage.qml
index 7a757c9..31f9e7c 100644
--- a/desktop/modules/sound/SoundPage.qml
+++ b/desktop/modules/sound/SoundPage.qml
@@ -79,7 +79,7 @@ Column {
Text {
anchors.verticalCenter: parent.verticalCenter
text: page.stateIcon(audio, modelData.label === "Input")
- font { family: Theme.fontFamily; pixelSize: Theme.fontSize }
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize }
color: audio?.muted ? Theme.red : Theme.accent
}
@@ -120,7 +120,7 @@ Column {
Text {
id: chevron
text: section.expanded ? "\uf077" : "\uf078"
- font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 }
+ font { family: Theme.iconFamily; pixelSize: Theme.fontSize - 4 }
color: Theme.overlay
}
}
diff --git a/desktop/modules/sound/TransportButton.qml b/desktop/modules/sound/TransportButton.qml
index 2c1f498..b6dd53f 100644
--- a/desktop/modules/sound/TransportButton.qml
+++ b/desktop/modules/sound/TransportButton.qml
@@ -25,7 +25,7 @@ Rectangle {
Text {
anchors.centerIn: parent
text: btn.glyph
- font { family: Theme.fontFamily; pixelSize: 14 }
+ font { family: Theme.iconFamily; pixelSize: 14 }
color: Theme.text
}
diff --git a/shared/Theme.qml b/shared/Theme.qml
index 423dd49..6f172e7 100644
--- a/shared/Theme.qml
+++ b/shared/Theme.qml
@@ -39,6 +39,12 @@ Singleton {
readonly property string fontFamily: "Noto Sans"
readonly property int fontSize: 16
+ // Glyphs are Nerd Font private-use codepoints. They render with this
+ // family, not fontFamily: fontconfig otherwise falls back per codepoint
+ // and the same codepoint can be a different glyph in a different Nerd
+ // Font. Inconsolata Nerd Font is the desktop's monospaced font.
+ readonly property string iconFamily: "Inconsolata Nerd Font"
+
// Parsed rather than imported: a generated file cannot be a QML import
// without a qmldir next to it, and the cache directory has no reason to
// carry one. The format is fixed and machine-written, so a regex is enough.