mirror of
https://github.com/harish2704/dotFiles.git
synced 2026-09-10 15:21:09 +00:00
Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d30e2268b | ||
|
|
a86b7a52b3 | ||
|
|
51e8684012 | ||
|
|
ca39e5bc8e | ||
|
|
ad40802680 |
@@ -1,4 +1,5 @@
|
|||||||
home/.local/Apps/neovim-distros/lunarvim/cache
|
home/.local/Apps/neovim-distros/lunarvim/cache
|
||||||
home/.local/Apps/neovim-distros/lunarvim/share
|
home/.local/Apps/neovim-distros/lunarvim/share
|
||||||
home/.local/Apps/neovim-distros/lunarvim/LunarVim
|
home/.local/Apps/neovim-distros/lunarvim/LunarVim
|
||||||
|
home/.local/Apps/neovim-distros/LazyVim
|
||||||
node_modules
|
node_modules
|
||||||
|
|||||||
+3
-3
@@ -41,9 +41,9 @@ export NVM_DIR="$HOME/.nvm"
|
|||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||||
|
|
||||||
|
|
||||||
export PYENV_ROOT="$HOME/.pyenv"
|
#export PYENV_ROOT="$HOME/.pyenv"
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
#[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
eval "$(pyenv init -)"
|
#eval "$(pyenv init -)"
|
||||||
|
|
||||||
|
|
||||||
# bun
|
# bun
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
./lvim
|
./lvim
|
||||||
./nvim-distro.sh
|
./nvim-distro.sh
|
||||||
|
./lzvim.sh
|
||||||
|
|||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
THIS_DIR=$(dirname $(readlink -f $0))
|
||||||
|
PKG=LazyVim
|
||||||
|
|
||||||
|
nvconf="$THIS_DIR/$PKG"
|
||||||
|
|
||||||
|
if [[ -d $nvconf ]]; then
|
||||||
|
mkdir -p $nvconf/cache
|
||||||
|
exec -a "Lazyvim" alacritty -e env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@ &
|
||||||
|
else
|
||||||
|
echo "invalid \$PKG. Available values:"
|
||||||
|
ls `dirname $nvconf`
|
||||||
|
fi
|
||||||
@@ -3,10 +3,17 @@ THIS_DIR=$(dirname $(readlink -f $0))
|
|||||||
|
|
||||||
nvconf="$THIS_DIR/$PKG"
|
nvconf="$THIS_DIR/$PKG"
|
||||||
|
|
||||||
if [[ -d $nvconf ]]; then
|
if [[ ! -d $nvconf ]]; then
|
||||||
mkdir -p $nvconf/cache
|
|
||||||
env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
|
|
||||||
else
|
|
||||||
echo "invalid \$PKG. Available values:"
|
echo "invalid \$PKG. Available values:"
|
||||||
ls `dirname $nvconf`
|
ls `dirname $nvconf`
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p $nvconf/cache
|
||||||
|
|
||||||
|
if [ -z "$GUITERM" ]; then
|
||||||
|
env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
|
||||||
|
else
|
||||||
|
$GUITERM -e env XDG_CACHE_DIR=$nvconf/cache XDG_CACHE_HOME=$nvconf/cache XDG_DATA_HOME=$nvconf/share XDG_CONFIG_HOME=$nvconf nvim $@
|
||||||
fi
|
fi
|
||||||
|
|||||||
-20
@@ -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
@@ -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
Binary file not shown.
BIN
Binary file not shown.
-38
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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% |
|
|
||||||
@@ -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"
|
|
||||||
@@ -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
@@ -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 ""
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@anthropic-ai/claude-code": "^0.2.45",
|
"@anthropic-ai/claude-code": "^1.0.24",
|
||||||
"@babel/cli": "^7.23.9",
|
"@babel/cli": "^7.23.9",
|
||||||
"@babel/core": "^7.23.9",
|
"@babel/core": "^7.23.9",
|
||||||
"@babel/preset-env": "^7.23.9",
|
"@babel/preset-env": "^7.23.9",
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
"@ionic/cli": "^7.2.0",
|
"@ionic/cli": "^7.2.0",
|
||||||
"@mrodrig/json-2-csv-cli": "^5.5.5",
|
"@mrodrig/json-2-csv-cli": "^5.5.5",
|
||||||
"@nestjs/cli": "^10.3.2",
|
"@nestjs/cli": "^10.3.2",
|
||||||
|
"@openai/codex": "^0.1.2504172351",
|
||||||
"@openapitools/openapi-generator-cli": "^2.9.0",
|
"@openapitools/openapi-generator-cli": "^2.9.0",
|
||||||
"@quasar/cli": "^2.3.0",
|
"@quasar/cli": "^2.3.0",
|
||||||
"@types/node": "^22.10.1",
|
"@types/node": "^22.10.1",
|
||||||
@@ -55,6 +56,7 @@
|
|||||||
"http-server": "^14.1.1",
|
"http-server": "^14.1.1",
|
||||||
"hygen": "^6.2.11",
|
"hygen": "^6.2.11",
|
||||||
"ignite-cli": "^10.0.5",
|
"ignite-cli": "^10.0.5",
|
||||||
|
"ipx": "^3.0.3",
|
||||||
"jscodeshift": "^17.1.1",
|
"jscodeshift": "^17.1.1",
|
||||||
"json-2-csv": "^5.5.5",
|
"json-2-csv": "^5.5.5",
|
||||||
"json-server": "^1.0.0-alpha.23",
|
"json-server": "^1.0.0-alpha.23",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -13,7 +13,7 @@ if test -z "$USER_PROFILEREAD"; then
|
|||||||
PATH="$HOME/.linuxbrew/bin:$PATH";
|
PATH="$HOME/.linuxbrew/bin:$PATH";
|
||||||
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
|
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
|
||||||
PATH="$PATH:$HOME/.local/Apps/flutter/bin"
|
PATH="$PATH:$HOME/.local/Apps/flutter/bin"
|
||||||
PATH="$PYENV_ROOT/bin:$PATH"
|
# PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
export PATH
|
export PATH
|
||||||
|
|
||||||
export DENO_INSTALL="$HOME/.deno"
|
export DENO_INSTALL="$HOME/.deno"
|
||||||
@@ -37,4 +37,4 @@ if [ -n "$BASH_VERSION" -a -n "$PS1" ]; then
|
|||||||
. "$HOME/.bashrc"
|
. "$HOME/.bashrc"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
. "$HOME/.deno/env"
|
. "$HOME/.deno/env"
|
||||||
|
|||||||
Reference in New Issue
Block a user