Browse Source

Rm widgets

master
Harish Karumuthil 2 months ago
parent
commit
a86b7a52b3
  1. 20
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/config/config.qml
  2. 220
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/config/main.xml
  3. BIN
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/locale/fr/LC_MESSAGES/plasma_applet_org.kde.resourcesMonitor-fork.mo
  4. BIN
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/locale/nl/LC_MESSAGES/plasma_applet_org.kde.resourcesMonitor-fork.mo
  5. 38
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/ApplicationDelegateItem.qml
  6. 31
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/AppsDetector.qml
  7. 73
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/GpuDetector.qml
  8. 35
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/NetworkInterfaceDetector.qml
  9. 78
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/functions.js
  10. 70
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/CpuGraph.qml
  11. 38
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/DisksGraph.qml
  12. 85
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/GpuGraph.qml
  13. 101
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/MemoryGraph.qml
  14. 113
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/NetworkGraph.qml
  15. 39
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/ArrayDataSource.qml
  16. 164
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/BaseSensorGraph.qml
  17. 257
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/GraphText.qml
  18. 47
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/SensorGraph.qml
  19. 75
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/TwoSensorsGraph.qml
  20. 72
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/sensors/CpuFrequency.qml
  21. 510
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigAppearance.qml
  22. 451
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigData.qml
  23. 453
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigGeneral.qml
  24. 49
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/ColorSelector.qml
  25. 20
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/CustomizableSize.qml
  26. 57
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/PredefinedSpinBox.qml
  27. 125
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/SpinBox.qml
  28. 123
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/main.qml
  29. 31
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/metadata.json
  30. 29
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/README.md
  31. 453
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/fr.po
  32. 454
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/nl.po
  33. 483
      home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/template.pot

20
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/config/config.qml

@ -1,20 +0,0 @@
import QtQuick 2.2
import org.kde.plasma.configuration 2.0
ConfigModel {
ConfigCategory {
name: i18nc("Config header", "General")
icon: 'preferences-desktop-plasma'
source: 'config/ConfigGeneral.qml'
}
ConfigCategory {
name: i18nc("Config header", "Data")
icon: 'preferences-desktop'
source: 'config/ConfigData.qml'
}
ConfigCategory {
name: i18nc("Config header", "Appearance")
icon: 'preferences-desktop-color'
source: 'config/ConfigAppearance.qml'
}
}

220
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/config/main.xml

@ -1,220 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0 http://www.kde.org/standards/kcfg/1.0/kcfg.xsd">
<kcfgfile name="" />
<group name="General">
<entry name="updateInterval" type="Double">
<default>1.0</default>
</entry>
<entry name="actionService" type="String">
<default>org.kde.plasma-systemmonitor</default>
</entry>
<entry name="showCpuMonitor" type="Bool">
<default>true</default>
</entry>
<entry name="cpuUnit" type="String">
<default>usage</default>
</entry>
<entry name="showClock" type="Bool">
<default>true</default>
</entry>
<entry name="clockAgregator" type="String">
<default>average</default>
</entry>
<entry name="showCpuTemperature" type="Bool">
<default>false</default>
</entry>
<entry name="showRamMonitor" type="Bool">
<default>true</default>
</entry>
<entry name="memoryUnit" type="String">
<default>physical</default>
</entry>
<entry name="memorySwapGraph" type="Bool">
<default>true</default>
</entry>
<entry name="showNetMonitor" type="Bool">
<default>false</default>
</entry>
<entry name="networkUnit" type="String">
<default>kibibyte</default>
</entry>
<entry name="showGpuMonitor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryInPercent" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryGraph" type="Bool">
<default>true</default>
</entry>
<entry name="showGpuTemperature" type="Bool">
<default>false</default>
</entry>
<entry name="showDiskMonitor" type="Bool">
<default>false</default>
</entry>
</group>
<group name="Data">
<entry name="ignoredNetworkInterfaces" type="StringList">
</entry>
<entry name="networkReceivingTotal" type="Double">
<default>100000.0</default>
</entry>
<entry name="networkSendingTotal" type="Double">
<default>100000.0</default>
</entry>
<entry name="diskReadTotal" type="Double">
<default>200000.0</default>
</entry>
<entry name="diskWriteTotal" type="Double">
<default>200000.0</default>
</entry>
<entry name="gpuIndex" type="String">
<default>gpu0</default>
</entry>
<entry name="thresholdWarningCpuTemp" type="Double">
<default>85.0</default>
</entry>
<entry name="thresholdCriticalCpuTemp" type="Double">
<default>105.0</default>
</entry>
<entry name="thresholdWarningMemory" type="Int">
<default>70</default>
</entry>
<entry name="thresholdCriticalMemory" type="Int">
<default>90</default>
</entry>
<entry name="thresholdWarningGpuTemp" type="Int">
<default>75</default>
</entry>
<entry name="thresholdCriticalGpuTemp" type="Int">
<default>85</default>
</entry>
</group>
<group name="Appearance">
<entry name="verticalLayout" type="Bool">
<default>false</default>
</entry>
<entry name="historyAmount" type="Int">
<default>10</default>
</entry>
<entry name="enableShadows" type="Bool">
<default>true</default>
</entry>
<entry name="fontScale" type="Int">
<default>26</default>
</entry>
<entry name="customGraphWidth" type="Bool">
<default>false</default>
</entry>
<entry name="graphWidth" type="Int">
</entry>
<entry name="customGraphHeight" type="Bool">
<default>false</default>
</entry>
<entry name="graphHeight" type="Int">
</entry>
<entry name="graphMargin" type="Int">
<default>10</default>
</entry>
<entry name="graphFillOpacity" type="Int">
<default>25</default>
</entry>
<entry name="displayment" type="String">
<default>hover-hints</default>
</entry>
<entry name="placement" type="String">
<default>top-right</default>
</entry>
<entry name="graphOrders" type="StringList">
<default>cpu,memory,gpu,disks,network</default>
</entry>
<entry name="customCpuColor" type="Bool">
<default>false</default>
</entry>
<entry name="cpuColor" type="Color">
</entry>
<entry name="customCpuTemperatureColor" type="Bool">
<default>false</default>
</entry>
<entry name="cpuTemperatureColor" type="Color">
</entry>
<entry name="customRamColor" type="Bool">
<default>false</default>
</entry>
<entry name="ramColor" type="Color">
</entry>
<entry name="customSwapColor" type="Bool">
<default>false</default>
</entry>
<entry name="swapColor" type="Color">
</entry>
<entry name="customNetDownColor" type="Bool">
<default>false</default>
</entry>
<entry name="netDownColor" type="Color">
</entry>
<entry name="customNetUpColor" type="Bool">
<default>false</default>
</entry>
<entry name="netUpColor" type="Color">
</entry>
<entry name="customGpuColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuColor" type="Color">
</entry>
<entry name="customGpuMemoryColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuMemoryColor" type="Color">
</entry>
<entry name="customGpuTemperatureColor" type="Bool">
<default>false</default>
</entry>
<entry name="gpuTemperatureColor" type="Color">
</entry>
<entry name="customDiskReadColor" type="Bool">
<default>false</default>
</entry>
<entry name="diskReadColor" type="Color">
</entry>
<entry name="customDiskWriteColor" type="Bool">
<default>false</default>
</entry>
<entry name="diskWriteColor" type="Color">
</entry>
<entry name="customWarningColor" type="Bool">
<default>false</default>
</entry>
<entry name="warningColor" type="Color">
</entry>
<entry name="customCriticalColor" type="Bool">
<default>false</default>
</entry>
<entry name="criticalColor" type="Color">
</entry>
</group>
</kcfg>

BIN
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/locale/fr/LC_MESSAGES/plasma_applet_org.kde.resourcesMonitor-fork.mo

Binary file not shown.

BIN
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/locale/nl/LC_MESSAGES/plasma_applet_org.kde.resourcesMonitor-fork.mo

Binary file not shown.

38
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/ApplicationDelegateItem.qml

@ -1,38 +0,0 @@
import QtQuick 2.0
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.1 as QtLayouts
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.kirigami 2.6 as Kirigami
MouseArea {
id: root
height: childrenRect.height
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
property string serviceName: ""
property string name: ""
property string comment: ""
property string iconName: ""
property bool selected: false
QtLayouts.RowLayout {
spacing: Kirigami.Units.smallSpacing
QtControls.ToolTip.text: (comment !== "" ? comment + "\n\n" : "") + "ID: " + serviceName + ".desktop"
QtControls.ToolTip.visible: root.containsMouse
PlasmaCore.IconItem {
id: icon
source: iconName
implicitHeight: 16
implicitWidth: 16
}
PlasmaComponents.Label {
text: selected ? "<strong>" + name + "</strong>" : name
}
}
}

31
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/AppsDetector.qml

@ -1,31 +0,0 @@
import QtQuick 2.0
import org.kde.plasma.core 2.1 as PlasmaCore
PlasmaCore.SortFilterModel {
id: appsDetector
sourceModel: PlasmaCore.DataModel {
dataSource: source
}
filterRole: "name"
sortColumn: 0
sortRole: "name"
sortOrder: Qt.AscendingOrder
property var _dataSource: PlasmaCore.DataSource {
id: source
engine: "apps"
connectedSources: {
// Explude folder
var result = [];
for (var i = 0; i < sources.length; i++) {
if (sources[i].indexOf(".desktop") !== -1) {
result.push(sources[i]);
}
}
return result;
}
interval: 0
}
}

73
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/GpuDetector.qml

@ -1,73 +0,0 @@
import QtQuick 2.0
import org.kde.kitemmodels 1.0 as KItemModels
import org.kde.ksysguard.sensors 1.0 as Sensors
KItemModels.KSortFilterProxyModel {
id: detector
property var model: []
property var _privateModel: ListModel {
}
signal ready
// Find all gpus
sourceModel: KItemModels.KDescendantsProxyModel {
model: Sensors.SensorTreeModel {
}
}
property var _regex: /gpu\/(gpu\d)\/name/
property var _tmpSensors: []
filterRowCallback: function (row, parent) {
const sensorId = sourceModel.data(sourceModel.index(row, 0), Sensors.SensorTreeModel.SensorId);
const found = sensorId.match(_regex);
if (found && _tmpSensors.findIndex(item => item === sensorId) === -1) {
_tmpSensors.push(sensorId);
_privateModel.append({
"index": found[1],
"name": ""
});
}
}
// Find name of GPU
property var _nameRegex: /.*\[(.*)\]/
property var _sensors: Sensors.SensorDataModel {
updateRateLimit: -1
property var retrievedData: 0
onDataChanged: {
let name = data(topLeft, Sensors.SensorDataModel.Value);
// Special case for non NVIDIA graphic card (eg. in AMD the name look like "Navi 21 [Radeon RX 6950 XT]")
const found = name.match(_nameRegex);
if (found) {
if (found[1].startsWith("Radeon")) {
name = "AMD ";
} else {
name = "Intel ";
}
name += found[1];
}
_privateModel.setProperty(topLeft.column, "name", name);
// Stop sensors and update model
if (++retrievedData === sensors.length) {
enabled = false;
detector.model = _privateModel;
detector.ready();
}
}
}
property var _timer: Timer {
running: true
triggeredOnStart: true
onTriggered: {
running = false;
_sensors.sensors = _tmpSensors;
}
}
}

35
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/NetworkInterfaceDetector.qml

@ -1,35 +0,0 @@
import QtQuick 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
QtObject {
id: detector
property var model: []
property var _dataSource: PlasmaCore.DataSource {
id: dataSource
engine: "executable"
connectedSources: []
property var excludedInterface: /^(?!lo|bridge|usbus|bond)(.*)$/
onNewData: {
var interfaces = data["stdout"].trim().split('\n');
for (var i = 0; i < interfaces.length; i++) {
if (excludedInterface.test(interfaces[i])) {
_privateModel.append({
"name": interfaces[i]
});
}
}
detector.model = _privateModel;
disconnectSource(sourceName); // cmd finished
}
Component.onCompleted: {
connectSource("ip -o link show | awk -F': ' '{print $2}'");
}
}
property var _privateModel: ListModel {}
}

78
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/functions.js

