This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Running krunner - compiled from source code

Tags: None
(comma "," separated)
puller
Registered Member
Posts
19
Karma
0
OS
I have compiled the KDE 4.11 kde-workspace module to understand some of the krunner internals.

Now I have a krunner executable that I can run.

The problem is that it seems executing
Code: Select all
./krunner


is not enough to have it properly running, at least for what concerns the look and feel.

This is what I got: it is really different than the krunner that I have when the system starts (the "native" one).
Image

* The blur effect has become almost totally transparent
* Instead of icons, I have text for "Settings", "Show System Activity", "Help", "Close"

I am sure I am doing something wrong :) .

Can someone suggest me something on how to execute krunner properly?
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Where are you installing KRunner, and what sort of environment are you setting up before hand?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
(Note, I am the same user, just picked the wrong account).

I ran this command:

Code: Select all
~/kde/src/4.11/kde-workspace$ kdebuild


then found the krunner executable in "~/kde/src/4.11/kde-workspace/krunner".

What i did next was:

Code: Select all
killall krunner
./krunner


I setup my environment following the instructions on TechBase: http://techbase.kde.org/Getting_Started ... nvironment
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Can you please provide the output of the following command?
Code: Select all
echo $KDEDIRS


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
Mmmh, this makes me think that my build-config may be wrong for 4.11 branch:

Code: Select all
$ echo $KDEDIRS
/home/vince/kde/inst/master
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
That explains the lack of icons, among other things...
Does /home/vince/kde/inst/master exist?

Also, try changing KDEDIRS to "/home/vince/kde/inst/master:/usr" and see if that has any effect.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
Yes, the path exists.

I always clone from the master branch, than generate the stable branches folders with "git-new-workdir".

I just noticed that if I kill krunner and then restart the "original" one in "usr/bin", I have the same effect!

I also tried appending /usr to KDEDIRS, but the behavior is still the same (both with the "original" krunner and the one compiled by me).

Code: Select all
$ echo $KDEDIRS
/home/vince/kde/inst/4.11:/usr


Maybe it's just a matter of command line arguments, probably I should start krunner exactly as it is started by the system at start-up, but I don't know where to look!
puller
Registered Member
Posts
19
Karma
0
OS
It seems that using the "krunner.desktop" file makes things work properly (at least for the "original" krunner)!
Code: Select all
kioclient exec /usr/share/autostart/krunner.desktop


I've tried to use a copy of this file and set my executable at the "Exec" entry with no luck, but the solution should be close now!
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
It is likely the environment of your shell is contaminated somehow - that command asks another process (klauncher) to run KRunner on it's behalf, which is why it works.

If you run "kbuildsycoca4 --noincremental" in your terminal, what is the output?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
Uhm, a lot of output!

Code: Select all
$ kbuildsycoca4 --noincremental
kbuildsycoca4 running...
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Keywords in "k3bsetup.desktop" is not compliant with XDG standard (missing trailing semicolon).
"KConfigIni: In file /usr/share/kde4/services/muon-knsplasmoids-backend.desktop, line 110: " Invalid entry (missing '=')
"KConfigIni: In file /usr/share/kde4/services/muon-knsplasmoids-backend.desktop, line 111: " Invalid entry (empty key)
"KConfigIni: In file /usr/share/kde4/services/muon-knsplasmoids-backend.desktop, line 112: " Invalid entry (missing '=')
kbuildsycoca4(4377) VFolderMenu::loadDoc: Parse error in  "/home/vince/.config/menus/applications-merged/xdg-desktop-menu-dummy.menu" , line  1 , col  1 :  "unexpected end of file"
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/local/share/applications/spotify.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry MimeType in "/usr/local/share/applications/spotify.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry MimeType in "/usr/local/share/applications/gpapers.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-power-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Keywords in "/usr/share/applications/firefox.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/unity-region-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/im-config.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Keywords in "/usr/share/applications/ubuntusdk.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-region-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-background-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377)/kdecore (services) KServicePrivate::init: The desktop entry file  "/usr/share/applications/unity-scope-gdrive.desktop"  has Type= "Application"  but no Exec line

