liamg / darktile

:waning_crescent_moon: Darktile is a GPU rendered terminal emulator designed for tiling window managers.
MIT License
3.04k stars 112 forks source link

make sure keybindings are configurable #251

Closed cjw296 closed 3 years ago

cjw296 commented 5 years ago

Is your feature request related to a problem? Please describe. Every user will have their own keybinding wants and needs.

Describe the solution you'd like Minimum: ability to configure key bindings in a config file, using AutoHotKey's syntax would be familiar to some of this. Would be nice to configure these through a GUI, PyCharm and the other JetBrains editors have done this really nicely and if we could mimic their methods, that would be fantastic.

Describe alternatives you've considered I'd use AutoHotKey to work around stuff, but that becomes trickier if the keybindings Aminal has chosen don't line up with those of other Windows apps that I'm working around.

Additional context See the following tickets that rely on keybindings which would need to be configurable: https://github.com/liamg/aminal/issues/196 https://github.com/liamg/aminal/issues/217 https://github.com/liamg/aminal/issues/195

mjs commented 5 years ago

@cjw296 You know that there are already some keybindings that can be adjusted in the configuration file right? As a first port of call we should make sure that all aminal specific keybindings are supported there.

It seems like there are two issues here: (1) make sure all keybindings are configurable in the config file, (2) create a GUI for keyboard configuration. Should we split this up into 2 issues?

cjw296 commented 5 years ago

Nope, was not aware of any config file. Where's that documented? (If it's not, please at an issue to get it documented :-) ).

Agreed on making sure that all aminal key bindings can be configured would be good and, indeed, sufficient for this ticket.

A GUI for keyboard configuration can definitely be split into a second issue, and that one's definitely more of a nice to have than a blocker.

mjs commented 5 years ago

The config file is documented in the readme. See the "keys" section here: https://github.com/liamg/aminal#config-file

rrrooommmaaa commented 5 years ago

@cjw296 for #217 (rectangular mouse select), would it be sufficient to configure a subset of modifier keys? Or any key (+ modifiers)?

cjw296 commented 5 years ago

Ideally we should be supporting any multi-key combinations including any modifiers.

rrrooommmaaa commented 5 years ago

@cjw296 Ideal software would require indefinite amount of effort to build (time and money). I'm asking whether it's worth it or not.

cjw296 commented 5 years ago

What's the problem you're trying to ask about? What keys are hard to bind to and why?

rrrooommmaaa commented 5 years ago

@cjw296 The current code allows to easily read the combination of modifier keys pressed at the moment when you press the left mouse button. To allow other key combinations I'll have to either 1) find out a way to read current keyboard state with all buttons included. 2) keep track of buttons pressed and not yet released. But, you'd usually want to use ctrl, alt or shift buttons or a combination of these for 'rectangular select'. So why waste time and money allowing you to do what you'll probably never want to do, e.g. pressing Ctril+A for entering rectangular select mode?

rrrooommmaaa commented 5 years ago

The point is, too, that, the bigger the program the harder it is to maintain. Not only this task will consume some effort, but some subsequent tasks may require more effort merely because they are updates to a bigger, more complicated software.

cjw296 commented 5 years ago

We're going to need all key bindings to be configurable, not sure when the left mouse button is pressed. @mjs - thoughts?

rrrooommmaaa commented 5 years ago

Left mouse button is taken into account for rectangular select only

liamg commented 3 years ago

Closed due to complete rewrite as part of bringing the project back to life, please create a new issue if still relevant. Thank you!