@ -1,78 +0,0 @@
/**
* @typedef {object} BinaryUnit
* @property {string} name The name
* @property {string} suffix The suffix
* @property {string} kiloChar The char for "kilo"
* @property {number} KiBDiff The difference with `kibibyte`
* @property {number} multiplier The multiplier amount (`1000` for metric and `1024` for binary)
*/
/**
* Get the binary unit from they name
* @param {string} dialect The binary unit name
* @returns {BinaryUnit} The binary unit
*/
function getNetworkDialectInfo(dialect) {
switch (dialect) {
case "kilobyte":
return {
name: "kilobyte",
suffix: i18nc("kilobyte suffix", "Bps"),
kiloChar: "k",
KiBDiff: 1.024,
multiplier: 1024,
};
case "kilobit":
return {
name: "kilobit",
suffix: i18nc("kilobit suffix", "bps"),
kiloChar: "k",
KiBDiff: 8,
multiplier: 1024,
};
default:
return {
name: "kibibyte",
suffix: i18nc("kibibyte suffix", "iB/s"),
kiloChar: "K",
KiBDiff: 1,
multiplier: 1024,
};
}
}
/**
* Convert value from bytes to the appropriate string representation using the binary unit dialect.
*
* @param {number} value The value in byte/bit
* @param {BinaryUnit} dialect The binary unit standard to use
* @param {number} [precision=1] Number of places after the decimal point to use.
* @returns Converted value as a translated string including the units.
*/
function formatByteValue(value, dialect, precision = 1) {
if (value === 0 || isNaN(parseInt(value))) {
return "0 " + dialect.suffix.replace("i", "");
} else if (dialect.name === "kibibyte" && value <= dialect.multiplier) {
return "0 " + dialect.suffix.replace("i", "");
}
var sizes = ["", dialect.kiloChar, "M", "G", "T", "P", "Z", "Y"];
// Search unit conversion
var unit = Math.floor(Math.log(value) / Math.log(dialect.multiplier));
// Bytes/Bits, no rounding
precision = precision < 0 ? 0 : precision;
if (unit === 0) {
precision = 0;
}
return (
parseFloat(
(value / Math.pow(dialect.multiplier, unit)).toFixed(precision)
) +
" " +
sizes[unit] +
dialect.suffix
);
}

70
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/CpuGraph.qml

@ -1,70 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../sensors" as RMSensors
RMBaseGraph.SensorGraph {
id: root
objectName: "CpuGraph"
Connections {
target: plasmoid.configuration
function onCpuUnitChanged() {
_updateSensors();
}
function onClockAgregatorChanged() {
if (!manualFrequency.needManual) {
_updateSensors();
}
}
}
// Config options
property color temperatureColor: plasmoid.configuration.customCpuTemperatureColor ? plasmoid.configuration.cpuTemperatureColor : theme.textColor
// Graph options
// NOTE: "sensorsModel.sensors" is set by "_updateSensors"
chartColor: plasmoid.configuration.customCpuColor ? plasmoid.configuration.cpuColor : theme.highlightColor
chart.yRange {
from: 0
to: 100
}
// Labels options
thresholds: [undefined, undefined, [plasmoid.configuration.thresholdWarningCpuTemp, plasmoid.configuration.thresholdCriticalCpuTemp]]
textContainer {
labelColors: [root.chartColor, undefined, temperatureColor]
valueColors: [undefined, undefined, temperatureColor]
labels: ["CPU", (plasmoid.configuration.showClock ? i18nc("Graph label", "Clock") : ""), (plasmoid.configuration.showCpuTemperature ? i18nc("Graph label", "Temp.") : "")]
}
function _updateSensors() {
// Manual cpu frequency handle
// TODO (3.0): remove this
let frequencySensorId = "cpu/all/" + plasmoid.configuration.clockAgregator + "Frequency";
if (manualFrequency.needManual) {
frequencySensorId = "cpu/cpu0/frequency";
}
// END Manual cpu frequency handle
sensorsModel.sensors = ["cpu/all/" + plasmoid.configuration.cpuUnit, frequencySensorId, "cpu/cpu0/temperature"];
}
// Manual cpu frequency handle
// TODO (3.0): remove this
_formatValue: (index, data) => {
if (index === 1 && manualFrequency.needManual) {
return manualFrequency.getFormattedValue();
}
return _defaultFormatValue(index, data);
}
RMSensors.CpuFrequency {
id: manualFrequency
agregator: plasmoid.configuration.clockAgregator
onReady: _updateSensors()
}
}

38
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/DisksGraph.qml

@ -1,38 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../functions.js" as Functions
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "DisksGraph"
readonly property var diskIoDialect: Functions.getNetworkDialectInfo("kibibyte")
Connections {
target: plasmoid.configuration
function onDiskReadTotalChanged() {
_updateUplimits();
}
function onDiskWriteTotalChanged() {
_updateUplimits();
}
}
Component.onCompleted: {
_updateUplimits();
}
// Labels
textContainer {
labelColors: root.colors
labels: [i18nc("Graph label", "Read"), i18nc("Graph label", "Write"), ""]
}
// Graph options
sensorsModel.sensors: ["disk/all/read", "disk/all/write"]
colors: [(plasmoid.configuration.customDiskReadColor ? plasmoid.configuration.diskReadColor : theme.highlightColor), (plasmoid.configuration.customDiskWriteColor ? plasmoid.configuration.diskWriteColor : theme.positiveTextColor)]
function _updateUplimits() {
uplimits = [plasmoid.configuration.diskReadTotal * diskIoDialect.multiplier, plasmoid.configuration.diskWriteTotal * diskIoDialect.multiplier];
}
}

85
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/GpuGraph.qml

@ -1,85 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import "./base" as RMBaseGraph
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "GpuGraph"
// Config options
property color temperatureColor: plasmoid.configuration.customGpuTemperatureColor ? plasmoid.configuration.gpuTemperatureColor : theme.textColor
// Bind config changes
Connections {
target: plasmoid.configuration
function onGpuMemoryInPercentChanged() {
uplimits = [100, plasmoid.configuration.gpuMemoryInPercent ? 100 : maxQueryModel.maxMemory];
_clear();
}
function onGpuIndexChanged() {
maxQueryModel.enabled = true
}
}
// Labels
thresholds: [undefined, undefined, [plasmoid.configuration.thresholdWarningGpuTemp, plasmoid.configuration.thresholdCriticalGpuTemp]]
textContainer {
labelColors: [root.colors[0], root.colors[1], temperatureColor]
valueColors: [undefined, undefined, temperatureColor]
labels: ["GPU", (plasmoid.configuration.gpuMemoryGraph ? "VRAM" : ""), (plasmoid.configuration.showGpuTemperature ? i18nc("Graph label", "Temp.") : "")]
}
// Graph options
// NOTE: "sensorsModel.sensors" set from "maxQueryModel"
colors: [(plasmoid.configuration.customGpuColor ? plasmoid.configuration.gpuColor : theme.highlightColor), (plasmoid.configuration.customGpuMemoryColor ? plasmoid.configuration.gpuMemoryColor : theme.positiveTextColor)]
// Override methods, for handle memeory in percent
_update: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
let value = sensorsModel.getInfo(i);
if (i === 1 && plasmoid.configuration.gpuMemoryInPercent) {
value = (value / maxQueryModel.maxMemory) * 100;
}
root._insertChartData(i, value);
// Update label
if (textContainer.valueVisible) {
_updateData(i);
}
}
}
_formatValue: (index, data) => {
if (index === 1 && plasmoid.configuration.gpuMemoryInPercent) {
return i18nc("Percent unit", "%1%", Math.round((data.value / maxQueryModel.maxMemory) * 1000) / 10); // This is for round to 1 decimal
}
return _defaultFormatValue(index, data);
}
// Initialize limits and threshold
Sensors.SensorDataModel {
id: maxQueryModel
sensors: ["gpu/" + plasmoid.configuration.gpuIndex + "/totalVram"]
enabled: true
property int maxMemory: -1
onDataChanged: {
// Update values
const valueVar = parseInt(data(topLeft, Sensors.SensorDataModel.Value));
if (isNaN(valueVar) || valueVar <= 0) {
return;
}
enabled = false;
maxMemory = valueVar;
// Update graph Y range
root.uplimits = [100, plasmoid.configuration.gpuMemoryInPercent ? 100 : maxMemory];
// Update sensors
const gpu = plasmoid.configuration.gpuIndex
root.sensorsModel.sensors = ["gpu/" + gpu + "/usage", "gpu/" + gpu + "/usedVram", "gpu/" + gpu + "/temperature"];
}
}
}

101
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/MemoryGraph.qml

@ -1,101 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import "./base" as RMBaseGraph
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "MemoryGraph"
Connections {
target: plasmoid.configuration
function onMemoryUnitChanged() { // Values: usage, system, user
const oldLimit1 = uplimits[0];
if (plasmoid.configuration.memoryUnit.endsWith("-percent")) {
uplimits = [100, 100];
} else {
uplimits = maxQueryModel.maxMemory;
}
_updateThresholds();
_updateSensors();
if (oldLimit1 != uplimits[0]) {
_clear();
}
}
function onMemorySwapGraphChanged() {
_updateSensors();
}
function onThresholdWarningMemoryChanged() {
_updateThresholds();
}
function onThresholdCriticalMemoryChanged() {
_updateThresholds();
}
}
Component.onCompleted: {
_updateThresholds();
_updateSensors();
}
// Labels
textContainer {
labelColors: root.colors
valueColors: [undefined, root.colors[1]]
labelsVisibleWhenZero: [true, false, true]
labels: ["RAM", (plasmoid.configuration.memorySwapGraph ? "Swap" : ""), ""]
}
// Graph options
// NOTE: "sensorsModel.sensors" is set by "_updateSensors"
colors: [(plasmoid.configuration.customRamColor ? plasmoid.configuration.ramColor : theme.highlightColor), (plasmoid.configuration.customSwapColor ? plasmoid.configuration.swapColor : theme.negativeTextColor)]
// Initialize limits and threshold
Sensors.SensorDataModel {
id: maxQueryModel
sensors: ["memory/physical/total", "memory/swap/total"]
enabled: true
property var maxMemory: [-1, -1]
onDataChanged: {
// Update values
const value = parseInt(data(topLeft, Sensors.SensorDataModel.Value));
if (isNaN(value) || (topLeft.column === 0 && value <= 0)) {
return;
}
maxMemory[topLeft.column] = value;
// Update graph Y range and sensors
if (maxMemory[0] > 0 && maxMemory[1] >= 0) {
enabled = false;
if (!plasmoid.configuration.memoryUnit.endsWith("-percent")) {
root.uplimits = maxMemory;
}
root._updateThresholds();
root._updateSensors();
}
}
}
function _updateThresholds() {
const thresholdWarningMemory = plasmoid.configuration.thresholdWarningMemory;
const thresholdCriticalMemory = plasmoid.configuration.thresholdCriticalMemory;
if (!plasmoid.configuration.memoryUnit.endsWith("-percent")) {
thresholds[0] = [maxQueryModel.maxMemory[0] * (thresholdWarningMemory / 100.0), maxQueryModel.maxMemory[0] * (thresholdCriticalMemory / 100.0)];
} else {
thresholds[0] = [thresholdWarningMemory, thresholdCriticalMemory];
}
}
function _updateSensors() {
const info = plasmoid.configuration.memoryUnit.split("-");
const suffix = info[1] === "percent" ? "Percent" : "";
const memSensor = "memory/physical/" + (info[0] === "physical" ? "used" : "application") + suffix;
if (plasmoid.configuration.memorySwapGraph) {
sensorsModel.sensors = [memSensor, "memory/swap/used" + suffix];
} else {
sensorsModel.sensors = [memSensor];
}
}
}

113
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/NetworkGraph.qml

