moire: optional NEIAM wordmark in B612, depending on the font

6b49b43 · Gabriel Morell · 2026-09-29 20:49

11 files +38 -0

Files changed

modified README.md
+4 −0
@@ -65,6 +65,10 @@ latitude and longitude. Between phases it blends by the sun's
65 65 elevation, turning the hue so the transitions pass through the purples
66 66 of a real twilight rather than grey.
67 67
68 +A checkbox writes "NEIAM" in the bottom right corner, in the theme's
69 +accent colour, in B612 at 12% of the screen height; the package pulls
70 +in the font (`fonts-b612` / `firstyear-b612-fonts`).
71 +
68 72 Settings trade smoothness for power: frame rate (30 by default) and
69 73 speed, where 0 holds a still frame and costs nothing after drawing it.
70 74
modified moire/Cargo.toml
+5 −0
@@ -14,6 +14,8 @@ path = "src/lib.rs"
14 14 # package ships only the compiled .qsb (see tools/shaders.sh).
15 15 [package.metadata.deb]
16 16 section = "misc"
17 +# B612 draws the NEIAM wordmark.
18 +depends = "fonts-b612"
17 19 assets = [
18 20 ["theme/metadata.json", "usr/share/plasma/wallpapers/org.neiam.moire/", "644"],
19 21 ["theme/contents/config/*", "usr/share/plasma/wallpapers/org.neiam.moire/contents/config/", "644"],
@@ -28,3 +30,6 @@ assets = [
28 30 { source = "theme/contents/ui/*", dest = "/usr/share/plasma/wallpapers/org.neiam.moire/contents/ui/", mode = "0644" },
29 31 { source = "../README.md", dest = "/usr/share/doc/plasma-wallpaper-neiam-moire/README.md", doc = true, mode = "0644" },
30 32 ]
33 +
34 +[package.metadata.generate-rpm.requires]
35 +firstyear-b612-fonts = "*"
modified moire/theme/contents/config/main.xml
+4 −0
@@ -18,6 +18,10 @@
18 18 <label>Frames per second while animating</label>
19 19 <default>30</default>
20 20 </entry>
21 + <entry name="Wordmark" type="Bool">
22 + <label>Write NEIAM in the bottom right corner</label>
23 + <default>false</default>
24 + </entry>
21 25
22 26 <entry name="ThemeMode" type="String">
23 27 <label>static, or sun to follow the time of day</label>
modified moire/theme/contents/ui/Field.qml
+16 −0
@@ -16,6 +16,8 @@ Item {
16 16 // Multiplies how fast everything drifts; 0 holds the picture still.
17 17 property real speed: 1
18 18 property int frameRate: 30
19 + // "NEIAM" in the bottom right, in the ink colour.
20 + property bool wordmark: false
19 21
20 22 property color base: "#661e1e"
21 23 property color deep: "#470005"
@@ -77,6 +79,20 @@ Item {
77 79 property color tone: field.tone
78 80 }
79 81
82 + // B612 comes from fonts-b612 / firstyear-b612-fonts, which the
83 + // package depends on.
84 + Text {
85 + visible: field.wordmark
86 + anchors { right: parent.right; bottom: parent.bottom; margins: field.height * 0.04 }
87 + text: "NEIAM"
88 + color: field.ink
89 + font.family: "B612"
90 + font.pixelSize: Math.max(1, Math.round(field.height * 0.12))
91 + // Sit the capitals, not the line box, on the margin.
92 + anchors.bottomMargin: field.height * 0.04 - fontMetrics.descent
93 + FontMetrics { id: fontMetrics; font.family: "B612"; font.pixelSize: Math.max(1, Math.round(field.height * 0.12)) }
94 + }
95 +
80 96 Timer {
81 97 running: field.speed > 0 && field.visible
82 98 repeat: true
modified moire/theme/contents/ui/config.qml
+8 −0
@@ -14,6 +14,7 @@ Kirigami.FormLayout {
14 14 property string cfg_Pattern
15 15 property double cfg_Speed
16 16 property int cfg_FrameRate
17 + property bool cfg_Wordmark
17 18 property string cfg_ThemeMode
18 19 property string cfg_Theme
19 20 property string cfg_NightTheme
@@ -84,6 +85,13 @@ Kirigami.FormLayout {
84 85 enabled: root.cfg_Speed > 0
85 86 }
86 87
88 + QQC2.CheckBox {
89 + Kirigami.FormData.label: "Wordmark:"
90 + text: "Write NEIAM in the corner"
91 + checked: root.cfg_Wordmark
92 + onToggled: root.cfg_Wordmark = checked
93 + }
94 +
87 95 // ------------------------------------------------------------- theme
88 96
89 97 Item { Kirigami.FormData.isSection: true }
modified moire/theme/contents/ui/main.qml
+1 −0
@@ -31,6 +31,7 @@ WallpaperItem {
31 31 pattern: root.cfg.Pattern
32 32 speed: root.cfg.Speed
33 33 frameRate: root.cfg.FrameRate
34 + wordmark: root.cfg.Wordmark
34 35 base: root.scheme.base
35 36 deep: root.scheme.deep
36 37 ink: root.scheme.ink

Parents: f629a67