Comments (9)
I've been vaguely aware that my keyboard handling was wrong and probably broke on other layouts. I'll give this problem some prio. I need to go fix the Alt key handling too.
from extraterm.
Fixed in v0.11.0.
from extraterm.
So, I'm seeing that you made things more consistent in 0.11.0. Unfortunately, you made it consistently wrong.
In 0.9.0, if I type in a partial command and hit Ctrl+C
, the shell receives the input and clears the command. In 0.11.0, I have to type Ctrl+J
to get the same behavior (because the key that would produce 'c' in a US QWERTY layout produces 'j' in Dvorak).
Meanwhile, if I attempt to create a new tab with Ctrl+Shift+T
, that fails in both 0.9.0 and 0.11.0. In both cases, I have to use Ctrl+Shift+Y
because the key that produces 'y' in my layout produces 't' in US QWERTY.
from extraterm.
Thanks for testing. I swear I've had this working correctly (using Kubuntu 16.04 and dvorak) but something is clearly wrong now. It is going wrong here too.
from extraterm.
I've had a look at this a bit it is Linux specific. On Windows and MacOS, Electron sends the correct values in its KeyboardEvent even when Control is used. On Linux Electron is using the untranslated key code.
This is something which needs to be fixed up in Chromium itself.
from extraterm.
Atom, which also uses Electron, gets it right, so the problem is not insuperable in user code. They aren't detecting dvorak and mapping it manually; I'm using a custom layout based on dvorak. They aren't reading data files out of /usr/share/X11/xkb.
from extraterm.
That is an interesting point.
I just had a look in the Atom code and it appears that they have a native module (https://github.com/atom/keyboard-layout) which does let Atom spy the selected keymap in the OS. In another module atom-keymap (https://github.com/atom/atom-keymap) they do actually manually detect Dvorak and translate the keypresses. It is all pretty gross really.
I'm using the (new) 'key' field in the KeyboardEvent which is supposed to clean up this mess, but as we see it is buggy on Linux.
from extraterm.
This Chromium bug should have fixed the problem with KeyboardEvent.key but it didn't. https://bugs.chromium.org/p/chromium/issues/detail?id=227231
A bug report which matches what we are seeing is here: https://bugs.chromium.org/p/chromium/issues/detail?id=585241 and I've updated it with the current state of play.
from extraterm.
I had a good look at what they are doing in Atom. Selectively grabbing the value out of KeyboardEvent.keyIdentifier seems to do the trick on Linux, So I've added code for that and tested on Linux.
from extraterm.
Related Issues (20)
- Unsupported OpenType signature ttcf after changing to Noto Sans CJK TC HOT 2
- Main terminal window no longer rendered in Sway HOT 4
- Alt GR symbols fails again on Windows ? HOT 5
- Missing extraterm-...-win32-x64.zip
- Some altgr combination doesn't work on Ubuntu with azerty keyboard HOT 2
- Custom keybindings only activate after opening settings HOT 4
- Selections with framed output can't be selected together with the mouse
- Strange framing
- macOS Application Signing HOT 1
- Directory goes to /tmp every time I run extraterm
- Terminal hotkeys does not work
- Doesn't run on Linux Mint HOT 4
- Old version - 0.59 - does not work on Fedora linux. HOT 4
- 0.71.0: "Inject Bash/Fish Shell Integration" command crashes terminal
- Crashes after trying to change font to "sudo" on WIndows 11
- Error: /home/user/bin/extratermqt-0.71.1-linux-x64/node_modules/@nodegui/nodegui/build/Release/../../miniqt/6.4.1/gcc_64/lib/libQt6SvgWidgets.so.6: file too short HOT 2
- Would like to donate monetarily - Can't find where on your README.md - can you add it?
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding HOT 7
- Remap modifier keys
- 0.73.0: bash shell integration - one error frame per pipe
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from extraterm.