@ -1,113 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import "./base" as RMBaseGraph
import "../" as RMComponents
import "../functions.js" as Functions
RMBaseGraph.TwoSensorsGraph {
id: root
objectName: "NetworkGraph"
property var dialect: Functions.getNetworkDialectInfo(plasmoid.configuration.networkUnit)
Connections {
target: plasmoid.configuration
function onIgnoredNetworkInterfacesChanged() {
_updateSensors();
}
function onNetworkReceivingTotalChanged() {
_updateUplimits();
}
function onNetworkSendingTotalChanged() {
_updateUplimits();
}
}
Component.onCompleted: _updateUplimits()
// Labels
textContainer {
labelColors: root.colors
labels: [i18nc("Graph label", "Receiving"), i18nc("Graph label", "Sending"), ""]
}
// Graph options
colors: [(plasmoid.configuration.customNetDownColor ? plasmoid.configuration.netDownColor : theme.highlightColor), (plasmoid.configuration.customNetUpColor ? plasmoid.configuration.netUpColor : theme.positiveTextColor)]
// Initialized sensors
RMComponents.NetworkInterfaceDetector {
id: networkInterfaces
onModelChanged: _updateSensors()
}
// Override methods, for commulate sensors and support custom dialect
property var _downloadValue
property var _uploadValue
_update: () => {
// Cummulate sensors by group
let data;
let downloadValue = 0, uploadValue = 0;
for (let i = 0; i < sensorsModel.sensors.length; i++) {
data = sensorsModel.getData(i);
if (typeof data === "undefined") {
continue;
} else if (data.sensorId.indexOf('/download') !== -1) {
downloadValue += data.value;
} else {
uploadValue += data.value;
}
}
// Fix dialect AND store it for update label
_downloadValue = downloadValue *= dialect.KiBDiff;
_uploadValue = uploadValue *= dialect.KiBDiff;
// Insert datas
root._insertChartData(0, downloadValue);
root._insertChartData(1, uploadValue);
// Update label
if (textContainer.valueVisible) {
_updateData(0);
_updateData(1);
}
}
function _updateData(index) {
// Cancel update if first data is not here
if (!sensorsModel.hasIndex(0, 0)) {
return;
}
// Retrieve label need to update
const label = _getLabel(index);
if (typeof label === "undefined" || !label.enabled) {
return;
}
const value = index === 0 ? _downloadValue : _uploadValue;
// Show value on label
label.text = Functions.formatByteValue(value, dialect);
label.visible = true;
}
function _updateSensors() {
if (typeof networkInterfaces.model.count === "undefined") {
return;
}
const sensors = [];
for (let i = 0; i < networkInterfaces.model.count; i++) {
const name = networkInterfaces.model.get(i).name;
if (plasmoid.configuration.ignoredNetworkInterfaces.indexOf(name) === -1) {
sensors.push("network/" + name + "/download", "network/" + name + "/upload");
}
}
sensorsModel.sensors = sensors;
_clear();
}
function _updateUplimits() {
uplimits = [plasmoid.configuration.networkReceivingTotal * dialect.multiplier, plasmoid.configuration.networkSendingTotal * dialect.multiplier];
}
}

39
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/ArrayDataSource.qml

@ -1,39 +0,0 @@
import QtQuick 2.9
import org.kde.quickcharts 1.0 as Charts
Charts.ArraySource {
property int maximumHistory: -1
onMaximumHistoryChanged: {
if (maximumHistory != -1) {
if (array.length === 0) {
array = Array(maximumHistory).fill(0);
}
_update(false);
}
}
function clear() {
array = maximumHistory === -1 ? [] : Array(maximumHistory).fill(0);
// Emit update
dataChanged();
}
function insertValue(value) {
array = [value, ...array];
_update();
}
function _update() {
// Reorder array
while (array.length > 0 && array.length > maximumHistory) {
array = array.slice(0, -1);
}
// Emit update
dataChanged();
}
Component.onCompleted: {
array = maximumHistory === -1 ? [] : Array(maximumHistory).fill(0);
}
}

164
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/BaseSensorGraph.qml

@ -1,164 +0,0 @@
import QtQuick 2.9
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.ksysguard.sensors 1.0 as Sensors
import org.kde.ksysguard.formatter 1.0 as Formatter
import "./" as RMBaseGraph
Item {
id: root
signal chartDataChanged(int index)
signal showValueInLabel
signal labelChanged(PlasmaComponents.Label label, var value)
// Aliases
readonly property alias textContainer: textContainer
readonly property alias sensorsModel: sensorsModel
// Thresholds properties
property var thresholds: [undefined, undefined, undefined]
property color thresholdWarningColor: plasmoid.configuration.customWarningColor ? plasmoid.configuration.warningColor : theme.neutralTextColor
property color thresholdCriticalColor: plasmoid.configuration.customCriticalColor ? plasmoid.configuration.criticalColor : theme.negativeTextColor
// Labels
RMBaseGraph.GraphText {
id: textContainer
anchors.fill: parent
z: 1
onShowValueInLabel: {
// Update labels
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
// Emit signal
root.showValueInLabel();
}
}
// Retrieve data from sensors, and update labels
Sensors.SensorDataModel {
id: sensorsModel
updateRateLimit: -1
enabled: root.visible
/**
* Get the data from sensor
* @param {number} column The sensors index
* @returns The data value, formatted value and sensor id
*/
function getData(column) {
if (!hasIndex(0, column)) {
return undefined;
}
const indexVar = index(0, column);
const value = data(indexVar, Sensors.SensorDataModel.Value);
const res = {
"sensorId": data(indexVar, Sensors.SensorDataModel.SensorId),
"value": value
};
return res;
}
/**
* Get info from sensor
* @param {number} column The sensor index
* @param {number} role The role id
* @returns The sensor info
*/
function getInfo(column, role = Sensors.SensorDataModel.Value) {
if (!hasIndex(0, column)) {
return 0;
}
return data(index(0, column), role);
}
}
Connections {
target: root
/**
* Re assign sensorsModel.sensors when enable visibility for right initialize it.
* This is due to an issue when set sensors and model is disabled, the sensors is never initialized
* Bug reported at : https://bugs.kde.org/show_bug.cgi?id=469234
*/
function onVisibleChanged() {
if (!root.visible) {
return;
}
const sensors = sensorsModel.sensors;
sensorsModel.sensors = [];
sensorsModel.sensors = sensors;
}
}
// Process functions
property var _insertChartData: (column, value) => {} // NOTE: this is implemented by children
property var _clear: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
property var _update: () => {
for (let i = 0; i < sensorsModel.sensors.length; i++) {
root._insertChartData(i, sensorsModel.getInfo(i));
// Update label
if (textContainer.valueVisible) {
_updateData(i);
}
}
}
function _getLabel(index) {
if (index === 0) {
return textContainer.firstLineLabel;
} else if (index === 1) {
return textContainer.secondLineLabel;
} else if (index === 2) {
return textContainer.thirdLineLabel;
}
return undefined;
}
function _updateData(index) {
// Retrieve label need to update
const label = _getLabel(index);
if (typeof label === "undefined" || !label.enabled) {
return;
}
const data = sensorsModel.getData(index);
if (typeof data === 'undefined') {
return;
}
// Hide can't be zero label
if (!textContainer.labelsVisibleWhenZero[index] && data.value === 0) {
label.text = '';
label.visible = false;
} else {
// Handle threshold value
if (typeof thresholds[index] !== 'undefined') {
if (data.value >= thresholds[index][1]) {
label.color = thresholdCriticalColor;
} else if (data.value >= thresholds[index][0]) {
label.color = thresholdWarningColor;
} else {
label.color = textContainer.getTextColor(index);
}
}
// Show value on label
label.text = _formatValue(index, data);
label.visible = label.enabled;
}
labelChanged(label, data);
}
property var _formatValue: _defaultFormatValue
function _defaultFormatValue(index, data) {
return Formatter.Formatter.formatValueShowNull(data.value, sensorsModel.getInfo(index, Sensors.SensorDataModel.Unit));
}
}

257
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/GraphText.qml

