Examples
Some examples of using Plasma scripting capability
Iterate all widgets and print their config values
var allDesktops = desktops();
for (var desktopIndex = 0; desktopIndex < allDesktops.length; desktopIndex++) {
var d = allDesktops[desktopIndex];
print(d);
var widgets = d.widgets();
for (var widgetIndex = 0; widgetIndex < widgets.length; widgetIndex++) {
var w = widgets[widgetIndex];
print("\t" + w.type + ": ");
var configGroups = w.configGroups.concat([]); // concat is used to clone the array
for (var groupIndex = 0; groupIndex < configGroups.length; groupIndex++) {
var g = configGroups[groupIndex];
print("\t\t" + g + ": ");
w.currentConfigGroup = [g];
for (var keyIndex = 0; keyIndex < w.configKeys.length; keyIndex++) {
var configKey = w.configKeys[keyIndex];
print("\t\t\t" + configKey + ": " + w.readConfig(configKey));
}
}
}
}
var allPanels = panels();
for (var panelIndex = 0; panelIndex < allPanels.length; panelIndex++) {
var p = allPanels[panelIndex];
print(p);
var widgets = p.widgets();
for (var widgetIndex = 0; widgetIndex < widgets.length; widgetIndex++) {
var w = widgets[widgetIndex];
print("\t" + w.type + ": ");
var configGroups = w.configGroups.concat([]); // concat is used to clone the array
for (var groupIndex = 0; groupIndex < configGroups.length; groupIndex++) {
var g = configGroups[groupIndex];
print("\t\t" + g + ": ");
w.currentConfigGroup = [g];
for (var keyIndex = 0; keyIndex < w.configKeys.length; keyIndex++) {
var configKey = w.configKeys[keyIndex];
print("\t\t\t" + configKey + ": " + w.readConfig(configKey));
}
}
}
}Print config values for each instance of a specific widget
Adding a widget to the System Tray
Changing a config value for each instance of a specific widget
Panel Creation / Manipulation
The items in Plasma's "New Panel" submenu will run a Plasma Script. They can be found at:
/usr/share/plasma/layout-templates//usr/share/plasma/layout-templates/org.kde.plasma.desktop.defaultPanel/contents/layout.js
Here's org.kde.plasma.desktop.appmenubar/contents/layout.js as a simple example.
Last updated