this post was submitted on 23 Feb 2025
88 points (95.8% liked)

Linux

50737 readers
759 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
top 29 comments
sorted by: hot top controversial new old
[–] [email protected] 25 points 1 week ago* (last edited 1 week ago) (3 children)

It wasn't clear for me what the hell is a "Global Shortcut" I heard the term first time in my life, I found the answer in the upstream PR:

It's designed so that applications can register actions that can be triggered globally (i.e. regarless of the system's state, like focus).

It's strange it wasn't possible until now, or the main thing it's now DE independent?

On Gnome I use Run or raise extension, and with this I can run or switch to running apps with global shortcuts, so this was definitely working from Gnome extensions.

[–] that_leaflet 41 points 1 week ago (1 children)

Gnome Extensions run in the Gnome shell, so they have special privileges.

Wayland’s security focus prevents apps from listening in on all user key presses, which means they can’t know you used a keyboard shortcut unless the app is focused.

The Global Shortcut Portal was made to address this. An app registers for a global shortcut, and when the user activates the shortcut, the portal tells the app that it’s been activated.

[–] [email protected] 3 points 1 week ago

Thanks for the context!

[–] [email protected] 33 points 1 week ago

It's because this feature was implemented as a pseudo-keylogger on X11. All X clients could listen to the compositor state at all times (including input), even if input was focussed on another (potentially sensitive) application.

In Wayland, clients have almost zero knowledge of the compositor's state. This was an explicit design choice to enhance security and enable modular features via wayland protocols. Of course, this also killed every implementation of app-specific global shortcuts.

Wayland protocols take a lot of time to get agreed on - They need multiple implementations across different compositors (usually means KDE and GNOME need to implement the protocol spec and agree to it) and the specs can take a long time to design and reach production.

Obviously this does hurt uptake for Wayland since issues can take years to resolve, but the core team are very aware of the pitfalls of X11's development and have long preferred this slow and methodical approach in the hopes it's sustainable and maintainable into the future.

[–] [email protected] 7 points 1 week ago

This is Wayland specific. Wayland does not allow unfocused applications to intercept keyboard shortcuts for security purposes, so this is how they must be implemented.

[–] [email protected] 7 points 1 week ago (1 children)

it's still up to individual apps to implement the portal I think

[–] [email protected] 5 points 1 week ago (1 children)

True, but the apps that cause the most complaints about features that Wayland lacks (Discord for this one) are usually among the fastest to enable the portals once they're available.

[–] Giooschi 9 points 1 week ago (1 children)

Not sure if Discord is the best example here, as it didn't support the screen capture portal for a very long time.

[–] [email protected] 1 points 1 week ago (1 children)

Discord didn't take very long to add it at all, what took a long time was fixing audio streaming.

[–] [email protected] 6 points 1 week ago (1 children)

Umm yes, they did take ages to support it. It took like 7 years...

[–] [email protected] 0 points 1 week ago

tbf, Wayland was hardly relevant for some of that. the first feature request I found was 4 years go. implementing it also required upgrading electron a few versions, so a decent bit of work.

[–] [email protected] 5 points 1 week ago (2 children)

Does anyone know what the status on KDE implementing this is?

[–] that_leaflet 10 points 1 week ago (1 children)

Already merged there some time ago.

[–] [email protected] 2 points 1 week ago (1 children)

I can't find any documentation on how to set it up, do you happen to know where that would be?

I can't figure out how to setup discord push to talk on kde wayland, specifically

[–] that_leaflet 6 points 1 week ago (1 children)

Apps need to add support for the new portal system. Chromium is adding (or added?) support, so Discord may implement it once they use an Electron version with support.

If you’re using KDE, you can tell Discord to use X11 and use KDE’s feature to let X11 apps snoop on key presses.

[–] [email protected] 1 points 1 week ago (1 children)

I don't understand why they wouldn't allow you to manually override things, i hope this gets added later, i'd like to be able to forward shortcuts to apps for push to talk even if the app doesn't support the native portal

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago) (1 children)

Because if it is freely overridable (which it used to be, on X11), other apps can override it as well - including malicious apps. The portal adds an explicit path that ensures that the user is in control, but does need to see wider adoption first. Which will surely be helped by GNOME support.

[–] [email protected] 1 points 1 week ago (1 children)

I didn't say it should be freely overridden, I said I should be able to manually override it

[–] [email protected] 1 points 1 week ago

Yes, but that amounts to the same thing. The restrictions that prevent you from manually overriding it are there to prevent any app from freely overriding it. There's a way to only explicitly allow you to manually override it, and that's the way that's currently being built and requires ecosystem support.

[–] [email protected] 8 points 1 week ago (1 children)

It was implemented over two years ago.

[–] [email protected] 1 points 1 week ago (1 children)

I can't find a way to manually add entries in the settings, is there no way to do that?

How would I manually enable push to talk in discord, for example?

[–] [email protected] 1 points 1 week ago

You can't. Apps need to support shortcuts in order to receive them...

For Discord, the X11 compatibility page has working options though.

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago) (1 children)

i could have sworn it was already working for me on gnome, im surprised by this

but then again i havent used discord in a huge while now

[–] that_leaflet 11 points 1 week ago (1 children)

The traditional insecure global shortcuts system works in Xorg.

[–] [email protected] 2 points 1 week ago (1 children)

i'm using wayland though, i'm probably too tired to be making too much sense anyway.

[–] arcidalex 7 points 1 week ago (2 children)

Xorg global shortcuts will work for anything using Xwayland, but not in anything thats wayland native

For example, in a game (using wine, which uses Xorg by default currently) your global shortcut will work. But in a wayland native window like Firefox, it will not if its the active window

[–] that_leaflet 3 points 1 week ago (1 children)

Are you sure about that? KDE has a feature that lets Xwayland apps snoop if certain keys are pressed, but Gnome does not.

[–] arcidalex 3 points 1 week ago

Yeah. The behavior i stated was how it works in Gnome. In KDE since Xorg passthrough is a formal thing, the behavior is different based on those options

[–] [email protected] 0 points 1 week ago* (last edited 1 week ago)

oh i get it now. thats why i thought we already had it, im not usually aware of what is running under xwayland and what is not.