notebook icon indicating copy to clipboard operation
notebook copied to clipboard

Cannot type a # character into notebook using Firefox on macOS Sequoia

Open bartread opened this issue 1 month ago • 4 comments

Description

When I attempt to type a # character into a cell in any Jupyter notebook using the standard macOS OPTION-3 key combination instead of entering the character into the code or markdown instead the Jupyter sidebar is opened or closed and switched to the Table of Contents view.

Reproduce

Using a Mac running macOS Sequoia 15.7.2...

  1. Open Firefox (I'm using 144.0.2)
  2. Open a local Jupyter notebook: e.g., by entering its URL in the address bar (note that Jupyter Lab must also be running - if Firefox is your default browser you can simply start Jupyter Lab with jupyter lab from your terminal, and it should open in Firefox - from there you can open a notebook)
  3. Edit any cell in the notebook
  4. Attempt to enter a # character by pressing the OPTION-3 key combination
  5. Repeatedly press the OPTION-3 key combination to continue opening and closing the Jupyter sidebar

Expected behavior

What should happen when I press OPTION-3 is that a # character should be entered into the cell I'm editing.

Context

  • Operating System and version: macOs Sequoia 15.7.2
  • Browser and version: Firefox 144.0.2
  • Jupyter Notebook version: 4.4.10
Troubleshoot Output
 % jupyter troubleshoot
/Users/bart/Library/CloudStorage/Dropbox/jupyter/exabler/.venv/bin/python3: No module named pip
$PATH:
	/Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/bin
	/Users/xxxx/.local/bin
	/opt/homebrew/opt/ruby/bin
	/opt/homebrew/opt/libpq/bin
	/Users/xxxx/.nvm/versions/node/v18.20.2/bin
	/opt/local/bin
	/opt/local/sbin
	/opt/homebrew/bin
	/opt/homebrew/sbin
	/usr/local/bin
	/System/Cryptexes/App/usr/bin
	/usr/bin
	/bin
	/usr/sbin
	/sbin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
	/Library/Apple/usr/bin
	/Applications/iTerm.app/Contents/Resources/utilities

sys.path: /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/bin /Users/xxxx/.local/share/uv/python/cpython-3.14.0-macos-aarch64-none/lib/python314.zip /Users/xxxx/.local/share/uv/python/cpython-3.14.0-macos-aarch64-none/lib/python3.14 /Users/xxxx/.local/share/uv/python/cpython-3.14.0-macos-aarch64-none/lib/python3.14/lib-dynload /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/lib/python3.14/site-packages

sys.executable: /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/bin/python3

sys.version: 3.14.0 (main, Oct 28 2025, 12:03:45) [Clang 20.1.4 ]

platform.platform(): macOS-15.7.2-arm64-arm-64bit-Mach-O

which -a jupyter: /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/bin/jupyter

Command Line Output
% jupyter lab
[I 2025-11-08 16:17:09.306 ServerApp] jupyter_lsp | extension was successfully linked.
[I 2025-11-08 16:17:09.307 ServerApp] jupyter_server_terminals | extension was successfully linked.
[I 2025-11-08 16:17:09.309 ServerApp] jupyterlab | extension was successfully linked.
[I 2025-11-08 16:17:09.312 ServerApp] Writing Jupyter server cookie secret to /Users/xxxx/Library/Jupyter/runtime/jupyter_cookie_secret
[I 2025-11-08 16:17:09.941 ServerApp] notebook_shim | extension was successfully linked.
[I 2025-11-08 16:17:09.987 ServerApp] notebook_shim | extension was successfully loaded.
[I 2025-11-08 16:17:09.988 ServerApp] jupyter_lsp | extension was successfully loaded.
[I 2025-11-08 16:17:09.989 ServerApp] jupyter_server_terminals | extension was successfully loaded.
[I 2025-11-08 16:17:09.991 LabApp] JupyterLab extension loaded from /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/lib/python3.14/site-packages/jupyterlab
[I 2025-11-08 16:17:09.991 LabApp] JupyterLab application directory is /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx/.venv/share/jupyter/lab
[I 2025-11-08 16:17:09.991 LabApp] Extension Manager is 'pypi'.
[I 2025-11-08 16:17:10.045 ServerApp] jupyterlab | extension was successfully loaded.
[I 2025-11-08 16:17:10.046 ServerApp] Serving notebooks from local directory: /Users/xxxx/xxxx/xxxx/xxxx/xxxx/xxxx
[I 2025-11-08 16:17:10.046 ServerApp] Jupyter Server 2.17.0 is running at:
[I 2025-11-08 16:17:10.046 ServerApp] http://localhost:8888/lab?token=xxxx
[I 2025-11-08 16:17:10.046 ServerApp]     http://127.0.0.1:8888/lab?token=xxxx
[I 2025-11-08 16:17:10.046 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2025-11-08 16:17:10.052 ServerApp]
To access the server, open this file in a browser:
    file:/Users/xxxx/Library/Jupyter/runtime/jpserver-7400-open.html
Or copy and paste one of these URLs:
    http://localhost:8888/lab?token=xxxx
    http://127.0.0.1:8888/lab?token=xxxx

[I 2025-11-08 16:17:10.300 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server [W 2025-11-08 16:17:12.606 LabApp] Could not determine jupyterlab build status without nodejs [I 2025-11-08 16:17:19.790 ServerApp] Writing notebook-signing key to /Users/xxxx/Library/Jupyter/notebook_secret [W 2025-11-08 16:17:19.791 ServerApp] Notebook filing-data-synthesiser.ipynb is not trusted [I 2025-11-08 16:17:20.042 ServerApp] Kernel started: xxxx [I 2025-11-08 16:17:20.907 ServerApp] Connecting to kernel xxxx. [W 2025-11-08 16:17:20.907 ServerApp] The websocket_ping_timeout (90000) cannot be longer than the websocket_ping_interval (30000). Setting websocket_ping_timeout=30000 [I 2025-11-08 16:17:20.911 ServerApp] Connecting to kernel xxxx. [I 2025-11-08 16:17:20.914 ServerApp] Connecting to kernel xxxx. [I 2025-11-08 16:19:19.822 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 16:31:20.269 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 16:33:20.987 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:01:23.180 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:03:23.215 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:05:23.262 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:07:23.311 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:16:17.672 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:19:24.726 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:21:25.594 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:25:25.806 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:27:25.846 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:29:25.884 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:31:25.991 ServerApp] Saving file at /blah.ipynb [I 2025-11-08 17:33:26.614 ServerApp] Saving file at /blah.ipynb [I 2025-11-09 16:09:43.458 ServerApp] Saving file at /blah.ipynb [I 2025-11-09 16:09:44.612 ServerApp] Starting buffering for xxxx [I 2025-11-09 16:59:32.400 ServerApp] Kernel started: xxxx [I 2025-11-09 16:59:32.791 ServerApp] Connecting to kernel xxxx [I 2025-11-09 17:07:32.519 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:09:32.566 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:11:32.602 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:13:32.643 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:15:33.325 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:35:34.084 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:39:34.418 ServerApp] Saving file at /blah2.ipynb [I 2025-11-09 17:39:38.418 ServerApp] Saving file at /blah2.ipynb

Browser Output
Starting application in workspace: "default" [jlab_core.e595af6ce37775e8a915.js:1:9878](http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx)
Starting WebSocket: ws://localhost:8888/api/kernels/xxxx 3 [jlab_core.e595af6ce37775e8a915.js:1:1425379](http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx)
This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning; see https://firefox-source-docs.mozilla.org/performance/scroll-linked_effects.html for further details and to join the discussion on related tools and features! [blah.ipynb](http://localhost:8888/lab/tree/blah.ipynb)
Starting WebSocket: ws://localhost:8888/api/kernels/xxxx [jlab_core.e595af6ce37775e8a915.js:1:1425379](http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx)
Uncaught (in promise) TypeError: can't access property "highlightNext", i is undefined
    _stepNext http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    highlightNext http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    highlightNext http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    onHighlightNext http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    _onSearchKeydown http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    onKeydown http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    onKeyDown http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    onKeyDown http://localhost:8888/static/lab/jlab_core.e595af6ce37775e8a915.js?v=xxxx:1
    Ue http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    Qe http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    je http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    al http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    ul http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    dl http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    Os http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    De http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    dl http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    lt http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2
    tt http://localhost:8888/static/lab/961.29c067b15a524e556eed.js?v=xxxx:2

bartread avatar Nov 09 '25 18:11 bartread

Hi @bartread thank you for opening this issue! when using the Option + 3 sequence I see "£" printed, no sidebar is opened/closed, do you happen to have any shortcuts enabled for this key sequence? Also, typing Shift + 3 does indeed print the "#" character.

RRosio avatar Nov 11 '25 18:11 RRosio

Hi @bartread. Could you please give a comment from @RRosio above (https://github.com/jupyter/notebook/issues/7760#issuecomment-3518156723) a look?

andrii-i avatar Nov 18 '25 17:11 andrii-i

Sorry @RRosio @andrii-i - for some reason I didn't see the first notification but @andrii-i's post just popped up on my phone.

No, I don't have any shortcuts set up, but what you're describing sounds like we might be using different keyboard layouts, perhaps? I am using a UK keyboard layout on an early 2024 Macbook Pro purchased in the UK. On this keyboard:

  • SHIFT + 3 => £, and
  • OPTION + 3 (should) => #

And it's the latter that isn't working in Jupyter: I just get the sidebar with the file browser, etc., expanding and contracting.

bartread avatar Nov 18 '25 18:11 bartread

Thank you for sharing this information @bartread. There are some opened issues/prs that are related to this: https://github.com/jupyterlab/jupyterlab/issues/11986, and https://github.com/jupyterlab/lumino/pull/291.

RRosio avatar Nov 25 '25 18:11 RRosio