dnkl/foot
41
2.0k
Fork
You've already forked foot
243

Shift + mouse wheel scroll not handled properly #2314

Open
opened 2026年03月29日 17:24:46 +02:00 by ionchy · 1 comment

Foot Version

foot version: 1.26.1 +pgo +ime +graphemes +toplevel-tag +blur -assertions

TERM environment variable

foot

Compositor Name and Version

KWin 6.6.3

Distribution

Arch Linux

Terminal multiplexer

No response

Shell, TUI, application

zsh

Server/standalone mode

  • Standalone
  • Server

Foot config

# -*- conf -*-
[main]
include=/usr/share/foot/themes/catppuccin-latte
font=Fira Code Medium:size=10
font-italic=JuliaMono:size=10
gamma-correct-blending=yes
initial-window-size-chars=120x30
[cursor]
blink=yes

Description of Bug and Steps to Reproduce

I have the following neovim keybindings to interpret shift + mouse wheel scrolling as horizontal scrolling:

map({ "i", "x", "n", "s" }, "<S-ScrollWheelUp>", "<ScrollWheelLeft>", { desc = "Scroll leftwards" })
map({ "i", "x", "n", "s" }, "<S-ScrollWheelDown>", "<ScrollWheelRight>", { desc = "Scroll rightwards" })

but shift scrolling seems to behave identically to normal scrolling in foot, while it works in e.g. kitty.
Using kitten mouse-demo (I wasn't sure how else to test this), shift scrolling in foot doesn't trigger any events (regular scrolling triggers WHEEL_DOWN/WHEEL_UP), while shift scrolling in kitty triggers WHEEL_DOWN/WHEEL_UP with Modifiers: Shift.

Relevant logs, stacktraces, etc.

No response

### Foot Version foot version: 1.26.1 +pgo +ime +graphemes +toplevel-tag +blur -assertions ### TERM environment variable foot ### Compositor Name and Version KWin 6.6.3 ### Distribution Arch Linux ### Terminal multiplexer _No response_ ### Shell, TUI, application zsh ### Server/standalone mode - [x] Standalone - [ ] Server ### Foot config ```ini # -*- conf -*- [main] include=/usr/share/foot/themes/catppuccin-latte font=Fira Code Medium:size=10 font-italic=JuliaMono:size=10 gamma-correct-blending=yes initial-window-size-chars=120x30 [cursor] blink=yes ``` ### Description of Bug and Steps to Reproduce I have the following neovim keybindings to interpret shift + mouse wheel scrolling as horizontal scrolling: ```lua map({ "i", "x", "n", "s" }, "<S-ScrollWheelUp>", "<ScrollWheelLeft>", { desc = "Scroll leftwards" }) map({ "i", "x", "n", "s" }, "<S-ScrollWheelDown>", "<ScrollWheelRight>", { desc = "Scroll rightwards" }) ``` but shift scrolling seems to behave identically to normal scrolling in foot, while it works in e.g. kitty. Using `kitten mouse-demo` (I wasn't sure how else to test this), shift scrolling in foot doesn't trigger any events (regular scrolling triggers `WHEEL_DOWN`/`WHEEL_UP`), while shift scrolling in kitty triggers `WHEEL_DOWN`/`WHEEL_UP` with `Modifiers: Shift`. ### Relevant logs, stacktraces, etc. _No response_
Owner
Copy link

Shift is the default modifier to bypass mouse capture. I.e. to select text, for copy/paste using the terminal emulator itself, you hold down shift (in applications that enable mouse capture).

The current implementation stops forwarding all mouse events to the application while shift is pressed. But perhaps we can change it to forward events for which there is no matching mouse binding in foot.

`Shift` is the default modifier to bypass mouse capture. I.e. to select text, for copy/paste using the terminal emulator itself, you hold down shift (in applications that enable mouse capture). The current implementation stops forwarding **all** mouse events to the application while shift is pressed. But perhaps we can change it to forward events for which there is no matching mouse binding in foot.
Sign in to join this conversation.
No Branch/Tag specified
master
osc-5522
sixel-heap-buffer-overflow
releases/1.27
releases/1.26
releases/1.25
releases/1.24
multi-cursor
releases/1.23
pixman-16f-2
releases/1.22
releases/1.21
releases/1.20
releases/1.19
releases/1.18
releases/1.17
releases/1.16
releases/1.15
releases/1.14
releases/1.13
releases/1.12
releases/1.11
releases/1.10
releases/1.9
releases/1.8
releases/1.7
releases/1.6
releases/1.5
releases/1.4
releases/1.3
releases/1.2
releases/1.1
releases/1.0
1.27.0
1.26.1
1.26.0
1.25.0
1.24.0
1.23.1
1.23.0
1.22.3
1.22.2
1.22.1
1.22.0
1.21.0
1.20.2
1.20.1
1.20.0
1.19.0
1.18.1
1.18.0
1.17.2
1.17.1
1.17.0
1.16.2
1.16.1
1.16.0
1.15.3
1.15.2
1.15.1
1.15.0
1.14.0
1.13.1
1.13.0
1.12.1
1.12.0
1.11.0
1.10.3
1.10.2
1.10.1
1.10.0
1.9.2
1.9.1
1.9.0
1.8.2
1.8.1
1.8.0
1.7.2
1.7.1
1.7.0
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.3
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
0.9.0
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dnkl/foot#2314
Reference in a new issue
dnkl/foot
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?