update
This commit is contained in:
@@ -7,6 +7,10 @@
|
||||
}
|
||||
],
|
||||
"states": {
|
||||
"network-indicator": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
},
|
||||
"privacy-indicator": {
|
||||
"enabled": true,
|
||||
"sourceUrl": "https://github.com/noctalia-dev/noctalia-plugins"
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import Quickshell
|
||||
import qs.Commons
|
||||
import qs.Widgets
|
||||
import qs.Services.System
|
||||
|
||||
Item {
|
||||
id: root
|
||||
|
||||
property var pluginApi: null
|
||||
|
||||
property ShellScreen screen
|
||||
property string widgetId: ""
|
||||
property string section: ""
|
||||
|
||||
// ---------- Configuration ----------
|
||||
|
||||
property var cfg: pluginApi?.pluginSettings || ({})
|
||||
property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({})
|
||||
|
||||
property string arrowType: cfg.arrowType || defaults.arrowType || "chevron"
|
||||
property int minWidth: cfg.minWidth || defaults.minWidth || 0
|
||||
|
||||
property bool useCustomColors: cfg.useCustomColors ?? defaults.useCustomColors
|
||||
property bool showNumbers: cfg.showNumbers ?? defaults.showNumbers
|
||||
property bool forceMegabytes: cfg.forceMegabytes ?? defaults.forceMegabytes
|
||||
|
||||
property color colorSilent: root.useCustomColors && cfg.colorSilent || Color.mSurfaceVariant
|
||||
property color colorTx: root.useCustomColors && cfg.colorTx || Color.mSecondary
|
||||
property color colorRx: root.useCustomColors && cfg.colorRx || Color.mPrimary
|
||||
property color colorText: root.useCustomColors && cfg.colorText || Qt.alpha(Color.mOnSurfaceVariant, 0.3)
|
||||
|
||||
property int byteThresholdActive: cfg.byteThresholdActive || defaults.byteThresholdActive || 1024
|
||||
property real fontSizeModifier: cfg.fontSizeModifier || defaults.fontSizeModifier || 1
|
||||
property real iconSizeModifier: cfg.iconSizeModifier || defaults.iconSizeModifier || 1
|
||||
property real spacingInbetween: cfg.spacingInbetween || defaults.spacingInbetween || 0
|
||||
|
||||
property string barPosition: Settings.data.bar.position || "top"
|
||||
property string barDensity: Settings.data.bar.density || "compact"
|
||||
property bool barIsSpacious: barDensity != "mini"
|
||||
property bool barIsVertical: barPosition === "left" || barPosition === "right"
|
||||
|
||||
readonly property real contentWidth: barIsVertical ? Style.capsuleHeight : Math.max(contentRow.implicitWidth, minWidth)
|
||||
readonly property real contentHeight: barIsVertical ? Math.round(contentRow.implicitHeight + Style.marginM * 2) : Style.capsuleHeight
|
||||
|
||||
implicitWidth: contentWidth
|
||||
implicitHeight: contentHeight
|
||||
|
||||
// ---------- Widget ----------
|
||||
|
||||
property real txSpeed: SystemStatService.txSpeed
|
||||
property real rxSpeed: SystemStatService.rxSpeed
|
||||
|
||||
Rectangle {
|
||||
id: visualCapsule
|
||||
x: Style.pixelAlignCenter(parent.width, width)
|
||||
y: Style.pixelAlignCenter(parent.height, height)
|
||||
width: root.contentWidth
|
||||
height: root.contentHeight
|
||||
color: root.useCustomColors && cfg.colorBackground || Style.capsuleColor
|
||||
radius: Style.radiusM
|
||||
border.color: Style.capsuleBorderColor
|
||||
border.width: Style.capsuleBorderWidth
|
||||
|
||||
RowLayout {
|
||||
id: contentRow
|
||||
|
||||
anchors.centerIn: parent
|
||||
spacing: Style.marginS
|
||||
|
||||
Column {
|
||||
visible: root.showNumbers && barIsSpacious && !barIsVertical
|
||||
|
||||
spacing: root.spacingInbetween
|
||||
|
||||
NText {
|
||||
visible: true
|
||||
text: convertBytes(root.txSpeed)
|
||||
color: root.colorText
|
||||
pointSize: Style.barFontSize * 0.75 * root.fontSizeModifier
|
||||
}
|
||||
|
||||
NText {
|
||||
visible: true
|
||||
text: convertBytes(root.rxSpeed)
|
||||
color: root.colorText
|
||||
pointSize: Style.barFontSize * 0.75 * root.fontSizeModifier
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
spacing: -10.0 + root.spacingInbetween
|
||||
|
||||
NIcon {
|
||||
icon: arrowType + "-up"
|
||||
color: root.txSpeed > root.byteThresholdActive ? root.colorTx : root.colorSilent
|
||||
pointSize: Style.fontSizeL * root.iconSizeModifier
|
||||
}
|
||||
|
||||
NIcon {
|
||||
icon: arrowType + "-down"
|
||||
color: root.rxSpeed > root.byteThresholdActive ? root.colorRx : root.colorSilent
|
||||
pointSize: Style.fontSizeL * root.iconSizeModifier
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- Utilities ----------
|
||||
|
||||
function convertBytes(bytesPerSecond) {
|
||||
const KB = 1024;
|
||||
const MB = KB * 1024;
|
||||
|
||||
let value;
|
||||
let unit;
|
||||
|
||||
if (bytesPerSecond < MB & !root.forceMegabytes) {
|
||||
value = bytesPerSecond / KB;
|
||||
unit = "KB";
|
||||
} else {
|
||||
value = bytesPerSecond / MB;
|
||||
unit = "MB";
|
||||
}
|
||||
|
||||
const text = value.toFixed(1) + " " + unit;
|
||||
return text.padStart(10, " ");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
# NetworkIndicator Plugin for Noctalia
|
||||
|
||||
A compact Noctalia bar widget that displays current network upload (TX) and download (RX) activity, with optional live throughput values.
|
||||
|
||||
## Features
|
||||
|
||||
- **TX/RX Activity Indicators**: Separate icons for upload (TX) and download (RX).
|
||||
- **Active/Idle Coloring**: Icons switch between “active” and “silent” colors based on a configurable traffic threshold.
|
||||
- **Optional Throughput Values**: Displays formatted TX/RX speeds as text (shown only when the bar is spacious and horizontal).
|
||||
- **Unit Formatting**: Automatically switches between KB/s and MB/s, or can be configured to always display MB/s.
|
||||
- **Theme Support**: Uses Noctalia theme colors by default, with optional custom colors.
|
||||
- **Configurable Settings**: Provides a comprehensive set of user-adjustable options.
|
||||
|
||||
## Installation
|
||||
|
||||
This plugin is part of the `noctalia-plugins` repository.
|
||||
|
||||
## Configuration
|
||||
|
||||
Access the plugin settings in Noctalia to configure the following options:
|
||||
|
||||
- **Icon Type**: Select the icon style used for TX/RX: `arrow`, `arrow-narrow`, `caret`, `chevron`.
|
||||
- **Minimum Widget Width**: Enforce a minimum width for the widget.
|
||||
- **Show Active Threshold**: Set the traffic threshold in bytes per second (B/s) above which TX/RX is considered “active”.
|
||||
- **Show Values**: Display formatted TX/RX speeds as numbers. This option is automatically hidden on vertical bars and when using “mini” density.
|
||||
- **Force Megabytes**: Always display values in MB/s instead of switching to KB/s at low traffic levels.
|
||||
- **Vertical Spacing**: Adjust the spacing between the TX and RX elements.
|
||||
- **Font Size Modifier**: Scale the text size.
|
||||
- **Icon Size Modifier**: Scale the icon size.
|
||||
- **Custom Colors**: When enabled, configure the following colors: TX Active, RX Active, RX/TX Inactive, and Text.
|
||||
|
||||
## Usage
|
||||
|
||||
- Add the widget to your Noctalia bar.
|
||||
- Configure the plugin settings as required.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Noctalia 3.6.0 or later.
|
||||
|
||||
## Technical Details
|
||||
|
||||
- The widget reads `SystemStatService.txSpeed` and `SystemStatService.rxSpeed`; therefore, the polling interval is determined by that service.
|
||||
@@ -0,0 +1,306 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs.Commons
|
||||
import qs.Widgets
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
|
||||
readonly property var iconNames: ["arrow", "arrow-bar", "arrow-big", "arrow-narrow", "caret", "chevron", "chevron-compact", "fold"]
|
||||
|
||||
property var pluginApi: null
|
||||
|
||||
property var cfg: pluginApi?.pluginSettings || ({})
|
||||
property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({})
|
||||
|
||||
property string arrowType: cfg.arrowType || defaults.arrowType
|
||||
property int minWidth: cfg.minWidth || defaults.minWidth
|
||||
|
||||
property bool useCustomColors: cfg.useCustomColors ?? defaults.useCustomColors
|
||||
property bool showNumbers: cfg.showNumbers ?? defaults.showNumbers
|
||||
property bool forceMegabytes: cfg.forceMegabytes ?? defaults.forceMegabytes
|
||||
|
||||
property color colorSilent: root.useCustomColors && cfg.colorSilent || Color.mSurfaceVariant
|
||||
property color colorTx: root.useCustomColors && cfg.colorTx || Color.mSecondary
|
||||
property color colorRx: root.useCustomColors && cfg.colorRx || Color.mPrimary
|
||||
property color colorText: root.useCustomColors && cfg.colorText || Qt.alpha(Color.mOnSurfaceVariant, 0.3)
|
||||
property color colorBackground: root.useCustomColors && cfg.colorBackground || Style.capsuleColor
|
||||
|
||||
property int byteThresholdActive: cfg.byteThresholdActive || defaults.byteThresholdActive
|
||||
property real fontSizeModifier: cfg.fontSizeModifier || defaults.fontSizeModifier
|
||||
property real iconSizeModifier: cfg.iconSizeModifier || defaults.iconSizeModifier
|
||||
property real spacingInbetween: cfg.spacingInbetween || defaults.spacingInbetween
|
||||
|
||||
property string barPosition: Settings.data.bar.position || "top"
|
||||
property string barDensity: Settings.data.bar.density || "compact"
|
||||
property bool barIsSpacious: root.barDensity != "mini"
|
||||
property bool barIsVertical: root.barPosition === "left" || barPosition === "right"
|
||||
|
||||
spacing: Style.marginL
|
||||
|
||||
Component.onCompleted: {
|
||||
Logger.i("NetworkIndicator", "Settings UI loaded");
|
||||
}
|
||||
|
||||
function toIntOr(defaultValue, text) {
|
||||
const v = parseInt(String(text).trim(), 10);
|
||||
return isNaN(v) ? defaultValue : v;
|
||||
}
|
||||
|
||||
// ---------- General ----------
|
||||
|
||||
RowLayout {
|
||||
NComboBox {
|
||||
label: pluginApi?.tr("settings.iconType.label")
|
||||
description: pluginApi?.tr("settings.iconType.desc")
|
||||
|
||||
model: root.iconNames.map(function (n) {
|
||||
return {
|
||||
key: n,
|
||||
name: n
|
||||
};
|
||||
})
|
||||
|
||||
currentKey: root.arrowType
|
||||
onSelected: key => root.arrowType = key
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
spacing: -10.0 + root.spacingInbetween
|
||||
|
||||
NIcon {
|
||||
icon: arrowType + "-up"
|
||||
color: Color.mSecondary
|
||||
pointSize: Style.fontSizeL * root.iconSizeModifier
|
||||
}
|
||||
|
||||
NIcon {
|
||||
icon: arrowType + "-down"
|
||||
color: Color.mPrimary
|
||||
pointSize: Style.fontSizeL * root.iconSizeModifier
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
NTextInput {
|
||||
label: pluginApi?.tr("settings.minWidth.label")
|
||||
description: pluginApi?.tr("settings.minWidth.desc")
|
||||
placeholderText: String(root.minWidth)
|
||||
text: String(root.minWidth)
|
||||
onTextChanged: root.minWidth = root.toIntOr(0, text)
|
||||
}
|
||||
|
||||
NTextInput {
|
||||
label: pluginApi?.tr("settings.byteThresholdActive.label")
|
||||
description: pluginApi?.tr("settings.byteThresholdActive.desc")
|
||||
placeholderText: root.byteThresholdActive + " bytes"
|
||||
text: String(root.byteThresholdActive)
|
||||
onTextChanged: root.byteThresholdActive = root.toIntOr(0, text)
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: pluginApi?.tr("settings.showNumbers.label")
|
||||
description: pluginApi?.tr("settings.showNumbers.desc")
|
||||
visible: barIsSpacious && !barIsVertical
|
||||
|
||||
checked: root.showNumbers
|
||||
onToggled: function (checked) {
|
||||
root.showNumbers = checked;
|
||||
}
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: pluginApi?.tr("settings.forceMegabytes.label")
|
||||
description: pluginApi?.tr("settings.forceMegabytes.desc")
|
||||
visible: barIsSpacious && !barIsVertical
|
||||
|
||||
checked: root.forceMegabytes
|
||||
onToggled: function (checked) {
|
||||
root.forceMegabytes = checked;
|
||||
}
|
||||
}
|
||||
|
||||
NDivider {
|
||||
visible: true
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: Style.marginL
|
||||
Layout.bottomMargin: Style.marginL
|
||||
}
|
||||
|
||||
// ---------- Slider ----------
|
||||
|
||||
ColumnLayout {
|
||||
spacing: Style.marginXXS
|
||||
Layout.fillWidth: true
|
||||
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.spacingInbetween.label")
|
||||
description: pluginApi?.tr("settings.spacingInbetween.desc")
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
from: -5
|
||||
to: 5
|
||||
stepSize: 1
|
||||
value: root.spacingInbetween
|
||||
onMoved: value => root.spacingInbetween = value
|
||||
text: root.spacingInbetween.toFixed(0)
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
spacing: Style.marginXXS
|
||||
Layout.fillWidth: true
|
||||
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.fontSizeModifier.label")
|
||||
description: pluginApi?.tr("settings.fontSizeModifier.desc")
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
from: 0.5
|
||||
to: 1.5
|
||||
stepSize: 0.05
|
||||
value: root.fontSizeModifier
|
||||
onMoved: value => root.fontSizeModifier = value
|
||||
text: fontSizeModifier.toFixed(2)
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
spacing: Style.marginXXS
|
||||
Layout.fillWidth: true
|
||||
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.iconSizeModifier.label")
|
||||
description: pluginApi?.tr("settings.iconSizeModifier.desc")
|
||||
}
|
||||
|
||||
NValueSlider {
|
||||
Layout.fillWidth: true
|
||||
from: 0.5
|
||||
to: 1.5
|
||||
stepSize: 0.05
|
||||
value: root.iconSizeModifier
|
||||
onMoved: value => root.iconSizeModifier = value
|
||||
text: root.iconSizeModifier.toFixed(2)
|
||||
}
|
||||
}
|
||||
|
||||
NDivider {
|
||||
visible: true
|
||||
Layout.fillWidth: true
|
||||
Layout.topMargin: Style.marginL
|
||||
Layout.bottomMargin: Style.marginL
|
||||
}
|
||||
|
||||
// ---------- Colors ----------
|
||||
|
||||
NToggle {
|
||||
label: pluginApi?.tr("settings.useCustomColors.label")
|
||||
description: pluginApi?.tr("settings.useCustomColors.desc")
|
||||
checked: root.useCustomColors
|
||||
onToggled: function (checked) {
|
||||
root.useCustomColors = checked;
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
visible: root.useCustomColors
|
||||
|
||||
RowLayout {
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.colorTx.label")
|
||||
description: pluginApi?.tr("settings.colorTx.desc")
|
||||
Layout.alignment: Qt.AlignTop
|
||||
}
|
||||
|
||||
NColorPicker {
|
||||
selectedColor: root.colorTx
|
||||
onColorSelected: color => root.colorTx = color
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.colorRx.label")
|
||||
description: pluginApi?.tr("settings.colorRx.desc")
|
||||
}
|
||||
|
||||
NColorPicker {
|
||||
selectedColor: root.colorRx
|
||||
onColorSelected: color => root.colorRx = color
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.colorSilent.label")
|
||||
description: pluginApi?.tr("settings.colorSilent.desc")
|
||||
}
|
||||
|
||||
NColorPicker {
|
||||
selectedColor: root.colorSilent
|
||||
onColorSelected: color => root.colorSilent = color
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.colorText.label")
|
||||
description: pluginApi?.tr("settings.colorText.desc")
|
||||
}
|
||||
|
||||
NColorPicker {
|
||||
selectedColor: root.colorText
|
||||
onColorSelected: color => root.colorText = color
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.colorBackground.label")
|
||||
description: pluginApi?.tr("settings.colorBackground.desc")
|
||||
}
|
||||
|
||||
NColorPicker {
|
||||
selectedColor: root.colorBackground
|
||||
onColorSelected: color => root.colorBackground = color
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ---------- Saving ----------
|
||||
|
||||
function saveSettings() {
|
||||
if (!pluginApi) {
|
||||
Logger.e("NetworkIndicator", "Cannot save settings: pluginApi is null");
|
||||
return;
|
||||
}
|
||||
|
||||
pluginApi.pluginSettings.useCustomColors = root.useCustomColors;
|
||||
pluginApi.pluginSettings.showNumbers = root.showNumbers;
|
||||
pluginApi.pluginSettings.forceMegabytes = root.forceMegabytes;
|
||||
|
||||
pluginApi.pluginSettings.arrowType = root.arrowType;
|
||||
pluginApi.pluginSettings.minWidth = root.minWidth;
|
||||
pluginApi.pluginSettings.byteThresholdActive = root.byteThresholdActive;
|
||||
pluginApi.pluginSettings.fontSizeModifier = root.fontSizeModifier;
|
||||
pluginApi.pluginSettings.iconSizeModifier = root.iconSizeModifier;
|
||||
pluginApi.pluginSettings.spacingInbetween = root.spacingInbetween;
|
||||
|
||||
if (root.useCustomColors) {
|
||||
pluginApi.pluginSettings.colorSilent = root.colorSilent.toString();
|
||||
pluginApi.pluginSettings.colorTx = root.colorTx.toString();
|
||||
pluginApi.pluginSettings.colorRx = root.colorRx.toString();
|
||||
pluginApi.pluginSettings.colorText = root.colorText.toString();
|
||||
pluginApi.pluginSettings.colorBackground = root.colorBackground.toString();
|
||||
}
|
||||
|
||||
pluginApi.saveSettings();
|
||||
|
||||
Logger.i("NetworkIndicator", "Settings saved successfully");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Aktivitätsschwellwert in Byte pro Sekunde (B/s) festlegen.",
|
||||
"label": "Aktivitätsschwellwert anzeigen"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Hintergrundfarbe festlegen.",
|
||||
"label": "Hintergrund"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Symbolfarbe für Download (RX), wenn der Schwellwert überschritten ist.",
|
||||
"label": "RX aktiv"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Symbolfarbe, wenn der Datenverkehr unter dem Schwellwert liegt.",
|
||||
"label": "RX/TX inaktiv"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Textfarbe für RX- und TX-Werte festlegen.",
|
||||
"label": "Text"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Symbolfarbe für Upload (TX), wenn der Schwellwert überschritten ist.",
|
||||
"label": "TX aktiv"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Schriftgröße relativ zum Standard skalieren.",
|
||||
"label": "Schriftgrößen-Faktor"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Alle Verkehrswerte in MB anzeigen, statt bei geringer Nutzung auf KB zu wechseln.",
|
||||
"label": "Immer Megabyte (MB) verwenden"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Symbolgröße relativ zum Standard skalieren.",
|
||||
"label": "Symbolgrößen-Faktor"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Symbolstil auswählen",
|
||||
"label": "Symboltyp"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Mindestbreite für das Widget festlegen (in px).",
|
||||
"label": "Minimale Widget-Breite"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Aktuelle RX/TX-Geschwindigkeiten als Zahlen anzeigen.",
|
||||
"label": "Werte anzeigen"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Den Abstand zwischen den RX/TX-Elementen anpassen.",
|
||||
"label": "Vertikaler Abstand"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Eigene Farben statt der Standard-Themefarben verwenden.",
|
||||
"label": "Eigene Farben"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Set the activity threshold in bytes per second (B/s).",
|
||||
"label": "Show Active Threshold"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Set the background color for the widget.",
|
||||
"label": "Background"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Set the download (RX) icon color when above the threshold.",
|
||||
"label": "RX Active"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Set the icon color when traffic is below the threshold.",
|
||||
"label": "RX/TX Inactive"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Set the text color used for both RX and TX values.",
|
||||
"label": "Text"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Set the upload (TX) icon color when above the threshold.",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Scale the text size relative to the default.",
|
||||
"label": "Font Size Modifier"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Show all traffic values in MB instead of switching to KB for low usage.",
|
||||
"label": "Force megabytes (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Scale the icon size relative to the default.",
|
||||
"label": "Icon Size Modifier"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Choose the icon style used for the TX/RX indicators.",
|
||||
"label": "Icon Type"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Set a minimum width for the widget (in px).",
|
||||
"label": "Minimum Widget Width"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Display the current RX/TX speeds as numbers.",
|
||||
"label": "Show Values"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Adjust the spacing between RX/TX elements.",
|
||||
"label": "Vertical Spacing"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Enable custom colors instead of theme defaults.",
|
||||
"label": "Custom Colors"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Establecer el umbral de actividad en bytes por segundo (B/s).",
|
||||
"label": "Mostrar umbral activo"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Establecer el color de fondo para el widget.",
|
||||
"label": "Antecedentes"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Establecer el color del icono de descarga (RX) cuando esté por encima del umbral.",
|
||||
"label": "RX Activo"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Establecer el color del icono cuando el tráfico esté por debajo del umbral.",
|
||||
"label": "RX/TX Inactivo"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Establecer el color del texto utilizado tanto para los valores RX como TX.",
|
||||
"label": "Texto"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Establecer el color del icono de carga (TX) cuando esté por encima del umbral.",
|
||||
"label": "TX Activo"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Escalar el tamaño del texto en relación con el predeterminado.",
|
||||
"label": "Modificador de tamaño de fuente"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Mostrar todos los valores de tráfico en MB en lugar de cambiar a KB para bajo uso.",
|
||||
"label": "Forzar megabytes (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Escalar el tamaño del icono en relación con el tamaño predeterminado.",
|
||||
"label": "Modificador del tamaño del icono"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Elige el estilo de icono utilizado para los indicadores TX/RX.",
|
||||
"label": "Tipo de icono"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Establecer un ancho mínimo para el widget (en px).",
|
||||
"label": "Ancho mínimo del widget"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Mostrar las velocidades actuales de RX/TX como números.",
|
||||
"label": "Mostrar valores"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Ajustar el espaciado entre los elementos RX/TX.",
|
||||
"label": "Espaciado vertical"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Activar colores personalizados en lugar de los predeterminados del tema.",
|
||||
"label": "Colores personalizados"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Définir le seuil d'activité en octets par seconde (o/s).",
|
||||
"label": "Afficher le seuil actif"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Définir la couleur d'arrière-plan du widget.",
|
||||
"label": "Contexte"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Définir la couleur de l'icône de téléchargement (RX) lorsque la valeur est supérieure au seuil.",
|
||||
"label": "RX Active"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Définir la couleur de l'icône lorsque le trafic est inférieur au seuil.",
|
||||
"label": "RX/TX Inactif"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Définir la couleur du texte utilisée pour les valeurs RX et TX.",
|
||||
"label": "I am unable to help with that, as there is no text provided to translate. Please provide the text you would like translated."
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Définir la couleur de l'icône de téléversement (TX) lorsque le seuil est dépassé.",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Mettre à l'échelle la taille du texte par rapport à la taille par défaut.",
|
||||
"label": "Modificateur de taille de police"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Afficher toutes les valeurs de trafic en Mo au lieu de passer en Ko pour une faible utilisation.",
|
||||
"label": "Forcer les mégaoctets (Mo)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Ajuster la taille de l'icône par rapport à la taille par défaut.",
|
||||
"label": "Modificateur de taille d'icône"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Choisissez le style d'icône utilisé pour les indicateurs TX/RX.",
|
||||
"label": "Type d'icône"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Définir une largeur minimale pour le widget (en px).",
|
||||
"label": "Largeur minimale du widget"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Afficher les vitesses RX/TX actuelles sous forme de nombres.",
|
||||
"label": "Afficher les valeurs"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Ajuster l'espacement entre les éléments RX/TX.",
|
||||
"label": "Espacement vertical"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Activer les couleurs personnalisées au lieu des couleurs par défaut du thème.",
|
||||
"label": "Couleurs personnalisées"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Állítsa be az aktivitási küszöbértéket bájt/másodpercben (B/s).",
|
||||
"label": "Aktív küszöbérték mutatása"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Állítsa be a widget háttérszínét.",
|
||||
"label": "Háttér"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Állítsa be a letöltés (RX) ikon színét, ha az meghaladja a küszöbértéket.",
|
||||
"label": "RX Aktív"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Állítsa be az ikon színét, ha a forgalom a küszöbérték alatt van.",
|
||||
"label": "RX/TX inaktív"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Állítsa be az RX és TX értékekhez használt szövegszínt.",
|
||||
"label": "Általános"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Állítsa be a feltöltés (TX) ikon színét, ha a küszöbérték felett van.",
|
||||
"label": "TX Aktív"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "A szövegméret skálázása az alapértelmezett mérethez képest.",
|
||||
"label": "Betűméret módosító"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Az összes forgalmi értéket MB-ban mutassa, ahelyett, hogy alacsony használat esetén KB-ra váltana.",
|
||||
"label": "Megabájt (MB) kényszerítése"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Az ikonméret skálázása az alapértelmezett mérethez képest.",
|
||||
"label": "Ikonméret módosító"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Válaszd ki az TX/RX indikátorokhoz használt ikonkészletet.",
|
||||
"label": "Ikon típusa"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Állítson be egy minimális szélességet a widget számára (px-ben).",
|
||||
"label": "Minimum Widget Szélesség"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "A pillanatnyi RX/TX sebességek megjelenítése számként.",
|
||||
"label": "Értékek megjelenítése"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Állítsa be a RX/TX elemek közötti távolságot.",
|
||||
"label": "Függőleges térköz"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Egyéni színek engedélyezése a téma alapértelmezett színei helyett.",
|
||||
"label": "Egyéni színek"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Imposta la soglia di attività in byte al secondo (B/s).",
|
||||
"label": "Zeige Aktive Schwelle"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Imposta il colore di sfondo per il widget.",
|
||||
"label": "Hintergrund"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Imposta il colore dell'icona di download (RX) quando è sopra la soglia.",
|
||||
"label": "RX Aktiv"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Imposta il colore dell'icona quando il traffico è al di sotto della soglia.",
|
||||
"label": "RX/TX Neaktivan"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Imposta il colore del testo utilizzato sia per i valori RX che TX.",
|
||||
"label": "Please provide the English text you would like me to translate. I need the text to be able to provide the translation."
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Määritä lähetyskuvakkeen (TX) väri, kun raja-arvo ylittyy.",
|
||||
"label": "TX Aktibo"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Skala textstorleken relativt standardstorleken.",
|
||||
"label": "Modifikator veličine fonta"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Zeigen Sie alle Verkehrswerte in MB an, anstatt bei geringer Nutzung auf KB umzuschalten.",
|
||||
"label": "Megabajtów siłą (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Mérje a ikon méretét a alapértelmezetthez képest.",
|
||||
"label": "Modifikator za veličinu ikone"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Alege stilul pictogramei folosit pentru indicatorii TX/RX.",
|
||||
"label": "Tip ikonë"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Imposta una larghezza minima per il widget (in px).",
|
||||
"label": "Breite des minimalen Widgets"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Zeige die aktuellen RX/TX-Geschwindigkeiten als Zahlen an.",
|
||||
"label": "Ipakita ang mga Halaga"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Rregulloje hapësirën midis elementeve RX/TX.",
|
||||
"label": "Vertikaler Abstand"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Aktiviere benutzerdefinierte Farben anstelle der Standardfarben des Designs.",
|
||||
"label": "Ngjyra të personalizuara"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "アクティビティの閾値をバイト毎秒 (B/s) で設定します。",
|
||||
"label": "アクティブなしきい値を表示"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "ウィジェットの背景色を設定します。",
|
||||
"label": "背景"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "閾値を超えた場合のダウンロード (RX) アイコンの色を設定します。",
|
||||
"label": "RXアクティブ"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "トラフィックが閾値を下回った場合に、アイコンの色を設定します。",
|
||||
"label": "RX/TX 非アクティブ"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "RX と TX の両方の値に使用するテキストの色を設定します。",
|
||||
"label": "申し訳ありませんが、翻訳するテキストが提供されていません。テキストを入力してください。"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "閾値を超えた場合のアップロード (TX) アイコンの色を設定します。",
|
||||
"label": "TXアクティブ"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "テキストのサイズをデフォルトを基準に調整します。",
|
||||
"label": "フォントサイズ変更"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "低い使用量でもKBに切り替えずに、すべてのトラフィック値をMBで表示する。",
|
||||
"label": "メガバイトを強制的に実行する"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "デフォルトに対するアイコンのサイズを調整します。",
|
||||
"label": "アイコンサイズ変更"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "TX/RXインジケーターに使用するアイコンのスタイルを選択してください。",
|
||||
"label": "アイコンの種類"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "ウィジェットの最小幅を(pxで)設定します。",
|
||||
"label": "ウィジェットの最小幅"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "現在のRX/TX速度を数値で表示する。",
|
||||
"label": "値を表示"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "RX/TX要素間の間隔を調整してください。",
|
||||
"label": "垂直方向の間隔"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "テーマのデフォルトの代わりにカスタムカラーを有効にする。",
|
||||
"label": "カスタムカラー"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Sînorê çalakiyê bi bayt di duyemîn de (B/s) destnîşan bike.",
|
||||
"label": "Derheqê Çalakîyê Nîşan Bide"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Rengê paşxaneyê ji bo widgetê destnîşan bike.",
|
||||
"label": "Paşxan"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Dema rengê îkona daxistinê (RX) dema ku ji tixûbê derbas dibe, destnîşan bike.",
|
||||
"label": "RX Çalak"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Îkon rengê dema trafîk ji binê tixûbê be, saz bike.",
|
||||
"label": "RX/TX Neçalak"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Rengê nivîsê yê ku ji bo nirxên RX û TX tê bikaranîn, destnîşan bike.",
|
||||
"label": "Bar Height"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Rengê îkona barkirinê (TX) dema ku ji tixûbê derbas dibe, destnîşan bike.",
|
||||
"label": "TX Çalak"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Mezinahiya nivîsê li gorî ya xwerû mezin bike.",
|
||||
"label": "Guherînera Mezinahiya Tîpan"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Hemû nirxên trafîkê bi MB nîşan bide, li şûna ku ji bo bikaranîna kêm veguhere KB.",
|
||||
"label": "Meqsed mekabyte (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Mezinahiya îkonê li gorî ya xwerû mezin bike.",
|
||||
"label": "Guherînerê Mezinahiya Îkonê"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Şêwaza îkonê ya ku ji bo nîşanderên TX/RX tê bikaranîn hilbijêre.",
|
||||
"label": "Cureyê Îkonê"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Ji bo widget firehiyeke kêmtirin (bi px) diyar bike.",
|
||||
"label": "Firehiya Herî Kêm a Wîcêtê"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Leza lezahenên RX/TX yên niha wekî hejmaran.",
|
||||
"label": "Nîşan bide Nirxan"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Cihêtiya navbera elementên RX/TX eyar bike.",
|
||||
"label": "Valahiya Rastkirin"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Çalak bike rengên xwerû li şûna rengên xwerû yên temayê.",
|
||||
"label": "Rengên Xweser"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Stel de activiteitsdrempel in bytes per seconde (B/s) in.",
|
||||
"label": "Actieve drempel weergeven"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Stel de achtergrondkleur voor de widget in.",
|
||||
"label": "Achtergrond"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Stel de kleur van het download (RX) pictogram in wanneer deze boven de drempelwaarde ligt.",
|
||||
"label": "RX Actief"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Stel de pictogramkleur in wanneer het verkeer onder de drempelwaarde is.",
|
||||
"label": "RX/TX Inactief"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Stel de tekstkleur in die gebruikt wordt voor zowel RX- als TX-waarden.",
|
||||
"label": "Tekst"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Stel de kleur van het upload (TX) icoon in wanneer boven de drempelwaarde.",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Schaal de tekstgrootte ten opzichte van de standaard.",
|
||||
"label": "Lettergrootte aanpassing"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Toon alle verkeerswaarden in MB in plaats van over te schakelen naar KB bij laag gebruik.",
|
||||
"label": "Forceer megabytes (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Schaal de pictogramgrootte ten opzichte van de standaard.",
|
||||
"label": "Icoongrootte aanpassing"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Kies de pictogramstijl die gebruikt wordt voor de TX/RX-indicatoren.",
|
||||
"label": "Icoontype"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Stel een minimale breedte in voor de widget (in px).",
|
||||
"label": "Minimale widgetbreedte"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Toon de huidige RX/TX snelheden als getallen.",
|
||||
"label": "Waarden weergeven"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Pas de afstand tussen de RX/TX-elementen aan.",
|
||||
"label": "Verticale afstand"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Schakel aangepaste kleuren in in plaats van de standaard themakleuren.",
|
||||
"label": "Aangepaste kleuren"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Ustaw próg aktywności w bajtach na sekundę (B/s).",
|
||||
"label": "Pokaż Aktywny Próg"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Ustaw kolor tła widżetu.",
|
||||
"label": "Tło"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Ustaw kolor ikony pobierania (RX), gdy wartość przekroczy próg.",
|
||||
"label": "RX Aktywny"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Ustaw kolor ikony, gdy ruch jest poniżej progu.",
|
||||
"label": "RX/TX Nieaktywne"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Ustaw kolor tekstu używany zarówno dla wartości RX, jak i TX.",
|
||||
"label": "Uptime"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Ustaw kolor ikony wysyłania (TX), gdy przekroczony zostanie próg.",
|
||||
"label": "Aktywny TX"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Skaluj rozmiar tekstu względem domyślnego.",
|
||||
"label": "Modyfikator rozmiaru czcionki"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Wyświetlaj wszystkie wartości transferu w MB zamiast przełączać się na KB przy niskim użyciu.",
|
||||
"label": "Wymuś megabajty (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Skaluj rozmiar ikony względem domyślnego.",
|
||||
"label": "Modyfikator rozmiaru ikony"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Wybierz styl ikony używany dla wskaźników TX/RX.",
|
||||
"label": "Typ Ikony"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Ustaw minimalną szerokość widżetu (w px).",
|
||||
"label": "Minimalna szerokość widżetu"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Wyświetlaj aktualne prędkości RX/TX jako liczby.",
|
||||
"label": "Pokaż wartości"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Dostosuj odstępy między elementami RX/TX.",
|
||||
"label": "Odstęp pionowy"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Włącz własne kolory zamiast domyślnych motywu.",
|
||||
"label": "Własne kolory"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Defina o limite de atividade em bytes por segundo (B/s).",
|
||||
"label": "Mostrar Limiar Ativo"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Definir a cor de fundo do widget.",
|
||||
"label": "Fundo"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Defina a cor do ícone de download (RX) quando acima do limite.",
|
||||
"label": "RX Ativo"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Definir a cor do ícone quando o tráfego estiver abaixo do limite.",
|
||||
"label": "RX/TX Inativo"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Definir a cor do texto usada para os valores de RX e TX.",
|
||||
"label": "Texto"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Definir a cor do ícone de upload (TX) quando acima do limite.",
|
||||
"label": "TX Ativo"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Ajustar o tamanho do texto em relação ao padrão.",
|
||||
"label": "Modificador de Tamanho da Fonte"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Mostrar todos os valores de tráfego em MB em vez de mudar para KB para baixo uso.",
|
||||
"label": "Forçar megabytes (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Dimensionar o tamanho do ícone em relação ao padrão.",
|
||||
"label": "Modificador de Tamanho do Ícone"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Escolha o estilo do ícone usado para os indicadores TX/RX.",
|
||||
"label": "Tipo de Ícone"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Defina uma largura mínima para o widget (em px).",
|
||||
"label": "Largura Mínima do Widget"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Exibir as velocidades atuais de RX/TX como números.",
|
||||
"label": "Mostrar Valores"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Ajustar o espaçamento entre os elementos RX/TX.",
|
||||
"label": "Espaçamento vertical"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Ativar cores personalizadas em vez das cores padrão do tema.",
|
||||
"label": "Cores Personalizadas"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Установите порог активности в байтах в секунду (Б/с).",
|
||||
"label": "Показать активный порог"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Установить цвет фона для виджета.",
|
||||
"label": "Фон"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Установить цвет значка загрузки (RX), когда он выше порогового значения.",
|
||||
"label": "RX Active"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Установить цвет значка, когда трафик ниже порогового значения.",
|
||||
"label": "RX/TX неактивны"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Установить цвет текста, используемый для значений RX и TX.",
|
||||
"label": "Текст"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Установить цвет значка загрузки (TX) при превышении порогового значения.",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Изменить размер текста относительно размера по умолчанию.",
|
||||
"label": "Изменение размера шрифта"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Показывать все значения трафика в МБ, вместо переключения на КБ при низком использовании.",
|
||||
"label": "Принудительно мегабайты (МБ)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Изменить размер значка относительно размера по умолчанию.",
|
||||
"label": "Изменение размера значков"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Выберите стиль значков, используемых для индикаторов TX/RX.",
|
||||
"label": "Тип значка"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Установить минимальную ширину для виджета (в px).",
|
||||
"label": "Минимальная ширина виджета"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Отображать текущие скорости RX/TX в виде чисел.",
|
||||
"label": "Показать значения"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Отрегулируйте интервал между элементами RX/TX.",
|
||||
"label": "Вертикальный интервал"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Включить пользовательские цвета вместо цветов темы по умолчанию.",
|
||||
"label": "Пользовательские цвета"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Etkinlik eşiğini saniye başına bayt (B/s) cinsinden ayarlayın.",
|
||||
"label": "Aktif Eşiği Göster"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Araç için arka plan rengini ayarla.",
|
||||
"label": "Arka plan"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Eşiğin üzerindeyken indirme (RX) simge rengini ayarla.",
|
||||
"label": "RX Aktif"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Trafiğin eşiğin altında olduğu durumlarda simge rengini ayarla.",
|
||||
"label": "RX/TX Etkin Değil"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "RX ve TX değerleri için kullanılan metin rengini ayarla.",
|
||||
"label": "Metin"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Eşik değerinin üzerindeyken yükleme (TX) simge rengini ayarla.",
|
||||
"label": "TX Aktif"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Metin boyutunu varsayılana göre ölçekle.",
|
||||
"label": "Yazı Boyutu Değiştirici"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Düşük kullanımda KB'a geçmek yerine tüm trafik değerlerini MB olarak göster.",
|
||||
"label": "Megabayt (MB) zorla"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Simge boyutunu varsayılan değere göre ölçekle.",
|
||||
"label": "Simge Boyutu Değiştirici"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "TX/RX göstergeleri için kullanılan simge stilini seçin.",
|
||||
"label": "Simge Türü"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Araç için minimum genişlik (piksel cinsinden) belirleyin.",
|
||||
"label": "Minimum Widget Genişliği"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Mevcut RX/TX hızlarını sayı olarak görüntüle.",
|
||||
"label": "Değerleri Göster"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "RX/TX öğeleri arasındaki boşluğu ayarlayın.",
|
||||
"label": "Dikey Aralık"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Tema varsayılanları yerine özel renkleri etkinleştir.",
|
||||
"label": "Özel Renkler"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "Встановіть поріг активності в байтах на секунду (Б/с).",
|
||||
"label": "Показати активний поріг"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "Встановити колір фону для віджета.",
|
||||
"label": "Тло"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "Встановити колір значка завантаження (RX), коли він перевищує поріг.",
|
||||
"label": "RX Active"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "Встановити колір значка, коли трафік нижче порогового значення.",
|
||||
"label": "RX/TX неактивні"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "Встановити колір тексту, який використовується для значень RX та TX.",
|
||||
"label": "Текст"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "Встановити колір піктограми завантаження (TX), коли значення перевищує поріг.",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "Змінити розмір тексту відносно стандартного.",
|
||||
"label": "Модифікатор розміру шрифту"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "Показувати всі значення трафіку в МБ замість переходу на КБ для низького використання.",
|
||||
"label": "Примусово мегабайти (МБ)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "Змінюйте розмір значка відносно стандартного.",
|
||||
"label": "Модифікатор розміру значка"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "Виберіть стиль іконок, що використовуються для індикаторів TX/RX.",
|
||||
"label": "Тип іконки"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "Встановити мінімальну ширину для віджета (у пікселях).",
|
||||
"label": "Мінімальна ширина віджета"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "Показувати поточні швидкості RX/TX у вигляді чисел.",
|
||||
"label": "Показати значення"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "Відрегулюйте інтервал між елементами RX/TX.",
|
||||
"label": "Вертикальний інтервал"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "Увімкнути власні кольори замість кольорів теми за замовчуванням.",
|
||||
"label": "Користувацькі кольори"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"settings": {
|
||||
"byteThresholdActive": {
|
||||
"desc": "设置活动阈值,单位为字节/秒 (B/s)。",
|
||||
"label": "显示活动阈值"
|
||||
},
|
||||
"colorBackground": {
|
||||
"desc": "设置小部件的背景颜色。",
|
||||
"label": "背景"
|
||||
},
|
||||
"colorRx": {
|
||||
"desc": "设置高于阈值时的下载(RX)图标颜色。",
|
||||
"label": "RX Active"
|
||||
},
|
||||
"colorSilent": {
|
||||
"desc": "当流量低于阈值时,设置图标颜色。",
|
||||
"label": "RX/TX 无活动"
|
||||
},
|
||||
"colorText": {
|
||||
"desc": "设置用于RX和TX值的文本颜色。",
|
||||
"label": "文本"
|
||||
},
|
||||
"colorTx": {
|
||||
"desc": "设置上传(TX)图标颜色,当高于阈值时。",
|
||||
"label": "TX Active"
|
||||
},
|
||||
"fontSizeModifier": {
|
||||
"desc": "相对于默认值缩放文本大小。",
|
||||
"label": "字体大小调整器"
|
||||
},
|
||||
"forceMegabytes": {
|
||||
"desc": "显示所有流量值,以MB为单位,而不是在低使用量时切换到KB。",
|
||||
"label": "强制兆字节 (MB)"
|
||||
},
|
||||
"iconSizeModifier": {
|
||||
"desc": "相对于默认值缩放图标大小。",
|
||||
"label": "图标大小修改器"
|
||||
},
|
||||
"iconType": {
|
||||
"desc": "选择用于 TX/RX 指示器的图标样式。",
|
||||
"label": "图标类型"
|
||||
},
|
||||
"minWidth": {
|
||||
"desc": "设置小部件的最小宽度(以像素为单位)。",
|
||||
"label": "最小部件宽度"
|
||||
},
|
||||
"showNumbers": {
|
||||
"desc": "以数字形式显示当前的 RX/TX 速度。",
|
||||
"label": "显示数值"
|
||||
},
|
||||
"spacingInbetween": {
|
||||
"desc": "调整RX/TX元素之间的间距。",
|
||||
"label": "垂直间距"
|
||||
},
|
||||
"useCustomColors": {
|
||||
"desc": "启用自定义颜色,而非主题默认颜色。",
|
||||
"label": "自定义颜色"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"id": "network-indicator",
|
||||
"name": "Network Indicator",
|
||||
"version": "1.0.5",
|
||||
"minNoctaliaVersion": "3.7.5",
|
||||
"author": "tonigineer",
|
||||
"license": "MIT",
|
||||
"repository": "https://github.com/noctalia-dev/noctalia-plugins",
|
||||
"description": "A `lively` network traffic indicator.",
|
||||
"tags": ["Bar", "Network", "Indicator"],
|
||||
"entryPoints": {
|
||||
"barWidget": "BarWidget.qml",
|
||||
"settings": "Settings.qml"
|
||||
},
|
||||
"dependencies": {
|
||||
"plugins": []
|
||||
},
|
||||
"metadata": {
|
||||
"defaultSettings": {
|
||||
"arrowType": "caret",
|
||||
"byteThresholdActive": 1024,
|
||||
"fontSizeModifier": 1.0,
|
||||
"forceMegabytes": false,
|
||||
"iconSizeModifier": 1.0,
|
||||
"minWidth": 0,
|
||||
"showNumbers": true,
|
||||
"spacingInbetween": 0,
|
||||
"useCustomColors": false
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 459 KiB |
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"useCustomColors": false,
|
||||
"showNumbers": true,
|
||||
"forceMegabytes": false,
|
||||
"arrowType": "caret",
|
||||
"minWidth": 0,
|
||||
"byteThresholdActive": 512,
|
||||
"fontSizeModifier": 1.1,
|
||||
"iconSizeModifier": 1.1,
|
||||
"spacingInbetween": 1
|
||||
}
|
||||
@@ -40,8 +40,11 @@ Item {
|
||||
property bool removeMargins: cfg.removeMargins ?? defaults.removeMargins
|
||||
property int iconSpacing: cfg.iconSpacing || Style.marginXS
|
||||
|
||||
readonly property color activeColor: Color.mPrimary
|
||||
readonly property color inactiveColor: Qt.alpha(Color.mOnSurfaceVariant, 0.3)
|
||||
property string activeColorKey: cfg.activeColor ?? defaults.activeColor
|
||||
property string inactiveColorKey: cfg.inactiveColor ?? defaults.inactiveColor
|
||||
|
||||
readonly property color activeColor: Color.resolveColorKey(activeColorKey)
|
||||
readonly property color inactiveColor: inactiveColorKey === "none" ? Qt.alpha(Color.mOnSurfaceVariant, 0.3) : Color.resolveColorKey(inactiveColorKey)
|
||||
readonly property color micColor: micActive ? activeColor : inactiveColor
|
||||
readonly property color camColor: camActive ? activeColor : inactiveColor
|
||||
readonly property color scrColor: scrActive ? activeColor : inactiveColor
|
||||
@@ -276,11 +279,37 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
NPopupContextMenu {
|
||||
id: contextMenu
|
||||
|
||||
model: [
|
||||
{
|
||||
"label": pluginApi?.tr("menu.settings"),
|
||||
"action": "settings",
|
||||
"icon": "settings"
|
||||
},
|
||||
]
|
||||
|
||||
onTriggered: function (action) {
|
||||
contextMenu.close();
|
||||
PanelService.closeContextMenu(screen);
|
||||
if (action === "settings") {
|
||||
BarService.openPluginSettings(root.screen, pluginApi.manifest);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.RightButton
|
||||
hoverEnabled: true
|
||||
|
||||
onClicked: function (mouse) {
|
||||
if (mouse.button === Qt.RightButton) {
|
||||
PanelService.showContextMenu(contextMenu, root, screen);
|
||||
}
|
||||
}
|
||||
|
||||
onEntered: {
|
||||
var tooltipText = buildTooltip();
|
||||
if (tooltipText) {
|
||||
|
||||
@@ -14,6 +14,8 @@ ColumnLayout {
|
||||
property bool hideInactive: cfg.hideInactive ?? defaults.hideInactive
|
||||
property bool removeMargins: cfg.removeMargins ?? defaults.removeMargins
|
||||
property int iconSpacing: cfg.iconSpacing || Style.marginXS
|
||||
property string activeColor: cfg.activeColor ?? defaults.activeColor
|
||||
property string inactiveColor: cfg.inactiveColor ?? defaults.inactiveColor
|
||||
|
||||
spacing: Style.marginL
|
||||
|
||||
@@ -45,6 +47,22 @@ ColumnLayout {
|
||||
}
|
||||
}
|
||||
|
||||
NComboBox {
|
||||
label: pluginApi?.tr("settings.activeColor.label")
|
||||
description: pluginApi?.tr("settings.activeColor.desc")
|
||||
model: Color.colorKeyModel
|
||||
currentKey: root.activeColor
|
||||
onSelected: key => root.activeColor = key
|
||||
}
|
||||
|
||||
NComboBox {
|
||||
label: pluginApi?.tr("settings.inactiveColor.label")
|
||||
description: pluginApi?.tr("settings.inactiveColor.desc")
|
||||
model: Color.colorKeyModel
|
||||
currentKey: root.inactiveColor
|
||||
onSelected: key => root.inactiveColor = key
|
||||
}
|
||||
|
||||
NComboBox {
|
||||
label: pluginApi?.tr("settings.iconSpacing.label")
|
||||
description: pluginApi?.tr("settings.iconSpacing.desc")
|
||||
@@ -80,6 +98,8 @@ ColumnLayout {
|
||||
pluginApi.pluginSettings.hideInactive = root.hideInactive;
|
||||
pluginApi.pluginSettings.iconSpacing = root.iconSpacing;
|
||||
pluginApi.pluginSettings.removeMargins = root.removeMargins;
|
||||
pluginApi.pluginSettings.activeColor = root.activeColor;
|
||||
pluginApi.pluginSettings.inactiveColor = root.inactiveColor;
|
||||
|
||||
pluginApi.saveSettings();
|
||||
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
{
|
||||
"menu": {
|
||||
"settings": "Widget settings"
|
||||
},
|
||||
"settings": {
|
||||
"activeColor": {
|
||||
"desc": "Color of the icons when active.",
|
||||
"label": "Active icon color"
|
||||
},
|
||||
"hideInactive": {
|
||||
"desc": "Hide microphone, camera, and screen icons when there are inactive.",
|
||||
"label": "Hide inactive states"
|
||||
},
|
||||
"inactiveColor": {
|
||||
"desc": "Color of the icons when inactive.",
|
||||
"label": "Inactive icon color"
|
||||
},
|
||||
"iconSpacing": {
|
||||
"desc": "Set the spacing between the icons.",
|
||||
"label": "Icon spacing"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "privacy-indicator",
|
||||
"name": "Privacy Indicator",
|
||||
"version": "1.0.13",
|
||||
"version": "1.1.0",
|
||||
"minNoctaliaVersion": "3.6.0",
|
||||
"author": "Noctalia Team",
|
||||
"official": true,
|
||||
@@ -19,7 +19,9 @@
|
||||
"metadata": {
|
||||
"defaultSettings": {
|
||||
"hideInactive": false,
|
||||
"removeMargins": false
|
||||
"removeMargins": false,
|
||||
"activeColor": "primary",
|
||||
"inactiveColor": "none"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,12 +14,25 @@ NIconButton {
|
||||
property string widgetId: ""
|
||||
property string section: ""
|
||||
|
||||
// Bar positioning properties
|
||||
readonly property string screenName: screen ? screen.name : ""
|
||||
readonly property string barPosition: Settings.getBarPositionForScreen(screenName)
|
||||
readonly property bool isVertical: barPosition === "left" || barPosition === "right"
|
||||
readonly property real barHeight: Style.getBarHeightForScreen(screenName)
|
||||
readonly property real capsuleHeight: Style.getCapsuleHeightForScreen(screenName)
|
||||
readonly property real barFontSize: Style.getBarFontSizeForScreen(screenName)
|
||||
|
||||
readonly property var mainInstance: pluginApi?.mainInstance
|
||||
readonly property bool hideInactive:
|
||||
pluginApi?.pluginSettings?.hideInactive ??
|
||||
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
|
||||
readonly property bool hideInactive:
|
||||
pluginApi?.pluginSettings?.hideInactive ??
|
||||
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
|
||||
false
|
||||
|
||||
property var cfg: pluginApi?.pluginSettings || ({})
|
||||
property var defaults: pluginApi?.manifest?.metadata?.defaultSettings || ({})
|
||||
readonly property string iconColorKey: cfg.iconColor ?? defaults.iconColor ?? "none"
|
||||
readonly property color iconColor: Color.resolveColorKey(iconColorKey)
|
||||
|
||||
readonly property bool shouldShow: !hideInactive || (mainInstance?.isRecording ?? false) || (mainInstance?.isPending ?? false)
|
||||
|
||||
visible: true
|
||||
@@ -43,11 +56,11 @@ NIconButton {
|
||||
icon: "camera-video"
|
||||
tooltipText: mainInstance?.buildTooltip()
|
||||
tooltipDirection: BarService.getTooltipDirection()
|
||||
baseSize: Style.capsuleHeight
|
||||
baseSize: root.capsuleHeight
|
||||
applyUiScale: false
|
||||
customRadius: Style.radiusL
|
||||
colorBg: mainInstance?.isRecording ? Color.mPrimary : Style.capsuleColor
|
||||
colorFg: mainInstance?.isRecording ? Color.mOnPrimary : Color.mOnSurface
|
||||
colorBg: (mainInstance?.isRecording || mainInstance?.isPending) ? Color.mPrimary : Style.capsuleColor
|
||||
colorFg: (mainInstance?.isRecording || mainInstance?.isPending) ? Color.mOnPrimary : root.iconColor
|
||||
colorBorder: "transparent"
|
||||
colorBorderHover: "transparent"
|
||||
border.color: Style.capsuleBorderColor
|
||||
|
||||
@@ -16,6 +16,11 @@ ColumnLayout {
|
||||
pluginApi?.manifest?.metadata?.defaultSettings?.hideInactive ??
|
||||
false
|
||||
|
||||
property string editIconColor:
|
||||
pluginApi?.pluginSettings?.iconColor ??
|
||||
pluginApi?.manifest?.metadata?.defaultSettings?.iconColor ??
|
||||
"none"
|
||||
|
||||
property string editDirectory:
|
||||
pluginApi?.pluginSettings?.directory ||
|
||||
pluginApi?.manifest?.metadata?.defaultSettings?.directory ||
|
||||
@@ -83,6 +88,7 @@ ColumnLayout {
|
||||
}
|
||||
|
||||
pluginApi.pluginSettings.hideInactive = root.editHideInactive
|
||||
pluginApi.pluginSettings.iconColor = root.editIconColor
|
||||
pluginApi.pluginSettings.directory = root.editDirectory
|
||||
pluginApi.pluginSettings.filenamePattern = root.editFilenamePattern
|
||||
pluginApi.pluginSettings.frameRate = root.editFrameRate
|
||||
@@ -100,6 +106,16 @@ ColumnLayout {
|
||||
|
||||
Logger.i("ScreenRecorder", "Settings saved successfully")
|
||||
}
|
||||
// Icon Color
|
||||
NComboBox {
|
||||
label: I18n.tr("common.select-icon-color")
|
||||
description: I18n.tr("common.select-color-description")
|
||||
model: Color.colorKeyModel
|
||||
currentKey: root.editIconColor
|
||||
onSelected: key => root.editIconColor = key
|
||||
minimumWidth: 200
|
||||
}
|
||||
|
||||
NTextInputButton {
|
||||
label: pluginApi.tr("settings.general.output-folder")
|
||||
description: pluginApi.tr("settings.general.output-folder-description")
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
"start-recording": "Bildschirmaufnahme (Aufnahme starten)",
|
||||
"started": "Aufnahme gestartet.",
|
||||
"stop-recording": "Bildschirmaufnahme (Aufnahme stoppen)",
|
||||
"stopping": "Aufnahme stoppen…"
|
||||
"stopping": "Aufnahme stoppen…",
|
||||
"open-file": "Datei öffnen"
|
||||
},
|
||||
"name": "Bildschirmrekorder",
|
||||
"settings": {
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
"not-installed": "gpu-screen-recorder not installed.",
|
||||
"not-installed-desc": "Please install gpu-screen-recorder to use screen recording features.",
|
||||
"saved": "Recording saved.",
|
||||
"start-recording": "Screen recorder (start recording)",
|
||||
"start-recording": "Screen Recorder (start recording)",
|
||||
"started": "Recording started.",
|
||||
"stop-recording": "Screen recorder (stop recording)",
|
||||
"stop-recording": "Screen Recorder (stop recording)",
|
||||
"stopping": "Stopping recording…",
|
||||
"open-file": "Open file"
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"description": "カスタマイズ可能なビデオおよびオーディオ設定を備えたハードウェアアクセラレーション画面録画",
|
||||
"description": "カスタマイズ可能なビデオおよびオーディオ設定を備えたハードウェアアクセラレーション対応の画面録画",
|
||||
"messages": {
|
||||
"failed-general": "レコーダーがエラーで終了しました。",
|
||||
"failed-gpu": "gpu-screen-recorder が予期せず終了しました。",
|
||||
@@ -8,36 +8,39 @@
|
||||
"no-portals-desc": "xdg-desktop-portalとコンポジターポータル (wlr/hyprland/gnome/kde) を起動します。",
|
||||
"not-installed": "gpu-screen-recorder がインストールされていません。",
|
||||
"not-installed-desc": "画面録画機能を使用するには、gpu-screen-recorderをインストールしてください。",
|
||||
"saved": "録音を保存しました。",
|
||||
"start-recording": "画面録画(録画開始)",
|
||||
"started": "録音を開始しました。",
|
||||
"stop-recording": "画面録画(録画停止)",
|
||||
"stopping": "録画を停止しています…"
|
||||
"saved": "録画を保存しました。",
|
||||
"start-recording": "画面録画(開始)",
|
||||
"started": "録画を開始しました。",
|
||||
"stop-recording": "画面録画(停止)",
|
||||
"stopping": "録画を停止しています…",
|
||||
"open-file": "ファイルを開く"
|
||||
},
|
||||
"name": "画面レコーダー",
|
||||
"settings": {
|
||||
"audio": {
|
||||
"audio-sources-both": "システム出力 + マイク入力",
|
||||
"audio-sources-both": "システム出力 + マイク入力",
|
||||
"audio-sources-microphone-input": "マイク入力",
|
||||
"audio-sources-none": "音声なし",
|
||||
"audio-sources-system-output": "システム出力",
|
||||
"codec": "オーディオコーデック",
|
||||
"codec-desc": "最高のパフォーマンスと最小のオーディオサイズにはOpusが推奨されます",
|
||||
"source": "オーディオソース",
|
||||
"source-desc": "録画中にキャプチャするオーディオソース",
|
||||
"source-desc": "録画中にキャプチャされるオーディオソース",
|
||||
"title": "オーディオ設定"
|
||||
},
|
||||
"filename-pattern": {
|
||||
"description": "日付/時刻コードを使用したファイル名パターン(例:recording_yyyyMMdd_HHmmss)",
|
||||
"description": "日付/時刻コードを使用したファイル名のパターン(例:recording_yyyyMMdd_HHmmss)",
|
||||
"label": "ファイル名のパターン"
|
||||
},
|
||||
"general": {
|
||||
"copy-to-clipboard": "クリップボードにコピー",
|
||||
"copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーします。",
|
||||
"copy-to-clipboard-description": "録画終了後、ファイルをクリップボードにコピーする",
|
||||
"hide-when-inactive": "非アクティブ時に非表示",
|
||||
"hide-when-inactive-description": "録画していないときはウィジェットを隠す",
|
||||
"output-folder": "出力フォルダー",
|
||||
"output-folder-description": "画面録画が保存されるフォルダー",
|
||||
"show-cursor": "カーソルを表示",
|
||||
"show-cursor-description": "ビデオにマウスカーソルを記録する",
|
||||
"show-cursor-description": "録画にマウスカーソルを記録する",
|
||||
"title": "全般"
|
||||
},
|
||||
"title": "画面レコーダー設定",
|
||||
@@ -45,22 +48,22 @@
|
||||
"codec": "ビデオコーデック",
|
||||
"codec-desc": "h264は最も一般的なコーデックです",
|
||||
"color-range": "色範囲",
|
||||
"color-range-desc": "互換性向上のため制限付きが推奨されます",
|
||||
"color-range-desc": "互換性を高めるため、限定が推奨されます",
|
||||
"color-range-full": "フル",
|
||||
"color-range-limited": "限定",
|
||||
"frame-rate": "フレームレート",
|
||||
"frame-rate-desc": "画面録画の目標フレームレート",
|
||||
"quality": "ビデオ品質",
|
||||
"quality-desc": "品質が高いほどファイルサイズが大きくなります",
|
||||
"quality-high": "高い",
|
||||
"quality-medium": "ミディアム",
|
||||
"quality-ultra": "ウルトラ",
|
||||
"quality-very-high": "非常に高い",
|
||||
"resolution": "Resolution",
|
||||
"resolution-desc": "Limit output resolution. Default uses original screen resolution",
|
||||
"resolution-original": "Default",
|
||||
"quality-desc": "品質が高いほど、ファイルサイズが大きくなります",
|
||||
"quality-high": "高",
|
||||
"quality-medium": "中",
|
||||
"quality-ultra": "最高",
|
||||
"quality-very-high": "超高",
|
||||
"resolution": "解像度",
|
||||
"resolution-desc": "出力解像度を制限します。デフォルトでは元の画面解像度が使用されます",
|
||||
"resolution-original": "デフォルト",
|
||||
"source": "ビデオソース",
|
||||
"source-desc": "Portalが推奨されます。アーティファクトが発生する場合は画面を試してください",
|
||||
"source-desc": "ポータルが推奨されます。アーティファクトが発生する場合は「スクリーン」を試してください",
|
||||
"sources-portal": "ポータル",
|
||||
"sources-screen": "スクリーン",
|
||||
"title": "ビデオ設定"
|
||||
|
||||
@@ -39,6 +39,8 @@
|
||||
"output-folder-description": "屏幕录制将保存到的文件夹",
|
||||
"show-cursor": "显示光标",
|
||||
"show-cursor-description": "在视频中录制鼠标光标",
|
||||
"hide-when-inactive": "非活动时隐藏",
|
||||
"hide-when-inactive-description": "未录制时隐藏栏指示器",
|
||||
"title": "常规"
|
||||
},
|
||||
"title": "屏幕录制器设置",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "screen-recorder",
|
||||
"name": "Screen Recorder",
|
||||
"version": "1.1.2",
|
||||
"version": "1.1.6",
|
||||
"minNoctaliaVersion": "3.6.0",
|
||||
"author": "Noctalia Team",
|
||||
"official": true,
|
||||
@@ -24,6 +24,7 @@
|
||||
"metadata": {
|
||||
"defaultSettings": {
|
||||
"hideInactive": false,
|
||||
"iconColor": "none",
|
||||
"directory": "",
|
||||
"filenamePattern": "recording_yyyyMMdd_HHmmss",
|
||||
"frameRate": "60",
|
||||
|
||||
@@ -15,8 +15,13 @@ Item {
|
||||
property string section: ""
|
||||
property bool hovered: false
|
||||
|
||||
readonly property string barPosition: Settings.data.bar.position
|
||||
// Bar positioning properties
|
||||
readonly property string screenName: screen ? screen.name : ""
|
||||
readonly property string barPosition: Settings.getBarPositionForScreen(screenName)
|
||||
readonly property bool isVertical: barPosition === "left" || barPosition === "right"
|
||||
readonly property real barHeight: Style.getBarHeightForScreen(screenName)
|
||||
readonly property real capsuleHeight: Style.getCapsuleHeightForScreen(screenName)
|
||||
readonly property real barFontSize: Style.getBarFontSizeForScreen(screenName)
|
||||
|
||||
property string currentIconName: pluginApi?.pluginSettings?.currentIconName || pluginApi?.manifest?.metadata?.defaultSettings?.currentIconName
|
||||
property bool hideOnZero: pluginApi?.pluginSettings.hideOnZero || pluginApi?.manifest?.metadata.defaultSettings?.hideOnZero
|
||||
@@ -25,8 +30,8 @@ Item {
|
||||
// also set opacity to zero when invisible as we use opacity to hide the barWidgetLoader
|
||||
opacity: root.isVisible ? 1.0 : 0.0
|
||||
|
||||
readonly property real contentWidth: isVertical ? Style.capsuleHeight : layout.implicitWidth + Style.marginS * 2
|
||||
readonly property real contentHeight: isVertical ? layout.implicitHeight + Style.marginS * 2 : Style.capsuleHeight
|
||||
readonly property real contentWidth: isVertical ? root.capsuleHeight : layout.implicitWidth + Style.marginS * 2
|
||||
readonly property real contentHeight: isVertical ? layout.implicitHeight + Style.marginS * 2 : root.capsuleHeight
|
||||
|
||||
implicitWidth: contentWidth
|
||||
implicitHeight: contentHeight
|
||||
@@ -68,7 +73,7 @@ Item {
|
||||
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
|
||||
text: root.pluginApi?.mainInstance?.updateCount.toString()
|
||||
color: root.hovered ? Color.mOnHover : Color.mOnSurface
|
||||
pointSize: Style.barFontSize
|
||||
pointSize: root.barFontSize
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "update-count",
|
||||
"name": "Update Count",
|
||||
"version": "1.0.11",
|
||||
"version": "1.0.12",
|
||||
"minNoctaliaVersion": "3.6.0",
|
||||
"author": "BukoMoon",
|
||||
"license": "GPLv3",
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"enableClipPreview": true,
|
||||
"enableClipboardHistory": true,
|
||||
"enableSettingsSearch": true,
|
||||
"enableWindowsSearch": true,
|
||||
"iconMode": "tabler",
|
||||
"ignoreMouseInput": false,
|
||||
"pinnedApps": [
|
||||
@@ -33,11 +34,14 @@
|
||||
"volumeStep": 5
|
||||
},
|
||||
"bar": {
|
||||
"autoHideDelay": 500,
|
||||
"autoShowDelay": 150,
|
||||
"backgroundOpacity": 0.93,
|
||||
"barType": "simple",
|
||||
"capsuleColorKey": "none",
|
||||
"capsuleOpacity": 1,
|
||||
"density": "comfortable",
|
||||
"exclusive": true,
|
||||
"displayMode": "always_visible",
|
||||
"floating": false,
|
||||
"frameRadius": 12,
|
||||
"frameThickness": 8,
|
||||
@@ -70,6 +74,7 @@
|
||||
"showArtistFirst": true,
|
||||
"showProgressRing": true,
|
||||
"showVisualizer": true,
|
||||
"textColor": "none",
|
||||
"useFixedWidth": false,
|
||||
"visualizerType": "linear"
|
||||
}
|
||||
@@ -119,6 +124,7 @@
|
||||
"id": "Workspace",
|
||||
"labelMode": "name",
|
||||
"occupiedColor": "secondary",
|
||||
"pillSize": 0.6,
|
||||
"reverseScroll": false,
|
||||
"showApplications": false,
|
||||
"showBadge": true,
|
||||
@@ -126,13 +132,13 @@
|
||||
"unfocusedIconsOpacity": 1
|
||||
},
|
||||
{
|
||||
"clockColor": "none",
|
||||
"customFont": "",
|
||||
"formatHorizontal": "HH:mm ddd, MMM dd",
|
||||
"formatVertical": "HH mm - dd MM",
|
||||
"id": "Clock",
|
||||
"tooltipFormat": "HH:mm ddd, MMM dd",
|
||||
"useCustomFont": false,
|
||||
"usePrimaryColor": false
|
||||
"useCustomFont": false
|
||||
},
|
||||
{
|
||||
"defaultSettings": {
|
||||
@@ -146,18 +152,36 @@
|
||||
{
|
||||
"compactMode": false,
|
||||
"diskPath": "/",
|
||||
"iconColor": "none",
|
||||
"id": "SystemMonitor",
|
||||
"showCpuFreq": false,
|
||||
"showCpuTemp": true,
|
||||
"showCpuUsage": true,
|
||||
"showDiskAvailable": false,
|
||||
"showDiskUsage": false,
|
||||
"showDiskUsageAsPercent": false,
|
||||
"showGpuTemp": false,
|
||||
"showLoadAverage": false,
|
||||
"showMemoryAsPercent": false,
|
||||
"showMemoryUsage": true,
|
||||
"showNetworkStats": true,
|
||||
"showNetworkStats": false,
|
||||
"showSwapUsage": false,
|
||||
"useMonospaceFont": true,
|
||||
"usePrimaryColor": true
|
||||
"textColor": "none",
|
||||
"useMonospaceFont": true
|
||||
},
|
||||
{
|
||||
"defaultSettings": {
|
||||
"arrowType": "caret",
|
||||
"byteThresholdActive": 1024,
|
||||
"fontSizeModifier": 1,
|
||||
"forceMegabytes": false,
|
||||
"iconSizeModifier": 1,
|
||||
"minWidth": 0,
|
||||
"showNumbers": true,
|
||||
"spacingInbetween": 0,
|
||||
"useCustomColors": false
|
||||
},
|
||||
"id": "plugin:network-indicator"
|
||||
},
|
||||
{
|
||||
"colorizeIcons": true,
|
||||
@@ -174,25 +198,10 @@
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
{
|
||||
"defaultSettings": {
|
||||
"audioCodec": "opus",
|
||||
"audioSource": "default_output",
|
||||
"colorRange": "limited",
|
||||
"copyToClipboard": false,
|
||||
"directory": "",
|
||||
"filenamePattern": "recording_yyyyMMdd_HHmmss",
|
||||
"frameRate": "60",
|
||||
"quality": "very_high",
|
||||
"showCursor": true,
|
||||
"videoCodec": "h264",
|
||||
"videoSource": "portal"
|
||||
},
|
||||
"id": "plugin:screen-recorder"
|
||||
},
|
||||
{
|
||||
"blacklist": [
|
||||
],
|
||||
"chevronColor": "none",
|
||||
"colorizeIcons": false,
|
||||
"drawerEnabled": true,
|
||||
"hidePassive": false,
|
||||
@@ -233,12 +242,16 @@
|
||||
},
|
||||
{
|
||||
"displayMode": "alwaysShow",
|
||||
"iconColor": "none",
|
||||
"id": "Volume",
|
||||
"middleClickCommand": "pwvucontrol || pavucontrol"
|
||||
"middleClickCommand": "pwvucontrol || pavucontrol",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"displayMode": "onhover",
|
||||
"id": "Brightness"
|
||||
"iconColor": "none",
|
||||
"id": "Brightness",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"defaultSettings": {
|
||||
@@ -254,18 +267,21 @@
|
||||
"hideIfNotDetected": true,
|
||||
"id": "Battery",
|
||||
"showNoctaliaPerformance": false,
|
||||
"showPowerProfiles": true,
|
||||
"warningThreshold": 30
|
||||
"showPowerProfiles": true
|
||||
},
|
||||
{
|
||||
"displayMode": "alwaysShow",
|
||||
"id": "VPN"
|
||||
"iconColor": "none",
|
||||
"id": "VPN",
|
||||
"textColor": "none"
|
||||
},
|
||||
{
|
||||
"hideWhenZero": true,
|
||||
"hideWhenZeroUnread": false,
|
||||
"iconColor": "none",
|
||||
"id": "NotificationHistory",
|
||||
"showUnreadBadge": true
|
||||
"showUnreadBadge": true,
|
||||
"unreadBadgeColor": "primary"
|
||||
},
|
||||
{
|
||||
"colorizeDistroLogo": false,
|
||||
@@ -382,18 +398,20 @@
|
||||
"backgroundOpacity": 1,
|
||||
"colorizeIcons": true,
|
||||
"deadOpacity": 0.6,
|
||||
"displayMode": "always_visible",
|
||||
"displayMode": "exclusive",
|
||||
"enabled": false,
|
||||
"floatingRatio": 1,
|
||||
"inactiveIndicators": false,
|
||||
"monitors": [
|
||||
"DP-5"
|
||||
],
|
||||
"onlySameOutput": false,
|
||||
"pinnedApps": [
|
||||
"firefox"
|
||||
],
|
||||
"pinnedStatic": false,
|
||||
"pinnedStatic": true,
|
||||
"position": "bottom",
|
||||
"size": 1
|
||||
"size": 0.77
|
||||
},
|
||||
"general": {
|
||||
"allowPanelsOnScreenWithoutBar": true,
|
||||
@@ -403,6 +421,8 @@
|
||||
"autoStartAuth": false,
|
||||
"avatarImage": "/home/aiden/.face",
|
||||
"boxRadiusRatio": 1,
|
||||
"clockFormat": "hh\\nmm",
|
||||
"clockStyle": "custom",
|
||||
"compactLockScreen": false,
|
||||
"dimmerOpacity": 0,
|
||||
"enableLockScreenCountdown": true,
|
||||
@@ -469,6 +489,7 @@
|
||||
"notifications": {
|
||||
"backgroundOpacity": 1,
|
||||
"criticalUrgencyDuration": 15,
|
||||
"enableBatteryToast": true,
|
||||
"enableKeyboardLayoutToast": true,
|
||||
"enableMediaToast": false,
|
||||
"enabled": true,
|
||||
@@ -509,6 +530,9 @@
|
||||
],
|
||||
"overlayLayer": true
|
||||
},
|
||||
"plugins": {
|
||||
"autoUpdate": false
|
||||
},
|
||||
"sessionMenu": {
|
||||
"countdownDuration": 10000,
|
||||
"enableCountdown": true,
|
||||
@@ -556,12 +580,16 @@
|
||||
"showHeader": true,
|
||||
"showNumberLabels": true
|
||||
},
|
||||
"settingsVersion": 46,
|
||||
"settingsVersion": 49,
|
||||
"systemMonitor": {
|
||||
"batteryCriticalThreshold": 5,
|
||||
"batteryWarningThreshold": 20,
|
||||
"cpuCriticalThreshold": 90,
|
||||
"cpuPollingInterval": 3000,
|
||||
"cpuPollingInterval": 1000,
|
||||
"cpuWarningThreshold": 80,
|
||||
"criticalColor": "",
|
||||
"diskAvailCriticalThreshold": 10,
|
||||
"diskAvailWarningThreshold": 20,
|
||||
"diskCriticalThreshold": 90,
|
||||
"diskPollingInterval": 3000,
|
||||
"diskWarningThreshold": 80,
|
||||
@@ -572,13 +600,12 @@
|
||||
"gpuWarningThreshold": 80,
|
||||
"loadAvgPollingInterval": 3000,
|
||||
"memCriticalThreshold": 90,
|
||||
"memPollingInterval": 3000,
|
||||
"memPollingInterval": 1000,
|
||||
"memWarningThreshold": 80,
|
||||
"networkPollingInterval": 3000,
|
||||
"networkPollingInterval": 1000,
|
||||
"swapCriticalThreshold": 90,
|
||||
"swapWarningThreshold": 80,
|
||||
"tempCriticalThreshold": 90,
|
||||
"tempPollingInterval": 3000,
|
||||
"tempWarningThreshold": 80,
|
||||
"useCustomColors": false,
|
||||
"warningColor": ""
|
||||
@@ -644,6 +671,7 @@
|
||||
"setWallpaperOnAllMonitors": false,
|
||||
"showHiddenFiles": false,
|
||||
"solidColor": "#1a1a2e",
|
||||
"sortOrder": "name",
|
||||
"transitionDuration": 1500,
|
||||
"transitionEdgeSmoothness": 0.05,
|
||||
"transitionType": "random",
|
||||
|
||||
Reference in New Issue
Block a user