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