You are not logged in.

#1 2011-06-28 09:47:39

TheFiddler
Member
Registered: 2009-02-09
Posts: 38

KDE and AWN help: create a kmenu launcher

I am using Arch/KDE4.6 on a hp dm1-3100ev laptop. Due to the small size of the monitor (11.6'', 1366x768), I am trying to maximize the available desktop area by using a dock-style task manager at the left side of the monitor. After trying fancy-tasks, daisy-tasks and even the default KDE taskbar for several months, I've come to the (unfortunate) conclusion that nothing comes close to AWN in functionality, stability and usability. (Bugs have been reported to the correct places).

AWN works perfectly but for one thing: it doesn't offer a way to open/hide the kmenu (the one that appears when you press the big "K" button on the default taskbar). After spending a week searching for a solution, I've given up and hoping that someone knows (or can find) a way. smile Everything I've found, refers to either KDE3 or an alternative menu called lancelot (that I tried and didn't like).

So the question: does anyone know a way to launch (show/hide) the kmenu from the terminal, using dbus or another way? There must be some way to replicate the functionality of the "K" button!


The Open Toolkit: OpenGL, OpenAL, OpenCL and Vulkan for Mono/.Net.

Offline

#2 2011-06-28 09:53:13

SanskritFritz
Member
From: Budapest, Hungary
Registered: 2009-01-08
Posts: 1,924
Website

Re: KDE and AWN help: create a kmenu launcher

I use this to show Lancelot from AWN:

qdbus org.kde.lancelot /Lancelot show x_coord y_coord

Try to find out what the KDE menu's name is on dbus. Sorry I dont know that.

UPDATE: oops, I just see, that you found the Lancelot way, sorry, too quick to answer.

Last edited by SanskritFritz (2011-06-28 09:54:53)


zʇıɹɟʇıɹʞsuɐs AUR || Cycling in Budapest with a helmet camera || Revised log levels proposal: "FYI" "WTF" and "OMG" (John Barnette)

Offline

#3 2011-06-28 10:28:17

TheFiddler
Member
Registered: 2009-02-09
Posts: 38

Re: KDE and AWN help: create a kmenu launcher

I don't know how to find the dbus name for the menu, but someone suggested using dbus-monitor to log what happens when using the menu keyboard shortcut. Here are the results (the item first looks relevant):

signal sender=org.freedesktop.DBus -> dest=:1.111 serial=2 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
   string ":1.111"
method call sender=:1.111 -> dest=org.freedesktop.DBus serial=3 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='method_call'"
method call sender=:1.111 -> dest=org.freedesktop.DBus serial=4 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='method_return'"
method call sender=:1.111 -> dest=org.freedesktop.DBus serial=5 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='error'"
signal sender=:1.6 -> dest=(null destination) serial=728 path=/component/plasma_desktop; interface=org.kde.kglobalaccel.Component; member=globalShortcutPressed
   string "plasma-desktop"
   string "activate widget 4"
   int64 6928015
method call sender=:1.6 -> dest=org.kde.knotify serial=729 path=/Notify; interface=org.kde.KNotify; member=event
   string "globalshortcutpressed"
   string "kglobalaccel"
   array [
      variant          string "application"
      variant          string "Plasma Desktop Shell"
   ]
   string ""
   string "The global shortcut for Activate Application Launcher Widget was issued."
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.6 reply_serial=729
   int32 0
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1304 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.kde.ksmserver"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1305 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.kde.ksmserver serial=1306 path=/KSMServer; interface=org.kde.KSMServerInterface; member=canShutdown
method return sender=:1.11 -> dest=:1.17 reply_serial=1306
   boolean true
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1307 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1308 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.kde.ksmserver"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1309 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.kde.ksmserver serial=1310 path=/KSMServer; interface=org.kde.KSMServerInterface; member=canShutdown
method return sender=:1.11 -> dest=:1.17 reply_serial=1310
   boolean true
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1311 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.12 -> dest=org.kde.knotify serial=735 path=/Notify; interface=org.kde.KNotify; member=event
   string "on_all_desktops"
   string "kwin"
   array [
   ]
   string ""
   string ""
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.12 reply_serial=735
   int32 0
method call sender=:1.12 -> dest=org.kde.knotify serial=736 path=/Notify; interface=org.kde.KNotify; member=event
   string "new"
   string "kwin"
   array [
   ]
   string ""
   string ""
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.12 reply_serial=736
   int32 0
method call sender=:1.12 -> dest=org.kde.knotify serial=737 path=/Notify; interface=org.kde.KNotify; member=event
   string "activate"
   string "kwin"
   array [
   ]
   string ""
   string ""
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.12 reply_serial=737
   int32 0
method call sender=:1.12 -> dest=org.kde.knotify serial=738 path=/Notify; interface=org.kde.KNotify; member=event
   string "activate"
   string "kwin"
   array [
   ]
   string ""
   string ""
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.12 reply_serial=738
   int32 0
method call sender=:1.12 -> dest=org.kde.knotify serial=739 path=/Notify; interface=org.kde.KNotify; member=event
   string "delete"
   string "kwin"
   array [
   ]
   string ""
   string ""
   array [
   ]
   array [
   ]
   int32 -1
   int64 0
method return sender=:1.15 -> dest=:1.12 reply_serial=739
   int32 0
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1312 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.kde.ksmserver"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1313 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.kde.ksmserver serial=1314 path=/KSMServer; interface=org.kde.KSMServerInterface; member=canShutdown
method return sender=:1.11 -> dest=:1.17 reply_serial=1314
   boolean true
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1315 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1316 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=GetNameOwner
   string "org.kde.ksmserver"
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1317 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=AddMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"
method call sender=:1.17 -> dest=org.kde.ksmserver serial=1318 path=/KSMServer; interface=org.kde.KSMServerInterface; member=canShutdown
method return sender=:1.11 -> dest=:1.17 reply_serial=1318
   boolean true
method call sender=:1.17 -> dest=org.freedesktop.DBus serial=1319 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=RemoveMatch
   string "type='signal',sender='org.freedesktop.DBus',interface='org.freedesktop.DBus',member='NameOwnerChanged',arg0='org.kde.ksmserver'"

Maybe someone knows how to advance from here?


The Open Toolkit: OpenGL, OpenAL, OpenCL and Vulkan for Mono/.Net.

Offline

#4 2011-07-05 18:36:33

qwerty12
Member
From: London
Registered: 2011-06-20
Posts: 34

Re: KDE and AWN help: create a kmenu launcher

I have a way, but you must have an instance of KickOff either on the desktop or on the panel.

Load up System Settings, go to Shortcuts and Gestures, Global Keyboard Shortcuts, set KDE component to Plasma Desktop Shell and expand Activate Application Launcher Widget.  At the same time, open Konsole (you may wish to keep it on top) and run dbus-monitor. Click Custom and then set it back to Default. You'll see in Konsole something like "activate widget ...".

Note the number and use it for a command like this: qdbus org.kde.kglobalaccel /component/plasma_desktop org.kde.kglobalaccel.Component.invokeShortcut "activate widget 70" [70 being the number given by dbus-monitor]

Alternatively you may be able to play with the command "plasmoidviewer launcher"...

Last edited by qwerty12 (2011-07-05 18:39:11)

Offline

Board footer

Powered by FluxBB