feat: swap memory in the popup view (#227)

This commit is contained in:
Serhiy Mytrovtsiy
2020-12-18 16:25:43 +01:00
parent 9ef862aa5d
commit d82480a49d
18 changed files with 44 additions and 10 deletions

View File

@@ -25,6 +25,7 @@ public struct RAM_Usage: value_t {
var free: Double
var pressureLevel: Int
var swap: Swap
public var widget_value: Double {
get {
@@ -33,6 +34,12 @@ public struct RAM_Usage: value_t {
}
}
public struct Swap {
var total: Double
var used: Double
var free: Double
}
public class Memory: Module {
private var settingsView: Settings
private let popupView: Popup

View File

@@ -21,10 +21,9 @@ internal class Popup: NSView, Popup_p {
private let dashboardHeight: CGFloat = 90
private let chartHeight: CGFloat = 90 + Constants.Popup.separatorHeight
private let detailsHeight: CGFloat = (22*4) + Constants.Popup.separatorHeight
private let detailsHeight: CGFloat = (22*6) + Constants.Popup.separatorHeight
private let processHeight: CGFloat = 22
private var totalField: NSTextField? = nil
private var usedField: NSTextField? = nil
private var freeField: NSTextField? = nil
@@ -32,6 +31,7 @@ internal class Popup: NSView, Popup_p {
private var inactiveField: NSTextField? = nil
private var wiredField: NSTextField? = nil
private var compressedField: NSTextField? = nil
private var swapField: NSTextField? = nil
private var chart: LineChartView? = nil
private var circle: PieChartView? = nil
@@ -159,10 +159,12 @@ internal class Popup: NSView, Popup_p {
let separator = SeparatorView(LocalizedString("Details"), origin: NSPoint(x: 0, y: self.detailsHeight-Constants.Popup.separatorHeight), width: self.frame.width)
let container: NSView = NSView(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: separator.frame.origin.y))
self.activeField = PopupWithColorRow(container, color: NSColor.systemBlue, n: 3, title: "\(LocalizedString("App")):", value: "")
self.wiredField = PopupWithColorRow(container, color: NSColor.systemOrange, n: 2, title: "\(LocalizedString("Wired")):", value: "")
self.compressedField = PopupWithColorRow(container, color: NSColor.systemPink, n: 1, title: "\(LocalizedString("Compressed")):", value: "")
self.freeField = PopupWithColorRow(container, color: NSColor.lightGray.withAlphaComponent(0.5), n: 0, title: "\(LocalizedString("Free")):", value: "")
self.usedField = PopupRow(container, n: 5, title: "\(LocalizedString("Used")):", value: "").1
self.activeField = PopupWithColorRow(container, color: NSColor.systemBlue, n: 4, title: "\(LocalizedString("App")):", value: "")
self.wiredField = PopupWithColorRow(container, color: NSColor.systemOrange, n: 3, title: "\(LocalizedString("Wired")):", value: "")
self.compressedField = PopupWithColorRow(container, color: NSColor.systemPink, n: 2, title: "\(LocalizedString("Compressed")):", value: "")
self.freeField = PopupWithColorRow(container, color: NSColor.lightGray.withAlphaComponent(0.5), n: 1, title: "\(LocalizedString("Free")):", value: "")
self.swapField = PopupRow(container, n: 0, title: "\(LocalizedString("Swap")):", value: "").1
view.addSubview(separator)
view.addSubview(container)
@@ -215,8 +217,8 @@ internal class Popup: NSView, Popup_p {
self.inactiveField?.stringValue = Units(bytes: Int64(value.inactive)).getReadableMemory()
self.wiredField?.stringValue = Units(bytes: Int64(value.wired)).getReadableMemory()
self.compressedField?.stringValue = Units(bytes: Int64(value.compressed)).getReadableMemory()
self.swapField?.stringValue = Units(bytes: Int64(value.swap.free)).getReadableMemory()
self.totalField?.stringValue = Units(bytes: Int64(value.total)).getReadableMemory()
self.usedField?.stringValue = Units(bytes: Int64(value.used)).getReadableMemory()
self.freeField?.stringValue = Units(bytes: Int64(value.free)).getReadableMemory()

View File

@@ -55,9 +55,13 @@ internal class UsageReader: Reader<RAM_Usage> {
let used = active + wired + compressed
let free = self.totalSize - used
var size: size_t = MemoryLayout<uint>.size
var int_size: size_t = MemoryLayout<uint>.size
var pressureLevel: Int = 0
sysctlbyname("kern.memorystatus_vm_pressure_level", &pressureLevel, &size, nil, 0)
sysctlbyname("kern.memorystatus_vm_pressure_level", &pressureLevel, &int_size, nil, 0)
var string_size: size_t = MemoryLayout<xsw_usage>.size
var swap: xsw_usage = xsw_usage()
sysctlbyname("vm.swapusage", &swap, &string_size, nil, 0)
self.callback(RAM_Usage(
active: active,
@@ -70,7 +74,13 @@ internal class UsageReader: Reader<RAM_Usage> {
used: Double(used),
free: Double(free),
pressureLevel: pressureLevel
pressureLevel: pressureLevel,
swap: Swap(
total: Double(swap.xsu_total),
used: Double(swap.xsu_used),
free: Double(swap.xsu_avail)
)
))
return
}

View File

@@ -109,6 +109,7 @@
"Wired" = "Reserviert";
"Compressed" = "Komprimiert";
"Free" = "Frei";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Wechseldatenträger anzeigen";

View File

@@ -109,6 +109,7 @@
"Wired" = "Wired";
"Compressed" = "Compressed";
"Free" = "Free";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Show removable disks";

View File

@@ -110,6 +110,7 @@
"Wired" = "Física";
"Compressed" = "Comprimida";
"Free" = "Libre";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Mostrar los discos extraíbles";

View File

@@ -109,6 +109,7 @@
"Wired" = "Réservée";
"Compressed" = "Compressée";
"Free" = "Libre";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Afficher les disques amovibles";

View File

@@ -109,6 +109,7 @@
"Wired" = "Wired";
"Compressed" = "Compressa";
"Free" = "Libera";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Mostra dischi rimovibili";

View File

@@ -109,6 +109,7 @@
"Wired" = "예약됨";
"Compressed" = "압축됨";
"Free" = "여유";
"Swap" = "Swap";
// Disk
"Show removable disks" = "이동식 디스크 표시";

View File

@@ -109,6 +109,7 @@
"Wired" = "Opptatt";
"Compressed" = "Komprimert";
"Free" = "Ledig";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Vis utløsbare disker";

View File

@@ -109,6 +109,7 @@
"Wired" = "Układowa";
"Compressed" = "Skompresowana";
"Free" = "Wolna";
"Swap" = "Pamięć wymiany";
// Disk
"Show removable disks" = "Pokaż dyski wymienne";

View File

@@ -109,6 +109,7 @@
"Wired" = "Com fio";
"Compressed" = "Comprimido";
"Free" = "Livre";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Mostrar discos removíveis";

View File

@@ -109,6 +109,7 @@
"Wired" = "Зарезервированная";
"Compressed" = "Сжатая";
"Free" = "Свободная";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Показать съемные диски";

View File

@@ -109,6 +109,7 @@
"Wired" = "Bağlı";
"Compressed" = "Sıkıştırılmış";
"Free" = "Boş";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Çıkarılabilir diskleri göster";

View File

@@ -109,6 +109,7 @@
"Wired" = "Постійна";
"Compressed" = "Стисненна";
"Free" = "Вільна";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Показати зйомні диски";

View File

@@ -109,6 +109,7 @@
"Wired" = "Tính toán (hệ thống)";
"Compressed" = "Đã nén";
"Free" = "Còn Trống";
"Swap" = "Swap";
// Disk
"Show removable disks" = "Hiển thị các đĩa rời";

View File

@@ -109,6 +109,7 @@
"Wired" = "联动内存";
"Compressed" = "被压缩";
"Free" = "可用";
"Swap" = "Swap";
// Disk
"Show removable disks" = "显示可移动磁盘";

View File

@@ -109,6 +109,7 @@
"Wired" = "固定";
"Compressed" = "已壓縮";
"Free" = "可使用";
"Swap" = "Swap";
// Disk
"Show removable disks" = "顯示卸除式磁碟";