From 57093cb63b67446c6340d8230fe26ee79b9627ba Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 13 Aug 2026 13:40:06 +0200 Subject: [PATCH] =?UTF-8?q?Men=C3=BCleiste:=20Prozentzeichen=20ohne=20Leer?= =?UTF-8?q?zeichen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Breite ist fest für „100 %" reserviert, damit nichts springt, wenn der Wert eine Stelle mehr bekommt. Das Leerzeichen kostet in dieser Reservierung drei Punkte je Element — in der Menüleiste ist Platz das knappste Gut. Nur dort. Im Panel und in den Popovern bleibt das Leerzeichen stehen; da ist Platz, und typografisch gehört es hin. Co-Authored-By: Claude Opus 5 --- .../OnyxKit/Sources/MetricsProvider/Calculations.swift | 10 ++++++++++ .../Sources/MetricsProvider/MetricMenuBarModule.swift | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Packages/OnyxKit/Sources/MetricsProvider/Calculations.swift b/Packages/OnyxKit/Sources/MetricsProvider/Calculations.swift index 9ce27de..a4db16b 100644 --- a/Packages/OnyxKit/Sources/MetricsProvider/Calculations.swift +++ b/Packages/OnyxKit/Sources/MetricsProvider/Calculations.swift @@ -105,6 +105,16 @@ public enum MetricFormat { "\(Int((min(max(fraction, 0), 1) * 100).rounded())) %" } + /// Ohne Leerzeichen — nur für die Menüleiste. + /// + /// Dort ist die Breite fest für „100 %" reserviert, damit nichts springt, + /// wenn der Wert eine Stelle mehr bekommt. Das Leerzeichen kostet in dieser + /// Reservierung drei Punkte je Element, und in der Menüleiste ist Platz + /// das knappste Gut. Im Panel und in den Popovern bleibt es stehen. + public static func percentCompact(_ fraction: Double) -> String { + "\(Int((min(max(fraction, 0), 1) * 100).rounded()))%" + } + public static func temperature(_ celsius: Double) -> String { "\(Int(celsius.rounded()))°" } diff --git a/Packages/OnyxKit/Sources/MetricsProvider/MetricMenuBarModule.swift b/Packages/OnyxKit/Sources/MetricsProvider/MetricMenuBarModule.swift index 8778270..821b212 100644 --- a/Packages/OnyxKit/Sources/MetricsProvider/MetricMenuBarModule.swift +++ b/Packages/OnyxKit/Sources/MetricsProvider/MetricMenuBarModule.swift @@ -133,7 +133,7 @@ final class MetricStatusView: NSView, WidthReporting { private var reference: String { switch (metric, mode) { case (.temperature, _), (_, .temperature): "100°" - default: "100 %" + default: "100%" } } @@ -174,7 +174,10 @@ final class MetricStatusView: NSView, WidthReporting { if metric == .temperature, let celsius = sensorCelsius { return MetricFormat.temperature(celsius) } - return MetricSummary.value(metric, snapshot, mode: mode) + // In der Menüleiste ohne Leerzeichen vor dem Prozentzeichen — siehe + // `MetricFormat.percentCompact`. + let value = MetricSummary.value(metric, snapshot, mode: mode) + return value.replacingOccurrences(of: " %", with: "%") }