-
Notifications
You must be signed in to change notification settings - Fork 8.5k
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
Feature Request: Mouse/Touch/Pointer Bindings (like middle-click paste, right-click context menu, etc.) #1553
Comments
A few things:
|
Probably related, make for example scrolling work when using vim etc....used to work fine for example in WSL terminal |
Can I pile on here -- can we get two finger scrolling on the mousepad? |
A small point that's probably obvious, but just to make sure it's said, can we make sure the default is and the defaults are to pass through mouse events within the terminal to the underlying VT, per #545? Customizability I like, but not as much as not breaking anything that would otherwise work. If someone's using, for example, tmux mouse support in conhost, they shouldn't have to grovel through the options to figure out why it doesn't work in Terminal. |
Though it's also being discussed in #524, I want to make sure it's tracked here that some people might not want copy-on-select. So that needs to somehow be included in these bindings. Though, that might make sense as a different setting, since I'm not sure if there are any other "onSelect" actions that would possibly make sense. |
Add something like "lines to scroll" option - in some cases scroll is too fast in terminal using touchpad. |
Just updated this to AHK 2.0:
|
It's 2024 and it's still not added :( Some companies don't allow the use of AutoHotKey on work machines. Please just add a simple "X11-style middle mouse button paste" option and it's perfect. If there's time to add more options in the future, even better. |
This comment has been minimized.
This comment has been minimized.
The lack of this simple feature has lost Microsoft more licensing revenue just at companies I worked at than it would have cost to pay a developer for a full year to implement-it. Apple is very thankful for all the Macs sold because "Windows Terminal is not compatible with our Linux servers" |
can y'all PLEASE stop venting your frustration in github issues? please consider how many patiently waiting users (who are in the same situation as you!) you're pinging vs. what you actually achieve here before posting. |
Prelle's comment was deleted because it was whinging. This: does not bring anything valuable to this conversation. I won't stand for whinging. Productive, constructive discussion - that I'm more than happy to have.
I'd love to see concrete evidence that the lack of middle-click-to-paste in the Terminal is truly causing Microsoft to lose revenue. Genuinely: solid evidence of that would probably allow us to instantaneously prioritize this work. Rarely do we get the opportunity to directly correlate individual features in a developer tool to direct dollars and cents. Please, if you have that data, I'd love to share it. Once again: I'd be more than willing to listen to and review a proposal here. It's a complicated problem space, to try and appropriately map all the requests to proper mouse bindings here. My notes from: #1553 (comment) still apply. The last attempt I made at this was in 2024, and I pushed my notes here: main...dev/migrie/s/1553-mouse-bindings. 1 I got bogged down in the potential syntax to address the multitude of linked features here. Footnotes
|
@zadjii-msft Unfortunately it looks like we are asking for making one small fixed window openable and your reply is that until your team figures out how to completely rebuild the whole cathedral that small window will remain fixed😢 I hope this explains the source of frustration and maybe even sparks some interest in actually solving this simple issue without the need to wait for the complete re-factor of the Terminal controls🙏 |
Implementing it in the control itself would be fairly trivial. Authoring a JSON schema that can be used to consisely describe the breadth of what people what to be able to configure about the mouse - that's hard. That's what I'm very open to suggestions on. |
For starters, just being able to paste with the middle mouse button would appease a lot of Unix/Linux people. |
Thanks Mike,
I wonder whether short-medium term, a per profile option or two a bit like
PuTTY has would suffice?
In PuTTy - Radio selection:
a. Middle extends, Right brings up menu
b. Middle extends, Right pastes
c. Right extends, Middle pastes
I’d add:
d. Middle pastes, Right brings up menu - that’s what many gnome-terminal
and perhaps other users are used to. It’s what I would use, even in
PowerShell and Cmd terminals.
Cheers,
-Dave
…On Tue, 25 Feb 2025 at 5:46 am, psergiu ***@***.***> wrote:
For starters, just being able to paste with the middle mouse button would
appease a lot of Unix/Linux people.
X11 XTerm has middle-mouse: paste, right-mouse: extend existing selection.
Thank you !
—
Reply to this email directly, view it on GitHub
<#1553 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAPBQUKUKR2STSA2AZZNTAD2RNZHVAVCNFSM6AAAAABXSJS3BWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGQ4DIOBTHA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
[image: psergiu]*psergiu* left a comment (microsoft/terminal#1553)
<#1553 (comment)>
For starters, just being able to paste with the middle mouse button would
appease a lot of Unix/Linux people.
X11 XTerm has middle-mouse: paste, right-mouse: extend existing selection.
Thank you !
—
Reply to this email directly, view it on GitHub
<#1553 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAPBQUKUKR2STSA2AZZNTAD2RNZHVAVCNFSM6AAAAABXSJS3BWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDMNZZGQ4DIOBTHA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
For the record, and for those who don't use PuTTY, there is a screenshot of the PuTTY selection settings in my old duplicate issue I mostly use PuTTY (for other reasons than just copy/paste), but I have learned to deal with the Windows Terminal (that also has nice features) when I need it, by simply using:
I can live with that, even if it feels a bit awkward. The trouble is that when we try to teach modern students that they have to remember different ways of copy/pasting, depending on the application, they don't want to bother |
The TLDR:
Footnotes
|
This comment has been minimized.
This comment has been minimized.
Here is my suggestion.
First, implement the following settings as a priority. "mouse": {
"selection": {
"double": "selectBetweenSpaces",
"triple": "selectBetweenSymbols",
"quad": "selectLine",
"shift+double": "selectBetweenSpaces"
// no "shift+triple", "shift+quad" for simplicity
},
"action": {
"middle": "paste",
"right": "openContextMenu",
"shift+middle": "pasteSelection",
"shift+right": { "action": "copy", "singleLine": false }
// also, no "alt+middle", "ctrl+right"... for simplicity
}
} Then, extend the functionality as shown below. "mouse": {
"selection": {
"double": "selectBetweenSpaces",
"triple": { "action": "select", "delimiters": " /\\()'-.,:;<>~!@#$%^&*|+=[]{}~?\u2502" },
"quad": "selectLine",
"shift+double": { "action": "select", "regex": "^.*$" }
// no "shift+triple", "shift+quad" for simplicity
},
"action": {
"middle": "paste",
"right": "openContextMenu",
"shift+middle": "pasteSelection",
"shift+right": { "action": "copy", "singleLine": false }
// also, no "alt+middle", "ctrl+right"... for simplicity
}
} edit: "shift+left", "alt+middle", "ctrl+right" may be added later, but only for config file, not on settings UI. |
Some mouse such as the Razer Naga has 17 buttons. A lot of mouse have 5 (thumb buttons), or even 7 when the left/right thumb buttons are considered different.
IMHO this is over-simplification based on personal preference (a "quad-click" but not "ctrl-click"? wut?). This eliminates so many possibilities that one could even question the point of fixing the issue. After all, "99.95%" of users won't even bother with rebinding. This proposal is also contrary to why the issue hasn't been closed yet. The MS team wants to support as many usages as possible, to the point of being frozen in indecision. This proposal would support none of them but the most basic ones. And it will most certainly leads to more feature requests for the missing options. Last, this also similar to one of the biggest complaints about modern UX, where customization is limited for the sake of simplification (e.g. see Firefox, or Gnome, or Windows vs Linux). |
Well then, what about touchscreen, pen tablet, touchpad, etc.? If we try to support every device, there will be no end. These devices have their own driver software, which should handle such configurations.
What we need is gradual implementation, not all-in-one super ultimate HID binding which will never be implemented. My suggestion can solve most issues and can be expanded later if needed.
We can add "ctrl+click" or "alt+middle" to config file later, but not now for the reasons mentioned above. Sorry, but all I need is a simple middle-click to paste, and it looks like I'll have to wait another 5 years without simplification. |
There is no need to go from one extreme to the other. You affirmed that mice has few buttons. I'm saying that's not quite true. Supporting more buttons is trivial compared to supporting different device types.
If this is all it takes, then feel free to use such software to remap right-click to the middle button.
Your proposal only mention the easy config. How do you see your format supporting more buttons/more modifiers/more devices/...? To clarify what I mentioned before, the reason the ticket stalled is not necessarily because the MS team wants to support everything at once, or because it's complicated to implement, but because they want a schema that can be easily extended to support advanced scenarios. If your solution is to just start with a simple schema and redo it later for the advanced scenario, then the MS teams already said they were not interested in doing so.
This ticket is not just about you. Unrelated: @sweth, @adrian-dinu, no need to promote the post from inko94, it's a copy/paste of the top post. That and the activity of that account indicate it's very likely a fake account trying to build a history |
Not every mouse driver supports per app mouse binding. And also, #1553 (comment) #1553 (comment) There are many, many comments requesting similar simple middle click paste. |
I guess when I followed this I imagined it just being a something simple you could add to the existing 'keys' section of the 'actions'. https://learn.microsoft.com/en-us/windows/terminal/customize-settings/actions#modifier-keys I would assume you have a bunch of names like this Assume you have a bunch of names like below, where the names follow a pattern like
Button name could like left, right, middle, button1, ..., buttonNN and any other obscure names that might be added later. The event names could start by following similar names as used in WinForms. So click, doubleclick, mousedown, mouseup, and so on. Possibly only starting with click and doubleclick and adding support for some kind of touchpads, other devices, and the less common events later. Anyway, you would then be able to have a configuration like this.
Perhaps I am missing some complications, but I am not sure why you would want a new 'mouse' or 'pointerbindings' section in the configuration. |
Same idea as mine.
I would remove the
[...] but for those, keeping the
And for future extensions, the
|
Indeed, I don't need double middle-click or triple right-click. I only use multiple clicks with the left mouse button I do wonder how things would behave for left-handed people who decide to revert the order of the buttons. I have at least one left-handed colleague who uses his mouse left of the keyboard, with the left mouse button acting as a regular right-mouse, and the right acting as left. But maybe the drivers will generate events/callbacks/whatever where whatever the user wants to be the left button is always called the left button I have added below a screenshot (unfortunately in French) of what I get with : |
Summary of the new feature/enhancement
Expand settings to be able to define remappable mouse bindings. Arguably, different touch events should fall under this too. So let's just call this "pointer bindings" for now.
Proposed technical implementation details (optional)
Mouse bindings are a bit trickier than keybindings in that the mouse has a location where the event occurs. For example, right-clicking a tab should have a different effect on the terminal than right-clicking the terminal.
As a super early idea, consider this format:
We definitely need a spec for this because it'll be a bit hefty. We'll also need to update a decent amount of documentation (particularly settings schema) to be able to describe what combinations are acceptable (again, the JSON mentioned up here is just me rambling about a potential implementation.)
There may be overlap between some commands in keybindings. Be sure to think that through.
Mike notes:
we should go back and collect up all the threads we've said "this would be a good mouse bindings feature" below
spec draft
Mouse bindings
Abstract
We've had numerous requests to configure how the mouse behaves in the Terminal.
The original behavior was a simple duplication of how conhost behaved: a right
click will copy the a selection if there is one, or paste the clipboard if there
isn't. Over time, we've accumulated a number of scenarios that we believe can
all be addressed by allowing more fine-grained mouse binding support. However,
upon further review, ultimately, we don't really need deep mouse binding
support.
Scenarios
The following is a list of all the feature requests we've linked to mouse
bindings in the past, grouped into categories of related requests:
Change how mouse multi-click selects
Change the action that L/M/R-mouse performs
VK_XBUTTON1/2
, etc.Other
These are smaller, independent features that could all have an individual setting (if needed)
alt
) (see mail thread "RE: How to disable line wrap selection in Terminal")Solution design
Following the above scenarios, solutions are proposed below:
Change how mouse multi-click selects
Across the requests here, we've got the following requests:
To boil this down, users want to be able to configure the behavior of double,
triple, and quadruple clicks. The most common request is to change the
delimiters for double-click selection. But users also want to be able to
configure the delimiters to change on
Shift/Alt/Ctrl clicks.
Alternatively,
The text was updated successfully, but these errors were encountered: