Skip to content
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

Keyboard shortcuts not working as intended for international keyboard layouts (i.e., ABNT2) #826

Closed
vinmir opened this issue May 15, 2024 · 2 comments

Comments

@vinmir
Copy link

vinmir commented May 15, 2024

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).

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.

binding_hotkey

Reproduce

  1. Use an ABNT2 keyboard;
  2. Open two tabs in JupyterLab Desktop
  3. Press the combination Ctrl-Shift-]
  4. 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/bin

sys.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-packages

sys.executable:
/home/usrname/anaconda3/bin/python

sys.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.31

which -a jupyter:
/home/usrname/anaconda3/bin/jupyter

pip 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
@vinmir vinmir added the bug label May 15, 2024
Copy link

welcome bot commented May 15, 2024

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.
welcome
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! 🎉

@JasonWeill
Copy link

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants