मैं कमांड लाइन से केविन स्क्रिप्ट कैसे चला सकता हूं?


9

मैंने एक वास्तविक बुनियादी केविन लिपि को खिडकी की खिड़कियों पर लिखा कि मैं उन्हें कैसे पसंद करता हूँ,

// Main reference: http://techbase.kde.org/Development/Tutorials/KWin/Scripting

// Top-level parameters. Adjust these as suitable for your desktop.
var width = 3840;
var third = Math.round(width / 3);


var clients = workspace.clientList();
for (var i=0; i<clients.length; i++) {
  var client = clients[i];
  var cap = client.caption.toLowerCase();
  var g = client.geometry;

  if (cap.indexOf("firefox") != -1) {
    g.x = 0;
    g.width = third;
  } else if (cap.indexOf("vim") != -1) {
    g.x = third;
    g.width = third;
  } else if (cap.indexOf("konsole") != -1) {
    g.x = third * 2;
    g.width = third;
  }

  client.geometry = g;
}

स्क्रिप्टिंग कंसोल का उपयोग करना ( qdbus org.kde.plasma-desktop /MainApplication showInteractiveKWinConsole, या wm consoleक्रूनर से)।

मैं इसे एक हॉटकी से बांधना चाहता हूं।

मैं केवल प्लाज्मा पैकेज बनाने के बारे में संसाधन खोजने में सक्षम रहा हूं, जो मुझे काम करने के लिए नहीं मिला है (मेरे पास एक metadata.desktopसमान /usr/share/kde4/apps/kwin/scriptsऔर समान निर्देशिका सामग्री में है, लेकिन यह कहता है plasmapkg(3980)/libplasma Plasma::Package::installPackage: Could not register package as service (this is not necessarily fatal): "kwin-script-tilewindows")।

मैं प्लाज़्मा पैकेजिंग के साथ मैकिंग करके थोड़ा थक गया हूं। मैं कमांड लाइन से अपनी जावास्क्रिप्ट-आधारित केविन स्क्रिप्ट कैसे लागू कर सकता हूं?

EDIT / नोट

यदि आप परिचित नहीं हैं, तो केडीई में हॉटकीज़ को कमांड को बाँधना आसान है - एप्लिकेशन लॉन्चर पर राइट-क्लिक करें, "एप्लिकेशन एडिट करें" पर जाएं, एक नया आइटम जोड़ें, "कमांड" बॉक्स में शेल कमांड दर्ज करें और फिर "उन्नत" टैब में शॉर्टकट कुंजी सेट करें।

जवाबों:


7

यहाँ से कुछ संकेत के साथ , मैं निम्नलिखित काम करने में कामयाब रहा:

script=/path/to/script

num=$(dbus-send --print-reply --dest=org.kde.kwin.Scripting \
  /Scripting \
  org.kde.kwin.Scripting.loadScript \
  string:"$script" |
  awk 'END {print $2}' )

dbus-send --print-reply --dest=org.kde.kwin.Scripting \
  /$num \
  org.kde.kwin.Scripting.run

1

अपडेट: यह वही है जो मुझे 2019 में करना था ताकि यह काम हो सके:

# don't use ~/ in this path:
script="/path/to/script"

num=$(dbus-send --print-reply --dest=org.kde.KWin \
    /Scripting org.kde.kwin.Scripting.loadScript \
    string:"$script" | awk 'END {print $2}' )

dbus-send --print-reply --dest=org.kde.KWin /$num \
    org.kde.kwin.Scripting.run
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.