diff --git a/Kit/Widgets/BarChart.swift b/Kit/Widgets/BarChart.swift index 3930ee21..55c0bcd4 100644 --- a/Kit/Widgets/BarChart.swift +++ b/Kit/Widgets/BarChart.swift @@ -171,8 +171,9 @@ public class BarChart: WidgetWrapper { if partitionValue.color == nil { switch self.colorState { case .systemAccent: controlAccentColor.set() - case .utilization: partitionValue.value.usageColor(zones: self.colorZones, reversed: self.title == "Battery").setFill() - case .pressure: self.pressureLevel.pressureColor().setFill() + case .utilization: partitionValue.value.usageColor(zones: self.colorZones, reversed: self.title == "Battery").set() + case .pressure: self.pressureLevel.pressureColor().set() + case .cluster: (partitionValue.value.clusterColor(i) ?? controlAccentColor).set() case .monochrome: if self.boxState { (isDarkMode ? NSColor.black : NSColor.white).set() diff --git a/Kit/extensions.swift b/Kit/extensions.swift index 0e287ca3..04072ae3 100644 --- a/Kit/extensions.swift +++ b/Kit/extensions.swift @@ -193,6 +193,22 @@ public extension Double { } } + func clusterColor(_ i: Int) -> NSColor? { + guard let cores = SystemKit.shared.device.info.cpu?.cores, + let core = cores.first(where: {$0.id == i }) else { + return nil + } + + switch core.type { + case .efficiency: + return .systemTeal + case .performance: + return .systemBlue + default: + return nil + } + } + func secondsToHoursMinutesSeconds() -> (Int, Int) { let mins = (self.truncatingRemainder(dividingBy: 3600)) / 60 return (Int(self / 3600), Int(mins)) diff --git a/Kit/types.swift b/Kit/types.swift index 708f9280..f2f7c3f3 100644 --- a/Kit/types.swift +++ b/Kit/types.swift @@ -120,6 +120,7 @@ public struct Color: KeyValue_p, Equatable { extension Color: CaseIterable { public static var utilization: Color { return Color(key: "utilization", value: "Based on utilization", additional: NSColor.black) } public static var pressure: Color { return Color(key: "pressure", value: "Based on pressure", additional: NSColor.black) } + public static var cluster: Color { return Color(key: "cluster", value: "Based on cluster", additional: NSColor.black) } public static var separator1: Color { return Color(key: "separator_1", value: "separator_1", additional: NSColor.black) } @@ -160,7 +161,7 @@ extension Color: CaseIterable { } } public static var allCases: [Color] { - return [.utilization, .pressure, separator1, + return [.utilization, .pressure, .cluster, separator1, .systemAccent, .monochrome, separator2, .clear, .white, .black, .gray, .secondGray, .darkGray, .lightGray, .red, .secondRed, .green, .secondGreen, .blue, .secondBlue, .yellow, .secondYellow, diff --git a/Modules/Battery/config.plist b/Modules/Battery/config.plist index dbb913b1..36a42da6 100644 --- a/Modules/Battery/config.plist +++ b/Modules/Battery/config.plist @@ -55,6 +55,7 @@ Unsupported colors pressure + cluster Order 2 diff --git a/Modules/Disk/config.plist b/Modules/Disk/config.plist index 30e35108..aa87f3cf 100644 --- a/Modules/Disk/config.plist +++ b/Modules/Disk/config.plist @@ -61,6 +61,7 @@ Unsupported colors pressure + cluster Order 2 diff --git a/Modules/GPU/config.plist b/Modules/GPU/config.plist index d2d0e32e..be419183 100644 --- a/Modules/GPU/config.plist +++ b/Modules/GPU/config.plist @@ -58,6 +58,7 @@ Unsupported colors pressure + cluster Order 3 diff --git a/Modules/RAM/config.plist b/Modules/RAM/config.plist index e400c4c0..5834a130 100644 --- a/Modules/RAM/config.plist +++ b/Modules/RAM/config.plist @@ -59,6 +59,10 @@ Order 3 + Unsupported colors + + cluster + pie_chart diff --git a/Modules/Sensors/config.plist b/Modules/Sensors/config.plist index 682f00c1..6dad0acb 100644 --- a/Modules/Sensors/config.plist +++ b/Modules/Sensors/config.plist @@ -41,6 +41,7 @@ Unsupported colors pressure + cluster Order 2