Middle click not working for anything except when pasting/opening links in new tabs for Firefox.
Already reported ? *
- [X] I have searched the existing open and closed issues.
Regression?
No
System Info and Version
System/Version info
Hyprland, built from branch at commit 4520b30d498daca8079365bdb909a8dea38e8d55 (version: bump to 0.44.1).
Date: Wed Oct 9 12:54:39 2024
Tag: v0.44.1, commits: 5309
built against aquamarine 0.4.2
flags: (if any)
System Information:
System name: Linux
Node name: fedora
Release: 6.11.3-200.fc40.x86_64
Version: #1 SMP PREEMPT_DYNAMIC Thu Oct 10 22:31:19 UTC 2024
GPU information:
07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Barcelo [1002:15e7] (rev d2) (prog-if 00 [VGA controller])
os-release: NAME="Fedora Linux"
VERSION="40 (Forty)"
ID=fedora
VERSION_ID=40
VERSION_CODENAME=""
PLATFORM_ID="platform:f40"
PRETTY_NAME="Fedora Linux 40 (Forty)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:40"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=40
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=40
SUPPORT_END=2025-05-13
plugins:
======Config-Start======
Config File: /home/person/.config/hypr/hyprland.conf: Read Succeeded
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
autogenerated = 0 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,highres,0x0,1
xwayland {
force_zero_scaling = true
}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
# exec-once = waybar & hyprpaper & firefox
exec-once = hyprpaper
exec-once = nwg-panel
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$menu = wofi --prompt="Search for programs" --show drun
# Some default env vars.
env = GDK_SCALE,1.5
env = XCURSOR_SIZE,18
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
scroll_method = on_button_down
scroll_button = 274
follow_mouse = 2
touchpad {
natural_scroll = yes
scroll_factor = 0.2
middle_button_emulation = true
}
sensitivity = 0.2 # -1.0 to 1.0, 0 means no modification.
}
cursor {
no_warps = true
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 10
border_size = 2
# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
# no_cursor_warps = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 8
blur {
enabled = false
#size = 3
#passes = 1
}
drop_shadow = false
#shadow_range = 4
#shadow_render_power = 3
#col.shadow = rgba(1a1a1aee)
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
# master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
# new_is_master = true
# }
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = on
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_splash_rendering = true
disable_hyprland_logo = true
vfr = true
middle_click_paste = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
#bind = $mainMod, XKB_KEY_KP_Enter, exec, $terminal
bind = $mainMod SHIFT, RETURN, exec, $terminal
bind = $mainMod SHIFT, L, exec, librewolf
bind = alt SHIFT, 3, exec, grim $(xdg-user-dir PICTURES)/$(date +"Screenshot_%d-%m-%y_%T.png")
bind = alt SHIFT, 4, exec, grim -g "$(slurp)" $(xdg-user-dir PICTURES)/$(date +"Screenshot_%d-%m-%y_%T.png")
bind = $mainMod, C, killactive,
bind = $mainMod SHIFT, F, fullscreen, 0
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, left, alterzorder, top
bind = $mainMod, right, alterzorder, top
bind = $mainMod, up, alterzorder, top
bind = $mainMod, down, alterzorder, top
# Function media keys
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%-
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 10%+
bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
bind = , XF86MonBrightnessUp, exec, brightnessctl set 10%+
bind = alt, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bind = alt, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bind = alt, XF86MonBrightnessDown, exec, brightnessctl set 5%-
bind = alt, XF86MonBrightnessUp, exec, brightnessctl set 5%+
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod SHIFT, left, workspace, e-1
bind = $mainMod SHIFT, right, workspace, e+1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
======Config-End========
Description
I have a ThinkPad L14 Gen 3 (AMD) and am trying to use the mouse buttons above the touchpad for games. However, clicking the middle mouse button does nothing (pasting text does work when enabled (including outside of Firefox)). I've tried using an external mouse, clicking the scroll wheel does nothing either. I figured it was an issue with the game itself, but when testing my mouse input on a few sites ((https://www.onlinemictest.com/mouse-test/), https://cpstest.org/mouse-test/) my middle click is not detected. I have middle_button_emulation enabled, but doing a simultaneous left & right mouse click has no effect. However, pressing the button and using the trackpoint does in fact allow me to scroll in any program.
How to reproduce
Relevant part of my config (but feel free to look at the systeminfo output above for the full config):
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
scroll_method = on_button_down
scroll_button = 274
follow_mouse = 2
touchpad {
natural_scroll = yes
scroll_factor = 0.2
middle_button_emulation = true
}
sensitivity = 0.2 # -1.0 to 1.0, 0 means no modification.
}
Crash reports, logs, images, videos
No response
does wev show the event? Maybe you have the middle mouse button bound to something in hyprland?
(Ignore the closing & reopening, was a mistake on my part) Yes, wev does register my middle clicks:
[13: wl_pointer] button: serial: 12280; time: 14270472; button: 274 (middle), state: 0 (released)
[13: wl_pointer] frame
And, I double checked for any bindings I might've had, but I don't have middle click in any binds :(
does it only show "released" or is the "pressed" event above it too?
if both are there, that's a problem with the apps.
You can also try disabling middle click paste in hyprland's config (may require a hl restart)
Y'know what, you're right, I do get both "pressed" and "unreleased" states at the same time, only when I release the button though:
[13: wl_pointer] button: serial: 1623; time: 251982; button: 274 (middle), state: 1 (pressed)
[13: wl_pointer] frame
[13: wl_pointer] button: serial: 1624; time: 252076; button: 274 (middle), state: 0 (released)
[13: wl_pointer] frame
I do have middle click paste disabled now, but still doesn't work normally :(
I'm not too versed in this, but considering I get both pressed & released states at the same time upon release (unlike other keys, where pressing gives me "pressed" and releasing gives me "released" at the appropriate times), could it be something related to input buffers?? I absolutely could be wrong though.
Here is a video, for others to fully get what I'm saying in regards to the press/release output. You probably can't read it due to the quality but you can certainly see 4 lines of output (including the lines saying "frame") upon releasing the middle click button, rather than the typical 2 lines for both press and release respectively for every other key that I demonstrate.
https://github.com/user-attachments/assets/aee9d6df-25c6-400d-8947-525f5567c3ac
that might be a hardware thing then?
Hi, sorry for the late response, I mean maybe? I'm guessing it's something to do with drivers considering it didn't work with an external mouse either :(
not the exact issue i think, but I have noticed inconsistent behaviour with middle click as well.
sometimes it stops working like 2/10 times clicks just doesnt do anything. I use middle click a lot, for selecting, and pasting from primary keyboard, and closing and opening tabs on firefox vertical tabs. so this happens frequently to me.
Hello there!
This issue has been closed, as we are moving from issues to discussions. More about this can be found here and in #9854.
Firstly, please make sure this issue is still relevant in latest Hyprland. If so, we ask you to open a discussion (please read the discussion guidelines first, in the pinned post)
Thank you for your understanding!