[qubes-users] Help with a small test

I am trying to get to the bottom of a problem but I need someone, perhaps more than one someone, to do a small test for me to confirm whether my problem is specific for me to my system or if this is a general issue. I have a problem description and test request which should only take a couple of minutes (1. clone template, 2. sudo dnf install krusader, 3. open file from appVM using Krusader).

== PROBLEM DESCRIPTION ==

I have Krusader installed on a Debian 10/11 machine without any issues, but, if I install Krusader on Fedora 36/37 it does not have any file type associations. Which means whenever I double click, or press enter, on a file it brings up the dialog window where I am supposed to be able to select a program to use for the file type I am opening. This window does not display any programs, which is still ok (but not normal) I can point it to the program in /usr/bin to use, the problem then continues in that Krusader does not save this (yes I do select the checkbox for it to remember).

I have also tried right clicking on a file and selecting Properties, from there I select the Change button next to Open With, but the same happens here, my selection does not stick.

If I launch Krusader from cli I get the following output on the cli window when I double click a file (when the dialog opens where I should select the program to use), “15:08:53.325-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )”.

I am almost certain this is because of a missing dependency but I cannot figure out what dependency it is. Can anyone help with this?

== END PROBLEM DESCRIPTION==

== TO TEST ==

I use the minimal template for all of my configs, but to rule out any underlying issue with the minimal template I suggest using the Fedora 36/37 template. I did the same.

1. Clone template
2. sudo dnf install krusader
3. create appVM based on above template
4. copy a pdf document to the appVM
5. open the pdf from Krusader

Do you also get a dialog window requesting you to select the program to use to open the file and it is empty? Or does your program list include evince? If you type in the location to the program (either just "evince" or /usr/bin/evince") and click to "remember", does it remember or do you get the same empty program list selection window when you open the pdf again?

Finally, do you also see the "warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )” when you launch Krusader from cli?

== END TEST ==

I performed your test with a clone of fedora-37 template. I did get a dialog window requesting me to select the program to use to open the pdf file. It did not remember the /usr/bin/evince path the next time after I browsed to it and checked the remember box when opening the pdf the first time.

I did not get the same error message you did when I launched krusader from cli. I got the following error messages

kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: “No jobs” msgid_plural: “” msgctxt: “”

(krusader:2530): Gdk-CRITICAL **: 10:23:45.254: gdk_atom_intern: assertion ‘atom_name != NULL’ failed

(krusader:2530): Gdk-CRITICAL **: 10:23:45.255: gdk_atom_intern: assertion ‘atom_name != NULL’ failed
10:23:45.446-warning kf.i18n unknown@0 # Trying to convert empty KLocalizedString to QString.

When I first launched krusader I got a popup warning with the following text:
No text editor plugin available
Internal editor will not work without this.
You can fix this by installing Kate:

After I installed kate in the appVM, just to see what would happen, I got the following message after loading krusader and opening the pdf the first time but not subsequent times.
10:43:29.756-critical default unknown@0 # “applications.menu” not found in (“/etc/xdg/menus”)

NewRoot wrote:

I performed your test with a clone of fedora-37 template. I did get a dialog window requesting me to select the program to use to open the pdf file. It did not remember the /usr/bin/evince path the next time after I browsed to it and checked the remember box when opening the pdf the first time.

Thank you for doing my test and providing your feedback. The problem does then appear to be specific to the Fedora template because Krusader works as expected on Debian templates.

I did not get the same error message you did when I launched krusader from cli. I got the following error messages

kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "No jobs" msgid_plural: "" msgctxt: ""

(krusader:2530): Gdk-CRITICAL **: 10:23:45.254: gdk_atom_intern: assertion 'atom_name != NULL' failed

(krusader:2530): Gdk-CRITICAL **: 10:23:45.255: gdk_atom_intern: assertion 'atom_name != NULL' failed
10:23:45.446-warning kf.i18n unknown@0 # Trying to convert empty KLocalizedString to QString.

I have noticed that Krusader is missing a dependency, kde-cli-tools, installing this should fix the above problem and then you should also see the error I mention about KSysoca.

I have noticed that Krusader is missing a dependency, kde-cli-tools,
installing this should fix the above problem and then you should also
see the error I mention about KSysoca.

After installing kde-cli-tools in the template the errors (ignoring gdk_atom_intern errors) change to :
[user@krusader-fed-37 ~]$ kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: “No jobs” msgid_plural: “” msgctxt: “”

14:41:50.307-warning kf.i18n unknown@0 # Trying to convert empty KLocalizedString to QString.
14:41:51.048-warning default unknown@0 # QDBusConnection: name ‘org.freedesktop.UDisks2’ had owner ‘’ but we thought it was ‘:1.41’

I don’t see the KSysoca error at all, just in case you are interested.

NewRoot wrote:

> I have noticed that Krusader is missing a dependency, kde-cli-tools,
> installing this should fix the above problem and then you should also
> see the error I mention about KSysoca.

After installing kde-cli-tools in the template the errors (ignoring gdk_atom_intern errors) change to :
[user@krusader-fed-37 ~]$ kf.i18n: KLocalizedString: Using an empty domain, fix the code. msgid: "No jobs" msgid_plural: "" msgctxt: ""

14:41:50.307-warning kf.i18n unknown@0 # Trying to convert empty KLocalizedString to QString.
14:41:51.048-warning default unknown@0 # QDBusConnection: name 'org.freedesktop.UDisks2' had owner '' but we thought it was ':1.41'

I don't see the KSysoca error at all, just in case you are interested.

Can you please test something. I don't see the KSysoca error logged anymore either, but this is only true when I try and set the application to open with after I have opened the file. Instead, if you right click on the file and go to Properties, then click on the Change button on the "Open With" line. As soon as you add evince using the Add button and you click on Apply you should see the KSysoca error logged on your terminal window.

Can you also confirm, when executing "kbuildsycoca5 --noincremental" on cli do you also get

"applications.menu" not found in ("/etc/xdg/menus") ?

I am not sure if this is related or if it is something that can be ignored, I can confirm that I don't see it on a Debian 11 machine running Krusader. The command should just complete without any output.

> As soon as you add evince using the Add button and you
> click on Apply you should see the KSysoca error logged on your terminal
> window.

Yes. I see

10:24:04.570-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )

