rise
rise copied to clipboard
Keyboard shortcut conflict for Escape
Description
When both in full-screen mode and edit mode, hitting esc is ambiguous: exit the full-screen or switch to command mode.
Reproduce
- Follow jupyterlab-rise's binder link
- Slides switches automatcailly to full-screen mode
- Press Enter or double clic on a cell to enter edit mode
- Hit Escape
- The slideshow exits full-screen mode
Expected behavior
Switch to command-mode
Discussion
The rationale is that Escape is used extensively when editing notebooks, and thus hardcoded in the users's fingers, whereas escaping full screen mode is done just now and then. One could still escape full screen mode by typing Escape a second time.
However this could be a standard shortcut of browsers; in that case it's annoying to break a convention. It could even be that browsers would not allow to change this shortcut.
Context
Python package version: jupyterlab-rise 0.1.1
Extension version:
jovyan@jupyter-jupyterlab-2dcontrib-2drise-2d3i1fpld4:~$ jupyter labextension list
JupyterLab v3.6.1
/srv/conda/envs/notebook/share/jupyter/labextensions
jupyter-offlinenotebook v0.2.2 enabled OK
jupyterlab_pygments v0.2.2 enabled OK (python, jupyterlab_pygments)
jupyterlab-rise v0.1.0 enabled OK (python, jupyterlab_rise)
@jupyter-widgets/jupyterlab-manager v5.0.5 enabled OK (python, jupyterlab_widgets)
@jupyter-server/resource-usage v0.7.0 enabled OK (python, jupyter-resource-usage)
jovyan@jupyter-jupyterlab-2dcontrib-2drise-2d3i1fpld4:~$ jupyter server extension list
Config dir: /home/jovyan/.jupyter
Config dir: /srv/conda/envs/notebook/etc/jupyter
jupyter_resource_usage enabled
- Validating jupyter_resource_usage...
jupyter_resource_usage 0.7.0 OK
jupyter_server_fileid enabled
- Validating jupyter_server_fileid...
jupyter_server_fileid 0.6.0 OK
jupyter_server_ydoc enabled
- Validating jupyter_server_ydoc...
jupyter_server_ydoc 0.6.1 OK
jupyterlab enabled
- Validating jupyterlab...
jupyterlab 3.6.1 OK
jupyterlab_rise enabled
- Validating jupyterlab_rise...
jupyterlab_rise 0.1.1 OK
nbclassic enabled
- Validating nbclassic...
nbclassic 0.5.1 OK
notebook_shim enabled
- Validating notebook_shim...
notebook_shim OK
jupyter_offlinenotebook enabled
- Validating jupyter_offlinenotebook...
jupyter_offlinenotebook OK
Config dir: /usr/local/etc/jupyter
- Operating System and its version: Ubuntu 22.04
- Browser and its version: Firefox 110 64 bits
Command Line Output
N/A
Web Browser Output
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/113.dd66397047ecb9a605cf.js?v=dd66397047ecb9a605cf [HTTP/2 304 Not Modified 111ms] GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/150.b0e841b75317744a7595.js?v=b0e841b75317744a7595 [HTTP/2 304 Not Modified 109ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/699.563670613eea7b633a22.js?v=563670613eea7b633a22 [HTTP/2 304 Not Modified 111ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-widgets/jupyterlab-manager/static/134.40eaa5b8e976096d50b2.js?v=40eaa5b8e976096d50b2 [HTTP/2 304 Not Modified 155ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-server/resource-usage/static/135.7cb9ac4aa0ab3f972930.js?v=7cb9ac4aa0ab3f972930 [HTTP/2 304 Not Modified 155ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/extensions/@jupyter-server/resource-usage/static/643.bb8b6dae69fd08b5d52f.js?v=bb8b6dae69fd08b5d52f [HTTP/2 304 Not Modified 151ms]
Error in parsing value for ‘content’. Declaration dropped. README.ipynb:1:174 Ruleset ignored due to bad selector. README.ipynb:1:1318 Error in parsing value for ‘display’. Declaration dropped. README.ipynb:1:2750 Unknown property ‘-moz-osx-font-smoothing’. Declaration dropped. README.ipynb:11:27 Unknown property ‘-moz-box-shadow’. Declaration dropped. README.ipynb:504:19 Activating jupyter-offlinenotebook JupyterLab extension 143.3a0a7be92ffa9c15c416.js:1:882 XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernelspecs?1676568670126 [HTTP/2 200 OK 111ms]
Plugin '@jupyter-server/resource-usage:memory-status-item' failed to activate. index.es6.js:2288:24 Error: No provider for: @jupyterlab/statusbar:IStatusBar. d index.es6.js:2191 u index.es6.js:52 u index.es6.js:33 u index.es6.js:26 u index.es6.js:22 resolveRequiredService index.es6.js:2184 n index.es6.js:2081 d index.es6.js:2081 u index.es6.js:52 u index.es6.js:33 u index.es6.js:26 u index.es6.js:22 activatePlugin index.es6.js:2065 r index.es6.js:2287 start index.es6.js:2286 60880 index.js:248 60880 index.js:251 Webpack 5 index.es6.js:2289:24 XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings?1676568670139 [HTTP/2 200 OK 258ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/offlinenotebook/config [HTTP/2 304 Not Modified 256ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels?1676568670148 [HTTP/2 200 OK 169ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/sessions?1676568670149 [HTTP/2 200 OK 169ms]
Certains cookies utilisent incorrectement l’attribut recommandé « SameSite » 37 XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernelspecs?1676568670266 [HTTP/2 200 OK 119ms]
offline-notebook repoid: https://github.com/jupyterlab-contrib/rise 143.3a0a7be92ffa9c15c416.js:1:1057 offline-notebook repoLabel: GitHub 143.3a0a7be92ffa9c15c416.js:1:1189 offline-notebook binderRefUrl: https://github.com/jupyterlab-contrib/rise/tree/ad010e6b7fde6eb1584b13a15ae647107cc016bb 143.3a0a7be92ffa9c15c416.js:1:1254 offline-notebook binderPersistentUrl: https://mybinder.org/v2/gh/jupyterlab-contrib/rise/ad010e6b7fde6eb1584b13a15ae647107cc016bb 143.3a0a7be92ffa9c15c416.js:1:1329 XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples?content=1&1676568671060 [HTTP/2 200 OK 124ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/translations/default?1676568671545 [HTTP/2 200 OK 182ms]
Language pack 'en_US' not installed! 7819.bundle.js:1:5795 JupyterLab extension jupyterlab-rise is activated! 112.489c482bbad3766cb6f2.js:1:4453 XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/shortcuts-extension:shortcuts?1676568671847 [HTTP/2 200 OK 365ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/docmanager-extension:plugin?1676568671849 [HTTP/2 200 OK 477ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/notebook-extension:panel?1676568671850 [HTTP/2 200 OK 362ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings?1676568672282 [HTTP/2 200 OK 353ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples/README.ipynb?type=notebook&content=1&1676568672317 [HTTP/2 200 OK 263ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/application-extension:context-menu?1676568672347 [HTTP/2 200 OK 266ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/shortcuts-extension:shortcuts?1676568672386 [HTTP/2 200 OK 252ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/mainmenu-extension:plugin?1676568672661 [HTTP/2 200 OK 121ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/htmlviewer-extension:plugin?1676568672663 [HTTP/2 200 OK 140ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/fileeditor-extension:plugin?1676568672667 [HTTP/2 200 OK 146ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/filebrowser-extension:widget?1676568672668 [HTTP/2 200 OK 118ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/csvviewer-extension:tsv?1676568672670 [HTTP/2 200 OK 545ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/csvviewer-extension:csv?1676568672672 [HTTP/2 200 OK 546ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/settings/@jupyterlab/cell-toolbar-extension:plugin?1676568672675 [HTTP/2 200 OK 541ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1?1676568672687 [HTTP/2 200 OK 545ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/rise/examples/static/components/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML-full,Safe&delayStartupUntil=configured [HTTP/2 200 OK 470ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/rise/examples/slide-toolbar.png GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/rise/examples/toolbar-options.png XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples/README.ipynb/checkpoints?1676568673195 [HTTP/2 200 OK 158ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples/README.ipynb/checkpoints?1676568673198 [HTTP/2 200 OK 159ms]
Convert notebook /examples/README.ipynb to slideshow. rise.js:88:28 Loading failed for the
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples/README.ipynb/checkpoints?1676568673331 [HTTP/2 200 OK 116ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/files/examples/slide-toolbar.png?_xsrf=2|4f4193ed|b454bb2275705657dfee494a88aa2d7e|1676562810&1676568673337 [HTTP/2 200 OK 176ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/files/examples/toolbar-options.png?_xsrf=2|4f4193ed|b454bb2275705657dfee494a88aa2d7e|1676562810&1676568673338 [HTTP/2 200 OK 280ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/9834b82ad26e2a37583d22676a12dd2eb0fe7c80356a2114d0db1aa8b3899537.woff2 [HTTP/2 200 OK 374ms]
GEThttps://fonts.googleapis.com/css?family=News+Cycle:400,700 [HTTP/2 200 OK 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/files/examples/rise.css [HTTP/2 200 OK 156ms]
GEThttps://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic [HTTP/2 200 OK 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/files/examples/README.css [HTTP/2 200 OK 145ms]
This page uses the non standard property “zoom”. Consider using calc() in the relevant property values, or using “transform” along with “transform-origin: 0 0”. README.ipynb GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/6097.bundle.js [HTTP/2 200 OK 176ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/sessions?1676568673665 [HTTP/2 200 OK 112ms]
GEThttps://fonts.gstatic.com/s/lato/v23/S6u8w4BMUTPHjxsAXC-q.woff2 [HTTP/2 200 OK 0ms]
Starting WebSocket: wss://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels/86fbd829-af64-4148-a2ed-af5d0621a561 3676.bundle.js:1:17619 GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/2148.bundle.js [HTTP/2 200 OK 140ms]
GETwss://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels/86fbd829-af64-4148-a2ed-af5d0621a561/channels?session_id=48945491-54de-473e-8700-b77e80c35306 [HTTP/1.1 101 Switching Protocols 1269ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernelspecs?1676568674104 [HTTP/2 200 OK 112ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1/kernel_usage/get_usage/86fbd829-af64-4148-a2ed-af5d0621a561?1676568674107 [HTTP/2 200 OK 131ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/3496.bundle.js [HTTP/2 200 OK 1006ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
Settings failed to load for (@jupyterlab/mainmenu-extension:plugin) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/mainmenu-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/htmlviewer-extension:plugin) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/htmlviewer-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/fileeditor-extension:plugin) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/fileeditor-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/filebrowser-extension:widget) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/filebrowser-extension:widget) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/cell-toolbar-extension:plugin) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/cell-toolbar-extension:plugin) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/csvviewer-extension:tsv) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/csvviewer-extension:tsv) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 Settings failed to load for (@jupyterlab/csvviewer-extension:csv) Array [ {…} ] 4030.bundle.js:1:3245 This may happen if {autoStart: false} in (@jupyterlab/csvviewer-extension:csv) or if it is one of the deferredExtensions in page config. settingsplugin.js:36:32 GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico [HTTP/2 200 OK 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/4987.bundle.js [HTTP/2 200 OK 122ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/img/sponge.png [HTTP/2 404 Not Found 136ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/img/boardmarker-black.png [HTTP/2 404 Not Found 140ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/img/chalk-white.png [HTTP/2 404 Not Found 202ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/rise/img/blackboard.png [HTTP/2 404 Not Found 220ms]
GEThttps://fonts.gstatic.com/s/lato/v23/S6uyw4BMUTPHjx4wXg.woff2 [HTTP/2 200 OK 0ms]
GEThttps://fonts.gstatic.com/s/newscycle/v22/CSR54z1Qlv-GDxkbKVQ_dFsvWNReuQ.woff2 [HTTP/3 200 OK 0ms]
Comm not found for comm id b754a419-0875-46ac-816c-5d8e70212052 jlab_core.3e11c5239452d671150c.js:2:1037513 Failed to fetch ipywidgets through the "jupyter.widget.control" comm channel, fallback to fetching individual model state. Reason: Control comm was closed too early 150.b0e841b75317744a7595.js:1:5783 GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico [HTTP/2 200 OK 0ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples?content=1&1676568676322 [HTTP/2 200 OK 120ms]
XHRPUThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/lab/api/workspaces/auto-h?1676568676853 [HTTP/2 204 No Content 110ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/sessions?1676568677601 [HTTP/2 200 OK 114ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels?1676568677657 [HTTP/2 200 OK 111ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/terminals?1676568677666 [HTTP/2 200 OK 112ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1?1676568678653 [HTTP/2 200 OK 114ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1/kernel_usage/get_usage/86fbd829-af64-4148-a2ed-af5d0621a561?1676568679460 [HTTP/2 200 OK 155ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico [HTTP/2 200 OK 0ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels?1676568680703 [HTTP/2 200 OK 114ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1?1676568683840 [HTTP/2 200 OK 125ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/sessions?1676568684101 [HTTP/2 200 OK 114ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1/kernel_usage/get_usage/86fbd829-af64-4148-a2ed-af5d0621a561?1676568684670 [HTTP/2 200 OK 165ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico [HTTP/2 200 OK 0ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/contents/examples?content=1&1676568686692 [HTTP/2 200 OK 122ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/sessions?1676568687751 [HTTP/2 200 OK 113ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/kernels?1676568687793 [HTTP/2 200 OK 114ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/terminals?1676568687842 [HTTP/2 200 OK 112ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1?1676568689041 [HTTP/2 200 OK 113ms]
XHRGEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/api/metrics/v1/kernel_usage/get_usage/86fbd829-af64-4148-a2ed-af5d0621a561?1676568689985 [HTTP/2 200 OK 130ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/favicons/favicon.ico [HTTP/2 301 Moved Permanently 0ms]
GEThttps://hub.gke2.mybinder.org/user/jupyterlab-contrib-rise-0aks8dw2/static/base/images/favicon.ico [HTTP/2 200 OK 0ms]
However this could be a standard shortcut of browsers; in that case it's annoying to break a convention. It could even be that browsers would not allow to change this shortcut.
It looks like a standard shortcut for browsers. I've been looking for a solution, and no one recommends intercepting the Escape key event to prevent the browser to exit the full screen. Nevertheless, it must be possible to implement because there are multiple web apps that do it, but I could not find the solution.
We advice users to make use of the alternative shortcut Ctrl+M to exit edit mode.
Thanks @hbcarlos and @fcollonval for investigating and for the workaround!
This remains rather annoying because Escape to exit edit mode is quite hard-wired in the fingers of notebook users, and discovering Ctrl-M is not obvious.