Simple python krunner plugin, that will show the entered man page in the KDE Help center
Linking to: https://www.kubuntuforums.net/showth...l=1#post360818
Quick copy&paste from https://techbase.kde.org/Development...4/PythonRunner and editing few lines.
metadata.desktop:
main.py:

Seems to work...
Linking to: https://www.kubuntuforums.net/showth...l=1#post360818
Quick copy&paste from https://techbase.kde.org/Development...4/PythonRunner and editing few lines.
metadata.desktop:
Code:
[Desktop Entry] Name=Man page runner Comment=Simple python krunner plugin, that will show the entered man page in the KDE Help center Type=Service Icon=help-browser ServiceTypes=Plasma/Runner X-Plasma-API=python X-Plasma-MainScript=code/main.py X-KDE-PluginInfo-Author=<your name> X-KDE-PluginInfo-Email=<your email> X-KDE-PluginInfo-Name=manpage_runner X-KDE-PluginInfo-Version=0.1 X-KDE-PluginInfo-Website=http://plasma.kde.org/ X-KDE-PluginInfo-License=LGPLv3 X-KDE-PluginInfo-EnabledByDefault=true
Code:
from PyKDE4 import plasmascript
from PyKDE4.plasma import Plasma
from PyKDE4.kdeui import KIcon
from subprocess import call
class ManPageRunner(plasmascript.Runner):
def init(self):
# called upon creation to let us run any intialization
# tell the user how to use this runner
self.addSyntax(Plasma.RunnerSyntax("? :q:", "Display :q: manpage with the KHelpcenter"))
def match(self, context):
# called by krunner to let us add actions for the user
if not context.isValid():
return
q = context.query()
# look for our keyword '?'
if not q.startsWith("? "):
return
# ignore less than 3 characters (in addition to the keyword)
if q.length() < 3:
return
# strip the keyword and leading space
q = q[2:]
q = q.trimmed()
# now create an action for the user, and send it to krunner
m = Plasma.QueryMatch(self.runner)
m.setText("man page for: '%s'" % q)
m.setType(Plasma.QueryMatch.ExactMatch)
m.setIcon(KIcon("help-browser"))
m.setData(q)
context.addMatch(q, m)
def run(self, context, match):
# called by KRunner when the user selects our action,
# so lets keep our promise
call(["khelpcenter", "man:" + match.data().toString()])
def CreateRunner(parent):
# called by krunner, must simply return an instance of the runner object
return ManPageRunner(parent)

Seems to work...














Comment