@ -1,257 +0,0 @@
import QtQuick 2.9
import QtGraphicalEffects 1.0
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PlasmaComponents
Item {
id: graphText
signal showValueInLabel
property bool valueVisible: false
// Aliases
readonly property alias firstLineLabel: firstLineLabel
readonly property alias secondLineLabel: secondLineLabel
readonly property alias thirdLineLabel: thirdLineLabel
// Text properties
property var labels: ["", "", ""]
property var valueColors: [theme.textColor, theme.textColor, theme.textColor]
property var labelColors: [theme.highlightColor, theme.textColor, theme.textColor]
property var labelsVisibleWhenZero: [true, true, true]
// Config aliases
property string displayment: plasmoid.configuration.displayment // Values: always, hover, hover-hints
// Bind config changes
onDisplaymentChanged: {
if (displayment === 'hover') {
valueVisible = mouseArea.containsMouse;
_setLabelsState(valueVisible);
if (mouseArea.containsMouse) {
showValueInLabel();
}
} else {
_setLabelsState(true);
showValueInLabel();
valueVisible = true;
}
}
// Bind properties changes
onLabelsChanged: {
firstLineLabel.enabled = firstLineLabel.visible = labels[0] != "";
secondLineLabel.enabled = secondLineLabel.visible = labels[1] != "";
thirdLineLabel.enabled = thirdLineLabel.visible = labels[2] != "";
}
// Labels
Flow {
id: textContainer
width: parent.width
state: plasmoid.configuration.placement // Values: top-right, top-left, bottom-right, bottom-left
spacing: -2
flow: Flow.TopToBottom
// First line
PlasmaComponents.Label {
id: firstLineLabel
width: parent.width
height: contentHeight
readonly property int index: 0
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
PlasmaComponents.Label {
id: secondLineLabel
width: parent.width
height: contentHeight
readonly property int index: 1
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
PlasmaComponents.Label {
id: thirdLineLabel
width: parent.width
height: contentHeight
readonly property int index: 2
text: "..."
color: getTextColor(index)
font.pointSize: -1
}
// States
states: [
State {
name: 'top-left'
AnchorChanges {
target: textContainer
anchors.top: parent.top
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignLeft
}
},
State {
name: 'top-right'
AnchorChanges {
target: textContainer
anchors.top: parent.top
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignRight
}
},
State {
name: 'bottom-left'
AnchorChanges {
target: textContainer
anchors.bottom: parent.bottom
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignLeft
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignLeft
}
},
State {
name: 'bottom-right'
AnchorChanges {
target: textContainer
anchors.bottom: parent.bottom
}
PropertyChanges {
target: firstLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: secondLineLabel
horizontalAlignment: Text.AlignRight
}
PropertyChanges {
target: thirdLineLabel
horizontalAlignment: Text.AlignRight
}
}
]
}
DropShadow {
visible: plasmoid.configuration.enableShadows
anchors.fill: textContainer
radius: 1
spread: 1
fast: true
color: theme.backgroundColor
source: textContainer
}
// Action
MouseArea {
id: mouseArea
anchors.fill: parent
acceptedButtons: Qt.NoButton
hoverEnabled: displayment !== 'always'
property bool _firstHover: true
property var _oldLabelsState: []
function _saveOldLabelsState() {
_oldLabelsState = [[firstLineLabel.text + "", !!firstLineLabel.visible], [secondLineLabel.text + "", !!secondLineLabel.visible], [thirdLineLabel.text + "", !!thirdLineLabel.visible]];
}
onEntered: {
if (displayment === 'hover-hints') {
valueVisible = false;
_saveOldLabelsState();
_setLabelsState(true);
// Show label hints
_setTextAndColor(firstLineLabel, labels[firstLineLabel.index], true);
_setTextAndColor(secondLineLabel, labels[secondLineLabel.index], true);
_setTextAndColor(thirdLineLabel, labels[thirdLineLabel.index], true);
} else if (displayment === 'hover') {
_setLabelsState(true);
showValueInLabel();
valueVisible = true;
}
}
onExited: {
if (displayment === 'hover-hints') {
// Recover old state
_setTextAndColor(firstLineLabel, _oldLabelsState[firstLineLabel.index][0]);
firstLineLabel.visible = _oldLabelsState[firstLineLabel.index][1];
_setTextAndColor(secondLineLabel, _oldLabelsState[secondLineLabel.index][0]);
secondLineLabel.visible = _oldLabelsState[secondLineLabel.index][1];
_setTextAndColor(thirdLineLabel, _oldLabelsState[thirdLineLabel.index][0]);
thirdLineLabel.visible = _oldLabelsState[thirdLineLabel.index][1];
// Update value
showValueInLabel();
valueVisible = true;
} else if (displayment === 'hover') {
valueVisible = false;
_setLabelsState(false);
}
}
}
function getTextColor(index, isLabel = false) {
if (isLabel) {
return labelColors[index] || theme.textColor;
}
return valueColors[index] || theme.textColor;
}
function _setLabelsState(state) {
if (state) {
firstLineLabel.visible = firstLineLabel.enabled;
secondLineLabel.visible = secondLineLabel.enabled;
thirdLineLabel.visible = thirdLineLabel.enabled;
} else {
firstLineLabel.visible = secondLineLabel.visible = thirdLineLabel.visible = false;
}
}
function _setTextAndColor(label, value, isLabel = false) {
if (!label.enabled) {
return;
}
label.text = value;
label.color = getTextColor(label.index, isLabel);
}
}

47
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/SensorGraph.qml

@ -1,47 +0,0 @@
import org.kde.plasma.plasmoid 2.0
import org.kde.quickcharts 1.0 as Charts
import "./" as RMBaseGraph
RMBaseGraph.BaseSensorGraph {
id: root
// Aliases
property alias chart: chart
// Graph properties
property color chartColor: theme.highlightColor
// Graph
Charts.LineChart {
id: chart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: chartColor
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: chartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
_clear: () => {
chartData.clear();
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
_insertChartData: (column, value) => {
if (column == 0) {
chartData.insertValue(value);
root.chartDataChanged(0);
}
}
}

75
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/graph/base/TwoSensorsGraph.qml

@ -1,75 +0,0 @@
import org.kde.plasma.plasmoid 2.0
import org.kde.quickcharts 1.0 as Charts
import "./" as RMBaseGraph
RMBaseGraph.BaseSensorGraph {
id: root
property var uplimits: [100, 100]
// Graph properties
property var colors: [theme.highlightColor, theme.textColor]
// Bind properties changes
onUplimitsChanged: {
firstChart.yRange.to = uplimits[0];
secondChart.yRange.to = uplimits[1];
}
// Graphs
Charts.LineChart {
id: secondChart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: colors[1]
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: secondChartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
Charts.LineChart {
id: firstChart
anchors.fill: parent
direction: Charts.XYChart.ZeroAtEnd
fillOpacity: plasmoid.configuration.graphFillOpacity / 100
smooth: true
yRange.automatic: false
colorSource: Charts.SingleValueSource {
value: colors[0]
}
valueSources: [
RMBaseGraph.ArrayDataSource {
id: firstChartData
maximumHistory: plasmoid.configuration.historyAmount
}
]
}
_clear: () => {
firstChartData.clear()
secondChartData.clear()
for (let i = 0; i < sensorsModel.sensors.length; i++) {
_updateData(i);
}
}
_insertChartData: (column, value) => {
if (column == 0) {
firstChartData.insertValue(value);
root.chartDataChanged(0);
} else if (column == 1) {
secondChartData.insertValue(value);
root.chartDataChanged(1);
}
}
}

72
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/components/sensors/CpuFrequency.qml

@ -1,72 +0,0 @@
import QtQuick 2.0
import org.kde.ksysguard.sensors 1.0 as Sensors
import org.kde.ksysguard.formatter 1.0 as Formatter
// TODO (3.0): remove this
Sensors.SensorDataModel {
id: root
property int _coreCount
property string agregator: "average" // Possible value: average, minimum, maximum
property bool needManual
signal ready
function getFormattedValue() {
return Formatter.Formatter.formatValueShowNull(getValue(), 302 /* Formatter.Unit.UnitMegaHertz */);
}
function getValue() {
let values = [];
for (let i = 0; i < _coreCount; i++) {
values[i] = data(index(0, i), Sensors.SensorDataModel.Value);
}
// Agregate values
if (agregator === "average") {
return values.reduce((a, b) => a + b, 0) / _coreCount;
} else if (agregator === "minimum") {
return Math.min(...values);
} else if (agregator === "maximum") {
return Math.max(...values);
} else {
return undefined;
}
}
updateRateLimit: -1
Component.onCompleted: {
sensors = ["cpu/all/coreCount", "cpu/all/" + agregator + "Frequency"];
}
property bool _initialized
property Timer _timer: Timer {
running: enabled
interval: 100 // Wait to be sure all sensors metadata has retrieved
onTriggered: {
/// Prevent running multiple times
if (_initialized) {
return;
}
_initialized = true;
// Do nothing if all frequency is already exist
if (hasIndex(0, 1)) {
root.enabled = false;
root.ready();
return;
}
// Fill sensors with all cores
_coreCount = data(index(0, 0));
const sensors = [];
for (let i = 0; i < _coreCount; i++) {
sensors[i] = "cpu/cpu" + i + "/frequency";
}
root.sensors = sensors;
root.needManual = true;
root.ready();
}
}
}

510
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigAppearance.qml

@ -1,510 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../controls" as RMControls
import "../components" as RMComponents
PlasmaExtras.Representation {
id: page
anchors.fill: parent
// Chart
property alias cfg_verticalLayout: verticalLayout.checked
property alias cfg_historyAmount: historyAmount.value
property alias cfg_customGraphWidth: graphWidth.customized
property alias cfg_graphWidth: graphWidth.value
property alias cfg_customGraphHeight: graphHeight.customized
property alias cfg_graphHeight: graphHeight.value
property alias cfg_graphMargin: graphMargin.value
property alias cfg_graphFillOpacity: graphFillOpacity.value
property var cfg_graphOrders
// Text
property alias cfg_enableShadows: enableShadows.checked
property alias cfg_fontScale: fontScale.value
property string cfg_placement
property string cfg_displayment
// Colors
// > CPU
property alias cfg_customCpuColor: cpuColor.customized
property alias cfg_cpuColor: cpuColor.value
property alias cfg_customCpuTemperatureColor: cpuTemperatureColor.customized
property alias cfg_cpuTemperatureColor: cpuTemperatureColor.value
// > Memory
property alias cfg_customRamColor: ramColor.customized
property alias cfg_ramColor: ramColor.value
property alias cfg_customSwapColor: swapColor.customized
property alias cfg_swapColor: swapColor.value
// > Network
property alias cfg_customNetDownColor: netDownColor.customized
property alias cfg_netDownColor: netDownColor.value
property alias cfg_customNetUpColor: netUpColor.customized
property alias cfg_netUpColor: netUpColor.value
// > GPU
property alias cfg_customGpuColor: gpuColor.customized
property alias cfg_gpuColor: gpuColor.value
property alias cfg_customGpuMemoryColor: gpuMemoryColor.customized
property alias cfg_gpuMemoryColor: gpuMemoryColor.value
property alias cfg_customGpuTemperatureColor: gpuTemperatureColor.customized
property alias cfg_gpuTemperatureColor: gpuTemperatureColor.value
// > Disk
property alias cfg_customDiskReadColor: diskReadColor.customized
property alias cfg_diskReadColor: diskReadColor.value
property alias cfg_customDiskWriteColor: diskWriteColor.customized
property alias cfg_diskWriteColor: diskWriteColor.value
// > Threshold
property alias cfg_customWarningColor: warningColor.customized
property alias cfg_warningColor: warningColor.value
property alias cfg_customCriticalColor: criticalColor.customized
property alias cfg_criticalColor: criticalColor.value
property color textColor: theme.textColor
property color primaryColor: theme.highlightColor
property color positiveColor: theme.positiveTextColor
property color neutralColor: theme.neutralTextColor
property color negativeColor: theme.negativeTextColor
property var monitors: {
"cpu": {
"id": "cpu",
"name": i18nc("Chart name", "CPU"),
"icon": "cpu-symbolic"
},
"memory": {
"id": "memory",
"name": i18nc("Chart name", "Memory"),
"icon": "memory-symbolic"
},
"gpu": {
"id": "gpu",
"name": i18nc("Chart name", "GPU"),
"icon": "freon-gpu-temperature-symbolic"
},
"disks": {
"id": "disks",
"name": i18nc("Chart name", "Disks I/O"),
"icon": "drive-harddisk-symbolic"
},
"network": {
"id": "network",
"name": i18nc("Chart name", "Network"),
"icon": "network-wired-symbolic"
}
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "office-chart-line-stacked"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Charts")
}
PlasmaComponents.TabButton {
icon.name: "dialog-text-and-font"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Text")
}
PlasmaComponents.TabButton {
icon.name: "color-select"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Colors")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// Charts
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: graphPage
wideMode: true
QtControls.CheckBox {
id: verticalLayout
text: i18n("Vertical layout")
}
RMControls.SpinBox {
id: historyAmount
Kirigami.FormData.label: i18n("History amount:")
QtLayouts.Layout.fillWidth: true
from: 2
}
RMControls.CustomizableSize {
id: graphWidth
Kirigami.FormData.label: i18n("Width:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
}
RMControls.CustomizableSize {
id: graphHeight
Kirigami.FormData.label: i18n("Height:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
}
RMControls.SpinBox {
id: graphMargin
Kirigami.FormData.label: i18n("Margin:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 1000
textFromValue: function (value, locale) {
return valueToText(value, locale) + " px";
}
}
RMControls.SpinBox {
id: graphFillOpacity
Kirigami.FormData.label: i18n("Fill opacity:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 100
textFromValue: function (value, locale) {
return valueToText(value, locale) + "%";
}
}
// order
Item {
Kirigami.FormData.label: i18n("Charts order")
Kirigami.FormData.isSection: true
}
ListView {
id: graphsList
anchors.left: parent.left
anchors.right: parent.right
clip: true
interactive: false
property int listViewHeight: 0
implicitHeight: listViewHeight
model: ListModel {
Component.onCompleted: cfg_graphOrders.map(id => monitors[id]).forEach(item => append(item))
function toJS() {
const result = [];
for (let i = 0; i < count; i++) {
result.push(get(i));
}
return result;
}
}
delegate: Kirigami.DelegateRecycler {
width: graphsList.width
sourceComponent: delegateComponent
Component.onCompleted: {
graphsList.listViewHeight += height + 1;
}
}
moveDisplaced: Transition {
YAnimator {
duration: Kirigami.Units.longDuration
easing.type: Easing.InOutQuad
}
}
Component {
id: delegateComponent
Kirigami.AbstractListItem {
id: listItem
backgroundColor: theme.headerBackgroundColor
separatorVisible: true
contentItem: QtLayouts.RowLayout {
spacing: Kirigami.Units.largeSpacing
Kirigami.ListItemDragHandle {
listView: graphsList
listItem: listItem
onMoveRequested: graphsList.model.move(oldIndex, newIndex, 1)
onDropped: {
cfg_graphOrders = graphsList.model.toJS().map(item => item.id);
}
}
PlasmaCore.IconItem {
source: model.icon
width: PlasmaCore.Units.iconSizes.smallMedium
height: width
}
PlasmaComponents.Label {
text: model.name
QtLayouts.Layout.fillWidth: true
}
}
}
}
}
}
}
// Text
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: textPage
wideMode: true
QtControls.CheckBox {
id: enableShadows
text: i18n("Drop shadows")
}
RMControls.SpinBox {
id: fontScale
Kirigami.FormData.label: i18n("Font scale:")
QtLayouts.Layout.fillWidth: true
from: 1
to: 100
textFromValue: function (value, locale) {
return valueToText(value, locale) + "%";
}
}
QtControls.ComboBox {
id: displayment
Kirigami.FormData.label: i18n("Text displayment:")
currentIndex: -1
textRole: "label"
valueRole: "name"
model: [{
"label": i18nc("Text displayment", "Always"),
"name": "always"
}, {
"label": i18nc("Text displayment", "On hover"),
"name": "hover"
}, {
"label": i18nc("Text displayment", "Hints when hover"),
"name": "hover-hints"
}]
onActivated: cfg_displayment = currentValue
Component.onCompleted: currentIndex = indexOfValue(cfg_displayment)
}
QtControls.ComboBox {
id: placement
Kirigami.FormData.label: i18n("Placement:")
currentIndex: -1
textRole: "label"
valueRole: "name"
model: [{
"label": i18nc("Text placement", "Top left"),
"name": "top-left"
}, {
"label": i18nc("Text placement", "Top right"),
"name": "top-right"
}, {
"label": i18nc("Text placement", "Bottom left"),
"name": "bottom-left"
}, {
"label": i18nc("Text placement", "Bottom right"),
"name": "bottom-right"
}]
onActivated: cfg_placement = currentValue
Component.onCompleted: currentIndex = indexOfValue(cfg_placement)
}
}
}
// Colors
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: colorsPage
// Charts
Kirigami.Separator {
Kirigami.FormData.label: i18n("Charts colors")
Kirigami.FormData.isSection: true
}
// > CPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "CPU")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: cpuColor
Kirigami.FormData.label: i18nc("Chart config", "Usage:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: cpuTemperatureColor
Kirigami.FormData.label: i18nc("Chart config", "Temperature:")
dialogTitle: i18nc("Chart color", "Choose text color")
defaultColor: textColor
}
// > Memory
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Memory")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: ramColor
Kirigami.FormData.label: i18nc("Chart config", "Physical:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: swapColor
Kirigami.FormData.label: i18nc("Chart config", "Swap:")
dialogTitle: i18nc("Chart color", "Choose color of series and text")
defaultColor: negativeColor
}
// > Network
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: netDownColor
Kirigami.FormData.label: i18nc("Chart config", "Receiving:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: netUpColor
Kirigami.FormData.label: i18nc("Chart config", "Sending:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
// > GPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "GPU")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: gpuColor
Kirigami.FormData.label: i18nc("Chart config", "Usage:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: gpuMemoryColor
Kirigami.FormData.label: i18nc("Chart config", "Memory:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
RMControls.ColorSelector {
id: gpuTemperatureColor
Kirigami.FormData.label: i18nc("Chart config", "Temperature:")
dialogTitle: i18nc("Chart color", "Choose text color")
defaultColor: textColor
}
// > Disk I/O
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: diskReadColor
Kirigami.FormData.label: i18nc("Chart config", "Read:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: primaryColor
}
RMControls.ColorSelector {
id: diskWriteColor
Kirigami.FormData.label: i18nc("Chart config", "Write:")
dialogTitle: i18nc("Chart color", "Choose series color")
defaultColor: positiveColor
}
// Thresholds
Kirigami.Separator {
Kirigami.FormData.label: i18n("Threshold text colors")
Kirigami.FormData.isSection: true
}
RMControls.ColorSelector {
id: warningColor
Kirigami.FormData.label: i18n("Warning status:")
dialogTitle: i18n("Choose text color when the value is in warning status")
defaultColor: neutralColor
}
RMControls.ColorSelector {
id: criticalColor
Kirigami.FormData.label: i18n("Critical status:")
dialogTitle: i18n("Choose text color when the value is in critical status")
defaultColor: negativeColor
}
}
}
}
}

451
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigData.qml

@ -1,451 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../components" as RMComponents
import "../controls" as RMControls
import "../components/functions.js" as Functions
PlasmaExtras.Representation {
id: dataPage
anchors.fill: parent
// Network
readonly property var networkDialect: Functions.getNetworkDialectInfo(plasmoid.configuration.networkUnit)
property var cfg_ignoredNetworkInterfaces
property alias cfg_networkReceivingTotal: networkReceiving.realValue
property alias cfg_networkSendingTotal: networkSending.realValue
// Disks I/O
property alias cfg_diskReadTotal: diskRead.realValue
property alias cfg_diskWriteTotal: diskWrite.realValue
// GPU
property string cfg_gpuIndex
// Thresholds
property alias cfg_thresholdWarningCpuTemp: thresholdWarningCpuTemp.realValue
property alias cfg_thresholdCriticalCpuTemp: thresholdCriticalCpuTemp.realValue
property alias cfg_thresholdWarningMemory: thresholdWarningMemory.value
property alias cfg_thresholdCriticalMemory: thresholdCriticalMemory.value
property alias cfg_thresholdWarningGpuTemp: thresholdWarningGpuTemp.realValue
property alias cfg_thresholdCriticalGpuTemp: thresholdCriticalGpuTemp.realValue
readonly property var networkSpeedOptions: [{
"label": i18n("Custom"),
"value": -1
}, {
"label": "100 " + networkDialect.kiloChar + networkDialect.suffix,
"value": 100.0
}, {
"label": "1 M" + networkDialect.suffix,
"value": 1000.0
}, {
"label": "10 M" + networkDialect.suffix,
"value": 10000.0
}, {
"label": "100 M" + networkDialect.suffix,
"value": 100000.0
}, {
"label": "1 G" + networkDialect.suffix,
"value": 1000000.0
}, {
"label": "2.5 G" + networkDialect.suffix,
"value": 2500000.0
}, {
"label": "5 G" + networkDialect.suffix,
"value": 5000000.0
}, {
"label": "10 G" + networkDialect.suffix,
"value": 10000000.0
}]
readonly property var diskSpeedOptions: [{
"label": i18n("Custom"),
"value": -1
}, {
"label": "10 MiB/s",
"value": 10000.0
}, {
"label": "100 MiB/s",
"value": 100000.0
}, {
"label": "200 MiB/s",
"value": 200000.0
}, {
"label": "500 MiB/s",
"value": 500000.0
}, {
"label": "1 GiB/s",
"value": 1000000.0
}, {
"label": "2 GiB/s",
"value": 2000000.0
}, {
"label": "5 GiB/s",
"value": 5000000.0
}, {
"label": "10 GiB/s",
"value": 10000000.0
}]
// Detect network interfaces
RMComponents.NetworkInterfaceDetector {
id: networkInterfaces
}
// Detect GPU cards
RMComponents.GpuDetector {
id: gpuCards
onReady: gpuCardSelector.select()
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "settings"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "General")
}
PlasmaComponents.TabButton {
icon.name: "dialog-warning"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Thresholds")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// General
Kirigami.ScrollablePage {
Kirigami.FormLayout {
wideMode: true
// Network
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
// Interfaces
QtLayouts.GridLayout {
Kirigami.FormData.label: i18n("Network interfaces:")
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
Repeater {
model: networkInterfaces.model
QtControls.CheckBox {
readonly property string interfaceName: modelData
readonly property bool ignoredByDefault: {
return /^(docker|tun|tap)(\d+)/.test(interfaceName); // Ignore docker and tun/tap networks
}
text: interfaceName
checked: cfg_ignoredNetworkInterfaces.indexOf(interfaceName) == -1 && !ignoredByDefault
enabled: !ignoredByDefault
onClicked: {
var ignoredNetworkInterfaces = cfg_ignoredNetworkInterfaces.slice(0); // copy()
if (checked) {
// Checking, and thus removing from the ignoredNetworkInterfaces
var i = ignoredNetworkInterfaces.indexOf(interfaceName);
ignoredNetworkInterfaces.splice(i, 1);
} else {
// Unchecking, and thus adding to the ignoredNetworkInterfaces
ignoredNetworkInterfaces.push(interfaceName);
}
cfg_ignoredNetworkInterfaces = ignoredNetworkInterfaces;
}
}
}
}
// Transfer speed
Item {
Kirigami.FormData.label: i18n("Maximum transfer speed")
Kirigami.FormData.isSection: true
}
RMControls.PredefinedSpinBox {
id: networkReceiving
Kirigami.FormData.label: i18nc("Chart config", "Receiving:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: networkSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
RMControls.PredefinedSpinBox {
id: networkSending
Kirigami.FormData.label: i18nc("Chart config", "Sending:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: networkSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
// Disk I/O
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
Item {
Kirigami.FormData.label: i18n("Maximum transfer speed")
Kirigami.FormData.isSection: true
}
RMControls.PredefinedSpinBox {
id: diskRead
Kirigami.FormData.label: i18nc("Chart config", "Read:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: diskSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
RMControls.PredefinedSpinBox {
id: diskWrite
Kirigami.FormData.label: i18nc("Chart config", "Write:")
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.minimumWidth: predefinedChoices.currentIndex == 0 ? 300 : 0
factor: 1000
predefinedChoices {
textRole: "label"
valueRole: "value"
model: diskSpeedOptions
}
spinBox {
decimals: 3
stepSize: 1
minimumValue: 0.001
textFromValue: function (value, locale) {
return spinBox.valueToText(value, locale) + " M" + networkDialect.suffix;
}
}
}
// GPU
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Config header", "Graphic card")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
id: gpuCardSelector
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Graphic card:")
currentIndex: -1
textRole: "name"
valueRole: "index"
model: gpuCards.model
onActivated: cfg_gpuIndex = currentValue
function select() {
currentIndex = indexOfValue(cfg_gpuIndex);
}
}
}
}
// Thresholds
Kirigami.ScrollablePage {
Kirigami.FormLayout {
id: thresholdsPage
wideMode: true
property double kirigamiWidth: preferredWidth * 2 + Kirigami.Units.largeSpacing
property double preferredWidth: {
const minimumWidth = Math.max(80, warningHeader.contentWidth, criticalHeader.contentWidth);
return Math.max(minimumWidth,
// CPU
thresholdWarningCpuTemp.implicitWidth, thresholdCriticalCpuTemp.implicitWidth,
// Memory
thresholdWarningMemory.implicitWidth, thresholdCriticalMemory.implicitWidth,
// Memory
thresholdWarningMemory.implicitWidth, thresholdCriticalMemory.implicitWidth,
// GPU
thresholdWarningGpuTemp.implicitWidth, thresholdCriticalGpuTemp.implicitWidth);
}
// Header
QtLayouts.RowLayout {
QtLayouts.Layout.fillWidth: true
spacing: Kirigami.Units.largeSpacing
PlasmaComponents.Label {
id: warningHeader
text: i18n("Warning")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
}
PlasmaComponents.Label {
id: criticalHeader
text: i18n("Critical")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
}
}
// CPU Temperature
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("CPU Temperature:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningCpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
RMControls.SpinBox {
id: thresholdCriticalCpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
}
// Memory usage
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("Physical Memory Usage:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningMemory
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
textFromValue: function (value, locale) {
return value + " %";
}
}
RMControls.SpinBox {
id: thresholdCriticalMemory
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
textFromValue: function (value, locale) {
return value + " %";
}
}
}
// GPU Temperature
QtLayouts.RowLayout {
Kirigami.FormData.label: i18n("GPU Temperature:")
QtLayouts.Layout.preferredWidth: thresholdsPage.kirigamiWidth
spacing: Kirigami.Units.largeSpacing
RMControls.SpinBox {
id: thresholdWarningGpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
RMControls.SpinBox {
id: thresholdCriticalGpuTemp
QtLayouts.Layout.preferredWidth: thresholdsPage.preferredWidth
decimals: 1
stepSize: 1
minimumValue: 0.1
maximumValue: 120
textFromValue: function (value, locale) {
return valueToText(value, locale) + " °C";
}
}
}
}
}
}
}

453
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/config/ConfigGeneral.qml

@ -1,453 +0,0 @@
import QtQuick 2.2
import QtQuick.Controls 2.12 as QtControls
import QtQuick.Layouts 1.15 as QtLayouts
import org.kde.kirigami 2.6 as Kirigami
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.components 2.0 as PC2
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.plasma.extras 2.0 as PlasmaExtras
import "../components" as RMComponents
import "../controls" as RMControls
PlasmaExtras.Representation {
id: page
anchors.fill: parent
// Charts
property alias cfg_updateInterval: updateInterval.realValue
// > CPU
property bool cfg_showCpuMonitor
property string cfg_cpuUnit
property bool cfg_showClock
property string cfg_clockAgregator
property alias cfg_showCpuTemperature: showCpuTemperature.checked
// > Memory
property bool cfg_showRamMonitor
property string cfg_memoryUnit
property alias cfg_memorySwapGraph: memorySwapGraph.checked
// > Network
property bool cfg_showNetMonitor
property string cfg_networkUnit
// > GPU
property alias cfg_showGpuMonitor: showGpuMonitor.checked
property alias cfg_gpuMemoryInPercent: gpuMemoryInPercent.checked
property alias cfg_gpuMemoryGraph: gpuMemoryGraph.checked
property alias cfg_showGpuTemperature: showGpuTemperature.checked
// > Disks I/O
property alias cfg_showDiskMonitor: showDiskMonitor.checked
// Click action
property string cfg_actionService
// Apps model
RMComponents.AppsDetector {
id: appsModel
filterString: appsFilter.text
filterCallback: function (index, value) {
var search = filterString.toLowerCase();
if (search.length === 0) {
return true;
}
if (value.toLowerCase().indexOf(search) !== -1) {
return true;
}
if (sourceModel.get(index).menuId.replace(".desktop", "").toLowerCase().indexOf(search) !== -1) {
return true;
}
return false;
}
onFilterStringChanged: appsList.updateCurrentIndex()
}
// Tab bar
header: PlasmaExtras.PlasmoidHeading {
location: PlasmaExtras.PlasmoidHeading.Location.Header
PlasmaComponents.TabBar {
id: bar
position: PlasmaComponents.TabBar.Header
anchors.fill: parent
implicitHeight: contentHeight
PlasmaComponents.TabButton {
icon.name: "settings"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "General")
}
PlasmaComponents.TabButton {
icon.name: "input-mouse-symbolic"
icon.height: PlasmaCore.Units.iconSizes.smallMedium
text: i18nc("Config header", "Click action")
}
}
}
QtLayouts.StackLayout {
id: pageContent
anchors.fill: parent
currentIndex: bar.currentIndex
// General
Kirigami.ScrollablePage {
Kirigami.FormLayout {
wideMode: true
RMControls.SpinBox {
id: updateInterval
Kirigami.FormData.label: i18n("Update interval:")
QtLayouts.Layout.fillWidth: true
decimals: 1
minimumValue: 0.1
maximumValue: 3600.0
stepSize: Math.round(0.1 * factor)
textFromValue: function (value, locale) {
return i18n("%1 seconds", valueToText(value, locale));
}
}
// Charts
Kirigami.Separator {
Kirigami.FormData.label: i18nc("Config header", "Charts")
Kirigami.FormData.isSection: true
}
// CPU
Item {
Kirigami.FormData.label: i18nc("Chart name", "CPU")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("Total usage"),
"value": "usage"
}, {
"label": i18n("System usage"),
"value": "system"
}, {
"label": i18n("User usage"),
"value": "user"
}]
onActivated: {
if (currentValue === "none") {
cfg_showCpuMonitor = false;
} else {
cfg_showCpuMonitor = true;
cfg_cpuUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showCpuMonitor" and "cfg_cpuUnit"
currentIndex = cfg_showCpuMonitor ? indexOfValue(cfg_cpuUnit) : 0;
}
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Clock visibility:")
enabled: cfg_showCpuMonitor
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18nc("Agregator", "Average"),
"value": "average"
}, {
"label": i18nc("Agregator", "Minimum"),
"value": "minimum"
}, {
"label": i18nc("Agregator", "Maximum"),
"value": "maximum"
}]
onActivated: {
if (currentValue === "none") {
cfg_showClock = false;
} else {
cfg_showClock = true;
cfg_clockAgregator = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showClock" and "cfg_clockAgregator"
currentIndex = cfg_showClock ? indexOfValue(cfg_clockAgregator) : 0;
}
}
QtControls.CheckBox {
id: showCpuTemperature
text: i18n("Show temperature")
enabled: cfg_showCpuMonitor
}
// Memory
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Memory")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("Physical memory (in KiB)"),
"value": "physical"
}, {
"label": i18n("Physical memory (in %)"),
"value": "physical-percent"
}, {
"label": i18n("Application memory (in KiB)"),
"value": "application"
}, {
"label": i18n("Application memory (in %)"),
"value": "application-percent"
}]
onActivated: {
if (currentValue === "none") {
cfg_showRamMonitor = false;
} else {
cfg_showRamMonitor = true;
cfg_memoryUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showRamMonitor" and "cfg_memoryUnit"
currentIndex = cfg_showRamMonitor ? indexOfValue(cfg_memoryUnit) : 0;
}
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: memorySwapGraph
text: i18n("Show swap")
enabled: cfg_showRamMonitor
}
}
// Network
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Network")
Kirigami.FormData.isSection: true
}
QtControls.ComboBox {
QtLayouts.Layout.fillWidth: true
Kirigami.FormData.label: i18n("Visibility:")
currentIndex: -1
textRole: "label"
valueRole: "value"
model: [{
"label": i18n("Disabled"),
"value": "none"
}, {
"label": i18n("In kibibyte (KiB/s)"),
"value": "kibibyte"
}, {
"label": i18n("In kilobit (Kbps)"),
"value": "kilobit"
}, {
"label": i18n("In kilobyte (KBps)"),
"value": "kilobyte"
}]
onActivated: {
if (currentValue === "none") {
cfg_showNetMonitor = false;
} else {
cfg_showNetMonitor = true;
cfg_networkUnit = currentValue;
}
}
Component.onCompleted: {
// TODO (3.0): Merge "cfg_showNetMonitor" and "cfg_networkUnit"
currentIndex = cfg_showNetMonitor ? indexOfValue(cfg_networkUnit) : 0;
}
}
// GPU
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "GPU")
Kirigami.FormData.isSection: true
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: showGpuMonitor
text: i18n("Enabled?")
}
QtControls.CheckBox {
id: gpuMemoryGraph
text: i18n("Show memory")
enabled: showGpuMonitor.checked
}
QtControls.CheckBox {
id: gpuMemoryInPercent
text: i18n("Memory in percent")
enabled: showGpuMonitor.checked
}
QtControls.CheckBox {
id: showGpuTemperature
text: i18n("Show temperature")
enabled: showGpuMonitor.checked
}
}
// Disk I/O
Rectangle {
height: Kirigami.Units.largeSpacing
color: "transparent"
}
Item {
Kirigami.FormData.label: i18nc("Chart name", "Disks I/O")
Kirigami.FormData.isSection: true
}
QtLayouts.GridLayout {
QtLayouts.Layout.fillWidth: true
columns: 2
rowSpacing: Kirigami.Units.smallSpacing
columnSpacing: Kirigami.Units.largeSpacing
QtControls.CheckBox {
id: showDiskMonitor
text: i18n("Enabled?")
}
}
}
}
// Click action
QtLayouts.ColumnLayout {
id: clickPage
spacing: Kirigami.Units.largeSpacing
Kirigami.FormLayout {
wideMode: true
QtControls.TextField {
id: appsFilter
Kirigami.FormData.label: i18n("Search an application:")
QtLayouts.Layout.fillWidth: true
placeholderText: i18n("Application name")
inputMethodHints: Qt.ImhNoPredictiveText
}
}
// Apps list
PlasmaComponents.Label {
text: i18n("Applications")
font.pointSize: PlasmaCore.Theme.defaultFont.pointSize * 1.2
}
Item {
QtLayouts.Layout.fillWidth: true
QtLayouts.Layout.fillHeight: true
Rectangle {
anchors.fill: parent
color: theme.headerBackgroundColor
border.color: theme.complementaryBackgroundColor
border.width: 1
radius: 4
}
PlasmaComponents.ScrollView {
anchors.fill: parent
anchors.margins: 10
anchors.rightMargin: 5
ListView {
id: appsList
model: appsModel
clip: true
interactive: true
highlight: PC2.Highlight {
}
highlightMoveDuration: 0
highlightMoveVelocity: -1
delegate: RMComponents.ApplicationDelegateItem {
width: root.width
serviceName: model.menuId.replace(".desktop", "")
name: model.name
comment: model.comment
iconName: model.iconName
selected: ListView.isCurrentItem
onClicked: {
appsList.currentIndex = index;
cfg_actionService = serviceName;
}
}
Component.onCompleted: updateCurrentIndex()
function updateCurrentIndex() {
for (var i = 0; i < model.count; i++) {
if (model.get(i).menuId === cfg_actionService + ".desktop") {
currentIndex = i;
return;
}
}
currentIndex = -1;
}
}
}
}
}
}
}

49
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/ColorSelector.qml

@ -1,49 +0,0 @@
import QtQuick 2.2
import QtQuick.Dialogs 1.0 as QtDialog
import org.kde.plasma.components 3.0 as PlasmaComponents
import org.kde.kirigami 2.6 as Kirigami
PlasmaComponents.Button {
id: colorSelector
// Aliases
property alias value: colorPicker.currentColor
// Properties
property string label
property string dialogTitle
property color defaultColor
property bool customized
// Customized checkbox
enabled: Kirigami.FormData.checked
Kirigami.FormData.checkable: true
Kirigami.FormData.checked: customized
onEnabledChanged: customized = enabled
onClicked: colorPicker.open()
// Size
topPadding: 12
bottomPadding: topPadding
leftPadding: topPadding * 2
rightPadding: leftPadding
// Components
QtDialog.ColorDialog {
id: colorPicker
title: dialogTitle
}
MouseArea {
id: mouseArea
anchors.fill: parent
onPressed: mouse.accepted = false
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
}
background: Rectangle {
color: customized ? colorPicker.currentColor : defaultColor
opacity: colorPicker.enabled ? 1 : 0.75
radius: 2
}
}

20
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/CustomizableSize.qml

@ -1,20 +0,0 @@
import QtQuick 2.2
import org.kde.kirigami 2.6 as Kirigami
import "./" as RMControls
RMControls.SpinBox {
id: customizableSize
property bool customized
// Customized checkbox
enabled: Kirigami.FormData.checked
Kirigami.FormData.checkable: true
Kirigami.FormData.checked: customized
onEnabledChanged: customized = enabled
// Component
textFromValue: function (value, locale) {
return valueToText(value, locale) + " px";
}
}

57
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/PredefinedSpinBox.qml

@ -1,57 +0,0 @@
import QtQuick 2.0
import QtQuick.Layouts 1.15 as QtLayouts
import QtQuick.Controls 2.0 as QQC2
import org.kde.kirigami 2.6 as Kirigami
import "./" as RMControls
QtLayouts.RowLayout {
spacing: Kirigami.Units.largeSpacing
property alias predefinedChoices: predefinedChoices
property alias spinBox: spinBox
property int customValueIndex: 0
property real factor: 1 // This is for auto convert from Kilo, Mega, etc
property real value: Math.round(realValue / factor)
property real realValue
Component.onCompleted: {
// Initialize spin real value
spinBox.realValue = value;
// Bind "realValue" to "spinBox.realValue" and "factor"
realValue = Qt.binding(() => spinBox.realValue * factor);
}
QQC2.ComboBox {
id: predefinedChoices
QtLayouts.Layout.fillWidth: true
currentIndex: -1
onActivated: {
// Skip update spin box if user select custom option
if (currentIndex === customValueIndex) {
return;
}
// Set value from choice in spin box (for have only one place to manage value)
if (currentValue !== -1) {
spinBox.realValue = valueFromPredefinedChoice(currentValue, currentIndex);
}
}
// Auto select predefined choice
Component.onCompleted: {
const index = indexOfValue(realValue);
currentIndex = index !== -1 ? index : customValueIndex;
}
}
RMControls.SpinBox {
id: spinBox
QtLayouts.Layout.fillWidth: true
visible: predefinedChoices.currentIndex === customValueIndex
}
property var valueFromPredefinedChoice: (value, index) => value / factor
}

125
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/controls/SpinBox.qml

@ -1,125 +0,0 @@
/**
* Example:
import "./components/controls" as RMControls
// Integer
RMControls.SpinBox {
from: 0
to: 1000
stepSize: 5
textFromValue: function(value, locale) {
return valueToText(value, locale) + " px"
}
}
// Double
RMControls.SpinBox {
decimals: 3
minimumValue: 0.0
maximumValue: 1000.0
stepSize: Math.round(0.5 * factor)
textFromValue: function(value, locale) {
return valueToText(value, locale) + " m"
}
}
*/
import QtQuick 2.0
import QtQuick.Controls 2.0 as QQC2
import org.kde.plasma.core 2.0 as PlasmaCore
QQC2.SpinBox {
id: control
editable: true
readonly property real factor: Math.pow(10, decimals)
readonly property int spinBox_MININT: Math.ceil(-2147483648 / factor)
readonly property int spinBox_MAXINT: Math.floor(2147483647 / factor)
value: Math.round(realValue * factor)
from: Math.round(minimumValue * factor)
to: Math.round(maximumValue * factor)
// Copry from https://doc.qt.io/qt-5/qml-qtquick-controls2-spinbox.html#custom-values
property int decimals: 0
property real realValue
property real minimumValue: 0
property real maximumValue: spinBox_MAXINT
// Bind "realValue" to "value" and "factor"
Component.onCompleted: {
realValue = Qt.binding(() => value / factor);
}
validator: DoubleValidator {
locale: control.locale.name
bottom: Math.min(control.from, control.to)
top: Math.max(control.from, control.to)
}
textFromValue: valueToText
valueFromText: (text, locale) => {
text = text.replace(/[^\-\.\d]/g, ""); // Remove non digit characters
if (text === ".") {
text = "0";
}
return Number.fromLocaleString(locale, text) * factor;
}
property var valueToText: (value, locale) => {
// "toLocaleString" has no concept of "the minimum amount of
// digits to represent this number", so we need to calculate this
// manually. This ensures that things like "0" and "10" will be
// displayed without any decimals, while things like "2.2" and
// "3.87" will be displayed with the right number of decimals.
const realValue = Number(value / factor);
return realValue.toLocaleString(locale, 'f', countDecimals(realValue));
}
contentItem: TextInput {
opacity: enabled ? 1 : 0.5
text: control.displayText
font: control.font
color: PlasmaCore.Theme.viewTextColor
selectionColor: PlasmaCore.Theme.highlightColor
selectedTextColor: PlasmaCore.Theme.highlightedTextColor
verticalAlignment: Qt.AlignVCenter
readOnly: !control.editable
validator: control.validator
inputMethodHints: control.inputMethodHints
selectByMouse: true
// Accept return/enter key
Keys.onReturnPressed: returnPressed = true
Keys.onEnterPressed: returnPressed = true
// Reselect field when validate value with "return"
property bool returnPressed
onTextChanged: {
if (returnPressed) {
returnPressed = false;
selectAll();
}
}
}
// Allow cancel editing
Keys.onEscapePressed: {
contentItem.text = textFromValue(value, locale.name);
focus = false;
}
// Select value on foucs
onActiveFocusChanged: {
if (activeFocus) {
contentItem.selectAll();
}
}
function countDecimals(value) {
if (Math.floor(value) === value) {
return 0;
}
return value.toString().split(".")[1].length || 0;
}
}

123
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/contents/ui/main.qml

@ -1,123 +0,0 @@
/*
* Copyright 2015 Martin Kotelnik <clearmartin@seznam.cz>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http: //www.gnu.org/licenses/>.
*/
import QtQuick 2.9
import QtQuick.Layouts 1.1
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.kio 1.0 as Kio
import "./components/graph" as RMGraph
MouseArea {
id: root
readonly property bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical
// Settings properties
property bool verticalLayout: plasmoid.configuration.verticalLayout
property double fontScale: (plasmoid.configuration.fontScale / 100)
// Component properties
property int itemMargin: plasmoid.configuration.graphMargin
property double parentWidth: parent === null ? 0 : parent.width
property double parentHeight: parent === null ? 0 : parent.height
property double initWidth: vertical ? (verticalLayout ? parentWidth : (parentWidth - itemMargin) / 2) : (verticalLayout ? (parentHeight - itemMargin) / 2 : parentHeight)
property double itemWidth: plasmoid.configuration.customGraphWidth ? plasmoid.configuration.graphWidth : Math.round(initWidth * (verticalLayout ? 1 : 1.5))
property double itemHeight: plasmoid.configuration.customGraphHeight ? plasmoid.configuration.graphHeight : Math.round(initWidth)
property double fontPixelSize: Math.round(verticalLayout ? (itemHeight / 1.4 * fontScale) : (itemHeight * fontScale))
Layout.preferredWidth: !verticalLayout ? (itemWidth * graphView.model.length + itemMargin * (graphView.model.length + 1)) : itemWidth
Layout.preferredHeight: verticalLayout ? (itemHeight * graphView.model.length + itemMargin * (graphView.model.length + 1)) : itemHeight
LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
LayoutMirroring.childrenInherit: true
Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
// Click action
Kio.KRun {
id: kRun
}
onClicked: {
kRun.openService(plasmoid.configuration.actionService);
}
// Global update timer
Timer {
id: updateTask
interval: plasmoid.configuration.updateInterval * 1000
running: true
triggeredOnStart: true
repeat: true
onTriggered: {
for (const i in graphView.model) {
const graph = graphView.getGraph(i);
if (graph !== null) {
graph._update();
}
}
}
}
// Main Layout
ListView {
id: graphView
anchors.fill: parent
spacing: itemMargin
orientation: verticalLayout ? ListView.Vertical : ListView.Horizontal
interactive: false
model: plasmoid.configuration.graphOrders.filter(item => {
if (item === "cpu") {
return plasmoid.configuration.showCpuMonitor;
} else if (item === "disks") {
return plasmoid.configuration.showDiskMonitor;
} else if (item === "gpu") {
return plasmoid.configuration.showGpuMonitor;
} else if (item === "memory") {
return plasmoid.configuration.showRamMonitor;
} else if (item === "network") {
return plasmoid.configuration.showNetMonitor;
}
return false;
})
delegate: Loader {
source: _graphIdToFilename(modelData)
width: itemWidth
height: itemHeight
onLoaded: {
item.textContainer.firstLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
item.textContainer.secondLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
item.textContainer.thirdLineLabel.font.pixelSize = Qt.binding(() => root.fontPixelSize);
}
}
function getGraph(index) {
const loaderItem = graphView.itemAtIndex(index);
return loaderItem !== null ? loaderItem.item : null;
}
}
function _graphIdToFilename(graphId) {
const filename = (graphId.charAt(0).toUpperCase() + graphId.slice(1)) + "Graph";
return "./components/graph/" + filename + ".qml";
}
}

31
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/metadata.json

@ -1,31 +0,0 @@
{
"KPlugin": {
"Authors": [
{
"Name": "Kotelnik"
},
{
"Name": "orblazer"
},
{
"Name": "Starrah"
}
],
"Category": "System Information",
"Description": "Plasmoid for monitoring CPU, memory, network traffic GPU and disk IO. This is an fork from \"Resources Monitor\" by Kotelnik",
"Description[fr]": "Plasmoid pour surveiller l'utilisation du CPU, de la mémoire, du traffic réseau, de la carte graphique et des disque dur. Ceci est un fork de \"Resources Monitor\" de Kotelnik",
"Description[nl]": "Een Plasmoid voor het monitoren van CPU, geheugen, netwerkverkeer GPU en disk IO. Dit is een vork uit \"Resources Monitor\" van Kotelnik.",
"Icon": "utilities-system-monitor",
"Id": "org.kde.resourcesMonitor-fork",
"License": "GPL-3.0-only",
"Name": "Resources Monitor (fork)",
"Name[fr]": "Moniteur des ressources (fork)",
"Name[nl]": "Systeembronmonitor (afsplitsing)",
"Version": "2.10.2",
"Website": "https://github.com/orblazer/plasma-applet-resources-monitor",
"BugReportUrl": "https://github.com/orblazer/plasma-applet-resources-monitor/issues"
},
"X-Plasma-API": "declarativeappletscript",
"X-Plasma-MainScript": "ui/main.qml",
"KPackageStructure": "Plasma/Applet"
}

29
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/README.md

@ -1,29 +0,0 @@
# Translations
You can found found the list of locale code here : [List of country locale code](https://saimana.com/list-of-country-locale-code/)
## New Translations
1. Fill out [`template.pot`](template.pot) with your translations then open a [new issue](https://github.com/orblazer/plasma-applet-resources-monitor/issues/new), name the file `spanish.txt`, attach the txt file to the issue (drag and drop).
Or if you know how to make a pull request
1. Copy the `template.pot` file and name it your locale's code (Eg: `en`/`de`/`fr`) with the extension `.po`. Then fill out all the `msgstr ""`.
2. Add `Name` and `Description` translation to `../metadata.json`
3. Build the translation with `npm run i18n:build`
4. Test the translation with `LANGUAGE="country_CODE:locale" LANG="country_CODE.UTF-8" npm run dev`
**Note** : You need install language pack first.
## Scripts
- `npm run i18:merge` will parse the `i18n()` calls in the `*.qml` files and write it to the `template.pot` file. Then it will merge any changes into the `*.po` language files.
- `npm run i18n:build` will convert the `*.po` files to it's binary `*.mo` version and move it to `contents/locale/...` which will bundle the translations in the `*.plasmoid` without needing the user to manually install them.
## Status
| Locale | Lines | % Done|
|----------|---------|-------|
| Template | 95 | |
| fr | 95/95 | 100% |
| nl | 95/95 | 100% |

453
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/fr.po

@ -1,453 +0,0 @@
# Translation of resourcesMonitor-fork in french
# Copyright (C) 2021
# This file is distributed under the same license as the resourcesMonitor-fork package.
# orblazer, 2021.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: 2023-05-31 18:43+0200\n"
"Last-Translator: orblazer\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../contents/config/config.qml:6 ../contents/ui/config/ConfigData.qml:120 ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr "Général"
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr "Données"
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr "Apparence"
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr "ops"
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr "bps"
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr "io/s"
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr "Horloge"
#: ../contents/ui/components/graph/CpuGraph.qml:41 ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr "Temp."
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr "Lecture"
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr "Écriture"
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr "%1%"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr "Réception"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr "Envoi"
#: ../contents/ui/config/ConfigAppearance.qml:76 ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr "CPU"
#: ../contents/ui/config/ConfigAppearance.qml:81 ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr "Mémoire"
#: ../contents/ui/config/ConfigAppearance.qml:86 ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr "GPU"
#: ../contents/ui/config/ConfigAppearance.qml:91 ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239 ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr "Disques E/S"
#: ../contents/ui/config/ConfigAppearance.qml:96 ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142 ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr "Réseau"
#: ../contents/ui/config/ConfigAppearance.qml:115 ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr "Graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr "Texte"
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr "Couleurs"
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr "Disposition verticale"
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr "Quantité d'histoire :"
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr "Largeur :"
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr "Hauteur :"
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr "Marge :"
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr "Opacité du remplissage :"
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr "Ordre des graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr "Ombres portées"
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr "Taille de la police :"
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr "Affichage du texte :"
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr "Toujours"
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr "Au survol"
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr "Indices au survol"
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr "Placement :"
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr "En haut à gauche"
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr "En haut à droite"
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr "En bas à gauche"
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr "En bas à droite"
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr "Couleurs des graphiques"
#: ../contents/ui/config/ConfigAppearance.qml:367 ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr "Utilisation :"
#: ../contents/ui/config/ConfigAppearance.qml:369 ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419 ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444 ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476 ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr "Choisir la couleur de la série"
#: ../contents/ui/config/ConfigAppearance.qml:374 ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr "Température :"
#: ../contents/ui/config/ConfigAppearance.qml:376 ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr "Choisir la couleur du texte"
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr "Physique :"
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr "Swap :"
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr "Choisir la couleur de la série et du texte"
#: ../contents/ui/config/ConfigAppearance.qml:417 ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr "Réception :"
#: ../contents/ui/config/ConfigAppearance.qml:424 ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr "Envoi :"
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr "Mémoire :"
#: ../contents/ui/config/ConfigAppearance.qml:474 ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr "Lecture :"
#: ../contents/ui/config/ConfigAppearance.qml:481 ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr "Écriture :"
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr "Couleurs des seuils d'alerte"
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr "État d’avertissement"
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr "Choisissez la couleur du texte quand le seuil d'avertissement est passé"
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr "État critique"
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr "Choisissez la couleur du texte quand le seul critique est passé"
#: ../contents/ui/config/ConfigData.qml:39 ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr "Personnalisée"
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr "Seuils d'alerte"
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr "Interfaces réseau :"
#: ../contents/ui/config/ConfigData.qml:185 ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr "Vitesse de transfert maximale"
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr "Carte graphique"
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr "Carte graphique :"
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr "Avertissement"
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr "Critique"
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr "Température du CPU"
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr "Utilisation de la mémoire"
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr "Température du GPU"
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr "Action du clique"
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr "Intervalle d'actualisation :"
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr "%1 secondes"
#: ../contents/ui/config/ConfigGeneral.qml:128 ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr "Visibilité"
#: ../contents/ui/config/ConfigGeneral.qml:134 ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221 ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr "Désactivé"
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr "Utilisation total"
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr "Utilisation du système"
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr "Utilisation de l'Utilisateur"
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr "Visibilité de l'horloge :"
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr "Moyenne"
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr "Minimum"
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr "Maximum"
#: ../contents/ui/config/ConfigGeneral.qml:199 ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr "Afficher la température"
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr "Mémoire Physique (en Kio)"
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr "Mémoire Physique (en %)"
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr "Mémoire Applicative (en Kio)"
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr "Mémoire Applicative (en %)"
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr "Afficher le swap"
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr "En kibioctet (Kio/s)"
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr "En kilobit (Kbps)"
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr "En kilooctet (Kops)"
#: ../contents/ui/config/ConfigGeneral.qml:327 ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr "Activé ?"
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr "Afficher la mémoire"
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr "Mémoire en pourcent"
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr "Chercher une application :"
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr "Nom de l'application"
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr "Applications"

454
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/nl.po

@ -1,454 +0,0 @@
# Translation of resourcesMonitor-fork in nl
# Copyright (C) 2021
# This file is distributed under the same license as the resourcesMonitor-fork package.
# Heimen Stoffels <vistausss@fastmail.com>, 2021.
#
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: 2023-05-31 18:44+0200\n"
"Last-Translator: orblazer\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
#: ../contents/config/config.qml:6 ../contents/ui/config/ConfigData.qml:120 ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr "Algemeen"
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr "Gegevens"
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr "Uiterlijk"
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr "Bps"
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr "bps"
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr "iB/s"
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr "Klok"
#: ../contents/ui/components/graph/CpuGraph.qml:41 ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr "Temp."
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr "Lees"
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr "Schrijf"
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr "%1%"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr "Ontvangst"
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr "Verzend."
#: ../contents/ui/config/ConfigAppearance.qml:76 ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr "CPU"
#: ../contents/ui/config/ConfigAppearance.qml:81 ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr "Geheugen"
#: ../contents/ui/config/ConfigAppearance.qml:86 ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr "GPU"
#: ../contents/ui/config/ConfigAppearance.qml:91 ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239 ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr "Schijven I/O"
#: ../contents/ui/config/ConfigAppearance.qml:96 ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142 ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr "Netwerk"
#: ../contents/ui/config/ConfigAppearance.qml:115 ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr "Grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr "Tekst"
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr "Kleuren"
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr "Verticale indeling"
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr "Historie bedrag:"
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr "Breedte:"
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr "Hoogte:"
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr "Marge:"
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr "Ondoorzichtigheid vullen:"
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr "Volgorde grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr "Vallende schaduwen"
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr "Tekstgrootte:"
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr "Tekst tonen:"
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr "Altijd"
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr "Na aanwijzen"
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr "Tip tonen na aanwijzen"
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr "Locatie:"
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr "Linksboven"
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr "Rechtboven"
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr "Linksonder"
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr "Rechtsonder"
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr "Kleuren grafieken"
#: ../contents/ui/config/ConfigAppearance.qml:367 ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr "Gebruik:"
#: ../contents/ui/config/ConfigAppearance.qml:369 ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419 ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444 ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476 ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr "Kies seriekleur"
#: ../contents/ui/config/ConfigAppearance.qml:374 ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr "Temperatuur:"
#: ../contents/ui/config/ConfigAppearance.qml:376 ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr "Kies tekstkleur"
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr "Fysiek:"
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr "Swap:"
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr "Kies kleur van serie en tekst"
#: ../contents/ui/config/ConfigAppearance.qml:417 ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr "Ontvangst:"
#: ../contents/ui/config/ConfigAppearance.qml:424 ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr "Verzending:"
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr "Geheugen"
#: ../contents/ui/config/ConfigAppearance.qml:474 ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr "Lees:"
#: ../contents/ui/config/ConfigAppearance.qml:481 ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr "Schrijf:"
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr "Drempelwaarde tekstkleuren"
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr "Waarschuwingsstatus:"
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr "Kies de tekstkleur wanneer de waarde in de waarschuwingsstatus staat"
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr "Kritieke status:"
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr "Tekstkleur kiezen wanneer de waarde in kritieke status is"
#: ../contents/ui/config/ConfigData.qml:39 ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr "Aangepast"
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr "Drempels"
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr "Netwerkkaarten:"
#: ../contents/ui/config/ConfigData.qml:185 ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr "Maximale overdrachtssnelheid"
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr "Grafische kaart"
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr "Grafische kaart:"
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr "Waarschuwing"
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr "Kritisch"
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr "CPU-temperatuur:"
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr "Fysiek geheugengebruik:"
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr "GPU-temperatuur:"
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr "Klik actie"
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr "Bijwerktussenpoos:"
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr "%1 seconden"
#: ../contents/ui/config/ConfigGeneral.qml:128 ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr "Zichtbaarheid:"
#: ../contents/ui/config/ConfigGeneral.qml:134 ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221 ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr "Uitgeschakeld"
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr "Totaal gebruik"
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr "Systeemgebruik"
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr "Gebruikersgebruik"
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr "Klok zichtbaarheid:"
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr "Gemiddeld"
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr "Minimaal"
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr "Maximaal"
#: ../contents/ui/config/ConfigGeneral.qml:199 ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr "Toon temperatuur"
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr "Fysiek geheugen (in KiB)"
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr "Fysiek geheugen (in %)"
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr "Toepassingsgeheugen (KiB)"
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr "Toepassingsgeheugen (in %)"
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr "Toon swap"
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr "In kibibyte (KiB/s)"
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr "In kilobit (Kbps)"
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr "In kilobyte (KBps)"
#: ../contents/ui/config/ConfigGeneral.qml:327 ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr "Ingeschakeld?"
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr "Toon geheugen"
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr "Geheugen in procent"
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr "Een toepassing zoeken:"
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr "Naam toepassing"
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr "Toepassingen"

483
home/.local/share/plasma/plasmoids/org.kde.resourcesMonitor-fork/translate/template.pot

@ -1,483 +0,0 @@
# Translation of resourcesMonitor-fork in LANGUAGE
# Copyright (C) 2023
# This file is distributed under the same license as the resourcesMonitor-fork package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: resourcesMonitor-fork\n"
"Report-Msgid-Bugs-To: https://github.com/orblazer/plasma-applet-resources-monitor\n"
"POT-Creation-Date: 2023-05-31 18:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../contents/config/config.qml:6
#: ../contents/ui/config/ConfigData.qml:120
#: ../contents/ui/config/ConfigGeneral.qml:79
msgctxt "Config header"
msgid "General"
msgstr ""
#: ../contents/config/config.qml:11
msgctxt "Config header"
msgid "Data"
msgstr ""
#: ../contents/config/config.qml:16
msgctxt "Config header"
msgid "Appearance"
msgstr ""
#: ../contents/ui/components/functions.js:20
msgctxt "kilobyte suffix"
msgid "Bps"
msgstr ""
#: ../contents/ui/components/functions.js:28
msgctxt "kilobit suffix"
msgid "bps"
msgstr ""
#: ../contents/ui/components/functions.js:36
msgctxt "kibibyte suffix"
msgid "iB/s"
msgstr ""
#: ../contents/ui/components/graph/CpuGraph.qml:41
msgctxt "Graph label"
msgid "Clock"
msgstr ""
#: ../contents/ui/components/graph/CpuGraph.qml:41
#: ../contents/ui/components/graph/GpuGraph.qml:32
msgctxt "Graph label"
msgid "Temp."
msgstr ""
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Read"
msgstr ""
#: ../contents/ui/components/graph/DisksGraph.qml:28
msgctxt "Graph label"
msgid "Write"
msgstr ""
#: ../contents/ui/components/graph/GpuGraph.qml:56
msgctxt "Percent unit"
msgid "%1%"
msgstr ""
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Receiving"
msgstr ""
#: ../contents/ui/components/graph/NetworkGraph.qml:31
msgctxt "Graph label"
msgid "Sending"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:76
#: ../contents/ui/config/ConfigAppearance.qml:361
#: ../contents/ui/config/ConfigGeneral.qml:122
msgctxt "Chart name"
msgid "CPU"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:81
#: ../contents/ui/config/ConfigAppearance.qml:386
#: ../contents/ui/config/ConfigGeneral.qml:209
msgctxt "Chart name"
msgid "Memory"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:86
#: ../contents/ui/config/ConfigAppearance.qml:436
#: ../contents/ui/config/ConfigGeneral.qml:315
msgctxt "Chart name"
msgid "GPU"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:91
#: ../contents/ui/config/ConfigAppearance.qml:468
#: ../contents/ui/config/ConfigData.qml:239
#: ../contents/ui/config/ConfigGeneral.qml:352
msgctxt "Chart name"
msgid "Disks I/O"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:96
#: ../contents/ui/config/ConfigAppearance.qml:411
#: ../contents/ui/config/ConfigData.qml:142
#: ../contents/ui/config/ConfigGeneral.qml:270
msgctxt "Chart name"
msgid "Network"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:115
#: ../contents/ui/config/ConfigGeneral.qml:116
msgctxt "Config header"
msgid "Charts"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:120
msgctxt "Config header"
msgid "Text"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:125
msgctxt "Config header"
msgid "Colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:143
msgid "Vertical layout"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:148
msgid "History amount:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:155
msgid "Width:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:162
msgid "Height:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:169
msgid "Margin:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:180
msgid "Fill opacity:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:192
msgid "Charts order"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:280
msgid "Drop shadows"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:285
msgid "Font scale:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:297
msgid "Text displayment:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:303
msgctxt "Text displayment"
msgid "Always"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:306
msgctxt "Text displayment"
msgid "On hover"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:309
msgctxt "Text displayment"
msgid "Hints when hover"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:319
msgid "Placement:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:325
msgctxt "Text placement"
msgid "Top left"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:328
msgctxt "Text placement"
msgid "Top right"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:331
msgctxt "Text placement"
msgid "Bottom left"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:334
msgctxt "Text placement"
msgid "Bottom right"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:351
msgid "Charts colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:367
#: ../contents/ui/config/ConfigAppearance.qml:442
msgctxt "Chart config"
msgid "Usage:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:369
#: ../contents/ui/config/ConfigAppearance.qml:394
#: ../contents/ui/config/ConfigAppearance.qml:419
#: ../contents/ui/config/ConfigAppearance.qml:426
#: ../contents/ui/config/ConfigAppearance.qml:444
#: ../contents/ui/config/ConfigAppearance.qml:451
#: ../contents/ui/config/ConfigAppearance.qml:476
#: ../contents/ui/config/ConfigAppearance.qml:483
msgctxt "Chart color"
msgid "Choose series color"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:374
#: ../contents/ui/config/ConfigAppearance.qml:456
msgctxt "Chart config"
msgid "Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:376
#: ../contents/ui/config/ConfigAppearance.qml:458
msgctxt "Chart color"
msgid "Choose text color"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:392
msgctxt "Chart config"
msgid "Physical:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:399
msgctxt "Chart config"
msgid "Swap:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:401
msgctxt "Chart color"
msgid "Choose color of series and text"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:417
#: ../contents/ui/config/ConfigData.qml:191
msgctxt "Chart config"
msgid "Receiving:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:424
#: ../contents/ui/config/ConfigData.qml:215
msgctxt "Chart config"
msgid "Sending:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:449
msgctxt "Chart config"
msgid "Memory:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:474
#: ../contents/ui/config/ConfigData.qml:250
msgctxt "Chart config"
msgid "Read:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:481
#: ../contents/ui/config/ConfigData.qml:274
msgctxt "Chart config"
msgid "Write:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:489
msgid "Threshold text colors"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:495
msgid "Warning status:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:497
msgid "Choose text color when the value is in warning status"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:502
msgid "Critical status:"
msgstr ""
#: ../contents/ui/config/ConfigAppearance.qml:504
msgid "Choose text color when the value is in critical status"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:39
#: ../contents/ui/config/ConfigData.qml:67
msgid "Custom"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:125
msgctxt "Config header"
msgid "Thresholds"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:148
msgid "Network interfaces:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:185
#: ../contents/ui/config/ConfigData.qml:244
msgid "Maximum transfer speed"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:298
msgctxt "Config header"
msgid "Graphic card"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:305
msgid "Graphic card:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:347
msgid "Warning"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:354
msgid "Critical"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:361
msgid "CPU Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:393
msgid "Physical Memory Usage:"
msgstr ""
#: ../contents/ui/config/ConfigData.qml:417
msgid "GPU Temperature:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:84
msgctxt "Config header"
msgid "Click action"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:101
msgid "Update interval:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:110
msgid "%1 seconds"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:128
#: ../contents/ui/config/ConfigGeneral.qml:215
#: ../contents/ui/config/ConfigGeneral.qml:276
msgid "Visibility:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:134
#: ../contents/ui/config/ConfigGeneral.qml:170
#: ../contents/ui/config/ConfigGeneral.qml:221
#: ../contents/ui/config/ConfigGeneral.qml:282
msgid "Disabled"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:137
msgid "Total usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:140
msgid "System usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:143
msgid "User usage"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:163
msgid "Clock visibility:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:173
msgctxt "Agregator"
msgid "Average"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:176
msgctxt "Agregator"
msgid "Minimum"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:179
msgctxt "Agregator"
msgid "Maximum"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:199
#: ../contents/ui/config/ConfigGeneral.qml:341
msgid "Show temperature"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:224
msgid "Physical memory (in KiB)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:227
msgid "Physical memory (in %)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:230
msgid "Application memory (in KiB)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:233
msgid "Application memory (in %)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:259
msgid "Show swap"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:285
msgid "In kibibyte (KiB/s)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:288
msgid "In kilobit (Kbps)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:291
msgid "In kilobyte (KBps)"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:327
#: ../contents/ui/config/ConfigGeneral.qml:364
msgid "Enabled?"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:331
msgid "Show memory"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:336
msgid "Memory in percent"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:380
msgid "Search an application:"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:382
msgid "Application name"
msgstr ""
#: ../contents/ui/config/ConfigGeneral.qml:389
msgid "Applications"
msgstr ""
Loading…
Cancel
Save