> Can you also confirm, when executing "kbuildsycoca5 --noincremental" on
> cli do you also get
> "applications.menu" not found in ("/etc/xdg/menus") ?

When executing build I also get an applications menu not found error, but also kbuildsycoca5 is not completely silent it tells us it's running...

[user@krusader-fed-37 ~]$ kbuildsycoca5 --noincremental
kbuildsycoca5 running...
"applications.menu" not found in ("/etc/xdg/menus")
[user@krusader-fed-37 ~]$ 10:31:20.850-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
10:31:20.850-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )

Thank you for helping!

I guess this is the best place to start to fixing the issue that Krusader has on Fedora, this KSysoca thing. Krusader is my go to file manager but this is a deal breaker. I can't specify an application to open a file every time I open a file. Do you reckon this is a Fedora on Qubes only problem?

Digging a bit more I came across this article, KDE System Administration/Caches - KDE UserBase Wiki, that tells me the KSysoca database is built using "kbuildsycoca5" which is provided by the already installed package "kf5-kservice".

This leaves me with not much more to go on. At first it seems like KSysoca is the problem or that it may not be installed at all but the kf5-service package is installed on my system otherwise kbuildsysoca5 wouldn't be available.

That only leaves the ""applications.menu" not found in ("/etc/xdg/menus")" error that I see when building the database from cli with kbuildsysoca5.

While the Fedora based Krusader install does not have an applications.menu in /etc/xdg/menus/, neither does the Debian based Krusader that 1. does not complain about it and 2. Krusader works as expected.

Can anybody throw an idea my way where I can scratch for this itch?

As soon as you add evince using the Add button and you
click on Apply you should see the KSysoca error logged on your terminal
window.

Yes. I see

10:24:04.570-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
10:24:04.571-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )

