Keyboard shortcuts not working as intended for international keyboard layouts (i.e., ABNT2)
vinmir opened this issue · comments
Description
The Activate Previous Tab
hotkey is not correctly bound to non-ANSI layouts. What JupyterLab Desktop refers to ]
is actually ~
in my ABNT2 keyboard (reference image).
I tried removing the keybinding and setting it manually. However, the default hotkey combination stays alongside my custom combination. If it were possible to manually override all hotkeys (in a .json or similar), it'd solve the problem even without official international support. See the gif below for an example.
Reproduce
- Use an ABNT2 keyboard;
- Open two tabs in JupyterLab Desktop
- Press the combination
Ctrl-Shift-]
- Nothing will happen, as the actual combination expected is
Ctrl-Shift-~
in ABNT2.
Expected behavior
Ctrl-Shift-]
should be mapped correctly regardless of keyboard layout, as in VS Code, for instance.
Context
System:
Distributor ID: Linuxmint
Description: Linux Mint 20.3
Release: 20.3
Codename: una
JupyterLab: Version 4.1.6
JL Desktop: Version 4.1.8-1
Troubleshoot Output
$PATH: /home/usrname/.npm-global/bin /home/usrname/.local/bin ~/.config/emacs/bin /home/usrname/anaconda3/bin /home/usrname/anaconda3/condabin /home/usrname/.npm-global/bin /home/usrname/.local/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/binsys.path:
/home/usrname/anaconda3/bin
/home/usrname/anaconda3/lib/python311.zip
/home/usrname/anaconda3/lib/python3.11
/home/usrname/anaconda3/lib/python3.11/lib-dynload
/home/usrname/.local/lib/python3.11/site-packages
/home/usrname/anaconda3/lib/python3.11/site-packagessys.executable:
/home/usrname/anaconda3/bin/pythonsys.version:
3.11.7 (main, Dec 15 2023, 18:12:31) [GCC 11.2.0]platform.platform():
Linux-5.15.0-102-generic-x86_64-with-glibc2.31which -a jupyter:
/home/usrname/anaconda3/bin/jupyterpip list:
--snip--: had to remove installed packages due to exceeding the maximum of 65536 characters.
Browser Output (required for interface issues after loading)
jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Language pack 'en_US' not installed! fetch @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Objectcommand: "application:activate-next-tab"keys: ['']selector: "body"[[Prototype]]: Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1 Skipping this shortcut because there are no actionable keys on this platform Object (anonymous) @ jlab_core.0c882064cb12a87cda90.js?v=0c882064cb12a87cda90:1
Logs (required for issues with loading, server and startup)
[2024-05-14 20:23:12.530] [error] Python path "/home/usrname/.config/jupyterlab-desktop/jlab_server/bin/python" does not exist. [2024-05-14 20:23:30.051] [warn] Language pack 'en_US' not installed! [2024-05-14 20:23:58.665] [warn] Language pack 'en_US' not installed! [2024-05-14 20:24:00.352] [warn] Routing /lab to apputils:load-statedb failed TypeError: Failed to fetch [2024-05-14 20:24:00.353] [warn] Showing error: [object Object] [2024-05-14 20:24:00.359] [warn] Showing error: [object Object] [2024-05-14 20:24:03.081] [warn] Language pack 'en_US' not installed! [2024-05-14 20:24:09.353] [warn] Showing error: [object Object] [2024-05-14 20:24:09.359] [warn] Showing error: [object Object] [2024-05-14 20:24:33.349] [warn] Showing error: [object Object] [2024-05-14 20:24:33.357] [warn] Showing error: [object Object] [2024-05-14 20:24:36.315] [warn] Language pack 'en_US' not installed! [2024-05-14 20:24:43.054] [error] Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'type') [2024-05-14 20:29:01.876] [error] Python path "/home/usrname/.config/jupyterlab-desktop/jlab_server/bin/python" does not exist. [2024-05-14 21:11:07.436] [error] Python path "/home/usrname/.config/jupyterlab-desktop/jlab_server/bin/python" does not exist. [2024-05-14 21:15:43.473] [warn] Language pack 'en_US' not installed! [2024-05-14 21:22:26.520] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:26.671] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:26.696] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:26.718] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:26.741] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:39.375] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:39.528] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:39.550] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:39.574] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:39.595] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.709] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.861] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.884] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.904] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.924] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:46.943] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:47.114] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:47.141] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.319] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.355] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.501] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.527] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.546] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:22:59.567] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.686] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.835] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.861] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.881] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.904] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:10.927] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:11.089] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:11.108] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:16.952] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:16.974] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:17.129] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:17.150] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:17.173] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:17.194] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:56.342] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:56.497] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:56.521] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:56.540] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:23:56.561] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:24:55.773] [warn] Skipping this shortcut because there are no actionable keys on this platform [object Object] [2024-05-14 21:43:44.280] [error] Python path "/home/usrname/.config/jupyterlab-desktop/jlab_server/bin/python" does not exist. [2024-05-14 21:43:49.768] [warn] Language pack 'en_US' not installed! [2024-05-14 21:43:51.340] [warn] task queue exceeded allotted deadline by 50ms
Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗
If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! 👋
Welcome to the Jupyter community! 🎉
Looks like an ABNT2 keyboard is used in Brazilian Portuguese. We had a number of issues concerning non-US keyboards that were covered by jupyterlab/jupyterlab#15744, which is fixed in JupyterLab 4.2.0.
Lab Desktop doesn't have an official 4.2.0-based release of its own, but using conda
, you may be able to upgrade to Lab 4.2.0. In any case, this behavior should be addressed by upgrading.