diff --git a/.gitignore b/.gitignore index de2fb28..b8ea170 100755 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,8 @@ tmux/.config/tmux/plugins/* vim/.vim/plugged/* vim/.vim/undodir/* -jupyter/.ipython -jupyter/.jupyter +jupyter/.ipython/* +jupyter/.jupyter/* conda/.conda/* diff --git a/bash/.bash_profile b/bash/.bash_profile index 63b6fba..cd18f97 100755 --- a/bash/.bash_profile +++ b/bash/.bash_profile @@ -1,101 +1,60 @@ -# Set XDG_CONFIG_HOME if not already set -if [[ -z "$XDG_CONFIG_HOME" ]]; then - export XDG_CONFIG_HOME="$HOME/.config" +# Ensure XDG_CONFIG_HOME is set +: "${XDG_CONFIG_HOME:=$HOME/.config}" + +# Set default pager +export PAGER="less -i -N -S -R" + +# Ensure PYENV_ROOT is set and its bin directory is in PATH +if [ -n "$PYENV_ROOT" ] && [[ ! "$PATH" =~ (^|:)${PYENV_ROOT}/bin(:|$) ]]; then + export PATH="$PYENV_ROOT/bin:$PATH" fi - -export PAGER="less" - -# Set editor based on SSH connection -if [[ -n $SSH_CONNECTION ]]; then - export EDITOR='vim' -else - export EDITOR='nvim' -fi - -# Set PYENV_ROOT and add pyenv to PATH -export PYENV_ROOT="$HOME/.pyenv" -export PATH="$PYENV_ROOT/bin:$PATH" -eval "$(pyenv init --path)" +eval "$(pyenv init -)" # Add ~/.local/bin to PATH if it exists -if [ -d "$HOME/.local/bin" ]; then - PATH="$HOME/.local/bin:$PATH" +if [ -d "$HOME/.local/bin" ] && [[ ! "$PATH" =~ (^|:)${HOME}/.local/bin(:|$) ]]; then + export PATH="$HOME/.local/bin:$PATH" fi + +# Set permissions for ~/.local/bin chmod -R ug+rwx "$HOME/.local/bin/" -# Source fzf theme if it exists -if [ -f fzf_theme ]; then - source fzf_theme > /dev/null 2>&1 +# Read fzf theme options if the file exists +if [ -f "$HOME/.local/bin/scripts/fzf_theme" ]; then + FZF_OPTIONS=$("$HOME/.local/bin/scripts/fzf_theme") + export FZF_DEFAULT_OPTS="$FZF_OPTIONS" fi +# Source fzf configuration +source <(fzf --bash) + # Add RVM to PATH -export PATH="$PATH:$HOME/.rvm/bin" - -# Add Golang to PATH -export GOPATH="$HOME/Documents/projects:$HOME/go" -export PATH="$PATH:$(go env GOPATH)/bin" - -# Function to activate Python virtual environment if found -activate_python_env() { - local env_dir - # Use fd (if available) to find activate script - if command -v fd &> /dev/null; then - env_dir=$(fd -H -I -t f -d 3 'activate$' | xargs dirname) - else - # Fallback to find command - env_dir=$(find . -type f -name activate -exec dirname {} \;) - fi - if [ -n "$env_dir" ]; then - source "$env_dir/activate" - else - echo "No Python virtual environment found in the current directory or its subdirectories." - fi -} -alias act='activate_python_env' - -# Aliases -alias python="python3" -alias vim="nvim" -alias tn="tmux new -s $(basename "$(pwd)")" -alias cat="bat --paging=never" -alias grep="grep --color=auto" -alias ll="ls -alF" - -alias cp='cp -i' - -# Basic `ls` replacement with `eza`, grouping directories first -alias ls='eza --group-directories-first --color=auto' - -# List all files, including hidden ones, in long format with grouped directories -alias la='eza -la --group-directories-first --color=auto' - -# List files in long format with grouped directories -alias ll='eza -l --group-directories-first --color=auto' - -# List files sorted by modification time, newest first, in long format with grouped directories -alias lt='eza -lt --sort newest' - -# List files sorted by size, largest first, in long format with grouped directories -alias lS='eza -lS --group-directories-first --color=auto' - -# Display directory tree with a depth limit of 3 levels -alias tree='eza --tree --level=3' - -# Display git status alongside files -alias lg='eza --git' - -# Set bat to highlight --help messages -alias bathelp='bat --plain --language=help' -help() { - "$@" --help 2>&1 | bathelp -} - -# Overwrite -h and --help with bat highlights -alias -g -- -h='-h 2>&1 | bat --language=help --style=plain' -alias -g -- --help='--help 2>&1 | bat --language=help --style=plain' - -# Initialize zoxide -if command -v zoxide &> /dev/null; then - eval "$(zoxide init bash)" +if [[ ! "$PATH" =~ (^|:)${HOME}/.rvm/bin(:|$) ]]; then + export PATH="$PATH:$HOME/.rvm/bin" fi +# Add Golang to PATH +if [ -n "$(go env GOPATH)" ] && [[ ! "$PATH" =~ (^|:)$(go env GOPATH)/bin(:|$) ]]; then + export GOPATH="$HOME/Documents/projects:$HOME/go" + export PATH="$PATH:$(go env GOPATH)/bin" +fi + +# Cargo setup +if [ -d "$HOME/.cargo/bin" ] && [[ ! "$PATH" =~ (^|:)${HOME}/.cargo/bin(:|$) ]]; then + export PATH="$HOME/.cargo/bin:$PATH" +fi + +# >>> conda initialize >>> +# !! Contents within this block are managed by 'conda init' !! +__conda_setup="$('/usr/local/Caskroom/miniforge/base/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" +if [ $? -eq 0 ]; then + eval "$__conda_setup" +else + if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" ]; then + . "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" + else + export PATH="/usr/local/Caskroom/miniforge/base/bin:$PATH" + fi +fi +unset __conda_setup +# <<< conda initialize <<< + diff --git a/bash/.bashrc b/bash/.bashrc index 9cd2279..97d77f1 100755 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -1,48 +1,105 @@ -# Add custom paths to $PATH -export PATH="$HOME/.local/bin:$PATH" +# Function to clean up and normalize paths +path_print_clean() { + local var=${1:-PATH} + local arr + local newarr=() + local path + local p -# Homebrew Configuration -# Add Homebrew's installation directory to the PATH -if [[ -d /opt/homebrew ]]; then - export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH" -elif [[ -d /usr/local ]]; then - export PATH="/usr/local/bin:/usr/local/sbin:$PATH" + # Read PATH into an array + IFS=: read -r -a arr <<< "${!var}:" + + # Declare an associative array to keep track of seen paths + declare -A seen + + for p in "${arr[@]}"; do + # Empty element is equivalent to CWD (weird, I know), remove it + if [[ -z $p ]]; then + continue + fi + + # Remove any relative paths + if [[ ${p:0:1} != '/' ]]; then + continue + fi + + # Normalize path and ensure we can access it + path=$(cd "$p" &>/dev/null && pwd) + + # Path doesn't exist or we can't access it + if [[ -z $path ]]; then + continue + fi + + # Filter out dups while we are here + if [[ -n ${seen[$path]} ]]; then + continue + fi + seen[$path]=true + + # Store the new path + newarr+=("$path") + done + + local IFS=: + echo "${newarr[*]}" +} + +# Function to clean up the PATH variable +path_clean() { + local path + path=$(path_print_clean) || return 1 + # Use eval to correctly assign the cleaned path to the PATH variable + export PATH="$path" +} + +# Auto-update and other bash settings +DISABLE_UPDATE_PROMPT=true + +# Miscellaneous configurations +# Uncomment to use case-sensitive completion +# CASE_SENSITIVE="true" + +# Uncomment to use hyphen-insensitive completion +# HYPHEN_INSENSITIVE="true" + +# Load bash completion +if [[ -f /etc/bash_completion ]]; then + . /etc/bash_completion fi -# Source user-specific profile -if [ -f ~/.bash_profile ]; then - . ~/.bash_profile -fi +# Custom aliases +alias python="python3" +alias v="nvim" +alias cat="bat --paging=never" +alias grep="grep --color=auto" +alias ls='eza --group-directories-first --color=auto' +alias la='eza -la --group-directories-first --color=auto' +alias ll='eza -l --group-directories-first --color=auto' +alias lt='eza -lt modified --sort newest' +alias lS='eza -lS --group-directories-first --color=auto' +alias tree='eza --tree --level=3' +alias lg='eza --git' +alias bathelp='bat --plain --language=help' +help() { + "$@" --help 2>&1 | bathelp +} -# >>> conda initialize >>> -# !! Contents within this block are managed by 'conda init' !! -__conda_setup="$('/usr/local/Caskroom/miniforge/base/bin/conda' 'shell.bash' 'hook' 2> /dev/null)" -if [ $? -eq 0 ]; then - eval "$__conda_setup" -else - if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" ]; then - . "/usr/local/Caskroom/miniforge/base/etc/profile.d/conda.sh" - else - export PATH="/usr/local/Caskroom/miniforge/base/bin:$PATH" - fi -fi -unset __conda_setup +# Custom Apt udpate and upgrade +alias update='sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade' -if [ -f "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh" ]; then - . "/usr/local/Caskroom/miniforge/base/etc/profile.d/mamba.sh" -fi -# <<< conda initialize <<< +# Overwriting -h and --help with bat highlights +alias -g :h='-h 2>&1 | bat --language=help --style=plain' +alias -g :help='--help 2>&1 | bat --language=help --style=plain' -# Customize prompt (example prompt) -PS1='\u@\h:\w\$ ' +# Set the default editor +export EDITOR='nvim' -# Load FZF -if [ -f ~/.fzf.bash ]; then - source ~/.fzf.bash -fi +# Add eza completions to FPATH +[[ ! "$FPATH" =~ (^|:)${HOME}/.local/bin/eza/completions/bash(:|$) ]] && export FPATH="$HOME/.local/bin/eza/completions/bash:$FPATH" -# Additional configuration for visual enhancements (optional) -if command -v starship &> /dev/null; then - eval "$(starship init bash)" -fi +# Initialize zoxide (replace with bash equivalent if necessary) +eval "$(zoxide init bash)" + +path_clean diff --git a/bash/.fzf.bash b/bash/.fzf.bash new file mode 100755 index 0000000..dea23e8 --- /dev/null +++ b/bash/.fzf.bash @@ -0,0 +1,13 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then + PATH="${PATH:+${PATH}:}/usr/local/opt/fzf/bin" +fi + +# Auto-completion +# --------------- +source "/usr/local/opt/fzf/shell/completion.bash" + +# Key bindings +# ------------ +source "/usr/local/opt/fzf/shell/key-bindings.bash" diff --git a/conda/.conda/environments.txt b/conda/.conda/environments.txt deleted file mode 100755 index 93da1e3..0000000 --- a/conda/.conda/environments.txt +++ /dev/null @@ -1,3 +0,0 @@ -/Users/jfraeys/.conda -/usr/local/Caskroom/miniforge/base -/usr/local/Caskroom/miniforge/base/envs/soft-skills-env diff --git a/conda/.condarc b/conda/.condarc index 18641c5..dbdcc0f 100755 --- a/conda/.condarc +++ b/conda/.condarc @@ -1,3 +1,5 @@ channels: - conda-forge auto_activate_base: false +changeps1: false + diff --git a/jupyter/.ipython/profile_default/db/dhist b/jupyter/.ipython/profile_default/db/dhist deleted file mode 100755 index 12cf523..0000000 Binary files a/jupyter/.ipython/profile_default/db/dhist and /dev/null differ diff --git a/jupyter/.ipython/profile_default/history.sqlite b/jupyter/.ipython/profile_default/history.sqlite deleted file mode 100755 index d2eda86..0000000 Binary files a/jupyter/.ipython/profile_default/history.sqlite and /dev/null differ diff --git a/jupyter/.ipython/profile_default/startup/README b/jupyter/.ipython/profile_default/startup/README deleted file mode 100755 index 61d4700..0000000 --- a/jupyter/.ipython/profile_default/startup/README +++ /dev/null @@ -1,11 +0,0 @@ -This is the IPython startup directory - -.py and .ipy files in this directory will be run *prior* to any code or files specified -via the exec_lines or exec_files configurables whenever you load this profile. - -Files will be run in lexicographical order, so you can control the execution order of files -with a prefix, e.g.:: - - 00-first.py - 50-middle.py - 99-last.ipy diff --git a/jupyter/.jupyter/custom/custom.css b/jupyter/.jupyter/custom/custom.css deleted file mode 100644 index 76f7336..0000000 --- a/jupyter/.jupyter/custom/custom.css +++ /dev/null @@ -1,10 +0,0 @@ -/*This file contains any manual css for this page that needs to override the global styles. -This is only required when different pages style the same element differently. This is just -a hack to deal with our current css styles and no new styling should be added in this file.*/ - -#ipython-main-app { - position: relative; -} -#jupyter-main-app { - position: relative; -} diff --git a/jupyter/.jupyter/custom/custom.js b/jupyter/.jupyter/custom/custom.js deleted file mode 100644 index 05aa9ae..0000000 --- a/jupyter/.jupyter/custom/custom.js +++ /dev/null @@ -1,82 +0,0 @@ -// leave at least 2 line with only a star on it below, or doc generation fails -/** - * - * - * Placeholder for custom user javascript - * mainly to be overridden in profile/static/custom/custom.js - * This will always be an empty file in IPython - * - * User could add any javascript in the `profile/static/custom/custom.js` file. - * It will be executed by the ipython notebook at load time. - * - * Same thing with `profile/static/custom/custom.css` to inject custom css into the notebook. - * - * - * The object available at load time depend on the version of IPython in use. - * there is no guaranties of API stability. - * - * The example below explain the principle, and might not be valid. - * - * Instances are created after the loading of this file and might need to be accessed using events: - * define([ - * 'base/js/namespace', - * 'base/js/events' - * ], function(IPython, events) { - * events.on("app_initialized.NotebookApp", function () { - * IPython.keyboard_manager.... - * }); - * }); - * - * __Example 1:__ - * - * Create a custom button in toolbar that execute `%qtconsole` in kernel - * and hence open a qtconsole attached to the same kernel as the current notebook - * - * define([ - * 'base/js/namespace', - * 'base/js/events' - * ], function(IPython, events) { - * events.on('app_initialized.NotebookApp', function(){ - * IPython.toolbar.add_buttons_group([ - * { - * 'label' : 'run qtconsole', - * 'icon' : 'icon-terminal', // select your icon from http://fortawesome.github.io/Font-Awesome/icons - * 'callback': function () { - * IPython.notebook.kernel.execute('%qtconsole') - * } - * } - * // add more button here if needed. - * ]); - * }); - * }); - * - * __Example 2:__ - * - * At the completion of the dashboard loading, load an unofficial javascript extension - * that is installed in profile/static/custom/ - * - * define([ - * 'base/js/events' - * ], function(events) { - * events.on('app_initialized.DashboardApp', function(){ - * require(['custom/unofficial_extension.js']) - * }); - * }); - * - * __Example 3:__ - * - * Use `jQuery.getScript(url [, success(script, textStatus, jqXHR)] );` - * to load custom script into the notebook. - * - * // to load the metadata ui extension example. - * $.getScript('/static/notebook/js/celltoolbarpresets/example.js'); - * // or - * // to load the metadata ui extension to control slideshow mode / reveal js for nbconvert - * $.getScript('/static/notebook/js/celltoolbarpresets/slideshow.js'); - * - * - * @module IPython - * @namespace IPython - * @class customjs - * @static - */ diff --git a/jupyter/.jupyter/jupyter_nbconvert_config.json b/jupyter/.jupyter/jupyter_nbconvert_config.json deleted file mode 100644 index 225f784..0000000 --- a/jupyter/.jupyter/jupyter_nbconvert_config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": 1, - "Exporter": { - "extra_template_paths": [ - ".", - "/usr/local/Caskroom/miniforge/base/envs/ml-nlp-env/lib/python3.11/site-packages/jupyter_contrib_nbextensions/templates" - ], - "preprocessors": [ - "jupyter_contrib_nbextensions.nbconvert_support.CodeFoldingPreprocessor", - "jupyter_contrib_nbextensions.nbconvert_support.PyMarkdownPreprocessor" - ] - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/jupyter_notebook_config.json b/jupyter/.jupyter/jupyter_notebook_config.json deleted file mode 100644 index 8f7385c..0000000 --- a/jupyter/.jupyter/jupyter_notebook_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "NotebookApp": { - "nbserver_extensions": { - "jupyter_nbextensions_configurator": true - } - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@axlair/jupyterlab_vim/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@axlair/jupyterlab_vim/plugin.jupyterlab-settings deleted file mode 100644 index 76a6f2e..0000000 --- a/jupyter/.jupyter/lab/user-settings/@axlair/jupyterlab_vim/plugin.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - // Notebook Vim - // @axlair/jupyterlab_vim:plugin - // Notebook Vim Settings - // ***************************** - - // Enabled - // Enable/disable vim extension (may require a page refresh) - "enabled": false -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/application-extension/top-bar.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/application-extension/top-bar.jupyterlab-settings deleted file mode 100755 index 94b7e07..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/application-extension/top-bar.jupyterlab-settings +++ /dev/null @@ -1,11 +0,0 @@ -{ - "toolbar": [ - { - "name": "spacer", - "command": "", - "disabled": false, - "type": "spacer", - "rank": 50 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings deleted file mode 100755 index 1cf5d98..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/notification.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - // Notifications - // @jupyterlab/apputils-extension:notification - // Notifications settings. - // ******************************************* - - // Fetch official Jupyter news - // Whether to fetch news from Jupyter news feed. If `true`, it will make a request to a website. - "fetchNews": "false" -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings deleted file mode 100755 index c6f9ca2..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings +++ /dev/null @@ -1,14 +0,0 @@ -{ - // Theme - // @jupyterlab/apputils-extension:themes - // Theme manager settings. - // ************************************* - - // Selected Theme - // Application-level visual styling theme - "theme": "JupyterLab Dark", - - // Scrollbar Theming - // Enable/disable styling of the application scrollbars - "theme-scrollbars": true -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings deleted file mode 100755 index 039a2fe..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/cell-toolbar-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,41 +0,0 @@ -{ - "toolbar": [ - { - "name": "duplicate-cell", - "command": "notebook:duplicate-below", - "disabled": false, - "rank": 50 - }, - { - "name": "move-cell-up", - "command": "notebook:move-cell-up", - "disabled": false, - "rank": 50 - }, - { - "name": "move-cell-down", - "command": "notebook:move-cell-down", - "disabled": false, - "rank": 50 - }, - { - "name": "insert-cell-above", - "command": "notebook:insert-cell-above", - "disabled": false, - "rank": 50 - }, - { - "name": "insert-cell-below", - "command": "notebook:insert-cell-below", - "disabled": false, - "rank": 50 - }, - { - "name": "delete-cell", - "command": "notebook:delete-cell", - "disabled": false, - "icon": "ui-components:delete", - "rank": 50 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings deleted file mode 100644 index be98128..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings +++ /dev/null @@ -1,11 +0,0 @@ -{ - // CodeMirror - // @jupyterlab/codemirror-extension:commands - // Text editor settings for all CodeMirror editors. - // ************************************************ - - // Theme - // CSS file defining the corresponding - // .cm-s-[name] styles is loaded - "theme": "jupyter" -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/completer-extension/manager.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/completer-extension/manager.jupyterlab-settings deleted file mode 100755 index 2fb3566..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/completer-extension/manager.jupyterlab-settings +++ /dev/null @@ -1,9 +0,0 @@ -{ - "providerTimeout": 1000, - "showDocumentationPanel": false, - "autoCompletion": false, - "availableProviders": { - "CompletionProvider:context": 500, - "CompletionProvider:kernel": 550 - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/console-extension/tracker.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/console-extension/tracker.jupyterlab-settings deleted file mode 100755 index 8b90201..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/console-extension/tracker.jupyterlab-settings +++ /dev/null @@ -1,14 +0,0 @@ -{ - // Code Console - // @jupyterlab/console-extension:tracker - // Code Console settings. - // ************************************* - - // Prompt Cell Configuration - // The configuration for all prompt cells; it will override the CodeMirror default configuration. - "promptCellConfig": { - "codeFolding": false, - "lineNumbers": false, - "autoClosingBrackets": false - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/csv.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/csv.jupyterlab-settings deleted file mode 100755 index 2f5f78c..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/csv.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - "toolbar": [ - { - "name": "delimiter", - "command": "", - "disabled": false, - "rank": 10 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/tsv.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/tsv.jupyterlab-settings deleted file mode 100755 index 2f5f78c..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/csvviewer-extension/tsv.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - "toolbar": [ - { - "name": "delimiter", - "command": "", - "disabled": false, - "rank": 10 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings deleted file mode 100755 index 3237742..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - // Extension Manager - // @jupyterlab/extensionmanager-extension:plugin - // Extension manager settings. - // ********************************************* - - // Disclaimed Status - // Whether the user agrees the access to external web services and understands extensions may introduce security risks or contain malicious code that runs on his machine. - "disclaimed": true -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings deleted file mode 100755 index 3d40236..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/filebrowser-extension/widget.jupyterlab-settings +++ /dev/null @@ -1,34 +0,0 @@ -{ - "toolbar": [ - { - "name": "new-launcher", - "command": "launcher:create", - "disabled": false, - "rank": 1 - }, - { - "name": "new-directory", - "command": "filebrowser:create-new-directory", - "disabled": false, - "rank": 10 - }, - { - "name": "uploader", - "command": "", - "disabled": false, - "rank": 20 - }, - { - "name": "refresh", - "command": "filebrowser:refresh", - "disabled": false, - "rank": 30 - }, - { - "name": "fileNameSearcher", - "command": "", - "disabled": false, - "rank": 40 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings deleted file mode 100755 index 1743a0c..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/fileeditor-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Text Editor - // @jupyterlab/fileeditor-extension:plugin - // Text editor settings. - // *************************************** - - // Editor Configuration - // The configuration for all text editors; it will override the CodeMirror default configuration. - // If `fontFamily`, `fontSize` or `lineHeight` are `null`, - // values from current theme are used. - "editorConfig": { - "lineNumbers": true, - "autoClosingBrackets": false, - "theme": "jupyter" - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/htmlviewer-extension/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/htmlviewer-extension/plugin.jupyterlab-settings deleted file mode 100755 index d8202a6..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/htmlviewer-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,17 +0,0 @@ -{ - "toolbar": [ - { - "name": "refresh", - "command": "", - "disabled": false, - "rank": 10 - }, - { - "name": "trust", - "command": "", - "disabled": false, - "rank": 20 - } - ], - "trustByDefault": false -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings deleted file mode 100755 index 3155991..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/panel.jupyterlab-settings +++ /dev/null @@ -1,90 +0,0 @@ -{ - "toolbar": [ - { - "name": "save", - "command": "", - "disabled": false, - "rank": 10 - }, - { - "name": "insert", - "command": "notebook:insert-cell-below", - "disabled": false, - "icon": "ui-components:add", - "rank": 20 - }, - { - "name": "cut", - "command": "notebook:cut-cell", - "disabled": false, - "rank": 21 - }, - { - "name": "copy", - "command": "notebook:copy-cell", - "disabled": false, - "rank": 22 - }, - { - "name": "paste", - "command": "notebook:paste-cell-below", - "disabled": false, - "rank": 23 - }, - { - "name": "run", - "command": "notebook:run-cell-and-select-next", - "disabled": false, - "rank": 30 - }, - { - "name": "interrupt", - "command": "notebook:interrupt-kernel", - "disabled": false, - "rank": 31 - }, - { - "name": "restart", - "command": "notebook:restart-kernel", - "disabled": false, - "rank": 32 - }, - { - "name": "restart-and-run", - "command": "notebook:restart-run-all", - "disabled": false, - "rank": 33 - }, - { - "name": "cellType", - "command": "", - "disabled": false, - "rank": 40 - }, - { - "name": "spacer", - "command": "", - "disabled": false, - "type": "spacer", - "rank": 100 - }, - { - "name": "interfaceSwitcher", - "command": "", - "disabled": false, - "rank": 990 - }, - { - "name": "kernelName", - "command": "", - "disabled": false, - "rank": 1000 - }, - { - "name": "executionProgress", - "command": "", - "disabled": false, - "rank": 1002 - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings deleted file mode 100755 index f47c9f4..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.jupyterlab-settings +++ /dev/null @@ -1,100 +0,0 @@ -{ - // Notebook - // @jupyterlab/notebook-extension:tracker - // Notebook settings. - // ************************************** - - // Automatically Start Preferred Kernel - // Whether to automatically start the preferred kernel. - "autoStartDefaultKernel": true, - - // Code Cell Configuration - // The configuration for all code cells; it will override the CodeMirror default configuration. - "codeCellConfig": { - "lineNumbers": false, - "lineWrap": false - }, - - // Default cell type - // The default type (markdown, code, or raw) for new cells - "defaultCell": "code", - - // Enable undo/redo actions at the notebook document level. - // Enables the undo/redo actions at the notebook document level; aka undoing within a cell may undo the latest notebook change that happen in another cell. This is deprecated and will be removed in 5.0.0. - "documentWideUndoRedo": false, - - // Input History Scope - // Whether the line history for standard input (e.g. the ipdb prompt) should kept separately for different kernel sessions (`session`) or combined (`global`). - "inputHistoryScope": "global", - - // Shut down kernel - // Whether to shut down or not the kernel when closing a notebook. - "kernelShutdown": false, - - // Kernel status icon configuration - // Defines the position and components of execution progress indicator. - "kernelStatus": { - "showOnStatusBar": false, - "showProgress": true - }, - - // Markdown Cell Configuration - // The configuration for all markdown cells; it will override the CodeMirror default configuration. - "markdownCellConfig": { - "lineNumbers": false, - "matchBrackets": false, - "autoClosingBrackets": false - }, - - // The maximum number of output cells to be rendered in the output area. - // Defines the maximum number of output cells to be rendered in the output area for cells with many outputs. The output area will have a head and the remaining outputs will be trimmed and not displayed unless the user clicks on the information message. Set to 0 to have the complete display. - "maxNumberOutputs": 50, - - // Number of cells to render outside de the viewport - // In 'full' windowing mode, this is the number of cells above and below the viewport. - "overscanCount": 1, - - // Raw Cell Configuration - // The configuration for all raw cells; it will override the CodeMirror default configuration. - "rawCellConfig": { - "lineNumbers": false, - "matchBrackets": false, - "autoClosingBrackets": false - }, - - // Recording timing - // Should timing data be recorded in cell metadata - "recordTiming": false, - - // Rendering Layout - // Global setting to define the rendering layout in notebooks. 'default' or 'side-by-side' are supported. - "renderingLayout": "default", - - // Scroll past last cell - // Whether to be able to scroll so the last cell is at the top of the panel - "scrollPastEnd": true, - - // Show editor for read-only Markdown cells - // Should an editor be shown for read-only markdown - "showEditorForReadOnlyMarkdown": true, - - // Show hidden cells button if collapsed - // If set to true, a button is shown below collapsed headings, indicating how many cells are hidden beneath the collapsed heading. - "showHiddenCellsButton": true, - - // Side-by-side left margin override - // Side-by-side left margin override. - "sideBySideLeftMarginOverride": "10px", - - // Side-by-side output ratio - // For the side-by-side rendering, the side-by-side output ratio defines the width of the output vs the input. Set 1 for same size, > 1 for larger output, < 1 for smaller output. - "sideBySideOutputRatio": 1, - - // Side-by-side right margin override - // Side-by-side right margin override. - "sideBySideRightMarginOverride": "10px", - - // Windowing mode - // 'defer': Improve loading time - Wait for idle CPU cycles to attach out of viewport cells - 'full': Best performance with side effects - Attach to the DOM only cells in viewport - 'none': Worst performance without side effects - Attach all cells to the viewport - "windowingMode": "defer" -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings deleted file mode 100755 index ce7bfdc..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings +++ /dev/null @@ -1,983 +0,0 @@ -{ - "shortcuts": [ - { - "command": "application:activate-next-tab", - "keys": [ - "Ctrl Shift ]" - ], - "selector": "body", - "args": {} - }, - { - "command": "application:activate-next-tab-bar", - "keys": [ - "Ctrl Shift ." - ], - "selector": "body", - "args": {} - }, - { - "command": "application:activate-previous-tab", - "keys": [ - "Ctrl Shift [" - ], - "selector": "body", - "args": {} - }, - { - "command": "application:activate-previous-tab-bar", - "keys": [ - "Ctrl Shift ," - ], - "selector": "body", - "args": {} - }, - { - "command": "application:close", - "keys": [ - "Alt W" - ], - "selector": ".jp-Activity", - "args": {} - }, - { - "command": "application:toggle-left-area", - "keys": [ - "Accel B" - ], - "selector": "body", - "args": {} - }, - { - "command": "application:toggle-mode", - "keys": [ - "Accel Shift D" - ], - "selector": "body", - "args": {} - }, - { - "command": "apputils:activate-command-palette", - "keys": [ - "Accel Shift C" - ], - "selector": "body", - "args": {} - }, - { - "command": "apputils:display-shortcuts", - "keys": [ - "Accel Shift H" - ], - "selector": "body", - "args": {} - }, - { - "command": "apputils:print", - "keys": [ - "Accel P" - ], - "selector": "body", - "args": {} - }, - { - "command": "completer:invoke-console", - "keys": [ - "Tab" - ], - "selector": ".jp-CodeConsole-promptCell .jp-mod-completer-enabled", - "args": {} - }, - { - "command": "completer:invoke-file", - "keys": [ - "Tab" - ], - "selector": ".jp-FileEditor .jp-mod-completer-enabled", - "args": {} - }, - { - "command": "completer:invoke-notebook", - "keys": [ - "Tab" - ], - "selector": ".jp-Notebook.jp-mod-editMode .jp-mod-completer-enabled", - "args": {} - }, - { - "command": "console:linebreak", - "keys": [ - "Enter" - ], - "selector": ".jp-CodeConsole[data-jp-interaction-mode='notebook'] .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "console:linebreak", - "keys": [ - "Accel Enter" - ], - "selector": ".jp-CodeConsole[data-jp-interaction-mode='terminal'] .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "console:run-forced", - "keys": [ - "Shift Enter" - ], - "selector": ".jp-CodeConsole[data-jp-interaction-mode='notebook'] .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "console:run-forced", - "keys": [ - "Shift Enter" - ], - "selector": ".jp-CodeConsole[data-jp-interaction-mode='terminal'] .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "console:run-unforced", - "keys": [ - "Enter" - ], - "selector": ".jp-CodeConsole[data-jp-interaction-mode='terminal'] .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "debugger:continue", - "keys": [ - "F9" - ], - "selector": "body", - "args": {} - }, - { - "command": "debugger:next", - "keys": [ - "F10" - ], - "selector": "body", - "args": {} - }, - { - "command": "debugger:show-panel", - "keys": [ - "Accel Shift E" - ], - "selector": "body", - "args": {} - }, - { - "command": "debugger:stepIn", - "keys": [ - "F11" - ], - "selector": "body", - "args": {} - }, - { - "command": "debugger:stepOut", - "keys": [ - "Shift F11" - ], - "selector": "body", - "args": {} - }, - { - "command": "debugger:terminate", - "keys": [ - "Shift F9" - ], - "selector": "body", - "args": {} - }, - { - "command": "docmanager:save", - "keys": [ - "Accel S" - ], - "selector": "body", - "args": {} - }, - { - "command": "docmanager:save-as", - "keys": [ - "Accel Shift S" - ], - "selector": "body", - "args": {} - }, - { - "command": "documentsearch:end", - "keys": [ - "Escape" - ], - "selector": ".jp-mod-searchable", - "args": {} - }, - { - "command": "documentsearch:highlightNext", - "keys": [ - "Accel G" - ], - "selector": ".jp-mod-searchable", - "args": {} - }, - { - "command": "documentsearch:highlightPrevious", - "keys": [ - "Accel Shift G" - ], - "selector": ".jp-mod-searchable", - "args": {} - }, - { - "command": "documentsearch:start", - "keys": [ - "Accel F" - ], - "selector": ".jp-mod-searchable", - "args": {} - }, - { - "command": "editmenu:redo", - "keys": [ - "Accel Shift Z" - ], - "selector": "[data-jp-undoer]", - "args": {} - }, - { - "command": "editmenu:undo", - "keys": [ - "Accel Z" - ], - "selector": "[data-jp-undoer]", - "args": {} - }, - { - "command": "extensionmanager:show-panel", - "keys": [ - "Accel Shift X" - ], - "selector": "body", - "args": {} - }, - { - "command": "filebrowser:copy", - "keys": [ - "Accel C" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:cut", - "keys": [ - "Accel X" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:delete", - "keys": [ - "Delete" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:duplicate", - "keys": [ - "Accel D" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:go-up", - "keys": [ - "Backspace" - ], - "selector": ".jp-DirListing:focus", - "args": {} - }, - { - "command": "filebrowser:go-up", - "keys": [ - "Backspace" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:paste", - "keys": [ - "Accel V" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:rename", - "keys": [ - "F2" - ], - "selector": ".jp-DirListing-content .jp-DirListing-itemText", - "args": {} - }, - { - "command": "filebrowser:toggle-main", - "keys": [ - "Accel Shift F" - ], - "selector": "body", - "args": {} - }, - { - "command": "filemenu:close-and-cleanup", - "keys": [ - "Ctrl Shift Q" - ], - "selector": ".jp-Activity", - "args": {} - }, - { - "command": "imageviewer:flip-horizontal", - "keys": [ - "H" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:flip-vertical", - "keys": [ - "V" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:invert-colors", - "keys": [ - "I" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:reset-image", - "keys": [ - "0" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:rotate-clockwise", - "keys": [ - "]" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:rotate-counterclockwise", - "keys": [ - "[" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:zoom-in", - "keys": [ - "=" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "imageviewer:zoom-out", - "keys": [ - "-" - ], - "selector": ".jp-ImageViewer", - "args": {} - }, - { - "command": "inspector:close", - "keys": [ - "Accel I" - ], - "selector": "body[data-jp-inspector='open']", - "args": {} - }, - { - "command": "inspector:open", - "keys": [ - "Accel I" - ], - "selector": "body", - "args": {} - }, - { - "command": "kernelmenu:interrupt", - "keys": [ - "I", - "I" - ], - "selector": "[data-jp-kernel-user]:focus", - "args": {} - }, - { - "command": "kernelmenu:restart", - "keys": [ - "0", - "0" - ], - "selector": "[data-jp-kernel-user]:focus", - "args": {} - }, - { - "command": "launcher:create", - "keys": [ - "Accel Shift L" - ], - "selector": "body", - "args": {} - }, - { - "command": "notebook:change-cell-to-code", - "keys": [ - "Y" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-1", - "keys": [ - "1" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-2", - "keys": [ - "2" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-3", - "keys": [ - "3" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-4", - "keys": [ - "4" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-5", - "keys": [ - "5" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-heading-6", - "keys": [ - "6" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-markdown", - "keys": [ - "M" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:change-cell-to-raw", - "keys": [ - "R" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:collapse-all-headings", - "keys": [ - "Ctrl Shift ArrowLeft" - ], - "selector": ".jp-Notebook.jp-mod-commandMode", - "args": {} - }, - { - "command": "notebook:copy-cell", - "keys": [ - "C" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:cut-cell", - "keys": [ - "X" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:delete-cell", - "keys": [ - "D", - "D" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:enter-command-mode", - "keys": [ - "Escape" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:enter-command-mode", - "keys": [ - "Ctrl M" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:enter-edit-mode", - "keys": [ - "Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:expand-all-headings", - "keys": [ - "Ctrl Shift ArrowRight" - ], - "selector": ".jp-Notebook.jp-mod-commandMode", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-above", - "keys": [ - "Shift ArrowUp" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-above", - "keys": [ - "Shift K" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-below", - "keys": [ - "Shift ArrowDown" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-below", - "keys": [ - "Shift J" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-bottom", - "keys": [ - "Shift End" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:extend-marked-cells-top", - "keys": [ - "Shift Home" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:insert-cell-above", - "keys": [ - "A" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:insert-cell-below", - "keys": [ - "B" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:insert-heading-above", - "keys": [ - "Shift A" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:insert-heading-below", - "keys": [ - "Shift B" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:merge-cell-above", - "keys": [ - "Ctrl Backspace" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:merge-cell-below", - "keys": [ - "Ctrl Shift M" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:merge-cells", - "keys": [ - "Shift M" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:move-cell-down", - "keys": [ - "Ctrl Shift ArrowDown" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:move-cell-up", - "keys": [ - "Ctrl Shift ArrowUp" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:move-cursor-down", - "keys": [ - "ArrowDown" - ], - "selector": "[data-jp-traversable]:focus", - "args": {} - }, - { - "command": "notebook:move-cursor-down", - "keys": [ - "J" - ], - "selector": "[data-jp-traversable]:focus", - "args": {} - }, - { - "command": "notebook:move-cursor-heading-above-or-collapse", - "keys": [ - "ArrowLeft" - ], - "selector": ".jp-Notebook:focus.jp-mod-commandMode", - "args": {} - }, - { - "command": "notebook:move-cursor-heading-below-or-expand", - "keys": [ - "ArrowRight" - ], - "selector": ".jp-Notebook:focus.jp-mod-commandMode", - "args": {} - }, - { - "command": "notebook:move-cursor-up", - "keys": [ - "ArrowUp" - ], - "selector": "[data-jp-traversable]:focus", - "args": {} - }, - { - "command": "notebook:move-cursor-up", - "keys": [ - "K" - ], - "selector": "[data-jp-traversable]:focus", - "args": {} - }, - { - "command": "notebook:paste-cell-below", - "keys": [ - "V" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:redo-cell-action", - "keys": [ - "Shift Z" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:run-cell", - "keys": [], - "macKeys": [ - "Ctrl Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:run-cell", - "keys": [], - "macKeys": [ - "Ctrl Enter" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:run-cell", - "keys": [ - "Accel Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:run-cell", - "keys": [ - "Accel Enter" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:run-cell-and-insert-below", - "keys": [ - "Alt Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:run-cell-and-insert-below", - "keys": [ - "Alt Enter" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:run-cell-and-select-next", - "keys": [ - "Shift Enter" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:select-all", - "keys": [ - "Accel A" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:toggle-render-side-by-side-current", - "keys": [ - "Shift R" - ], - "macKeys": [ - "Ctrl Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "notebook:undo-cell-action", - "keys": [ - "Z" - ], - "macKeys": [ - "Ctrl Enter" - ], - "selector": ".jp-Notebook:focus", - "args": {} - }, - { - "command": "property-inspector:show-panel", - "keys": [ - "Accel Shift U" - ], - "selector": "body", - "args": {} - }, - { - "command": "runmenu:run", - "keys": [ - "Shift Enter" - ], - "selector": "[data-jp-code-runner]", - "args": {} - }, - { - "command": "running:show-panel", - "keys": [ - "Accel Shift B" - ], - "selector": "body", - "args": {} - }, - { - "command": "settingeditor:open", - "keys": [ - "Accel ," - ], - "selector": "body", - "args": {} - }, - { - "command": "settingeditor:save", - "keys": [ - "Accel S" - ], - "selector": ".jp-SettingEditor", - "args": {} - }, - { - "command": "tabsmenu:activate-previously-used-tab", - "keys": [ - "Accel Shift '" - ], - "selector": "body", - "args": {} - }, - { - "command": "toc:show-panel", - "keys": [ - "Accel Shift K" - ], - "selector": "body", - "args": {} - }, - { - "command": "tooltip:dismiss", - "keys": [ - "Escape" - ], - "selector": "body.jp-mod-tooltip .jp-Notebook", - "args": {} - }, - { - "command": "tooltip:dismiss", - "keys": [ - "Escape" - ], - "selector": "body.jp-mod-tooltip .jp-CodeConsole-promptCell", - "args": {} - }, - { - "command": "tooltip:launch-console", - "keys": [ - "Shift Tab" - ], - "selector": ".jp-CodeConsole-promptCell .jp-InputArea-editor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace)", - "args": {} - }, - { - "command": "tooltip:launch-file", - "keys": [ - "Shift Tab" - ], - "selector": ".jp-FileEditor .jp-CodeMirrorEditor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace)", - "args": {} - }, - { - "command": "tooltip:launch-notebook", - "keys": [ - "Shift Tab" - ], - "selector": ".jp-Notebook.jp-mod-editMode .jp-InputArea-editor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace):not(.jp-mod-completer-active)", - "args": {} - }, - { - "command": "viewmenu:line-numbering", - "keys": [ - "Shift L" - ], - "selector": ".jp-Notebook.jp-mod-commandMode", - "args": {} - }, - { - "command": "notebook:split-cell-at-cursor", - "keys": [ - "Ctrl Shift -" - ], - "selector": ".jp-Notebook.jp-mod-editMode", - "args": {} - }, - { - "command": "notebook:toggle-all-cell-line-numbers", - "keys": [ - "Shift L" - ], - "selector": ".jp-Notebook:focus", - "args": {} - } - ] -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/user-settings/@jupyterlab/terminal-extension/plugin.jupyterlab-settings b/jupyter/.jupyter/lab/user-settings/@jupyterlab/terminal-extension/plugin.jupyterlab-settings deleted file mode 100755 index efda57b..0000000 --- a/jupyter/.jupyter/lab/user-settings/@jupyterlab/terminal-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,8 +0,0 @@ -{ - // Terminal - // @jupyterlab/terminal-extension:plugin - // Terminal settings. - // ************************************* - - -} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace deleted file mode 100644 index 6fdb564..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-0-1753.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]}},"metadata":{"id":"auto-0"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-1-4161.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-1-4161.jupyterlab-workspace deleted file mode 100644 index 79101ee..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-1-4161.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/exploration_soft_skills.ipynb","notebook:notebooks/exploration_coop_postings.ipynb","notebook:notebooks/tf_idf_programs.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0,1,0],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_soft_skills.ipynb":{"data":{"path":"notebooks/exploration_soft_skills.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_coop_postings.ipynb":{"data":{"path":"notebooks/exploration_coop_postings.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-1"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-2-c813.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-2-c813.jupyterlab-workspace deleted file mode 100644 index e244579..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-2-c813.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":3,"widgets":["notebook:notebooks/figures_tf_idf_programe_name.ipynb","notebook:notebooks/tf_idf_timeline.ipynb","notebook:notebooks/tf_idf_programs.ipynb","notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/exploration_coop_postings.ipynb","notebook:notebooks/exploration_soft_skills.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22236718127129082,0.7776328187287092,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/exploration_coop_postings.ipynb":{"data":{"path":"notebooks/exploration_coop_postings.ipynb","factory":"Notebook"}},"notebook:notebooks/exploration_soft_skills.ipynb":{"data":{"path":"notebooks/exploration_soft_skills.ipynb","factory":"Notebook"}},"notebook:notebooks/figures_tf_idf_programe_name.ipynb":{"data":{"path":"notebooks/figures_tf_idf_programe_name.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-2"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-3-a57e.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-3-a57e.jupyterlab-workspace deleted file mode 100644 index 2b9db75..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-3-a57e.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":2,"widgets":["notebook:notebooks/Untitled.ipynb","notebook:notebooks/figures_tf_idf_programe_name.ipynb","notebook:notebooks/figures_tf_idf_years.ipynb"]},"current":"notebook:notebooks/figures_tf_idf_years.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"@jupyterlab/toc:plugin","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.2664543524416136,0.7335456475583864,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/Untitled.ipynb":{"data":{"path":"notebooks/Untitled.ipynb","factory":"Notebook"}},"notebook:notebooks/figures_tf_idf_programe_name.ipynb":{"data":{"path":"notebooks/figures_tf_idf_programe_name.ipynb","factory":"Notebook"}},"notebook:notebooks/figures_tf_idf_years.ipynb":{"data":{"path":"notebooks/figures_tf_idf_years.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-3"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-4-b5a0.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-4-b5a0.jupyterlab-workspace deleted file mode 100644 index 4f7af37..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-4-b5a0.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-4"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-9-46a0.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-9-46a0.jupyterlab-workspace deleted file mode 100755 index d811b8d..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-9-46a0.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":3,"widgets":["notebook:notebooks/figures_tf_idf_years.ipynb","notebook:notebooks/tf_idf_programs.ipynb","notebook:notebooks/tf_idf_timeline.ipynb"]},"current":"notebook:notebooks/tf_idf_timeline.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.07622228970543578,0.9237777102945642,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/figures_tf_idf_years.ipynb":{"data":{"path":"notebooks/figures_tf_idf_years.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-9"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-a-ce05.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-a-ce05.jupyterlab-workspace deleted file mode 100644 index 515c568..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-a-ce05.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-a"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-m-6bf5.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-m-6bf5.jupyterlab-workspace deleted file mode 100644 index 5f66fee..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-m-6bf5.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb","notebook:notebooks/tf_idf_timeline.ipynb","notebook:notebooks/tf_idf_programs.ipynb"]},"current":"notebook:notebooks/tf_idf_timeline.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22236718127129082,0.7776328187287092,0]},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_timeline.ipynb":{"data":{"path":"notebooks/tf_idf_timeline.ipynb","factory":"Notebook"}},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-m"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-n-0faf.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-n-0faf.jupyterlab-workspace deleted file mode 100644 index 60fa549..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-n-0faf.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.3424283765347885,0.6575716234652115,0],"top":{"simpleVisibility":true}}},"metadata":{"id":"auto-N"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-q-99a9.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-q-99a9.jupyterlab-workspace deleted file mode 100755 index 208f65a..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-q-99a9.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/tf_idf_programs.ipynb"]},"current":"notebook:notebooks/tf_idf_programs.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"extensionmanager.main-view","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.07622228970543578,0.9237777102945642,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/tf_idf_programs.ipynb":{"data":{"path":"notebooks/tf_idf_programs.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-q"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-t-11cd.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-t-11cd.jupyterlab-workspace deleted file mode 100644 index 4d84f29..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-t-11cd.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":1,"widgets":["notebook:notebooks/count_tf_df_analysis.ipynb"]},"current":"notebook:notebooks/count_tf_df_analysis.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/count_tf_df_analysis.ipynb":{"data":{"path":"notebooks/count_tf_df_analysis.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-t"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-v-64f5.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-v-64f5.jupyterlab-workspace deleted file mode 100755 index 0fdf2a5..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-v-64f5.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:notebooks/figures_tf_idf_years.ipynb"]},"current":"notebook:notebooks/figures_tf_idf_years.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.15561066336019838,0.8443893366398016,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/figures_tf_idf_years.ipynb":{"data":{"path":"notebooks/figures_tf_idf_years.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-V"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-w-19b7.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-w-19b7.jupyterlab-workspace deleted file mode 100755 index c57b979..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-w-19b7.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:notebooks/figures_tf_idf_years.ipynb"]},"current":"notebook:notebooks/figures_tf_idf_years.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":false,"visible":true,"current":"debugger-sidebar","widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.07624544349939247,0.8475091130012151,0.07624544349939247],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":"notebooks"},"notebook:notebooks/figures_tf_idf_years.ipynb":{"data":{"path":"notebooks/figures_tf_idf_years.ipynb","factory":"Notebook"}}},"metadata":{"id":"auto-W"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-w-47cd.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-w-47cd.jupyterlab-workspace deleted file mode 100644 index 27efa89..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-w-47cd.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"]},"right":{"collapsed":true,"widgets":["jp-property-inspector","debugger-sidebar"]},"relativeSizes":[0.22233718457205265,0.7776628154279474,0]}},"metadata":{"id":"auto-w"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/auto-z-813a.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/auto-z-813a.jupyterlab-workspace deleted file mode 100644 index 92fd86b..0000000 --- a/jupyter/.jupyter/lab/workspaces/auto-z-813a.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":[]}},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.1298499741334713,0.8701500258665287,0],"top":{"simpleVisibility":true}}},"metadata":{"id":"auto-z"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace deleted file mode 100755 index 55ef22d..0000000 --- a/jupyter/.jupyter/lab/workspaces/default-37a8.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:Untitled.ipynb"]},"current":"notebook:Untitled.ipynb"},"down":{"size":0,"widgets":[]},"left":{"collapsed":false,"visible":true,"current":"filebrowser","widgets":["filebrowser","running-sessions","@jupyterlab/toc:plugin","extensionmanager.main-view"],"widgetStates":{"jp-running-sessions":{"sizes":[0.25,0.25,0.25,0.25],"expansionStates":[false,false,false,false]},"extensionmanager.main-view":{"sizes":[0.3333333333333333,0.3333333333333333,0.3333333333333333],"expansionStates":[false,false,false]}}},"right":{"collapsed":true,"visible":true,"widgets":["jp-property-inspector","debugger-sidebar"],"widgetStates":{"jp-debugger-sidebar":{"sizes":[0.2,0.2,0.2,0.2,0.2],"expansionStates":[false,false,false,false,false]}}},"relativeSizes":[0.25397835773392746,0.7460216422660726,0],"top":{"simpleVisibility":true}},"file-browser-filebrowser:cwd":{"path":""},"notebook:Untitled.ipynb":{"data":{"path":"Untitled.ipynb","factory":"Notebook"}}},"metadata":{"id":"default"}} \ No newline at end of file diff --git a/jupyter/.jupyter/lab/workspaces/lab-a511.jupyterlab-workspace b/jupyter/.jupyter/lab/workspaces/lab-a511.jupyterlab-workspace deleted file mode 100755 index 1468017..0000000 --- a/jupyter/.jupyter/lab/workspaces/lab-a511.jupyterlab-workspace +++ /dev/null @@ -1 +0,0 @@ -{"data":{"layout-restorer:data":{"main":{"dock":{"type":"tab-area","currentIndex":0,"widgets":["notebook:Untitled.ipynb"]},"mode":"multiple-document","current":"notebook:Untitled.ipynb"},"left":{"collapsed":false,"current":"running-sessions","widgets":["filebrowser","running-sessions","command-palette","tab-manager"]},"right":{"collapsed":true,"widgets":[]}},"notebook:Untitled.ipynb":{"data":{"path":"Untitled.ipynb","factory":"Notebook"}}},"metadata":{"id":"/lab"}} \ No newline at end of file diff --git a/jupyter/.jupyter/migrated b/jupyter/.jupyter/migrated deleted file mode 100755 index acdb03f..0000000 --- a/jupyter/.jupyter/migrated +++ /dev/null @@ -1 +0,0 @@ -2019-06-19T05:20:03.181486 \ No newline at end of file diff --git a/jupyter/.jupyter/nbconfig/notebook.json b/jupyter/.jupyter/nbconfig/notebook.json deleted file mode 100755 index 1940d52..0000000 --- a/jupyter/.jupyter/nbconfig/notebook.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "load_extensions": { - "nbextensions_configurator/config_menu/main": true, - "hinterland/hinterland": true, - "jupyter_tabnine/main": true, - "jupyter-js-widgets/extension": true, - "contrib_nbextensions_help_item/main": true - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/nbconfig/tree.json b/jupyter/.jupyter/nbconfig/tree.json deleted file mode 100755 index 7a2dee1..0000000 --- a/jupyter/.jupyter/nbconfig/tree.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "load_extensions": { - "nbextensions_configurator/tree_tab/main": true - } -} \ No newline at end of file diff --git a/jupyter/.jupyter/serverconfig/jupyterlabapputilsextensionannouncements.json b/jupyter/.jupyter/serverconfig/jupyterlabapputilsextensionannouncements.json deleted file mode 100755 index 9b61a93..0000000 --- a/jupyter/.jupyter/serverconfig/jupyterlabapputilsextensionannouncements.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "0fb1f2828eeeae418602193a4d04d5ccd121dc74": { - "seen": true - }, - "d564445e21a7603ceaf5b28e4e981ac33d23905b": { - "seen": true - }, - "e90082157ab36fe43a156f798be33af1f0101d8a": { - "seen": true - }, - "608d7f891761d97403a2faf16de02aff3dda2895": { - "seen": true - }, - "6c7c5d359b52a7ce16f1e251efb0e609a9c4e9ef": { - "seen": true - }, - "a8587a7634f266c21a3498ad4b619099dab155d4": { - "seen": true - }, - "5122698b39c2ff9417deb80bd329aee257a51be0": { - "seen": true - }, - "b9d150ecb5e02a8359329ac6f34bfa41d1209f9e": { - "seen": true - }, - "c8e6c57a45295d2f0982437c629c8ea5408700b7": { - "seen": true - } -} \ No newline at end of file diff --git a/setup.sh b/setup.sh index 369e20a..65768c4 100755 --- a/setup.sh +++ b/setup.sh @@ -12,17 +12,16 @@ git submodule update # What directories should be installable by all users including the root user base=( - zsh vim nvim # tmux - fzf git wezterm ) # Folders that should, or only need to be installed for a local user on macOS useronly_macos=( + zsh yabai skhd oh-my-zsh @@ -42,9 +41,12 @@ useronly=( gh jupyter parallel - sk + # sk tox firefox + direnv + starship + # p10k ) # Files to ignore during stow @@ -69,12 +71,12 @@ stowit() { } # Function to check if the OS is macOS -is_macos() { - [[ "$(uname)" == "Darwin" ]] -} - -is_linux() { - [[ "$(uname)" == "Linux" ]] +get_os() { + case "$(uname)" in + Darwin) echo "macos";; + Linux) echo "linux";; + *) echo "unknown";; + esac } # Function to automate firefox profile updater with expect @@ -108,22 +110,25 @@ for app in "${base[@]}"; do stowit "${HOME}" "${app}" done -# Setup useronly_macos folders only for macOS -if is_macos; then - for app in "${useronly_macos[@]}"; do - if [ "$(id -u)" -ne 0 ]; then - stowit "${HOME}" "${app}" - fi - done -fi - -if is_linux; then - for app in "${useronly_linux[@]}"; do - if [ "$(id -u)" -ne 0 ]; then - stowit "${HOME}" "${app}" - fi - done -fi +case get_os in + "macos") + for app in "${useronly_macos[@]}"; do + if [ "$(id -u)" -ne 0 ]; then + stowit "${HOME}" "${app}" + fi + done + ;; + "linux") + for app in "${useronly_linux[@]}"; do + if [ "$(id -u)" -ne 0 ]; then + stowit "${HOME}" "${app}" + fi + done + ;; + "unknown") + echo "Unknown OS." + ;; +esac # Setup useronly folders for app in "${useronly[@]}"; do diff --git a/starship/.config/starship.toml b/starship/.config/starship.toml index cef5f42..f923694 100644 --- a/starship/.config/starship.toml +++ b/starship/.config/starship.toml @@ -10,8 +10,17 @@ format = """\ $directory\ $git_branch\ $git_status\ - $container\ + $git_metrics\ + $docker_context\ $conda\ + $golang\ + $lua\ + $rust\ + $c\ + $python\ + $package\ + $line_break\ + $jobs\ $character\ """ @@ -21,17 +30,17 @@ right_format = """\ # Git branch configuration [git_branch] -format = "[$branch(:$remote_branch)]($style)" +format = "[ $branch(:$remote_branch)]($style)" style = "bold red" # Git status configuration [git_status] -format = '[$all_status]($style)' +format = '[ $all_status]($style)' style = "bold green" # Git metric configuration [git_metrics] -format = '([$added]($added_style) )([$deleted]($deleted_style))' +format = '([ $added]($added_style))([ $deleted]($deleted_style))' added_style = "green" deleted_style = "red" disabled = false @@ -43,61 +52,76 @@ error_symbol = "[ ✗](bold red)" # Directory [directory] +format = "[$path]($style)[$read_only]($read_only_style)" style = "bright-cyan" truncation_length = 3 -truncation_symbol = "…/" +truncation_symbol = "~/…/" [line_break] disabled = true [jobs] -symbol = '+ ' +format = '[ $symbol$count]($style)' number_threshold = 4 -symbol_threshold = 0 [cmd_duration] format = "[$duration]($style)" style = "yellow" -# Package version -[package] -style = "purple" - # Container [container] -format = '[$name]' +format = '[ $symbol \[$name\]]($style)' style = "orange" +# Docker +[docker_context] +format = '[ $symbol$container]($style)' +style = "blue" + +# C +[c] +format = "[ $symbol($version(-$name) )]($style)" +style = "bold 149" +detect_files = ["Makefile"] + # Conda [conda] -format = "[$environment]" +format = "[ $environment]($style)" style = "green" # Python [python] -pyenv_version_name = true -format = "[$version]($style)" +format = "[ ${symbol}(${version})(\\($virtualenv\\) )]($style)" +# pyenv_version_name = true style = "blue" +detect_files = ["Pipfile", "pyproject.toml", "poetry.lock", "requirements.txt"] # Golang [golang] -format = "[$version]($style)" +format = "[ $symbol($version)($mod_version)]($style)" style = "blue" # Rust [rust] -format = "[$version]($style)" +format = "[ $symbol$version]($style)" style = "purple" # Lua [lua] -format = "[$version]($style)" +format = "[ $symbol$version]($style)" style = "purple" +# Package +[package] +format = "[ $symbol$version]($style)" +style = "208 bold" + # Directory substitutions [directory.substitutions] "Documents/projects" = "proj" ".config" = "config" +".dotfiles" = "dot" +".local" = "local" # Monokai Pro palette [palettes.monokai_pro] diff --git a/vim/.vim/.netrwhist b/vim/.vim/.netrwhist index 031fd69..4d7e55e 100755 --- a/vim/.vim/.netrwhist +++ b/vim/.vim/.netrwhist @@ -1,5 +1,7 @@ let g:netrw_dirhistmax =10 -let g:netrw_dirhistcnt =9 +let g:netrw_dirhistcnt =1 +let g:netrw_dirhist_1='/Users/jfraeys/.local/bin/scripts' +let g:netrw_dirhist_0='/Users/jfraeys' let g:netrw_dirhist_9='/Users/jfraeys/.dotfiles/nvim/.config/nvim/lua/custom/plugins' let g:netrw_dirhist_8='/Users/jfraeys/.dotfiles/nvim/.config/nvim/lua/custom/snippets' let g:netrw_dirhist_7='/Users/jfraeys/.dotfiles/nvim/.config/nvim/lua/custom' @@ -8,4 +10,3 @@ let g:netrw_dirhist_5='/Users/jfraeys/Documents/projects/job-req/resume-recomm/j let g:netrw_dirhist_4='/Users/jfraeys/Documents/projects/job-req/resume-recomm' let g:netrw_dirhist_3='/Users/jfraeys/Documents/projects/job-req/resume-recomm/job_req_resume_recomm' let g:netrw_dirhist_2='/Users/jeremiefraeys/.ssh' -let g:netrw_dirhist_1='/Users/jeremiefraeys/.oh-my-zsh' diff --git a/wezterm/.config/wezterm/meeting-notifier.lua b/wezterm/.config/wezterm/meeting-notifier.lua index b49e65f..2d2b05a 100644 --- a/wezterm/.config/wezterm/meeting-notifier.lua +++ b/wezterm/.config/wezterm/meeting-notifier.lua @@ -1,4 +1,6 @@ local wezterm = require("wezterm") + +-- return table containing the meeting information local M = {} M.alert_popup_before_seconds = 15 @@ -10,6 +12,9 @@ M.nerd_font_meeting = "󰤙" M.ical_buddy = "/usr/local/bin/icalBuddy" M.ignored_cal = "Birthdays, Family, Contacts, School, Home, Canadian Holidays, Canadiens, Jours fériés au Canada" +-- Execute a shell command and return the output +-- @param command: The shell command to execute +-- @return string: The output of the shell command local function execute_command(command) local f = io.popen(command) if f == nil then @@ -20,15 +25,21 @@ local function execute_command(command) return result end +-- Check if iCalBuddy is installed +-- @return boolean: True if iCalBuddy is installed, false otherwise local function check_ical_buddy() local result = execute_command("test -f " .. M.ical_buddy) - if result == "" then + if result ~= "" then + return true + else wezterm.log_error("Error: iCalBuddy is not installed") return false end - return true end +-- Get the next meeting command +-- @param event_filter: The event filter to use with iCalBuddy +-- @return string: The iCalBuddy command to get the next meeting information local function get_meeting_command(event_filter) return string.format( '%s --includeEventProps "title,datetime,attendees" --propertyOrder "title,datetime" --noCalendarNames --dateFormat "%%A" --includeOnlyEventsFromNowOn --limitItems 1 --excludeAllDayEvents --separateByDate --excludeCals "%s" %s', @@ -38,6 +49,8 @@ local function get_meeting_command(event_filter) ) end +-- Get the next meeting from iCalBuddy +-- @return string: The next meeting information local function get_next_meeting() local command = get_meeting_command("eventsToday") local next_meeting = execute_command(command) @@ -47,6 +60,9 @@ local function get_next_meeting() return next_meeting end +-- Parse the iCalBuddy output +-- @param ical_output: The output from iCalBuddy +-- @return table: A table containing the meeting information such as title, start time, end time, and attendees list local function parse_result(ical_output) local title, start_time, end_time, attendees for line in ical_output:gmatch("[^\r\n]+") do @@ -58,17 +74,20 @@ local function parse_result(ical_output) attendees = line:gsub("attendees: ", ""):gsub("^%s*(.-)%s*$", "%1") end end - title = ical_output:match("[^\r\n]+") + title = ical_output:match("[^\r\n]+") -- Assumes the first line is the title return { title = title, start_time = start_time, end_time = end_time, attendees = attendees } end +-- Calculate the time until the next meeting +-- @param start_time: The start time of the meeting in HH:MM format +-- @return table: A table containing the minutes until the meeting and the epoch difference local function calculate_times(start_time) if not start_time then - return nil + return { minutes_till_meeting = -1, epoch_diff = 0 } end local current_date = os.date("*t") - local epoc_meeting = os.time({ + local epoch_meeting = os.time({ year = current_date.year, month = current_date.month, day = current_date.day, @@ -76,14 +95,24 @@ local function calculate_times(start_time) min = tonumber(start_time:sub(4, 5)), sec = 0, }) - local epoc_now = os.time() - local epoc_diff = epoc_meeting - epoc_now - local minutes_till_meeting = math.floor(epoc_diff / 60) + local epoch_now = os.time() + local epoch_diff = epoch_meeting - epoch_now + local minutes_till_meeting = math.floor(epoch_diff / 60) - return { minutes_till_meeting = minutes_till_meeting, epoc_diff = epoc_diff } + return { minutes_till_meeting = minutes_till_meeting, epoch_diff = epoch_diff } end -local function display_popup(meeting) +-- Display a system notification with the meeting information +-- @param title: The title of the notification +-- @param message: The message of the notification +local function send_notification(title, message) + local command = string.format('notify-send "%s" "%s"', title, message) + os.execute(command) +end + +-- Open a new tab with the meeting information +-- @param meeting: The meeting object containing the meeting information +local function open_meeting_tab(meeting) local meeting_info = string.format( "Title: %s\nStart Time: %s\nEnd Time: %s\nAttendees: %s", meeting.title, @@ -91,61 +120,61 @@ local function display_popup(meeting) meeting.end_time, meeting.attendees ) - wezterm.gui.show_popup(meeting_info) -end -local function update_tab_bar(times, meeting) - local status = wezterm.format({ - { Background = { Color = M.theme_bg } }, - { Foreground = { Color = M.theme_red } }, - { - Text = string.format( - " %s %s (%d minutes) ", - M.nerd_font_meeting, - meeting.title, - times.minutes_till_meeting - ), - }, + wezterm.mux.spawn_window({ + title = "Next Meeting", + cwd = wezterm.home_dir, + command = { "echo", meeting_info }, -- Display meeting info in the new tab }) - - if times.epoc_diff <= M.alert_popup_before_seconds then - display_popup(meeting) - end - - return status end +-- Check for the next meeting and display a notification if it is starting soon +-- @return number: 0 if successful, 1 if iCalBuddy is not installed, -1 if there is no upcoming meeting function M.main() - print("here") if not check_ical_buddy() then - return "" + return 1 end local next_meeting = get_next_meeting() if not next_meeting then - return "" + return -1 end local meeting = parse_result(next_meeting) local times = calculate_times(meeting.start_time) - if not times then - return "" + if times.minutes_till_meeting == -1 then + return 0 end - return update_tab_bar(times, meeting) + -- Display notification if meeting is starting soon + if times.epoch_diff <= M.alert_popup_before_seconds then + -- local meeting_message = string.format( + -- "Title: %s\nStart Time: %s\nEnd Time: %s\nAttendees: %s", + -- meeting.title, + -- meeting.start_time, + -- meeting.end_time, + -- meeting.attendees + -- ) + -- send_notification("Upcoming Meeting", meeting_message) + open_meeting_tab(meeting) + end + + return 0 end +-- Set up a timer to check for meetings periodically +-- @param interval_seconds: The interval in seconds to check for meetings periodically. Default is 60 seconds function M.setup_update_timer(interval_seconds) interval_seconds = interval_seconds or 60 -- Default interval is 60 seconds local function update() - local meeting_status = M.main() - if meeting_status ~= "" then - wezterm.on("update-right-status", function(window) - window:set_right_status(wezterm.format({ - { Text = meeting_status }, - })) - end) + local exit_code = M.main() + if exit_code == -1 then + wezterm.log_debug("No upcoming meeting found.") + elseif exit_code == 1 then + wezterm.log_error("Error: iCalBuddy is not installed") + elseif exit_code ~= 0 then + wezterm.log_error("Error checking for meetings") end end @@ -156,4 +185,43 @@ function M.setup_update_timer(interval_seconds) wezterm.update_built_in_timer("meeting_notifier_update", interval_seconds, update) end +-- Test the meeting notifier functions +-- This function is for testing purposes only +function M.test_meeting_notifier() + -- Test if iCalBuddy is installed + local icalbuddy_installed = check_ical_buddy() + wezterm.log_info("iCalBuddy Check: ", icalbuddy_installed) + + -- Test getting the next meeting + local next_meeting = get_next_meeting() + wezterm.log_info("Next Meeting: ", next_meeting) + + if next_meeting and next_meeting ~= "" then + -- Test parsing the meeting result + local meeting = parse_result(next_meeting) + wezterm.log_info("Parsed Meeting:") + wezterm.log_info("Title: ", meeting.title) + wezterm.log_info("Start Time: ", meeting.start_time) + wezterm.log_info("End Time: ", meeting.end_time) + wezterm.log_info("Attendees: ", meeting.attendees) + + -- Test calculating times + local times = calculate_times(meeting.start_time) + wezterm.log_info("Time Until Meeting: ", times.minutes_till_meeting, " minutes (", times.epoch_diff, " seconds)") + + -- Test notification function + local meeting_message = string.format( + "Title: %s\nStart Time: %s\nEnd Time: %s\nAttendees: %s", + meeting.title, + meeting.start_time, + meeting.end_time, + meeting.attendees + ) + send_notification("Test Notification", meeting_message) + else + wezterm.log_info("No upcoming meeting found.") + end +end + return M + diff --git a/wezterm/.wezterm.lua b/wezterm/.wezterm.lua index 7c42191..ffbd9bd 100644 --- a/wezterm/.wezterm.lua +++ b/wezterm/.wezterm.lua @@ -4,9 +4,9 @@ local act = wezterm.action -- Pull custom modules local theme = require("theme-switcher") --- local meeting_notifier = require("meeting-notifier") +local meeting_notifier = require("meeting-notifier") local profiler = require("profiler") -local history = require("history") +-- local history = require("history") local config = {} local keys = {} @@ -17,7 +17,7 @@ if wezterm.config_builer then config = wezterm.config_builder() end -config.debug_key_events = false +config.debug_key_events = true if wezterm.target_triple == "x86_64-pc-windows-msvc" then -- Windows-specific settings @@ -25,14 +25,14 @@ if wezterm.target_triple == "x86_64-pc-windows-msvc" then elseif wezterm.target_triple == "x86_64-apple-darwin" then -- macOS-specific settings config.macos_window_background_blur = 10 - config.default_prog = { "/bin/zsh" } + config.default_prog = { "/bin/zsh", "-l" } config.font = wezterm.font_with_fallback({ { family = "MesloLGS NF", scale = 0.9 }, { family = "Symbols Nerd Font", scale = 0.9 }, }) elseif wezterm.target_triple == "x86_64-unknown-linux-gnu" then -- Linux-specific settings - config.default_prog = { "/bin/bash" } + config.default_prog = { "/bin/bash", "-l" } config.font = wezterm.font_with_fallback({ { family = "MesloLGS NF", scale = 0.9 }, { family = "Ubuntu Mono", scale = 0.9 }, @@ -74,6 +74,7 @@ config.use_fancy_tab_bar = false config.tab_max_width = 25 config.switch_to_last_active_tab_when_closing_tab = true config.show_new_tab_button_in_tab_bar = false +config.window_close_confirmation = "NeverPrompt" config.audible_bell = "Disabled" @@ -387,45 +388,46 @@ wezterm.on("gui-startup", function() profiler.startup("WZ_PROJECT", "profiles") end) +wezterm.on("window-config-reload", function() + -- Set up the meeting notifier to check every 60 seconds + -- meeting_notifier.setup_update_timer(15) + meeting_notifier.test_meeting_notifier() +end) + wezterm.on("mux-is-process-stateful", function(proc) _ = proc return nil end) -wezterm.on("format-tab-title", function(tab) - local pane = tab.active_pane - local title = pane.title +-- wezterm.on("format-tab-title", function(tab) +-- local pane = tab.active_pane +-- local title = pane.title +-- +-- if pane.domain_name ~= "local" then +-- title = title .. " - (" .. pane.current_working_dir .. ")" +-- end +-- +-- return title +-- end) - if pane.domain_name ~= "local" then - title = title .. " - (" .. pane.current_working_dir .. ")" - end - - return title -end) - --- Setup the update timer for meeting notification --- meeting_notifier.setup_update_timer(5) -- Update every 60 seconds - -wezterm.on("update-right-status", function(window) - local stat = window:active_workspace() - - if window:active_key_table() then - stat = window:active_key_table() - end - if window:leader_is_active() then - stat = "L" - end - - local date = wezterm.strftime("%a %b %-d %H:%M") - - window:set_right_status(wezterm.format({ - { Text = stat }, - { Text = " | " }, - { Text = date }, - })) -end) - -config.default_prog = { "/usr/local/bin/zsh" } +-- wezterm.on("update-right-status", function(window) +-- local stat = window:active_workspace() +-- +-- if window:active_key_table() then +-- stat = window:active_key_table() +-- end +-- if window:leader_is_active() then +-- stat = "L" +-- end +-- +-- local date = wezterm.strftime("%a %b %-d %H:%M") +-- +-- window:set_right_status(wezterm.format({ +-- { Text = stat }, +-- { Text = " | " }, +-- { Text = date }, +-- })) +-- end) return config diff --git a/zsh/.fzf.zsh b/zsh/.fzf.zsh new file mode 100755 index 0000000..ce66d99 --- /dev/null +++ b/zsh/.fzf.zsh @@ -0,0 +1,13 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then + PATH="${PATH:+${PATH}:}/usr/local/opt/fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/usr/local/opt/fzf/shell/completion.zsh" 2> /dev/null + +# Key bindings +# ------------ +source "/usr/local/opt/fzf/shell/key-bindings.zsh" diff --git a/zsh/.zprofile b/zsh/.zprofile index 626f64b..8096600 100755 --- a/zsh/.zprofile +++ b/zsh/.zprofile @@ -1,93 +1,45 @@ -if [[ -z "$XDG_CONFIG_HOME" ]]; then - export XDG_CONFIG_HOME="$HOME/.config" -fi +# Ensure XDG_CONFIG_HOME is set +: "${XDG_CONFIG_HOME:=$HOME/.config}" +# Set default pager export PAGER="less -i -N -S -R" -# export ITERM_ENABLE_SHELL_INTEGRATION_WITH_TMUX=YES - -if [[ -n $SSH_CONNECTION ]]; then - export EDITOR='vim' -else - export EDITOR='nvim' +# Ensure PYENV_ROOT is set and its bin directory is in PATH +if [[ -n "$PYENV_ROOT" && ! "$PATH" =~ (^|:)${PYENV_ROOT}/bin(:|$) ]]; then + export PATH="$PYENV_ROOT/bin:$PATH" fi - -export PYENV_ROOT="$HOME/.pyenv" -[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" -# set PATH so it includes user's private ~/.local/bin if it exists -if [ -d "$HOME/.local/bin" ] ; then - PATH="$HOME/.local/bin:$PATH" +# Add ~/.local/bin to PATH if it exists +if [[ -d "$HOME/.local/bin" && ! "$PATH" =~ (^|:)${HOME}/.local/bin(:|$) ]]; then + export PATH="$HOME/.local/bin:$PATH" fi +# Set permissions for ~/.local/bin chmod -R ug+rwx "$HOME/.local/bin/" -if [ -f fzf_theme ]; then - source fzf_theme > /dev/null 2>&1 + +# Read fzf theme options if the file exists +if [[ -f "$HOME/.local/bin/scripts/fzf_theme" ]]; then + FZF_OPTIONS=$("$HOME/.local/bin/scripts/fzf_theme") + export FZF_DEFAULT_OPTS="$FZF_OPTIONS" fi + +# Source fzf configuration source <(fzf --zsh) -# Add RVM to PATH for scripting. Make sure this is the last PATH variable change. -export PATH="$PATH:$HOME/.rvm/bin" +# Add RVM to PATH +if [[ ! "$PATH" =~ (^|:)${HOME}/.rvm/bin(:|$) ]]; then + export PATH="$PATH:$HOME/.rvm/bin" +fi # Add Golang to PATH -export GOPATH="$HOME/Documents/projects:$HOME/go" -export PATH="$PATH:$(go env GOPATH)/bin" +if [[ -n "$(go env GOPATH)" && ! "$PATH" =~ (^|:)$(go env GOPATH)/bin(:|$) ]]; then + export GOPATH="$HOME/Documents/projects:$HOME/go" + export PATH="$PATH:$(go env GOPATH)/bin" +fi -# # Function to activate Python virtual environment if found -activate_python_env() { - local env_dir - # env_dir=$(find . -type f -name activate -exec dirname {} \;) - env_dir=$(fd -H -I -t f -d 3 'activate$' | xargs dirname) - if [ -n "$env_dir" ]; then - source "$env_dir/activate" - else - echo "No Python virtual environment found in the current directory or its subdirectories." - fi -} -alias act='activate_python_env' - -alias python="python3" -alias v="nvim" -# alias docker="$HOME/.local/bin/docker_check.sh" -# alias tn="tmux new -s $(pwd | sed 's/.*\///g')" -alias cat="bat --paging=never" -alias grep="grep --color=auto" - -# Basic `ls` replacement with `eza`, grouping directories first -alias ls='eza --group-directories-first --color=auto' - -# List all files, including hidden ones, in long format with grouped directories -alias la='eza -la --group-directories-first --color=auto' - -# List files in long format with grouped directories -alias ll='eza -l --group-directories-first --color=auto' - -# List files sorted by modification time, newest first, in long format with grouped directories -alias lt='eza -lt modified --sort newest' - -# List files sorted by size, largest first, in long format with grouped directories -alias lS='eza -lS --group-directories-first --color=auto' - -# Display directory tree with a depth limit of 3 levels -alias tree='eza --tree --level=3' - -# Display git status alongside files -alias lg='eza --git' - -# Add eza completions to FPATH -export FPATH="/usr/local/bin/eza/completions/zsh:$FPATH" - -# set bat to highlight --help messages -alias bathelp='bat --plain --language=help' -help() { - "$@" --help 2>&1 | bathelp -} - -# overwriting -h and --help with bat highlights -alias -g :h='-h 2>&1 | bat --language=help --style=plain' -alias -g :help='--help 2>&1 | bat --language=help --style=plain' - -# Initialize zoxide -eval "$(zoxide init --cmd cd zsh)" +# Cargo setup +if [[ -d "$HOME/.cargo/bin" && ! "$PATH" =~ (^|:)${HOME}/.cargo/bin(:|$) ]]; then + export PATH="$HOME/.cargo/bin:$PATH" +fi diff --git a/zsh/.zshrc b/zsh/.zshrc index b447308..d1b5088 100755 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,32 +1,95 @@ -# Load p10k instant prompt if it exists -# if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then -# source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" -# fi +# zmodload zsh/zprof -DISABLE_UPDATE_PROMPT=true +# Function to clean up and normalize paths +path_print_clean() { + local var=${1:-PATH} + local arr + local newarr=() + local path + local p -# Add custom paths to $PATH -export PATH="$HOME/.local/bin:$PATH" + # Read PATH into an array + IFS=: arr=(${(s.:.)${(P)var}}) -# Homebrew Configuration -# Add Homebrew's installation directory to the PATH -if [[ -d /opt/homebrew ]]; then - export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH" -elif [[ -d /usr/local ]]; then - export PATH="/usr/local/bin:/usr/local/sbin:$PATH" -fi + # Declare an associative array to keep track of seen paths + typeset -A seen -# Path to your oh-my-zsh installation. + for p in "${arr[@]}"; do + # Empty element is equivalent to CWD (weird, I know), remove it + if [[ -z $p ]]; then + continue + fi + + # Remove any relative paths + if [[ ${p:0:1} != '/' ]]; then + continue + fi + + # Normalize path and ensure we can access it + path=$(cd "$p" &>/dev/null && pwd) + + # Path doesn't exist or we can't access it + if [[ -z $path ]]; then + continue + fi + + # Filter out dups while we are here + if [[ -n ${seen[$path]} ]]; then + continue + fi + seen[$path]=true + + # Store the new path + newarr+=("$path") + done + + local IFS=: + echo "${newarr[*]}" +} + +# Function to clean up the PATH variable +path_clean() { + local path + path=$(path_print_clean) || return 1 + # Use eval to correctly assign the cleaned path to the PATH variable + export PATH="$path" +} + +timezsh() { + shell=${1-$SHELL} + for i in $(seq 1 10); do /usr/bin/time $shell -i -c exit; done +} + +# Path to your oh-my-zsh installation export ZSH="$HOME/.oh-my-zsh" +export ZSH_CUSTOM="$HOME/.oh-my-zsh/custom" export UPDATE_ZSH_DAYS=1 -export FZF_DEFAULT_OPTS="$(fzf_theme)" -# Set name of the theme to loading -# ZSH_THEME="powerlevel10k/powerlevel10k" -# ZSH_THEME="robbyrussell" -# Set list of themes to pick from when loading at random -# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) +# Add macOS specific command-line utilities +if [[ -d /usr/local/opt/coreutils/libexec/gnubin && ! "$PATH" =~ (^|:)/usr/local/opt/coreutils/libexec/gnubin(:|$) ]]; then + export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" +fi + +# Ensure /opt/homebrew is in the PATH if it exists +if [[ -d /opt/homebrew && ! "$PATH" =~ (^|:)/opt/homebrew/(bin|sbin)($|:) ]]; then + export PATH="/opt/homebrew/bin:/opt/homebrew/sbin:$PATH" +fi + +# Add /usr/local/bin and /usr/local/sbin to PATH if they are not already present +dirs=("/usr/local/bin" "/usr/local/sbin") +for dir in "${dirs[@]}"; do + if [[ -d $dir && ! "$PATH" =~ (^|:)$dir(:|$) ]]; then + export PATH="$dir:$PATH" + fi +done + +# Clean up paths again to ensure no duplicates +path_clean PATH + +# Auto-update and other zsh settings +DISABLE_UPDATE_PROMPT=true +zstyle ':omz:update' mode reminder # remind to update # Uncomment to use case-sensitive completion # CASE_SENSITIVE="true" @@ -34,52 +97,19 @@ export FZF_DEFAULT_OPTS="$(fzf_theme)" # Uncomment to use hyphen-insensitive completion # HYPHEN_INSENSITIVE="true" -# Uncomment one of the following lines to change the auto-update behavior -# zstyle ':omz:update' mode disabled # disable automatic updates -# zstyle ':omz:update' mode auto # update automatically without asking -# zstyle ':omz:update' mode reminder # just remind me to update when it's time - -# Uncomment to change how often to auto-update (in days) -# zstyle ':omz:update' frequency 13 - -# Uncomment if pasting URLs and other text is messed up +# Miscellaneous configurations # DISABLE_MAGIC_FUNCTIONS="true" - -# Uncomment to disable colors in ls # DISABLE_LS_COLORS="true" - -# Uncomment to disable auto-setting terminal title # DISABLE_AUTO_TITLE="true" - -# Uncomment to enable command auto-correction # ENABLE_CORRECTION="true" - -# Uncomment to display red dots whilst waiting for completion # COMPLETION_WAITING_DOTS="true" - -# Uncomment to disable marking untracked files under VCS as dirty # DISABLE_UNTRACKED_FILES_DIRTY="true" # Load zsh hooks autoload -Uz add-zsh-hook -# move_curor_to_bottom() { -# [[ -n ${PIN_PROMPT_NEWLINE+1} ]] && echo -# tput cup $LINES -# } - -# move_curor_to_bottom -# add-zsh-hook preexec move_curor_to_bottom - -# Uncomment to change the command execution time stamp shown in history command output -# HIST_STAMPS="mm/dd/yyyy" - -HISTFILE=~/.zsh_history -HISTSIZE=1000 -SAVEHIST=10000 - -# Set custom folder for oh-my-zsh, if desired -ZSH_CUSTOM=$HOME/.oh-my-zsh/custom +# Load completion scripts +autoload -Uz compinit && compinit -C # Plugins to load plugins=( @@ -92,7 +122,6 @@ plugins=( zoxide eza ) - export ZSH_AUTOSUGGEST_STRATEGY=( history completion @@ -101,31 +130,9 @@ export ZSH_AUTOSUGGEST_STRATEGY=( # Source oh-my-zsh.sh source $ZSH/oh-my-zsh.sh -# User configuration -source ~/.zprofile -# export MANPATH="/usr/local/man:$MANPATH" - -# Set preferred editor for local and remote sessions -# if [[ -n $SSH_CONNECTION ]]; then -# export EDITOR='vim' -# else -# export EDITOR='nvim' -# fi - -# Compilation flags -# export ARCHFLAGS="-arch x86_64" - -# Set personal aliases -# Example aliases -# alias zshconfig="mate ~/.zshrc" -# alias ohmyzsh="mate ~/.oh-my-zsh" -# alias firefox="/Applications/Firefox.app/Contents/MacOS/firefox-bin -P profileName" - -# Customize prompt, if .p10k.zsh exists -# [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh - -# Finalize p10k configuration if p10k function exists -# (( ! ${+functions[p10k]} )) || p10k finalize +# Initialize Starship +eval "$(starship init zsh)" +export STARSHIP_CONFIG="${XDG_CONFIG_HOME:-$HOME/.config}/starship.toml" # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! @@ -142,13 +149,45 @@ fi unset __conda_setup # <<< conda initialize <<< -# Load completion scripts -autoload -Uz compinit && compinit +# Set default editor +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vi' +else + export EDITOR='nvim' +fi -# # Customize prompt, if .p10k.zsh in .dotfiles exists -# [[ ! -f ~/.dotfiles/p10k/.p10k.zsh ]] || source ~/.dotfiles/p10k/.p10k.zsh +# Compilation flags +# export ARCHFLAGS="-arch x86_64" -# Initialize Starship -eval "$(starship init zsh)" -export STARSHIP_CONFIG=~/.config/starship.toml +# Custom aliases +alias python="python3" +alias v="nvim" +alias cat="bat --paging=never" +alias grep="grep --color=auto" +alias ls='eza --group-directories-first --color=auto' +alias la='eza -la --group-directories-first --color=auto' +alias ll='eza -l --group-directories-first --color=auto' +alias lt='eza -lt modified --sort newest' +alias lS='eza -lS --group-directories-first --color=auto' +alias tree='eza --tree --level=3' +alias lg='eza --git' +alias bathelp='bat --plain --language=help' +help() { + "$@" --help 2>&1 | bathelp +} + +# Overwriting -h and --help with bat highlights +alias -g :h='-h 2>&1 | bat --language=help --style=plain' +alias -g :help='--help 2>&1 | bat --language=help --style=plain' + +# Add eza completions to FPATH +[[ ! "$FPATH" =~ (^|:)${HOME}/.local/bin/eza/completions/zsh(:|$) ]] && export FPATH="$HOME/.local/bin/eza/completions/zsh:$FPATH" + +#Initialize direnv +eval "$(direnv hook zsh)" + +# Initialize zoxide +eval "$(zoxide init --cmd cd zsh)" + +path_clean