Obsidian-StudiosInc / entrance

General purpose Display Manager built on the Enlightenment Foundation Libraries (EFL)
GNU General Public License v3.0
24 stars 10 forks source link

Entrance reading cairo-dock as an Xsession even though it's type Application #50

Closed TheTechRobo closed 3 years ago

TheTechRobo commented 3 years ago

Description

As stated by @Thanatermesis:
The issue is from entrance reading the .desktop incorrectly, see:

~ ❯❯❯ grep "^Type=" /usr/share/xsessions/e16-session.desktop
Type=XSession
~ ❯❯❯ grep "^Type=" /usr/share/xsessions/cairo-dock.desktop
Type=Application

I don't know why cairo-dock is on this directory but in any case is not the correct type of .desktop file that should be used for init X sessions, so entrance should only consider the ones of type XSession

Steps to reproduce

  1. Install Cairo-Dock
  2. Make sure that the .desktop file is in /usr/share/xsessions
  3. Launch Entrance

How entrance is started (doesn't matter)

I installed it with Apt, does this answer your question?
I think systemd.

System information

wltjr commented 3 years ago

Thanks for the report. I will see about adding code to ignore the unwanted types in desktop files. It is not likely to happen till after the 15th, but it is on my TODO list, and it should not require too much to fix. Thank you for the report, and sorry for the issues!

TheTechRobo commented 3 years ago

Sorry for the issues!

No problem! Thanks for making Entrance actually work OK!

wltjr commented 3 years ago

@TheTechRobo after looking further into this issue, I do not think it can be resolved as intended. Starting with the desktop specification, it only lists three types, application, link, and directory. That rules out using a type of xsession, as that is not valid. While it could be a valid custom type, it is not standard, and not too many things use that. Entrance accesses those files via efreet desktop support, which per the spec, reads the type field as a integer not a string. That makes reading custom types very difficult, if not unknown.

Then there are the things using Type=Application. Even Enlightenment itself lists its type as an application. Another example is the xsession.desktop file used with xinit, that also uses application. Given the amount of things using application, that is not a type that could be ignored without causing a lot of issues. Trying to get other things to switch to xsession from application would probably not be very successful.

It seems the best solution would be to change the location of cairo-dock.desktop file. Otherwise, entrance would need some sort of blacklist to ignore certain desktop files found in the default location. But as for ignoring them based on type, that does not seem to be a viable option. Therefore, I will close this issue, as short of implementing a black list, which I may be open to, but would need more than just a single application to justify that effort, there does not seem to be any way to resolve this issue in entrance. Sorry, I took a look, and am sympathetic to the issue, but have to resolve it in other ways. Thanks!

TheTechRobo commented 3 years ago

Sounds good. I'll let you know if there's any other conflicts with applications.