Can you also confirm, when executing “kbuildsycoca5 --noincremental” on
cli do you also get
“applications.menu” not found in (“/etc/xdg/menus”) ?

When executing build I also get an applications menu not found error, but also kbuildsycoca5 is not completely silent it tells us it’s running…

[user@krusader-fed-37 ~]$ kbuildsycoca5 --noincremental
kbuildsycoca5 running…
“applications.menu” not found in (“/etc/xdg/menus”)
[user@krusader-fed-37 ~]$ 10:31:20.850-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
10:31:20.850-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )

I am wondering if a Qubes member can have a look at this. I have a problem with Krusader not working properly on a Fedora appVM. In short, if I open Krusader from cli and then I open a file in Krusader the file does not open, instead a dialog window is given in which I must choose which program to use to open the file. This is an endless loop. Error messages I see on cli that I think is the problem is,

"warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )"

After some digging I found this [article](KDE System Administration/Caches - KDE UserBase Wiki) that tells me the KSysoca database is built using "kbuildsycoca5" which is provided by the already installed package "kf5-kservice".

However, when I manually try and build the database using "kbuildsysoca5" I get an error,

"[user@fedora-xx ~]$ kbuildsycoca5 --noincremental
kbuildsycoca5 running...
"applications.menu" not found in ("/etc/xdg/menus")" <--------------------

What does this complaint about "applications.menu" not found in "/etc/xdg/menus" mean?

If I compare the folder contents of /etc/xdg/menus between Fedora-37 and Debian-11, the Fedora template has everything the Debian template has with a few more entries. And neither Fedora nor Debian has "applications.menu".

The command completes without errors on Debian-11, and Krusader on Debian works as expected.

"user@debian-11:~$ kbuildsycoca5 --noincremental
kbuildsycoca5 running...
user@debian-11:~$"

Qubes wrote:

I am wondering if a Qubes member can have a look at this. I have a problem with Krusader not working properly on a Fedora appVM. In short, if I open Krusader from cli and then I open a file in Krusader the file does not open, instead a dialog window is given in which I must choose which program to use to open the file. This is an endless loop. Error messages I see on cli that I think is the problem is,

"warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )"

After some digging I found this [article](KDE System Administration/Caches - KDE UserBase Wiki) that tells me the KSysoca database is built using "kbuildsycoca5" which is provided by the already installed package "kf5-kservice".

However, when I manually try and build the database using "kbuildsysoca5" I get an error,

"[user@fedora-xx ~]$ kbuildsycoca5 --noincremental
kbuildsycoca5 running...
"applications.menu" not found in ("/etc/xdg/menus")" <--------------------

What does this complaint about "applications.menu" not found in "/etc/xdg/menus" mean?

If I compare the folder contents of /etc/xdg/menus between Fedora-37 and Debian-11, the Fedora template has everything the Debian template has with a few more entries. And neither Fedora nor Debian has "applications.menu".

The command completes without errors on Debian-11, and Krusader on Debian works as expected.

"user@debian-11:~$ kbuildsycoca5 --noincremental
kbuildsycoca5 running...
user@debian-11:~$"

For anybody else perhaps struggling with Krusader on Fedora, to fix this really annoying issue is to create a applications.menu ymbolic link from /etc/xdg/menus/ (in the template).

sudo ln -s /etc/xdg/menus/kf5-applications.menu /etc/xdg/menus/applications.menu

Leslie Smith wrote:

> As soon as you add evince using the Add button and you
> click on Apply you should see the KSysoca error logged on your terminal
> window.

Yes. I see

10:24:04.570-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
10:24:04.571-warning kf.service.services unknown@0 # KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )
kf.service.services: KServiceFactory: unexpected object entry in KSycoca database (type= 305 )

> Can you also confirm, when executing "kbuildsycoca5 --noincremental" on
> cli do you also get
> "applications.menu" not found in ("/etc/xdg/menus") ?

To fix this really annoying issue, create a applications.menu symbolic link in /etc/xdg/menus/ (in the template).

sudo ln -s /etc/xdg/menus/kf5-applications.menu /etc/xdg/menus/applications.menu