DBus Global Shortcuts with binde sends hundreds of activation signals per keypress
Hyprland Version
System/Version info
Hyprland, built from branch main at commit fbf5ba87ce57752653f3bebf6e2be090c702836e dirty (shaders: use highp for fragments).
Date: Fri Feb 16 04:32:34 2024
Tag: v0.35.0-38-gfbf5ba87
flags: (if any)
System Information:
System name: Linux
Node name: myhostname
Release: 6.7.5-zen1-1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Sat, 17 Feb 2024 14:02:21 +0000
GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation TigerLake-H GT1 [UHD Graphics] [8086:9a60] (rev 01) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104M [GeForce RTX 3070 Mobile / Max-Q] [10de:249d] (rev a1) (prog-if 00 [VGA controller])
os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
plugins:
Bug or Regression?
Bug
Description
When assigning a binde using the global dispatcher, org.freedesktop.portal.GlobalShortcuts.Activated signals are fired hundreds of times even if the key is only pressed for a fraction of a second. The signals do not stop when the key is released.
When using bind instead everything works as expected, and the bind fires one org.freedesktop.portal.GlobalShortcuts.Activated on key down, and one org.freedesktop.portal.GlobalShortcuts.Deactivated on key up.
I suspect something is wonky with the key repeat logic, or that when using other dispatchers the repeat is debounced or something.
How to reproduce
Create a binde bind with a global dispatcher, e.g.:
binde = , XF86AudioRaiseVolume, global, coolApp:volUp
Monitor DBUS:
dbusmonitor --session
Tap the bound key once and witness the flood of org.freedesktop.portal.GlobalShortcuts.Activated signals.
Crash reports, logs, images, videos
No response
lol, probably e should be disabled for global as it makes no sense does it
Does it not make sense? Are all applications expected to implement internal key repeat logic? Yes may be a valid answer.
Also out of interest, where does the appId in hyprctl globalshortcuts come from? I tried to follow the code but got quickly confused.
the app itself thru dbus
the app itself thru dbus
Ah, I see there are differences between the Hyprland global shortcuts API and the upstream portal GlobalShortcuts API (the latter has no app_id field), so I guess portal-registered shortcuts will always show up without an app_id prefix from Hyprland's perspective?
it used to, portals suck. ugh.
also kinda sent via sessions.