-
-
Notifications
You must be signed in to change notification settings - Fork 76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WindowTracker: Search desktop file by process name #2141
base: main
Are you sure you want to change the base?
Conversation
This branch has a side effect. If an app with no app_info launched from Terminal, gala thinks the application belongs to the Terminal. Is this ok to proceed with this branch? |
I'm a bit worried this might also reintroduce the issue with duplicate launchers in the dock :/ |
@danirabbit our apps system (in both gala and dock) works on determining desktop file that belongs to an app. All this PR does is tries to match process name to a desktop file. If there is no duplicated desktop file, the bug will not appear. I can't imagine an edge-case where two icons of the same app will appear |
Yeah I'm wondering in the case that there's a launcher but it can't be matched to the running window what will happen? Will it show a launcher for the panel or dock instead? |
Gala will create a fake app with id "window:some number" which will not be associated with the actual app. Until elementary/dock#330 is merged this fake app will not be shown. |
Is going through the parent processes needed for some apps you know about? If not or only very rarely maybe we hold off from doing that and maybe if we need it leave it to a later PR? I think this would solve some concerns @danirabbit had for now |
Well it fixes the issue for GParted and TablePlus. Not sure if there are other affected apps |
TablePlus seems to be actively maintained. Maybe it would be better to help them provide a correct app ID? 😅 |
Ah ok then I guess it's kind of needed 🤷 |
Fixes elementary/dock#282
Fixes elementary/dock#310 (TablePlus)
Gets process name from
/proc/%d/comm
and tries to get desktop file with that name. If it doesn't exist it tries to do the same with the parent process until we get to process 0.