id = "jupyter" name = "Jupyter" homepage = "https://jupyter.org" description = "Free software, open standards, and web services for interactive computing across all programming languages." icon = "SimpleIcons:jupyter" executables = ["jupyter", "jupyter-lab", "jupyter-notebook"] [dotfiles] # https://docs.jupyter.org/en/latest/use/jupyter-directories.html — the config # directory is JUPYTER_CONFIG_DIR, "~/.jupyter" by default on Linux, macOS and # Windows alike. It holds jupyter_server_config.py/.json, the older # jupyter_notebook_config.py/.json, and JupyterLab's user settings # (https://jupyterlab.readthedocs.io/en/stable/user/directories.html: # "$HOME/.jupyter/lab/user-settings/"). # # The data and runtime directories are elsewhere and are not config: # ~/.local/share/jupyter, ~/Library/Application Support/Jupyter and # %APPDATA%/jupyter hold installed kernels and files of running servers. paths = ["~/.jupyter/"] # Same JupyterLab page: the workspaces directory keeps "the files that are # currently open, the layout of the application areas and tabs" — session state # the app rewrites as the user drags panels around. exclude = [ "~/.jupyter/lab/workspaces/", ] # No whole file here is a credential: the config files are mostly server # options, and only the password hash comes out of them. secret = [] # `jupyter server password` writes the hash into jupyter_server_config.json; # the notebook-era command wrote it into jupyter_notebook_config.json under the # name that release used (notebook/auth/security.py: # config.NotebookApp.password = hashed_password). Both shapes are listed # because a machine can still be carrying the old file. [[dotfiles.secret_paths]] file = "~/.jupyter/jupyter_server_config.json" match = { key_path = ["ServerApp.password"] } [[dotfiles.secret_paths]] file = "~/.jupyter/jupyter_notebook_config.json" match = { key_path = ["NotebookApp.password"] } # The same hash, when the user sets it by hand in the Python config instead of # letting `jupyter server password` write the JSON. [[dotfiles.secret_paths]] file = "~/.jupyter/jupyter_server_config.py" match = { prefix = ["c.ServerApp.password"] } [[dotfiles.secret_paths]] file = "~/.jupyter/jupyter_notebook_config.py" match = { prefix = ["c.NotebookApp.password"] } # The directory the server serves is an absolute path into this machine's disk; # the notebook-era name for the same setting was notebook_dir. The user picked # that directory and will want it back when rebuilding this machine, so it is # kept as this device's own value rather than dropped or handed to another box. [[dotfiles.machine_lines]] file = "~/.jupyter/jupyter_server_config.py" match = { prefix = ["c.ServerApp.root_dir"] } scope = "backup" [[dotfiles.machine_lines]] file = "~/.jupyter/jupyter_notebook_config.py" match = { prefix = ["c.NotebookApp.notebook_dir"] } scope = "backup"