kbuildsycoca4(4377) KBuildServiceFactory::createEntry: Invalid Service :  "/usr/share/applications/unity-scope-gdrive.desktop"
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-color-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/language-selector.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Actions in "/usr/share/applications/gnome-screenshot.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Actions in "/usr/share/applications/gnome-terminal.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-user-accounts-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Keywords in "/usr/share/applications/thunderbird.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Actions in "/usr/share/applications/thunderbird.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/spotify.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry MimeType in "/usr/share/applications/spotify.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/ubuntuone-control-panel-qt-gnome.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-screen-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry MimeType in "/usr/share/applications/liferea.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/ubuntuone-installer.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377)/kdecore (services) KServicePrivate::init: The desktop entry file  "/usr/share/applications/unity-lens-photos.desktop"  has Type= "Application"  but no Exec line

kbuildsycoca4(4377) KBuildServiceFactory::createEntry: Invalid Service :  "/usr/share/applications/unity-lens-photos.desktop"
kbuildsycoca4(4377) KConfigGroup::readXdgListEntry: List entry Categories in "/usr/share/applications/gnome-unity-appearance-panel.desktop" is not compliant with XDG standard (missing trailing semicolon).
kbuildsycoca4(4377)/kdecore (services) KServicePrivate::init: The desktop entry file "/home/vince/.local/share/applications/instead-2.desktop" has an empty mimetype!
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Okay, that looks fine. The noise in that output is because kbuildsycoca4 is noting that a number of files (most not supplied by KDE) do not conform with XDG specifications exactly - this is fairly harmless however and can be ignored.

When installing KRunner, are you installing the whole of kde-workspace, or just KRunner itself?
Also - which version of KDE is installed at the distribution level?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
First, thanks for helping me out on this!

What I do, is run

Code: Select all
kdebuild -DPYTHON_SITE_PACKAGES_INSTALL_DIR=~/.local/lib/python2.7/site-packages


from "~/kde/src/4.11/kde-workspace"

then cd to "krunner" and run the executable from there, or, with the .desktop script, point the executable in the "Exec" parameter and execute it with "kiorunner exec krunner.desktop" (I tried both by copying the script to a local directory and by modifying the one in "/usr/share/autostart/").

At system level, I have KDE 4.11.
puller
Registered Member
Posts
19
Karma
0
OS
I did some more investigations and found out that in this directory:

Code: Select all
~/kde/build/4.11/kde-workspace/krunner$


I have a "krunner.desktop" file that will successfully start my newly built krunner!

My main question now is: how to generate those files (krunner binary and krunner.desktop script in the build subtree) other than running "make" in the build directory itself (which is odd), because "kdebuild" alone issued from the "src" directory is not recreating them!

I was relying on this page: http://techbase.kde.org/Getting_Started/Build/Recipes.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Is there anything in /home/vince/kde/inst/4.11?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
puller
Registered Member
Posts
19
Karma
0
OS
Yes, when I run the "kdebuild" command, files the "inst" subtree are generated.

So I have, among the others
Code: Select all
/home/vince/kde/inst/4.11/bin/krunner
/home/vince/kde/inst/4.11/share/autostart/krunner.desktop


The krunner.desktop file has the exec entry that looks like this:
Code: Select all
Exec=krunner


Now, I have removed the "original" krunner from "/usr/bin" so that "which krunner" gives me:
Code: Select all
/home/vince/kde/inst/4.11/bin/krunner


and this file has the modified datetime in accordance with my changes (i.e., after I change the code, this file is recreated correctly).

[TEST 1:] When I execute "krunner.desktop", I have a normal looking krunner, but I cannot see my changes implemented!

If I change krunner.desktop so that the Exec entry looks like this:
Code: Select all
/home/vince/kde/inst/4.11/bin/krunner


[TEST 2:] and re-execute the file (after killing krunner), I have the ugly looking krunner with my changes implemented.

Then, if I go to
Code: Select all
/home/vince/kde/build/4.11/kde-workspace/krunner


and "make", I have a krunner.desktop file that looks like this (for the "entry" section):
Code: Select all
Exec=/home/vince/kde/build/4.11/kde-workspace/krunner/krunner


[TEST 3]: now, if I kill krunner and execute the krunner.desktop file, I have a normal looking krunner with my changes implemented!

So, TEST 3 is the good case, but I cannot understand why, as the files in the "build" subtree are not regenarated with "kdebuild" and if I have to go there and "make" again, it looks like I am overlooking something.

My guess is that I am doing something wrong to build kde.
If I look on techbase, there are many alternatives for building (kdesrc-build, build-tool, kdebuild), but I cannot understand which one is the mainstream one!


Bookmarks



Who is online

Registered users: Bing [Bot], blue_bullet, Google [Bot], Yahoo [Bot]