From e7ac281f6c25f678c30a33885f39703681994c63 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Wed, 11 Jan 2023 02:49:48 -0500 Subject: [PATCH 01/34] fzf working in nvim. --- .config/nvim/init.lua | 11 ++++++++++- .git_template/ctags | 7 +++++++ .git_template/hooks/pre-commit | 6 ++++++ .git_template/post-checkout | 2 ++ .git_template/post-commit | 2 ++ .git_template/post-merge | 2 ++ .git_template/post-rewrite | 4 ++++ .git_template/pre-commit | 7 +++++++ .gitconfig | 1 + 9 files changed, 41 insertions(+), 1 deletion(-) create mode 100755 .git_template/ctags create mode 100755 .git_template/hooks/pre-commit create mode 100755 .git_template/post-checkout create mode 100755 .git_template/post-commit create mode 100755 .git_template/post-merge create mode 100755 .git_template/post-rewrite create mode 100755 .git_template/pre-commit diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index c61ada2..de60a3f 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -16,7 +16,8 @@ require "paq" { 'nathanaelkane/vim-indent-guides'; "neovim/nvim-lspconfig"; "tmhedberg/SimpylFold"; - "savq/paq-nvim"; "tpope/vim-commentary"; + "savq/paq-nvim"; + "tpope/vim-commentary"; "tpope/vim-fugitive"; "tpope/vim-surround"; "Vimjas/vim-python-pep8-indent"; @@ -37,6 +38,14 @@ require "paq" { } local maps = { + {"n", "f", ":GFiles", {noremap=true}}, + {"n", "b", ":Buffers", {noremap=true}}, + {"n", "t", ":Tags", {noremap=true}}, + {"n", "m", ":Marks", {noremap=true}}, + {"n", "w", ":Windows", {noremap=true}}, + {"n", "s", ":Snippets", {noremap=true}}, + {"n", "c", ":Commits", {noremap=true}}, + {"n", "", ":Commands", {noremap=true}}, {"i", "((", "()", {noremap=true}}, {"i", "[[", "[]", {noremap=true}}, {"i", "{{", "{}", {noremap=true}}, diff --git a/.git_template/ctags b/.git_template/ctags new file mode 100755 index 0000000..f62d1d7 --- /dev/null +++ b/.git_template/ctags @@ -0,0 +1,7 @@ +#!/bin/sh +set -e +PATH="/usr/local/bin:$PATH" +trap 'rm -f "$$.tags"' EXIT +git ls-files | \ + ctags --tag-relative -L - -f"$$.tags" --languages=-javascript,sql +mv "$$.tags" "tags" diff --git a/.git_template/hooks/pre-commit b/.git_template/hooks/pre-commit new file mode 100755 index 0000000..97b004b --- /dev/null +++ b/.git_template/hooks/pre-commit @@ -0,0 +1,6 @@ +#!/bin/bash + +echo "Formatting python code using Black." +black -l 79 $(git ls-tree -r master --name-only | grep ".*\.py") +echo "Running unit tests." +pytest diff --git a/.git_template/post-checkout b/.git_template/post-checkout new file mode 100755 index 0000000..84f17ed --- /dev/null +++ b/.git_template/post-checkout @@ -0,0 +1,2 @@ +#!/bin/sh +.git/hooks/ctags >/dev/null 2>&1 & diff --git a/.git_template/post-commit b/.git_template/post-commit new file mode 100755 index 0000000..84f17ed --- /dev/null +++ b/.git_template/post-commit @@ -0,0 +1,2 @@ +#!/bin/sh +.git/hooks/ctags >/dev/null 2>&1 & diff --git a/.git_template/post-merge b/.git_template/post-merge new file mode 100755 index 0000000..84f17ed --- /dev/null +++ b/.git_template/post-merge @@ -0,0 +1,2 @@ +#!/bin/sh +.git/hooks/ctags >/dev/null 2>&1 & diff --git a/.git_template/post-rewrite b/.git_template/post-rewrite new file mode 100755 index 0000000..fe8972d --- /dev/null +++ b/.git_template/post-rewrite @@ -0,0 +1,4 @@ +#!/bin/sh +case "$1" in + rebase) exec .git/hooks/post-merge ;; +esac diff --git a/.git_template/pre-commit b/.git_template/pre-commit new file mode 100755 index 0000000..63a070a --- /dev/null +++ b/.git_template/pre-commit @@ -0,0 +1,7 @@ +#!/bin/bash + +branch=$(git rev-parse --abbrev-ref HEAD) +echo "Formatting python code using Black on branch $branch." +black -l 79 $(git ls-tree -r "$branch" --name-only | grep ".*\.py") +echo "Running unit tests." +pytest diff --git a/.gitconfig b/.gitconfig index 7a45132..fa6b203 100755 --- a/.gitconfig +++ b/.gitconfig @@ -1,5 +1,6 @@ [user] name = Neko Juers + email = neko.juers@gmail.com [core] excludesfile = /Users/nekoj/.gitignore_global editor = nvim From 2eac069be248d133f07c7ea56a643a4f7dc22bcd Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Wed, 11 Jan 2023 10:25:01 -0500 Subject: [PATCH 02/34] Update pre-commit hook for black and pytest. --- .git_template/hooks/pre-commit | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.git_template/hooks/pre-commit b/.git_template/hooks/pre-commit index 97b004b..543f3e8 100755 --- a/.git_template/hooks/pre-commit +++ b/.git_template/hooks/pre-commit @@ -1,6 +1,17 @@ #!/bin/bash + +# pre-commit.sh +STASH_NAME="pre-commit-$(date +%s)" +git stash save --quiet --keep-index --include-untracked $STASH_NAME + +# Test prospective commit echo "Formatting python code using Black." black -l 79 $(git ls-tree -r master --name-only | grep ".*\.py") echo "Running unit tests." pytest + +STASHES=$(git stash list) +if [[ $STASHES == *"$STASH_NAME" ]]; then + git stash pop --quiet +fi From 8627976fdb6deb32c03df68c1d91d15d665bb58f Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Feb 2023 19:10:54 -0500 Subject: [PATCH 03/34] Fish working now with stripped down config. Move dotfiles to homedir. Untested. neovim working. Dracula colorscheme working. Dracula working in fish. Remove tmux plugins from tracking. Dracula working in Vim. Colorschemes working across vim and iterm. Add Karabiner for mouse mapping. --- .config/.config | 1 + .config/fish/agnosterplus.omp.json | 57 ++++ .config/fish/config.fish | 45 +-- .config/fish/dracula.omp.json | 70 +++++ .config/fish/dracula.omp.json.backup | 81 +++++ .config/iterm2/AppSupport | 1 + .../complex_modifications/1676650778.json | 73 +++++ .../automatic_backups/karabiner_20230217.json | 228 ++++++++++++++ .config/karabiner/karabiner.json | 278 ++++++++++++++++++ .config/nvim/init.lua | 21 +- .config/oh-my-posh/cobalt2.omp.json | 56 ++++ .gitignore | 1 + .tmux.conf | 5 +- .tmux/plugins/palenight-tmux | 1 - .tmux/plugins/tmux-continuum | 1 - .tmux/plugins/tmux-resurrect | 1 - .tmux/plugins/tmux-sensible | 1 - .tmux/plugins/tpm | 1 - .tmux/plugins/vim-tmux-navigator | 1 - AppSupport/SavedState/lock | 0 AppSupport/SavedState/restorable-state.sqlite | Bin 0 -> 12288 bytes .../SavedState/restorable-state.sqlite-shm | Bin 0 -> 32768 bytes .../SavedState/restorable-state.sqlite-wal | 0 AppSupport/iTermServer-3.4.19 | Bin 0 -> 217648 bytes AppSupport/iterm2-daemon-1.socket.lock | 0 ...29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b | Bin 0 -> 25137 bytes ...4ce431b271836326eb46c838f411fa45be6bb493dc | Bin 0 -> 16905 bytes AppSupport/version.txt | 1 + config/AppSupport | 1 + iterm2/AppSupport/SavedState/lock | 0 .../SavedState/restorable-state.sqlite | Bin 0 -> 12288 bytes .../SavedState/restorable-state.sqlite-shm | Bin 0 -> 32768 bytes .../SavedState/restorable-state.sqlite-wal | 0 iterm2/AppSupport/iTermServer-3.4.19 | Bin 0 -> 217648 bytes iterm2/AppSupport/iterm2-daemon-1.socket.lock | 0 ...29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b | Bin 0 -> 25137 bytes ...4ce431b271836326eb46c838f411fa45be6bb493dc | Bin 0 -> 16905 bytes iterm2/AppSupport/version.txt | 1 + 38 files changed, 877 insertions(+), 49 deletions(-) create mode 120000 .config/.config create mode 100644 .config/fish/agnosterplus.omp.json create mode 100644 .config/fish/dracula.omp.json create mode 100644 .config/fish/dracula.omp.json.backup create mode 120000 .config/iterm2/AppSupport create mode 100644 .config/karabiner/assets/complex_modifications/1676650778.json create mode 100644 .config/karabiner/automatic_backups/karabiner_20230217.json create mode 100644 .config/karabiner/karabiner.json create mode 100644 .config/oh-my-posh/cobalt2.omp.json delete mode 160000 .tmux/plugins/palenight-tmux delete mode 160000 .tmux/plugins/tmux-continuum delete mode 160000 .tmux/plugins/tmux-resurrect delete mode 160000 .tmux/plugins/tmux-sensible delete mode 160000 .tmux/plugins/tpm delete mode 160000 .tmux/plugins/vim-tmux-navigator create mode 100644 AppSupport/SavedState/lock create mode 100644 AppSupport/SavedState/restorable-state.sqlite create mode 100644 AppSupport/SavedState/restorable-state.sqlite-shm create mode 100644 AppSupport/SavedState/restorable-state.sqlite-wal create mode 100755 AppSupport/iTermServer-3.4.19 create mode 100644 AppSupport/iterm2-daemon-1.socket.lock create mode 100644 AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b create mode 100644 AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc create mode 100644 AppSupport/version.txt create mode 120000 config/AppSupport create mode 100644 iterm2/AppSupport/SavedState/lock create mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite create mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite-shm create mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite-wal create mode 100755 iterm2/AppSupport/iTermServer-3.4.19 create mode 100644 iterm2/AppSupport/iterm2-daemon-1.socket.lock create mode 100644 iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b create mode 100644 iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc create mode 100644 iterm2/AppSupport/version.txt diff --git a/.config/.config b/.config/.config new file mode 120000 index 0000000..39b1327 --- /dev/null +++ b/.config/.config @@ -0,0 +1 @@ +/Users/njuers/dotfiles/.config \ No newline at end of file diff --git a/.config/fish/agnosterplus.omp.json b/.config/fish/agnosterplus.omp.json new file mode 100644 index 0000000..a56c5ff --- /dev/null +++ b/.config/fish/agnosterplus.omp.json @@ -0,0 +1,57 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "type": "rprompt", + "segments": [ + { + "foreground": "#007ACC", + "properties": { + "time_format": "15:04:05" + }, + "style": "plain", + "template": " {{ .CurrentDate | date .Format }} ", + "type": "time" + } + ] + }, + { + "alignment": "left", + "segments": [ + { + "background": "#ffffff", + "foreground": "#100e23", + "powerline_symbol": "\ue0b0", + "style": "powerline", + "template": " {{ .UserName }}@{{ .HostName }} ", + "type": "session" + }, + { + "background": "#91ddff", + "foreground": "#100e23", + "powerline_symbol": "\ue0b0", + "properties": { + "folder_icon": "\uf115", + "folder_separator_icon": " \ue0b1 ", + "home_icon": "\uf7db", + "style": "agnoster" + }, + "style": "powerline", + "template": " {{ .Path }} ", + "type": "path" + }, + { + "background": "#95ffa4", + "foreground": "#193549", + "powerline_symbol": "\ue0b0", + "style": "powerline", + "template": " {{ .HEAD }} ", + "type": "git" + } + ], + "type": "prompt" + } + ], + "final_space": true, + "version": 2 +} diff --git a/.config/fish/config.fish b/.config/fish/config.fish index 3bfab3e..b1c14e7 100755 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -1,35 +1,20 @@ -# set normal (set_color normal) -# set magenta (set_color magenta) -# set yellow (set_color yellow) -# set green (set_color green) -# set red (set_color red) -# set gray (set_color -o black) set -Ux VISUAL nvim set -Ux EDITOR $VISUAL +fish_vi_key_bindings # source (dirname (status -f))/init.fish # if tmux is executable and not inside a tmux session, then try to attach. # if attachment fails, start a new session # set -x TERMINFO $TERMINFO $HOME/.local/share/terminfo/74/ -set -x TERM tmux-256color -if status is-interactive -and not set -q TMUX - exec tmux -end +# set -x TERM tmux-256color +# if status is-interactive +# and not set -q TMUX +# exec tmux +# end set -x PYTHONBREAKPOINT ipdb.set_trace - # Fish git prompt -set -x __fish_git_prompt_showdirtystate 'yes' -set -x __fish_git_prompt_showstashstate 'yes' -set -x __fish_git_prompt_showuntrackedfiles 'yes' -set -x __fish_git_prompt_showupstream 'yes' -set -x __fish_git_prompt_color_branch yellow -set -x __fish_git_prompt_color_upstream_ahead green -set -x __fish_git_prompt_color_upstream_behind red - - # Proper terminal behavior with unicode set -x LC_ALL en_US.UTF-8 set -x LANG en_US.UTF-8 @@ -40,7 +25,7 @@ bind -M default v edit_cmd # for nvim # Use ipdb for debugging -# set -x PYTHONBREAKPOINT ipdb.set_trace +set -x PYTHONBREAKPOINT ipdb.set_trace set -x JAVA_HOME /usr/local/opt/openjdk/bin @@ -53,23 +38,21 @@ set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/ll set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/" set -x ENABLE_USER_SITE "False" - -set -x PATH $JAVA_HOME $PATH +set -x PATH /opt/homebrew/bin $PATH set -x PATH /opt/local/bin /opt/local/sbin $PATH set -x MANPATH /opt/local/share/man (manpath) -set -x PATH /usr/local/opt/llvm/bin $PATH set -x PATH $HOME/bin $PATH -set -x PATH $HOME/bin/edirect $PATH set -x PATH $HOME/.cargo/bin $PATH set -x PATH $HOME/.gitaliases $PATH -set -x PATH $HOME/edirect $PATH +set -x PATH /opt/homebrew/ $PATH -set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" -set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" -set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" -set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/ -I$JAVA_HOME/include -I$JAVA_HOME/include/darwin" +# set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" +# set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" +# set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" +# set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/ -I$JAVA_HOME/include -I$JAVA_HOME/include/darwin" fish_ssh_agent thefuck --alias | source +oh-my-posh init fish --config ~/.config/fish/dracula.omp.json | source diff --git a/.config/fish/dracula.omp.json b/.config/fish/dracula.omp.json new file mode 100644 index 0000000..6e2029a --- /dev/null +++ b/.config/fish/dracula.omp.json @@ -0,0 +1,70 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "alignment": "left", + "segments": [ + { + "background": "#6272a4", + "foreground": "#f8f8f2", + "leading_diamond": "\ue0b6", + "style": "diamond", + "template": "{{ .UserName }} ", + "type": "session" + }, + { + "background": "#bd93f9", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "style": "folder" + }, + "style": "powerline", + "template": " {{ .Path }} ", + "type": "path" + }, + { + "background": "#ffb86c", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "branch_icon": "", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true + }, + "style": "powerline", + "template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uF692 {{ .StashCount }}{{ end }}", + "type": "git" + }, + { + "background": "#8be9fd", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "style": "powerline", + "template": " \ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} ", + "type": "node" + } + ], + "type": "prompt" + }, + { + "alignment": "left", + "segments": [ + { + "background": "#f1fa8c", + "foreground": "#282a36", + "invert_powerline": true, + "leading_diamond": "\ue0b2", + "style": "diamond", + "template": " \ue7ad {{.Profile}}{{if .Region}}@{{.Region}}{{end}}", + "trailing_diamond": "\ue0b4", + "type": "aws" + } + ], + "type": "rprompt" + } + ], + "final_space": true, + "version": 2 +} diff --git a/.config/fish/dracula.omp.json.backup b/.config/fish/dracula.omp.json.backup new file mode 100644 index 0000000..dd39862 --- /dev/null +++ b/.config/fish/dracula.omp.json.backup @@ -0,0 +1,81 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "alignment": "left", + "segments": [ + { + "background": "#6272a4", + "foreground": "#f8f8f2", + "leading_diamond": "\ue0b6", + "style": "diamond", + "template": "{{ .UserName }} ", + "type": "session" + }, + { + "background": "#bd93f9", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "style": "folder" + }, + "style": "powerline", + "template": " {{ .Path }} ", + "type": "path" + }, + { + "background": "#ffb86c", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "branch_icon": "", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true + }, + "style": "powerline", + "template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uF692 {{ .StashCount }}{{ end }}", + "type": "git" + }, + { + "background": "#8be9fd", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "style": "powerline", + "template": " \ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} ", + "type": "node" + }, + { + "background": "#ff79c6", + "foreground": "#f8f8f2", + "properties": { + "time_format": "15:04" + }, + "style": "diamond", + "template": " \u2665 {{ .CurrentDate | date .Format }} ", + "trailing_diamond": "\ue0b0", + "type": "time" + } + ], + "type": "prompt" + }, + { + "alignment": "left", + "segments": [ + { + "background": "#f1fa8c", + "foreground": "#282a36", + "invert_powerline": true, + "leading_diamond": "\ue0b2", + "style": "diamond", + "template": " \ue7ad {{.Profile}}{{if .Region}}@{{.Region}}{{end}}", + "trailing_diamond": "\ue0b4", + "type": "aws" + } + ], + "type": "rprompt" + } + ], + "final_space": true, + "version": 2 +} diff --git a/.config/iterm2/AppSupport b/.config/iterm2/AppSupport new file mode 120000 index 0000000..8ff00b2 --- /dev/null +++ b/.config/iterm2/AppSupport @@ -0,0 +1 @@ +/Users/njuers/Library/Application Support/iTerm2 \ No newline at end of file diff --git a/.config/karabiner/assets/complex_modifications/1676650778.json b/.config/karabiner/assets/complex_modifications/1676650778.json new file mode 100644 index 0000000..279ea69 --- /dev/null +++ b/.config/karabiner/assets/complex_modifications/1676650778.json @@ -0,0 +1,73 @@ +{ + "title": "mouse_button4_to_back_action(command + left_arrow)_and_mouse_button5_to_forward_action(command+right_arrow)", + "rules": [ + { + "description": "Mouse button5 to back in web. NOTE: Default key setting", + "manipulators": [ + { + "from": { + "pointing_button": "button5" + }, + "to": [ + { + "key_code": "right_arrow", + "modifiers": ["left_command"] + } + ], + "type": "basic" + } + ] + }, + { + "description": "Mouse button5 to back in web. NOTE: left_command and left_option is changed to each other. ", + "manipulators": [ + { + "from": { + "pointing_button": "button5" + }, + "to": [ + { + "key_code": "right_arrow", + "modifiers": ["left_option"] + } + ], + "type": "basic" + } + ] + }, + { + "description": "Mouse button4 to back in web. NOTE: Default key setting", + "manipulators": [ + { + "from": { + "pointing_button": "button4" + }, + "to": [ + { + "key_code": "left_arrow", + "modifiers": ["left_command"] + } + ], + "type": "basic" + } + ] + }, + { + "description": "Mouse button4 to back in web. NOTE: left_command and left_option is changed to each other. ", + "manipulators": [ + { + "from": { + "pointing_button": "button4" + }, + "to": [ + { + "key_code": "left_arrow", + "modifiers": ["left_option"] + } + ], + "type": "basic" + } + ] + } + ] +} diff --git a/.config/karabiner/automatic_backups/karabiner_20230217.json b/.config/karabiner/automatic_backups/karabiner_20230217.json new file mode 100644 index 0000000..803cb79 --- /dev/null +++ b/.config/karabiner/automatic_backups/karabiner_20230217.json @@ -0,0 +1,228 @@ +{ + "global": { + "ask_for_confirmation_before_quitting": true, + "check_for_updates_on_startup": true, + "show_in_menu_bar": true, + "show_profile_name_in_menu_bar": false, + "unsafe_ui": false + }, + "profiles": [ + { + "complex_modifications": { + "parameters": { + "basic.simultaneous_threshold_milliseconds": 50, + "basic.to_delayed_action_delay_milliseconds": 500, + "basic.to_if_alone_timeout_milliseconds": 1000, + "basic.to_if_held_down_threshold_milliseconds": 500, + "mouse_motion_to_scroll.speed": 100 + }, + "rules": [] + }, + "devices": [ + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 16768, + "vendor_id": 1578 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 49948, + "vendor_id": 1133 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 0, + "vendor_id": 0 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 0, + "vendor_id": 0 + }, + "ignore": true, + "manipulate_caps_lock_led": false, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 16768, + "vendor_id": 1578 + }, + "ignore": true, + "manipulate_caps_lock_led": false, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + } + ], + "fn_function_keys": [ + { + "from": { + "key_code": "f1" + }, + "to": [ + { + "consumer_key_code": "display_brightness_decrement" + } + ] + }, + { + "from": { + "key_code": "f2" + }, + "to": [ + { + "consumer_key_code": "display_brightness_increment" + } + ] + }, + { + "from": { + "key_code": "f3" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "mission_control" + } + ] + }, + { + "from": { + "key_code": "f4" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "spotlight" + } + ] + }, + { + "from": { + "key_code": "f5" + }, + "to": [ + { + "consumer_key_code": "dictation" + } + ] + }, + { + "from": { + "key_code": "f6" + }, + "to": [ + { + "key_code": "f6" + } + ] + }, + { + "from": { + "key_code": "f7" + }, + "to": [ + { + "consumer_key_code": "rewind" + } + ] + }, + { + "from": { + "key_code": "f8" + }, + "to": [ + { + "consumer_key_code": "play_or_pause" + } + ] + }, + { + "from": { + "key_code": "f9" + }, + "to": [ + { + "consumer_key_code": "fast_forward" + } + ] + }, + { + "from": { + "key_code": "f10" + }, + "to": [ + { + "consumer_key_code": "mute" + } + ] + }, + { + "from": { + "key_code": "f11" + }, + "to": [ + { + "consumer_key_code": "volume_decrement" + } + ] + }, + { + "from": { + "key_code": "f12" + }, + "to": [ + { + "consumer_key_code": "volume_increment" + } + ] + } + ], + "name": "Default profile", + "parameters": { + "delay_milliseconds_before_open_device": 1000 + }, + "selected": true, + "simple_modifications": [], + "virtual_hid_keyboard": { + "country_code": 0, + "indicate_sticky_modifier_keys_state": true, + "mouse_key_xy_scale": 100 + } + } + ] +} \ No newline at end of file diff --git a/.config/karabiner/karabiner.json b/.config/karabiner/karabiner.json new file mode 100644 index 0000000..9a83aac --- /dev/null +++ b/.config/karabiner/karabiner.json @@ -0,0 +1,278 @@ +{ + "global": { + "ask_for_confirmation_before_quitting": true, + "check_for_updates_on_startup": true, + "show_in_menu_bar": true, + "show_profile_name_in_menu_bar": false, + "unsafe_ui": false + }, + "profiles": [ + { + "complex_modifications": { + "parameters": { + "basic.simultaneous_threshold_milliseconds": 50, + "basic.to_delayed_action_delay_milliseconds": 500, + "basic.to_if_alone_timeout_milliseconds": 1000, + "basic.to_if_held_down_threshold_milliseconds": 500, + "mouse_motion_to_scroll.speed": 100 + }, + "rules": [ + { + "description": "Mouse button4 to back in web. NOTE: Default key setting", + "manipulators": [ + { + "from": { + "pointing_button": "button4" + }, + "to": [ + { + "key_code": "left_arrow", + "modifiers": [ + "left_command" + ] + } + ], + "type": "basic" + } + ] + }, + { + "description": "Mouse button5 to back in web. NOTE: Default key setting", + "manipulators": [ + { + "from": { + "pointing_button": "button5" + }, + "to": [ + { + "key_code": "right_arrow", + "modifiers": [ + "left_command" + ] + } + ], + "type": "basic" + } + ] + } + ] + }, + "devices": [ + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 16768, + "vendor_id": 1578 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 49948, + "vendor_id": 1133 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": true, + "is_pointing_device": false, + "product_id": 0, + "vendor_id": 0 + }, + "ignore": false, + "manipulate_caps_lock_led": true, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 0, + "vendor_id": 0 + }, + "ignore": true, + "manipulate_caps_lock_led": false, + "simple_modifications": [], + "treat_as_built_in_keyboard": false + }, + { + "disable_built_in_keyboard_if_exists": false, + "fn_function_keys": [], + "identifiers": { + "is_keyboard": false, + "is_pointing_device": true, + "product_id": 16768, + "vendor_id": 1578 + }, + "ignore": false, + "manipulate_caps_lock_led": false, + "simple_modifications": [ + { + "from": { + "pointing_button": "button3" + }, + "to": [ + { + "key_code": "mission_control" + } + ] + } + ], + "treat_as_built_in_keyboard": false + } + ], + "fn_function_keys": [ + { + "from": { + "key_code": "f1" + }, + "to": [ + { + "consumer_key_code": "display_brightness_decrement" + } + ] + }, + { + "from": { + "key_code": "f2" + }, + "to": [ + { + "consumer_key_code": "display_brightness_increment" + } + ] + }, + { + "from": { + "key_code": "f3" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "mission_control" + } + ] + }, + { + "from": { + "key_code": "f4" + }, + "to": [ + { + "apple_vendor_keyboard_key_code": "spotlight" + } + ] + }, + { + "from": { + "key_code": "f5" + }, + "to": [ + { + "consumer_key_code": "dictation" + } + ] + }, + { + "from": { + "key_code": "f6" + }, + "to": [ + { + "key_code": "f6" + } + ] + }, + { + "from": { + "key_code": "f7" + }, + "to": [ + { + "consumer_key_code": "rewind" + } + ] + }, + { + "from": { + "key_code": "f8" + }, + "to": [ + { + "consumer_key_code": "play_or_pause" + } + ] + }, + { + "from": { + "key_code": "f9" + }, + "to": [ + { + "consumer_key_code": "fast_forward" + } + ] + }, + { + "from": { + "key_code": "f10" + }, + "to": [ + { + "consumer_key_code": "mute" + } + ] + }, + { + "from": { + "key_code": "f11" + }, + "to": [ + { + "consumer_key_code": "volume_decrement" + } + ] + }, + { + "from": { + "key_code": "f12" + }, + "to": [ + { + "consumer_key_code": "volume_increment" + } + ] + } + ], + "name": "Default profile", + "parameters": { + "delay_milliseconds_before_open_device": 1000 + }, + "selected": true, + "simple_modifications": [], + "virtual_hid_keyboard": { + "country_code": 0, + "indicate_sticky_modifier_keys_state": true, + "mouse_key_xy_scale": 100 + } + } + ] +} \ No newline at end of file diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index c61ada2..95eb8d2 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -1,8 +1,9 @@ require "paq" { + "savq/paq-nvim"; "andymass/vim-matchup"; "chrisbra/csv.vim"; "dag/vim-fish"; - "drewtempelmeyer/palenight.vim"; + "dracula/vim"; "elzr/vim-json"; "fs111/pydoc.vim"; "jeffkreeftmeijer/vim-numbertoggle"; @@ -13,10 +14,10 @@ require "paq" { "Konfekt/FastFold"; "lervag/vimtex"; "mpjuers/showcontext"; - 'nathanaelkane/vim-indent-guides'; + "nathanaelkane/vim-indent-guides"; "neovim/nvim-lspconfig"; "tmhedberg/SimpylFold"; - "savq/paq-nvim"; "tpope/vim-commentary"; + "tpope/vim-commentary"; "tpope/vim-fugitive"; "tpope/vim-surround"; "Vimjas/vim-python-pep8-indent"; @@ -93,8 +94,8 @@ for i, map in ipairs(maps) do vim.api.nvim_set_keymap(map[1], map[2], map[3], ma -- status bar colors local o = vim.o -local activestatus = "%#DiffAdd#" -local inactivestatus = "%#TermCursor# %n %#SpellCap# %<%F%m%r%h%w %#TermCursor#" +local activestatus = "%#DraculaOrangeInverse#" +local inactivestatus = "%#DraculaCyan# %n %#SpellCap# %<%F%m%r%h%w %#DraculaToDo#" local venv = vim.api.nvim_eval([[ substitute(system("bash -c 'venv=${VIRTUAL_ENV%/*} \\ && echo ${venv##*/}'"), "\n", "", "g") @@ -107,7 +108,7 @@ statusline = statusline .. activestatus .. " %{toupper(g:currentmode[mode()])} " statusline = statusline .. "%#SpellCap# %<%{expand('%:~:.')}%m%r%h%w " -- File path, modified, readonly, helpfile, preview statusline = statusline .. "%#TermCursorNC# %Y " -- FileType statusline = statusline .. activestatus .. " %{FugitiveHead()} | "statusline = statusline .. activestatus .. venv -statusline = statusline .. " | %#SpellCap#" +statusline = statusline .. " | %#DraculaSearch#" o.statusline = statusline -- autocommand @@ -132,8 +133,6 @@ for i, cmd in ipairs(autocmds) do vim.api.nvim_create_autocmd(cmd[1], cmd[2]) en local set = vim.opt -- colors -set.background = "dark" -vim.cmd("colorscheme palenight") --settings vim.cmd([[ @@ -172,12 +171,11 @@ vim.g.tex_fold_enabled = 1 vim.g.sh_fold_enabled = 5 vim.g.loaded_matchit = 1 vim.g.neoterm_autoscroll = 1 -vim.g.python3_host_prog = "/usr/local/bin/python3" +vim.g.python3_host_prog = "/opt/homebrew/bin/python3" vim.g.indent_guides_enable_on_vim_startup = 1 vim.g.pydoc_cmd = 'python -m pydoc' vim.g.indent_guides_guide_size = 1 -set.termguicolors = true -- set.background = "dark" set.autoread = true set.inccommand = "nosplit" @@ -210,6 +208,9 @@ set.showmode = false vim.cmd("set formatoptions-=c formatoptions-=r formatoptions-=o") vim.cmd("set sessionoptions-=folds") +set.termguicolors = true +set.background = "dark" +vim.cmd("colorscheme dracula") vim.api.nvim_create_augroup("marks", {clear = True}) diff --git a/.config/oh-my-posh/cobalt2.omp.json b/.config/oh-my-posh/cobalt2.omp.json new file mode 100644 index 0000000..d88a402 --- /dev/null +++ b/.config/oh-my-posh/cobalt2.omp.json @@ -0,0 +1,56 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "alignment": "left", + "segments": [ + { + "background": "#1478DB", + "foreground": "#000000", + "leading_diamond": "\ue0b6", + "trailing_diamond": "\uE0B0", + "properties": { + "style": "full" + }, + "style": "diamond", + "template": "{{ .Username}} ", + "type": "text" + }, + { + "background": "#1478DB", + "foreground": "#000000", + "leading_diamond": "\ue0b6", + "trailing_diamond": "\uE0B0", + "properties": { + "style": "full" + }, + "style": "diamond", + "template": "{{ .Path}} ", + "type": "path" + }, + { + "background": "#3AD900", + "background_templates": [ + "{{ if or (.Working.Changed) (.Staging.Changed) }}#FFC600{{ end }}", + "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FFCC80{{ end }}", + "{{ if gt .Ahead 0 }}#B388FF{{ end }}", + "{{ if gt .Behind 0 }}#B388FF{{ end }}" + ], + "foreground": "#000000", + "leading_diamond": "\uE0B0", + "trailing_diamond": "\ue0b4", + "properties": { + "fetch_stash_count": true, + "fetch_status": true + }, + "style": "diamond", + "template": " {{ .HEAD }}{{ if .Staging.Changed }}<#FF6F00> \uf046 {{ .Staging.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if gt .StashCount 0 }} \uf692 {{ .StashCount }}{{ end }} ", + "type": "git" + } + ], + "type": "prompt" + } + ], + "final_space": true, + "version": 2 +} diff --git a/.gitignore b/.gitignore index e3e2a43..c5c6c74 100755 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ bin/ext4fuse .config/Autodesk .config/gtk-2.0 .ipython/ +.tmux/plugins diff --git a/.tmux.conf b/.tmux.conf index 15f42b0..7e62fbe 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -6,7 +6,7 @@ bind-key a send-prefix set-option default-terminal "tmux-256color" set-option -a terminal-overrides ",*256color*:Tc" -set-option -g default-shell /usr/local/bin/fish +set-option -g default-shell /opt/homebrew/bin/fish unbind t bind t new-window unbind n @@ -66,7 +66,8 @@ set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # set -g @plugin 'tmux-plugins/tmux-resurrect' # set -g @plugin 'tmux-plugins/tmux-continuum' -set -g @plugin 'tonylambiris/palenight-tmux' +# set -g @plugin 'tonylambiris/palenight-tmux' +set -g @plugin 'dracula/tmux' # Other examples: # set -g @plugin 'github_username/plugin_name' diff --git a/.tmux/plugins/palenight-tmux b/.tmux/plugins/palenight-tmux deleted file mode 160000 index a1bae1a..0000000 --- a/.tmux/plugins/palenight-tmux +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a1bae1ab9e1c73465e3e49fc09dddff1e99609f0 diff --git a/.tmux/plugins/tmux-continuum b/.tmux/plugins/tmux-continuum deleted file mode 160000 index 190ea9d..0000000 --- a/.tmux/plugins/tmux-continuum +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 190ea9dd2bf58f165333b0e5f8400589e7cf0ee8 diff --git a/.tmux/plugins/tmux-resurrect b/.tmux/plugins/tmux-resurrect deleted file mode 160000 index 199b32b..0000000 --- a/.tmux/plugins/tmux-resurrect +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 199b32b44956633a979a56cdf6a077c233447862 diff --git a/.tmux/plugins/tmux-sensible b/.tmux/plugins/tmux-sensible deleted file mode 160000 index 5d089e4..0000000 --- a/.tmux/plugins/tmux-sensible +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5d089e418efb1a00f47654014ed085deb3d0c878 diff --git a/.tmux/plugins/tpm b/.tmux/plugins/tpm deleted file mode 160000 index b699a7e..0000000 --- a/.tmux/plugins/tpm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b699a7e01c253ffb7818b02d62bce24190ec1019 diff --git a/.tmux/plugins/vim-tmux-navigator b/.tmux/plugins/vim-tmux-navigator deleted file mode 160000 index 9ca5bfe..0000000 --- a/.tmux/plugins/vim-tmux-navigator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80 diff --git a/AppSupport/SavedState/lock b/AppSupport/SavedState/lock new file mode 100644 index 0000000..e69de29 diff --git a/AppSupport/SavedState/restorable-state.sqlite b/AppSupport/SavedState/restorable-state.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..b0df3c2918caea1cd6477ee88b3a4e875063ccdb GIT binary patch literal 12288 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
TM)-R0-@ebh+h)puOWU%jK7Mw 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 literal 0 HcmV?d00001 diff --git a/AppSupport/iterm2-daemon-1.socket.lock b/AppSupport/iterm2-daemon-1.socket.lock new file mode 100644 index 0000000..e69de29 diff --git a/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b b/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b new file mode 100644 index 0000000000000000000000000000000000000000..cbd613642d94b617a6020f956df0797586af7ddc GIT binary patch literal 25137 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 literal 0 HcmV?d00001 diff --git a/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc b/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc new file mode 100644 index 0000000000000000000000000000000000000000..6ae1449e55eb46f0fffa5f978c9aef42721afb32 GIT binary patch literal 16905 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 VSCUBlkYx66zIyiWod5GR`hVY$FRB0l literal 0 HcmV?d00001 diff --git a/AppSupport/version.txt b/AppSupport/version.txt new file mode 100644 index 0000000..1c4bd07 --- /dev/null +++ b/AppSupport/version.txt @@ -0,0 +1 @@ +3.4.19 \ No newline at end of file diff --git a/config/AppSupport b/config/AppSupport new file mode 120000 index 0000000..8ff00b2 --- /dev/null +++ b/config/AppSupport @@ -0,0 +1 @@ +/Users/njuers/Library/Application Support/iTerm2 \ No newline at end of file diff --git a/iterm2/AppSupport/SavedState/lock b/iterm2/AppSupport/SavedState/lock new file mode 100644 index 0000000..e69de29 diff --git a/iterm2/AppSupport/SavedState/restorable-state.sqlite b/iterm2/AppSupport/SavedState/restorable-state.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..b0df3c2918caea1cd6477ee88b3a4e875063ccdb GIT binary patch literal 12288 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
TM)-R0-@ebh+h)puOWU%jK7Mw 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 literal 0 HcmV?d00001 diff --git a/iterm2/AppSupport/iterm2-daemon-1.socket.lock b/iterm2/AppSupport/iterm2-daemon-1.socket.lock new file mode 100644 index 0000000..e69de29 diff --git a/iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b b/iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b new file mode 100644 index 0000000000000000000000000000000000000000..cbd613642d94b617a6020f956df0797586af7ddc GIT binary patch literal 25137 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 literal 0 HcmV?d00001 diff --git a/iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc b/iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc new file mode 100644 index 0000000000000000000000000000000000000000..6ae1449e55eb46f0fffa5f978c9aef42721afb32 GIT binary patch literal 16905 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 VSCUBlkYx66zIyiWod5GR`hVY$FRB0l literal 0 HcmV?d00001 diff --git a/iterm2/AppSupport/version.txt b/iterm2/AppSupport/version.txt new file mode 100644 index 0000000..1c4bd07 --- /dev/null +++ b/iterm2/AppSupport/version.txt @@ -0,0 +1 @@ +3.4.19 \ No newline at end of file From 803744bfb68497ed40fd99fb1a2a91ad33d7130d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 17 Feb 2023 21:48:38 +0000 Subject: [PATCH 04/34] WIP dev host setup not going so well. --- .config/fish/config.fish | 4 +- .config/fish/fishd.fa163e35725f | 32 + .config/fish/functions/fish_prompt.fish | 28 - .../functions/fish_user_key_bindings.fish | 2 + .config/fish/functions/fzf_key_bindings.fish | 1 + .config/nvim/init.lua | 2 +- .gitaliases/.gitaliases | 1 + .hammerspoon/init.lua | 137 -- .jupyter/custom/custom.js | 32 - .jupyter/jupyter_console_config.py | 328 --- .jupyter/jupyter_nbconvert_config.json | 13 - .jupyter/jupyter_notebook_config.json | 9 - .jupyter/jupyter_notebook_config.py | 768 ------ .../themes.jupyterlab-settings | 10 - .../commands.jupyterlab-settings | 15 - .../plugin.jupyterlab-settings | 15 - .../plugin.jupyterlab-settings | 1 - .../shortcuts.jupyterlab-settings | 234 -- .jupyter/migrated | 1 - .jupyter/nbconfig/common.json | 3 - .jupyter/nbconfig/edit.json | 8 - .jupyter/nbconfig/notebook.json | 22 - .jupyter/nbconfig/tree.json | 5 - .taskrc | 42 - .test | 0 .tmux.conf.d/.tmux.conf.d | 1 + bin/bin | 1 + init.lua | 122 - iterm2/AppSupport/SavedState/lock | 0 .../SavedState/restorable-state.sqlite | Bin 12288 -> 0 bytes .../SavedState/restorable-state.sqlite-shm | Bin 32768 -> 0 bytes .../SavedState/restorable-state.sqlite-wal | 0 iterm2/AppSupport/iTermServer-3.4.19 | Bin 217648 -> 0 bytes iterm2/AppSupport/iterm2-daemon-1.socket.lock | 0 ...29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b | Bin 25137 -> 0 bytes ...4ce431b271836326eb46c838f411fa45be6bb493dc | Bin 16905 -> 0 bytes iterm2/AppSupport/version.txt | 1 - kitty/kitty.conf | 2169 ----------------- kitty/palenight.conf | 40 - 39 files changed, 41 insertions(+), 4006 deletions(-) create mode 100644 .config/fish/fishd.fa163e35725f delete mode 100755 .config/fish/functions/fish_prompt.fish create mode 120000 .config/fish/functions/fzf_key_bindings.fish create mode 120000 .gitaliases/.gitaliases delete mode 100755 .hammerspoon/init.lua delete mode 100755 .jupyter/custom/custom.js delete mode 100755 .jupyter/jupyter_console_config.py delete mode 100755 .jupyter/jupyter_nbconvert_config.json delete mode 100755 .jupyter/jupyter_notebook_config.json delete mode 100755 .jupyter/jupyter_notebook_config.py delete mode 100755 .jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings delete mode 100755 .jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings delete mode 100755 .jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings delete mode 100755 .jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/plugin.jupyterlab-settings delete mode 100755 .jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings delete mode 100755 .jupyter/migrated delete mode 100755 .jupyter/nbconfig/common.json delete mode 100755 .jupyter/nbconfig/edit.json delete mode 100755 .jupyter/nbconfig/notebook.json delete mode 100755 .jupyter/nbconfig/tree.json delete mode 100755 .taskrc delete mode 100644 .test create mode 120000 .tmux.conf.d/.tmux.conf.d create mode 120000 bin/bin delete mode 100755 init.lua delete mode 100644 iterm2/AppSupport/SavedState/lock delete mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite delete mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite-shm delete mode 100644 iterm2/AppSupport/SavedState/restorable-state.sqlite-wal delete mode 100755 iterm2/AppSupport/iTermServer-3.4.19 delete mode 100644 iterm2/AppSupport/iterm2-daemon-1.socket.lock delete mode 100644 iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b delete mode 100644 iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc delete mode 100644 iterm2/AppSupport/version.txt delete mode 100644 kitty/kitty.conf delete mode 100644 kitty/palenight.conf diff --git a/.config/fish/config.fish b/.config/fish/config.fish index b1c14e7..14e87ad 100755 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -38,13 +38,13 @@ set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/ll set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/" set -x ENABLE_USER_SITE "False" -set -x PATH /opt/homebrew/bin $PATH set -x PATH /opt/local/bin /opt/local/sbin $PATH set -x MANPATH /opt/local/share/man (manpath) set -x PATH $HOME/bin $PATH set -x PATH $HOME/.cargo/bin $PATH set -x PATH $HOME/.gitaliases $PATH -set -x PATH /opt/homebrew/ $PATH +set -x PATH /usr/local/bin $PATH +set -x PATH /usr/local/cmake/bin $PATH # set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" # set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" diff --git a/.config/fish/fishd.fa163e35725f b/.config/fish/fishd.fa163e35725f new file mode 100644 index 0000000..2a295d9 --- /dev/null +++ b/.config/fish/fishd.fa163e35725f @@ -0,0 +1,32 @@ +# This file is automatically generated by the fish. +# Do NOT edit it directly, your changes will be overwritten. +SET_EXPORT EDITOR:nvim +SET_EXPORT VISUAL:nvim +SET __fish_init_1_50_0:\x1d +SET __fish_init_2_3_0:\x1d +SET fish_color_autosuggestion:555\x1eyellow +SET fish_color_command:005fd7\x1epurple +SET fish_color_comment:red +SET fish_color_cwd:green +SET fish_color_cwd_root:red +SET fish_color_end:green +SET fish_color_error:red\x1e\x2d\x2dbold +SET fish_color_escape:cyan +SET fish_color_history_current:cyan +SET fish_color_host:normal +SET fish_color_match:cyan +SET fish_color_normal:normal +SET fish_color_operator:cyan +SET fish_color_param:00afff\x1ecyan +SET fish_color_quote:brown +SET fish_color_redirection:normal +SET fish_color_search_match:\x2d\x2dbackground\x3dpurple +SET fish_color_selection:\x2d\x2dbackground\x3dpurple +SET fish_color_user:green +SET fish_color_valid_path:\x2d\x2dunderline +SET fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x1b\x5b32mhelp\x1b\x5b30m\x1b\x5bm\x0f\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish +SET fish_pager_color_completion:normal +SET fish_pager_color_description:555\x1eyellow +SET fish_pager_color_prefix:cyan +SET fish_pager_color_progress:cyan +SET fish_user_paths:/home/njuers/\x2efzf/bin diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish deleted file mode 100755 index 46fc094..0000000 --- a/.config/fish/functions/fish_prompt.fish +++ /dev/null @@ -1,28 +0,0 @@ -function fish_prompt --description 'Write out the prompt' - set -l color_cwd - set -l suffix - - switch "$USER" - case root toor - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - else - set color_cwd $fish_color_cwd - end - set suffix '#' - case '*' - set color_cwd $fish_color_cwd - set suffix '🐈 ' - end - - # echo -n -s (__fish_git_prompt '%s') '|' (set_color $color_cwd) (prompt_pwd) (set_color normal) "$suffix" - - set last_status $status - - printf '%s@%s ' (whoami) (prompt_hostname) - printf '%s ' (__fish_git_prompt) - set_color $color_cwd - printf '%s' (prompt_pwd) - set_color normal - echo -n $suffix -end diff --git a/.config/fish/functions/fish_user_key_bindings.fish b/.config/fish/functions/fish_user_key_bindings.fish index 3098071..31497af 100755 --- a/.config/fish/functions/fish_user_key_bindings.fish +++ b/.config/fish/functions/fish_user_key_bindings.fish @@ -2,3 +2,5 @@ function fish_user_key_bindings fish_vi_key_bindings bind \cF -M insert accept-autosuggestion end + +fzf_key_bindings diff --git a/.config/fish/functions/fzf_key_bindings.fish b/.config/fish/functions/fzf_key_bindings.fish new file mode 120000 index 0000000..8bcf1df --- /dev/null +++ b/.config/fish/functions/fzf_key_bindings.fish @@ -0,0 +1 @@ +/home/njuers/.fzf/shell/key-bindings.fish \ No newline at end of file diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 95eb8d2..0a63e5d 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -171,7 +171,7 @@ vim.g.tex_fold_enabled = 1 vim.g.sh_fold_enabled = 5 vim.g.loaded_matchit = 1 vim.g.neoterm_autoscroll = 1 -vim.g.python3_host_prog = "/opt/homebrew/bin/python3" +vim.g.python3_host_prog = "/usr/bin/python3" vim.g.indent_guides_enable_on_vim_startup = 1 vim.g.pydoc_cmd = 'python -m pydoc' vim.g.indent_guides_guide_size = 1 diff --git a/.gitaliases/.gitaliases b/.gitaliases/.gitaliases new file mode 120000 index 0000000..3a1ca66 --- /dev/null +++ b/.gitaliases/.gitaliases @@ -0,0 +1 @@ +/home/njuers/dotfiles/.gitaliases \ No newline at end of file diff --git a/.hammerspoon/init.lua b/.hammerspoon/init.lua deleted file mode 100755 index c0e9050..0000000 --- a/.hammerspoon/init.lua +++ /dev/null @@ -1,137 +0,0 @@ -hs.grid.setGrid('6x6') -hs.grid.ui.textSize = 50 -hs.window.animationDuration = 0 -hs.grid.HINTS = { - {"Q", "W", "E", "R", "T", "Y"}, - {"U", "I", "O", "P", "[", "]"}, - {"A", "S", "D", "F", "G", "H"}, - {"J", "K", "L", ";", "'", "Z"}, - {"N", "M", ",", ".", "/", "1"} -} - --- hs.hotkey.bind({"cmd", "shift"}, "H", function() --- local win = hs.window.focusedWindow() --- local f = win:frame() --- local screen = win:screen() --- local max = screen:frame() - --- f.x = max.x --- f.y = max.y --- f.w = max.w / 2 --- f.h = max.h --- win:setFrame(f) --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "1", function() --- local win = hs.window.focusedWindow() --- local rect = hs.geometry(0,0,4,4) --- hs.grid.set(win, rect) --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "2", function() --- local win = hs.window.focusedWindow() --- local rect = hs.geometry(2,0,4,4) --- hs.grid.set(win, rect) --- end) --- -hyper = {"shift", "alt"} -hyper2 = {"ctrl", "alt", "shift"} - -hs.hotkey.bind(hyper, "L", function() - local win = hs.window.focusedWindow() - local rect = hs.geometry(3,0,3,6) - hs.grid.set(win, rect) -end) - -hs.hotkey.bind(hyper, "H", function() - local win = hs.window.focusedWindow() - local rect = hs.geometry(0,0,3,6) - hs.grid.set(win, rect) -end) - -hs.hotkey.bind(hyper2, "H", function() - hs.window.focusedWindow():moveOneScreenWest() -end) - -hs.hotkey.bind(hyper2, "L", function() - hs.window.focusedWindow():moveOneScreenEast() -end) - -hs.hotkey.bind(hyper, "space", hs.grid.maximizeWindow) - -hs.hotkey.bind(hyper, ".", hs.hints.windowHints) -hs.hotkey.bind(hyper, "G", hs.grid.show) - -expose = hs.expose.new(nil) -expose_app = hs.expose.new(nil, {onlyActiveApplication = true}) - -hs.hotkey.bind(hyper, "E", function() expose:toggleShow() end) -hs.hotkey.bind(hyper, "A", function() expose_app:toggleShow() end) - -caffeine = hs.menubar.new() -function setCaffeineDisplay(state) - if state then - caffeine:setTitle("☕️") - else - caffeine:setTitle("💤") - end -end - -function caffeineClicked() - setCaffeineDisplay(hs.caffeinate.toggle("displayIdle")) -end - -if caffeine then - caffeine:setClickCallback(caffeineClicked) - setCaffeineDisplay(hs.caffeinate.get("displayIdle")) -end - -setCaffeineDisplay(hs.caffeinate.toggle('displayIdle')) - -hs.loadSpoon('EjectMenu') -spoon.EjectMenu:start() -spoon.EjectMenu:bindHotkeys({ejectAll = {hyper2, 'e'}}) - --- --- Requires an API Access Token from Bit.ly -local BITLY_API_ACCESS_TOKEN = "e72c99ea3cd57861e530b5388de556297c49f736" - -hs.hotkey.bind({"cmd", "alt", "ctrl"}, "S", function() - local board = hs.pasteboard.getContents() - - if board:match("^https?://") then - local response = hs.http.asyncGet( - "https://api-ssl.bitly.com/v3/shorten" .. - "?access_token=" .. BITLY_API_ACCESS_TOKEN .. - "&longUrl=" .. hs.http.encodeForQuery(board), - {}, - function(status, response, headers) - if status == 200 then - local msg = hs.json.decode(response) - - hs.pasteboard.setContents(msg.data.url) - hs.notify.new({title="Bitly URL Shorten: Success", informativeText=msg.data.url}):send() - else - hs.notify.new({title="Bitly URL Shorten: Failure", informativeText=response}):send() - end - end - ) - else - hs.notify.new({title="Bitly URL Shorten: Failure", informativeText="Expected: URL"}):send() - end -end) - -hs.hotkey.bind({"ctrl", "shift"}, "space", function() - local app = hs.application.get("kitty") - if app then - if not app:mainWindow() then - app:selectMenuItem({"kitty", "New OS window"}) - elseif app:isFrontmost() then - app:hide() - else - app:activate() - end - else - hs.application.launchOrFocus("kitty") - end -end) diff --git a/.jupyter/custom/custom.js b/.jupyter/custom/custom.js deleted file mode 100755 index 5d0ddb3..0000000 --- a/.jupyter/custom/custom.js +++ /dev/null @@ -1,32 +0,0 @@ -require(["nbextensions/snippets_menu/main"], function (snippets_menu) { - console.log('Loading `snippets_menu` customizations from `custom.js`'); - var horizontal_line = '---'; - var my_favorites = { - 'name' : 'Misc\.', - 'sub-menu' : [ - { - 'name' : 'Show all output', - 'snippet' : ['from IPython.core.interactiveshell import InteractiveShell', - 'InteractiveShell.ast_node_interactivity = "all"',], - }, - { - 'name' : 'Cache function output', - 'snippet' : ['from joblib import Memory', - '# memory = Memory(location=, verbose=0)', - '# Use as decorator:', - '# @memory.cache', - '# def function()', - '# ...', - '# or memory.cache(fun)()'], - }, - { - 'name' : 'Another menu item', - 'snippet' : ['another_new_command(2.78)',], - }, - ], - }; - snippets_menu.options['menus'] = snippets_menu.default_menus; - snippets_menu.options['menus'][0]['sub-menu'].push(horizontal_line); - snippets_menu.options['menus'][0]['sub-menu'].push(my_favorites); - console.log('Loaded `snippets_menu` customizations from `custom.js`'); -}); diff --git a/.jupyter/jupyter_console_config.py b/.jupyter/jupyter_console_config.py deleted file mode 100755 index b2783b5..0000000 --- a/.jupyter/jupyter_console_config.py +++ /dev/null @@ -1,328 +0,0 @@ -# Configuration file for jupyter-console. - -#------------------------------------------------------------------------------ -# ConnectionFileMixin(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Mixin for configurable classes that work with connection files - -## JSON file in which to store connection info [default: kernel-.json] -# -# This file will contain the IP, ports, and authentication key needed to connect -# clients to this kernel. By default, this file will be created in the security -# dir of the current profile, but can be specified by absolute path. -#c.ConnectionFileMixin.connection_file = '' - -## set the control (ROUTER) port [default: random] -#c.ConnectionFileMixin.control_port = 0 - -## set the heartbeat port [default: random] -#c.ConnectionFileMixin.hb_port = 0 - -## set the iopub (PUB) port [default: random] -#c.ConnectionFileMixin.iopub_port = 0 - -## Set the kernel's IP address [default localhost]. If the IP address is -# something other than localhost, then Consoles on other machines will be able -# to connect to the Kernel, so be careful! -#c.ConnectionFileMixin.ip = '' - -## set the shell (ROUTER) port [default: random] -#c.ConnectionFileMixin.shell_port = 0 - -## set the stdin (ROUTER) port [default: random] -#c.ConnectionFileMixin.stdin_port = 0 - -## -#c.ConnectionFileMixin.transport = 'tcp' - -#------------------------------------------------------------------------------ -# JupyterConsoleApp(ConnectionFileMixin) configuration -#------------------------------------------------------------------------------ - -## Set to display confirmation dialog on exit. You can always use 'exit' or -# 'quit', to force a direct exit without any confirmation. -#c.JupyterConsoleApp.confirm_exit = True - -## Connect to an already running kernel -#c.JupyterConsoleApp.existing = '' - -## The name of the default kernel to start. -#c.JupyterConsoleApp.kernel_name = 'python' - -## Path to the ssh key to use for logging in to the ssh server. -#c.JupyterConsoleApp.sshkey = '' - -## The SSH server to use to connect to the kernel. -#c.JupyterConsoleApp.sshserver = '' - -#------------------------------------------------------------------------------ -# Application(SingletonConfigurable) configuration -#------------------------------------------------------------------------------ - -## This is an application. - -## The date format used by logging formatters for %(asctime)s -#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' - -## The Logging format template -#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' - -## Set the log level by value or name. -#c.Application.log_level = 30 - -#------------------------------------------------------------------------------ -# JupyterApp(Application) configuration -#------------------------------------------------------------------------------ - -## Base class for Jupyter applications - -## Answer yes to any prompts. -#c.JupyterApp.answer_yes = False - -## Full path of a config file. -#c.JupyterApp.config_file = '' - -## Specify a config file to load. -#c.JupyterApp.config_file_name = '' - -## Generate default config file. -#c.JupyterApp.generate_config = False - -#------------------------------------------------------------------------------ -# ZMQTerminalIPythonApp(JupyterApp,JupyterConsoleApp) configuration -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# ZMQTerminalInteractiveShell(SingletonConfigurable) configuration -#------------------------------------------------------------------------------ - -## Text to display before the first prompt. Will be formatted with variables -# {version} and {kernel_banner}. -#c.ZMQTerminalInteractiveShell.banner = 'Jupyter console {version}\n\n{kernel_banner}' - -## Callable object called via 'callable' image handler with one argument, `data`, -# which is `msg["content"]["data"]` where `msg` is the message from iopub -# channel. For example, you can find base64 encoded PNG data as -# `data['image/png']`. If your function can't handle the data supplied, it -# should return `False` to indicate this. -#c.ZMQTerminalInteractiveShell.callable_image_handler = None - -## Shortcut style to use at the prompt. 'vi' or 'emacs'. -c.ZMQTerminalInteractiveShell.editing_mode = 'vi' - -## Highlight matching brackets. -#c.ZMQTerminalInteractiveShell.highlight_matching_brackets = True - -## The name of a Pygments style to use for syntax highlighting -#c.ZMQTerminalInteractiveShell.highlighting_style = '' - -## Override highlighting format for specific tokens -#c.ZMQTerminalInteractiveShell.highlighting_style_overrides = {} - -## How many history items to load into memory -#c.ZMQTerminalInteractiveShell.history_load_length = 1000 - -## Handler for image type output. This is useful, for example, when connecting -# to the kernel in which pylab inline backend is activated. There are four -# handlers defined. 'PIL': Use Python Imaging Library to popup image; 'stream': -# Use an external program to show the image. Image will be fed into the STDIN -# of the program. You will need to configure `stream_image_handler`; -# 'tempfile': Use an external program to show the image. Image will be saved in -# a temporally file and the program is called with the temporally file. You -# will need to configure `tempfile_image_handler`; 'callable': You can set any -# Python callable which is called with the image data. You will need to -# configure `callable_image_handler`. -#c.ZMQTerminalInteractiveShell.image_handler = 'PIL' - -## Whether to include output from clients other than this one sharing the same -# kernel. -# -# Outputs are not displayed until enter is pressed. -#c.ZMQTerminalInteractiveShell.include_other_output = False - -## Timeout (in seconds) for giving up on a kernel's is_complete response. -# -# If the kernel does not respond at any point within this time, the kernel will -# no longer be asked if code is complete, and the console will default to the -# built-in is_complete test. -#c.ZMQTerminalInteractiveShell.kernel_is_complete_timeout = 1 - -## Timeout for giving up on a kernel (in seconds). -# -# On first connect and restart, the console tests whether the kernel is running -# and responsive by sending kernel_info_requests. This sets the timeout in -# seconds for how long the kernel can take before being presumed dead. -#c.ZMQTerminalInteractiveShell.kernel_timeout = 60 - -## Preferred object representation MIME type in order. First matched MIME type -# will be used. -#c.ZMQTerminalInteractiveShell.mime_preference = ['image/png', 'image/jpeg', 'image/svg+xml'] - -## Prefix to add to outputs coming from clients other than this one. -# -# Only relevant if include_other_output is True. -#c.ZMQTerminalInteractiveShell.other_output_prefix = '[remote] ' - -## Use simple fallback prompt. Features may be limited. -#c.ZMQTerminalInteractiveShell.simple_prompt = False - -## Command to invoke an image viewer program when you are using 'stream' image -# handler. This option is a list of string where the first element is the -# command itself and reminders are the options for the command. Raw image data -# is given as STDIN to the program. -#c.ZMQTerminalInteractiveShell.stream_image_handler = [] - -## Command to invoke an image viewer program when you are using 'tempfile' image -# handler. This option is a list of string where the first element is the -# command itself and reminders are the options for the command. You can use -# {file} and {format} in the string to represent the location of the generated -# image file and image format. -#c.ZMQTerminalInteractiveShell.tempfile_image_handler = [] - -## Use 24bit colors instead of 256 colors in prompt highlighting. If your -# terminal supports true color, the following command should print 'TRUECOLOR' -# in orange: printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n" -#c.ZMQTerminalInteractiveShell.true_color = False - -## Whether to use the kernel's is_complete message handling. If False, then the -# frontend will use its own is_complete handler. -#c.ZMQTerminalInteractiveShell.use_kernel_is_complete = True - -#------------------------------------------------------------------------------ -# KernelManager(ConnectionFileMixin) configuration -#------------------------------------------------------------------------------ - -## Manages a single kernel in a subprocess on this host. -# -# This version starts kernels with Popen. - -## Should we autorestart the kernel if it dies. -#c.KernelManager.autorestart = True - -## DEPRECATED: Use kernel_name instead. -# -# The Popen Command to launch the kernel. Override this if you have a custom -# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not -# pass any arguments to the kernel, because it cannot make any assumptions about -# the arguments that the kernel understands. In particular, this means that the -# kernel does not receive the option --debug if it given on the Jupyter command -# line. -#c.KernelManager.kernel_cmd = [] - -## Time to wait for a kernel to terminate before killing it, in seconds. -#c.KernelManager.shutdown_wait_time = 5.0 - -#------------------------------------------------------------------------------ -# KernelRestarter(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Monitor and autorestart a kernel. - -## Whether to include every poll event in debugging output. -# -# Has to be set explicitly, because there will be *a lot* of output. -#c.KernelRestarter.debug = False - -## Whether to choose new random ports when restarting before the kernel is alive. -#c.KernelRestarter.random_ports_until_alive = True - -## The number of consecutive autorestarts before the kernel is presumed dead. -#c.KernelRestarter.restart_limit = 5 - -## Kernel heartbeat interval in seconds. -#c.KernelRestarter.time_to_dead = 3.0 - -#------------------------------------------------------------------------------ -# Session(Configurable) configuration -#------------------------------------------------------------------------------ - -## Object for handling serialization and sending of messages. -# -# The Session object handles building messages and sending them with ZMQ sockets -# or ZMQStream objects. Objects can communicate with each other over the -# network via Session objects, and only need to work with the dict-based IPython -# message spec. The Session will handle serialization/deserialization, security, -# and metadata. -# -# Sessions support configurable serialization via packer/unpacker traits, and -# signing with HMAC digests via the key/keyfile traits. -# -# Parameters ---------- -# -# debug : bool -# whether to trigger extra debugging statements -# packer/unpacker : str : 'json', 'pickle' or import_string -# importstrings for methods to serialize message parts. If just -# 'json' or 'pickle', predefined JSON and pickle packers will be used. -# Otherwise, the entire importstring must be used. -# -# The functions must accept at least valid JSON input, and output *bytes*. -# -# For example, to use msgpack: -# packer = 'msgpack.packb', unpacker='msgpack.unpackb' -# pack/unpack : callables -# You can also set the pack/unpack callables for serialization directly. -# session : bytes -# the ID of this Session object. The default is to generate a new UUID. -# username : unicode -# username added to message headers. The default is to ask the OS. -# key : bytes -# The key used to initialize an HMAC signature. If unset, messages -# will not be signed or checked. -# keyfile : filepath -# The file containing a key. If this is set, `key` will be initialized -# to the contents of the file. - -## Threshold (in bytes) beyond which an object's buffer should be extracted to -# avoid pickling. -#c.Session.buffer_threshold = 1024 - -## Whether to check PID to protect against calls after fork. -# -# This check can be disabled if fork-safety is handled elsewhere. -#c.Session.check_pid = True - -## Threshold (in bytes) beyond which a buffer should be sent without copying. -#c.Session.copy_threshold = 65536 - -## Debug output in the Session -#c.Session.debug = False - -## The maximum number of digests to remember. -# -# The digest history will be culled when it exceeds this value. -#c.Session.digest_history_size = 65536 - -## The maximum number of items for a container to be introspected for custom -# serialization. Containers larger than this are pickled outright. -#c.Session.item_threshold = 64 - -## execution key, for signing messages. -#c.Session.key = b'' - -## path to file containing execution key. -#c.Session.keyfile = '' - -## Metadata dictionary, which serves as the default top-level metadata dict for -# each message. -#c.Session.metadata = {} - -## The name of the packer for serializing messages. Should be one of 'json', -# 'pickle', or an import name for a custom callable serializer. -#c.Session.packer = 'json' - -## The UUID identifying this session. -#c.Session.session = '' - -## The digest scheme used to construct the message signatures. Must have the form -# 'hmac-HASH'. -#c.Session.signature_scheme = 'hmac-sha256' - -## The name of the unpacker for unserializing messages. Only used with custom -# functions for `packer`. -#c.Session.unpacker = 'json' - -## Username for the Session. Default is your system username. -#c.Session.username = 'mpjuers' - diff --git a/.jupyter/jupyter_nbconvert_config.json b/.jupyter/jupyter_nbconvert_config.json deleted file mode 100755 index 1e4011c..0000000 --- a/.jupyter/jupyter_nbconvert_config.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version": 1, - "Exporter": { - "template_path": [ - ".", - "/Users/mpjuers/.pyenv/versions/3.7.0/lib/python3.7/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_notebook_config.json b/.jupyter/jupyter_notebook_config.json deleted file mode 100755 index a39fb4a..0000000 --- a/.jupyter/jupyter_notebook_config.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "NotebookApp": { - "nbserver_extensions": { - "jupyter_nbextensions_configurator": true, - "jupyterlab_code_formatter": true - }, - "password": "sha1:075d037d772c:165f616375b521286aa7bf64e5f9b08496993946" - } -} \ No newline at end of file diff --git a/.jupyter/jupyter_notebook_config.py b/.jupyter/jupyter_notebook_config.py deleted file mode 100755 index 607f8d1..0000000 --- a/.jupyter/jupyter_notebook_config.py +++ /dev/null @@ -1,768 +0,0 @@ -# Configuration file for jupyter-notebook. - -#------------------------------------------------------------------------------ -# Application(SingletonConfigurable) configuration -#------------------------------------------------------------------------------ - -## This is an application. - -## The date format used by logging formatters for %(asctime)s -#c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' - -## The Logging format template -#c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' - -## Set the log level by value or name. -#c.Application.log_level = 30 - -#------------------------------------------------------------------------------ -# JupyterApp(Application) configuration -#------------------------------------------------------------------------------ - -## Base class for Jupyter applications - -## Answer yes to any prompts. -#c.JupyterApp.answer_yes = False - -## Full path of a config file. -#c.JupyterApp.config_file = '' - -## Specify a config file to load. -#c.JupyterApp.config_file_name = '' - -## Generate default config file. -#c.JupyterApp.generate_config = False - -#------------------------------------------------------------------------------ -# NotebookApp(JupyterApp) configuration -#------------------------------------------------------------------------------ - -## Set the Access-Control-Allow-Credentials: true header -#c.NotebookApp.allow_credentials = False - -## Set the Access-Control-Allow-Origin header -# -# Use '*' to allow any origin to access your server. -# -# Takes precedence over allow_origin_pat. -#c.NotebookApp.allow_origin = '' - -## Use a regular expression for the Access-Control-Allow-Origin header -# -# Requests from an origin matching the expression will get replies with: -# -# Access-Control-Allow-Origin: origin -# -# where `origin` is the origin of the request. -# -# Ignored if allow_origin is set. -#c.NotebookApp.allow_origin_pat = '' - -## Allow password to be changed at login for the notebook server. -# -# While loggin in with a token, the notebook server UI will give the opportunity -# to the user to enter a new password at the same time that will replace the -# token login mechanism. -# -# This can be set to false to prevent changing password from the UI/API. -#c.NotebookApp.allow_password_change = True - -## Allow requests where the Host header doesn't point to a local server -# -# By default, requests get a 403 forbidden response if the 'Host' header shows -# that the browser thinks it's on a non-local domain. Setting this option to -# True disables this check. -# -# This protects against 'DNS rebinding' attacks, where a remote web server -# serves you a page and then changes its DNS to send later requests to a local -# IP, bypassing same-origin checks. -# -# Local IP addresses (such as 127.0.0.1 and ::1) are allowed as local, along -# with hostnames configured in local_hostnames. -#c.NotebookApp.allow_remote_access = False - -## Whether to allow the user to run the notebook as root. -#c.NotebookApp.allow_root = False - -## DEPRECATED use base_url -#c.NotebookApp.base_project_url = '/' - -## The base URL for the notebook server. -# -# Leading and trailing slashes can be omitted, and will automatically be added. -#c.NotebookApp.base_url = '/' - -## Specify what command to use to invoke a web browser when opening the notebook. -# If not specified, the default browser will be determined by the `webbrowser` -# standard library module, which allows setting of the BROWSER environment -# variable to override it. -#c.NotebookApp.browser = '' - -## The full path to an SSL/TLS certificate file. -#c.NotebookApp.certfile = '' - -## The full path to a certificate authority certificate for SSL/TLS client -# authentication. -#c.NotebookApp.client_ca = '' - -## The config manager class to use -#c.NotebookApp.config_manager_class = 'notebook.services.config.manager.ConfigManager' - -## The notebook manager class to use. -#c.NotebookApp.contents_manager_class = 'notebook.services.contents.largefilemanager.LargeFileManager' - -## Extra keyword arguments to pass to `set_secure_cookie`. See tornado's -# set_secure_cookie docs for details. -#c.NotebookApp.cookie_options = {} - -## The random bytes used to secure cookies. By default this is a new random -# number every time you start the Notebook. Set it to a value in a config file -# to enable logins to persist across server sessions. -# -# Note: Cookie secrets should be kept private, do not share config files with -# cookie_secret stored in plaintext (you can read the value from a file). -#c.NotebookApp.cookie_secret = b'' - -## The file where the cookie secret is stored. -#c.NotebookApp.cookie_secret_file = '' - -## Override URL shown to users. -# -# Replace actual URL, including protocol, address, port and base URL, with the -# given value when displaying URL to the users. Do not change the actual -# connection URL. If authentication token is enabled, the token is added to the -# custom URL automatically. -# -# This option is intended to be used when the URL to display to the user cannot -# be determined reliably by the Jupyter notebook server (proxified or -# containerized setups for example). -#c.NotebookApp.custom_display_url = '' - -## The default URL to redirect to from `/` -#c.NotebookApp.default_url = '/tree' - -## Disable cross-site-request-forgery protection -# -# Jupyter notebook 4.3.1 introduces protection from cross-site request -# forgeries, requiring API requests to either: -# -# - originate from pages served by this server (validated with XSRF cookie and -# token), or - authenticate with a token -# -# Some anonymous compute resources still desire the ability to run code, -# completely without authentication. These services can disable all -# authentication and security checks, with the full knowledge of what that -# implies. -#c.NotebookApp.disable_check_xsrf = False - -## Whether to enable MathJax for typesetting math/TeX -# -# MathJax is the javascript library Jupyter uses to render math/LaTeX. It is -# very large, so you may want to disable it if you have a slow internet -# connection, or for offline use of the notebook. -# -# When disabled, equations etc. will appear as their untransformed TeX source. -#c.NotebookApp.enable_mathjax = True - -## extra paths to look for Javascript notebook extensions -#c.NotebookApp.extra_nbextensions_path = [] - -## handlers that should be loaded at higher priority than the default services -#c.NotebookApp.extra_services = [] - -## Extra paths to search for serving static files. -# -# This allows adding javascript/css to be available from the notebook server -# machine, or overriding individual files in the IPython -#c.NotebookApp.extra_static_paths = [] - -## Extra paths to search for serving jinja templates. -# -# Can be used to override templates from notebook.templates. -#c.NotebookApp.extra_template_paths = [] - -## -#c.NotebookApp.file_to_run = '' - -## Extra keyword arguments to pass to `get_secure_cookie`. See tornado's -# get_secure_cookie docs for details. -#c.NotebookApp.get_secure_cookie_kwargs = {} - -## Deprecated: Use minified JS file or not, mainly use during dev to avoid JS -# recompilation -#c.NotebookApp.ignore_minified_js = False - -## (bytes/sec) Maximum rate at which stream output can be sent on iopub before -# they are limited. -#c.NotebookApp.iopub_data_rate_limit = 1000000 - -## (msgs/sec) Maximum rate at which messages can be sent on iopub before they are -# limited. -#c.NotebookApp.iopub_msg_rate_limit = 1000 - -## The IP address the notebook server will listen on. -#c.NotebookApp.ip = 'localhost' - -## Supply extra arguments that will be passed to Jinja environment. -#c.NotebookApp.jinja_environment_options = {} - -## Extra variables to supply to jinja templates when rendering. -#c.NotebookApp.jinja_template_vars = {} - -## The kernel manager class to use. -#c.NotebookApp.kernel_manager_class = 'notebook.services.kernels.kernelmanager.MappingKernelManager' - -## The kernel spec manager class to use. Should be a subclass of -# `jupyter_client.kernelspec.KernelSpecManager`. -# -# The Api of KernelSpecManager is provisional and might change without warning -# between this version of Jupyter and the next stable one. -#c.NotebookApp.kernel_spec_manager_class = 'jupyter_client.kernelspec.KernelSpecManager' - -## The full path to a private key file for usage with SSL/TLS. -#c.NotebookApp.keyfile = '' - -## Hostnames to allow as local when allow_remote_access is False. -# -# Local IP addresses (such as 127.0.0.1 and ::1) are automatically accepted as -# local as well. -#c.NotebookApp.local_hostnames = ['localhost'] - -## The login handler class to use. -#c.NotebookApp.login_handler_class = 'notebook.auth.login.LoginHandler' - -## The logout handler class to use. -#c.NotebookApp.logout_handler_class = 'notebook.auth.logout.LogoutHandler' - -## The MathJax.js configuration file that is to be used. -#c.NotebookApp.mathjax_config = 'TeX-AMS-MML_HTMLorMML-full,Safe' - -## A custom url for MathJax.js. Should be in the form of a case-sensitive url to -# MathJax, for example: /static/components/MathJax/MathJax.js -#c.NotebookApp.mathjax_url = '' - -## Sets the maximum allowed size of the client request body, specified in the -# Content-Length request header field. If the size in a request exceeds the -# configured value, a malformed HTTP message is returned to the client. -# -# Note: max_body_size is applied even in streaming mode. -#c.NotebookApp.max_body_size = 536870912 - -## Gets or sets the maximum amount of memory, in bytes, that is allocated for -# use by the buffer manager. -#c.NotebookApp.max_buffer_size = 536870912 - -## Dict of Python modules to load as notebook server extensions.Entry values can -# be used to enable and disable the loading ofthe extensions. The extensions -# will be loaded in alphabetical order. -#c.NotebookApp.nbserver_extensions = {} - -## The directory to use for notebooks and kernels. -#c.NotebookApp.notebook_dir = '' - -## Whether to open in a browser after starting. The specific browser used is -# platform dependent and determined by the python standard library `webbrowser` -# module, unless it is overridden using the --browser (NotebookApp.browser) -# configuration option. -#c.NotebookApp.open_browser = True - -## Hashed password to use for web authentication. -# -# To generate, type in a python/IPython shell: -# -# from notebook.auth import passwd; passwd() -# -# The string should be of the form type:salt:hashed-password. -#c.NotebookApp.password = '' - -## Forces users to use a password for the Notebook server. This is useful in a -# multi user environment, for instance when everybody in the LAN can access each -# other's machine through ssh. -# -# In such a case, server the notebook server on localhost is not secure since -# any user can connect to the notebook server via ssh. -#c.NotebookApp.password_required = False - -## The port the notebook server will listen on. -#c.NotebookApp.port = 8888 - -## The number of additional ports to try if the specified port is not available. -#c.NotebookApp.port_retries = 50 - -## DISABLED: use %pylab or %matplotlib in the notebook to enable matplotlib. -#c.NotebookApp.pylab = 'disabled' - -## If True, display a button in the dashboard to quit (shutdown the notebook -# server). -#c.NotebookApp.quit_button = True - -## (sec) Time window used to check the message and data rate limits. -#c.NotebookApp.rate_limit_window = 3 - -## Reraise exceptions encountered loading server extensions? -#c.NotebookApp.reraise_server_extension_failures = False - -## DEPRECATED use the nbserver_extensions dict instead -#c.NotebookApp.server_extensions = [] - -## The session manager class to use. -#c.NotebookApp.session_manager_class = 'notebook.services.sessions.sessionmanager.SessionManager' - -## Shut down the server after N seconds with no kernels or terminals running and -# no activity. This can be used together with culling idle kernels -# (MappingKernelManager.cull_idle_timeout) to shutdown the notebook server when -# it's not in use. This is not precisely timed: it may shut down up to a minute -# later. 0 (the default) disables this automatic shutdown. -#c.NotebookApp.shutdown_no_activity_timeout = 0 - -## Supply SSL options for the tornado HTTPServer. See the tornado docs for -# details. -#c.NotebookApp.ssl_options = {} - -## Supply overrides for terminado. Currently only supports "shell_command". -#c.NotebookApp.terminado_settings = {} - -## Set to False to disable terminals. -# -# This does *not* make the notebook server more secure by itself. Anything the -# user can in a terminal, they can also do in a notebook. -# -# Terminals may also be automatically disabled if the terminado package is not -# available. -#c.NotebookApp.terminals_enabled = True - -## Token used for authenticating first-time connections to the server. -# -# When no password is enabled, the default is to generate a new, random token. -# -# Setting to an empty string disables authentication altogether, which is NOT -# RECOMMENDED. -#c.NotebookApp.token = '' - -## Supply overrides for the tornado.web.Application that the Jupyter notebook -# uses. -#c.NotebookApp.tornado_settings = {} - -## Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded- -# For headerssent by the upstream reverse proxy. Necessary if the proxy handles -# SSL -#c.NotebookApp.trust_xheaders = False - -## DEPRECATED, use tornado_settings -#c.NotebookApp.webapp_settings = {} - -## Specify Where to open the notebook on startup. This is the `new` argument -# passed to the standard library method `webbrowser.open`. The behaviour is not -# guaranteed, but depends on browser support. Valid values are: -# -# - 2 opens a new tab, -# - 1 opens a new window, -# - 0 opens in an existing window. -# -# See the `webbrowser.open` documentation for details. -#c.NotebookApp.webbrowser_open_new = 2 - -## Set the tornado compression options for websocket connections. -# -# This value will be returned from -# :meth:`WebSocketHandler.get_compression_options`. None (default) will disable -# compression. A dict (even an empty one) will enable compression. -# -# See the tornado docs for WebSocketHandler.get_compression_options for details. -#c.NotebookApp.websocket_compression_options = None - -## The base URL for websockets, if it differs from the HTTP server (hint: it -# almost certainly doesn't). -# -# Should be in the form of an HTTP origin: ws[s]://hostname[:port] -#c.NotebookApp.websocket_url = '' - -#------------------------------------------------------------------------------ -# ConnectionFileMixin(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Mixin for configurable classes that work with connection files - -## JSON file in which to store connection info [default: kernel-.json] -# -# This file will contain the IP, ports, and authentication key needed to connect -# clients to this kernel. By default, this file will be created in the security -# dir of the current profile, but can be specified by absolute path. -#c.ConnectionFileMixin.connection_file = '' - -## set the control (ROUTER) port [default: random] -#c.ConnectionFileMixin.control_port = 0 - -## set the heartbeat port [default: random] -#c.ConnectionFileMixin.hb_port = 0 - -## set the iopub (PUB) port [default: random] -#c.ConnectionFileMixin.iopub_port = 0 - -## Set the kernel's IP address [default localhost]. If the IP address is -# something other than localhost, then Consoles on other machines will be able -# to connect to the Kernel, so be careful! -#c.ConnectionFileMixin.ip = '' - -## set the shell (ROUTER) port [default: random] -#c.ConnectionFileMixin.shell_port = 0 - -## set the stdin (ROUTER) port [default: random] -#c.ConnectionFileMixin.stdin_port = 0 - -## -#c.ConnectionFileMixin.transport = 'tcp' - -#------------------------------------------------------------------------------ -# KernelManager(ConnectionFileMixin) configuration -#------------------------------------------------------------------------------ - -## Manages a single kernel in a subprocess on this host. -# -# This version starts kernels with Popen. - -## Should we autorestart the kernel if it dies. -#c.KernelManager.autorestart = True - -## DEPRECATED: Use kernel_name instead. -# -# The Popen Command to launch the kernel. Override this if you have a custom -# kernel. If kernel_cmd is specified in a configuration file, Jupyter does not -# pass any arguments to the kernel, because it cannot make any assumptions about -# the arguments that the kernel understands. In particular, this means that the -# kernel does not receive the option --debug if it given on the Jupyter command -# line. -#c.KernelManager.kernel_cmd = [] - -## Time to wait for a kernel to terminate before killing it, in seconds. -#c.KernelManager.shutdown_wait_time = 5.0 - -#------------------------------------------------------------------------------ -# Session(Configurable) configuration -#------------------------------------------------------------------------------ - -## Object for handling serialization and sending of messages. -# -# The Session object handles building messages and sending them with ZMQ sockets -# or ZMQStream objects. Objects can communicate with each other over the -# network via Session objects, and only need to work with the dict-based IPython -# message spec. The Session will handle serialization/deserialization, security, -# and metadata. -# -# Sessions support configurable serialization via packer/unpacker traits, and -# signing with HMAC digests via the key/keyfile traits. -# -# Parameters ---------- -# -# debug : bool -# whether to trigger extra debugging statements -# packer/unpacker : str : 'json', 'pickle' or import_string -# importstrings for methods to serialize message parts. If just -# 'json' or 'pickle', predefined JSON and pickle packers will be used. -# Otherwise, the entire importstring must be used. -# -# The functions must accept at least valid JSON input, and output *bytes*. -# -# For example, to use msgpack: -# packer = 'msgpack.packb', unpacker='msgpack.unpackb' -# pack/unpack : callables -# You can also set the pack/unpack callables for serialization directly. -# session : bytes -# the ID of this Session object. The default is to generate a new UUID. -# username : unicode -# username added to message headers. The default is to ask the OS. -# key : bytes -# The key used to initialize an HMAC signature. If unset, messages -# will not be signed or checked. -# keyfile : filepath -# The file containing a key. If this is set, `key` will be initialized -# to the contents of the file. - -## Threshold (in bytes) beyond which an object's buffer should be extracted to -# avoid pickling. -#c.Session.buffer_threshold = 1024 - -## Whether to check PID to protect against calls after fork. -# -# This check can be disabled if fork-safety is handled elsewhere. -#c.Session.check_pid = True - -## Threshold (in bytes) beyond which a buffer should be sent without copying. -#c.Session.copy_threshold = 65536 - -## Debug output in the Session -#c.Session.debug = False - -## The maximum number of digests to remember. -# -# The digest history will be culled when it exceeds this value. -#c.Session.digest_history_size = 65536 - -## The maximum number of items for a container to be introspected for custom -# serialization. Containers larger than this are pickled outright. -#c.Session.item_threshold = 64 - -## execution key, for signing messages. -#c.Session.key = b'' - -## path to file containing execution key. -#c.Session.keyfile = '' - -## Metadata dictionary, which serves as the default top-level metadata dict for -# each message. -#c.Session.metadata = {} - -## The name of the packer for serializing messages. Should be one of 'json', -# 'pickle', or an import name for a custom callable serializer. -#c.Session.packer = 'json' - -## The UUID identifying this session. -#c.Session.session = '' - -## The digest scheme used to construct the message signatures. Must have the form -# 'hmac-HASH'. -#c.Session.signature_scheme = 'hmac-sha256' - -## The name of the unpacker for unserializing messages. Only used with custom -# functions for `packer`. -#c.Session.unpacker = 'json' - -## Username for the Session. Default is your system username. -#c.Session.username = 'mpjuers' - -#------------------------------------------------------------------------------ -# MultiKernelManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## A class for managing multiple kernels. - -## The name of the default kernel to start -#c.MultiKernelManager.default_kernel_name = 'python3' - -## The kernel manager class. This is configurable to allow subclassing of the -# KernelManager for customized behavior. -#c.MultiKernelManager.kernel_manager_class = 'jupyter_client.ioloop.IOLoopKernelManager' - -#------------------------------------------------------------------------------ -# MappingKernelManager(MultiKernelManager) configuration -#------------------------------------------------------------------------------ - -## A KernelManager that handles notebook mapping and HTTP error handling - -## Whether messages from kernels whose frontends have disconnected should be -# buffered in-memory. -# -# When True (default), messages are buffered and replayed on reconnect, avoiding -# lost messages due to interrupted connectivity. -# -# Disable if long-running kernels will produce too much output while no -# frontends are connected. -#c.MappingKernelManager.buffer_offline_messages = True - -## Whether to consider culling kernels which are busy. Only effective if -# cull_idle_timeout > 0. -#c.MappingKernelManager.cull_busy = False - -## Whether to consider culling kernels which have one or more connections. Only -# effective if cull_idle_timeout > 0. -#c.MappingKernelManager.cull_connected = False - -## Timeout (in seconds) after which a kernel is considered idle and ready to be -# culled. Values of 0 or lower disable culling. Very short timeouts may result -# in kernels being culled for users with poor network connections. -#c.MappingKernelManager.cull_idle_timeout = 0 - -## The interval (in seconds) on which to check for idle kernels exceeding the -# cull timeout value. -#c.MappingKernelManager.cull_interval = 300 - -## Timeout for giving up on a kernel (in seconds). -# -# On starting and restarting kernels, we check whether the kernel is running and -# responsive by sending kernel_info_requests. This sets the timeout in seconds -# for how long the kernel can take before being presumed dead. This affects the -# MappingKernelManager (which handles kernel restarts) and the -# ZMQChannelsHandler (which handles the startup). -#c.MappingKernelManager.kernel_info_timeout = 60 - -## -#c.MappingKernelManager.root_dir = '' - -#------------------------------------------------------------------------------ -# ContentsManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## Base class for serving files and directories. -# -# This serves any text or binary file, as well as directories, with special -# handling for JSON notebook documents. -# -# Most APIs take a path argument, which is always an API-style unicode path, and -# always refers to a directory. -# -# - unicode, not url-escaped -# - '/'-separated -# - leading and trailing '/' will be stripped -# - if unspecified, path defaults to '', -# indicating the root path. - -## Allow access to hidden files -#c.ContentsManager.allow_hidden = False - -## -#c.ContentsManager.checkpoints = None - -## -#c.ContentsManager.checkpoints_class = 'notebook.services.contents.checkpoints.Checkpoints' - -## -#c.ContentsManager.checkpoints_kwargs = {} - -## handler class to use when serving raw file requests. -# -# Default is a fallback that talks to the ContentsManager API, which may be -# inefficient, especially for large files. -# -# Local files-based ContentsManagers can use a StaticFileHandler subclass, which -# will be much more efficient. -# -# Access to these files should be Authenticated. -#c.ContentsManager.files_handler_class = 'notebook.files.handlers.FilesHandler' - -## Extra parameters to pass to files_handler_class. -# -# For example, StaticFileHandlers generally expect a `path` argument specifying -# the root directory from which to serve files. -#c.ContentsManager.files_handler_params = {} - -## Glob patterns to hide in file and directory listings. -#c.ContentsManager.hide_globs = ['__pycache__', '*.pyc', '*.pyo', '.DS_Store', '*.so', '*.dylib', '*~'] - -## Python callable or importstring thereof -# -# To be called on a contents model prior to save. -# -# This can be used to process the structure, such as removing notebook outputs -# or other side effects that should not be saved. -# -# It will be called as (all arguments passed by keyword):: -# -# hook(path=path, model=model, contents_manager=self) -# -# - model: the model to be saved. Includes file contents. -# Modifying this dict will affect the file that is stored. -# - path: the API path of the save destination -# - contents_manager: this ContentsManager instance -#c.ContentsManager.pre_save_hook = None - -## -#c.ContentsManager.root_dir = '/' - -## The base name used when creating untitled directories. -#c.ContentsManager.untitled_directory = 'Untitled Folder' - -## The base name used when creating untitled files. -#c.ContentsManager.untitled_file = 'untitled' - -## The base name used when creating untitled notebooks. -#c.ContentsManager.untitled_notebook = 'Untitled' - -#------------------------------------------------------------------------------ -# FileManagerMixin(Configurable) configuration -#------------------------------------------------------------------------------ - -## Mixin for ContentsAPI classes that interact with the filesystem. -# -# Provides facilities for reading, writing, and copying both notebooks and -# generic files. -# -# Shared by FileContentsManager and FileCheckpoints. -# -# Note ---- Classes using this mixin must provide the following attributes: -# -# root_dir : unicode -# A directory against against which API-style paths are to be resolved. -# -# log : logging.Logger - -## By default notebooks are saved on disk on a temporary file and then if -# succefully written, it replaces the old ones. This procedure, namely -# 'atomic_writing', causes some bugs on file system whitout operation order -# enforcement (like some networked fs). If set to False, the new notebook is -# written directly on the old one which could fail (eg: full filesystem or quota -# ) -#c.FileManagerMixin.use_atomic_writing = True - -#------------------------------------------------------------------------------ -# FileContentsManager(FileManagerMixin,ContentsManager) configuration -#------------------------------------------------------------------------------ - -## If True (default), deleting files will send them to the platform's -# trash/recycle bin, where they can be recovered. If False, deleting files -# really deletes them. -#c.FileContentsManager.delete_to_trash = True - -## Python callable or importstring thereof -# -# to be called on the path of a file just saved. -# -# This can be used to process the file on disk, such as converting the notebook -# to a script or HTML via nbconvert. -# -# It will be called as (all arguments passed by keyword):: -# -# hook(os_path=os_path, model=model, contents_manager=instance) -# -# - path: the filesystem path to the file just written - model: the model -# representing the file - contents_manager: this ContentsManager instance -#c.FileContentsManager.post_save_hook = None - -## -#c.FileContentsManager.root_dir = '' - -## DEPRECATED, use post_save_hook. Will be removed in Notebook 5.0 -#c.FileContentsManager.save_script = False - -#------------------------------------------------------------------------------ -# NotebookNotary(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## A class for computing and verifying notebook signatures. - -## The hashing algorithm used to sign notebooks. -#c.NotebookNotary.algorithm = 'sha256' - -## The sqlite file in which to store notebook signatures. By default, this will -# be in your Jupyter data directory. You can set it to ':memory:' to disable -# sqlite writing to the filesystem. -#c.NotebookNotary.db_file = '' - -## The secret key with which notebooks are signed. -#c.NotebookNotary.secret = b'' - -## The file where the secret key is stored. -#c.NotebookNotary.secret_file = '' - -## A callable returning the storage backend for notebook signatures. The default -# uses an SQLite database. -#c.NotebookNotary.store_factory = traitlets.Undefined - -#------------------------------------------------------------------------------ -# KernelSpecManager(LoggingConfigurable) configuration -#------------------------------------------------------------------------------ - -## If there is no Python kernelspec registered and the IPython kernel is -# available, ensure it is added to the spec list. -#c.KernelSpecManager.ensure_native_kernel = True - -## The kernel spec class. This is configurable to allow subclassing of the -# KernelSpecManager for customized behavior. -#c.KernelSpecManager.kernel_spec_class = 'jupyter_client.kernelspec.KernelSpec' - -## Whitelist of allowed kernel names. -# -# By default, all installed kernels are allowed. -#c.KernelSpecManager.whitelist = set() -c.NotebookApp.contents_manager_class = "jupytext.TextFileContentsManager" -c.ContentsManager.default_jupytext_formats = "ipynb,md,py" -c.ContentsManager.preferred_jupytext_formats_save = "py:percent" diff --git a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings deleted file mode 100755 index a51ae89..0000000 --- a/.jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.jupyterlab-settings +++ /dev/null @@ -1,10 +0,0 @@ -{ - // Theme - // @jupyterlab/apputils-extension:themes - // Theme manager settings. - // ************************************* - - // Selected Theme - // [missing schema description] - "theme": "JupyterLab Light" -} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings deleted file mode 100755 index 7450e01..0000000 --- a/.jupyter/lab/user-settings/@jupyterlab/codemirror-extension/commands.jupyterlab-settings +++ /dev/null @@ -1,15 +0,0 @@ -{ - // CodeMirror - // @jupyterlab/codemirror-extension:commands - // Text editor settings for all CodeMirror editors. - // ************************************************ - - // Key Map - // Configures the keymap to use - "keyMap": "vim", - - // Theme - // CSS file defining the corresponding - // .cm-s-[name] styles is loaded - "theme": "solarized dark" -} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings deleted file mode 100755 index c325add..0000000 --- a/.jupyter/lab/user-settings/@jupyterlab/extensionmanager-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1,15 +0,0 @@ -{ - // Extension Manager - // @jupyterlab/extensionmanager-extension:plugin - // Extension manager settings. - // ********************************************* - - // Disclaimed Status - // Whether the user understand that extensions managed through this interface run arbitrary code that may be dangerous - "disclaimed": true, - - // Enabled Status - // Enables extension manager (requires Node.js/npm). - // WARNING: installing untrusted extensions may be unsafe. - "enabled": true -} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/plugin.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/plugin.jupyterlab-settings deleted file mode 100755 index 9e26dfe..0000000 --- a/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/plugin.jupyterlab-settings +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings b/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings deleted file mode 100755 index 930c0bc..0000000 --- a/.jupyter/lab/user-settings/@jupyterlab/shortcuts-extension/shortcuts.jupyterlab-settings +++ /dev/null @@ -1,234 +0,0 @@ -{ - // Keyboard Shortcuts - // @jupyterlab/shortcuts-extension:shortcuts - // Keyboard shortcut settings. - // ***************************************** - - // List of Commands (followed by shortcuts) - // __internal:context-menu-info - // apputils:activate-command-palette - // apputils:print - // completer:invoke - // completer:select - // tooltip:dismiss - // launcher:create - // editmenu:undo - // editmenu:redo - // editmenu:clear-current - // editmenu:clear-all - // editmenu:go-to-line - // filemenu:close-and-cleanup - // filemenu:create-console - // filemenu:shutdown - // filemenu:logout - // kernelmenu:interrupt - // kernelmenu:restart - // kernelmenu:restart-and-clear - // kernelmenu:change - // kernelmenu:shutdown - // kernelmenu:shutdownAll - // runmenu:run - // runmenu:run-all - // runmenu:restart-and-run-all - // viewmenu:line-numbering - // viewmenu:match-brackets - // viewmenu:word-wrap - // tabsmenu:activate-by-id - // tabsmenu:activate-previously-used-tab - // editmenu:open - // filemenu:open - // kernelmenu:open - // runmenu:open - // viewmenu:open - // settingsmenu:open - // tabsmenu:open - // helpmenu:open - // mainmenu:open-first - // documentsearch:start - // documentsearch:highlightNext - // documentsearch:highlightPrevious - // application:activate-next-tab - // application:activate-previous-tab - // application:close - // application:close-all - // application:close-other-tabs - // application:close-right-tabs - // application:toggle-left-area - // application:toggle-right-area - // application:toggle-presentation-mode - // application:set-mode - // application:toggle-mode - // router:tree - // apputils:load-statedb - // apputils:reset - // apputils:reset-on-load - // inspector:open - // htmlviewer:trust-html - // imageviewer:zoom-in - // imageviewer:zoom-out - // imageviewer:reset-image - // imageviewer:rotate-clockwise - // imageviewer:rotate-counterclockwise - // imageviewer:flip-horizontal - // imageviewer:flip-vertical - // imageviewer:invert-colors - // help:about - // help:open - // help:launch-classic-notebook - // docmanager:clone - // docmanager:rename - // docmanager:show-in-file-browser - // docmanager:delete-file - // docmanager:new-untitled - // docmanager:open - // docmanager:open-browser-tab - // docmanager:reload - // docmanager:restore-checkpoint - // docmanager:save - // docmanager:save-all - // docmanager:save-as - // docmanager:toggle-autosave - // sidebar:switch - // apputils:change-theme - // apputils:theme-scrollbars - // apputils:incr-font-size - // apputils:decr-font-size - // statusbar:toggle - // rendermime:handle-local-link - // terminal:create-new - // terminal:open - // terminal:refresh - // terminal:increase-font - // terminal:decrease-font - // terminal:set-theme - // filebrowser:delete - // filebrowser:copy - // filebrowser:cut - // filebrowser:download - // filebrowser:duplicate - // filebrowser:hide-main - // filebrowser:go-to-path - // filebrowser:open-path - // filebrowser:open - // filebrowser:open-browser-tab - // filebrowser:copy-download-link - // filebrowser:paste - // filebrowser:create-new-directory - // filebrowser:rename - // filebrowser:copy-path - // filebrowser:activate - // filebrowser:shutdown - // filebrowser:toggle-main - // filebrowser:create-main-launcher - // filebrowser:toggle-navigate-to-current-directory - // filebrowser:share-main - // markdownviewer:open - // settingeditor:open - // settingeditor:revert - // settingeditor:save - // notebook:run-cell-and-select-next - // notebook:run-cell - // notebook:run-cell-and-insert-below - // notebook:run-in-console - // notebook:run-all-cells - // notebook:run-all-above - // notebook:run-all-below - // notebook:render-all-markdown - // notebook:restart-kernel - // notebook:close-and-shutdown - // notebook:trust - // notebook:export-to-format - // notebook:restart-clear-output - // notebook:restart-run-all - // notebook:clear-all-cell-outputs - // notebook:clear-cell-output - // notebook:interrupt-kernel - // notebook:change-cell-to-code - // notebook:change-cell-to-markdown - // notebook:change-cell-to-raw - // notebook:cut-cell - // notebook:copy-cell - // notebook:paste-cell-below - // notebook:paste-cell-above - // notebook:paste-and-replace-cell - // notebook:delete-cell - // notebook:split-cell-at-cursor - // notebook:merge-cells - // notebook:insert-cell-above - // notebook:insert-cell-below - // notebook:move-cursor-up - // notebook:move-cursor-down - // notebook:extend-marked-cells-above - // notebook:extend-marked-cells-below - // notebook:select-all - // notebook:deselect-all - // notebook:move-cell-up - // notebook:move-cell-down - // notebook:toggle-all-cell-line-numbers - // notebook:enter-command-mode - // notebook:enter-edit-mode - // notebook:undo-cell-action - // notebook:redo-cell-action - // notebook:change-kernel - // notebook:reconnect-to-kernel - // notebook:create-output-view - // notebook:create-console - // notebook:change-cell-to-heading-1 - // notebook:change-cell-to-heading-2 - // notebook:change-cell-to-heading-3 - // notebook:change-cell-to-heading-4 - // notebook:change-cell-to-heading-5 - // notebook:change-cell-to-heading-6 - // notebook:hide-cell-code - // notebook:show-cell-code - // notebook:hide-all-cell-code - // notebook:show-all-cell-code - // notebook:hide-cell-outputs - // notebook:show-cell-outputs - // notebook:hide-all-cell-outputs - // notebook:show-all-cell-outputs - // notebook:enable-output-scrolling - // notebook:disable-output-scrolling - // notebook:create-new - // completer:invoke-notebook - // completer:select-notebook - // tooltip:launch-notebook - // - // Note: To disable a system default shortcut, - // copy it to User Preferences and add the - // "disabled" key, for example: - // { - // "command": "application:activate-next-tab", - // "keys": [ - // "Ctrl Shift ]" - // ], - // "selector": "body", - // "disabled": true - // } - // - // List of Keyboard Shortcuts - "shortcuts": [ - { - "command": "notebook:move-cell-down", - "keys": [ - "Accel ArrowDown" - ], - "selector": ".jp-Notebook:focus" - }, - { - "command": "notebook:move-cell-up", - "keys": [ - "Accel ArrowUp" - ], - "selector": ".jp-Notebook:focus" - }, - { - "command": "jupyterlab_code_formatter:black", - "keys": [ - "Ctrl B", - "Ctrl L" - ], - "selector": ".jp-Notebook.jp-mod-editMode" - } - ] -} diff --git a/.jupyter/migrated b/.jupyter/migrated deleted file mode 100755 index 1bab1f3..0000000 --- a/.jupyter/migrated +++ /dev/null @@ -1 +0,0 @@ -2018-12-05T20:14:20.519009 \ No newline at end of file diff --git a/.jupyter/nbconfig/common.json b/.jupyter/nbconfig/common.json deleted file mode 100755 index 19150cf..0000000 --- a/.jupyter/nbconfig/common.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "nbext_hide_incompat": false -} \ No newline at end of file diff --git a/.jupyter/nbconfig/edit.json b/.jupyter/nbconfig/edit.json deleted file mode 100755 index 746eb92..0000000 --- a/.jupyter/nbconfig/edit.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "load_extensions": { - "ruler/edit": false - }, - "ruler_column": [ - "78" - ] -} \ No newline at end of file diff --git a/.jupyter/nbconfig/notebook.json b/.jupyter/nbconfig/notebook.json deleted file mode 100755 index a824da7..0000000 --- a/.jupyter/nbconfig/notebook.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "load_extensions": { - "jupyter-js-widgets/extension": true, - "jupyter_boilerplate/main": false, - "nbextensions_configurator/config_menu/main": true, - "contrib_nbextensions_help_item/main": true, - "snippets/main": false, - "snippets_menu/main": true, - "collapsible_headings/main": true, - "code_prettify/code_prettify": true, - "init_cell/main": true, - "zenmode/main": true, - "ruler/main": true, - "keyboard_shortcut_editor/main": true, - "nodebook/nodebookext": false - }, - "Cell": { - "cm_config": { - "lineNumbers": false - } - } -} \ No newline at end of file diff --git a/.jupyter/nbconfig/tree.json b/.jupyter/nbconfig/tree.json deleted file mode 100755 index 7a2dee1..0000000 --- a/.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/.taskrc b/.taskrc deleted file mode 100755 index 5e258cc..0000000 --- a/.taskrc +++ /dev/null @@ -1,42 +0,0 @@ -# [Created by task 2.5.1 11/1/2018 09:56:33] -# Taskwarrior program configuration file. -# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color', -# 'man task-sync' or 'man taskrc' - -# Here is an example of entries that use the default, override and blank values -# variable=foo -- By specifying a value, this overrides the default -# variable= -- By specifying no value, this means no default -# #variable=foo -- By commenting out the line, or deleting it, this uses the default - -# Use the command 'task show' to see all defaults and overrides - -# Files -data.location=~/.task - -# Color theme (uncomment one to use) -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/light-16.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/light-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-16.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-red-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-green-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-blue-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-violets-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-yellow-green.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/dark-gray-blue-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-dark-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/solarized-light-256.theme -#include /usr/local/Cellar/task/2.5.1/share/doc/task/rc/no-color.theme - -taskd.server=freecinc.com:53589 -taskd.key=\/home\/mpjuers\/.task\/freecinc_dfd3a482.key.pem -taskd.certificate=\/home\/mpjuers\/.task\/freecinc_dfd3a482.cert.pem -taskd.ca=\/home\/mpjuers\/.task\/freecinc_dfd3a482.ca.pem -taskd.aa-917d-7f4786d0b801credentials=FreeCinc\/freecinc_dfd3a482\/7b55fa76-27f1-4aaa-917d-7f4786d0b801 -taskd.credentials=FreeCinc\/freecinc_dfd3a482\/7b55fa76-27f1-4aaa-917d-7f4786d0b801 -report.notes.description=Miscellaneous notes -report.notes.columns=id,description -report.notes.labels=ID,Note -report.notes.filter=status:pending and +notes -report.list.filter=-notes and status:pending diff --git a/.test b/.test deleted file mode 100644 index e69de29..0000000 diff --git a/.tmux.conf.d/.tmux.conf.d b/.tmux.conf.d/.tmux.conf.d new file mode 120000 index 0000000..304826d --- /dev/null +++ b/.tmux.conf.d/.tmux.conf.d @@ -0,0 +1 @@ +/home/njuers/dotfiles/.tmux.conf.d \ No newline at end of file diff --git a/bin/bin b/bin/bin new file mode 120000 index 0000000..dfc97f3 --- /dev/null +++ b/bin/bin @@ -0,0 +1 @@ +/home/njuers/dotfiles/bin \ No newline at end of file diff --git a/init.lua b/init.lua deleted file mode 100755 index 42f8730..0000000 --- a/init.lua +++ /dev/null @@ -1,122 +0,0 @@ -hs.grid.setGrid('6x6') -hs.grid.ui.textSize = 50 -hs.window.animationDuration = 0 -hs.grid.HINTS = { - {"Q", "W", "E", "R", "T", "Y"}, - {"U", "I", "O", "P", "[", "]"}, - {"A", "S", "D", "F", "G", "H"}, - {"J", "K", "L", ";", "'", "Z"}, - {"N", "M", ",", ".", "/", "1"} -} - --- hs.hotkey.bind({"cmd", "shift"}, "H", function() --- local win = hs.window.focusedWindow() --- local f = win:frame() --- local screen = win:screen() --- local max = screen:frame() - --- f.x = max.x --- f.y = max.y --- f.w = max.w / 2 --- f.h = max.h --- win:setFrame(f) --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "1", function() --- local win = hs.window.focusedWindow() --- local rect = hs.geometry(0,0,4,4) --- hs.grid.set(win, rect) --- end) - --- hs.hotkey.bind({"cmd", "shift"}, "2", function() --- local win = hs.window.focusedWindow() --- local rect = hs.geometry(2,0,4,4) --- hs.grid.set(win, rect) --- end) --- -hyper = {"shift", "alt"} -hyper2 = {"ctrl", "alt", "shift"} - -hs.hotkey.bind(hyper, "L", function() - local win = hs.window.focusedWindow() - local rect = hs.geometry(3,0,3,6) - hs.grid.set(win, rect) -end) - -hs.hotkey.bind(hyper, "H", function() - local win = hs.window.focusedWindow() - local rect = hs.geometry(0,0,3,6) - hs.grid.set(win, rect) -end) - -hs.hotkey.bind(hyper2, "H", function() - hs.window.focusedWindow():moveOneScreenWest() -end) - -hs.hotkey.bind(hyper2, "L", function() - hs.window.focusedWindow():moveOneScreenEast() -end) - -hs.hotkey.bind(hyper, "space", hs.grid.maximizeWindow) - -hs.hotkey.bind(hyper, ".", hs.hints.windowHints) -hs.hotkey.bind(hyper, "G", hs.grid.show) - -expose = hs.expose.new(nil) -expose_app = hs.expose.new(nil, {onlyActiveApplication = true}) - -hs.hotkey.bind(hyper, "E", function() expose:toggleShow() end) -hs.hotkey.bind(hyper, "A", function() expose_app:toggleShow() end) - -caffeine = hs.menubar.new() -function setCaffeineDisplay(state) - if state then - caffeine:setTitle("☕️") - else - caffeine:setTitle("💤") - end -end - -function caffeineClicked() - setCaffeineDisplay(hs.caffeinate.toggle("displayIdle")) -end - -if caffeine then - caffeine:setClickCallback(caffeineClicked) - setCaffeineDisplay(hs.caffeinate.get("displayIdle")) -end - -setCaffeineDisplay(hs.caffeinate.toggle('displayIdle')) - -hs.loadSpoon('EjectMenu') -spoon.EjectMenu:start() -spoon.EjectMenu:bindHotkeys({ejectAll = {hyper2, 'e'}}) - --- --- Requires an API Access Token from Bit.ly -local BITLY_API_ACCESS_TOKEN = "e72c99ea3cd57861e530b5388de556297c49f736" - -hs.hotkey.bind({"cmd", "alt", "ctrl"}, "S", function() - local board = hs.pasteboard.getContents() - - if board:match("^https?://") then - local response = hs.http.asyncGet( - "https://api-ssl.bitly.com/v3/shorten" .. - "?access_token=" .. BITLY_API_ACCESS_TOKEN .. - "&longUrl=" .. hs.http.encodeForQuery(board), - {}, - function(status, response, headers) - if status == 200 then - local msg = hs.json.decode(response) - - hs.pasteboard.setContents(msg.data.url) - hs.notify.new({title="Bitly URL Shorten: Success", informativeText=msg.data.url}):send() - else - hs.notify.new({title="Bitly URL Shorten: Failure", informativeText=response}):send() - end - end - ) - else - hs.notify.new({title="Bitly URL Shorten: Failure", informativeText="Expected: URL"}):send() - end -end) diff --git a/iterm2/AppSupport/SavedState/lock b/iterm2/AppSupport/SavedState/lock deleted file mode 100644 index e69de29..0000000 diff --git a/iterm2/AppSupport/SavedState/restorable-state.sqlite b/iterm2/AppSupport/SavedState/restorable-state.sqlite deleted file mode 100644 index b0df3c2918caea1cd6477ee88b3a4e875063ccdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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
TM)-R0-@ebh+h)puOWU%jK7Mw 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 diff --git a/iterm2/AppSupport/iterm2-daemon-1.socket.lock b/iterm2/AppSupport/iterm2-daemon-1.socket.lock deleted file mode 100644 index e69de29..0000000 diff --git a/iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b b/iterm2/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b deleted file mode 100644 index cbd613642d94b617a6020f956df0797586af7ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25137 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 diff --git a/iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc b/iterm2/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc deleted file mode 100644 index 6ae1449e55eb46f0fffa5f978c9aef42721afb32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16905 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 VSCUBlkYx66zIyiWod5GR`hVY$FRB0l diff --git a/iterm2/AppSupport/version.txt b/iterm2/AppSupport/version.txt deleted file mode 100644 index 1c4bd07..0000000 --- a/iterm2/AppSupport/version.txt +++ /dev/null @@ -1 +0,0 @@ -3.4.19 \ No newline at end of file diff --git a/kitty/kitty.conf b/kitty/kitty.conf deleted file mode 100644 index def9d48..0000000 --- a/kitty/kitty.conf +++ /dev/null @@ -1,2169 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker -include palenight.conf - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. To get a full list of supported fonts use the `kitty -#: +list-fonts` command. By default they are derived automatically, by -#: the OSes font system. When bold_font or bold_italic_font is set to -#: auto on macOS, the priority of bold fonts is semi-bold, bold, -#: heavy. Setting them manually is useful for font families that have -#: many weight variants like Book, Medium, Thick, etc. For example:: - -#: font_family Operator Mono Book -#: bold_font Operator Mono Medium -#: italic_font Operator Mono Book Italic -#: bold_italic_font Operator Mono Medium Italic - -# font_size 11.0 - -#: Font size (in pts) - -# force_ltr no - -#: kitty does not support BIDI (bidirectional text), however, for RTL -#: scripts, words are automatically displayed in RTL. That is to say, -#: in an RTL script, the words "HELLO WORLD" display in kitty as -#: "WORLD HELLO", and if you try to select a substring of an RTL- -#: shaped string, you will get the character that would be there had -#: the the string been LTR. For example, assuming the Hebrew word -#: ירושלים, selecting the character that on the screen appears to be ם -#: actually writes into the selection buffer the character י. kitty's -#: default behavior is useful in conjunction with a filter to reverse -#: the word order, however, if you wish to manipulate RTL glyphs, it -#: can be very challenging to work with, so this option is provided to -#: turn it off. Furthermore, this option can be used with the command -#: line program GNU FriBidi -#: to get BIDI -#: support, because it will force kitty to always treat the text as -#: LTR, which FriBidi expects for terminals. - -# adjust_line_height 0 -# adjust_column_width 0 - -#: Change the size of each character cell kitty renders. You can use -#: either numbers, which are interpreted as pixels or percentages -#: (number followed by %), which are interpreted as percentages of the -#: unmodified values. You can use negative pixels or percentages less -#: than 100% to reduce sizes (but this might cause rendering -#: artifacts). - -# adjust_baseline 0 - -#: Adjust the vertical alignment of text (the height in the cell at -#: which text is positioned). You can use either numbers, which are -#: interpreted as pixels or percentages (number followed by %), which -#: are interpreted as the percentage of the line height. A positive -#: value moves the baseline up, and a negative value moves them down. -#: The underline and strikethrough positions are adjusted accordingly. - -# symbol_map - -#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - -#: Map the specified Unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each Unicode code -#: point is specified in the form `U+`. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. This option can be specified multiple times. -#: The syntax is:: - -#: symbol_map codepoints Font Family Name - -# narrow_symbols - -#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 - -#: Usually, for Private Use Unicode characters and some symbol/dingbat -#: characters, if the character is followed by one or more spaces, -#: kitty will use those extra cells to render the character larger, if -#: the character in the font has a wide aspect ratio. Using this -#: option you can force kitty to restrict the specified code points to -#: render in the specified number of cells (defaulting to one cell). -#: This option can be specified multiple times. The syntax is:: - -#: narrow_symbols codepoints [optionally the number of cells] - -# disable_ligatures never - -#: Choose how you want to handle multi-character ligatures. The -#: default is to always render them. You can tell kitty to not render -#: them when the cursor is over them by using cursor to make editing -#: easier, or have kitty never render them at all by using always, if -#: you don't like them. The ligature strategy can be set per-window -#: either using the kitty remote control facility or by defining -#: shortcuts for it in kitty.conf, for example:: - -#: map alt+1 disable_ligatures_in active always -#: map alt+2 disable_ligatures_in all never -#: map alt+3 disable_ligatures_in tab cursor - -#: Note that this refers to programming ligatures, typically -#: implemented using the calt OpenType feature. For disabling general -#: ligatures, use the font_features option. - -# font_features - -#: E.g. font_features none - -#: Choose exactly which OpenType features to enable or disable. This -#: is useful as some fonts might have features worthwhile in a -#: terminal. For example, Fira Code includes a discretionary feature, -#: zero, which in that font changes the appearance of the zero (0), to -#: make it more easily distinguishable from Ø. Fira Code also includes -#: other discretionary features known as Stylistic Sets which have the -#: tags ss01 through ss20. - -#: For the exact syntax to use for individual features, see the -#: HarfBuzz documentation . - -#: Note that this code is indexed by PostScript name, and not the font -#: family. This allows you to define very precise feature settings; -#: e.g. you can disable a feature in the italic font but not in the -#: regular font. - -#: On Linux, font features are first read from the FontConfig database -#: and then this option is applied, so they can be configured in a -#: single, central place. - -#: To get the PostScript name for a font, use `kitty +list-fonts -#: --psnames`: - -#: .. code-block:: sh - -#: $ kitty +list-fonts --psnames | grep Fira -#: Fira Code -#: Fira Code Bold (FiraCode-Bold) -#: Fira Code Light (FiraCode-Light) -#: Fira Code Medium (FiraCode-Medium) -#: Fira Code Regular (FiraCode-Regular) -#: Fira Code Retina (FiraCode-Retina) - -#: The part in brackets is the PostScript name. - -#: Enable alternate zero and oldstyle numerals:: - -#: font_features FiraCode-Retina +zero +onum - -#: Enable only alternate zero in the bold font:: - -#: font_features FiraCode-Bold +zero - -#: Disable the normal ligatures, but keep the calt feature which (in -#: this font) breaks up monotony:: - -#: font_features TT2020StyleB-Regular -liga +calt - -#: In conjunction with force_ltr, you may want to disable Arabic -#: shaping entirely, and only look at their isolated forms if they -#: show up in a document. You can do this with e.g.:: - -#: font_features UnifontMedium +isol -medi -fina -init - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: The sizes of the lines used for the box drawing Unicode characters. -#: These values are in pts. They will be scaled by the monitor DPI to -#: arrive at a pixel value. There must be four values corresponding to -#: thin, normal, thick, and very thick lines. - -#: }}} - -#: Cursor customization {{{ - -# cursor #cccccc - -#: Default cursor color. If set to the special value none the cursor -#: will be rendered with a "reverse video" effect. It's color will be -#: the color of the text in the cell it is over and the text will be -#: rendered with the background color of the cell. Note that if the -#: program running in the terminal sets a cursor color, this takes -#: precedence. Also, the cursor colors are modified if the cell -#: background and foreground colors have very low contrast. - -# cursor_text_color #111111 - -#: The color of text under the cursor. If you want it rendered with -#: the background color of the cell underneath instead, use the -#: special keyword: background. Note that if cursor is set to none -#: then this option is ignored. - -# cursor_shape block - -#: The cursor shape can be one of block, beam, underline. Note that -#: when reloading the config this will be changed only if the cursor -#: shape has not been set by the program running in the terminal. This -#: sets the default cursor shape, applications running in the terminal -#: can override it. In particular, shell integration -#: in kitty sets -#: the cursor shape to beam at shell prompts. You can avoid this by -#: setting shell_integration to no-cursor. - -# cursor_beam_thickness 1.5 - -#: The thickness of the beam cursor (in pts). - -# cursor_underline_thickness 2.0 - -#: The thickness of the underline cursor (in pts). - -# cursor_blink_interval -1 - -#: The interval to blink the cursor (in seconds). Set to zero to -#: disable blinking. Negative values mean use system default. Note -#: that the minimum interval will be limited to repaint_delay. - -# cursor_stop_blinking_after 15.0 - -#: Stop blinking cursor after the specified number of seconds of -#: keyboard inactivity. Set to zero to never stop blinking. - -#: }}} - -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. Negative numbers are (effectively) -#: infinite scrollback. Note that using very large scrollback is not -#: recommended as it can slow down performance of the terminal and -#: also use large amounts of RAM. Instead, consider using -#: scrollback_pager_history_size. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. Similarly CURSOR_LINE and -#: CURSOR_COLUMN will be replaced by the current cursor position or -#: set to 0 if there is no cursor, for example, when showing the last -#: command output. - -# scrollback_pager_history_size 0 - -#: Separate scrollback history size (in MB), used only for browsing -#: the scrollback buffer with pager. This separate buffer is not -#: available for interactive scrolling but will be piped to the pager -#: program when viewing scrollback buffer in a separate window. The -#: current implementation stores the data in UTF-8, so approximatively -#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, -#: unformatted text. A value of zero or less disables this feature. -#: The maximum allowed size is 4GB. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_fill_enlarged_window no - -#: Fill new space with lines from the scrollback buffer after -#: enlarging a window. - -# wheel_scroll_multiplier 5.0 - -#: Multiplier for the number of lines scrolled by the mouse wheel. -#: Note that this is only used for low precision scrolling devices, -#: not for high precision scrolling devices on platforms such as macOS -#: and Wayland. Use negative numbers to change scroll direction. See -#: also wheel_scroll_min_lines. - -# wheel_scroll_min_lines 1 - -#: The minimum number of lines scrolled by the mouse wheel. The scroll -#: multiplier only takes effect after it -#: reaches this number. Note that this is only used for low precision -#: scrolling devices like wheel mice that scroll by very small amounts -#: when using the wheel. With a negative number, the minimum number of -#: lines will always be added. - -# touch_scroll_multiplier 1.0 - -#: Multiplier for the number of lines scrolled by a touchpad. Note -#: that this is only used for high precision scrolling devices on -#: platforms such as macOS and Wayland. Use negative numbers to change -#: scroll direction. - -#: }}} - -#: Mouse {{{ - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. -#: Set to a negative value to hide the mouse cursor immediately when -#: typing text. Disabled by default on macOS as getting it to work -#: robustly with the ever-changing sea of bugs that is Cocoa is too -#: much effort. - -# url_color #0087bd -# url_style curly - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, straight, double, curly, dotted, dashed. - -# open_url_with default - -#: The program to open clicked URLs. The special value default means -#: to use the operating system's default URL handler (open on macOS -#: and xdg-open on Linux). - -# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh - -#: The set of URL prefixes to look for when detecting a URL under the -#: mouse cursor. - -# detect_urls yes - -#: Detect URLs under the mouse. Detected URLs are highlighted with an -#: underline and the mouse cursor becomes a hand over them. Even if -#: this option is disabled, URLs are still clickable. - -# url_excluded_characters - -#: Additional characters to be disallowed from URLs, when detecting -#: URLs under the mouse cursor. By default, all characters that are -#: legal in URLs are allowed. - -# copy_on_select no - -#: Copy to clipboard or a private buffer on select. With this set to -#: clipboard, selecting text with the mouse will cause the text to be -#: copied to clipboard. Useful on platforms such as macOS that do not -#: have the concept of primary selection. You can instead specify a -#: name such as a1 to copy to a private kitty buffer. Map a shortcut -#: with the paste_from_buffer action to paste from this private -#: buffer. For example:: - -#: copy_on_select a1 -#: map shift+cmd+v paste_from_buffer a1 - -#: Note that copying to the clipboard is a security risk, as all -#: programs, including websites open in your browser can read the -#: contents of the system clipboard. - -# paste_actions quote-urls-at-prompt - -#: A comma separated list of actions to take when pasting text into -#: the terminal. The supported paste actions are: - -#: quote-urls-at-prompt: -#: If the text being pasted is a URL and the cursor is at a shell prompt, -#: automatically quote the URL (needs shell_integration). -#: confirm: -#: Confirm the paste if bracketed paste mode is not active or there is more -#: a large amount of text being pasted. -#: filter: -#: Run the filter_paste() function from the file paste-actions.py in -#: the kitty config directory on the pasted text. The text returned by the -#: function will be actually pasted. - -# strip_trailing_spaces never - -#: Remove spaces at the end of lines when copying to clipboard. A -#: value of smart will do it when using normal selections, but not -#: rectangle selections. A value of always will always do it. - -# select_by_word_characters @-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alphanumeric character in the Unicode database will be matched. - -# select_by_word_characters_forward - -#: Characters considered part of a word when extending the selection -#: forward on double clicking. In addition to these characters any -#: character that is marked as an alphanumeric character in the -#: Unicode database will be matched. - -#: If empty (default) select_by_word_characters will be used for both -#: directions. - -# click_interval -1.0 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds). Negative numbers will use the system default -#: instead, if available, or fallback to 0.5. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around. - -# pointer_shape_when_grabbed arrow - -#: The shape of the mouse pointer when the program running in the -#: terminal grabs the mouse. Valid values are: arrow, beam and hand. - -# default_pointer_shape beam - -#: The default shape of the mouse pointer. Valid values are: arrow, -#: beam and hand. - -# pointer_shape_when_dragging beam - -#: The default shape of the mouse pointer when dragging across text. -#: Valid values are: arrow, beam and hand. - -#: Mouse actions {{{ - -#: Mouse buttons can be mapped to perform arbitrary actions. The -#: syntax is: - -#: .. code-block:: none - -#: mouse_map button-name event-type modes action - -#: Where button-name is one of left, middle, right, b1 ... b8 with -#: added keyboard modifiers. For example: ctrl+shift+left refers to -#: holding the Ctrl+Shift keys while clicking with the left mouse -#: button. The value b1 ... b8 can be used to refer to up to eight -#: buttons on a mouse. - -#: event-type is one of press, release, doublepress, triplepress, -#: click, doubleclick. modes indicates whether the action is performed -#: when the mouse is grabbed by the program running in the terminal, -#: or not. The values are grabbed or ungrabbed or a comma separated -#: combination of them. grabbed refers to when the program running in -#: the terminal has requested mouse events. Note that the click and -#: double click events have a delay of click_interval to disambiguate -#: from double and triple presses. - -#: You can run kitty with the kitty --debug-input command line option -#: to see mouse events. See the builtin actions below to get a sense -#: of what is possible. - -#: If you want to unmap an action, map it to no_op. For example, to -#: disable opening of URLs with a plain click:: - -#: mouse_map left click ungrabbed no_op - -#: See all the mappable actions including mouse actions here -#: . - -#: .. note:: -#: Once a selection is started, releasing the button that started it will -#: automatically end it and no release event will be dispatched. - -# clear_all_mouse_actions no - -#: Remove all mouse action definitions up to this point. Useful, for -#: instance, to remove the default mouse actions. - -#: Click the link under the mouse or move the cursor - -# mouse_map left click ungrabbed mouse_handle_click selection link prompt - -#:: First check for a selection and if one exists do nothing. Then -#:: check for a link under the mouse cursor and if one exists, click -#:: it. Finally check if the click happened at the current shell -#:: prompt and if so, move the cursor to the click location. Note -#:: that this requires shell integration -#:: to work. - -#: Click the link under the mouse or move the cursor even when grabbed - -# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt - -#:: Same as above, except that the action is performed even when the -#:: mouse is grabbed by the program running in the terminal. - -#: Click the link under the mouse cursor - -# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link - -#:: Variant with Ctrl+Shift is present because the simple click based -#:: version has an unavoidable delay of click_interval, to -#:: disambiguate clicks from double clicks. - -#: Discard press event for link click - -# mouse_map ctrl+shift+left press grabbed discard_event - -#:: Prevent this press event from being sent to the program that has -#:: grabbed the mouse, as the corresponding release event is used to -#:: open a URL. - -#: Paste from the primary selection - -# mouse_map middle release ungrabbed paste_from_selection - -#: Start selecting text - -# mouse_map left press ungrabbed mouse_selection normal - -#: Start selecting text in a rectangle - -# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle - -#: Select a word - -# mouse_map left doublepress ungrabbed mouse_selection word - -#: Select a line - -# mouse_map left triplepress ungrabbed mouse_selection line - -#: Select line from point - -# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line. - -#: Extend the current selection - -# mouse_map right press ungrabbed mouse_selection extend - -#:: If you want only the end of the selection to be moved instead of -#:: the nearest boundary, use move-end instead of extend. - -#: Paste from the primary selection even when grabbed - -# mouse_map shift+middle release ungrabbed,grabbed paste_selection -# mouse_map shift+middle press grabbed discard_event - -#: Start selecting text even when grabbed - -# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal - -#: Start selecting text in a rectangle even when grabbed - -# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle - -#: Select a word even when grabbed - -# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word - -#: Select a line even when grabbed - -# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line - -#: Select line from point even when grabbed - -# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line even when -#:: grabbed. - -#: Extend the current selection even when grabbed - -# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend - -#: Show clicked command output in pager - -# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay between screen updates (in milliseconds). Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS, you have to -#: either set sync_to_monitor to no or use a monitor with a high -#: refresh rate. Also, to minimize latency when there is pending input -#: to be processed, this option is ignored. - -# input_delay 3 - -#: Delay before input from the program running in the terminal is -#: processed (in milliseconds). Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents screen tearing -#: when scrolling. -#: However, it limits the rendering speed to the refresh rate of your -#: monitor. With a very high speed mouse/high keyboard repeat rate, -#: you may notice some slight input latency. If so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes - -#: The audio bell. Useful to disable it in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: The visual bell duration (in seconds). Flash the screen when a bell -#: occurs for the specified number of seconds. Set to zero to disable. - -# visual_bell_color none - -#: The color used by visual bell. Set to none will fall back to -#: selection background color. If you feel that the visual bell is too -#: bright, you can set it to a darker color. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on linux. - -# bell_on_tab "🔔 " - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has a bell. If you want to use leading -#: or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -#: For backwards compatibility, values of yes, y and true are -#: converted to the default bell symbol and no, n, false and none are -#: converted to the empty string. - -# command_on_bell none - -#: Program to run when a bell occurs. The environment variable -#: KITTY_CHILD_CMDLINE can be used to get the program running in the -#: window in which the bell occurred. - -# bell_path none - -#: Path to a sound file to play as the bell sound. If set to none, the -#: system default bell sound is used. Must be in a format supported by -#: the operating systems sound API, such as WAV or OGA on Linux -#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound) - -#: }}} - -#: Window layout {{{ - -# remember_window_size yes -# initial_window_width 640 -# initial_window_height 400 - -#: If enabled, the window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# enabled_layouts * - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value all means all layouts. The first listed layout -#: will be used as the startup layout. Default configuration is all -#: layouts in alphabetical order. For a list of available layouts, see -#: the layouts . - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing kitty windows in a layout with the shortcut -#: start_resizing_window. The cells value is used for horizontal -#: resizing, and the lines value is used for vertical resizing. - -# window_border_width 0.5pt - -#: The width of window borders. Can be either in pixels (px) or pts -#: (pt). Values in pts will be rounded to the nearest number of pixels -#: based on screen resolution. If not specified, the unit is assumed -#: to be pts. Note that borders are displayed only when more than one -#: window is visible. They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: borders that separate the inactive window from a neighbor are -#: drawn. Note that setting a non-zero window_margin_width overrides -#: this and causes all borders to be drawn. - -# window_margin_width 0 - -#: The window margin (in pts) (blank area outside the border). A -#: single value sets all four sides. Two values set the vertical and -#: horizontal sides. Three values set top, horizontal and bottom. Four -#: values set top, right, bottom and left. - -# single_window_margin_width -1 - -#: The window margin to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_margin_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# window_padding_width 0 - -#: The window padding (in pts) (blank area between the text and the -#: window border). A single value sets all four sides. Two values set -#: the vertical and horizontal sides. Three values set top, horizontal -#: and bottom. Four values set top, right, bottom and left. - -# placement_strategy center - -#: When the window size is not an exact multiple of the cell size, the -#: cell area of the terminal window will have some extra padding on -#: the sides. You can control how that padding is distributed with -#: this option. Using a value of center means the cell area will be -#: placed centrally. A value of top-left means the padding will be -#: only at the bottom and right edges. - -# active_border_color #00ff00 - -#: The color for the border of the active window. Set this to none to -#: not draw borders around the active window. - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows. - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred. - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -# hide_window_decorations no - -#: Hide the window decorations (title-bar and window borders) with -#: yes. On macOS, titlebar-only can be used to only hide the titlebar. -#: Whether this works and exactly what effect it has depends on the -#: window manager/operating system. Note that the effects of changing -#: this option when reloading config are undefined. - -# window_logo_path none - -#: Path to a logo image. Must be in PNG format. Relative paths are -#: interpreted relative to the kitty config directory. The logo is -#: displayed in a corner of every kitty window. The position is -#: controlled by window_logo_position. Individual windows can be -#: configured to have different logos either using the launch action -#: or the remote control facility. - -# window_logo_position bottom-right - -#: Where to position the window logo in the window. The value can be -#: one of: top-left, top, top-right, left, center, right, bottom-left, -#: bottom, bottom-right. - -# window_logo_alpha 0.5 - -#: The amount the logo should be faded into the background. With zero -#: being fully faded and one being fully opaque. - -# resize_debounce_time 0.1 - -#: The time to wait before redrawing the screen when a resize event is -#: received (in seconds). On platforms such as macOS, where the -#: operating system sends events corresponding to the start and end of -#: a resize, this number is ignored. - -# resize_draw_strategy static - -#: Choose how kitty draws a window while a resize is in progress. A -#: value of static means draw the current window contents, mostly -#: unchanged. A value of scale means draw the current window contents -#: scaled. A value of blank means draw a blank window. A value of size -#: means show the window size in cells. - -# resize_in_steps no - -#: Resize the OS window in steps as large as the cells, instead of -#: with the usual pixel accuracy. Combined with initial_window_width -#: and initial_window_height in number of cells, this option can be -#: used to keep the margins as small as possible when resizing the OS -#: window. Note that this does not currently work on Wayland. - -# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - -#: The list of characters for visual window selection. For example, -#: for selecting a window to focus on with focus_visible_window. The -#: value should be a series of unique numbers or alphabets, case -#: insensitive, from the set [0-9A-Z]. Specify your preference as a -#: string of characters. - -# confirm_os_window_close -1 - -#: Ask for confirmation when closing an OS window or a tab with at -#: least this number of kitty windows in it by window manager (e.g. -#: clicking the window close button or pressing the operating system -#: shortcut to close windows) or by the close_tab action. A value of -#: zero disables confirmation. This confirmation also applies to -#: requests to quit the entire application (all OS windows, via the -#: quit action). Negative values are converted to positive ones, -#: however, with shell_integration enabled, using negative values -#: means windows sitting at a shell prompt are not counted, only -#: windows where some command is currently running. Note that if you -#: want confirmation when closing individual windows, you can map the -#: close_window_with_confirmation action. - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: The edge to show the tab bar on, top or bottom. - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts). - -# tab_bar_margin_height 0.0 0.0 - -#: The margin above and below the tab bar (in pts). The first number -#: is the margin between the edge of the OS Window and the tab bar. -#: The second number is the margin between the tab bar and the -#: contents of the current tab. - -# tab_bar_style fade - -#: The tab bar style, can be one of: - -#: fade -#: Each tab's edges fade into the background color. (See also tab_fade) -#: slant -#: Tabs look like the tabs in a physical file. -#: separator -#: Tabs are separated by a configurable separator. (See also -#: tab_separator) -#: powerline -#: Tabs are shown as a continuous line with "fancy" separators. -#: (See also tab_powerline_style) -#: custom -#: A user-supplied Python function called draw_tab is loaded from the file -#: tab_bar.py in the kitty config directory. For examples of how to -#: write such a function, see the functions named draw_tab_with_* in -#: kitty's source code: kitty/tab_bar.py. See also -#: this discussion https://github.com/kovidgoyal/kitty/discussions/4447 -#: for examples from kitty users. -#: hidden -#: The tab bar is hidden. If you use this, you might want to create a mapping -#: for the select_tab action which presents you with a list of tabs and -#: allows for easy switching to a tab. - -# tab_bar_align left - -#: The horizontal alignment of the tab bar, can be one of: left, -#: center, right. - -# tab_bar_min_tabs 2 - -#: The minimum number of tabs that must exist before the tab bar is -#: shown. - -# tab_switch_strategy previous - -#: The algorithm to use when switching to a tab when the current tab -#: is closed. The default of previous will switch to the last used -#: tab. A value of left will switch to the tab to the left of the -#: closed tab. A value of right will switch to the tab to the right of -#: the closed tab. A value of last will switch to the right-most tab. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# tab_powerline_style angled - -#: The powerline separator style between tabs in the tab bar when -#: using powerline as the tab_bar_style, can be one of: angled, -#: slanted, round. - -# tab_activity_symbol none - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has some activity. If you want to use -#: leading or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}" - -#: A template to render the tab title. The default just renders the -#: title with optional symbols for bell and activity. If you wish to -#: include the tab-index as well, use something like: {index}:{title}. -#: Useful if you have shortcuts mapped for goto_tab N. If you prefer -#: to see the index as a superscript, use {sup.index}. In addition you -#: can use {layout_name} for the current layout name, {num_windows} -#: for the number of windows in the tab and {num_window_groups} for -#: the number of window groups (not counting overlay windows) in the -#: tab. Note that formatting is done by Python's string formatting -#: machinery, so you can use, for instance, {layout_name[:2].upper()} -#: to show only the first two letters of the layout name, upper-cased. -#: If you want to style the text, you can use styling directives, for -#: example: -#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. -#: Similarly, for bold and italic: -#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. -#: Note that for backward compatibility, if {bell_symbol} or -#: {activity_symbol} are not present in the template, they are -#: prepended to it. - -# active_tab_title_template none - -#: Template to use for active tabs. If not specified falls back to -#: tab_title_template. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles. - -# tab_bar_background none - -#: Background color for the tab bar. Defaults to using the terminal -#: background color. - -# tab_bar_margin_color none - -#: Color for the tab bar margin area. Defaults to using the terminal -#: background color. - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 - -#: The foreground and background colors. - -background_opacity 0.90 - -#: The opacity of the background. A number between zero and one, where -#: one is opaque and zero is fully transparent. This will only work if -#: supported by the OS (for instance, when using a compositor under -#: X11). Note that it only sets the background color's opacity in -#: cells that have the same background color as the default terminal -#: background, so that things like the status bar in vim, powerline -#: prompts, etc. still look good. But it means that if you use a color -#: theme with a background color in your editor, it will not be -#: rendered as transparent. Instead you should change the default -#: background color in your kitty config and not use a background -#: color in the editor color scheme. Or use the escape codes to set -#: the terminals default colors in a shell script to launch your -#: editor. Be aware that using a value less than 1.0 is a (possibly -#: significant) performance hit. If you want to dynamically change -#: transparency of windows, set dynamic_background_opacity to yes -#: (this is off by default as it has a performance cost). Changing -#: this option when reloading the config will only work if -#: dynamic_background_opacity was enabled in the original config. - -# background_image none - -#: Path to a background image. Must be in PNG format. - -# background_image_layout tiled - -#: Whether to tile, scale or clamp the background image. The value can -#: be one of tiled, mirror-tiled, scaled, clamped. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. - -# dynamic_background_opacity no - -#: Allow changing of the background_opacity dynamically, using either -#: keyboard shortcuts (increase_background_opacity and -#: decrease_background_opacity) or the remote control facility. -#: Changing this option by reloading the config is not supported. - -# background_tint 0.0 - -#: How much to tint the background image by the background color. The -#: tint is applied only under the text area, not margin/borders. This -#: option makes it easier to read the text. Tinting is done using the -#: current background color for each window. This option applies only -#: if background_opacity is set and transparent windows are supported -#: or background_image is set. - -# dim_opacity 0.75 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #fffacd - -#: The foreground and background colors for text selected with the -#: mouse. Setting both of these to none will cause a "reverse video" -#: effect for selections, where the selection will be the cell text -#: color and the text will become the cell background color. Setting -#: only selection_foreground to none will cause the foreground color -#: to be used unchanged. Note that these colors can be overridden by -#: the program running in the terminal. - -#: The color table {{{ - -#: The 256 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version, for the first 16 colors. You can set the -#: remaining 240 colors as color16 to color255. - -# color0 #000000 -# color8 #767676 - -#: black - -# color1 #cc0403 -# color9 #f2201f - -#: red - -# color2 #19cb00 -# color10 #23fd00 - -#: green - -# color3 #cecb00 -# color11 #fffd00 - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff - -#: cyan - -# color7 #dddddd -# color15 #ffffff - -#: white - -# mark1_foreground black - -#: Color for marks of type 1 - -# mark1_background #98d3cb - -#: Color for marks of type 1 (light steel blue) - -# mark2_foreground black - -#: Color for marks of type 2 - -# mark2_background #f2dcd3 - -#: Color for marks of type 1 (beige) - -# mark3_foreground black - -#: Color for marks of type 3 - -# mark3_background #f274bc - -#: Color for marks of type 3 (violet) - -#: }}} - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login and --interactive to ensure that the shell starts in -#: interactive mode and reads its startup rc files. - -editor . - -#: The terminal based text editor (such as vim or nano) to use when -#: editing the kitty config file or similar tasks. - -#: The default value of . means to use the environment variables -#: VISUAL and EDITOR in that order. If these variables aren't set, -#: kitty will run your shell ($SHELL -l -i -c env) to see if your -#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, -#: kitty will cycle through various known editors (vim, emacs, etc.) -#: and take the first one that exists on your system. - -# close_on_child_death no - -#: Close the window when the child process (shell) exits. With the -#: default value no, the terminal will remain open when the child -#: exits as long as there are still processes outputting to the -#: terminal (for example disowned or backgrounded processes). When -#: enabled with yes, the window will close as soon as the child -#: process exits. Note that setting it to yes means that any -#: background processes still using the terminal can fail silently -#: because their stdout/stderr/stdin no longer work. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on, other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over SSH -#: connections. You can choose to either allow any program running -#: within kitty to control it with yes, or only allow programs that -#: connect to the socket (specified with the listen_on config option -#: or kitty --listen-on command line option) with the value socket- -#: only. The latter is useful if you want to prevent programs running -#: on a remote computer over SSH from controlling kitty. Reloading the -#: config will not affect this option. - -# listen_on none - -#: Listen to the specified UNIX socket for remote control connections. -#: Note that this will apply to all kitty instances. It can be -#: overridden by the kitty --listen-on command line option, which -#: supports listening on TCP socket. This option accepts only UNIX -#: sockets, such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). -#: Environment variables are expanded and relative paths are resolved -#: with respect to the temporary directory. If {kitty_pid} is present, -#: then it is replaced by the PID of the kitty process, otherwise the -#: PID of the kitty process is appended to the value, with a hyphen. -#: This option is ignored unless you also set allow_remote_control to -#: enable remote control. See the help for kitty --listen-on for more -#: details. Changing this option by reloading the config is not -#: supported. - -# env - -#: Specify the environment variables to be set in all child processes. -#: Using the name with an equal sign (e.g. env VAR=) will set it to -#: the empty string. Specifying only the name (e.g. env VAR) will -#: remove the variable from the child process' environment. Note that -#: environment variables are expanded recursively, for example:: - -#: env VAR1=a -#: env VAR2=${HOME}/${VAR1}/b - -#: The value of VAR2 will be /a/b. - -# watcher - -#: Path to python file which will be loaded for watchers -#: . Can be -#: specified more than once to load multiple watchers. The watchers -#: will be added to every kitty window. Relative paths are resolved -#: relative to the kitty config directory. Note that reloading the -#: config will only affect windows created after the reload. - -# exe_search_path - -#: Control where kitty finds the programs to run. The default search -#: order is: First search the system wide PATH, then ~/.local/bin and -#: ~/bin. If still not found, the PATH defined in the login shell -#: after sourcing all its startup files is tried. Finally, if present, -#: the PATH specified by the env option is tried. - -#: This option allows you to prepend, append, or remove paths from -#: this search order. It can be specified multiple times for multiple -#: paths. A simple path will be prepended to the search order. A path -#: that starts with the + sign will be append to the search order, -#: after ~/bin above. A path that starts with the - sign will be -#: removed from the entire search order. For example:: - -#: exe_search_path /some/prepended/path -#: exe_search_path +/some/appended/path -#: exe_search_path -/some/excluded/path - -# update_check_interval 24 - -#: The interval to periodically check if an update to kitty is -#: available (in hours). If an update is found, a system notification -#: is displayed informing you of the available update. The default is -#: to check every 24 hours, set to zero to disable. Update checking is -#: only done by the official binary builds. Distro packages or source -#: builds do not do update checking. Changing this option by reloading -#: the config is not supported. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session command line option for -#: individual instances. See sessions -#: in the -#: kitty documentation for details. Note that relative paths are -#: interpreted with respect to the kitty config directory. Environment -#: variables in the path are expanded. Changing this option by -#: reloading the config is not supported. - -# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: possible actions are: write-clipboard, read-clipboard, write- -#: primary, read-primary, read-clipboard-ask, read-primary-ask. The -#: default is to allow writing to the clipboard and primary selection -#: and to ask for permission when a program tries to read from the -#: clipboard. Note that disabling the read confirmation is a security -#: risk as it means that any program, even the ones running on a -#: remote server via SSH can read your clipboard. See also -#: clipboard_max_size. - -# clipboard_max_size 64 - -#: The maximum size (in MB) of data from programs running in kitty -#: that will be stored for writing to the system clipboard. A value of -#: zero means no size limit is applied. See also clipboard_control. - -# file_transfer_confirmation_bypass - -#: The password that can be supplied to the file transfer kitten -#: to skip the -#: transfer confirmation prompt. This should only be used when -#: initiating transfers from trusted computers, over trusted networks -#: or encrypted transports, as it allows any programs running on the -#: remote machine to read/write to the local filesystem, without -#: permission. - -# allow_hyperlinks yes - -#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 -#: escape sequences are ignored. Otherwise they become clickable -#: links, that you can click with the mouse or by using the hints -#: kitten . The -#: special value of ask means that kitty will ask before opening the -#: link when clicked. - -# shell_integration enabled - -#: Enable shell integration on supported shells. This enables features -#: such as jumping to previous prompts, browsing the output of the -#: previous command in a pager, etc. on supported shells. Set to -#: disabled to turn off shell integration, completely. It is also -#: possible to disable individual features, set to a space separated -#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- -#: prompt-mark, no-complete. See Shell integration -#: for details. - -# allow_cloning ask - -#: Control whether programs running in the terminal can request new -#: windows to be created. The canonical example is clone-in-kitty -#: . -#: By default, kitty will ask for permission for each clone request. -#: Allowing cloning unconditionally gives programs running in the -#: terminal (including over SSH) permission to execute arbitrary code, -#: as the user who is running the terminal, on the computer that the -#: terminal is running on. - -# clone_source_strategies venv,conda,env_var,path - -#: Control what shell code is sourced when running clone-in-kitty in -#: the newly cloned window. The supported strategies are: - -#: venv -#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the -#: Python stdlib venv module and allows cloning venvs automatically. -#: conda -#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual -#: environments created by conda. -#: env_var -#: Execute the contents of the environment variable -#: KITTY_CLONE_SOURCE_CODE with eval. -#: path -#: Source the file pointed to by the environment variable -#: KITTY_CLONE_SOURCE_PATH. - -#: This option must be a comma separated list of the above values. -#: This only source the first valid one in the above order. - -term tmux-256color - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on "Stack Overflow" -#: to change it. The TERM variable is used by various programs to get -#: information about the capabilities and behavior of the terminal. If -#: you change it, depending on what programs you run, and how -#: different the terminal you are changing it to is, various things -#: from key-presses, to colors, to various advanced features may not -#: work. Changing this option by reloading the config will only affect -#: newly created windows. - -#: }}} - -#: OS specific tweaks {{{ - -# wayland_titlebar_color system - -#: The color of the kitty window's titlebar on Wayland systems with -#: client side window decorations such as GNOME. A value of system -#: means to use the default system color, a value of background means -#: to use the background color of the currently active window and -#: finally you can use an arbitrary color, such as #12af59 or red. - -# macos_titlebar_color system - -#: The color of the kitty window's titlebar on macOS. A value of -#: system means to use the default system color, light or dark can -#: also be used to set it explicitly. A value of background means to -#: use the background color of the currently active window and finally -#: you can use an arbitrary color, such as #12af59 or red. WARNING: -#: This option works by using a hack when arbitrary color (or -#: background) is configured, as there is no proper Cocoa API for it. -#: It sets the background color of the entire window and makes the -#: titlebar transparent. As such it is incompatible with -#: background_opacity. If you want to use both, you are probably -#: better off just hiding the titlebar with hide_window_decorations. - -# macos_option_as_alt no - -#: Use the Option key as an Alt key on macOS. With this set to no, -#: kitty will use the macOS native Option+Key to enter Unicode -#: character behavior. This will break any Alt+Key keyboard shortcuts -#: in your terminal programs, but you can use the macOS Unicode input -#: technique. You can use the values: left, right or both to use only -#: the left, right or both Option keys as Alt, instead. Note that -#: kitty itself always treats Option the same as Alt. This means you -#: cannot use this option to configure different kitty shortcuts for -#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using -#: Option/Alt+Key will take priority, so that any such key presses -#: will not be passed to terminal programs running inside kitty. -#: Changing this option by reloading the config is not supported. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks on macOS (⌘+Tab and the -#: Dock). Changing this option by reloading the config is not -#: supported. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed on macOS. -#: By default, kitty will stay running, even with no open windows, as -#: is the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level OS windows to not be -#: resizable on macOS. Changing this option by reloading the config -#: will only affect newly created OS windows. - -# macos_thicken_font 0 - -#: Draw an extra border around the font with the given width, to -#: increase legibility at small font sizes on macOS. For example, a -#: value of 0.75 will result in rendering that looks similar to sub- -#: pixel antialiasing at common font sizes. - -# macos_traditional_fullscreen no - -#: Use the macOS traditional full-screen transition, that is faster, -#: but less pretty. - -# macos_show_window_title_in all - -#: Control where the window title is displayed on macOS. A value of -#: window will show the title of the currently active window at the -#: top of the macOS window. A value of menubar will show the title of -#: the currently active window in the macOS global menu bar, making -#: use of otherwise wasted space. A value of all will show the title -#: in both places, and none hides the title. See -#: macos_menubar_title_max_length for how to control the length of the -#: title in the menu bar. - -# macos_menubar_title_max_length 0 - -#: The maximum number of characters from the window title to show in -#: the macOS global menu bar. Values less than one means that there is -#: no maximum limit. - -# macos_custom_beam_cursor no - -#: Use a custom mouse cursor for macOS that is easier to see on both -#: light and dark backgrounds. Nowadays, the default macOS cursor -#: already comes with a white border. WARNING: this might make your -#: mouse cursor invisible on dual GPU machines. Changing this option -#: by reloading the config is not supported. - -# macos_colorspace srgb - -#: The colorspace in which to interpret terminal colors. The default -#: of srgb will cause colors to match those seen in web browsers. The -#: value of default will use whatever the native colorspace of the -#: display is. The value of displayp3 will use Apple's special -#: snowflake display P3 color space, which will result in over -#: saturated (brighter) colors with some color shift. Reloading -#: configuration will change this value only for newly created OS -#: windows. - -# linux_display_server auto - -#: Choose between Wayland and X11 backends. By default, an appropriate -#: backend based on the system state is chosen automatically. Set it -#: to x11 or wayland to force the choice. Changing this option by -#: reloading the config is not supported. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: Keys are identified simply by their lowercase Unicode characters. -#: For example: a for the A key, [ for the left square bracket key, -#: etc. For functional keys, such as Enter or Escape, the names are -#: present at Functional key definitions -#: . For modifier keys, the names are ctrl (control, ⌃), -#: shift (⇧), alt (opt, option, ⌥), super (cmd, command, ⌘). See also: -#: GLFW mods - -#: On Linux you can also use XKB key names to bind keys that are not -#: supported by GLFW. See XKB keys -#: for a list of key names. The name to use is the part -#: after the XKB_KEY_ prefix. Note that you can only use an XKB key -#: name for keys that are not known as GLFW keys. - -#: Finally, you can use raw system key codes to map keys, again only -#: for keys that are not known as GLFW keys. To see the system key -#: code for a key, start kitty with the kitty --debug-input option, -#: kitty will output some debug text for every key event. In that text -#: look for native_code, the value of that becomes the key name in the -#: shortcut. For example: - -#: .. code-block:: none - -#: on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a' - -#: Here, the key name for the A key is 0x61 and you can use it with:: - -#: map ctrl+0x61 something - -#: to map Ctrl+A to something. - -#: You can use the special action no_op to unmap a keyboard shortcut -#: that is assigned in the default configuration:: - -#: map kitty_mod+space no_op - -#: If you would like kitty to completely ignore a key event, not even -#: sending it to the program running in the terminal, map it to -#: discard_event:: - -#: map kitty_mod+f1 discard_event - -#: You can combine multiple actions to be triggered by a single -#: shortcut with combine action, using the syntax below:: - -#: map key combine action1 action2 action3 ... - -#: For example:: - -#: map kitty_mod+e combine : new_window : next_layout - -#: This will create a new window and switch to the next available -#: layout. - -#: You can use multi-key shortcuts with the syntax shown below:: - -#: map key1>key2>key3 action - -#: For example:: - -#: map ctrl+f>2 set_font_size 20 - -#: The full list of actions that can be mapped to key presses is -#: available here . - -# kitty_mod ctrl+shift - -#: Special modifier key alias for default shortcuts. You can change -#: the value of this option to alter all default shortcuts that use -#: kitty_mod. - -# clear_all_shortcuts no - -#: Remove all shortcut definitions up to this point. Useful, for -#: instance, to remove the default shortcuts. - -# action_alias - -#: E.g. action_alias launch_tab launch --type=tab --cwd=current - -#: Define action aliases to avoid repeating the same options in -#: multiple mappings. Aliases can be defined for any action and will -#: be expanded recursively. For example, the above alias allows you to -#: create mappings to launch a new tab in the current working -#: directory without duplication:: - -#: map f1 launch_tab vim -#: map f2 launch_tab emacs - -#: Similarly, to alias kitten invocation:: - -#: action_alias hints kitten hints --hints-offset=0 - -# kitten_alias - -#: E.g. kitten_alias hints hints --hints-offset=0 - -#: Like action_alias above, but specifically for kittens. Generally, -#: prefer to use action_alias. This option is a legacy version, -#: present for backwards compatibility. It causes all invocations of -#: the aliased kitten to be substituted. So the example above will -#: cause all invocations of the hints kitten to have the --hints- -#: offset=0 option applied. - -#: Clipboard {{{ - -#: Copy to clipboard - -# map kitty_mod+c copy_to_clipboard -# map cmd+c copy_to_clipboard - -#:: There is also a copy_or_interrupt action that can be optionally -#:: mapped to Ctrl+C. It will copy only if there is a selection and -#:: send an interrupt otherwise. Similarly, -#:: copy_and_clear_or_interrupt will copy and clear the selection or -#:: send an interrupt if there is no selection. - -#: Paste from clipboard - -# map kitty_mod+v paste_from_clipboard -# map cmd+v paste_from_clipboard - -#: Paste from selection - -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection - -#: Pass selection to program - -# map kitty_mod+o pass_selection_to_program - -#:: You can also pass the contents of the current selection to any -#:: program with pass_selection_to_program. By default, the system's -#:: open program is used, but you can specify your own, the selection -#:: will be passed as a command line argument to the program. For -#:: example:: - -#:: map kitty_mod+o pass_selection_to_program firefox - -#:: You can pass the current selection to a terminal program running -#:: in a new kitty window, by using the @selection placeholder:: - -#:: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -#: Scroll line up - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map opt+cmd+page_up scroll_line_up -# map cmd+up scroll_line_up - -#: Scroll line down - -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map opt+cmd+page_down scroll_line_down -# map cmd+down scroll_line_down - -#: Scroll page up - -# map kitty_mod+page_up scroll_page_up -# map cmd+page_up scroll_page_up - -#: Scroll page down - -# map kitty_mod+page_down scroll_page_down -# map cmd+page_down scroll_page_down - -#: Scroll to top - -# map kitty_mod+home scroll_home -# map cmd+home scroll_home - -#: Scroll to bottom - -# map kitty_mod+end scroll_end -# map cmd+end scroll_end - -#: Scroll to previous shell prompt - -# map kitty_mod+z scroll_to_prompt -1 - -#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last -#:: jumped to or the last clicked position. Requires shell -#:: integration -#:: to work. - -#: Scroll to next shell prompt - -# map kitty_mod+x scroll_to_prompt 1 - -#: Browse scrollback buffer in pager - -# map kitty_mod+h show_scrollback - -#:: You can pipe the contents of the current screen and history -#:: buffer as STDIN to an arbitrary program using launch --stdin- -#:: source. For example, the following opens the scrollback buffer in -#:: less in an overlay window:: - -#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R - -#:: For more details on piping screen and buffer contents to external -#:: programs, see launch . - -#: Browse output of the last shell command in pager - -# map kitty_mod+g show_last_command_output - -#:: You can also define additional shortcuts to get the command -#:: output. For example, to get the first command output on screen:: - -#:: map f1 show_first_command_output_on_screen - -#:: To get the command output that was last accessed by a keyboard -#:: action or mouse action:: - -#:: map f1 show_last_visited_command_output - -#:: You can pipe the output of the last command run in the shell -#:: using the launch action. For example, the following opens the -#:: output in less in an overlay window:: - -#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R - -#:: To get the output of the first command on the screen, use -#:: @first_cmd_output_on_screen. To get the output of the last jumped -#:: to command, use @last_visited_cmd_output. - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: Window management {{{ - -#: New window - -# map kitty_mod+enter new_window -# map cmd+enter new_window - -#:: You can open a new kitty window running an arbitrary program, for -#:: example:: - -#:: map kitty_mod+y launch mutt - -#:: You can open a new window with the current working directory set -#:: to the working directory of the current window using:: - -#:: map ctrl+alt+enter launch --cwd=current - -#:: You can open a new window that is allowed to control kitty via -#:: the kitty remote control facility with launch --allow-remote- -#:: control. Any programs running in that window will be allowed to -#:: control kitty. For example:: - -#:: map ctrl+enter launch --allow-remote-control some_program - -#:: You can open a new window next to the currently active window or -#:: as the first window, with:: - -#:: map ctrl+n launch --location=neighbor -#:: map ctrl+f launch --location=first - -#:: For more details, see launch -#:: . - -#: New OS window - -# map kitty_mod+n new_os_window -# map cmd+n new_os_window - -#:: Works like new_window above, except that it opens a top-level OS -#:: window. In particular you can use new_os_window_with_cwd to open -#:: a window with the current working directory. - -#: Close window - -# map kitty_mod+w close_window -# map shift+cmd+d close_window - -#: Next window - -# map kitty_mod+] next_window - -#: Previous window - -# map kitty_mod+[ previous_window - -#: Move window forward - -# map kitty_mod+f move_window_forward - -#: Move window backward - -# map kitty_mod+b move_window_backward - -#: Move window to top - -# map kitty_mod+` move_window_to_top - -#: Start resizing window - -# map kitty_mod+r start_resizing_window -# map cmd+r start_resizing_window - -#: First window - -# map kitty_mod+1 first_window -# map cmd+1 first_window - -#: Second window - -# map kitty_mod+2 second_window -# map cmd+2 second_window - -#: Third window - -# map kitty_mod+3 third_window -# map cmd+3 third_window - -#: Fourth window - -# map kitty_mod+4 fourth_window -# map cmd+4 fourth_window - -#: Fifth window - -# map kitty_mod+5 fifth_window -# map cmd+5 fifth_window - -#: Sixth window - -# map kitty_mod+6 sixth_window -# map cmd+6 sixth_window - -#: Seventh window - -# map kitty_mod+7 seventh_window -# map cmd+7 seventh_window - -#: Eight window - -# map kitty_mod+8 eighth_window -# map cmd+8 eighth_window - -#: Ninth window - -# map kitty_mod+9 ninth_window -# map cmd+9 ninth_window - -#: Tenth window - -# map kitty_mod+0 tenth_window - -#: Visually select and focus window - -# map kitty_mod+f7 focus_visible_window - -#:: Display overlay numbers and alphabets on the window, and switch -#:: the focus to the window when you press the key. When there are -#:: only two windows, the focus will be switched directly without -#:: displaying the overlay. You can change the overlay characters and -#:: their order with option visual_window_select_characters. - -#: Visually swap window with another - -# map kitty_mod+f8 swap_with_window - -#:: Works like focus_visible_window above, but swaps the window. - -#: }}} - -#: Tab management {{{ - -#: Next tab - -# map kitty_mod+right next_tab -# map shift+cmd+] next_tab -# map ctrl+tab next_tab - -#: Previous tab - -# map kitty_mod+left previous_tab -# map shift+cmd+[ previous_tab -# map ctrl+shift+tab previous_tab - -#: New tab - -# map kitty_mod+t new_tab -# map cmd+t new_tab - -#: Close tab - -# map kitty_mod+q close_tab -# map cmd+w close_tab - -#: Close OS window - -# map shift+cmd+w close_os_window - -#: Move tab forward - -# map kitty_mod+. move_tab_forward - -#: Move tab backward - -# map kitty_mod+, move_tab_backward - -#: Set tab title - -# map kitty_mod+alt+t set_tab_title -# map shift+cmd+i set_tab_title - - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab, 2 the second tab and -1 being the previously active -#: tab, and any number larger than the last tab being the last tab:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and new_tab_with_cwd. -#: Finally, if you want the new tab to open next to the current tab -#: rather than at the end of the tabs list, use:: - -#: map ctrl+t new_tab !neighbor [optional cmd to run] -map ctrl+t no_op -#: }}} - -#: Layout management {{{ - -#: Next layout - -# map kitty_mod+l next_layout - - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack - -#: Similarly, to switch back to the previous layout:: - -#: map ctrl+alt+p last_used_layout - -#: There is also a toggle_layout action that switches to the named -#: layout or back to the previous layout if in the named layout. -#: Useful to temporarily "zoom" the active window by switching to the -#: stack layout:: - -#: map ctrl+alt+z toggle_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty OS windows at -#: a time or only the current one. - -#: Increase font size - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+plus change_font_size all +2.0 -# map kitty_mod+kp_add change_font_size all +2.0 -# map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 -# map shift+cmd+equal change_font_size all +2.0 - -#: Decrease font size - -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 -# map shift+cmd+minus change_font_size all -2.0 - -#: Reset font size - -# map kitty_mod+backspace change_font_size all 0 -# map cmd+0 change_font_size all 0 - - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current OS window's font -#: size:: - -#: map kitty_mod+f6 change_font_size current 10.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -#: Open URL - -# map kitty_mod+e open_url_with_hints - -#:: Open a currently visible URL using the keyboard. The program used -#:: to open the URL is specified in open_url_with. - -#: Insert selected path - -# map kitty_mod+p>f kitten hints --type path --program - - -#:: Select a path/filename and insert it into the terminal. Useful, -#:: for instance to run git commands on a filename output from a -#:: previous git command. - -#: Open selected path - -# map kitty_mod+p>shift+f kitten hints --type path - -#:: Select a path/filename and open it with the default open program. - -#: Insert selected line - -# map kitty_mod+p>l kitten hints --type line --program - - -#:: Select a line of text and insert it into the terminal. Useful for -#:: the output of things like: `ls -1`. - -#: Insert selected word - -# map kitty_mod+p>w kitten hints --type word --program - - -#:: Select words and insert into terminal. - -#: Insert selected hash - -# map kitty_mod+p>h kitten hints --type hash --program - - -#:: Select something that looks like a hash and insert it into the -#:: terminal. Useful with git, which uses SHA1 hashes to identify -#:: commits. - -#: Open the selected file at the selected line - -# map kitty_mod+p>n kitten hints --type linenum - -#:: Select something that looks like filename:linenum and open it in -#:: vim at the specified line number. - -#: Open the selected hyperlink - -# map kitty_mod+p>y kitten hints --type hyperlink - -#:: Select a hyperlink (i.e. a URL that has been marked as such by -#:: the terminal program, for example, by `ls --hyperlink=auto`). - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see hints kitten -#: . -#: }}} - -#: Miscellaneous {{{ - -#: Toggle fullscreen - -# map kitty_mod+f11 toggle_fullscreen -# map ctrl+cmd+f toggle_fullscreen - -#: Toggle maximized - -# map kitty_mod+f10 toggle_maximized - -#: Toggle macOS secure keyboard entry - -# map opt+cmd+s toggle_macos_secure_keyboard_entry - -#: Unicode input - -# map kitty_mod+u kitten unicode_input -# map ctrl+cmd+space kitten unicode_input - -#: Edit config file - -# map kitty_mod+f2 edit_config_file -# map cmd+, edit_config_file - -#: Open the kitty command shell - -# map kitty_mod+escape kitty_shell window - -#:: Open the kitty shell in a new window / tab / overlay / os_window -#:: to control kitty using commands. - -#: Increase background opacity - -# map kitty_mod+a>m set_background_opacity +0.1 - -#: Decrease background opacity - -# map kitty_mod+a>l set_background_opacity -0.1 - -#: Make background fully opaque - -# map kitty_mod+a>1 set_background_opacity 1 - -#: Reset background opacity - -# map kitty_mod+a>d set_background_opacity default - -#: Reset the terminal - -# map kitty_mod+delete clear_terminal reset active -# map opt+cmd+r clear_terminal reset active - -#:: You can create shortcuts to clear/reset the terminal. For -#:: example:: - -#:: # Reset the terminal -#:: map f1 clear_terminal reset active -#:: # Clear the terminal screen by erasing all contents -#:: map f1 clear_terminal clear active -#:: # Clear the terminal scrollback by erasing it -#:: map f1 clear_terminal scrollback active -#:: # Scroll the contents of the screen into the scrollback -#:: map f1 clear_terminal scroll active -#:: # Clear everything up to the line with the cursor -#:: map f1 clear_terminal to_cursor active - -#:: If you want to operate on all kitty windows instead of just the -#:: current one, use all instead of active. - -#:: It is also possible to remap Ctrl+L to both scroll the current -#:: screen contents into the scrollback buffer and clear the screen, -#:: instead of just clearing the screen, for example, for ZSH add the -#:: following to ~/.zshrc: - -#:: .. code-block:: zsh - -#:: scroll-and-clear-screen() { -#:: printf '\n%.0s' {1..$LINES} -#:: zle clear-screen -#:: } -#:: zle -N scroll-and-clear-screen -#:: bindkey '^l' scroll-and-clear-screen - -#: Clear up to cursor line - -# map cmd+k clear_terminal to_cursor active - -#: Reload kitty.conf - -# map kitty_mod+f5 load_config_file -# map ctrl+cmd+, load_config_file - -#:: Reload kitty.conf, applying any changes since the last time it -#:: was loaded. Note that a handful of options cannot be dynamically -#:: changed and require a full restart of kitty. Particularly, when -#:: changing shortcuts for actions located on the macOS global menu -#:: bar, a full restart is needed. You can also map a keybinding to -#:: load a different config file, for example:: - -#:: map f5 load_config /path/to/alternative/kitty.conf - -#:: Note that all options from the original kitty.conf are discarded, -#:: in other words the new configuration *replace* the old ones. - -#: Debug kitty configuration - -# map kitty_mod+f6 debug_config -# map opt+cmd+, debug_config - -#:: Show details about exactly what configuration kitty is running -#:: with and its host environment. Useful for debugging issues. - -#: Send arbitrary text on key presses - -#:: E.g. map ctrl+shift+alt+h send_text all Hello World - -#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#:: client program when pressing specified shortcut keys. For -#:: example:: - -#:: map ctrl+alt+a send_text all Special text - -#:: This will send "Special text" when you press the Ctrl+Alt+A key -#:: combination. The text to be sent is a python string literal so -#:: you can use escapes like \x1b to send control codes or \u21fb to -#:: send Unicode characters (or you can just input the Unicode -#:: characters directly as UTF-8 text). You can use `kitty +kitten -#:: show_key` to get the key escape codes you want to emulate. - -#:: The first argument to send_text is the keyboard modes in which to -#:: activate the shortcut. The possible values are normal, -#:: application, kitty or a comma separated combination of them. The -#:: modes normal and application refer to the DECCKM cursor key mode -#:: for terminals, and kitty refers to the kitty extended keyboard -#:: protocol. The special value all means all of them. - -#:: Some more examples:: - -#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) -#:: map ctrl+alt+a send_text normal Word\x1b[H -#:: map ctrl+alt+a send_text application Word\x1bOH -#:: # Run a command at a shell prompt (like typing the command and pressing Enter) -#:: map ctrl+alt+a send_text normal,application some command with arguments\r - -#: Open kitty Website - -# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ - -#: }}} - -#: }}} diff --git a/kitty/palenight.conf b/kitty/palenight.conf deleted file mode 100644 index 6a58ece..0000000 --- a/kitty/palenight.conf +++ /dev/null @@ -1,40 +0,0 @@ -# Palenight Colorscheme for Kitty -# Based on https://github.com/sindresorhus/hyper-snazzy - -foreground #959dcb -background #292d3e -selection_foreground #eceef0 -selection_background #607c8b -url_color #82aaff - -# black -color0 #434759 -color8 #434758 - -# red -color1 #f07178 -color9 #ff8b92 - -# green -color2 #c3e88d -color10 #ddffa7 - -# yellow -color3 #ffcb6b -color11 #ffe585 - -# blue -color4 #82aaff -color12 #9cc4ff - -# magenta -color5 #c792ea -color13 #e1acff - -# cyan -color6 #89ddff -color14 #a3f7ff - -# white -color7 #d0d0d0 -color15 #fefefe From 994de825a04b12075e684c804c936b1d5fa1dd18 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Sun, 19 Feb 2023 16:29:28 -0500 Subject: [PATCH 05/34] Remove a bunch of dev host stuff. --- .config/.config | 1 - .config/fish/agnosterplus.omp.json | 57 - .config/fish/conf.d/omf.fish | 7 - .config/fish/config.fish | 58 - .config/fish/dracula.omp.json | 70 - .config/fish/dracula.omp.json.backup | 81 - .config/fish/fishd.fa163e35725f | 32 - .config/fish/functions/alacritty | 3 - .config/fish/functions/brewClang.fish | 6 - .config/fish/functions/cp.fish | 4 - .config/fish/functions/duall.fish | 4 - .config/fish/functions/edit_cmd.fish | 9 - .config/fish/functions/eutil.fish | 6 - .config/fish/functions/filterSections.fish | 6 - .config/fish/functions/find.fish | 4 - .config/fish/functions/fish_greeting.fish | 3 - .config/fish/functions/fish_ssh_agent.fish | 32 - .../functions/fish_user_key_bindings.fish | 6 - .config/fish/functions/fisher.fish | 435 ---- .config/fish/functions/fzf_key_bindings.fish | 1 - .config/fish/functions/git-root.fish | 3 - .config/fish/functions/git_pull.fish | 10 - .config/fish/functions/ipython.fish | 3 - .config/fish/functions/la.fish | 4 - .config/fish/functions/make-venv.fish | 8 - .config/fish/functions/mount_carbonate.fish | 5 - .../fish/functions/new-jupyter-kernel.fish | 5 - .config/fish/functions/pipreqs.fish | 3 - .config/fish/functions/pnglatex.fish | 4 - .config/fish/functions/pytest.fish | 4 - .config/fish/functions/python.fish | 3 - .config/fish/functions/rsync_smart.fish | 5 - .config/fish/functions/spoof.fish | 6 - .config/fish/functions/tl.fish | 4 - .config/fish/functions/unspoof.fish | 6 - .config/fish/functions/vi.fish | 4 - .config/fish/functions/vimdiff.fish | 3 - .config/fish_backup/conf.d/omf.fish | 7 - .config/fish_backup/config.fish | 76 - .config/fish_backup/fish_variables | 36 - .config/fish_backup/functions/alacritty | 3 - .config/fish_backup/functions/brewClang.fish | 6 - .config/fish_backup/functions/cp.fish | 4 - .config/fish_backup/functions/duall.fish | 4 - .config/fish_backup/functions/edit_cmd.fish | 9 - .config/fish_backup/functions/eutil.fish | 6 - .../fish_backup/functions/filterSections.fish | 6 - .config/fish_backup/functions/find.fish | 4 - .../fish_backup/functions/fish_greeting.fish | 3 - .../fish_backup/functions/fish_prompt.fish | 28 - .../fish_backup/functions/fish_ssh_agent.fish | 32 - .../functions/fish_user_key_bindings.fish | 4 - .config/fish_backup/functions/fisher.fish | 435 ---- .config/fish_backup/functions/git-root.fish | 3 - .config/fish_backup/functions/git_pull.fish | 10 - .config/fish_backup/functions/ipython.fish | 3 - .config/fish_backup/functions/la.fish | 4 - .config/fish_backup/functions/make-venv.fish | 8 - .../functions/mount_carbonate.fish | 5 - .../functions/new-jupyter-kernel.fish | 5 - .config/fish_backup/functions/pipreqs.fish | 3 - .config/fish_backup/functions/pnglatex.fish | 4 - .config/fish_backup/functions/pytest.fish | 4 - .config/fish_backup/functions/python.fish | 3 - .../fish_backup/functions/rsync_smart.fish | 5 - .config/fish_backup/functions/spoof.fish | 6 - .config/fish_backup/functions/tl.fish | 4 - .config/fish_backup/functions/unspoof.fish | 6 - .config/fish_backup/functions/vi.fish | 4 - .config/fish_backup/functions/vimdiff.fish | 3 - .config/iterm2/AppSupport | 1 - .../complex_modifications/1676650778.json | 73 - .../automatic_backups/karabiner_20230217.json | 228 -- .config/karabiner/karabiner.json | 278 --- .config/kitty/.kitty.conf.swp | Bin 20480 -> 0 bytes .config/kitty/kitty.conf | 2168 ----------------- .config/kitty/palenight.conf | 40 - .config/oh-my-posh/cobalt2.omp.json | 56 - .config/omf/bundle | 1 - .config/omf/channel | 1 - .config/omf/theme | 1 - .config/zed/settings.json | 11 - 82 files changed, 4506 deletions(-) delete mode 120000 .config/.config delete mode 100644 .config/fish/agnosterplus.omp.json delete mode 100644 .config/fish/conf.d/omf.fish delete mode 100755 .config/fish/config.fish delete mode 100644 .config/fish/dracula.omp.json delete mode 100644 .config/fish/dracula.omp.json.backup delete mode 100644 .config/fish/fishd.fa163e35725f delete mode 100644 .config/fish/functions/alacritty delete mode 100755 .config/fish/functions/brewClang.fish delete mode 100755 .config/fish/functions/cp.fish delete mode 100644 .config/fish/functions/duall.fish delete mode 100755 .config/fish/functions/edit_cmd.fish delete mode 100755 .config/fish/functions/eutil.fish delete mode 100755 .config/fish/functions/filterSections.fish delete mode 100755 .config/fish/functions/find.fish delete mode 100755 .config/fish/functions/fish_greeting.fish delete mode 100755 .config/fish/functions/fish_ssh_agent.fish delete mode 100755 .config/fish/functions/fish_user_key_bindings.fish delete mode 100755 .config/fish/functions/fisher.fish delete mode 120000 .config/fish/functions/fzf_key_bindings.fish delete mode 100755 .config/fish/functions/git-root.fish delete mode 100755 .config/fish/functions/git_pull.fish delete mode 100644 .config/fish/functions/ipython.fish delete mode 100755 .config/fish/functions/la.fish delete mode 100644 .config/fish/functions/make-venv.fish delete mode 100755 .config/fish/functions/mount_carbonate.fish delete mode 100755 .config/fish/functions/new-jupyter-kernel.fish delete mode 100644 .config/fish/functions/pipreqs.fish delete mode 100644 .config/fish/functions/pnglatex.fish delete mode 100755 .config/fish/functions/pytest.fish delete mode 100644 .config/fish/functions/python.fish delete mode 100755 .config/fish/functions/rsync_smart.fish delete mode 100644 .config/fish/functions/spoof.fish delete mode 100755 .config/fish/functions/tl.fish delete mode 100644 .config/fish/functions/unspoof.fish delete mode 100755 .config/fish/functions/vi.fish delete mode 100755 .config/fish/functions/vimdiff.fish delete mode 100644 .config/fish_backup/conf.d/omf.fish delete mode 100755 .config/fish_backup/config.fish delete mode 100644 .config/fish_backup/fish_variables delete mode 100644 .config/fish_backup/functions/alacritty delete mode 100755 .config/fish_backup/functions/brewClang.fish delete mode 100755 .config/fish_backup/functions/cp.fish delete mode 100644 .config/fish_backup/functions/duall.fish delete mode 100755 .config/fish_backup/functions/edit_cmd.fish delete mode 100755 .config/fish_backup/functions/eutil.fish delete mode 100755 .config/fish_backup/functions/filterSections.fish delete mode 100755 .config/fish_backup/functions/find.fish delete mode 100755 .config/fish_backup/functions/fish_greeting.fish delete mode 100755 .config/fish_backup/functions/fish_prompt.fish delete mode 100755 .config/fish_backup/functions/fish_ssh_agent.fish delete mode 100755 .config/fish_backup/functions/fish_user_key_bindings.fish delete mode 100755 .config/fish_backup/functions/fisher.fish delete mode 100755 .config/fish_backup/functions/git-root.fish delete mode 100755 .config/fish_backup/functions/git_pull.fish delete mode 100644 .config/fish_backup/functions/ipython.fish delete mode 100755 .config/fish_backup/functions/la.fish delete mode 100644 .config/fish_backup/functions/make-venv.fish delete mode 100755 .config/fish_backup/functions/mount_carbonate.fish delete mode 100755 .config/fish_backup/functions/new-jupyter-kernel.fish delete mode 100644 .config/fish_backup/functions/pipreqs.fish delete mode 100644 .config/fish_backup/functions/pnglatex.fish delete mode 100755 .config/fish_backup/functions/pytest.fish delete mode 100644 .config/fish_backup/functions/python.fish delete mode 100755 .config/fish_backup/functions/rsync_smart.fish delete mode 100644 .config/fish_backup/functions/spoof.fish delete mode 100755 .config/fish_backup/functions/tl.fish delete mode 100644 .config/fish_backup/functions/unspoof.fish delete mode 100755 .config/fish_backup/functions/vi.fish delete mode 100755 .config/fish_backup/functions/vimdiff.fish delete mode 120000 .config/iterm2/AppSupport delete mode 100644 .config/karabiner/assets/complex_modifications/1676650778.json delete mode 100644 .config/karabiner/automatic_backups/karabiner_20230217.json delete mode 100644 .config/karabiner/karabiner.json delete mode 100644 .config/kitty/.kitty.conf.swp delete mode 100644 .config/kitty/kitty.conf delete mode 100644 .config/kitty/palenight.conf delete mode 100644 .config/oh-my-posh/cobalt2.omp.json delete mode 100644 .config/omf/bundle delete mode 100644 .config/omf/channel delete mode 100644 .config/omf/theme delete mode 100644 .config/zed/settings.json diff --git a/.config/.config b/.config/.config deleted file mode 120000 index 39b1327..0000000 --- a/.config/.config +++ /dev/null @@ -1 +0,0 @@ -/Users/njuers/dotfiles/.config \ No newline at end of file diff --git a/.config/fish/agnosterplus.omp.json b/.config/fish/agnosterplus.omp.json deleted file mode 100644 index a56c5ff..0000000 --- a/.config/fish/agnosterplus.omp.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", - "blocks": [ - { - "type": "rprompt", - "segments": [ - { - "foreground": "#007ACC", - "properties": { - "time_format": "15:04:05" - }, - "style": "plain", - "template": " {{ .CurrentDate | date .Format }} ", - "type": "time" - } - ] - }, - { - "alignment": "left", - "segments": [ - { - "background": "#ffffff", - "foreground": "#100e23", - "powerline_symbol": "\ue0b0", - "style": "powerline", - "template": " {{ .UserName }}@{{ .HostName }} ", - "type": "session" - }, - { - "background": "#91ddff", - "foreground": "#100e23", - "powerline_symbol": "\ue0b0", - "properties": { - "folder_icon": "\uf115", - "folder_separator_icon": " \ue0b1 ", - "home_icon": "\uf7db", - "style": "agnoster" - }, - "style": "powerline", - "template": " {{ .Path }} ", - "type": "path" - }, - { - "background": "#95ffa4", - "foreground": "#193549", - "powerline_symbol": "\ue0b0", - "style": "powerline", - "template": " {{ .HEAD }} ", - "type": "git" - } - ], - "type": "prompt" - } - ], - "final_space": true, - "version": 2 -} diff --git a/.config/fish/conf.d/omf.fish b/.config/fish/conf.d/omf.fish deleted file mode 100644 index 3e0f6d6..0000000 --- a/.config/fish/conf.d/omf.fish +++ /dev/null @@ -1,7 +0,0 @@ -# Path to Oh My Fish install. -set -q XDG_DATA_HOME - and set -gx OMF_PATH "$XDG_DATA_HOME/omf" - or set -gx OMF_PATH "$HOME/.local/share/omf" - -# Load Oh My Fish configuration. -source $OMF_PATH/init.fish diff --git a/.config/fish/config.fish b/.config/fish/config.fish deleted file mode 100755 index 14e87ad..0000000 --- a/.config/fish/config.fish +++ /dev/null @@ -1,58 +0,0 @@ -set -Ux VISUAL nvim -set -Ux EDITOR $VISUAL -fish_vi_key_bindings -# source (dirname (status -f))/init.fish - -# if tmux is executable and not inside a tmux session, then try to attach. -# if attachment fails, start a new session - -# set -x TERMINFO $TERMINFO $HOME/.local/share/terminfo/74/ -# set -x TERM tmux-256color -# if status is-interactive -# and not set -q TMUX -# exec tmux -# end - -set -x PYTHONBREAKPOINT ipdb.set_trace - -# Proper terminal behavior with unicode -set -x LC_ALL en_US.UTF-8 -set -x LANG en_US.UTF-8 -set -x fish_emoji_width 2 - -bind -M default v edit_cmd - -# for nvim - -# Use ipdb for debugging -set -x PYTHONBREAKPOINT ipdb.set_trace - -set -x JAVA_HOME /usr/local/opt/openjdk/bin - -set -q CC; or set CC clang -set -q CXX; or set CXX $CC++ - -set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" -set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" -set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" -set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/" - -set -x ENABLE_USER_SITE "False" -set -x PATH /opt/local/bin /opt/local/sbin $PATH -set -x MANPATH /opt/local/share/man (manpath) -set -x PATH $HOME/bin $PATH -set -x PATH $HOME/.cargo/bin $PATH -set -x PATH $HOME/.gitaliases $PATH -set -x PATH /usr/local/bin $PATH -set -x PATH /usr/local/cmake/bin $PATH - -# set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" -# set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" -# set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" -# set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/ -I$JAVA_HOME/include -I$JAVA_HOME/include/darwin" - - -fish_ssh_agent - -thefuck --alias | source -oh-my-posh init fish --config ~/.config/fish/dracula.omp.json | source diff --git a/.config/fish/dracula.omp.json b/.config/fish/dracula.omp.json deleted file mode 100644 index 6e2029a..0000000 --- a/.config/fish/dracula.omp.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", - "blocks": [ - { - "alignment": "left", - "segments": [ - { - "background": "#6272a4", - "foreground": "#f8f8f2", - "leading_diamond": "\ue0b6", - "style": "diamond", - "template": "{{ .UserName }} ", - "type": "session" - }, - { - "background": "#bd93f9", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "properties": { - "style": "folder" - }, - "style": "powerline", - "template": " {{ .Path }} ", - "type": "path" - }, - { - "background": "#ffb86c", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "properties": { - "branch_icon": "", - "fetch_stash_count": true, - "fetch_status": true, - "fetch_upstream_icon": true - }, - "style": "powerline", - "template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uF692 {{ .StashCount }}{{ end }}", - "type": "git" - }, - { - "background": "#8be9fd", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "style": "powerline", - "template": " \ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} ", - "type": "node" - } - ], - "type": "prompt" - }, - { - "alignment": "left", - "segments": [ - { - "background": "#f1fa8c", - "foreground": "#282a36", - "invert_powerline": true, - "leading_diamond": "\ue0b2", - "style": "diamond", - "template": " \ue7ad {{.Profile}}{{if .Region}}@{{.Region}}{{end}}", - "trailing_diamond": "\ue0b4", - "type": "aws" - } - ], - "type": "rprompt" - } - ], - "final_space": true, - "version": 2 -} diff --git a/.config/fish/dracula.omp.json.backup b/.config/fish/dracula.omp.json.backup deleted file mode 100644 index dd39862..0000000 --- a/.config/fish/dracula.omp.json.backup +++ /dev/null @@ -1,81 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", - "blocks": [ - { - "alignment": "left", - "segments": [ - { - "background": "#6272a4", - "foreground": "#f8f8f2", - "leading_diamond": "\ue0b6", - "style": "diamond", - "template": "{{ .UserName }} ", - "type": "session" - }, - { - "background": "#bd93f9", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "properties": { - "style": "folder" - }, - "style": "powerline", - "template": " {{ .Path }} ", - "type": "path" - }, - { - "background": "#ffb86c", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "properties": { - "branch_icon": "", - "fetch_stash_count": true, - "fetch_status": true, - "fetch_upstream_icon": true - }, - "style": "powerline", - "template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uF692 {{ .StashCount }}{{ end }}", - "type": "git" - }, - { - "background": "#8be9fd", - "foreground": "#f8f8f2", - "powerline_symbol": "\ue0b0", - "style": "powerline", - "template": " \ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} ", - "type": "node" - }, - { - "background": "#ff79c6", - "foreground": "#f8f8f2", - "properties": { - "time_format": "15:04" - }, - "style": "diamond", - "template": " \u2665 {{ .CurrentDate | date .Format }} ", - "trailing_diamond": "\ue0b0", - "type": "time" - } - ], - "type": "prompt" - }, - { - "alignment": "left", - "segments": [ - { - "background": "#f1fa8c", - "foreground": "#282a36", - "invert_powerline": true, - "leading_diamond": "\ue0b2", - "style": "diamond", - "template": " \ue7ad {{.Profile}}{{if .Region}}@{{.Region}}{{end}}", - "trailing_diamond": "\ue0b4", - "type": "aws" - } - ], - "type": "rprompt" - } - ], - "final_space": true, - "version": 2 -} diff --git a/.config/fish/fishd.fa163e35725f b/.config/fish/fishd.fa163e35725f deleted file mode 100644 index 2a295d9..0000000 --- a/.config/fish/fishd.fa163e35725f +++ /dev/null @@ -1,32 +0,0 @@ -# This file is automatically generated by the fish. -# Do NOT edit it directly, your changes will be overwritten. -SET_EXPORT EDITOR:nvim -SET_EXPORT VISUAL:nvim -SET __fish_init_1_50_0:\x1d -SET __fish_init_2_3_0:\x1d -SET fish_color_autosuggestion:555\x1eyellow -SET fish_color_command:005fd7\x1epurple -SET fish_color_comment:red -SET fish_color_cwd:green -SET fish_color_cwd_root:red -SET fish_color_end:green -SET fish_color_error:red\x1e\x2d\x2dbold -SET fish_color_escape:cyan -SET fish_color_history_current:cyan -SET fish_color_host:normal -SET fish_color_match:cyan -SET fish_color_normal:normal -SET fish_color_operator:cyan -SET fish_color_param:00afff\x1ecyan -SET fish_color_quote:brown -SET fish_color_redirection:normal -SET fish_color_search_match:\x2d\x2dbackground\x3dpurple -SET fish_color_selection:\x2d\x2dbackground\x3dpurple -SET fish_color_user:green -SET fish_color_valid_path:\x2d\x2dunderline -SET fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell\x0aType\x20\x1b\x5b32mhelp\x1b\x5b30m\x1b\x5bm\x0f\x20for\x20instructions\x20on\x20how\x20to\x20use\x20fish -SET fish_pager_color_completion:normal -SET fish_pager_color_description:555\x1eyellow -SET fish_pager_color_prefix:cyan -SET fish_pager_color_progress:cyan -SET fish_user_paths:/home/njuers/\x2efzf/bin diff --git a/.config/fish/functions/alacritty b/.config/fish/functions/alacritty deleted file mode 100644 index 558059e..0000000 --- a/.config/fish/functions/alacritty +++ /dev/null @@ -1,3 +0,0 @@ -function alacritty - command env WINIT_HIDPI_FACTOR=1.0 alacritty -end diff --git a/.config/fish/functions/brewClang.fish b/.config/fish/functions/brewClang.fish deleted file mode 100755 index 18d4880..0000000 --- a/.config/fish/functions/brewClang.fish +++ /dev/null @@ -1,6 +0,0 @@ -# used to favor Homebrew's Clang (and LLVM) over the stock Apple one. -function brewClang - set -x PATH /usr/local/opt/llvm/bin $PATH - set -x LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" - # set -x LDFLAGS "-L/Library/Frameworks/R.framework/Resources/lib" -end diff --git a/.config/fish/functions/cp.fish b/.config/fish/functions/cp.fish deleted file mode 100755 index 8d075f6..0000000 --- a/.config/fish/functions/cp.fish +++ /dev/null @@ -1,4 +0,0 @@ -function cp - command cp -rv $argv -end - diff --git a/.config/fish/functions/duall.fish b/.config/fish/functions/duall.fish deleted file mode 100644 index f55c6ae..0000000 --- a/.config/fish/functions/duall.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function duall --wraps='du .hs .[^.]* *' --wraps='bash -c du .hs .[^.]* *' --wraps='bash -c du -hs .[^.]* *' --wraps=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' --description alias\ duall=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' - bash -c 'du -hs .[^.]* *' $argv; -end diff --git a/.config/fish/functions/edit_cmd.fish b/.config/fish/functions/edit_cmd.fish deleted file mode 100755 index 7df2c3e..0000000 --- a/.config/fish/functions/edit_cmd.fish +++ /dev/null @@ -1,9 +0,0 @@ -function edit_cmd --description 'Edit cmdline in editor' - set -l f (mktemp) - set -l p (commandline -C) - commandline -b > $f - vim -c set\ ft=fish $f - commandline -r (more $f) - commandline -C $p - rm $f -end diff --git a/.config/fish/functions/eutil.fish b/.config/fish/functions/eutil.fish deleted file mode 100755 index 2e24a9a..0000000 --- a/.config/fish/functions/eutil.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Search and retrieve records from Entrez. -# Instruction at https://www.ncbi.nlm.nih.gov/books/NBK25500/ -function eutil - "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/$argv[1]" -end - diff --git a/.config/fish/functions/filterSections.fish b/.config/fish/functions/filterSections.fish deleted file mode 100755 index ae9fe97..0000000 --- a/.config/fish/functions/filterSections.fish +++ /dev/null @@ -1,6 +0,0 @@ -# filters sections from master class spreadsheet -# usage: filterSections roster.txt master.csv >out.csv -function filterSections - awk 'BEGIN {FPAT = "([^,]+)|(\"[^\"]+\")"} \ - FNR == NR { seen[$1]; next } FNR <= 2 || $3 in seen' "$argv[1]" "$argv[2]" -end diff --git a/.config/fish/functions/find.fish b/.config/fish/functions/find.fish deleted file mode 100755 index df6582d..0000000 --- a/.config/fish/functions/find.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias for find to exclude .git dir -function find - command find $argv -not -path '*/\.git' -end diff --git a/.config/fish/functions/fish_greeting.fish b/.config/fish/functions/fish_greeting.fish deleted file mode 100755 index 81a7468..0000000 --- a/.config/fish/functions/fish_greeting.fish +++ /dev/null @@ -1,3 +0,0 @@ -function fish_greeting - echo "Hello!" -end diff --git a/.config/fish/functions/fish_ssh_agent.fish b/.config/fish/functions/fish_ssh_agent.fish deleted file mode 100755 index 5960b75..0000000 --- a/.config/fish/functions/fish_ssh_agent.fish +++ /dev/null @@ -1,32 +0,0 @@ -function __ssh_agent_is_started -d "check if ssh agent is already started" - if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end - source $SSH_ENV > /dev/null - end - - if test -z "$SSH_AGENT_PID" - return 1 - end - - ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep -q ssh-agent - #pgrep ssh-agent - return $status -end - - -function __ssh_agent_start -d "start a new ssh agent" - ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV - chmod 600 $SSH_ENV - source $SSH_ENV > /dev/null - true # suppress errors from setenv, i.e. set -gx -end - - -function fish_ssh_agent --description "Start ssh-agent if not started yet, or uses already started ssh-agent." - if test -z "$SSH_ENV" - set -xg SSH_ENV $HOME/.ssh/environment - end - - if not __ssh_agent_is_started - __ssh_agent_start - end -end diff --git a/.config/fish/functions/fish_user_key_bindings.fish b/.config/fish/functions/fish_user_key_bindings.fish deleted file mode 100755 index 31497af..0000000 --- a/.config/fish/functions/fish_user_key_bindings.fish +++ /dev/null @@ -1,6 +0,0 @@ -function fish_user_key_bindings - fish_vi_key_bindings - bind \cF -M insert accept-autosuggestion -end - -fzf_key_bindings diff --git a/.config/fish/functions/fisher.fish b/.config/fish/functions/fisher.fish deleted file mode 100755 index 1d63c33..0000000 --- a/.config/fish/functions/fisher.fish +++ /dev/null @@ -1,435 +0,0 @@ -set -g fisher_version 3.2.10 - -function fisher -a cmd -d "fish package manager" - set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache - set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config - - set -g fish_config $XDG_CONFIG_HOME/fish - set -g fisher_cache $XDG_CACHE_HOME/fisher - set -g fisher_config $XDG_CONFIG_HOME/fisher - - set -q fisher_path; or set -g fisher_path $fish_config - set -g fishfile $fish_config/fishfile - - for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache - if test ! -d $path - command mkdir -p $path - end - end - - if test ! -e $fisher_path/completions/fisher.fish - echo "fisher complete" >$fisher_path/completions/fisher.fish - _fisher_complete - end - - if test -e $fisher_path/conf.d/fisher.fish - switch "$version" - case \*-\* - command rm -f $fisher_path/conf.d/fisher.fish - case 2\* - case \* - command rm -f $fisher_path/conf.d/fisher.fish - end - else - switch "$version" - case \*-\* - case 2\* - echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish - end - end - - # 2019-10-22: temp code, migrates fishfile from old path back to $fish_config - if test -e "$fisher_path/fishfile"; and test ! -e "$fishfile" - command mv -f "$fisher_path/fishfile" "$fishfile" - end - - switch "$cmd" - case {,self-}complete - _fisher_complete - case copy-user-key-bindings - _fisher_copy_user_key_bindings - case ls - set -e argv[1] - if test -s "$fishfile" - set -l file (_fisher_fmt <$fishfile | _fisher_parse -R | command sed "s|@.*||") - _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " - BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ - " | command sed "s|^$HOME|~|" - end - case self-update - _fisher_self_update (status -f) - case self-uninstall - _fisher_self_uninstall - case {,-}-v{ersion,} - echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") - case {,-}-h{elp,} - _fisher_help - case "" - _fisher_commit -- - case add rm - if not isatty - while read -l arg - set argv $argv $arg - end - end - - if test (count $argv) = 1 - echo "fisher: invalid number of arguments" >&2 - _fisher_help >&2 - return 1 - end - - _fisher_commit $argv - case \* - echo "fisher: unknown flag or command \"$cmd\"" >&2 - _fisher_help >&2 - return 1 - end -end - -function _fisher_complete - complete -ec fisher - complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages" - complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages" - complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX" - complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" - complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" - complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" - for pkg in (fisher ls) - complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg - end -end - -function _fisher_copy_user_key_bindings - if functions -q fish_user_key_bindings - functions -c fish_user_key_bindings fish_user_key_bindings_copy - end - function fish_user_key_bindings - for file in $fisher_path/conf.d/*_key_bindings.fish - source $file >/dev/null 2>/dev/null - end - if functions -q fish_user_key_bindings_copy - fish_user_key_bindings_copy - end - end -end - -function _fisher_ls - for pkg in $fisher_config/*/*/* - command readlink $pkg; or echo $pkg - end -end - -function _fisher_fmt - command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" -end - -function _fisher_help - echo "usage: fisher add Add packages" - echo " fisher rm Remove packages" - echo " fisher Update all packages" - echo " fisher ls [] List installed packages matching " - echo " fisher --help Show this help" - echo " fisher --version Show the current version" - echo " fisher self-update Update to the latest version" - echo " fisher self-uninstall Uninstall from your system" - echo "examples:" - echo " fisher add jethrokuan/z rafaelrinaldi/pure" - echo " fisher add gitlab.com/foo/bar@v2" - echo " fisher add ~/path/to/local/pkg" - echo " fisher add &2 - command curl -s "$url?nocache" >$file. - - set -l next_version (command awk '{ print $4 } { exit }' <$file.) - switch "$next_version" - case "" $fisher_version - command rm -f $file. - if test -z "$next_version" - echo "fisher: cannot update fisher -- are you offline?" >&2 - return 1 - end - echo "fisher is already up-to-date" >&2 - case \* - echo "linking $file" | command sed "s|$HOME|~|" >&2 - command mv -f $file. $file - source $file - echo "updated to fisher $fisher_version -- hooray!" >&2 - _fisher_complete - end -end - -function _fisher_self_uninstall - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - - for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fishfile - echo "removing $file" - command rm -Rf $file 2>/dev/null - end | command sed "s|$HOME|~|" >&2 - - for name in (set -n | command awk '/^fisher_/') - set -e "$name" - end - - functions -e (functions -a | command awk '/^_fisher/') fisher - complete -c fisher --erase -end - -function _fisher_commit -a cmd - set -e argv[1] - set -l elapsed (_fisher_now) - - if test ! -e "$fishfile" - command touch $fishfile - echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 - end - - set -l old_pkgs (_fisher_ls | _fisher_fmt) - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - command rm -Rf $fisher_config - command mkdir -p $fisher_config - - set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) - set -l actual_pkgs (_fisher_fetch $next_pkgs) - set -l updated_pkgs - for pkg in $old_pkgs - if contains -- $pkg $actual_pkgs - set updated_pkgs $updated_pkgs $pkg - end - end - - if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" - echo "fisher: nothing to commit -- try adding some packages" >&2 - return 1 - end - - set -l out_pkgs - if test "$cmd" = "rm" - set out_pkgs $next_pkgs - else - for pkg in $next_pkgs - if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs - set out_pkgs $out_pkgs $pkg - end - end - end - - printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile - - _fisher_complete - - command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' - BEGIN { - res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) - printf((res ? res : "done") " in %.2fs\n", E / 1000) - } - function fmt(action, n, s) { - return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s - } - ' >&2 -end - -function _fisher_parse -a mode cmd - set -e argv[1..2] - command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' - BEGIN { - for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] - } - !NF { next } { k = getkey($1) } - MODE == "-R" && !(k in pkgs) && $0 = $1 - MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } - MODE == "-W" || CMD == "rm" { delete pkgs[k] } - END { - for (k in pkgs) { - if (CMD != "rm" || MODE == "-W") print pkgs[k] - else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr" - } - } - function getkey(s, a) { - return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] - } - ' -end - -function _fisher_fetch - set -l pkg_jobs - set -l out_pkgs - set -l next_pkgs - set -l local_pkgs - set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token - - for pkg in $argv - switch $pkg - case \~\* /\* - set -l path (echo "$pkg" | command sed "s|^~|$HOME|") - if test -e "$path" - set local_pkgs $local_pkgs $path - else - echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 - end - continue - end - - command awk -v PKG="$pkg" -v FS=/ ' - BEGIN { - if (split(PKG, tmp, /@+|:/) > 2) { - if (tmp[4]) sub("@"tmp[4], "", PKG) - print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master") - } else { - pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] - tag = tmp[2] ? tmp[2] : "master" - print (\ - pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ - pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ - pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \ - ) "\t" pkg - } - } - ' | read -l url pkg branch - - if test ! -d "$fisher_config/$pkg" - fish -c " - echo fetching $url >&2 - command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg) - if test ! -z \"$branch\" - command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null - or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2 - else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null - command rm -Rf $fisher_cache/$pkg - command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg - command rm -Rf $fisher_config/$pkg - command cp -Rf {$fisher_cache,$fisher_config}/$pkg - else if test -d \"$fisher_cache/$pkg\" - echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 - command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/.. - else - command rm -Rf $fisher_config/$pkg - echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2 - end - " >/dev/null & - set pkg_jobs $pkg_jobs (_fisher_jobs --last) - set next_pkgs $next_pkgs "$fisher_config/$pkg" - end - end - - if set -q pkg_jobs[1] - while for job in $pkg_jobs - contains -- $job (_fisher_jobs); and break - end - end - for pkg in $next_pkgs - if test -d "$pkg" - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg - end - end - end - - set -l local_prefix $fisher_config/local/$USER - if test ! -d "$local_prefix" - command mkdir -p $local_prefix - end - for pkg in $local_pkgs - set -l target $local_prefix/(command basename $pkg) - if test ! -L "$target" - command ln -sf $pkg $target - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg --link - end - end - - if set -q out_pkgs[1] - _fisher_fetch ( - for pkg in $out_pkgs - if test -s "$pkg/fishfile" - _fisher_fmt <$pkg/fishfile | _fisher_parse -R - end - end) - printf "%s\n" $out_pkgs | _fisher_fmt - end -end - -function _fisher_add -a pkg opts - for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish - set -l target (command basename $src) - switch $src - case $pkg/conf.d\* - set target $fisher_path/conf.d/$target - case $pkg/completions\* - set target $fisher_path/completions/$target - case $pkg/{functions,}\* - switch $target - case uninstall.fish - continue - case {init,key_bindings}.fish - set target $fisher_path/conf.d/(command basename $pkg)\_$target - case \* - set target $fisher_path/functions/$target - end - end - echo "linking $target" | command sed "s|$HOME|~|" >&2 - if set -q opts[1] - command ln -sf $src $target - else - command cp -f $src $target - end - switch $target - case \*.fish - source $target >/dev/null 2>/dev/null - end - end -end - -function _fisher_rm -a pkg - for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish - set -l target (command basename $src) - set -l filename (command basename $target .fish) - switch $src - case $pkg/conf.d\* - test "$filename.fish" = "$target"; and emit "$filename"_uninstall - set target conf.d/$target - case $pkg/completions\* - test "$filename.fish" = "$target"; and complete -ec $filename - set target completions/$target - case $pkg/{,functions}\* - test "$filename.fish" = "$target"; and functions -e $filename - switch $target - case uninstall.fish - source $src - continue - case {init,key_bindings}.fish - set target conf.d/(command basename $pkg)\_$target - case \* - set target functions/$target - end - end - command rm -f $fisher_path/$target - end - if not functions -q fish_prompt - source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" - end -end - -function _fisher_jobs - jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' -end - -function _fisher_now -a elapsed - switch (command uname) - case Darwin \*BSD - command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed - case \* - math (command date "+%s%3N") - "0$elapsed" - end -end diff --git a/.config/fish/functions/fzf_key_bindings.fish b/.config/fish/functions/fzf_key_bindings.fish deleted file mode 120000 index 8bcf1df..0000000 --- a/.config/fish/functions/fzf_key_bindings.fish +++ /dev/null @@ -1 +0,0 @@ -/home/njuers/.fzf/shell/key-bindings.fish \ No newline at end of file diff --git a/.config/fish/functions/git-root.fish b/.config/fish/functions/git-root.fish deleted file mode 100755 index bd2729b..0000000 --- a/.config/fish/functions/git-root.fish +++ /dev/null @@ -1,3 +0,0 @@ -function git-root - cd (git rev-parse --show-toplevel) -end diff --git a/.config/fish/functions/git_pull.fish b/.config/fish/functions/git_pull.fish deleted file mode 100755 index b4b14ae..0000000 --- a/.config/fish/functions/git_pull.fish +++ /dev/null @@ -1,10 +0,0 @@ -# combines git pull with git reset --soft in the event of garbage commits -# usage: git pull -function git_pull - git pull - if grep -q 'garbage_commit' (git log -1 --pretty=format:%B | psub) - echo "Garbage commit detected. Doing soft reset" - git show - git reset --soft HEAD^ - end -end diff --git a/.config/fish/functions/ipython.fish b/.config/fish/functions/ipython.fish deleted file mode 100644 index 8b79647..0000000 --- a/.config/fish/functions/ipython.fish +++ /dev/null @@ -1,3 +0,0 @@ -function ipython --description 'alias ipython ipython --matplotlib' - command ipython --matplotlib $argv; -end diff --git a/.config/fish/functions/la.fish b/.config/fish/functions/la.fish deleted file mode 100755 index 1a315d3..0000000 --- a/.config/fish/functions/la.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function la --description 'alias la=ls -lAh' - ls -lAh $argv; -end diff --git a/.config/fish/functions/make-venv.fish b/.config/fish/functions/make-venv.fish deleted file mode 100644 index c9bb673..0000000 --- a/.config/fish/functions/make-venv.fish +++ /dev/null @@ -1,8 +0,0 @@ -function make-venv --wraps='python3 -m venv ' --description 'alias make-venv python3 -m venv ' - set test_or $argv[1] .venv - set path (realpath $test_or[1]) - echo creating virtual environment at $path - set command 's;set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV";&\n set -x PYTHONPATH '(dirname $path)';' - python3 -m venv $path; - gsed -i $command $path/bin/activate.fish -end diff --git a/.config/fish/functions/mount_carbonate.fish b/.config/fish/functions/mount_carbonate.fish deleted file mode 100755 index b804e99..0000000 --- a/.config/fish/functions/mount_carbonate.fish +++ /dev/null @@ -1,5 +0,0 @@ -function mount_carbonate - sshfs \ - -o IdentityFile=~/.ssh/id_rsa_laptop,auto_cache,reconnect,defer_permissions,Compression=no \ - mpjuers@carbonate:/ /Volumes/Carbonate/ -end diff --git a/.config/fish/functions/new-jupyter-kernel.fish b/.config/fish/functions/new-jupyter-kernel.fish deleted file mode 100755 index a446af8..0000000 --- a/.config/fish/functions/new-jupyter-kernel.fish +++ /dev/null @@ -1,5 +0,0 @@ -function new-jupyter-kernel - pip install ipykernel - ipython kernel install --user --name=$argv[1] -end - diff --git a/.config/fish/functions/pipreqs.fish b/.config/fish/functions/pipreqs.fish deleted file mode 100644 index 2ca8b2c..0000000 --- a/.config/fish/functions/pipreqs.fish +++ /dev/null @@ -1,3 +0,0 @@ -function pipreqs --description 'alias pipreqs pipreqs --ignore ".venv" $argv' - command pipreqs --ignore ".venv" $argv; -end diff --git a/.config/fish/functions/pnglatex.fish b/.config/fish/functions/pnglatex.fish deleted file mode 100644 index 048aa3e..0000000 --- a/.config/fish/functions/pnglatex.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function pnglatex --wraps=pnglatex\ -p\ \'amsmath:amsthm\' --description alias\ pnglatex=pnglatex\ -p\ \'amsmath:amsthm\' - command pnglatex -p 'amsmath:amsthm' $argv; -end diff --git a/.config/fish/functions/pytest.fish b/.config/fish/functions/pytest.fish deleted file mode 100755 index 6cdd958..0000000 --- a/.config/fish/functions/pytest.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias to call pytest with present directory in sys.path -function pytest - python -m pytest -end diff --git a/.config/fish/functions/python.fish b/.config/fish/functions/python.fish deleted file mode 100644 index 2d14112..0000000 --- a/.config/fish/functions/python.fish +++ /dev/null @@ -1,3 +0,0 @@ -function python --wraps=python3 --description 'alias python python3' - python3 $argv; -end diff --git a/.config/fish/functions/rsync_smart.fish b/.config/fish/functions/rsync_smart.fish deleted file mode 100755 index aa5cbe2..0000000 --- a/.config/fish/functions/rsync_smart.fish +++ /dev/null @@ -1,5 +0,0 @@ -# rsync only syncs changed files -# usage: rsync_smart in/ out -function rsync_smart - rsync -avu argv[1] argv[2] -end diff --git a/.config/fish/functions/spoof.fish b/.config/fish/functions/spoof.fish deleted file mode 100644 index 95b6c6b..0000000 --- a/.config/fish/functions/spoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function spoof --wraps='sudo ifconfig en0 ether 5e:e1:96:43:4c:66' --description alias\ spoof=sudo\ ifconfig\ en0\ ether\ 5e:e1:96:43:4c:66\n - set mac 5e:e1:96:43:4c:66 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/.config/fish/functions/tl.fish b/.config/fish/functions/tl.fish deleted file mode 100755 index d9a08c8..0000000 --- a/.config/fish/functions/tl.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function tl --description 'alias tl=task list' - task list $argv; -end diff --git a/.config/fish/functions/unspoof.fish b/.config/fish/functions/unspoof.fish deleted file mode 100644 index 531f5c9..0000000 --- a/.config/fish/functions/unspoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function unspoof --wraps='sudo ifconfig en0 ether 3c:22:fb:73:2c:93' --wraps='ifconfig en0 | grep ether 3c:22:fb:73:2c:93' --description 'alias unspoof=sudo ifconfig en0 ether 3c:22:fb:73:2c:93' - set mac 3c:22:fb:73:2c:93 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/.config/fish/functions/vi.fish b/.config/fish/functions/vi.fish deleted file mode 100755 index 8714e1e..0000000 --- a/.config/fish/functions/vi.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function vi --description 'alias vi nvim' - nvim $argv; -end diff --git a/.config/fish/functions/vimdiff.fish b/.config/fish/functions/vimdiff.fish deleted file mode 100755 index 94c84b9..0000000 --- a/.config/fish/functions/vimdiff.fish +++ /dev/null @@ -1,3 +0,0 @@ -function vimdiff - command nvim -d $argv -end diff --git a/.config/fish_backup/conf.d/omf.fish b/.config/fish_backup/conf.d/omf.fish deleted file mode 100644 index 3e0f6d6..0000000 --- a/.config/fish_backup/conf.d/omf.fish +++ /dev/null @@ -1,7 +0,0 @@ -# Path to Oh My Fish install. -set -q XDG_DATA_HOME - and set -gx OMF_PATH "$XDG_DATA_HOME/omf" - or set -gx OMF_PATH "$HOME/.local/share/omf" - -# Load Oh My Fish configuration. -source $OMF_PATH/init.fish diff --git a/.config/fish_backup/config.fish b/.config/fish_backup/config.fish deleted file mode 100755 index ef427f7..0000000 --- a/.config/fish_backup/config.fish +++ /dev/null @@ -1,76 +0,0 @@ -# set normal (set_color normal) -# set magenta (set_color magenta) -# set yellow (set_color yellow) -# set green (set_color green) -# set red (set_color red) -# set gray (set_color -o black) -set -Ux VISUAL nvim -set -Ux EDITOR $VISUAL - -# set -Ux TERMINFO_DIRS /usr/share/terminfo $HOME/.local/share/terminfo/74 -set -Ux TERM tmux-256color -# source (dirname (status -f))/init.fish - -# if tmux is executable and not inside a tmux session, then try to attach. -# if attachment fails, start a new session - -if status is-interactive -and not set -q TMUX - exec tmux -end - -set -x PYTHONBREAKPOINT ipdb.set_trace - - # Fish git prompt -set -x __fish_git_prompt_showdirtystate 'yes' -set -x __fish_git_prompt_showstashstate 'yes' -set -x __fish_git_prompt_showuntrackedfiles 'yes' -set -x __fish_git_prompt_showupstream 'yes' -set -x __fish_git_prompt_color_branch yellow -set -x __fish_git_prompt_color_upstream_ahead green -set -x __fish_git_prompt_color_upstream_behind red - - -# Proper terminal behavior with unicode -set -x LC_ALL en_US.UTF-8 -set -x LANG en_US.UTF-8 -set -x fish_emoji_width 2 - -bind -M default v edit_cmd - -# for nvim - -# Use ipdb for debugging -# set -x PYTHONBREAKPOINT ipdb.set_trace - -set -x JAVA_HOME /usr/local/opt/openjdk/bin - -set -q CC; or set CC clang -set -q CXX; or set CXX $CC++ - -set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" -set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" -set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" -set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/" - -set -x ENABLE_USER_SITE "False" - -set -x PATH $JAVA_HOME $PATH -set -x PATH /opt/local/bin /opt/local/sbin $PATH -set -x MANPATH /opt/local/share/man (manpath) -set -x PATH /usr/local/opt/llvm/bin $PATH -set -x PATH $HOME/bin $PATH -set -x PATH $HOME/bin/edirect $PATH -set -x PATH $HOME/.cargo/bin $PATH -set -x PATH $HOME/.gitaliases $PATH -set -x PATH $HOME/edirect $PATH - -set -gx LDFLAGS "-L/usr/local/opt/bzip2/lib" -set -gx CPPFLAGS "-I/usr/local/opt/bzip2/include" -set -gx LDFLAGS $LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" -set -gx CPPFLAGS $CPPFLAGS "-I/usr/local/opt/llvm/include -I/usr/local/opt/llvm/include/c++/v1/ -I$JAVA_HOME/include -I$JAVA_HOME/include/darwin" - - -fish_ssh_agent - -thefuck --alias | source diff --git a/.config/fish_backup/fish_variables b/.config/fish_backup/fish_variables deleted file mode 100644 index a8179fc..0000000 --- a/.config/fish_backup/fish_variables +++ /dev/null @@ -1,36 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR --export EDITOR:nvim -SETUVAR --export TERM:tmux\x2d256color -SETUVAR --export TERMINFO_DIRS:/usr/share/terminfo\x1e/Users/nekoj/\x2elocal/share/terminfo/74 -SETUVAR --export VISUAL:nvim -SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:555\x1ebrblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:blue -SETUVAR fish_color_comment:red -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:green -SETUVAR fish_color_error:brred -SETUVAR fish_color_escape:brcyan -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:brcyan -SETUVAR fish_color_param:cyan -SETUVAR fish_color_quote:yellow -SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold -SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111 -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_key_bindings:fish_vi_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di -SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr -SETUVAR fish_user_paths:/usr/local/opt/openjdk/bin diff --git a/.config/fish_backup/functions/alacritty b/.config/fish_backup/functions/alacritty deleted file mode 100644 index 558059e..0000000 --- a/.config/fish_backup/functions/alacritty +++ /dev/null @@ -1,3 +0,0 @@ -function alacritty - command env WINIT_HIDPI_FACTOR=1.0 alacritty -end diff --git a/.config/fish_backup/functions/brewClang.fish b/.config/fish_backup/functions/brewClang.fish deleted file mode 100755 index 18d4880..0000000 --- a/.config/fish_backup/functions/brewClang.fish +++ /dev/null @@ -1,6 +0,0 @@ -# used to favor Homebrew's Clang (and LLVM) over the stock Apple one. -function brewClang - set -x PATH /usr/local/opt/llvm/bin $PATH - set -x LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" - # set -x LDFLAGS "-L/Library/Frameworks/R.framework/Resources/lib" -end diff --git a/.config/fish_backup/functions/cp.fish b/.config/fish_backup/functions/cp.fish deleted file mode 100755 index 8d075f6..0000000 --- a/.config/fish_backup/functions/cp.fish +++ /dev/null @@ -1,4 +0,0 @@ -function cp - command cp -rv $argv -end - diff --git a/.config/fish_backup/functions/duall.fish b/.config/fish_backup/functions/duall.fish deleted file mode 100644 index f55c6ae..0000000 --- a/.config/fish_backup/functions/duall.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function duall --wraps='du .hs .[^.]* *' --wraps='bash -c du .hs .[^.]* *' --wraps='bash -c du -hs .[^.]* *' --wraps=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' --description alias\ duall=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' - bash -c 'du -hs .[^.]* *' $argv; -end diff --git a/.config/fish_backup/functions/edit_cmd.fish b/.config/fish_backup/functions/edit_cmd.fish deleted file mode 100755 index 7df2c3e..0000000 --- a/.config/fish_backup/functions/edit_cmd.fish +++ /dev/null @@ -1,9 +0,0 @@ -function edit_cmd --description 'Edit cmdline in editor' - set -l f (mktemp) - set -l p (commandline -C) - commandline -b > $f - vim -c set\ ft=fish $f - commandline -r (more $f) - commandline -C $p - rm $f -end diff --git a/.config/fish_backup/functions/eutil.fish b/.config/fish_backup/functions/eutil.fish deleted file mode 100755 index 2e24a9a..0000000 --- a/.config/fish_backup/functions/eutil.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Search and retrieve records from Entrez. -# Instruction at https://www.ncbi.nlm.nih.gov/books/NBK25500/ -function eutil - "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/$argv[1]" -end - diff --git a/.config/fish_backup/functions/filterSections.fish b/.config/fish_backup/functions/filterSections.fish deleted file mode 100755 index ae9fe97..0000000 --- a/.config/fish_backup/functions/filterSections.fish +++ /dev/null @@ -1,6 +0,0 @@ -# filters sections from master class spreadsheet -# usage: filterSections roster.txt master.csv >out.csv -function filterSections - awk 'BEGIN {FPAT = "([^,]+)|(\"[^\"]+\")"} \ - FNR == NR { seen[$1]; next } FNR <= 2 || $3 in seen' "$argv[1]" "$argv[2]" -end diff --git a/.config/fish_backup/functions/find.fish b/.config/fish_backup/functions/find.fish deleted file mode 100755 index df6582d..0000000 --- a/.config/fish_backup/functions/find.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias for find to exclude .git dir -function find - command find $argv -not -path '*/\.git' -end diff --git a/.config/fish_backup/functions/fish_greeting.fish b/.config/fish_backup/functions/fish_greeting.fish deleted file mode 100755 index 81a7468..0000000 --- a/.config/fish_backup/functions/fish_greeting.fish +++ /dev/null @@ -1,3 +0,0 @@ -function fish_greeting - echo "Hello!" -end diff --git a/.config/fish_backup/functions/fish_prompt.fish b/.config/fish_backup/functions/fish_prompt.fish deleted file mode 100755 index 46fc094..0000000 --- a/.config/fish_backup/functions/fish_prompt.fish +++ /dev/null @@ -1,28 +0,0 @@ -function fish_prompt --description 'Write out the prompt' - set -l color_cwd - set -l suffix - - switch "$USER" - case root toor - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - else - set color_cwd $fish_color_cwd - end - set suffix '#' - case '*' - set color_cwd $fish_color_cwd - set suffix '🐈 ' - end - - # echo -n -s (__fish_git_prompt '%s') '|' (set_color $color_cwd) (prompt_pwd) (set_color normal) "$suffix" - - set last_status $status - - printf '%s@%s ' (whoami) (prompt_hostname) - printf '%s ' (__fish_git_prompt) - set_color $color_cwd - printf '%s' (prompt_pwd) - set_color normal - echo -n $suffix -end diff --git a/.config/fish_backup/functions/fish_ssh_agent.fish b/.config/fish_backup/functions/fish_ssh_agent.fish deleted file mode 100755 index 5960b75..0000000 --- a/.config/fish_backup/functions/fish_ssh_agent.fish +++ /dev/null @@ -1,32 +0,0 @@ -function __ssh_agent_is_started -d "check if ssh agent is already started" - if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end - source $SSH_ENV > /dev/null - end - - if test -z "$SSH_AGENT_PID" - return 1 - end - - ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep -q ssh-agent - #pgrep ssh-agent - return $status -end - - -function __ssh_agent_start -d "start a new ssh agent" - ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV - chmod 600 $SSH_ENV - source $SSH_ENV > /dev/null - true # suppress errors from setenv, i.e. set -gx -end - - -function fish_ssh_agent --description "Start ssh-agent if not started yet, or uses already started ssh-agent." - if test -z "$SSH_ENV" - set -xg SSH_ENV $HOME/.ssh/environment - end - - if not __ssh_agent_is_started - __ssh_agent_start - end -end diff --git a/.config/fish_backup/functions/fish_user_key_bindings.fish b/.config/fish_backup/functions/fish_user_key_bindings.fish deleted file mode 100755 index 3098071..0000000 --- a/.config/fish_backup/functions/fish_user_key_bindings.fish +++ /dev/null @@ -1,4 +0,0 @@ -function fish_user_key_bindings - fish_vi_key_bindings - bind \cF -M insert accept-autosuggestion -end diff --git a/.config/fish_backup/functions/fisher.fish b/.config/fish_backup/functions/fisher.fish deleted file mode 100755 index 1d63c33..0000000 --- a/.config/fish_backup/functions/fisher.fish +++ /dev/null @@ -1,435 +0,0 @@ -set -g fisher_version 3.2.10 - -function fisher -a cmd -d "fish package manager" - set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache - set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config - - set -g fish_config $XDG_CONFIG_HOME/fish - set -g fisher_cache $XDG_CACHE_HOME/fisher - set -g fisher_config $XDG_CONFIG_HOME/fisher - - set -q fisher_path; or set -g fisher_path $fish_config - set -g fishfile $fish_config/fishfile - - for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache - if test ! -d $path - command mkdir -p $path - end - end - - if test ! -e $fisher_path/completions/fisher.fish - echo "fisher complete" >$fisher_path/completions/fisher.fish - _fisher_complete - end - - if test -e $fisher_path/conf.d/fisher.fish - switch "$version" - case \*-\* - command rm -f $fisher_path/conf.d/fisher.fish - case 2\* - case \* - command rm -f $fisher_path/conf.d/fisher.fish - end - else - switch "$version" - case \*-\* - case 2\* - echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish - end - end - - # 2019-10-22: temp code, migrates fishfile from old path back to $fish_config - if test -e "$fisher_path/fishfile"; and test ! -e "$fishfile" - command mv -f "$fisher_path/fishfile" "$fishfile" - end - - switch "$cmd" - case {,self-}complete - _fisher_complete - case copy-user-key-bindings - _fisher_copy_user_key_bindings - case ls - set -e argv[1] - if test -s "$fishfile" - set -l file (_fisher_fmt <$fishfile | _fisher_parse -R | command sed "s|@.*||") - _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " - BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ - " | command sed "s|^$HOME|~|" - end - case self-update - _fisher_self_update (status -f) - case self-uninstall - _fisher_self_uninstall - case {,-}-v{ersion,} - echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") - case {,-}-h{elp,} - _fisher_help - case "" - _fisher_commit -- - case add rm - if not isatty - while read -l arg - set argv $argv $arg - end - end - - if test (count $argv) = 1 - echo "fisher: invalid number of arguments" >&2 - _fisher_help >&2 - return 1 - end - - _fisher_commit $argv - case \* - echo "fisher: unknown flag or command \"$cmd\"" >&2 - _fisher_help >&2 - return 1 - end -end - -function _fisher_complete - complete -ec fisher - complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages" - complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages" - complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX" - complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" - complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" - complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" - for pkg in (fisher ls) - complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg - end -end - -function _fisher_copy_user_key_bindings - if functions -q fish_user_key_bindings - functions -c fish_user_key_bindings fish_user_key_bindings_copy - end - function fish_user_key_bindings - for file in $fisher_path/conf.d/*_key_bindings.fish - source $file >/dev/null 2>/dev/null - end - if functions -q fish_user_key_bindings_copy - fish_user_key_bindings_copy - end - end -end - -function _fisher_ls - for pkg in $fisher_config/*/*/* - command readlink $pkg; or echo $pkg - end -end - -function _fisher_fmt - command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" -end - -function _fisher_help - echo "usage: fisher add Add packages" - echo " fisher rm Remove packages" - echo " fisher Update all packages" - echo " fisher ls [] List installed packages matching " - echo " fisher --help Show this help" - echo " fisher --version Show the current version" - echo " fisher self-update Update to the latest version" - echo " fisher self-uninstall Uninstall from your system" - echo "examples:" - echo " fisher add jethrokuan/z rafaelrinaldi/pure" - echo " fisher add gitlab.com/foo/bar@v2" - echo " fisher add ~/path/to/local/pkg" - echo " fisher add &2 - command curl -s "$url?nocache" >$file. - - set -l next_version (command awk '{ print $4 } { exit }' <$file.) - switch "$next_version" - case "" $fisher_version - command rm -f $file. - if test -z "$next_version" - echo "fisher: cannot update fisher -- are you offline?" >&2 - return 1 - end - echo "fisher is already up-to-date" >&2 - case \* - echo "linking $file" | command sed "s|$HOME|~|" >&2 - command mv -f $file. $file - source $file - echo "updated to fisher $fisher_version -- hooray!" >&2 - _fisher_complete - end -end - -function _fisher_self_uninstall - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - - for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fishfile - echo "removing $file" - command rm -Rf $file 2>/dev/null - end | command sed "s|$HOME|~|" >&2 - - for name in (set -n | command awk '/^fisher_/') - set -e "$name" - end - - functions -e (functions -a | command awk '/^_fisher/') fisher - complete -c fisher --erase -end - -function _fisher_commit -a cmd - set -e argv[1] - set -l elapsed (_fisher_now) - - if test ! -e "$fishfile" - command touch $fishfile - echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 - end - - set -l old_pkgs (_fisher_ls | _fisher_fmt) - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - command rm -Rf $fisher_config - command mkdir -p $fisher_config - - set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) - set -l actual_pkgs (_fisher_fetch $next_pkgs) - set -l updated_pkgs - for pkg in $old_pkgs - if contains -- $pkg $actual_pkgs - set updated_pkgs $updated_pkgs $pkg - end - end - - if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" - echo "fisher: nothing to commit -- try adding some packages" >&2 - return 1 - end - - set -l out_pkgs - if test "$cmd" = "rm" - set out_pkgs $next_pkgs - else - for pkg in $next_pkgs - if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs - set out_pkgs $out_pkgs $pkg - end - end - end - - printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile - - _fisher_complete - - command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' - BEGIN { - res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) - printf((res ? res : "done") " in %.2fs\n", E / 1000) - } - function fmt(action, n, s) { - return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s - } - ' >&2 -end - -function _fisher_parse -a mode cmd - set -e argv[1..2] - command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' - BEGIN { - for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] - } - !NF { next } { k = getkey($1) } - MODE == "-R" && !(k in pkgs) && $0 = $1 - MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } - MODE == "-W" || CMD == "rm" { delete pkgs[k] } - END { - for (k in pkgs) { - if (CMD != "rm" || MODE == "-W") print pkgs[k] - else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr" - } - } - function getkey(s, a) { - return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] - } - ' -end - -function _fisher_fetch - set -l pkg_jobs - set -l out_pkgs - set -l next_pkgs - set -l local_pkgs - set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token - - for pkg in $argv - switch $pkg - case \~\* /\* - set -l path (echo "$pkg" | command sed "s|^~|$HOME|") - if test -e "$path" - set local_pkgs $local_pkgs $path - else - echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 - end - continue - end - - command awk -v PKG="$pkg" -v FS=/ ' - BEGIN { - if (split(PKG, tmp, /@+|:/) > 2) { - if (tmp[4]) sub("@"tmp[4], "", PKG) - print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master") - } else { - pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] - tag = tmp[2] ? tmp[2] : "master" - print (\ - pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ - pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ - pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \ - ) "\t" pkg - } - } - ' | read -l url pkg branch - - if test ! -d "$fisher_config/$pkg" - fish -c " - echo fetching $url >&2 - command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg) - if test ! -z \"$branch\" - command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null - or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2 - else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null - command rm -Rf $fisher_cache/$pkg - command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg - command rm -Rf $fisher_config/$pkg - command cp -Rf {$fisher_cache,$fisher_config}/$pkg - else if test -d \"$fisher_cache/$pkg\" - echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 - command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/.. - else - command rm -Rf $fisher_config/$pkg - echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2 - end - " >/dev/null & - set pkg_jobs $pkg_jobs (_fisher_jobs --last) - set next_pkgs $next_pkgs "$fisher_config/$pkg" - end - end - - if set -q pkg_jobs[1] - while for job in $pkg_jobs - contains -- $job (_fisher_jobs); and break - end - end - for pkg in $next_pkgs - if test -d "$pkg" - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg - end - end - end - - set -l local_prefix $fisher_config/local/$USER - if test ! -d "$local_prefix" - command mkdir -p $local_prefix - end - for pkg in $local_pkgs - set -l target $local_prefix/(command basename $pkg) - if test ! -L "$target" - command ln -sf $pkg $target - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg --link - end - end - - if set -q out_pkgs[1] - _fisher_fetch ( - for pkg in $out_pkgs - if test -s "$pkg/fishfile" - _fisher_fmt <$pkg/fishfile | _fisher_parse -R - end - end) - printf "%s\n" $out_pkgs | _fisher_fmt - end -end - -function _fisher_add -a pkg opts - for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish - set -l target (command basename $src) - switch $src - case $pkg/conf.d\* - set target $fisher_path/conf.d/$target - case $pkg/completions\* - set target $fisher_path/completions/$target - case $pkg/{functions,}\* - switch $target - case uninstall.fish - continue - case {init,key_bindings}.fish - set target $fisher_path/conf.d/(command basename $pkg)\_$target - case \* - set target $fisher_path/functions/$target - end - end - echo "linking $target" | command sed "s|$HOME|~|" >&2 - if set -q opts[1] - command ln -sf $src $target - else - command cp -f $src $target - end - switch $target - case \*.fish - source $target >/dev/null 2>/dev/null - end - end -end - -function _fisher_rm -a pkg - for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish - set -l target (command basename $src) - set -l filename (command basename $target .fish) - switch $src - case $pkg/conf.d\* - test "$filename.fish" = "$target"; and emit "$filename"_uninstall - set target conf.d/$target - case $pkg/completions\* - test "$filename.fish" = "$target"; and complete -ec $filename - set target completions/$target - case $pkg/{,functions}\* - test "$filename.fish" = "$target"; and functions -e $filename - switch $target - case uninstall.fish - source $src - continue - case {init,key_bindings}.fish - set target conf.d/(command basename $pkg)\_$target - case \* - set target functions/$target - end - end - command rm -f $fisher_path/$target - end - if not functions -q fish_prompt - source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" - end -end - -function _fisher_jobs - jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' -end - -function _fisher_now -a elapsed - switch (command uname) - case Darwin \*BSD - command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed - case \* - math (command date "+%s%3N") - "0$elapsed" - end -end diff --git a/.config/fish_backup/functions/git-root.fish b/.config/fish_backup/functions/git-root.fish deleted file mode 100755 index bd2729b..0000000 --- a/.config/fish_backup/functions/git-root.fish +++ /dev/null @@ -1,3 +0,0 @@ -function git-root - cd (git rev-parse --show-toplevel) -end diff --git a/.config/fish_backup/functions/git_pull.fish b/.config/fish_backup/functions/git_pull.fish deleted file mode 100755 index b4b14ae..0000000 --- a/.config/fish_backup/functions/git_pull.fish +++ /dev/null @@ -1,10 +0,0 @@ -# combines git pull with git reset --soft in the event of garbage commits -# usage: git pull -function git_pull - git pull - if grep -q 'garbage_commit' (git log -1 --pretty=format:%B | psub) - echo "Garbage commit detected. Doing soft reset" - git show - git reset --soft HEAD^ - end -end diff --git a/.config/fish_backup/functions/ipython.fish b/.config/fish_backup/functions/ipython.fish deleted file mode 100644 index 109a8df..0000000 --- a/.config/fish_backup/functions/ipython.fish +++ /dev/null @@ -1,3 +0,0 @@ -function ipython --description 'alias ipython bash -c ipython' - bash -c ipython $argv; -end diff --git a/.config/fish_backup/functions/la.fish b/.config/fish_backup/functions/la.fish deleted file mode 100755 index 1a315d3..0000000 --- a/.config/fish_backup/functions/la.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function la --description 'alias la=ls -lAh' - ls -lAh $argv; -end diff --git a/.config/fish_backup/functions/make-venv.fish b/.config/fish_backup/functions/make-venv.fish deleted file mode 100644 index c9bb673..0000000 --- a/.config/fish_backup/functions/make-venv.fish +++ /dev/null @@ -1,8 +0,0 @@ -function make-venv --wraps='python3 -m venv ' --description 'alias make-venv python3 -m venv ' - set test_or $argv[1] .venv - set path (realpath $test_or[1]) - echo creating virtual environment at $path - set command 's;set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV";&\n set -x PYTHONPATH '(dirname $path)';' - python3 -m venv $path; - gsed -i $command $path/bin/activate.fish -end diff --git a/.config/fish_backup/functions/mount_carbonate.fish b/.config/fish_backup/functions/mount_carbonate.fish deleted file mode 100755 index b804e99..0000000 --- a/.config/fish_backup/functions/mount_carbonate.fish +++ /dev/null @@ -1,5 +0,0 @@ -function mount_carbonate - sshfs \ - -o IdentityFile=~/.ssh/id_rsa_laptop,auto_cache,reconnect,defer_permissions,Compression=no \ - mpjuers@carbonate:/ /Volumes/Carbonate/ -end diff --git a/.config/fish_backup/functions/new-jupyter-kernel.fish b/.config/fish_backup/functions/new-jupyter-kernel.fish deleted file mode 100755 index a446af8..0000000 --- a/.config/fish_backup/functions/new-jupyter-kernel.fish +++ /dev/null @@ -1,5 +0,0 @@ -function new-jupyter-kernel - pip install ipykernel - ipython kernel install --user --name=$argv[1] -end - diff --git a/.config/fish_backup/functions/pipreqs.fish b/.config/fish_backup/functions/pipreqs.fish deleted file mode 100644 index 2ca8b2c..0000000 --- a/.config/fish_backup/functions/pipreqs.fish +++ /dev/null @@ -1,3 +0,0 @@ -function pipreqs --description 'alias pipreqs pipreqs --ignore ".venv" $argv' - command pipreqs --ignore ".venv" $argv; -end diff --git a/.config/fish_backup/functions/pnglatex.fish b/.config/fish_backup/functions/pnglatex.fish deleted file mode 100644 index 048aa3e..0000000 --- a/.config/fish_backup/functions/pnglatex.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function pnglatex --wraps=pnglatex\ -p\ \'amsmath:amsthm\' --description alias\ pnglatex=pnglatex\ -p\ \'amsmath:amsthm\' - command pnglatex -p 'amsmath:amsthm' $argv; -end diff --git a/.config/fish_backup/functions/pytest.fish b/.config/fish_backup/functions/pytest.fish deleted file mode 100755 index 6cdd958..0000000 --- a/.config/fish_backup/functions/pytest.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias to call pytest with present directory in sys.path -function pytest - python -m pytest -end diff --git a/.config/fish_backup/functions/python.fish b/.config/fish_backup/functions/python.fish deleted file mode 100644 index 2d14112..0000000 --- a/.config/fish_backup/functions/python.fish +++ /dev/null @@ -1,3 +0,0 @@ -function python --wraps=python3 --description 'alias python python3' - python3 $argv; -end diff --git a/.config/fish_backup/functions/rsync_smart.fish b/.config/fish_backup/functions/rsync_smart.fish deleted file mode 100755 index aa5cbe2..0000000 --- a/.config/fish_backup/functions/rsync_smart.fish +++ /dev/null @@ -1,5 +0,0 @@ -# rsync only syncs changed files -# usage: rsync_smart in/ out -function rsync_smart - rsync -avu argv[1] argv[2] -end diff --git a/.config/fish_backup/functions/spoof.fish b/.config/fish_backup/functions/spoof.fish deleted file mode 100644 index 95b6c6b..0000000 --- a/.config/fish_backup/functions/spoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function spoof --wraps='sudo ifconfig en0 ether 5e:e1:96:43:4c:66' --description alias\ spoof=sudo\ ifconfig\ en0\ ether\ 5e:e1:96:43:4c:66\n - set mac 5e:e1:96:43:4c:66 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/.config/fish_backup/functions/tl.fish b/.config/fish_backup/functions/tl.fish deleted file mode 100755 index d9a08c8..0000000 --- a/.config/fish_backup/functions/tl.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function tl --description 'alias tl=task list' - task list $argv; -end diff --git a/.config/fish_backup/functions/unspoof.fish b/.config/fish_backup/functions/unspoof.fish deleted file mode 100644 index 531f5c9..0000000 --- a/.config/fish_backup/functions/unspoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function unspoof --wraps='sudo ifconfig en0 ether 3c:22:fb:73:2c:93' --wraps='ifconfig en0 | grep ether 3c:22:fb:73:2c:93' --description 'alias unspoof=sudo ifconfig en0 ether 3c:22:fb:73:2c:93' - set mac 3c:22:fb:73:2c:93 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/.config/fish_backup/functions/vi.fish b/.config/fish_backup/functions/vi.fish deleted file mode 100755 index 8714e1e..0000000 --- a/.config/fish_backup/functions/vi.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function vi --description 'alias vi nvim' - nvim $argv; -end diff --git a/.config/fish_backup/functions/vimdiff.fish b/.config/fish_backup/functions/vimdiff.fish deleted file mode 100755 index 94c84b9..0000000 --- a/.config/fish_backup/functions/vimdiff.fish +++ /dev/null @@ -1,3 +0,0 @@ -function vimdiff - command nvim -d $argv -end diff --git a/.config/iterm2/AppSupport b/.config/iterm2/AppSupport deleted file mode 120000 index 8ff00b2..0000000 --- a/.config/iterm2/AppSupport +++ /dev/null @@ -1 +0,0 @@ -/Users/njuers/Library/Application Support/iTerm2 \ No newline at end of file diff --git a/.config/karabiner/assets/complex_modifications/1676650778.json b/.config/karabiner/assets/complex_modifications/1676650778.json deleted file mode 100644 index 279ea69..0000000 --- a/.config/karabiner/assets/complex_modifications/1676650778.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "title": "mouse_button4_to_back_action(command + left_arrow)_and_mouse_button5_to_forward_action(command+right_arrow)", - "rules": [ - { - "description": "Mouse button5 to back in web. NOTE: Default key setting", - "manipulators": [ - { - "from": { - "pointing_button": "button5" - }, - "to": [ - { - "key_code": "right_arrow", - "modifiers": ["left_command"] - } - ], - "type": "basic" - } - ] - }, - { - "description": "Mouse button5 to back in web. NOTE: left_command and left_option is changed to each other. ", - "manipulators": [ - { - "from": { - "pointing_button": "button5" - }, - "to": [ - { - "key_code": "right_arrow", - "modifiers": ["left_option"] - } - ], - "type": "basic" - } - ] - }, - { - "description": "Mouse button4 to back in web. NOTE: Default key setting", - "manipulators": [ - { - "from": { - "pointing_button": "button4" - }, - "to": [ - { - "key_code": "left_arrow", - "modifiers": ["left_command"] - } - ], - "type": "basic" - } - ] - }, - { - "description": "Mouse button4 to back in web. NOTE: left_command and left_option is changed to each other. ", - "manipulators": [ - { - "from": { - "pointing_button": "button4" - }, - "to": [ - { - "key_code": "left_arrow", - "modifiers": ["left_option"] - } - ], - "type": "basic" - } - ] - } - ] -} diff --git a/.config/karabiner/automatic_backups/karabiner_20230217.json b/.config/karabiner/automatic_backups/karabiner_20230217.json deleted file mode 100644 index 803cb79..0000000 --- a/.config/karabiner/automatic_backups/karabiner_20230217.json +++ /dev/null @@ -1,228 +0,0 @@ -{ - "global": { - "ask_for_confirmation_before_quitting": true, - "check_for_updates_on_startup": true, - "show_in_menu_bar": true, - "show_profile_name_in_menu_bar": false, - "unsafe_ui": false - }, - "profiles": [ - { - "complex_modifications": { - "parameters": { - "basic.simultaneous_threshold_milliseconds": 50, - "basic.to_delayed_action_delay_milliseconds": 500, - "basic.to_if_alone_timeout_milliseconds": 1000, - "basic.to_if_held_down_threshold_milliseconds": 500, - "mouse_motion_to_scroll.speed": 100 - }, - "rules": [] - }, - "devices": [ - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 16768, - "vendor_id": 1578 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 49948, - "vendor_id": 1133 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 0, - "vendor_id": 0 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": false, - "is_pointing_device": true, - "product_id": 0, - "vendor_id": 0 - }, - "ignore": true, - "manipulate_caps_lock_led": false, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": false, - "is_pointing_device": true, - "product_id": 16768, - "vendor_id": 1578 - }, - "ignore": true, - "manipulate_caps_lock_led": false, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - } - ], - "fn_function_keys": [ - { - "from": { - "key_code": "f1" - }, - "to": [ - { - "consumer_key_code": "display_brightness_decrement" - } - ] - }, - { - "from": { - "key_code": "f2" - }, - "to": [ - { - "consumer_key_code": "display_brightness_increment" - } - ] - }, - { - "from": { - "key_code": "f3" - }, - "to": [ - { - "apple_vendor_keyboard_key_code": "mission_control" - } - ] - }, - { - "from": { - "key_code": "f4" - }, - "to": [ - { - "apple_vendor_keyboard_key_code": "spotlight" - } - ] - }, - { - "from": { - "key_code": "f5" - }, - "to": [ - { - "consumer_key_code": "dictation" - } - ] - }, - { - "from": { - "key_code": "f6" - }, - "to": [ - { - "key_code": "f6" - } - ] - }, - { - "from": { - "key_code": "f7" - }, - "to": [ - { - "consumer_key_code": "rewind" - } - ] - }, - { - "from": { - "key_code": "f8" - }, - "to": [ - { - "consumer_key_code": "play_or_pause" - } - ] - }, - { - "from": { - "key_code": "f9" - }, - "to": [ - { - "consumer_key_code": "fast_forward" - } - ] - }, - { - "from": { - "key_code": "f10" - }, - "to": [ - { - "consumer_key_code": "mute" - } - ] - }, - { - "from": { - "key_code": "f11" - }, - "to": [ - { - "consumer_key_code": "volume_decrement" - } - ] - }, - { - "from": { - "key_code": "f12" - }, - "to": [ - { - "consumer_key_code": "volume_increment" - } - ] - } - ], - "name": "Default profile", - "parameters": { - "delay_milliseconds_before_open_device": 1000 - }, - "selected": true, - "simple_modifications": [], - "virtual_hid_keyboard": { - "country_code": 0, - "indicate_sticky_modifier_keys_state": true, - "mouse_key_xy_scale": 100 - } - } - ] -} \ No newline at end of file diff --git a/.config/karabiner/karabiner.json b/.config/karabiner/karabiner.json deleted file mode 100644 index 9a83aac..0000000 --- a/.config/karabiner/karabiner.json +++ /dev/null @@ -1,278 +0,0 @@ -{ - "global": { - "ask_for_confirmation_before_quitting": true, - "check_for_updates_on_startup": true, - "show_in_menu_bar": true, - "show_profile_name_in_menu_bar": false, - "unsafe_ui": false - }, - "profiles": [ - { - "complex_modifications": { - "parameters": { - "basic.simultaneous_threshold_milliseconds": 50, - "basic.to_delayed_action_delay_milliseconds": 500, - "basic.to_if_alone_timeout_milliseconds": 1000, - "basic.to_if_held_down_threshold_milliseconds": 500, - "mouse_motion_to_scroll.speed": 100 - }, - "rules": [ - { - "description": "Mouse button4 to back in web. NOTE: Default key setting", - "manipulators": [ - { - "from": { - "pointing_button": "button4" - }, - "to": [ - { - "key_code": "left_arrow", - "modifiers": [ - "left_command" - ] - } - ], - "type": "basic" - } - ] - }, - { - "description": "Mouse button5 to back in web. NOTE: Default key setting", - "manipulators": [ - { - "from": { - "pointing_button": "button5" - }, - "to": [ - { - "key_code": "right_arrow", - "modifiers": [ - "left_command" - ] - } - ], - "type": "basic" - } - ] - } - ] - }, - "devices": [ - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 16768, - "vendor_id": 1578 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 49948, - "vendor_id": 1133 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": true, - "is_pointing_device": false, - "product_id": 0, - "vendor_id": 0 - }, - "ignore": false, - "manipulate_caps_lock_led": true, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": false, - "is_pointing_device": true, - "product_id": 0, - "vendor_id": 0 - }, - "ignore": true, - "manipulate_caps_lock_led": false, - "simple_modifications": [], - "treat_as_built_in_keyboard": false - }, - { - "disable_built_in_keyboard_if_exists": false, - "fn_function_keys": [], - "identifiers": { - "is_keyboard": false, - "is_pointing_device": true, - "product_id": 16768, - "vendor_id": 1578 - }, - "ignore": false, - "manipulate_caps_lock_led": false, - "simple_modifications": [ - { - "from": { - "pointing_button": "button3" - }, - "to": [ - { - "key_code": "mission_control" - } - ] - } - ], - "treat_as_built_in_keyboard": false - } - ], - "fn_function_keys": [ - { - "from": { - "key_code": "f1" - }, - "to": [ - { - "consumer_key_code": "display_brightness_decrement" - } - ] - }, - { - "from": { - "key_code": "f2" - }, - "to": [ - { - "consumer_key_code": "display_brightness_increment" - } - ] - }, - { - "from": { - "key_code": "f3" - }, - "to": [ - { - "apple_vendor_keyboard_key_code": "mission_control" - } - ] - }, - { - "from": { - "key_code": "f4" - }, - "to": [ - { - "apple_vendor_keyboard_key_code": "spotlight" - } - ] - }, - { - "from": { - "key_code": "f5" - }, - "to": [ - { - "consumer_key_code": "dictation" - } - ] - }, - { - "from": { - "key_code": "f6" - }, - "to": [ - { - "key_code": "f6" - } - ] - }, - { - "from": { - "key_code": "f7" - }, - "to": [ - { - "consumer_key_code": "rewind" - } - ] - }, - { - "from": { - "key_code": "f8" - }, - "to": [ - { - "consumer_key_code": "play_or_pause" - } - ] - }, - { - "from": { - "key_code": "f9" - }, - "to": [ - { - "consumer_key_code": "fast_forward" - } - ] - }, - { - "from": { - "key_code": "f10" - }, - "to": [ - { - "consumer_key_code": "mute" - } - ] - }, - { - "from": { - "key_code": "f11" - }, - "to": [ - { - "consumer_key_code": "volume_decrement" - } - ] - }, - { - "from": { - "key_code": "f12" - }, - "to": [ - { - "consumer_key_code": "volume_increment" - } - ] - } - ], - "name": "Default profile", - "parameters": { - "delay_milliseconds_before_open_device": 1000 - }, - "selected": true, - "simple_modifications": [], - "virtual_hid_keyboard": { - "country_code": 0, - "indicate_sticky_modifier_keys_state": true, - "mouse_key_xy_scale": 100 - } - } - ] -} \ No newline at end of file diff --git a/.config/kitty/.kitty.conf.swp b/.config/kitty/.kitty.conf.swp deleted file mode 100644 index 4746859c132eeb1d0e965cc5c3df99450f803c81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 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 diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf deleted file mode 100644 index 88cc50f..0000000 --- a/.config/kitty/kitty.conf +++ /dev/null @@ -1,2168 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker -include palenight.conf - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. To get a full list of supported fonts use the `kitty -#: +list-fonts` command. By default they are derived automatically, by -#: the OSes font system. When bold_font or bold_italic_font is set to -#: auto on macOS, the priority of bold fonts is semi-bold, bold, -#: heavy. Setting them manually is useful for font families that have -#: many weight variants like Book, Medium, Thick, etc. For example:: - -#: font_family Operator Mono Book -#: bold_font Operator Mono Medium -#: italic_font Operator Mono Book Italic -#: bold_italic_font Operator Mono Medium Italic - -# font_size 11.0 - -#: Font size (in pts) - -# force_ltr no - -#: kitty does not support BIDI (bidirectional text), however, for RTL -#: scripts, words are automatically displayed in RTL. That is to say, -#: in an RTL script, the words "HELLO WORLD" display in kitty as -#: "WORLD HELLO", and if you try to select a substring of an RTL- -#: shaped string, you will get the character that would be there had -#: the the string been LTR. For example, assuming the Hebrew word -#: ירושלים, selecting the character that on the screen appears to be ם -#: actually writes into the selection buffer the character י. kitty's -#: default behavior is useful in conjunction with a filter to reverse -#: the word order, however, if you wish to manipulate RTL glyphs, it -#: can be very challenging to work with, so this option is provided to -#: turn it off. Furthermore, this option can be used with the command -#: line program GNU FriBidi -#: to get BIDI -#: support, because it will force kitty to always treat the text as -#: LTR, which FriBidi expects for terminals. - -# adjust_line_height 0 -# adjust_column_width 0 - -#: Change the size of each character cell kitty renders. You can use -#: either numbers, which are interpreted as pixels or percentages -#: (number followed by %), which are interpreted as percentages of the -#: unmodified values. You can use negative pixels or percentages less -#: than 100% to reduce sizes (but this might cause rendering -#: artifacts). - -# adjust_baseline 0 - -#: Adjust the vertical alignment of text (the height in the cell at -#: which text is positioned). You can use either numbers, which are -#: interpreted as pixels or percentages (number followed by %), which -#: are interpreted as the percentage of the line height. A positive -#: value moves the baseline up, and a negative value moves them down. -#: The underline and strikethrough positions are adjusted accordingly. - -# symbol_map - -#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - -#: Map the specified Unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each Unicode code -#: point is specified in the form `U+`. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. This option can be specified multiple times. -#: The syntax is:: - -#: symbol_map codepoints Font Family Name - -# narrow_symbols - -#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 - -#: Usually, for Private Use Unicode characters and some symbol/dingbat -#: characters, if the character is followed by one or more spaces, -#: kitty will use those extra cells to render the character larger, if -#: the character in the font has a wide aspect ratio. Using this -#: option you can force kitty to restrict the specified code points to -#: render in the specified number of cells (defaulting to one cell). -#: This option can be specified multiple times. The syntax is:: - -#: narrow_symbols codepoints [optionally the number of cells] - -# disable_ligatures never - -#: Choose how you want to handle multi-character ligatures. The -#: default is to always render them. You can tell kitty to not render -#: them when the cursor is over them by using cursor to make editing -#: easier, or have kitty never render them at all by using always, if -#: you don't like them. The ligature strategy can be set per-window -#: either using the kitty remote control facility or by defining -#: shortcuts for it in kitty.conf, for example:: - -#: map alt+1 disable_ligatures_in active always -#: map alt+2 disable_ligatures_in all never -#: map alt+3 disable_ligatures_in tab cursor - -#: Note that this refers to programming ligatures, typically -#: implemented using the calt OpenType feature. For disabling general -#: ligatures, use the font_features option. - -# font_features - -#: E.g. font_features none - -#: Choose exactly which OpenType features to enable or disable. This -#: is useful as some fonts might have features worthwhile in a -#: terminal. For example, Fira Code includes a discretionary feature, -#: zero, which in that font changes the appearance of the zero (0), to -#: make it more easily distinguishable from Ø. Fira Code also includes -#: other discretionary features known as Stylistic Sets which have the -#: tags ss01 through ss20. - -#: For the exact syntax to use for individual features, see the -#: HarfBuzz documentation . - -#: Note that this code is indexed by PostScript name, and not the font -#: family. This allows you to define very precise feature settings; -#: e.g. you can disable a feature in the italic font but not in the -#: regular font. - -#: On Linux, font features are first read from the FontConfig database -#: and then this option is applied, so they can be configured in a -#: single, central place. - -#: To get the PostScript name for a font, use `kitty +list-fonts -#: --psnames`: - -#: .. code-block:: sh - -#: $ kitty +list-fonts --psnames | grep Fira -#: Fira Code -#: Fira Code Bold (FiraCode-Bold) -#: Fira Code Light (FiraCode-Light) -#: Fira Code Medium (FiraCode-Medium) -#: Fira Code Regular (FiraCode-Regular) -#: Fira Code Retina (FiraCode-Retina) - -#: The part in brackets is the PostScript name. - -#: Enable alternate zero and oldstyle numerals:: - -#: font_features FiraCode-Retina +zero +onum - -#: Enable only alternate zero in the bold font:: - -#: font_features FiraCode-Bold +zero - -#: Disable the normal ligatures, but keep the calt feature which (in -#: this font) breaks up monotony:: - -#: font_features TT2020StyleB-Regular -liga +calt - -#: In conjunction with force_ltr, you may want to disable Arabic -#: shaping entirely, and only look at their isolated forms if they -#: show up in a document. You can do this with e.g.:: - -#: font_features UnifontMedium +isol -medi -fina -init - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: The sizes of the lines used for the box drawing Unicode characters. -#: These values are in pts. They will be scaled by the monitor DPI to -#: arrive at a pixel value. There must be four values corresponding to -#: thin, normal, thick, and very thick lines. - -#: }}} - -#: Cursor customization {{{ - -# cursor #cccccc - -#: Default cursor color. If set to the special value none the cursor -#: will be rendered with a "reverse video" effect. It's color will be -#: the color of the text in the cell it is over and the text will be -#: rendered with the background color of the cell. Note that if the -#: program running in the terminal sets a cursor color, this takes -#: precedence. Also, the cursor colors are modified if the cell -#: background and foreground colors have very low contrast. - -# cursor_text_color #111111 - -#: The color of text under the cursor. If you want it rendered with -#: the background color of the cell underneath instead, use the -#: special keyword: background. Note that if cursor is set to none -#: then this option is ignored. - -# cursor_shape block - -#: The cursor shape can be one of block, beam, underline. Note that -#: when reloading the config this will be changed only if the cursor -#: shape has not been set by the program running in the terminal. This -#: sets the default cursor shape, applications running in the terminal -#: can override it. In particular, shell integration -#: in kitty sets -#: the cursor shape to beam at shell prompts. You can avoid this by -#: setting shell_integration to no-cursor. - -# cursor_beam_thickness 1.5 - -#: The thickness of the beam cursor (in pts). - -# cursor_underline_thickness 2.0 - -#: The thickness of the underline cursor (in pts). - -# cursor_blink_interval -1 - -#: The interval to blink the cursor (in seconds). Set to zero to -#: disable blinking. Negative values mean use system default. Note -#: that the minimum interval will be limited to repaint_delay. - -# cursor_stop_blinking_after 15.0 - -#: Stop blinking cursor after the specified number of seconds of -#: keyboard inactivity. Set to zero to never stop blinking. - -#: }}} - -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. Negative numbers are (effectively) -#: infinite scrollback. Note that using very large scrollback is not -#: recommended as it can slow down performance of the terminal and -#: also use large amounts of RAM. Instead, consider using -#: scrollback_pager_history_size. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. Similarly CURSOR_LINE and -#: CURSOR_COLUMN will be replaced by the current cursor position or -#: set to 0 if there is no cursor, for example, when showing the last -#: command output. - -# scrollback_pager_history_size 0 - -#: Separate scrollback history size (in MB), used only for browsing -#: the scrollback buffer with pager. This separate buffer is not -#: available for interactive scrolling but will be piped to the pager -#: program when viewing scrollback buffer in a separate window. The -#: current implementation stores the data in UTF-8, so approximatively -#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, -#: unformatted text. A value of zero or less disables this feature. -#: The maximum allowed size is 4GB. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_fill_enlarged_window no - -#: Fill new space with lines from the scrollback buffer after -#: enlarging a window. - -# wheel_scroll_multiplier 5.0 - -#: Multiplier for the number of lines scrolled by the mouse wheel. -#: Note that this is only used for low precision scrolling devices, -#: not for high precision scrolling devices on platforms such as macOS -#: and Wayland. Use negative numbers to change scroll direction. See -#: also wheel_scroll_min_lines. - -# wheel_scroll_min_lines 1 - -#: The minimum number of lines scrolled by the mouse wheel. The scroll -#: multiplier only takes effect after it -#: reaches this number. Note that this is only used for low precision -#: scrolling devices like wheel mice that scroll by very small amounts -#: when using the wheel. With a negative number, the minimum number of -#: lines will always be added. - -# touch_scroll_multiplier 1.0 - -#: Multiplier for the number of lines scrolled by a touchpad. Note -#: that this is only used for high precision scrolling devices on -#: platforms such as macOS and Wayland. Use negative numbers to change -#: scroll direction. - -#: }}} - -#: Mouse {{{ - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. -#: Set to a negative value to hide the mouse cursor immediately when -#: typing text. Disabled by default on macOS as getting it to work -#: robustly with the ever-changing sea of bugs that is Cocoa is too -#: much effort. - -# url_color #0087bd -# url_style curly - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, straight, double, curly, dotted, dashed. - -# open_url_with default - -#: The program to open clicked URLs. The special value default means -#: to use the operating system's default URL handler (open on macOS -#: and xdg-open on Linux). - -# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh - -#: The set of URL prefixes to look for when detecting a URL under the -#: mouse cursor. - -# detect_urls yes - -#: Detect URLs under the mouse. Detected URLs are highlighted with an -#: underline and the mouse cursor becomes a hand over them. Even if -#: this option is disabled, URLs are still clickable. - -# url_excluded_characters - -#: Additional characters to be disallowed from URLs, when detecting -#: URLs under the mouse cursor. By default, all characters that are -#: legal in URLs are allowed. - -# copy_on_select no - -#: Copy to clipboard or a private buffer on select. With this set to -#: clipboard, selecting text with the mouse will cause the text to be -#: copied to clipboard. Useful on platforms such as macOS that do not -#: have the concept of primary selection. You can instead specify a -#: name such as a1 to copy to a private kitty buffer. Map a shortcut -#: with the paste_from_buffer action to paste from this private -#: buffer. For example:: - -#: copy_on_select a1 -#: map shift+cmd+v paste_from_buffer a1 - -#: Note that copying to the clipboard is a security risk, as all -#: programs, including websites open in your browser can read the -#: contents of the system clipboard. - -# paste_actions quote-urls-at-prompt - -#: A comma separated list of actions to take when pasting text into -#: the terminal. The supported paste actions are: - -#: quote-urls-at-prompt: -#: If the text being pasted is a URL and the cursor is at a shell prompt, -#: automatically quote the URL (needs shell_integration). -#: confirm: -#: Confirm the paste if bracketed paste mode is not active or there is more -#: a large amount of text being pasted. -#: filter: -#: Run the filter_paste() function from the file paste-actions.py in -#: the kitty config directory on the pasted text. The text returned by the -#: function will be actually pasted. - -# strip_trailing_spaces never - -#: Remove spaces at the end of lines when copying to clipboard. A -#: value of smart will do it when using normal selections, but not -#: rectangle selections. A value of always will always do it. - -# select_by_word_characters @-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alphanumeric character in the Unicode database will be matched. - -# select_by_word_characters_forward - -#: Characters considered part of a word when extending the selection -#: forward on double clicking. In addition to these characters any -#: character that is marked as an alphanumeric character in the -#: Unicode database will be matched. - -#: If empty (default) select_by_word_characters will be used for both -#: directions. - -# click_interval -1.0 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds). Negative numbers will use the system default -#: instead, if available, or fallback to 0.5. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around. - -# pointer_shape_when_grabbed arrow - -#: The shape of the mouse pointer when the program running in the -#: terminal grabs the mouse. Valid values are: arrow, beam and hand. - -# default_pointer_shape beam - -#: The default shape of the mouse pointer. Valid values are: arrow, -#: beam and hand. - -# pointer_shape_when_dragging beam - -#: The default shape of the mouse pointer when dragging across text. -#: Valid values are: arrow, beam and hand. - -#: Mouse actions {{{ - -#: Mouse buttons can be mapped to perform arbitrary actions. The -#: syntax is: - -#: .. code-block:: none - -#: mouse_map button-name event-type modes action - -#: Where button-name is one of left, middle, right, b1 ... b8 with -#: added keyboard modifiers. For example: ctrl+shift+left refers to -#: holding the Ctrl+Shift keys while clicking with the left mouse -#: button. The value b1 ... b8 can be used to refer to up to eight -#: buttons on a mouse. - -#: event-type is one of press, release, doublepress, triplepress, -#: click, doubleclick. modes indicates whether the action is performed -#: when the mouse is grabbed by the program running in the terminal, -#: or not. The values are grabbed or ungrabbed or a comma separated -#: combination of them. grabbed refers to when the program running in -#: the terminal has requested mouse events. Note that the click and -#: double click events have a delay of click_interval to disambiguate -#: from double and triple presses. - -#: You can run kitty with the kitty --debug-input command line option -#: to see mouse events. See the builtin actions below to get a sense -#: of what is possible. - -#: If you want to unmap an action, map it to no_op. For example, to -#: disable opening of URLs with a plain click:: - -#: mouse_map left click ungrabbed no_op - -#: See all the mappable actions including mouse actions here -#: . - -#: .. note:: -#: Once a selection is started, releasing the button that started it will -#: automatically end it and no release event will be dispatched. - -# clear_all_mouse_actions no - -#: Remove all mouse action definitions up to this point. Useful, for -#: instance, to remove the default mouse actions. - -#: Click the link under the mouse or move the cursor - -# mouse_map left click ungrabbed mouse_handle_click selection link prompt - -#:: First check for a selection and if one exists do nothing. Then -#:: check for a link under the mouse cursor and if one exists, click -#:: it. Finally check if the click happened at the current shell -#:: prompt and if so, move the cursor to the click location. Note -#:: that this requires shell integration -#:: to work. - -#: Click the link under the mouse or move the cursor even when grabbed - -# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt - -#:: Same as above, except that the action is performed even when the -#:: mouse is grabbed by the program running in the terminal. - -#: Click the link under the mouse cursor - -# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link - -#:: Variant with Ctrl+Shift is present because the simple click based -#:: version has an unavoidable delay of click_interval, to -#:: disambiguate clicks from double clicks. - -#: Discard press event for link click - -# mouse_map ctrl+shift+left press grabbed discard_event - -#:: Prevent this press event from being sent to the program that has -#:: grabbed the mouse, as the corresponding release event is used to -#:: open a URL. - -#: Paste from the primary selection - -# mouse_map middle release ungrabbed paste_from_selection - -#: Start selecting text - -# mouse_map left press ungrabbed mouse_selection normal - -#: Start selecting text in a rectangle - -# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle - -#: Select a word - -# mouse_map left doublepress ungrabbed mouse_selection word - -#: Select a line - -# mouse_map left triplepress ungrabbed mouse_selection line - -#: Select line from point - -# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line. - -#: Extend the current selection - -# mouse_map right press ungrabbed mouse_selection extend - -#:: If you want only the end of the selection to be moved instead of -#:: the nearest boundary, use move-end instead of extend. - -#: Paste from the primary selection even when grabbed - -# mouse_map shift+middle release ungrabbed,grabbed paste_selection -# mouse_map shift+middle press grabbed discard_event - -#: Start selecting text even when grabbed - -# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal - -#: Start selecting text in a rectangle even when grabbed - -# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle - -#: Select a word even when grabbed - -# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word - -#: Select a line even when grabbed - -# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line - -#: Select line from point even when grabbed - -# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line even when -#:: grabbed. - -#: Extend the current selection even when grabbed - -# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend - -#: Show clicked command output in pager - -# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay between screen updates (in milliseconds). Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS, you have to -#: either set sync_to_monitor to no or use a monitor with a high -#: refresh rate. Also, to minimize latency when there is pending input -#: to be processed, this option is ignored. - -# input_delay 3 - -#: Delay before input from the program running in the terminal is -#: processed (in milliseconds). Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents screen tearing -#: when scrolling. -#: However, it limits the rendering speed to the refresh rate of your -#: monitor. With a very high speed mouse/high keyboard repeat rate, -#: you may notice some slight input latency. If so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes - -#: The audio bell. Useful to disable it in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: The visual bell duration (in seconds). Flash the screen when a bell -#: occurs for the specified number of seconds. Set to zero to disable. - -# visual_bell_color none - -#: The color used by visual bell. Set to none will fall back to -#: selection background color. If you feel that the visual bell is too -#: bright, you can set it to a darker color. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on linux. - -# bell_on_tab "🔔 " - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has a bell. If you want to use leading -#: or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -#: For backwards compatibility, values of yes, y and true are -#: converted to the default bell symbol and no, n, false and none are -#: converted to the empty string. - -# command_on_bell none - -#: Program to run when a bell occurs. The environment variable -#: KITTY_CHILD_CMDLINE can be used to get the program running in the -#: window in which the bell occurred. - -# bell_path none - -#: Path to a sound file to play as the bell sound. If set to none, the -#: system default bell sound is used. Must be in a format supported by -#: the operating systems sound API, such as WAV or OGA on Linux -#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound) - -#: }}} - -#: Window layout {{{ - -# remember_window_size yes -# initial_window_width 640 -# initial_window_height 400 - -#: If enabled, the window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# enabled_layouts * - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value all means all layouts. The first listed layout -#: will be used as the startup layout. Default configuration is all -#: layouts in alphabetical order. For a list of available layouts, see -#: the layouts . - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing kitty windows in a layout with the shortcut -#: start_resizing_window. The cells value is used for horizontal -#: resizing, and the lines value is used for vertical resizing. - -# window_border_width 0.5pt - -#: The width of window borders. Can be either in pixels (px) or pts -#: (pt). Values in pts will be rounded to the nearest number of pixels -#: based on screen resolution. If not specified, the unit is assumed -#: to be pts. Note that borders are displayed only when more than one -#: window is visible. They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: borders that separate the inactive window from a neighbor are -#: drawn. Note that setting a non-zero window_margin_width overrides -#: this and causes all borders to be drawn. - -# window_margin_width 0 - -#: The window margin (in pts) (blank area outside the border). A -#: single value sets all four sides. Two values set the vertical and -#: horizontal sides. Three values set top, horizontal and bottom. Four -#: values set top, right, bottom and left. - -# single_window_margin_width -1 - -#: The window margin to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_margin_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# window_padding_width 0 - -#: The window padding (in pts) (blank area between the text and the -#: window border). A single value sets all four sides. Two values set -#: the vertical and horizontal sides. Three values set top, horizontal -#: and bottom. Four values set top, right, bottom and left. - -# placement_strategy center - -#: When the window size is not an exact multiple of the cell size, the -#: cell area of the terminal window will have some extra padding on -#: the sides. You can control how that padding is distributed with -#: this option. Using a value of center means the cell area will be -#: placed centrally. A value of top-left means the padding will be -#: only at the bottom and right edges. - -# active_border_color #00ff00 - -#: The color for the border of the active window. Set this to none to -#: not draw borders around the active window. - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows. - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred. - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -# hide_window_decorations no - -#: Hide the window decorations (title-bar and window borders) with -#: yes. On macOS, titlebar-only can be used to only hide the titlebar. -#: Whether this works and exactly what effect it has depends on the -#: window manager/operating system. Note that the effects of changing -#: this option when reloading config are undefined. - -# window_logo_path none - -#: Path to a logo image. Must be in PNG format. Relative paths are -#: interpreted relative to the kitty config directory. The logo is -#: displayed in a corner of every kitty window. The position is -#: controlled by window_logo_position. Individual windows can be -#: configured to have different logos either using the launch action -#: or the remote control facility. - -# window_logo_position bottom-right - -#: Where to position the window logo in the window. The value can be -#: one of: top-left, top, top-right, left, center, right, bottom-left, -#: bottom, bottom-right. - -# window_logo_alpha 0.5 - -#: The amount the logo should be faded into the background. With zero -#: being fully faded and one being fully opaque. - -# resize_debounce_time 0.1 - -#: The time to wait before redrawing the screen when a resize event is -#: received (in seconds). On platforms such as macOS, where the -#: operating system sends events corresponding to the start and end of -#: a resize, this number is ignored. - -# resize_draw_strategy static - -#: Choose how kitty draws a window while a resize is in progress. A -#: value of static means draw the current window contents, mostly -#: unchanged. A value of scale means draw the current window contents -#: scaled. A value of blank means draw a blank window. A value of size -#: means show the window size in cells. - -# resize_in_steps no - -#: Resize the OS window in steps as large as the cells, instead of -#: with the usual pixel accuracy. Combined with initial_window_width -#: and initial_window_height in number of cells, this option can be -#: used to keep the margins as small as possible when resizing the OS -#: window. Note that this does not currently work on Wayland. - -# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - -#: The list of characters for visual window selection. For example, -#: for selecting a window to focus on with focus_visible_window. The -#: value should be a series of unique numbers or alphabets, case -#: insensitive, from the set [0-9A-Z]. Specify your preference as a -#: string of characters. - -# confirm_os_window_close -1 - -#: Ask for confirmation when closing an OS window or a tab with at -#: least this number of kitty windows in it by window manager (e.g. -#: clicking the window close button or pressing the operating system -#: shortcut to close windows) or by the close_tab action. A value of -#: zero disables confirmation. This confirmation also applies to -#: requests to quit the entire application (all OS windows, via the -#: quit action). Negative values are converted to positive ones, -#: however, with shell_integration enabled, using negative values -#: means windows sitting at a shell prompt are not counted, only -#: windows where some command is currently running. Note that if you -#: want confirmation when closing individual windows, you can map the -#: close_window_with_confirmation action. - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: The edge to show the tab bar on, top or bottom. - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts). - -# tab_bar_margin_height 0.0 0.0 - -#: The margin above and below the tab bar (in pts). The first number -#: is the margin between the edge of the OS Window and the tab bar. -#: The second number is the margin between the tab bar and the -#: contents of the current tab. - -# tab_bar_style fade - -#: The tab bar style, can be one of: - -#: fade -#: Each tab's edges fade into the background color. (See also tab_fade) -#: slant -#: Tabs look like the tabs in a physical file. -#: separator -#: Tabs are separated by a configurable separator. (See also -#: tab_separator) -#: powerline -#: Tabs are shown as a continuous line with "fancy" separators. -#: (See also tab_powerline_style) -#: custom -#: A user-supplied Python function called draw_tab is loaded from the file -#: tab_bar.py in the kitty config directory. For examples of how to -#: write such a function, see the functions named draw_tab_with_* in -#: kitty's source code: kitty/tab_bar.py. See also -#: this discussion https://github.com/kovidgoyal/kitty/discussions/4447 -#: for examples from kitty users. -#: hidden -#: The tab bar is hidden. If you use this, you might want to create a mapping -#: for the select_tab action which presents you with a list of tabs and -#: allows for easy switching to a tab. - -# tab_bar_align left - -#: The horizontal alignment of the tab bar, can be one of: left, -#: center, right. - -# tab_bar_min_tabs 2 - -#: The minimum number of tabs that must exist before the tab bar is -#: shown. - -# tab_switch_strategy previous - -#: The algorithm to use when switching to a tab when the current tab -#: is closed. The default of previous will switch to the last used -#: tab. A value of left will switch to the tab to the left of the -#: closed tab. A value of right will switch to the tab to the right of -#: the closed tab. A value of last will switch to the right-most tab. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# tab_powerline_style angled - -#: The powerline separator style between tabs in the tab bar when -#: using powerline as the tab_bar_style, can be one of: angled, -#: slanted, round. - -# tab_activity_symbol none - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has some activity. If you want to use -#: leading or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}" - -#: A template to render the tab title. The default just renders the -#: title with optional symbols for bell and activity. If you wish to -#: include the tab-index as well, use something like: {index}:{title}. -#: Useful if you have shortcuts mapped for goto_tab N. If you prefer -#: to see the index as a superscript, use {sup.index}. In addition you -#: can use {layout_name} for the current layout name, {num_windows} -#: for the number of windows in the tab and {num_window_groups} for -#: the number of window groups (not counting overlay windows) in the -#: tab. Note that formatting is done by Python's string formatting -#: machinery, so you can use, for instance, {layout_name[:2].upper()} -#: to show only the first two letters of the layout name, upper-cased. -#: If you want to style the text, you can use styling directives, for -#: example: -#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. -#: Similarly, for bold and italic: -#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. -#: Note that for backward compatibility, if {bell_symbol} or -#: {activity_symbol} are not present in the template, they are -#: prepended to it. - -# active_tab_title_template none - -#: Template to use for active tabs. If not specified falls back to -#: tab_title_template. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles. - -# tab_bar_background none - -#: Background color for the tab bar. Defaults to using the terminal -#: background color. - -# tab_bar_margin_color none - -#: Color for the tab bar margin area. Defaults to using the terminal -#: background color. - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 - -#: The foreground and background colors. - -background_opacity 0.90 - -#: The opacity of the background. A number between zero and one, where -#: one is opaque and zero is fully transparent. This will only work if -#: supported by the OS (for instance, when using a compositor under -#: X11). Note that it only sets the background color's opacity in -#: cells that have the same background color as the default terminal -#: background, so that things like the status bar in vim, powerline -#: prompts, etc. still look good. But it means that if you use a color -#: theme with a background color in your editor, it will not be -#: rendered as transparent. Instead you should change the default -#: background color in your kitty config and not use a background -#: color in the editor color scheme. Or use the escape codes to set -#: the terminals default colors in a shell script to launch your -#: editor. Be aware that using a value less than 1.0 is a (possibly -#: significant) performance hit. If you want to dynamically change -#: transparency of windows, set dynamic_background_opacity to yes -#: (this is off by default as it has a performance cost). Changing -#: this option when reloading the config will only work if -#: dynamic_background_opacity was enabled in the original config. - -# background_image none - -#: Path to a background image. Must be in PNG format. - -# background_image_layout tiled - -#: Whether to tile, scale or clamp the background image. The value can -#: be one of tiled, mirror-tiled, scaled, clamped. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. - -# dynamic_background_opacity no - -#: Allow changing of the background_opacity dynamically, using either -#: keyboard shortcuts (increase_background_opacity and -#: decrease_background_opacity) or the remote control facility. -#: Changing this option by reloading the config is not supported. - -# background_tint 0.0 - -#: How much to tint the background image by the background color. The -#: tint is applied only under the text area, not margin/borders. This -#: option makes it easier to read the text. Tinting is done using the -#: current background color for each window. This option applies only -#: if background_opacity is set and transparent windows are supported -#: or background_image is set. - -# dim_opacity 0.75 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #fffacd - -#: The foreground and background colors for text selected with the -#: mouse. Setting both of these to none will cause a "reverse video" -#: effect for selections, where the selection will be the cell text -#: color and the text will become the cell background color. Setting -#: only selection_foreground to none will cause the foreground color -#: to be used unchanged. Note that these colors can be overridden by -#: the program running in the terminal. - -#: The color table {{{ - -#: The 256 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version, for the first 16 colors. You can set the -#: remaining 240 colors as color16 to color255. - -# color0 #000000 -# color8 #767676 - -#: black - -# color1 #cc0403 -# color9 #f2201f - -#: red - -# color2 #19cb00 -# color10 #23fd00 - -#: green - -# color3 #cecb00 -# color11 #fffd00 - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff - -#: cyan - -# color7 #dddddd -# color15 #ffffff - -#: white - -# mark1_foreground black - -#: Color for marks of type 1 - -# mark1_background #98d3cb - -#: Color for marks of type 1 (light steel blue) - -# mark2_foreground black - -#: Color for marks of type 2 - -# mark2_background #f2dcd3 - -#: Color for marks of type 1 (beige) - -# mark3_foreground black - -#: Color for marks of type 3 - -# mark3_background #f274bc - -#: Color for marks of type 3 (violet) - -#: }}} - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login and --interactive to ensure that the shell starts in -#: interactive mode and reads its startup rc files. - -editor . - -#: The terminal based text editor (such as vim or nano) to use when -#: editing the kitty config file or similar tasks. - -#: The default value of . means to use the environment variables -#: VISUAL and EDITOR in that order. If these variables aren't set, -#: kitty will run your shell ($SHELL -l -i -c env) to see if your -#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, -#: kitty will cycle through various known editors (vim, emacs, etc.) -#: and take the first one that exists on your system. - -# close_on_child_death no - -#: Close the window when the child process (shell) exits. With the -#: default value no, the terminal will remain open when the child -#: exits as long as there are still processes outputting to the -#: terminal (for example disowned or backgrounded processes). When -#: enabled with yes, the window will close as soon as the child -#: process exits. Note that setting it to yes means that any -#: background processes still using the terminal can fail silently -#: because their stdout/stderr/stdin no longer work. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on, other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over SSH -#: connections. You can choose to either allow any program running -#: within kitty to control it with yes, or only allow programs that -#: connect to the socket (specified with the listen_on config option -#: or kitty --listen-on command line option) with the value socket- -#: only. The latter is useful if you want to prevent programs running -#: on a remote computer over SSH from controlling kitty. Reloading the -#: config will not affect this option. - -# listen_on none - -#: Listen to the specified UNIX socket for remote control connections. -#: Note that this will apply to all kitty instances. It can be -#: overridden by the kitty --listen-on command line option, which -#: supports listening on TCP socket. This option accepts only UNIX -#: sockets, such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). -#: Environment variables are expanded and relative paths are resolved -#: with respect to the temporary directory. If {kitty_pid} is present, -#: then it is replaced by the PID of the kitty process, otherwise the -#: PID of the kitty process is appended to the value, with a hyphen. -#: This option is ignored unless you also set allow_remote_control to -#: enable remote control. See the help for kitty --listen-on for more -#: details. Changing this option by reloading the config is not -#: supported. - -# env - -#: Specify the environment variables to be set in all child processes. -#: Using the name with an equal sign (e.g. env VAR=) will set it to -#: the empty string. Specifying only the name (e.g. env VAR) will -#: remove the variable from the child process' environment. Note that -#: environment variables are expanded recursively, for example:: - -#: env VAR1=a -#: env VAR2=${HOME}/${VAR1}/b - -#: The value of VAR2 will be /a/b. - -# watcher - -#: Path to python file which will be loaded for watchers -#: . Can be -#: specified more than once to load multiple watchers. The watchers -#: will be added to every kitty window. Relative paths are resolved -#: relative to the kitty config directory. Note that reloading the -#: config will only affect windows created after the reload. - -# exe_search_path - -#: Control where kitty finds the programs to run. The default search -#: order is: First search the system wide PATH, then ~/.local/bin and -#: ~/bin. If still not found, the PATH defined in the login shell -#: after sourcing all its startup files is tried. Finally, if present, -#: the PATH specified by the env option is tried. - -#: This option allows you to prepend, append, or remove paths from -#: this search order. It can be specified multiple times for multiple -#: paths. A simple path will be prepended to the search order. A path -#: that starts with the + sign will be append to the search order, -#: after ~/bin above. A path that starts with the - sign will be -#: removed from the entire search order. For example:: - -#: exe_search_path /some/prepended/path -#: exe_search_path +/some/appended/path -#: exe_search_path -/some/excluded/path - -# update_check_interval 24 - -#: The interval to periodically check if an update to kitty is -#: available (in hours). If an update is found, a system notification -#: is displayed informing you of the available update. The default is -#: to check every 24 hours, set to zero to disable. Update checking is -#: only done by the official binary builds. Distro packages or source -#: builds do not do update checking. Changing this option by reloading -#: the config is not supported. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session command line option for -#: individual instances. See sessions -#: in the -#: kitty documentation for details. Note that relative paths are -#: interpreted with respect to the kitty config directory. Environment -#: variables in the path are expanded. Changing this option by -#: reloading the config is not supported. - -# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: possible actions are: write-clipboard, read-clipboard, write- -#: primary, read-primary, read-clipboard-ask, read-primary-ask. The -#: default is to allow writing to the clipboard and primary selection -#: and to ask for permission when a program tries to read from the -#: clipboard. Note that disabling the read confirmation is a security -#: risk as it means that any program, even the ones running on a -#: remote server via SSH can read your clipboard. See also -#: clipboard_max_size. - -# clipboard_max_size 64 - -#: The maximum size (in MB) of data from programs running in kitty -#: that will be stored for writing to the system clipboard. A value of -#: zero means no size limit is applied. See also clipboard_control. - -# file_transfer_confirmation_bypass - -#: The password that can be supplied to the file transfer kitten -#: to skip the -#: transfer confirmation prompt. This should only be used when -#: initiating transfers from trusted computers, over trusted networks -#: or encrypted transports, as it allows any programs running on the -#: remote machine to read/write to the local filesystem, without -#: permission. - -# allow_hyperlinks yes - -#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 -#: escape sequences are ignored. Otherwise they become clickable -#: links, that you can click with the mouse or by using the hints -#: kitten . The -#: special value of ask means that kitty will ask before opening the -#: link when clicked. - -# shell_integration enabled - -#: Enable shell integration on supported shells. This enables features -#: such as jumping to previous prompts, browsing the output of the -#: previous command in a pager, etc. on supported shells. Set to -#: disabled to turn off shell integration, completely. It is also -#: possible to disable individual features, set to a space separated -#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- -#: prompt-mark, no-complete. See Shell integration -#: for details. - -# allow_cloning ask - -#: Control whether programs running in the terminal can request new -#: windows to be created. The canonical example is clone-in-kitty -#: . -#: By default, kitty will ask for permission for each clone request. -#: Allowing cloning unconditionally gives programs running in the -#: terminal (including over SSH) permission to execute arbitrary code, -#: as the user who is running the terminal, on the computer that the -#: terminal is running on. - -# clone_source_strategies venv,conda,env_var,path - -#: Control what shell code is sourced when running clone-in-kitty in -#: the newly cloned window. The supported strategies are: - -#: venv -#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the -#: Python stdlib venv module and allows cloning venvs automatically. -#: conda -#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual -#: environments created by conda. -#: env_var -#: Execute the contents of the environment variable -#: KITTY_CLONE_SOURCE_CODE with eval. -#: path -#: Source the file pointed to by the environment variable -#: KITTY_CLONE_SOURCE_PATH. - -#: This option must be a comma separated list of the above values. -#: This only source the first valid one in the above order. - -term tmux-256color - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on "Stack Overflow" -#: to change it. The TERM variable is used by various programs to get -#: information about the capabilities and behavior of the terminal. If -#: you change it, depending on what programs you run, and how -#: different the terminal you are changing it to is, various things -#: from key-presses, to colors, to various advanced features may not -#: work. Changing this option by reloading the config will only affect -#: newly created windows. - -#: }}} - -#: OS specific tweaks {{{ - -# wayland_titlebar_color system - -#: The color of the kitty window's titlebar on Wayland systems with -#: client side window decorations such as GNOME. A value of system -#: means to use the default system color, a value of background means -#: to use the background color of the currently active window and -#: finally you can use an arbitrary color, such as #12af59 or red. - -# macos_titlebar_color system - -#: The color of the kitty window's titlebar on macOS. A value of -#: system means to use the default system color, light or dark can -#: also be used to set it explicitly. A value of background means to -#: use the background color of the currently active window and finally -#: you can use an arbitrary color, such as #12af59 or red. WARNING: -#: This option works by using a hack when arbitrary color (or -#: background) is configured, as there is no proper Cocoa API for it. -#: It sets the background color of the entire window and makes the -#: titlebar transparent. As such it is incompatible with -#: background_opacity. If you want to use both, you are probably -#: better off just hiding the titlebar with hide_window_decorations. - -# macos_option_as_alt no - -#: Use the Option key as an Alt key on macOS. With this set to no, -#: kitty will use the macOS native Option+Key to enter Unicode -#: character behavior. This will break any Alt+Key keyboard shortcuts -#: in your terminal programs, but you can use the macOS Unicode input -#: technique. You can use the values: left, right or both to use only -#: the left, right or both Option keys as Alt, instead. Note that -#: kitty itself always treats Option the same as Alt. This means you -#: cannot use this option to configure different kitty shortcuts for -#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using -#: Option/Alt+Key will take priority, so that any such key presses -#: will not be passed to terminal programs running inside kitty. -#: Changing this option by reloading the config is not supported. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks on macOS (⌘+Tab and the -#: Dock). Changing this option by reloading the config is not -#: supported. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed on macOS. -#: By default, kitty will stay running, even with no open windows, as -#: is the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level OS windows to not be -#: resizable on macOS. Changing this option by reloading the config -#: will only affect newly created OS windows. - -# macos_thicken_font 0 - -#: Draw an extra border around the font with the given width, to -#: increase legibility at small font sizes on macOS. For example, a -#: value of 0.75 will result in rendering that looks similar to sub- -#: pixel antialiasing at common font sizes. - -# macos_traditional_fullscreen no - -#: Use the macOS traditional full-screen transition, that is faster, -#: but less pretty. - -# macos_show_window_title_in all - -#: Control where the window title is displayed on macOS. A value of -#: window will show the title of the currently active window at the -#: top of the macOS window. A value of menubar will show the title of -#: the currently active window in the macOS global menu bar, making -#: use of otherwise wasted space. A value of all will show the title -#: in both places, and none hides the title. See -#: macos_menubar_title_max_length for how to control the length of the -#: title in the menu bar. - -# macos_menubar_title_max_length 0 - -#: The maximum number of characters from the window title to show in -#: the macOS global menu bar. Values less than one means that there is -#: no maximum limit. - -# macos_custom_beam_cursor no - -#: Use a custom mouse cursor for macOS that is easier to see on both -#: light and dark backgrounds. Nowadays, the default macOS cursor -#: already comes with a white border. WARNING: this might make your -#: mouse cursor invisible on dual GPU machines. Changing this option -#: by reloading the config is not supported. - -# macos_colorspace srgb - -#: The colorspace in which to interpret terminal colors. The default -#: of srgb will cause colors to match those seen in web browsers. The -#: value of default will use whatever the native colorspace of the -#: display is. The value of displayp3 will use Apple's special -#: snowflake display P3 color space, which will result in over -#: saturated (brighter) colors with some color shift. Reloading -#: configuration will change this value only for newly created OS -#: windows. - -# linux_display_server auto - -#: Choose between Wayland and X11 backends. By default, an appropriate -#: backend based on the system state is chosen automatically. Set it -#: to x11 or wayland to force the choice. Changing this option by -#: reloading the config is not supported. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: Keys are identified simply by their lowercase Unicode characters. -#: For example: a for the A key, [ for the left square bracket key, -#: etc. For functional keys, such as Enter or Escape, the names are -#: present at Functional key definitions -#: . For modifier keys, the names are ctrl (control, ⌃), -#: shift (⇧), alt (opt, option, ⌥), super (cmd, command, ⌘). See also: -#: GLFW mods - -#: On Linux you can also use XKB key names to bind keys that are not -#: supported by GLFW. See XKB keys -#: for a list of key names. The name to use is the part -#: after the XKB_KEY_ prefix. Note that you can only use an XKB key -#: name for keys that are not known as GLFW keys. - -#: Finally, you can use raw system key codes to map keys, again only -#: for keys that are not known as GLFW keys. To see the system key -#: code for a key, start kitty with the kitty --debug-input option, -#: kitty will output some debug text for every key event. In that text -#: look for native_code, the value of that becomes the key name in the -#: shortcut. For example: - -#: .. code-block:: none - -#: on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a' - -#: Here, the key name for the A key is 0x61 and you can use it with:: - -#: map ctrl+0x61 something - -#: to map Ctrl+A to something. - -#: You can use the special action no_op to unmap a keyboard shortcut -#: that is assigned in the default configuration:: - -#: map kitty_mod+space no_op - -#: If you would like kitty to completely ignore a key event, not even -#: sending it to the program running in the terminal, map it to -#: discard_event:: - -#: map kitty_mod+f1 discard_event - -#: You can combine multiple actions to be triggered by a single -#: shortcut with combine action, using the syntax below:: - -#: map key combine action1 action2 action3 ... - -#: For example:: - -#: map kitty_mod+e combine : new_window : next_layout - -#: This will create a new window and switch to the next available -#: layout. - -#: You can use multi-key shortcuts with the syntax shown below:: - -#: map key1>key2>key3 action - -#: For example:: - -#: map ctrl+f>2 set_font_size 20 - -#: The full list of actions that can be mapped to key presses is -#: available here . - -# kitty_mod ctrl+shift - -#: Special modifier key alias for default shortcuts. You can change -#: the value of this option to alter all default shortcuts that use -#: kitty_mod. - -# clear_all_shortcuts no - -#: Remove all shortcut definitions up to this point. Useful, for -#: instance, to remove the default shortcuts. - -# action_alias - -#: E.g. action_alias launch_tab launch --type=tab --cwd=current - -#: Define action aliases to avoid repeating the same options in -#: multiple mappings. Aliases can be defined for any action and will -#: be expanded recursively. For example, the above alias allows you to -#: create mappings to launch a new tab in the current working -#: directory without duplication:: - -#: map f1 launch_tab vim -#: map f2 launch_tab emacs - -#: Similarly, to alias kitten invocation:: - -#: action_alias hints kitten hints --hints-offset=0 - -# kitten_alias - -#: E.g. kitten_alias hints hints --hints-offset=0 - -#: Like action_alias above, but specifically for kittens. Generally, -#: prefer to use action_alias. This option is a legacy version, -#: present for backwards compatibility. It causes all invocations of -#: the aliased kitten to be substituted. So the example above will -#: cause all invocations of the hints kitten to have the --hints- -#: offset=0 option applied. - -#: Clipboard {{{ - -#: Copy to clipboard - -# map kitty_mod+c copy_to_clipboard -# map cmd+c copy_to_clipboard - -#:: There is also a copy_or_interrupt action that can be optionally -#:: mapped to Ctrl+C. It will copy only if there is a selection and -#:: send an interrupt otherwise. Similarly, -#:: copy_and_clear_or_interrupt will copy and clear the selection or -#:: send an interrupt if there is no selection. - -#: Paste from clipboard - -# map kitty_mod+v paste_from_clipboard -# map cmd+v paste_from_clipboard - -#: Paste from selection - -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection - -#: Pass selection to program - -# map kitty_mod+o pass_selection_to_program - -#:: You can also pass the contents of the current selection to any -#:: program with pass_selection_to_program. By default, the system's -#:: open program is used, but you can specify your own, the selection -#:: will be passed as a command line argument to the program. For -#:: example:: - -#:: map kitty_mod+o pass_selection_to_program firefox - -#:: You can pass the current selection to a terminal program running -#:: in a new kitty window, by using the @selection placeholder:: - -#:: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -#: Scroll line up - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map opt+cmd+page_up scroll_line_up -# map cmd+up scroll_line_up - -#: Scroll line down - -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map opt+cmd+page_down scroll_line_down -# map cmd+down scroll_line_down - -#: Scroll page up - -# map kitty_mod+page_up scroll_page_up -# map cmd+page_up scroll_page_up - -#: Scroll page down - -# map kitty_mod+page_down scroll_page_down -# map cmd+page_down scroll_page_down - -#: Scroll to top - -# map kitty_mod+home scroll_home -# map cmd+home scroll_home - -#: Scroll to bottom - -# map kitty_mod+end scroll_end -# map cmd+end scroll_end - -#: Scroll to previous shell prompt - -# map kitty_mod+z scroll_to_prompt -1 - -#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last -#:: jumped to or the last clicked position. Requires shell -#:: integration -#:: to work. - -#: Scroll to next shell prompt - -# map kitty_mod+x scroll_to_prompt 1 - -#: Browse scrollback buffer in pager - -# map kitty_mod+h show_scrollback - -#:: You can pipe the contents of the current screen and history -#:: buffer as STDIN to an arbitrary program using launch --stdin- -#:: source. For example, the following opens the scrollback buffer in -#:: less in an overlay window:: - -#:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R - -#:: For more details on piping screen and buffer contents to external -#:: programs, see launch . - -#: Browse output of the last shell command in pager - -# map kitty_mod+g show_last_command_output - -#:: You can also define additional shortcuts to get the command -#:: output. For example, to get the first command output on screen:: - -#:: map f1 show_first_command_output_on_screen - -#:: To get the command output that was last accessed by a keyboard -#:: action or mouse action:: - -#:: map f1 show_last_visited_command_output - -#:: You can pipe the output of the last command run in the shell -#:: using the launch action. For example, the following opens the -#:: output in less in an overlay window:: - -#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R - -#:: To get the output of the first command on the screen, use -#:: @first_cmd_output_on_screen. To get the output of the last jumped -#:: to command, use @last_visited_cmd_output. - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: Window management {{{ - -#: New window - -# map kitty_mod+enter new_window -# map cmd+enter new_window - -#:: You can open a new kitty window running an arbitrary program, for -#:: example:: - -#:: map kitty_mod+y launch mutt - -#:: You can open a new window with the current working directory set -#:: to the working directory of the current window using:: - -#:: map ctrl+alt+enter launch --cwd=current - -#:: You can open a new window that is allowed to control kitty via -#:: the kitty remote control facility with launch --allow-remote- -#:: control. Any programs running in that window will be allowed to -#:: control kitty. For example:: - -#:: map ctrl+enter launch --allow-remote-control some_program - -#:: You can open a new window next to the currently active window or -#:: as the first window, with:: - -#:: map ctrl+n launch --location=neighbor -#:: map ctrl+f launch --location=first - -#:: For more details, see launch -#:: . - -#: New OS window - -# map kitty_mod+n new_os_window -# map cmd+n new_os_window - -#:: Works like new_window above, except that it opens a top-level OS -#:: window. In particular you can use new_os_window_with_cwd to open -#:: a window with the current working directory. - -#: Close window - -# map kitty_mod+w close_window -# map shift+cmd+d close_window - -#: Next window - -# map kitty_mod+] next_window - -#: Previous window - -# map kitty_mod+[ previous_window - -#: Move window forward - -# map kitty_mod+f move_window_forward - -#: Move window backward - -# map kitty_mod+b move_window_backward - -#: Move window to top - -# map kitty_mod+` move_window_to_top - -#: Start resizing window - -# map kitty_mod+r start_resizing_window -# map cmd+r start_resizing_window - -#: First window - -# map kitty_mod+1 first_window -# map cmd+1 first_window - -#: Second window - -# map kitty_mod+2 second_window -# map cmd+2 second_window - -#: Third window - -# map kitty_mod+3 third_window -# map cmd+3 third_window - -#: Fourth window - -# map kitty_mod+4 fourth_window -# map cmd+4 fourth_window - -#: Fifth window - -# map kitty_mod+5 fifth_window -# map cmd+5 fifth_window - -#: Sixth window - -# map kitty_mod+6 sixth_window -# map cmd+6 sixth_window - -#: Seventh window - -# map kitty_mod+7 seventh_window -# map cmd+7 seventh_window - -#: Eight window - -# map kitty_mod+8 eighth_window -# map cmd+8 eighth_window - -#: Ninth window - -# map kitty_mod+9 ninth_window -# map cmd+9 ninth_window - -#: Tenth window - -# map kitty_mod+0 tenth_window - -#: Visually select and focus window - -# map kitty_mod+f7 focus_visible_window - -#:: Display overlay numbers and alphabets on the window, and switch -#:: the focus to the window when you press the key. When there are -#:: only two windows, the focus will be switched directly without -#:: displaying the overlay. You can change the overlay characters and -#:: their order with option visual_window_select_characters. - -#: Visually swap window with another - -# map kitty_mod+f8 swap_with_window - -#:: Works like focus_visible_window above, but swaps the window. - -#: }}} - -#: Tab management {{{ - -#: Next tab - -# map kitty_mod+right next_tab -# map shift+cmd+] next_tab -# map ctrl+tab next_tab - -#: Previous tab - -# map kitty_mod+left previous_tab -# map shift+cmd+[ previous_tab -# map ctrl+shift+tab previous_tab - -#: New tab - -# map kitty_mod+t new_tab -# map cmd+t new_tab - -#: Close tab - -# map kitty_mod+q close_tab -# map cmd+w close_tab - -#: Close OS window - -# map shift+cmd+w close_os_window - -#: Move tab forward - -# map kitty_mod+. move_tab_forward - -#: Move tab backward - -# map kitty_mod+, move_tab_backward - -#: Set tab title - -# map kitty_mod+alt+t set_tab_title -# map shift+cmd+i set_tab_title - - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab, 2 the second tab and -1 being the previously active -#: tab, and any number larger than the last tab being the last tab:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and new_tab_with_cwd. -#: Finally, if you want the new tab to open next to the current tab -#: rather than at the end of the tabs list, use:: - -map ctrl+t no_op -#: }}} - -#: Layout management {{{ - -#: Next layout - -# map kitty_mod+l next_layout - - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack - -#: Similarly, to switch back to the previous layout:: - -#: map ctrl+alt+p last_used_layout - -#: There is also a toggle_layout action that switches to the named -#: layout or back to the previous layout if in the named layout. -#: Useful to temporarily "zoom" the active window by switching to the -#: stack layout:: - -#: map ctrl+alt+z toggle_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty OS windows at -#: a time or only the current one. - -#: Increase font size - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+plus change_font_size all +2.0 -# map kitty_mod+kp_add change_font_size all +2.0 -# map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 -# map shift+cmd+equal change_font_size all +2.0 - -#: Decrease font size - -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 -# map shift+cmd+minus change_font_size all -2.0 - -#: Reset font size - -# map kitty_mod+backspace change_font_size all 0 -# map cmd+0 change_font_size all 0 - - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current OS window's font -#: size:: - -#: map kitty_mod+f6 change_font_size current 10.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -#: Open URL - -# map kitty_mod+e open_url_with_hints - -#:: Open a currently visible URL using the keyboard. The program used -#:: to open the URL is specified in open_url_with. - -#: Insert selected path - -# map kitty_mod+p>f kitten hints --type path --program - - -#:: Select a path/filename and insert it into the terminal. Useful, -#:: for instance to run git commands on a filename output from a -#:: previous git command. - -#: Open selected path - -# map kitty_mod+p>shift+f kitten hints --type path - -#:: Select a path/filename and open it with the default open program. - -#: Insert selected line - -# map kitty_mod+p>l kitten hints --type line --program - - -#:: Select a line of text and insert it into the terminal. Useful for -#:: the output of things like: `ls -1`. - -#: Insert selected word - -# map kitty_mod+p>w kitten hints --type word --program - - -#:: Select words and insert into terminal. - -#: Insert selected hash - -# map kitty_mod+p>h kitten hints --type hash --program - - -#:: Select something that looks like a hash and insert it into the -#:: terminal. Useful with git, which uses SHA1 hashes to identify -#:: commits. - -#: Open the selected file at the selected line - -# map kitty_mod+p>n kitten hints --type linenum - -#:: Select something that looks like filename:linenum and open it in -#:: vim at the specified line number. - -#: Open the selected hyperlink - -# map kitty_mod+p>y kitten hints --type hyperlink - -#:: Select a hyperlink (i.e. a URL that has been marked as such by -#:: the terminal program, for example, by `ls --hyperlink=auto`). - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see hints kitten -#: . -#: }}} - -#: Miscellaneous {{{ - -#: Toggle fullscreen - -# map kitty_mod+f11 toggle_fullscreen -# map ctrl+cmd+f toggle_fullscreen - -#: Toggle maximized - -# map kitty_mod+f10 toggle_maximized - -#: Toggle macOS secure keyboard entry - -# map opt+cmd+s toggle_macos_secure_keyboard_entry - -#: Unicode input - -# map kitty_mod+u kitten unicode_input -# map ctrl+cmd+space kitten unicode_input - -#: Edit config file - -# map kitty_mod+f2 edit_config_file -# map cmd+, edit_config_file - -#: Open the kitty command shell - -# map kitty_mod+escape kitty_shell window - -#:: Open the kitty shell in a new window / tab / overlay / os_window -#:: to control kitty using commands. - -#: Increase background opacity - -# map kitty_mod+a>m set_background_opacity +0.1 - -#: Decrease background opacity - -# map kitty_mod+a>l set_background_opacity -0.1 - -#: Make background fully opaque - -# map kitty_mod+a>1 set_background_opacity 1 - -#: Reset background opacity - -# map kitty_mod+a>d set_background_opacity default - -#: Reset the terminal - -# map kitty_mod+delete clear_terminal reset active -# map opt+cmd+r clear_terminal reset active - -#:: You can create shortcuts to clear/reset the terminal. For -#:: example:: - -#:: # Reset the terminal -#:: map f1 clear_terminal reset active -#:: # Clear the terminal screen by erasing all contents -#:: map f1 clear_terminal clear active -#:: # Clear the terminal scrollback by erasing it -#:: map f1 clear_terminal scrollback active -#:: # Scroll the contents of the screen into the scrollback -#:: map f1 clear_terminal scroll active -#:: # Clear everything up to the line with the cursor -#:: map f1 clear_terminal to_cursor active - -#:: If you want to operate on all kitty windows instead of just the -#:: current one, use all instead of active. - -#:: It is also possible to remap Ctrl+L to both scroll the current -#:: screen contents into the scrollback buffer and clear the screen, -#:: instead of just clearing the screen, for example, for ZSH add the -#:: following to ~/.zshrc: - -#:: .. code-block:: zsh - -#:: scroll-and-clear-screen() { -#:: printf '\n%.0s' {1..$LINES} -#:: zle clear-screen -#:: } -#:: zle -N scroll-and-clear-screen -#:: bindkey '^l' scroll-and-clear-screen - -#: Clear up to cursor line - -# map cmd+k clear_terminal to_cursor active - -#: Reload kitty.conf - -# map kitty_mod+f5 load_config_file -# map ctrl+cmd+, load_config_file - -#:: Reload kitty.conf, applying any changes since the last time it -#:: was loaded. Note that a handful of options cannot be dynamically -#:: changed and require a full restart of kitty. Particularly, when -#:: changing shortcuts for actions located on the macOS global menu -#:: bar, a full restart is needed. You can also map a keybinding to -#:: load a different config file, for example:: - -#:: map f5 load_config /path/to/alternative/kitty.conf - -#:: Note that all options from the original kitty.conf are discarded, -#:: in other words the new configuration *replace* the old ones. - -#: Debug kitty configuration - -# map kitty_mod+f6 debug_config -# map opt+cmd+, debug_config - -#:: Show details about exactly what configuration kitty is running -#:: with and its host environment. Useful for debugging issues. - -#: Send arbitrary text on key presses - -#:: E.g. map ctrl+shift+alt+h send_text all Hello World - -#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#:: client program when pressing specified shortcut keys. For -#:: example:: - -#:: map ctrl+alt+a send_text all Special text - -#:: This will send "Special text" when you press the Ctrl+Alt+A key -#:: combination. The text to be sent is a python string literal so -#:: you can use escapes like \x1b to send control codes or \u21fb to -#:: send Unicode characters (or you can just input the Unicode -#:: characters directly as UTF-8 text). You can use `kitty +kitten -#:: show_key` to get the key escape codes you want to emulate. - -#:: The first argument to send_text is the keyboard modes in which to -#:: activate the shortcut. The possible values are normal, -#:: application, kitty or a comma separated combination of them. The -#:: modes normal and application refer to the DECCKM cursor key mode -#:: for terminals, and kitty refers to the kitty extended keyboard -#:: protocol. The special value all means all of them. - -#:: Some more examples:: - -#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) -#:: map ctrl+alt+a send_text normal Word\x1b[H -#:: map ctrl+alt+a send_text application Word\x1bOH -#:: # Run a command at a shell prompt (like typing the command and pressing Enter) -#:: map ctrl+alt+a send_text normal,application some command with arguments\r - -#: Open kitty Website - -# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ - -#: }}} - -#: }}} diff --git a/.config/kitty/palenight.conf b/.config/kitty/palenight.conf deleted file mode 100644 index 6a58ece..0000000 --- a/.config/kitty/palenight.conf +++ /dev/null @@ -1,40 +0,0 @@ -# Palenight Colorscheme for Kitty -# Based on https://github.com/sindresorhus/hyper-snazzy - -foreground #959dcb -background #292d3e -selection_foreground #eceef0 -selection_background #607c8b -url_color #82aaff - -# black -color0 #434759 -color8 #434758 - -# red -color1 #f07178 -color9 #ff8b92 - -# green -color2 #c3e88d -color10 #ddffa7 - -# yellow -color3 #ffcb6b -color11 #ffe585 - -# blue -color4 #82aaff -color12 #9cc4ff - -# magenta -color5 #c792ea -color13 #e1acff - -# cyan -color6 #89ddff -color14 #a3f7ff - -# white -color7 #d0d0d0 -color15 #fefefe diff --git a/.config/oh-my-posh/cobalt2.omp.json b/.config/oh-my-posh/cobalt2.omp.json deleted file mode 100644 index d88a402..0000000 --- a/.config/oh-my-posh/cobalt2.omp.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", - "blocks": [ - { - "alignment": "left", - "segments": [ - { - "background": "#1478DB", - "foreground": "#000000", - "leading_diamond": "\ue0b6", - "trailing_diamond": "\uE0B0", - "properties": { - "style": "full" - }, - "style": "diamond", - "template": "{{ .Username}} ", - "type": "text" - }, - { - "background": "#1478DB", - "foreground": "#000000", - "leading_diamond": "\ue0b6", - "trailing_diamond": "\uE0B0", - "properties": { - "style": "full" - }, - "style": "diamond", - "template": "{{ .Path}} ", - "type": "path" - }, - { - "background": "#3AD900", - "background_templates": [ - "{{ if or (.Working.Changed) (.Staging.Changed) }}#FFC600{{ end }}", - "{{ if and (gt .Ahead 0) (gt .Behind 0) }}#FFCC80{{ end }}", - "{{ if gt .Ahead 0 }}#B388FF{{ end }}", - "{{ if gt .Behind 0 }}#B388FF{{ end }}" - ], - "foreground": "#000000", - "leading_diamond": "\uE0B0", - "trailing_diamond": "\ue0b4", - "properties": { - "fetch_stash_count": true, - "fetch_status": true - }, - "style": "diamond", - "template": " {{ .HEAD }}{{ if .Staging.Changed }}<#FF6F00> \uf046 {{ .Staging.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if gt .StashCount 0 }} \uf692 {{ .StashCount }}{{ end }} ", - "type": "git" - } - ], - "type": "prompt" - } - ], - "final_space": true, - "version": 2 -} diff --git a/.config/omf/bundle b/.config/omf/bundle deleted file mode 100644 index 54c0745..0000000 --- a/.config/omf/bundle +++ /dev/null @@ -1 +0,0 @@ -theme default diff --git a/.config/omf/channel b/.config/omf/channel deleted file mode 100644 index 2bf5ad0..0000000 --- a/.config/omf/channel +++ /dev/null @@ -1 +0,0 @@ -stable diff --git a/.config/omf/theme b/.config/omf/theme deleted file mode 100644 index 4ad96d5..0000000 --- a/.config/omf/theme +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/.config/zed/settings.json b/.config/zed/settings.json deleted file mode 100644 index 4c90b8a..0000000 --- a/.config/zed/settings.json +++ /dev/null @@ -1,11 +0,0 @@ -// Zed settings -// -// For information on how to configure Zed, see the Zed -// documentation: https://zed.dev/docs/configuring-zed -// -// To see all of Zed's default settings without changing your -// custom settings, run the `open default settings` command -// from the command palette or from `Zed` application menu. -{ - "buffer_font_size": 15 -} From 014c2c2e7a2b51a5825bfad0c25d54873fd35608 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Sun, 19 Feb 2023 16:31:21 -0500 Subject: [PATCH 06/34] Removed a bunch more stuff. --- .t | 0 .tmux.conf.backup | 87 ---- AppSupport/SavedState/lock | 0 AppSupport/SavedState/restorable-state.sqlite | Bin 12288 -> 0 bytes .../SavedState/restorable-state.sqlite-shm | Bin 32768 -> 0 bytes .../SavedState/restorable-state.sqlite-wal | 0 AppSupport/iTermServer-3.4.19 | Bin 217648 -> 0 bytes AppSupport/iterm2-daemon-1.socket.lock | 0 ...29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b | Bin 25137 -> 0 bytes ...4ce431b271836326eb46c838f411fa45be6bb493dc | Bin 16905 -> 0 bytes AppSupport/version.txt | 1 - config/AppSupport | 1 - fish/config.fish | 59 --- fish/fish_variables | 33 -- fish/functions/alacritty | 3 - fish/functions/brewClang.fish | 6 - fish/functions/cp.fish | 4 - fish/functions/duall.fish | 4 - fish/functions/edit_cmd.fish | 9 - fish/functions/eutil.fish | 6 - fish/functions/filterSections.fish | 6 - fish/functions/find.fish | 4 - fish/functions/fish_greeting.fish | 3 - fish/functions/fish_prompt.fish | 28 -- fish/functions/fish_ssh_agent.fish | 32 -- fish/functions/fish_user_key_bindings.fish | 4 - fish/functions/fisher.fish | 435 ------------------ fish/functions/git-root.fish | 3 - fish/functions/git_pull.fish | 10 - fish/functions/la.fish | 4 - fish/functions/mount_carbonate.fish | 5 - fish/functions/new-jupyter-kernel.fish | 5 - fish/functions/pnglatex.fish | 4 - fish/functions/pytest.fish | 4 - fish/functions/rsync_smart.fish | 5 - fish/functions/spoof.fish | 6 - fish/functions/tl.fish | 4 - fish/functions/unspoof.fish | 6 - fish/functions/vi.fish | 4 - fish/functions/vimdiff.fish | 3 - thefuck/settings.py | 26 -- 41 files changed, 814 deletions(-) delete mode 100644 .t delete mode 100755 .tmux.conf.backup delete mode 100644 AppSupport/SavedState/lock delete mode 100644 AppSupport/SavedState/restorable-state.sqlite delete mode 100644 AppSupport/SavedState/restorable-state.sqlite-shm delete mode 100644 AppSupport/SavedState/restorable-state.sqlite-wal delete mode 100755 AppSupport/iTermServer-3.4.19 delete mode 100644 AppSupport/iterm2-daemon-1.socket.lock delete mode 100644 AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b delete mode 100644 AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc delete mode 100644 AppSupport/version.txt delete mode 120000 config/AppSupport delete mode 100755 fish/config.fish delete mode 100644 fish/fish_variables delete mode 100644 fish/functions/alacritty delete mode 100755 fish/functions/brewClang.fish delete mode 100755 fish/functions/cp.fish delete mode 100644 fish/functions/duall.fish delete mode 100755 fish/functions/edit_cmd.fish delete mode 100755 fish/functions/eutil.fish delete mode 100755 fish/functions/filterSections.fish delete mode 100755 fish/functions/find.fish delete mode 100755 fish/functions/fish_greeting.fish delete mode 100755 fish/functions/fish_prompt.fish delete mode 100755 fish/functions/fish_ssh_agent.fish delete mode 100755 fish/functions/fish_user_key_bindings.fish delete mode 100755 fish/functions/fisher.fish delete mode 100755 fish/functions/git-root.fish delete mode 100755 fish/functions/git_pull.fish delete mode 100755 fish/functions/la.fish delete mode 100755 fish/functions/mount_carbonate.fish delete mode 100755 fish/functions/new-jupyter-kernel.fish delete mode 100644 fish/functions/pnglatex.fish delete mode 100755 fish/functions/pytest.fish delete mode 100755 fish/functions/rsync_smart.fish delete mode 100644 fish/functions/spoof.fish delete mode 100755 fish/functions/tl.fish delete mode 100644 fish/functions/unspoof.fish delete mode 100755 fish/functions/vi.fish delete mode 100755 fish/functions/vimdiff.fish delete mode 100644 thefuck/settings.py diff --git a/.t b/.t deleted file mode 100644 index e69de29..0000000 diff --git a/.tmux.conf.backup b/.tmux.conf.backup deleted file mode 100755 index 1044e78..0000000 --- a/.tmux.conf.backup +++ /dev/null @@ -1,87 +0,0 @@ -# change prefix fromm 'C-b' to 'C-a' -unbind C-b -set-option -g prefix C-a -bind-key a send-prefix - -set-option default-terminal "tmux-256color" -# set-option -a terminal-overrides ",*256color*:Tc" -set-option -g default-shell /usr/local/bin/fish -unbind t -bind t new-window -unbind n -bind C-] next-window -bind C-[ previous-window - -# split panes using | and - -unbind '"' -unbind % -bind | split-window -h -bind _ split-window -v - -set -sg escape-time 0 - -# Start window numbering at 1 -set-option -g base-index 1 -set-window-option -g pane-base-index 1 - -# # Mouse works as expected -# set -g mode-mouse on -# set -g mouse-select-pane on -# set -g mouse-resize-pane on -# set -g mouse-select-window on - -# move around panes with hjkl, as one would in vim after pressing ctrl-w -bind -r M-h select-pane -L -bind -r M-j select-pane -D -bind -r M-k select-pane -U -bind -r M-l select-pane -R - -# resize panes like vim -# feel free to change the "1" to however many lines you want to resize by, only -# one at a time can be slow -bind < resize-pane -L 10 -bind > resize-pane -R 10 -bind - resize-pane -D 10 -bind + resize-pane -U 10 - - -# vim paste -unbind p -bind p paste-buffer -set-window-option -g mode-keys vi - -# # clear buffer with C-k -# bind C-k send-keys -R \; clear-history - -set -g @continuum-boot-options 'iterm' -set -g @continuum-boot 'on' -# set -g @resurrect-strategy-nvim 'session' -set -g @continuum-restore 'on' -set -g @continuum-save-interval '10' -# List of plugins -set -g @plugin 'tmux-plugins/tpm' -set -g @plugin 'tmux-plugins/tmux-sensible' -# set -g @plugin 'tmux-plugins/tmux-resurrect' -# set -g @plugin 'tmux-plugins/tmux-continuum' -set -g @plugin 'tonylambiris/palenight-tmux' - -# Other examples: -# set -g @plugin 'github_username/plugin_name' -# set -g @plugin 'git@github.com/user/plugin' -# set -g @plugin 'git@bitbucket.com/user/plugin' - -# set -g @resurrect-save 'S' -# set -g @resurrect-restore 'R' -bind C-r source-file ~/.config/tmux/session1 - - # for vim - # set -g @resurrect-strategy-vim 'session' - # for neovim - # set -g @resurrect-strategy-nvim 'session' - -source ~/.tmux.conf.d/nested-tmux/active-row.conf - -set -g focus-events on - -# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) -run -b '~/.tmux/plugins/tpm/tpm' diff --git a/AppSupport/SavedState/lock b/AppSupport/SavedState/lock deleted file mode 100644 index e69de29..0000000 diff --git a/AppSupport/SavedState/restorable-state.sqlite b/AppSupport/SavedState/restorable-state.sqlite deleted file mode 100644 index b0df3c2918caea1cd6477ee88b3a4e875063ccdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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
TM)-R0-@ebh+h)puOWU%jK7Mw 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 diff --git a/AppSupport/iterm2-daemon-1.socket.lock b/AppSupport/iterm2-daemon-1.socket.lock deleted file mode 100644 index e69de29..0000000 diff --git a/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b b/AppSupport/parsers/0939a9c862d4243b9315ec29d0cbf4efbec9c7ccbcd0c82d56477d9ef3e9670b deleted file mode 100644 index cbd613642d94b617a6020f956df0797586af7ddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25137 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 diff --git a/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc b/AppSupport/parsers/e991cf04e5332b9b56291f4ce431b271836326eb46c838f411fa45be6bb493dc deleted file mode 100644 index 6ae1449e55eb46f0fffa5f978c9aef42721afb32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16905 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 VSCUBlkYx66zIyiWod5GR`hVY$FRB0l diff --git a/AppSupport/version.txt b/AppSupport/version.txt deleted file mode 100644 index 1c4bd07..0000000 --- a/AppSupport/version.txt +++ /dev/null @@ -1 +0,0 @@ -3.4.19 \ No newline at end of file diff --git a/config/AppSupport b/config/AppSupport deleted file mode 120000 index 8ff00b2..0000000 --- a/config/AppSupport +++ /dev/null @@ -1 +0,0 @@ -/Users/njuers/Library/Application Support/iTerm2 \ No newline at end of file diff --git a/fish/config.fish b/fish/config.fish deleted file mode 100755 index 35368d1..0000000 --- a/fish/config.fish +++ /dev/null @@ -1,59 +0,0 @@ -# set normal (set_color normal) -# set magenta (set_color magenta) -# set yellow (set_color yellow) -# set green (set_color green) -# set red (set_color red) -# set gray (set_color -o black) -# set -Ux VISUAL nvim -# set -Ux EDITOR $VISUAL -# source (dirname (status -f))/init.fish - -# if tmux is executable and not inside a tmux session, then try to attach. -# if attachment fails, start a new session - -if status is-interactive -and not set -q TMUX - exec tmux -end - - # Fish git prompt -set -x __fish_git_prompt_showdirtystate 'yes' -set -x __fish_git_prompt_showstashstate 'yes' -set -x __fish_git_prompt_showuntrackedfiles 'yes' -set -x __fish_git_prompt_showupstream 'yes' -set -x __fish_git_prompt_color_branch yellow -set -x __fish_git_prompt_color_upstream_ahead green -set -x __fish_git_prompt_color_upstream_behind red - - -# for pyenv-virtualenvwrapper -set -x WORKON_HOME ~/.ve -set -x PROJECT_HOME ~/Workspace - -# Proper terminal behavior with unicode -set -x LC_ALL en_US.UTF-8 -set -x LANG en_US.UTF-8 -set -x fish_emoji_width 2 - -bind -M default v edit_cmd - -# for nvim - -# Use ipdb for debugging -# set -x PYTHONBREAKPOINT ipdb.set_trace - -set -x PYTHONPATH $HOME/.pyenv/versions/dev/lib/python3.7/site-packages -set -x PYTHONPATH $HOME/.pyenv/versions/utils/lib/python3.7/site-packages $PYTHONPATH -set -x PATH /opt/local/bin /opt/local/sbin $PATH -set -x MANPATH /opt/local/share/man (manpath) -set -x PATH $HOME/bin $PATH -set -x PATH $HOME/bin/edirect $PATH -set -x PATH $HOME/.cargo/bin $PATH -set -x PATH $HOME/.gitaliases $PATH -set -x PATH $HOME/edirect $PATH -set -x PATH $HOME/.pyenv/bin $PATH -status --is-interactive; and pyenv init - | source -status --is-interactive; and pyenv virtualenv-init - | source -# set -x PYTHONSTARTUP (python -m jedi repl) - -fish_ssh_agent diff --git a/fish/fish_variables b/fish/fish_variables deleted file mode 100644 index 7ec5b15..0000000 --- a/fish/fish_variables +++ /dev/null @@ -1,33 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR --export EDITOR:nvim -SETUVAR --export VISUAL:nvim -SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:555\x1ebrblack -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:blue -SETUVAR fish_color_comment:red -SETUVAR fish_color_cwd:green -SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:green -SETUVAR fish_color_error:brred -SETUVAR fish_color_escape:brcyan -SETUVAR fish_color_history_current:\x2d\x2dbold -SETUVAR fish_color_host:normal -SETUVAR fish_color_host_remote:yellow -SETUVAR fish_color_normal:normal -SETUVAR fish_color_operator:brcyan -SETUVAR fish_color_param:cyan -SETUVAR fish_color_quote:yellow -SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold -SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d111 -SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack -SETUVAR fish_color_status:red -SETUVAR fish_color_user:brgreen -SETUVAR fish_color_valid_path:\x2d\x2dunderline -SETUVAR fish_key_bindings:fish_vi_key_bindings -SETUVAR fish_pager_color_completion:normal -SETUVAR fish_pager_color_description:B3A06D\x1eyellow\x1e\x2di -SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dbold\x1e\x2d\x2dunderline -SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr diff --git a/fish/functions/alacritty b/fish/functions/alacritty deleted file mode 100644 index 558059e..0000000 --- a/fish/functions/alacritty +++ /dev/null @@ -1,3 +0,0 @@ -function alacritty - command env WINIT_HIDPI_FACTOR=1.0 alacritty -end diff --git a/fish/functions/brewClang.fish b/fish/functions/brewClang.fish deleted file mode 100755 index 18d4880..0000000 --- a/fish/functions/brewClang.fish +++ /dev/null @@ -1,6 +0,0 @@ -# used to favor Homebrew's Clang (and LLVM) over the stock Apple one. -function brewClang - set -x PATH /usr/local/opt/llvm/bin $PATH - set -x LDFLAGS "-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" - # set -x LDFLAGS "-L/Library/Frameworks/R.framework/Resources/lib" -end diff --git a/fish/functions/cp.fish b/fish/functions/cp.fish deleted file mode 100755 index 8d075f6..0000000 --- a/fish/functions/cp.fish +++ /dev/null @@ -1,4 +0,0 @@ -function cp - command cp -rv $argv -end - diff --git a/fish/functions/duall.fish b/fish/functions/duall.fish deleted file mode 100644 index f55c6ae..0000000 --- a/fish/functions/duall.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function duall --wraps='du .hs .[^.]* *' --wraps='bash -c du .hs .[^.]* *' --wraps='bash -c du -hs .[^.]* *' --wraps=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' --description alias\ duall=bash\ -c\ \'du\ -hs\ .\[\^.\]\*\ \*\' - bash -c 'du -hs .[^.]* *' $argv; -end diff --git a/fish/functions/edit_cmd.fish b/fish/functions/edit_cmd.fish deleted file mode 100755 index 7df2c3e..0000000 --- a/fish/functions/edit_cmd.fish +++ /dev/null @@ -1,9 +0,0 @@ -function edit_cmd --description 'Edit cmdline in editor' - set -l f (mktemp) - set -l p (commandline -C) - commandline -b > $f - vim -c set\ ft=fish $f - commandline -r (more $f) - commandline -C $p - rm $f -end diff --git a/fish/functions/eutil.fish b/fish/functions/eutil.fish deleted file mode 100755 index 2e24a9a..0000000 --- a/fish/functions/eutil.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Search and retrieve records from Entrez. -# Instruction at https://www.ncbi.nlm.nih.gov/books/NBK25500/ -function eutil - "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/$argv[1]" -end - diff --git a/fish/functions/filterSections.fish b/fish/functions/filterSections.fish deleted file mode 100755 index ae9fe97..0000000 --- a/fish/functions/filterSections.fish +++ /dev/null @@ -1,6 +0,0 @@ -# filters sections from master class spreadsheet -# usage: filterSections roster.txt master.csv >out.csv -function filterSections - awk 'BEGIN {FPAT = "([^,]+)|(\"[^\"]+\")"} \ - FNR == NR { seen[$1]; next } FNR <= 2 || $3 in seen' "$argv[1]" "$argv[2]" -end diff --git a/fish/functions/find.fish b/fish/functions/find.fish deleted file mode 100755 index 32a7b94..0000000 --- a/fish/functions/find.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias for find to exclude .git dir -function find - command find $argv[1] -path $argv[1]'*/.git' -prune -o $argv[2..-1] -end diff --git a/fish/functions/fish_greeting.fish b/fish/functions/fish_greeting.fish deleted file mode 100755 index 81a7468..0000000 --- a/fish/functions/fish_greeting.fish +++ /dev/null @@ -1,3 +0,0 @@ -function fish_greeting - echo "Hello!" -end diff --git a/fish/functions/fish_prompt.fish b/fish/functions/fish_prompt.fish deleted file mode 100755 index 46fc094..0000000 --- a/fish/functions/fish_prompt.fish +++ /dev/null @@ -1,28 +0,0 @@ -function fish_prompt --description 'Write out the prompt' - set -l color_cwd - set -l suffix - - switch "$USER" - case root toor - if set -q fish_color_cwd_root - set color_cwd $fish_color_cwd_root - else - set color_cwd $fish_color_cwd - end - set suffix '#' - case '*' - set color_cwd $fish_color_cwd - set suffix '🐈 ' - end - - # echo -n -s (__fish_git_prompt '%s') '|' (set_color $color_cwd) (prompt_pwd) (set_color normal) "$suffix" - - set last_status $status - - printf '%s@%s ' (whoami) (prompt_hostname) - printf '%s ' (__fish_git_prompt) - set_color $color_cwd - printf '%s' (prompt_pwd) - set_color normal - echo -n $suffix -end diff --git a/fish/functions/fish_ssh_agent.fish b/fish/functions/fish_ssh_agent.fish deleted file mode 100755 index 5960b75..0000000 --- a/fish/functions/fish_ssh_agent.fish +++ /dev/null @@ -1,32 +0,0 @@ -function __ssh_agent_is_started -d "check if ssh agent is already started" - if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end - source $SSH_ENV > /dev/null - end - - if test -z "$SSH_AGENT_PID" - return 1 - end - - ps -ef | grep $SSH_AGENT_PID | grep -v grep | grep -q ssh-agent - #pgrep ssh-agent - return $status -end - - -function __ssh_agent_start -d "start a new ssh agent" - ssh-agent -c | sed 's/^echo/#echo/' > $SSH_ENV - chmod 600 $SSH_ENV - source $SSH_ENV > /dev/null - true # suppress errors from setenv, i.e. set -gx -end - - -function fish_ssh_agent --description "Start ssh-agent if not started yet, or uses already started ssh-agent." - if test -z "$SSH_ENV" - set -xg SSH_ENV $HOME/.ssh/environment - end - - if not __ssh_agent_is_started - __ssh_agent_start - end -end diff --git a/fish/functions/fish_user_key_bindings.fish b/fish/functions/fish_user_key_bindings.fish deleted file mode 100755 index 3098071..0000000 --- a/fish/functions/fish_user_key_bindings.fish +++ /dev/null @@ -1,4 +0,0 @@ -function fish_user_key_bindings - fish_vi_key_bindings - bind \cF -M insert accept-autosuggestion -end diff --git a/fish/functions/fisher.fish b/fish/functions/fisher.fish deleted file mode 100755 index 1d63c33..0000000 --- a/fish/functions/fisher.fish +++ /dev/null @@ -1,435 +0,0 @@ -set -g fisher_version 3.2.10 - -function fisher -a cmd -d "fish package manager" - set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache - set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config - - set -g fish_config $XDG_CONFIG_HOME/fish - set -g fisher_cache $XDG_CACHE_HOME/fisher - set -g fisher_config $XDG_CONFIG_HOME/fisher - - set -q fisher_path; or set -g fisher_path $fish_config - set -g fishfile $fish_config/fishfile - - for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache - if test ! -d $path - command mkdir -p $path - end - end - - if test ! -e $fisher_path/completions/fisher.fish - echo "fisher complete" >$fisher_path/completions/fisher.fish - _fisher_complete - end - - if test -e $fisher_path/conf.d/fisher.fish - switch "$version" - case \*-\* - command rm -f $fisher_path/conf.d/fisher.fish - case 2\* - case \* - command rm -f $fisher_path/conf.d/fisher.fish - end - else - switch "$version" - case \*-\* - case 2\* - echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish - end - end - - # 2019-10-22: temp code, migrates fishfile from old path back to $fish_config - if test -e "$fisher_path/fishfile"; and test ! -e "$fishfile" - command mv -f "$fisher_path/fishfile" "$fishfile" - end - - switch "$cmd" - case {,self-}complete - _fisher_complete - case copy-user-key-bindings - _fisher_copy_user_key_bindings - case ls - set -e argv[1] - if test -s "$fishfile" - set -l file (_fisher_fmt <$fishfile | _fisher_parse -R | command sed "s|@.*||") - _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " - BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ - " | command sed "s|^$HOME|~|" - end - case self-update - _fisher_self_update (status -f) - case self-uninstall - _fisher_self_uninstall - case {,-}-v{ersion,} - echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") - case {,-}-h{elp,} - _fisher_help - case "" - _fisher_commit -- - case add rm - if not isatty - while read -l arg - set argv $argv $arg - end - end - - if test (count $argv) = 1 - echo "fisher: invalid number of arguments" >&2 - _fisher_help >&2 - return 1 - end - - _fisher_commit $argv - case \* - echo "fisher: unknown flag or command \"$cmd\"" >&2 - _fisher_help >&2 - return 1 - end -end - -function _fisher_complete - complete -ec fisher - complete -xc fisher -n __fish_use_subcommand -a add -d "Add packages" - complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove packages" - complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed packages matching REGEX" - complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" - complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" - complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" - for pkg in (fisher ls) - complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg - end -end - -function _fisher_copy_user_key_bindings - if functions -q fish_user_key_bindings - functions -c fish_user_key_bindings fish_user_key_bindings_copy - end - function fish_user_key_bindings - for file in $fisher_path/conf.d/*_key_bindings.fish - source $file >/dev/null 2>/dev/null - end - if functions -q fish_user_key_bindings_copy - fish_user_key_bindings_copy - end - end -end - -function _fisher_ls - for pkg in $fisher_config/*/*/* - command readlink $pkg; or echo $pkg - end -end - -function _fisher_fmt - command sed "s|^[[:space:]]*||;s|^$fisher_config/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" -end - -function _fisher_help - echo "usage: fisher add Add packages" - echo " fisher rm Remove packages" - echo " fisher Update all packages" - echo " fisher ls [] List installed packages matching " - echo " fisher --help Show this help" - echo " fisher --version Show the current version" - echo " fisher self-update Update to the latest version" - echo " fisher self-uninstall Uninstall from your system" - echo "examples:" - echo " fisher add jethrokuan/z rafaelrinaldi/pure" - echo " fisher add gitlab.com/foo/bar@v2" - echo " fisher add ~/path/to/local/pkg" - echo " fisher add &2 - command curl -s "$url?nocache" >$file. - - set -l next_version (command awk '{ print $4 } { exit }' <$file.) - switch "$next_version" - case "" $fisher_version - command rm -f $file. - if test -z "$next_version" - echo "fisher: cannot update fisher -- are you offline?" >&2 - return 1 - end - echo "fisher is already up-to-date" >&2 - case \* - echo "linking $file" | command sed "s|$HOME|~|" >&2 - command mv -f $file. $file - source $file - echo "updated to fisher $fisher_version -- hooray!" >&2 - _fisher_complete - end -end - -function _fisher_self_uninstall - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - - for file in $fisher_cache $fisher_config $fisher_path/{functions,completions,conf.d}/fisher.fish $fishfile - echo "removing $file" - command rm -Rf $file 2>/dev/null - end | command sed "s|$HOME|~|" >&2 - - for name in (set -n | command awk '/^fisher_/') - set -e "$name" - end - - functions -e (functions -a | command awk '/^_fisher/') fisher - complete -c fisher --erase -end - -function _fisher_commit -a cmd - set -e argv[1] - set -l elapsed (_fisher_now) - - if test ! -e "$fishfile" - command touch $fishfile - echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 - end - - set -l old_pkgs (_fisher_ls | _fisher_fmt) - for pkg in (_fisher_ls) - _fisher_rm $pkg - end - command rm -Rf $fisher_config - command mkdir -p $fisher_config - - set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) - set -l actual_pkgs (_fisher_fetch $next_pkgs) - set -l updated_pkgs - for pkg in $old_pkgs - if contains -- $pkg $actual_pkgs - set updated_pkgs $updated_pkgs $pkg - end - end - - if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" - echo "fisher: nothing to commit -- try adding some packages" >&2 - return 1 - end - - set -l out_pkgs - if test "$cmd" = "rm" - set out_pkgs $next_pkgs - else - for pkg in $next_pkgs - if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs - set out_pkgs $out_pkgs $pkg - end - end - end - - printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile - - _fisher_complete - - command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' - BEGIN { - res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) - printf((res ? res : "done") " in %.2fs\n", E / 1000) - } - function fmt(action, n, s) { - return n ? (s ? s ", " : s) action " " n " package" (n > 1 ? "s" : "") : s - } - ' >&2 -end - -function _fisher_parse -a mode cmd - set -e argv[1..2] - command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' - BEGIN { - for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] - } - !NF { next } { k = getkey($1) } - MODE == "-R" && !(k in pkgs) && $0 = $1 - MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } - MODE == "-W" || CMD == "rm" { delete pkgs[k] } - END { - for (k in pkgs) { - if (CMD != "rm" || MODE == "-W") print pkgs[k] - else print "fisher: cannot remove \""k"\" -- package is not in fishfile" > "/dev/stderr" - } - } - function getkey(s, a) { - return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] - } - ' -end - -function _fisher_fetch - set -l pkg_jobs - set -l out_pkgs - set -l next_pkgs - set -l local_pkgs - set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token - - for pkg in $argv - switch $pkg - case \~\* /\* - set -l path (echo "$pkg" | command sed "s|^~|$HOME|") - if test -e "$path" - set local_pkgs $local_pkgs $path - else - echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 - end - continue - end - - command awk -v PKG="$pkg" -v FS=/ ' - BEGIN { - if (split(PKG, tmp, /@+|:/) > 2) { - if (tmp[4]) sub("@"tmp[4], "", PKG) - print PKG "\t" tmp[2]"/"tmp[1]"/"tmp[3] "\t" (tmp[4] ? tmp[4] : "master") - } else { - pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] - tag = tmp[2] ? tmp[2] : "master" - print (\ - pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ - pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ - pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg \ - ) "\t" pkg - } - } - ' | read -l url pkg branch - - if test ! -d "$fisher_config/$pkg" - fish -c " - echo fetching $url >&2 - command mkdir -p $fisher_config/$pkg $fisher_cache/(command dirname $pkg) - if test ! -z \"$branch\" - command git clone $url $fisher_config/$pkg --branch $branch --depth 1 2>/dev/null - or echo fisher: cannot clone \"$url\" -- is this a valid url\? >&2 - else if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_config/$pkg 2>/dev/null - command rm -Rf $fisher_cache/$pkg - command mv -f $fisher_config/$pkg/* $fisher_cache/$pkg - command rm -Rf $fisher_config/$pkg - command cp -Rf {$fisher_cache,$fisher_config}/$pkg - else if test -d \"$fisher_cache/$pkg\" - echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 - command cp -Rf $fisher_cache/$pkg $fisher_config/$pkg/.. - else - command rm -Rf $fisher_config/$pkg - echo fisher: cannot add \"$pkg\" -- is this a valid package\? >&2 - end - " >/dev/null & - set pkg_jobs $pkg_jobs (_fisher_jobs --last) - set next_pkgs $next_pkgs "$fisher_config/$pkg" - end - end - - if set -q pkg_jobs[1] - while for job in $pkg_jobs - contains -- $job (_fisher_jobs); and break - end - end - for pkg in $next_pkgs - if test -d "$pkg" - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg - end - end - end - - set -l local_prefix $fisher_config/local/$USER - if test ! -d "$local_prefix" - command mkdir -p $local_prefix - end - for pkg in $local_pkgs - set -l target $local_prefix/(command basename $pkg) - if test ! -L "$target" - command ln -sf $pkg $target - set out_pkgs $out_pkgs $pkg - _fisher_add $pkg --link - end - end - - if set -q out_pkgs[1] - _fisher_fetch ( - for pkg in $out_pkgs - if test -s "$pkg/fishfile" - _fisher_fmt <$pkg/fishfile | _fisher_parse -R - end - end) - printf "%s\n" $out_pkgs | _fisher_fmt - end -end - -function _fisher_add -a pkg opts - for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish - set -l target (command basename $src) - switch $src - case $pkg/conf.d\* - set target $fisher_path/conf.d/$target - case $pkg/completions\* - set target $fisher_path/completions/$target - case $pkg/{functions,}\* - switch $target - case uninstall.fish - continue - case {init,key_bindings}.fish - set target $fisher_path/conf.d/(command basename $pkg)\_$target - case \* - set target $fisher_path/functions/$target - end - end - echo "linking $target" | command sed "s|$HOME|~|" >&2 - if set -q opts[1] - command ln -sf $src $target - else - command cp -f $src $target - end - switch $target - case \*.fish - source $target >/dev/null 2>/dev/null - end - end -end - -function _fisher_rm -a pkg - for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish - set -l target (command basename $src) - set -l filename (command basename $target .fish) - switch $src - case $pkg/conf.d\* - test "$filename.fish" = "$target"; and emit "$filename"_uninstall - set target conf.d/$target - case $pkg/completions\* - test "$filename.fish" = "$target"; and complete -ec $filename - set target completions/$target - case $pkg/{,functions}\* - test "$filename.fish" = "$target"; and functions -e $filename - switch $target - case uninstall.fish - source $src - continue - case {init,key_bindings}.fish - set target conf.d/(command basename $pkg)\_$target - case \* - set target functions/$target - end - end - command rm -f $fisher_path/$target - end - if not functions -q fish_prompt - source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" - end -end - -function _fisher_jobs - jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' -end - -function _fisher_now -a elapsed - switch (command uname) - case Darwin \*BSD - command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed - case \* - math (command date "+%s%3N") - "0$elapsed" - end -end diff --git a/fish/functions/git-root.fish b/fish/functions/git-root.fish deleted file mode 100755 index bd2729b..0000000 --- a/fish/functions/git-root.fish +++ /dev/null @@ -1,3 +0,0 @@ -function git-root - cd (git rev-parse --show-toplevel) -end diff --git a/fish/functions/git_pull.fish b/fish/functions/git_pull.fish deleted file mode 100755 index b4b14ae..0000000 --- a/fish/functions/git_pull.fish +++ /dev/null @@ -1,10 +0,0 @@ -# combines git pull with git reset --soft in the event of garbage commits -# usage: git pull -function git_pull - git pull - if grep -q 'garbage_commit' (git log -1 --pretty=format:%B | psub) - echo "Garbage commit detected. Doing soft reset" - git show - git reset --soft HEAD^ - end -end diff --git a/fish/functions/la.fish b/fish/functions/la.fish deleted file mode 100755 index 1a315d3..0000000 --- a/fish/functions/la.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function la --description 'alias la=ls -lAh' - ls -lAh $argv; -end diff --git a/fish/functions/mount_carbonate.fish b/fish/functions/mount_carbonate.fish deleted file mode 100755 index b804e99..0000000 --- a/fish/functions/mount_carbonate.fish +++ /dev/null @@ -1,5 +0,0 @@ -function mount_carbonate - sshfs \ - -o IdentityFile=~/.ssh/id_rsa_laptop,auto_cache,reconnect,defer_permissions,Compression=no \ - mpjuers@carbonate:/ /Volumes/Carbonate/ -end diff --git a/fish/functions/new-jupyter-kernel.fish b/fish/functions/new-jupyter-kernel.fish deleted file mode 100755 index a446af8..0000000 --- a/fish/functions/new-jupyter-kernel.fish +++ /dev/null @@ -1,5 +0,0 @@ -function new-jupyter-kernel - pip install ipykernel - ipython kernel install --user --name=$argv[1] -end - diff --git a/fish/functions/pnglatex.fish b/fish/functions/pnglatex.fish deleted file mode 100644 index 048aa3e..0000000 --- a/fish/functions/pnglatex.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function pnglatex --wraps=pnglatex\ -p\ \'amsmath:amsthm\' --description alias\ pnglatex=pnglatex\ -p\ \'amsmath:amsthm\' - command pnglatex -p 'amsmath:amsthm' $argv; -end diff --git a/fish/functions/pytest.fish b/fish/functions/pytest.fish deleted file mode 100755 index 6cdd958..0000000 --- a/fish/functions/pytest.fish +++ /dev/null @@ -1,4 +0,0 @@ -# alias to call pytest with present directory in sys.path -function pytest - python -m pytest -end diff --git a/fish/functions/rsync_smart.fish b/fish/functions/rsync_smart.fish deleted file mode 100755 index aa5cbe2..0000000 --- a/fish/functions/rsync_smart.fish +++ /dev/null @@ -1,5 +0,0 @@ -# rsync only syncs changed files -# usage: rsync_smart in/ out -function rsync_smart - rsync -avu argv[1] argv[2] -end diff --git a/fish/functions/spoof.fish b/fish/functions/spoof.fish deleted file mode 100644 index 95b6c6b..0000000 --- a/fish/functions/spoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function spoof --wraps='sudo ifconfig en0 ether 5e:e1:96:43:4c:66' --description alias\ spoof=sudo\ ifconfig\ en0\ ether\ 5e:e1:96:43:4c:66\n - set mac 5e:e1:96:43:4c:66 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/fish/functions/tl.fish b/fish/functions/tl.fish deleted file mode 100755 index d9a08c8..0000000 --- a/fish/functions/tl.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function tl --description 'alias tl=task list' - task list $argv; -end diff --git a/fish/functions/unspoof.fish b/fish/functions/unspoof.fish deleted file mode 100644 index 531f5c9..0000000 --- a/fish/functions/unspoof.fish +++ /dev/null @@ -1,6 +0,0 @@ -# Defined in - @ line 1 -function unspoof --wraps='sudo ifconfig en0 ether 3c:22:fb:73:2c:93' --wraps='ifconfig en0 | grep ether 3c:22:fb:73:2c:93' --description 'alias unspoof=sudo ifconfig en0 ether 3c:22:fb:73:2c:93' - set mac 3c:22:fb:73:2c:93 - sudo spoof-mac set $mac en0 - echo "MAC address set to" $mac -end diff --git a/fish/functions/vi.fish b/fish/functions/vi.fish deleted file mode 100755 index 8714e1e..0000000 --- a/fish/functions/vi.fish +++ /dev/null @@ -1,4 +0,0 @@ -# Defined in - @ line 1 -function vi --description 'alias vi nvim' - nvim $argv; -end diff --git a/fish/functions/vimdiff.fish b/fish/functions/vimdiff.fish deleted file mode 100755 index 94c84b9..0000000 --- a/fish/functions/vimdiff.fish +++ /dev/null @@ -1,3 +0,0 @@ -function vimdiff - command nvim -d $argv -end diff --git a/thefuck/settings.py b/thefuck/settings.py deleted file mode 100644 index 8478f6d..0000000 --- a/thefuck/settings.py +++ /dev/null @@ -1,26 +0,0 @@ -# The Fuck settings file -# -# The rules are defined as in the example bellow: -# -# rules = ['cd_parent', 'git_push', 'python_command', 'sudo'] -# -# The default values are as follows. Uncomment and change to fit your needs. -# See https://github.com/nvbn/thefuck#settings for more information. -# - -# rules = [] -# exclude_rules = [] -# wait_command = 3 -# require_confirmation = True -# no_colors = False -# debug = False -# priority = {} -# history_limit = None -# alter_history = True -# wait_slow_command = 15 -# slow_commands = ['lein', 'react-native', 'gradle', './gradlew', 'vagrant'] -# repeat = False -# instant_mode = False -# num_close_matches = 3 -# env = {'LC_ALL': 'C', 'LANG': 'C', 'GIT_TRACE': '1'} -# excluded_search_path_prefixes = [] From a6075fb5af45d03bb4f4a3818e41a46684ec7221 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Sun, 19 Feb 2023 22:15:38 -0500 Subject: [PATCH 07/34] Add nested-tmux. --- .config/fish/config.fish | 3 + .tmux.conf.d/nested-tmux | 1 - .tmux.conf.d/nested-tmux/LICENSE | 21 +++++ .tmux.conf.d/nested-tmux/README.md | 54 +++++++++++++ .tmux.conf.d/nested-tmux/active-row.conf | 88 +++++++++++++++++++++ .tmux.conf.d/nested-tmux/demo.gif | Bin 0 -> 280311 bytes .tmux.conf.d/nested-tmux/inactive-row.conf | 14 ++++ .tmux.conf.d/nested-tmux/new-tmux | 7 ++ 8 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 .config/fish/config.fish delete mode 160000 .tmux.conf.d/nested-tmux create mode 100644 .tmux.conf.d/nested-tmux/LICENSE create mode 100644 .tmux.conf.d/nested-tmux/README.md create mode 100644 .tmux.conf.d/nested-tmux/active-row.conf create mode 100644 .tmux.conf.d/nested-tmux/demo.gif create mode 100644 .tmux.conf.d/nested-tmux/inactive-row.conf create mode 100755 .tmux.conf.d/nested-tmux/new-tmux diff --git a/.config/fish/config.fish b/.config/fish/config.fish new file mode 100644 index 0000000..d714361 --- /dev/null +++ b/.config/fish/config.fish @@ -0,0 +1,3 @@ +if status is-interactive + # Commands to run in interactive sessions can go here +end diff --git a/.tmux.conf.d/nested-tmux b/.tmux.conf.d/nested-tmux deleted file mode 160000 index ae3e17b..0000000 --- a/.tmux.conf.d/nested-tmux +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae3e17bb4440c4c711e4c9e2df1122f881e095b5 diff --git a/.tmux.conf.d/nested-tmux/LICENSE b/.tmux.conf.d/nested-tmux/LICENSE new file mode 100644 index 0000000..fed55f5 --- /dev/null +++ b/.tmux.conf.d/nested-tmux/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Alessandro Di Federico + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.tmux.conf.d/nested-tmux/README.md b/.tmux.conf.d/nested-tmux/README.md new file mode 100644 index 0000000..41d8b3b --- /dev/null +++ b/.tmux.conf.d/nested-tmux/README.md @@ -0,0 +1,54 @@ +# Nested tmux + +This is a simple tmux configuration enabling to have arbitrarily many nested tmux sessions. + +# Demo + +![Demo](/demo.gif?raw=true "Demo") + +# Quick start + +``` +mkdir ~/.tmux.conf.d/ +cd ~/.tmux.conf.d/ +git clone https://github.com/aleclearmind/nested-tmux.git +mv ~/.tmux.conf ~/.tmux.conf.backup +echo "source ~/.tmux.conf.d/nested-tmux/active-row.conf" > ~/.tmux.conf +tmux +``` + +# Shortcuts + +* `Ctrl + a, Ctrl + c` or `Ctrl + t`: create a new window +* `Ctrl + a, Ctrl + s`: create a new nested tmux session and ask a name for it +* `Ctrl + a, Ctrl + A`: switch to last window +* `Ctrl + a, A`: rename current window +* `Alt + Right`: move to the next window of the current row +* `Alt + Left`: move to the previous window of the current row +* `Alt + Up`: move to the inner tmux session +* `Alt + Down`: move to the outer tmux session + +# FAQ + +* **Q**: Why do we need this? + + **A**: When working with many projects it's useful to have a dedicated tmux session with three windows per-project: one with a text editor, one for git and one for the build directory. + This is why this project was born. + However, nested tmux sessions are addictive and quickly become in-terminal *workspaces* that can be used for any purpose. + +* **Q**: Does it support multiple nested layers of tmux sessions? + + **A**: Yes. + +* **Q**: Has it been tested with other configuration X? + + **A**: No. + +* **Q**: How is this implemented? + + **A**: The idea is two have two configurations, `active-row.conf` and `inactive-row.conf`. + The former is for the currently active row in the nested tmux tree, the second for the inactive rows. + Each session know who its parent is through the `TMUX_PARENT` environment variable (set in the `new-tmux` script). + When `Alt + Up` is pressed, the `Alt + F12` combination is sent to the active window. + If the active window is a nested tmux session, it will load `active-row.conf` and forces loading `inactive-row.conf` in its parent (i.e., the row that originally received the `Alt + Up` key combination. + When `Alt + Down` is pressed, the current row loads `inactive-row.conf` and forces loading `active-row.conf` in its parent. diff --git a/.tmux.conf.d/nested-tmux/active-row.conf b/.tmux.conf.d/nested-tmux/active-row.conf new file mode 100644 index 0000000..674f3fe --- /dev/null +++ b/.tmux.conf.d/nested-tmux/active-row.conf @@ -0,0 +1,88 @@ +# +# Colors +# +active_window_bg="#c792ea" +inactive_window_bg="#292d3e" +bar_bg=colour237 +bar_fg=colour255 + +# +# General settings +# +set -g default-terminal tmux-256color +set -g status-right '' +set -g status-left '' +set -g history-limit 100000 + +# +# Configure prefix +# +unbind C-b +set -g prefix C-a + +# +# Prefixed commands +# + +# Create a new window (Ctrl + A, Ctrl + c) +bind C-c new-window + +# Create a new nested tmux (Ctrl + A, Ctrl + m) +bind C-m new-window ~/.tmux.conf.d/nested-tmux/new-tmux \; \ + rename-window '' \; \ + command-prompt -I "#W" "rename-window -- '%%'" + +# Switch to last window (Ctrl + A, Ctrl + A) +bind C-a last-window + +# Rename current window (Ctrl + A, A) +bind A rename-window '' \; \ + command-prompt -I "#W" "rename-window -- '%%'" + +# Enable search mode +bind -T copy-mode -n / command-prompt -i -I "#{pane_search_string}" -p "(search down)" "send -X search-forward-incremental \"%%%\"" + +# +# Non-prefixed commands +# + +# Go to next window (Alt + Right) +bind -n M-right next + +# Go to previous window (Alt + Left) +bind -n M-left prev + +# # Create new window (Ctrl + t) +# bind -n C-t new-window + +# Switch to inner tmux (Alt + Up) +bind -n M-up send-keys M-F12 + +# Switch to outer tmux (Alt + Down) +bind -n M-down source-file ~/.tmux.conf.d/nested-tmux/inactive-row.conf \; \ + run-shell 'tmux -L $TMUX_PARENT source-file ~/.tmux.conf.d/nested-tmux/active-row.conf' \; \ + run-shell 'tmux -L $TMUX_PARENT set -g window-status-current-style bg=$active_window_bg' + +# Handler for becoming active (Alt + F12, don't use directly) +bind -n M-F12 run-shell 'tmux -L $TMUX_PARENT source-file ~/.tmux.conf.d/nested-tmux/inactive-row.conf' \; \ + source-file ~/.tmux.conf.d/nested-tmux/active-row.conf \; \ + set -g window-status-current-style bg=$active_window_bg + +# Handler for closed window: enable outer terminal +set-hook -g client-detached "run-shell 'tmux -L $TMUX_PARENT source-file ~/.tmux.conf.d/nested-tmux/active-row.conf && tmux -L $TMUX_PARENT set -g window-status-current-style bg=$active_window_bg'" + +# +# Appearance +# +set -g status-style bg=$bar_bg +setw -g window-status-style fg=$bar_fg +setw -g window-status-current-format ' #I #W ' +setw -g window-status-format ' #I #W ' +setw -g window-status-current-style bg=$active_window_bg +source ~/.tmux/plugins/palenight-tmux/theme/palenight-status-content.conf + +# If we're the root tmux, unbind M-down +if-shell 'test -z "$TMUX_PARENT"' 'bind -n M-down send-keys ""' '' + +# When a new session is created unbind the parent +if-shell 'test -z "$TMUX_PARENT"' '' 'run-shell "tmux -L $TMUX_PARENT source-file ~/.tmux.conf.d/nested-tmux/inactive-row.conf"' diff --git a/.tmux.conf.d/nested-tmux/demo.gif b/.tmux.conf.d/nested-tmux/demo.gif new file mode 100644 index 0000000000000000000000000000000000000000..fccc00cc3eb811e7e160fa51b1f256470b29f793 GIT binary patch literal 280311 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 z�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

gZ#LzPRI!U(JKm5WWA1Z$+ET_R*4Ub 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�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 F06Qx*F=qe( literal 0 HcmV?d00001 diff --git a/.tmux.conf.d/nested-tmux/inactive-row.conf b/.tmux.conf.d/nested-tmux/inactive-row.conf new file mode 100644 index 0000000..29c7235 --- /dev/null +++ b/.tmux.conf.d/nested-tmux/inactive-row.conf @@ -0,0 +1,14 @@ +source ~/.tmux/plugins/palenight-tmux/theme/palenight-status-content-inactive.conf + +# Change the background color to unactive +setw -g window-status-current-style bg=$inactive_window_bg + +# Unbind prefix +set -u -g prefix C-a + +# Unbind each unprefixed command +unbind -n M-left +unbind -n M-right +unbind -n M-up +unbind -n M-down +unbind -n C-t diff --git a/.tmux.conf.d/nested-tmux/new-tmux b/.tmux.conf.d/nested-tmux/new-tmux new file mode 100755 index 0000000..8418001 --- /dev/null +++ b/.tmux.conf.d/nested-tmux/new-tmux @@ -0,0 +1,7 @@ +#!/bin/bash + +TMUX_PARENT=$(basename "$TMUX") +TMUX_PARENT="${TMUX_PARENT%%,*}" +export TMUX_PARENT + +tmux -L "r$RANDOM" From 78f6b4ccee0e4e719c4d9e0862485f3d393c016d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Sun, 19 Feb 2023 22:33:27 -0500 Subject: [PATCH 08/34] Add tmux plugins. --- .tmux/plugins/palenight-tmux/LICENSE.md | 21 +++++++++ .tmux/plugins/palenight-tmux/README.md | 21 +++++++++ .tmux/plugins/palenight-tmux/palenight.tmux | 40 +++++++++++++++++ .../palenight-status-content-inactive.conf | 21 +++++++++ ...enight-status-content-no-patched-font.conf | 18 ++++++++ .../theme/palenight-status-content.conf | 21 +++++++++ .../palenight-tmux/theme/palenight.conf | 45 +++++++++++++++++++ .tmux/plugins/tmux-continuum | 1 + .tmux/plugins/tmux-resurrect | 1 + .tmux/plugins/tmux-sensible | 1 + .tmux/plugins/tpm | 1 + .tmux/plugins/vim-tmux-navigator | 1 + 12 files changed, 192 insertions(+) create mode 100644 .tmux/plugins/palenight-tmux/LICENSE.md create mode 100644 .tmux/plugins/palenight-tmux/README.md create mode 100755 .tmux/plugins/palenight-tmux/palenight.tmux create mode 100644 .tmux/plugins/palenight-tmux/theme/palenight-status-content-inactive.conf create mode 100644 .tmux/plugins/palenight-tmux/theme/palenight-status-content-no-patched-font.conf create mode 100644 .tmux/plugins/palenight-tmux/theme/palenight-status-content.conf create mode 100644 .tmux/plugins/palenight-tmux/theme/palenight.conf create mode 160000 .tmux/plugins/tmux-continuum create mode 160000 .tmux/plugins/tmux-resurrect create mode 160000 .tmux/plugins/tmux-sensible create mode 160000 .tmux/plugins/tpm create mode 160000 .tmux/plugins/vim-tmux-navigator diff --git a/.tmux/plugins/palenight-tmux/LICENSE.md b/.tmux/plugins/palenight-tmux/LICENSE.md new file mode 100644 index 0000000..691d893 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Tony Lambiris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.tmux/plugins/palenight-tmux/README.md b/.tmux/plugins/palenight-tmux/README.md new file mode 100644 index 0000000..91fd769 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/README.md @@ -0,0 +1,21 @@ +# palenight tmux colour theme +A tmux theme with dark colours inspired by the drewtempelmeyer/palenight.vim theme for Vim/Neovim. +Much of the work was forked from the mbdimitrova/tmux-wolfpack theme. + +## Installation +You can install the theme in two ways: + +### Add to your .tmux.conf +Append the content of `palenight.tmux` to `.tmux.conf`: + +```cat theme/palenight.tmux >> ~/.tmux.conf``` + +### [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) +Add as a plugin to the list of TPM plugins in `.tmux.conf`: + +```set -g @plugin 'tonylambiris/palenight-tmux'``` + +Hit `prefix + I` to fetch the plugin and source it. + +## Screenshots +Coming soon diff --git a/.tmux/plugins/palenight-tmux/palenight.tmux b/.tmux/plugins/palenight-tmux/palenight.tmux new file mode 100755 index 0000000..cdbf8f8 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/palenight.tmux @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +PALENIGHT_TMUX_COLOR_THEME_FILE="theme/palenight.conf" +PALENIGHT_TMUX_STATUS_CONTENT_FILE="theme/palenight-status-content.conf" +PALENIGHT_TMUX_STATUS_CONTENT_NO_PATCHED_FONT_FILE="theme/palenight-status-content-no-patched-font.conf" +PALENIGHT_TMUX_STATUS_CONTENT_OPTION="@palenight_tmux_show_status_content" +PALENIGHT_TMUX_NO_PATCHED_FONT_OPTION="@palenight_tmux_no_patched_font" +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +__cleanup() { + unset -v PALENIGHT_TMUX_COLOR_THEME_FILE PALENIGHT_TMUX_VERSION + unset -v PALENIGHT_TMUX_STATUS_CONTENT_FILE PALENIGHT_TMUX_STATUS_CONTENT_NO_PATCHED_FONT_FILE + unset -v PALENIGHT_TMUX_STATUS_CONTENT_OPTION PALENIGHT_TMUX_NO_PATCHED_FONT_OPTION + unset -v CURRENT_DIR + unset -f __load __cleanup __source +} + +__load() { + local status_content no_patched_font + + __source "$CURRENT_DIR/$PALENIGHT_TMUX_COLOR_THEME_FILE" + + status_content=$(tmux show-option -gqv "$PALENIGHT_TMUX_STATUS_CONTENT_OPTION") + no_patched_font=$(tmux show-option -gqv "$PALENIGHT_TMUX_NO_PATCHED_FONT_OPTION") + + if [ "$status_content" != "0" ]; then + if [ "$no_patched_font" != "1" ]; then + __source "$CURRENT_DIR/$PALENIGHT_TMUX_STATUS_CONTENT_FILE" + else + __source "$CURRENT_DIR/$PALENIGHT_TMUX_STATUS_CONTENT_NO_PATCHED_FONT_FILE" + fi + fi +} + +__source() { + test -z $1 || tmux source-file -q "$1" +} + +__load +__cleanup diff --git a/.tmux/plugins/palenight-tmux/theme/palenight-status-content-inactive.conf b/.tmux/plugins/palenight-tmux/theme/palenight-status-content-inactive.conf new file mode 100644 index 0000000..0618803 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/theme/palenight-status-content-inactive.conf @@ -0,0 +1,21 @@ +#+----------------+ +#+ Plugin Support + +#+----------------+ +#+--- tmux-prefix-highlight ---+ +set -g @prefix_highlight_output_prefix "#[fg=#89DDFF]#[bg=#c792ea]#[nobold]#[noitalics]#[nounderscore]#[bg=#89DDFF]#[fg=default]" +set -g @prefix_highlight_output_suffix "" +set -g @prefix_highlight_show_copy_mode 'on' +set -g @prefix_highlight_copy_mode_attr "fg=#ffcb6b,bg=default,bold" + +#+--------+ +#+ Status + +#+--------+ +#+--- Bars ---+ +set -g status-left "#[fg=#292D3E,bg=#ffcb6b,bold] #S #[fg=#ffcb6b,bg=default,nobold,noitalics,nounderscore]" +set -g status-right "" + +#+--- Windows ---+ +set -g window-status-format "#[fg=colour235,bg=#3E4452,nobold,noitalics,nounderscore] #[fg=#82aaff,bg=#3E4452]#I #[fg=#82aaff,bg=#3E4452,nobold,noitalics,nounderscore] #[fg=#82aaff,bg=#3E4452]#W #F #[fg=#3E4452,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-current-format "#[fg=colour235,bg=#82aaff,nobold,noitalics,nounderscore] #[fg=#292D3E,bg=#82aaff]#I #[fg=#292D3E,bg=#82aaff,nobold,noitalics,nounderscore] #[fg=#292D3E,bg=#82aaff]#W #F #[fg=#82aaff,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-separator "" +set -g monitor-activity off diff --git a/.tmux/plugins/palenight-tmux/theme/palenight-status-content-no-patched-font.conf b/.tmux/plugins/palenight-tmux/theme/palenight-status-content-no-patched-font.conf new file mode 100644 index 0000000..5674922 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/theme/palenight-status-content-no-patched-font.conf @@ -0,0 +1,18 @@ +#+----------------+ +#+ Plugin Support + +#+----------------+ +#+--- tmux-prefix-highlight ---+ +set -g @prefix_highlight_copy_mode_attr "fg=#ffcb6b,bg=default" + +#+--------+ +#+ Status + +#+--------+ +#+--- Bars ---+ +set -g status-left "#[fg=#292D3E,bg=#ffcb6b,bold] #S #[fg=#ffcb6b,bg=default,nobold,noitalics,nounderscore]" +set -g status-right "#{prefix_highlight}#[fg=#c792ea,bg=#3E4452] %Y-%m-%d #[fg=#c792ea,bg=#3E4452,nobold,noitalics,nounderscore]|#[fg=#c792ea,bg=#3E4452] %H:%M #[fg=#c792ea,bg=#3E4452,nobold,noitalics,nounderscore]#[fg=#292D3E,bg=#c792ea,bold] #H " + +#+--- Windows ---+ +set -g window-status-format "#[fg=#c792ea,bg=#3E4452] #I #[fg=#c792ea,bg=#3E4452] #W #F #[fg=#3E4452,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-current-format "#[fg=#292D3E,bg=#c792ea] #I #[fg=#292D3E,bg=#c792ea] #W #F #[fg=#c792ea,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-separator "" +set -g monitor-activity off diff --git a/.tmux/plugins/palenight-tmux/theme/palenight-status-content.conf b/.tmux/plugins/palenight-tmux/theme/palenight-status-content.conf new file mode 100644 index 0000000..3df7b15 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/theme/palenight-status-content.conf @@ -0,0 +1,21 @@ +#+----------------+ +#+ Plugin Support + +#+----------------+ +#+--- tmux-prefix-highlight ---+ +set -g @prefix_highlight_output_prefix "#[fg=#89DDFF]#[bg=#c792ea]#[nobold]#[noitalics]#[nounderscore]#[bg=#89DDFF]#[fg=default]" +set -g @prefix_highlight_output_suffix "" +set -g @prefix_highlight_show_copy_mode 'on' +set -g @prefix_highlight_copy_mode_attr "fg=#ffcb6b,bg=default,bold" + +#+--------+ +#+ Status + +#+--------+ +#+--- Bars ---+ +set -g status-left "#[fg=#292D3E,bg=#ffcb6b,bold] #S #[fg=#ffcb6b,bg=default,nobold,noitalics,nounderscore]" +set -g status-right "#{prefix_highlight}#[fg=#3E4452,bg=default,nobold,noitalics,nounderscore]#[fg=#82aaff,bg=#3E4452] %Y-%m-%d #[fg=#82aaff,bg=#3E4452,nobold,noitalics,nounderscore]#[fg=#82aaff,bg=#3E4452] %H:%M #[fg=#82aaff,bg=#3E4452,nobold,noitalics,nounderscore]#[fg=#292D3E,bg=#82aaff,bold] #H " + +#+--- Windows ---+ +set -g window-status-format "#[fg=colour235,bg=#3E4452,nobold,noitalics,nounderscore] #[fg=#82aaff,bg=#3E4452]#I #[fg=#82aaff,bg=#3E4452,nobold,noitalics,nounderscore] #[fg=#82aaff,bg=#3E4452]#W #F #[fg=#3E4452,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-current-format "#[fg=colour235,bg=#82aaff,nobold,noitalics,nounderscore] #[fg=#292D3E,bg=#82aaff]#I #[fg=#292D3E,bg=#82aaff,nobold,noitalics,nounderscore] #[fg=#292D3E,bg=#82aaff]#W #F #[fg=#82aaff,bg=default,nobold,noitalics,nounderscore]" +set -g window-status-separator "" +set -g monitor-activity off diff --git a/.tmux/plugins/palenight-tmux/theme/palenight.conf b/.tmux/plugins/palenight-tmux/theme/palenight.conf new file mode 100644 index 0000000..130c040 --- /dev/null +++ b/.tmux/plugins/palenight-tmux/theme/palenight.conf @@ -0,0 +1,45 @@ +#+----------------+ +#+ Plugin Support + +#+----------------+ +#+--- tmux-prefix-highlight ---+ +set -g @prefix_highlight_fg #292D3E +set -g @prefix_highlight_bg #89DDFF + +#+---------+ +#+ Options + +#+---------+ +set -g status-interval 1 +set -g status on + +#+--------+ +#+ Status + +#+--------+ +#+--- Layout ---+ +set -g status-justify left + +#+--- Colors ---+ +set -g status-bg colour235 +set -g status-fg default +set -g status-attr default + +#+-------+ +#+ Panes + +#+-------+ +set -g pane-border-bg #292D3E +set -g pane-border-fg #292D3E +set -g pane-active-border-fg #3E4452 +set -g display-panes-colour #292D3E +set -g display-panes-active-colour #3E4452 + +#+------------+ +#+ Clock Mode + +#+------------+ +setw -g clock-mode-colour #89DDFF + +#+----------+ +#+ Messages + +#+---------+ +set -g message-fg #89DDFF +set -g message-bg #3E4452 +set -g message-command-fg #89DDFF +set -g message-command-bg #3E4452 diff --git a/.tmux/plugins/tmux-continuum b/.tmux/plugins/tmux-continuum new file mode 160000 index 0000000..190ea9d --- /dev/null +++ b/.tmux/plugins/tmux-continuum @@ -0,0 +1 @@ +Subproject commit 190ea9dd2bf58f165333b0e5f8400589e7cf0ee8 diff --git a/.tmux/plugins/tmux-resurrect b/.tmux/plugins/tmux-resurrect new file mode 160000 index 0000000..199b32b --- /dev/null +++ b/.tmux/plugins/tmux-resurrect @@ -0,0 +1 @@ +Subproject commit 199b32b44956633a979a56cdf6a077c233447862 diff --git a/.tmux/plugins/tmux-sensible b/.tmux/plugins/tmux-sensible new file mode 160000 index 0000000..5d089e4 --- /dev/null +++ b/.tmux/plugins/tmux-sensible @@ -0,0 +1 @@ +Subproject commit 5d089e418efb1a00f47654014ed085deb3d0c878 diff --git a/.tmux/plugins/tpm b/.tmux/plugins/tpm new file mode 160000 index 0000000..b699a7e --- /dev/null +++ b/.tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit b699a7e01c253ffb7818b02d62bce24190ec1019 diff --git a/.tmux/plugins/vim-tmux-navigator b/.tmux/plugins/vim-tmux-navigator new file mode 160000 index 0000000..9ca5bfe --- /dev/null +++ b/.tmux/plugins/vim-tmux-navigator @@ -0,0 +1 @@ +Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80 From 52b19660498c4a4c559036396ddfdea29292cca0 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 03:34:41 +0000 Subject: [PATCH 09/34] Remove tmux plugins. --- .tmux.conf | 3 --- 1 file changed, 3 deletions(-) diff --git a/.tmux.conf b/.tmux.conf index 7e62fbe..f49a2f4 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -64,9 +64,6 @@ set -g @continuum-save-interval '10' # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' -# set -g @plugin 'tmux-plugins/tmux-resurrect' -# set -g @plugin 'tmux-plugins/tmux-continuum' -# set -g @plugin 'tonylambiris/palenight-tmux' set -g @plugin 'dracula/tmux' # Other examples: From 86cdddc0ebc193ff285025697f0359402d75b98d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 03:54:38 +0000 Subject: [PATCH 10/34] Remove submodules. --- .gitmodules | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .gitmodules diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 803badc..0000000 --- a/.gitmodules +++ /dev/null @@ -1,9 +0,0 @@ -[submodule ".hammerspoon/Spoons/VimMode.spoon"] - path = .hammerspoon/Spoons/VimMode.spoon - url = https://github.com/dbalatero/VimMode.spoon.git -[submodule ".tmux/plugins/nord-tmux"] - path = .tmux/plugins/nord-tmux - url = git@github.com:arcticicestudio/nord-tmux -[submodule "nord.nvim"] - path = nord.nvim - url = /Users/mpjuers/.config/nvim/plugged/nord.nvim From 0572e4de429e9f9bb517b773288f264eb5bfb86d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 03:55:38 +0000 Subject: [PATCH 11/34] Remove some plugins. --- .tmux/plugins/tmux-continuum | 1 - .tmux/plugins/tmux-resurrect | 1 - .tmux/plugins/tmux-sensible | 2 +- .tmux/plugins/tpm | 2 +- .tmux/plugins/vim-tmux-navigator | 1 - 5 files changed, 2 insertions(+), 5 deletions(-) delete mode 160000 .tmux/plugins/tmux-continuum delete mode 160000 .tmux/plugins/tmux-resurrect delete mode 160000 .tmux/plugins/vim-tmux-navigator diff --git a/.tmux/plugins/tmux-continuum b/.tmux/plugins/tmux-continuum deleted file mode 160000 index 190ea9d..0000000 --- a/.tmux/plugins/tmux-continuum +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 190ea9dd2bf58f165333b0e5f8400589e7cf0ee8 diff --git a/.tmux/plugins/tmux-resurrect b/.tmux/plugins/tmux-resurrect deleted file mode 160000 index 199b32b..0000000 --- a/.tmux/plugins/tmux-resurrect +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 199b32b44956633a979a56cdf6a077c233447862 diff --git a/.tmux/plugins/tmux-sensible b/.tmux/plugins/tmux-sensible index 5d089e4..25cb91f 160000 --- a/.tmux/plugins/tmux-sensible +++ b/.tmux/plugins/tmux-sensible @@ -1 +1 @@ -Subproject commit 5d089e418efb1a00f47654014ed085deb3d0c878 +Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa diff --git a/.tmux/plugins/tpm b/.tmux/plugins/tpm index b699a7e..fdb3022 160000 --- a/.tmux/plugins/tpm +++ b/.tmux/plugins/tpm @@ -1 +1 @@ -Subproject commit b699a7e01c253ffb7818b02d62bce24190ec1019 +Subproject commit fdb30228b1dc649ab1c2086d146ef9dd0ab584e6 diff --git a/.tmux/plugins/vim-tmux-navigator b/.tmux/plugins/vim-tmux-navigator deleted file mode 160000 index 9ca5bfe..0000000 --- a/.tmux/plugins/vim-tmux-navigator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9ca5bfe5bd274051b5dd796cc150348afc993b80 From 74f1c46c5d09fc3e2f38bc409ffa2b7dce8f40ae Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 04:52:26 +0000 Subject: [PATCH 12/34] Add basic .zshrc. --- .zshrc | 105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 .zshrc diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..1fd6460 --- /dev/null +++ b/.zshrc @@ -0,0 +1,105 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="robbyrussell" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# 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 the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + +ZSH_THEME="dracula" +plugins=(git) +plugins=(vi-mode) From 8c2753229cf433eb5122beb810367d3c12fb044c Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 15:22:48 +0000 Subject: [PATCH 13/34] Add .zshrc. --- .zshrc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.zshrc b/.zshrc index 1fd6460..15461a6 100644 --- a/.zshrc +++ b/.zshrc @@ -8,7 +8,7 @@ export ZSH="$HOME/.oh-my-zsh" # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -ZSH_THEME="robbyrussell" +ZSH_THEME="random" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load @@ -70,7 +70,6 @@ ZSH_THEME="robbyrussell" # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. -plugins=(git) source $ZSH/oh-my-zsh.sh @@ -101,5 +100,6 @@ source $ZSH/oh-my-zsh.sh # alias ohmyzsh="mate ~/.oh-my-zsh" ZSH_THEME="dracula" -plugins=(git) -plugins=(vi-mode) +plugins=(git vi-mode) + +tmux attach-session From e6d87522042c1871f52bd87f8e9a41f113fd347d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 15:25:52 +0000 Subject: [PATCH 14/34] Change init.vim to .vimrc. --- .config/fish/config.fish | 3 - .config/gh/config.yml | 15 --- .config/gh/hosts.yml | 4 - .config/nvim/{init.vim.backup => init.vim} | 138 +++++---------------- 4 files changed, 32 insertions(+), 128 deletions(-) delete mode 100644 .config/fish/config.fish delete mode 100644 .config/gh/config.yml delete mode 100644 .config/gh/hosts.yml rename .config/nvim/{init.vim.backup => init.vim} (71%) diff --git a/.config/fish/config.fish b/.config/fish/config.fish deleted file mode 100644 index d714361..0000000 --- a/.config/fish/config.fish +++ /dev/null @@ -1,3 +0,0 @@ -if status is-interactive - # Commands to run in interactive sessions can go here -end diff --git a/.config/gh/config.yml b/.config/gh/config.yml deleted file mode 100644 index f32ba6a..0000000 --- a/.config/gh/config.yml +++ /dev/null @@ -1,15 +0,0 @@ -# What protocol to use when performing git operations. Supported values: ssh, https -git_protocol: https -# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. -editor: -# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled -prompt: enabled -# A pager program to send command output to, e.g. "less". Set the value to "cat" to disable the pager. -pager: -# Aliases allow you to create nicknames for gh commands -aliases: - co: pr checkout -# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. -http_unix_socket: -# What web browser gh should use when opening URLs. If blank, will refer to environment. -browser: diff --git a/.config/gh/hosts.yml b/.config/gh/hosts.yml deleted file mode 100644 index 20d5872..0000000 --- a/.config/gh/hosts.yml +++ /dev/null @@ -1,4 +0,0 @@ -github.com: - user: nekoju - oauth_token: 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 - git_protocol: ssh diff --git a/.config/nvim/init.vim.backup b/.config/nvim/init.vim similarity index 71% rename from .config/nvim/init.vim.backup rename to .config/nvim/init.vim index 6d25fda..e863988 100644 --- a/.config/nvim/init.vim.backup +++ b/.config/nvim/init.vim @@ -1,22 +1,22 @@ +let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' +if empty(glob(data_dir . '/autoload/plug.vim')) + silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' + autocmd VimEnter * PlugInstall --sync | source $MYVIMRC +endif call plug#begin('~/.config/nvim/plugged/') Plug 'andymass/vim-matchup' Plug 'chrisbra/csv.vim' +Plug 'dracula/vim' " Plug 'dag/vim-fish' -Plug 'drewtempelmeyer/palenight.vim' Plug 'elzr/vim-json' Plug 'fs111/pydoc.vim' Plug 'jeffkreeftmeijer/vim-numbertoggle' Plug 'jiangmiao/auto-pairs' -Plug 'jpalardy/vim-slime' -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } -Plug 'junegunn/fzf.vim' -Plug 'khaveesh/vim-fish-syntax' +" Plug 'jpalardy/vim-slime' Plug 'Konfekt/FastFold' -Plug 'lervag/vimtex' "" Why won't this work? " Plug 'lukas-reineke/indent-blankline.nvim' Plug 'mpjuers/showcontext' -Plug 'neovim/nvim-lspconfig' Plug 'nathanaelkane/vim-indent-guides' "" To set up later " Plug 'spinks/vim-leader-guide' @@ -26,47 +26,23 @@ Plug 'tpope/vim-commentary' Plug 'tpope/vim-fugitive' Plug 'tpope/vim-surround' Plug 'Vimjas/vim-python-pep8-indent' -Plug 'vim-pandoc/vim-pandoc-syntax' Plug 'wesQ3/vim-windowswap' -Plug 'w0rp/ale' -" main one -Plug 'ms-jpq/coq_nvim', {'branch': 'coq'} -" 9000+ Snippets -Plug 'ms-jpq/coq.artifacts', {'branch': 'artifacts'} - -" lua & third party sources -- See https://github.com/ms-jpq/coq.thirdparty -" Need to **configure separately** - -Plug 'ms-jpq/coq.thirdparty', {'branch': '3p'} -" - shell repl -" - nvim lua api -" - scientific calculator -" - comment banner -" - etc call plug#end() -" if &shell =~# 'fish$' -" set shell=sh -" endif - -let g:coq_settings = { 'auto_start': 'shut-up' } -let g:coq_settings = { 'keymap.eval_snips': 'ss' } -source /Users/nekoj/Dotfiles/.config/nvim/lspsetup.lua +" let g:slime_target="neovim" +" xmap SlimeRegionSend +" nmap SlimeParagraphSend -let g:slime_target="neovim" -xmap SlimeRegionSend -nmap SlimeParagraphSend +" let g:slime_target="neovim" +" xmap SlimeRegionSend +" nmap SlimeParagraphSend -let g:slime_target="neovim" -xmap SlimeRegionSend -nmap SlimeParagraphSend - -" Enable true color 启用终端24位色 -if exists('+termguicolors') - let &t_8f = "\[38;2;%lu;%lu;%lum" - let &t_8b = "\[48;2;%lu;%lu;%lum" - set termguicolors -endif +" " Enable true color 启用终端24位色 +" if exists('+termguicolors') +" let &t_8f = "\[38;2;%lu;%lu;%lum" +" let &t_8b = "\[48;2;%lu;%lu;%lum" +" set termguicolors +" endif " remap Omni completion inoremap xx @@ -128,14 +104,6 @@ function! PythonAddTags(module) endfunction command! -nargs=1 Addtags call PythonAddTags() -" latex to docx -map :w !pandoc -o %.docx - -" " for completion menu -" inoremap pumvisible() ? "\" : "\u" -" inoremap pumvisible() ? '' : -" \ '=pumvisible() ? "\Down>" : ""' - nnoremap lc :call ShowContext_toggle() " Switch black on and off. @@ -168,10 +136,10 @@ let g:pandoc#keyboard#use_default_mappings = 0 " Switching windows " In terminal -tnoremap hh h -tnoremap jj j -tnoremap kk k -tnoremap ll l +" tnoremap hh h +" tnoremap jj j +" tnoremap kk k +" tnoremap ll l " In insert mode inoremap hh h inoremap jj j @@ -183,30 +151,12 @@ nnoremap jj j nnoremap kk k nnoremap ll l -" fzf mappings -" - down / up / left / right -let g:fzf_layout = { 'down': '40%' } -nnoremap :ProjectFiles -inoremap :ProjectFiles -nnoremap :Ag -nnoremap :Buffers -nnoremap :Marks -nnoremap :Windows -nnoremap :History: -nnoremap :Snippets -nnoremap :Commits -nnoremap :BCommits -nnoremap ph :Helptags -nnoremap :Tags - -" two-key find - if has('nvim') let $VISUAL = 'nvr -cc split --remote-wait' endif set autoread -set inccommand=nosplit +" set inccommand=nosplit " Tabs to spaces set expandtab set shiftwidth=4 @@ -245,8 +195,8 @@ set formatoptions-=c formatoptions-=r formatoptions-=o syntax on syntax enable set t_Co=256 -set background=dark -colorscheme palenight +" set background=dark +colorscheme dracula " highlighting cursorline style highlight! link Visual cursorline @@ -270,7 +220,7 @@ set conceallevel=0 set updatetime=400 -set shortmess+=F +" set shortmess+=F set sessionoptions-=folds @@ -315,22 +265,11 @@ augroup Snakemake au BufNewFile,BufRead *.snake set syntax=snakemake augroup END -" I need to figure out what problem this was trying to solve. -function! SetTags(file) - if filereadable(a:file) - let &tags = " " . a:file . ";" . $HOME - elseif filereadable("./tags") - let &tags = " ./tags" . ";" . $HOME - else - return 0 - endif -endfunction - -augroup Tags - autocmd! - autocmd VimEnter * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") - autocmd DirChanged * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") -augroup END +" augroup Tags +" autocmd! +" autocmd VimEnter * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") +" autocmd DirChanged * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") +" augroup END autocmd! BufRead "*.md" :set linewidth=80 autocmd! BufWritePre "*.md" :execute "normal! mygggqG'y" @@ -399,16 +338,3 @@ if (has("nvim")) "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > let $NVIM_TUI_ENABLE_TRUE_COLOR=1 endif - -" 🐓 Coq completion settings - -" Set recommended to false -let g:coq_settings = { "keymap.recommended": v:false } - -" Keybindings -ino pumvisible() ? "\" : "\" -ino pumvisible() ? "\" : "\" -ino pumvisible() ? "\" : "\" -ino pumvisible() ? (complete_info().selected == -1 ? "\" : "\") : "\" -ino pumvisible() ? "\" : "\" -ino pumvisible() ? "\" : "\" From 907a81dd74d9607cb7ee485210950f8840e22230 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 15:25:52 +0000 Subject: [PATCH 15/34] Change init.vim to .vimrc. --- .zshrc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.zshrc b/.zshrc index 15461a6..c44e5e6 100644 --- a/.zshrc +++ b/.zshrc @@ -70,6 +70,7 @@ ZSH_THEME="random" # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. +plugins=(git vi-mode) source $ZSH/oh-my-zsh.sh @@ -98,8 +99,5 @@ source $ZSH/oh-my-zsh.sh # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" - -ZSH_THEME="dracula" -plugins=(git vi-mode) - -tmux attach-session +# +eval "$(oh-my-posh init --config '~/.zsh/theme/dracula.omp.json' zsh)" From 403f90d630a047b75e6c22e0ee835c3b09d409f3 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 20 Feb 2023 15:25:52 +0000 Subject: [PATCH 16/34] Change init.vim to .vimrc. --- .zsh/theme/dracula.omp.json | 84 +++++++++++++++++++++++++++++++++++++ .zshrc | 1 - 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 .zsh/theme/dracula.omp.json diff --git a/.zsh/theme/dracula.omp.json b/.zsh/theme/dracula.omp.json new file mode 100644 index 0000000..ae0da49 --- /dev/null +++ b/.zsh/theme/dracula.omp.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json", + "blocks": [ + { + "alignment": "left", + "segments": [ + { + "background": "#6272a4", + "foreground": "#f8f8f2", + "leading_diamond": "\ue0b6", + "style": "diamond", + "template": "{{ .HostName }} ", + "type": "session" + + }, + { + "background": "#bd93f9", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "style": "folder" + + }, + "style": "powerline", + "template": " {{ .Path }} ", + "type": "path" + + }, + { + "background": "#ffb86c", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "properties": { + "branch_icon": "", + "fetch_stash_count": true, + "fetch_status": true, + "fetch_upstream_icon": true + + }, + "style": "powerline", + "template": "{{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uF044 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uF046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uF692 {{ .StashCount }}{{ end }}", + "type": "git" + + }, + { + "background": "#8be9fd", + "foreground": "#f8f8f2", + "powerline_symbol": "\ue0b0", + "style": "powerline", + "template": " \ue718 {{ if .PackageManagerIcon }}{{ .PackageManagerIcon }} {{ end }}{{ .Full }} ", + "type": "node" + + } + + ], + "type": "prompt" + + }, + { + "alignment": "left", + "segments": [ + { + "background": "#f1fa8c", + "foreground": "#282a36", + "invert_powerline": true, + "leading_diamond": "\ue0b2", + "style": "diamond", + "template": " \ue7ad {{.Profile}}{{if .Region}}@{{.Region}}{{end}}", + "trailing_diamond": "\ue0b4", + "type": "aws" + + } + + ], + "type": "rprompt" + + } + + ], + "final_space": true, + "version": 2 + +} + diff --git a/.zshrc b/.zshrc index c44e5e6..04f7862 100644 --- a/.zshrc +++ b/.zshrc @@ -8,7 +8,6 @@ export ZSH="$HOME/.oh-my-zsh" # load a random theme each time oh-my-zsh is loaded, in which case, # to know which specific one was loaded, run: echo $RANDOM_THEME # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes -ZSH_THEME="random" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load From c788e36f091762fe2f421f07aa19e6b11afe0b13 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 28 Feb 2023 20:49:43 +0000 Subject: [PATCH 17/34] Added install script to clone from GH and alias dotfiles. --- .zshrc | 8 +++++++- install.zsh | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 install.zsh diff --git a/.zshrc b/.zshrc index 04f7862..5201ab3 100644 --- a/.zshrc +++ b/.zshrc @@ -1,3 +1,5 @@ +alias vi "vim -u ~/dotfiles/.vimrc" + # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH @@ -98,5 +100,9 @@ source $ZSH/oh-my-zsh.sh # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" -# eval "$(oh-my-posh init --config '~/.zsh/theme/dracula.omp.json' zsh)" + +ZSH_THEME="dracula" +plugins=(git vi-mode) + +tmux attach-session diff --git a/install.zsh b/install.zsh new file mode 100755 index 0000000..6a73fbf --- /dev/null +++ b/install.zsh @@ -0,0 +1,5 @@ +#!/bin/zsh + +git clone --single-branch --branch devhost https://github.com/nekoju/dotfiles.git ~/dotfiles-2 +source ~/dotfiles/.zshrc +echo "Enjoy your defaults." From 6362d335ee268e940794bdaee838b4932529cb7c Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 28 Feb 2023 21:28:48 +0000 Subject: [PATCH 18/34] Change .vimrc and .zshrc. --- .vimrc | 580 +++++++++++++++++++++------------------------------- .zshrc | 8 +- install.zsh | 4 +- 3 files changed, 238 insertions(+), 354 deletions(-) mode change 100755 => 100644 .vimrc diff --git a/.vimrc b/.vimrc old mode 100755 new mode 100644 index ec6e881..e863988 --- a/.vimrc +++ b/.vimrc @@ -1,71 +1,65 @@ -" set the runtime path to include Vundle and initialize -set rtp+=~/.vim/bundle/Vundle.vim -call vundle#begin() -" " alternatively, pass a path where Vundle should install plugins -" "call vundle#begin('~/some/path/here') -" -" " let Vundle manage Vundle, required -Plugin 'VundleVim/Vundle.vim'" -" Plug 'kopischke/vim-stay' " This isn't working properly for some reason -" Plug 'vim-syntastic/syntastic' -Plugin 'altercation/vim-colors-solarized' -Plugin 'arcticicestudio/nord-vim' -Plugin 'chrisbra/csv.vim' -Plugin 'christoomey/vim-tmux-navigator' -Plugin 'ctrlpvim/ctrlp.vim' -Plugin 'dag/vim-fish' -Plugin 'fs111/pydoc.vim' -Plugin 'jeffkreeftmeijer/vim-dim' -Plugin 'jeffkreeftmeijer/vim-numbertoggle' -Plugin 'jiangmiao/auto-pairs' -Plugin 'itchyny/lightline.vim' -Plugin 'kana/vim-submode' -Plugin 'kchmck/vim-coffee-script' -Plugin 'Konfekt/FastFold' -Plugin 'python/black' -Plugin 'tacahiroy/ctrlp-funky' -Plugin 'tmhedberg/SimpylFold' -Plugin 'tpope/vim-commentary' -Plugin 'tpope/vim-fugitive' -Plugin 'tpope/vim-repeat' -Plugin 'tpope/vim-surround' -Plugin 'tpope/vim-unimpaired' -Plugin 'tpope/vim-vinegar' -Plugin 'Vimjas/vim-python-pep8-indent' -Plugin 'wesQ3/vim-windowswap' -Plugin 'Yggdroot/indentLine' -" All of your Plugins must be added before the following line -call vundle#end() " required -filetype plugin indent on " required -" " To ignore plugin indent changes, instead use: -" "filetype plugin on -" " -" " Brief help -" " :PluginList - lists configured plugins -" " :PluginInstall - installs plugins; append `!` to update or just -" :PluginUpdate -" " :PluginSearch foo - searches for foo; append `!` to refresh local cache -" " :PluginClean - confirms removal of unused plugins; append `!` to -" auto-approve removal -" " -" " see :h vundle for more details or wiki for FAQ -" " Put your non-Plugin stuff after this line -" " - -" let g:python3_host_prog = "/N/u/mpjuers/Carbonate/.pyenv/versions/neovim3/bin/python" - -" Press F4 to toggle highlighting on/off, and show current value. -noremap :set hlsearch! hlsearch? - +let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim' +if empty(glob(data_dir . '/autoload/plug.vim')) + silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' + autocmd VimEnter * PlugInstall --sync | source $MYVIMRC +endif +call plug#begin('~/.config/nvim/plugged/') +Plug 'andymass/vim-matchup' +Plug 'chrisbra/csv.vim' +Plug 'dracula/vim' +" Plug 'dag/vim-fish' +Plug 'elzr/vim-json' +Plug 'fs111/pydoc.vim' +Plug 'jeffkreeftmeijer/vim-numbertoggle' +Plug 'jiangmiao/auto-pairs' +" Plug 'jpalardy/vim-slime' +Plug 'Konfekt/FastFold' +"" Why won't this work? +" Plug 'lukas-reineke/indent-blankline.nvim' +Plug 'mpjuers/showcontext' +Plug 'nathanaelkane/vim-indent-guides' +"" To set up later +" Plug 'spinks/vim-leader-guide' +" Pragmatic folding for .py +Plug 'tmhedberg/SimpylFold' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-fugitive' +Plug 'tpope/vim-surround' +Plug 'Vimjas/vim-python-pep8-indent' +Plug 'wesQ3/vim-windowswap' +call plug#end() + +" let g:slime_target="neovim" +" xmap SlimeRegionSend +" nmap SlimeParagraphSend + +" let g:slime_target="neovim" +" xmap SlimeRegionSend +" nmap SlimeParagraphSend + +" " Enable true color 启用终端24位色 +" if exists('+termguicolors') +" let &t_8f = "\[38;2;%lu;%lu;%lum" +" let &t_8b = "\[48;2;%lu;%lu;%lum" +" set termguicolors +" endif + +" remap Omni completion +inoremap xx +inoremap xf + +" Use neovim-remote as git editor +if has('nvim') + let $GIT_EDITOR = 'nvr -cc tabnew --remote-wait' +endif -" for automatic reloading of changed files -autocmd FocusGained,BufEnter * :silent! ! -autocmd FocusLost,WinLeave * :silent! noautocmd w +let g:python3_host_prog = "/usr/local/Caskroom/miniconda/base/bin/python" +let $VIMHOME = expand(':p:h') -" automatically set working directory to current file -autocmd BufEnter * silent! lcd %:p:h +" Press F4 to toggle highlighting on/off, and show current value. +noremap :set hlsearch! hlsearch? nnoremap :set relativenumber! @@ -75,52 +69,33 @@ nnoremap k gk nnoremap gj j nnoremap gk k -" popup menu for spelling -nnoremap z= ea - " window " new window takes up entire width/height of screen -nmap swh :topleft vnew +nmap swh :topleft vnew nmap swl :botright vnew -nmap swk :topleft new -nmap swj :botright new +nmap swk :topleft new +nmap swj :botright new " buffer " new window takes up half of current window width/height -nmap sh :leftabove vnew -nmap sl :rightbelow vnew -nmap sk :leftabove new -nmap sj :rightbelow new - -" insert newline after and before enclosing braces -nmap (( getline(".")[col(".")-1] == "(" ? 'a?(%i' : '' +nmap sh :leftabove vnew +nmap sl :rightbelow vnew +nmap sk :leftabove new +nmap sj :rightbelow new +" Word count for latex noremap :w !detex \| wc -w " show open buffers with f5 noremap :buffers:buffer " open term window -noremap tj :belowright new \| resize 15 \| set wfh \| term +noremap tj :belowright new \| resize 15 \| set wfh \| term noremap twj :botright new \| resize 15 \| set wfh \| term -noremap twl :botright vnew \| vertical resize 80 \| set wfw \| term - -let w:locallist_open = 0 -function! Toggle_locallist() - if w:locallist_open == 0 - let w:locallist_open = 1 - lopen - wincmd p - else - let w:locallist_open = 0 - lclose - endif -endfunction -nnoremap lo :call Toggle_locallist() +noremap twl :botright vnew \| vertical resize 100 \| set wfw \| term -command! WQtab wincmd j | w | windo bd command! Qtab windo bd function! PythonAddTags(module) - let l:commandstring = "python -c \"import os; import " . a:module + let l:commandstring = "python -c \"import os; import " . a:module \ . "; print(os.path.dirname(" . a:module . "\.__file__))\"" let l:dir = system(l:commandstring)[:-2] let l:call = "ctags -R " . l:dir @@ -129,168 +104,76 @@ function! PythonAddTags(module) endfunction command! -nargs=1 Addtags call PythonAddTags() -" latex to docx -map :w !pandoc -o %.docx - -" for completion menu -inoremap pumvisible() ? "\" : "\u" -inoremap pumvisible() ? '' : - \ '=pumvisible() ? "\Down>" : ""' -" inoremap pumvisible() ? '' : -" \ '=pumvisible() ? "\Down>" : ""' - -" from https://vi.stackexchange.com/questions/20078/plugin-to-show-enclosing-indentation-levels/20089#20089 -function! ShowContext() abort - let items = [] - let l = line('.') - let indent = 1000 - while l >= 0 - if indent(l) < indent && getline(l) != '' - call add(items, getline(l)) - let indent = indent(l) - if indent == 0 - break - endif - endif - let l -= 1 - endwhile - lgetexpr reverse(items) -endfunction - -let w:contextlist_open = 0 -function! Toggle_contextlist() - if w:contextlist_open == 1 - let w:contextlist_open = 0 - autocmd! ContextList - above lclose - else - let w:contextlist_open = 1 - augroup ContextList - autocmd! - autocmd CursorHold * call ShowContext() - augroup END - above lopen - wincmd p - endif -endfunction -nnoremap lc :call Toggle_contextlist() +nnoremap lc :call ShowContext_toggle() +" Switch black on and off. let g:black_running = 0 function! Toggle_black_running() if g:black_running == 0 let g:black_running = 1 augroup BlackRunning autocmd! - autocmd! BufWritePre *.py execute ':Black' + autocmd! BufWritePost *.py execute ':!black -l 79 %' augroup END - echo 'Black on' + echo 'Black on' else let g:black_running = 0 autocmd! BlackRunning - echo 'Black off' - endif -endfunction -nnoremap bl :call Toggle_black_running() - -augroup vimrc - autocmd! - autocmd FileType rmd setlocal omnifunc=CompleteR - autocmd FileType make setlocal noexpandtab - autocmd FileType rmd setlocal commentstring=#%s - autocmd FileType cpp setlocal commentstring=//%s - autocmd FileType tex setlocal spell spelllang=en_us - autocmd FileType py nnoremap K :execute "!pydoc " . expand("") - " fix misbehavior after buffer deletion - " unfortunately this seems to break help - " autocmd BufDelete * tabdo windo wincmd + | wincmd > - autocmd BufEnter term://* wincmd + | wincmd - | wincmd < | wincmd > -augroup END - -" " netrw: follow symlink and set working directory -" autocmd CursorMoved silent * -" " short circuit for non-netrw files -" \ if expand('%:p') !~# '\.git' -" \ if &filetype == 'netrw' | -" \ call FollowSymlink() | -" \ call SetProjectRoot() | -" \ endif -" automatically follow symlinks - -" Follow symlinked files -function! FollowSymlink() - let current_file = expand('%:p') - " check if file type is a symlink - if getftype(current_file) == 'link' - " if it is a symlink resolve to the actual file path - " and open the actual file - let actual_file = resolve(current_file) - silent! execute 'file ' . actual_file - end -endfunction - -" set working directory to git project root -" or directory of current file if not git project -function! SetProjectRoot() - " default to the current file's directory - lcd %:p:h - let git_dir = system("git rev-parse --show-toplevel") - " See if the command output starts with 'fatal' (if it does, not in a git repo) - let is_not_git_dir = matchstr(git_dir, '^fatal:.*') - " if git project, change local directory to git project root - if empty(is_not_git_dir) - lcd `=git_dir` + echo 'Black off' endif endfunction - -" follow symlink and set working directory -autocmd BufRead * - \ if expand('%:p') !~# '\.git' | - \ call FollowSymlink() | - \ call SetProjectRoot() - -autocmd FileType crontab setlocal nobackup nowritebackup - -autocmd BufWinEnter * let w:locallist_open = 0 -autocmd BufWinEnter * let w:contextlist_open = 0 - -au BufNewFile,BufRead Snakefile set syntax=snakemake -au BufNewFile,BufRead *.snake set syntax=snakemake - -" statusline -" set laststatus=2 -" set statusline=buff\ %n " buffer number -" set statusline+=\ ::\ " separator ' :: ' -" set statusline+=%f " filename -" set statusline+=\ ::\ " separator ' :: ' -" set statusline+=%y " filetype -" set statusline+=%= " switch sides -" set statusline+=%{getcwd()} " working dir - +noremap bl :call Toggle_black_running() + +" Puts output of :read inline rather than on a new line. +fu! InlineRead(command) + let colnum = col('.') + let line = getline('.') + call setline('.', strpart(line, 0, colnum) . system(a:command) . strpart(line, colnum)) +endfu + +command! -nargs=1 IRead call InlineRead() +let g:pandoc#keyboard#use_default_mappings = 0 + +" Switching windows +" In terminal +" tnoremap hh h +" tnoremap jj j +" tnoremap kk k +" tnoremap ll l +" In insert mode +inoremap hh h +inoremap jj j +inoremap kk k +inoremap ll l +" In normal mode +nnoremap hh h +nnoremap jj j +nnoremap kk k +nnoremap ll l if has('nvim') let $VISUAL = 'nvr -cc split --remote-wait' endif +set autoread +" set inccommand=nosplit +" Tabs to spaces set expandtab set shiftwidth=4 set tabstop=4 - " folding set foldmethod=syntax let r_syntax_folding = 1 let g:tex_fold_enabled = 1 -let g:vimtex_fold_envs = 1 let g:sh_fold_enabled = 5 -" used for vim-stay -set viewoptions=cursor,folds,slash,unix -" let g:skipview_files = ['*\.vim'] " bash-style command completion set wildmode:longest,list set nowildmenu + filetype plugin on -set omnifunc=syntaxcomplete#Complete +set breakindent set colorcolumn=80 set cursorline set number @@ -306,32 +189,18 @@ let loaded_matchit=1 " don't unindent preprocessor directives set cinkeys=0{,0},0),:,!^F,o,O,e set noswapfile -set tags=tags;$HOME set mouse=a set ttimeoutlen=10 -set formatoptions+=cro - +set formatoptions-=c formatoptions-=r formatoptions-=o syntax on syntax enable -" required for non-funkiness of solarized -" below required for solarized -set background=dark -let g:solarized_termtrans=1 -let g:solarized_termcolors=16 -if has("terminfo") - let &t_Co=16 - let &t_AB="\[%?%p1%{8}%<%t%p1%{40}%+%e%p1%{92}%+%;%dm" - let &t_AF="\[%?%p1%{8}%<%t%p1%{30}%+%e%p1%{82}%+%;%dm" -else - let &t_Co=16 - let &t_Sf="\[3%dm" - let &t_Sb="\[4%dm" -endif -set t_Co=16 " for dim -colorscheme nord -let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1 +set t_Co=256 +" set background=dark +colorscheme dracula + " highlighting cursorline style highlight! link Visual cursorline + " set bs=indent,eol,start highlight clear SignColumn @@ -339,6 +208,10 @@ highlight clear SignColumn set hlsearch set completeopt=longest,menuone +" if nvim is running open new edits with neovim remote +if has('nvim') + let $VISUAL = 'nvr -cc split --remote-wait' +endif " terminal autoscrolling let g:neoterm_autoscroll=1 @@ -347,108 +220,121 @@ set conceallevel=0 set updatetime=400 -" CtrlP-funky -nnoremap :CtrlPFunky -" Ctrl-] uses ctags if available, otherwise CtrlP-Funky -nnoremap len(tagfiles()) > 0 ? "\" : - \ "mT :execute 'CtrlPFunky ' . expand('')" -" If tags are available, functions as normal. Otherwise, return to -" mark set by . -nnoremap len(tagfiles()) > 0 ? "\" : "'T" -let g:ctrlp_funky_after_jump = 'zvzz' -let g:ctrlp_funky_use_cache = 1 -let g:ctrlp_funky_multi_buffers = 1 - -" CtrlP - -let g:ctrlp_use_caching = 0 -if executable('ag') - set grepprg=ag\ --nogroup\ --nocolor - - let g:ctrlp_user_command = 'ag --literal --files-with-matches --nocolor - \ --hidden --follow --nocolor -g "" %s' -else - let g:ctrlp_user_command = ['.git', - \ 'cd %s && git ls-files . -co --exclude-standard', - \ 'find %s -type f'] - let g:ctrlp_prompt_mappings = { - \ 'AcceptSelection("e")': ['', '', '<2-LeftMouse>'], - \ } -endif +" set shortmess+=F + +set sessionoptions-=folds + + +autocmd BufEnter * silent! lcd %:p:h +augroup vimrc + autocmd! + autocmd FileType make setlocal noexpandtab + autocmd FileType rmd setlocal commentstring=#%s + autocmd FileType cpp setlocal commentstring=//%s + autocmd FileType tex setlocal spell spelllang=en_us + autocmd FileType py nnoremap K :execute "!pydoc " . expand("") + " fix misbehavior after buffer deletion + " unfortunately this seems to break help + " autocmd BufDelete * tabdo windo wincmd + | wincmd > + autocmd BufEnter term://* wincmd + | wincmd - | wincmd < | wincmd > +augroup + +" Follow symlinked files +function! FollowSymlink() + let current_file = expand('%:p') + " check if file type is a symlink + if getftype(current_file) == 'link' + " if it is a symlink resolve to the actual file path + " and open the actual file + let actual_file = resolve(current_file) + silent! execute 'file ' . actual_file + end +endfunction + +function! s:find_git_root() + return system('git rev-parse --show-toplevel 2> /dev/null')[:-2] +endfunction + +command! ProjectFiles execute 'GFiles' s:find_git_root() + +autocmd FileType crontab setlocal nobackup nowritebackup + +augroup Snakemake + autocmd! + au BufNewFile,BufRead Snakefile set syntax=snakemake + au BufNewFile,BufRead *.snake set syntax=snakemake +augroup END + +" augroup Tags +" autocmd! +" autocmd VimEnter * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") +" autocmd DirChanged * call SetTags(trim(system("git rev-parse --show-toplevel")) . "/.tags") +" augroup END + +autocmd! BufRead "*.md" :set linewidth=80 +autocmd! BufWritePre "*.md" :execute "normal! mygggqG'y" + +" set laststatus=2 +" set noshowmode +" " status bar colors +" au InsertEnter * hi statusline guifg=black guibg=#d7afff ctermfg=black ctermbg=magenta +" au InsertLeave * hi statusline guifg=black guibg=#8fbfdc ctermfg=black ctermbg=cyan +" hi statusline guifg=black guibg=#8fbfdc ctermfg=black ctermbg=cyan + +" Status line +" set statusline=%f\ %h%w%m%r\ %=%(%l,%c%V\ %=\ %P%) + +" Status Line Custom +let g:currentmode={ + \ 'n' : 'Normal', + \ 'no' : 'Normal·Operator Pending', + \ 'v' : 'Visual', + \ 'V' : 'V·Line', + \ '^V' : 'V·Block', + \ 's' : 'Select', + \ 'S' : 'S·Line', + \ '^S' : 'S·Block', + \ 'i' : 'Insert', + \ 'R' : 'Replace', + \ 'Rv' : 'V·Replace', + \ 'c' : 'Command', + \ 'cv' : 'Vim Ex', + \ 'ce' : 'Ex', + \ 'r' : 'Prompt', + \ 'rm' : 'More', + \ 'r?' : 'Confirm', + \ '!' : 'Shell', + \ 't' : 'Terminal' + \} -let g:ctrlp_map = '' -let g:ctrlp_cmd = 'CtrlP' -let g:ctrlp_follow_symlinks = 1 -" find .git and set to working directory -let g:ctrlp_working_path_mode = 'ra' -let g:ctrlp_show_hidden = 1 -let g:ctrlp_custom_ignore = { - \ 'dir': '\v[\/]\.git$', - \ 'file': '\v\.pyc$', - \ } -let g:ctrlp_by_filename = 1 -noremap bu :CtrlPBuffer - -" submode -" A message will appear in the message line when you're in a submode -" " and stay there until the mode has existed. -let g:submode_always_show_submode = 1 -" -" " We're taking over the default setting. Don't worry we'll do -" " our best to put back the default functionality. -call submode#enter_with('window', 'n', '', '') -call submode#enter_with('scroll', 'n', '', 's') -" -" Note: will also get you out to the mode without this mapping. -" Note: also behaves as -call submode#leave_with('window', 'n', '', '') -call submode#leave_with('scroll', 'n', '', '') -" -" Go through every letter -for key in ['a','b','c','d','e','f','g','h','i','j','k','l','m', - \'n','o','p','q','r','s','t','u','v','w','x','y','z'] - " maps lowercase, uppercase and - call submode#map('window', 'n', '', key, '' . key) - call submode#map('window', 'n', '', toupper(key), '' . toupper(key)) - call submode#map('window', 'n', '', '', '' . '') -endfor - -" scroll bindings, make hjkl scroll half window -call submode#map('scroll', 'n', '', 'h', 'zH') -call submode#map('scroll', 'n', '', 'l', 'zL') -call submode#map('scroll', 'n', '', 'j', '') -call submode#map('scroll', 'n', '', 'k', '') - -" Go through symbols. Sadly, '|', not supported in submode plugin. -for key in ['=','_','+','-','<','>'] - call submode#map('window', 'n', '', key, '' . key) -endfor -" -" Old way, just in case. -nnoremap w - -" vim-python-pep8-indent -let python_pep8_indent_hang_closing = 0 - -" AutoPairs -let g:AutoPairs={'(':')', '[':']', '{':'}',"'":"'",'"':'"'} - -" Airline -let g:airline_theme='solarized' -let g:airline#extensions#ale#enabled = 1 - -" Fugitive -" Prevent opening of new tab with :Git command. -let g:fugitive_force_bang_command = 1 - -" Black -let g:black_linelength = 79 - -" IndentLine -let g:indentLine_enabled = 0 - -" lightline -let g:lightline = { - \ 'colorscheme': 'nord', - \ } set laststatus=2 +set noshowmode +set statusline= +set statusline+=%0*\ %n\ " Buffer number +set statusline+=%0*\ %{toupper(g:currentmode[mode()])}\ " The current mode +set statusline+=%1*\ %<%F%m%r%h%w\ " File path, modified, readonly, helpfile, preview +set statusline+=%2*\ %Y\ " FileType +set statusline+=%5*\ %{FugitiveHead()}\ +set statusline+=%3* + +hi User1 ctermfg=007 ctermbg=239 guibg=#4e4e4e guifg=#adadad +hi User2 ctermfg=007 ctermbg=236 guibg=#303030 guifg=#adadad +hi User3 ctermfg=236 ctermbg=236 guibg=#303030 guifg=#303030 +hi User4 ctermfg=239 ctermbg=239 guibg=#4e4e4e guifg=#4e4e4e +hi User5 ctermfg=007 ctermbg=236 guibg=#303030 guifg=#8FBCBB + +augroup Closer + au! + au FileType r,rmd + \ let b:closer = 1 | + \ let b:closer_flags = '([{' +augroup END + + +" let g:indent_blankline_char = '|' +" language server stuff + +if (has("nvim")) + "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > + let $NVIM_TUI_ENABLE_TRUE_COLOR=1 +endif diff --git a/.zshrc b/.zshrc index 5201ab3..1cca0a3 100644 --- a/.zshrc +++ b/.zshrc @@ -1,5 +1,3 @@ -alias vi "vim -u ~/dotfiles/.vimrc" - # If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH @@ -73,8 +71,6 @@ export ZSH="$HOME/.oh-my-zsh" # Add wisely, as too many plugins slow down shell startup. plugins=(git vi-mode) -source $ZSH/oh-my-zsh.sh - # User configuration # export MANPATH="/usr/local/man:$MANPATH" @@ -100,9 +96,9 @@ source $ZSH/oh-my-zsh.sh # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" -eval "$(oh-my-posh init --config '~/.zsh/theme/dracula.omp.json' zsh)" +alias vi "vim -u ~/dotfiles/.vimrc" -ZSH_THEME="dracula" +ZSH_THEME="amuse" plugins=(git vi-mode) tmux attach-session diff --git a/install.zsh b/install.zsh index 6a73fbf..e7b0996 100755 --- a/install.zsh +++ b/install.zsh @@ -1,5 +1,7 @@ #!/bin/zsh -git clone --single-branch --branch devhost https://github.com/nekoju/dotfiles.git ~/dotfiles-2 +# Add some logic here +git clone --single-branch --branch devhost https://github.com/nekoju/dotfiles.git ~/dotfiles \ + || cd ~/dotfiles && git pull source ~/dotfiles/.zshrc echo "Enjoy your defaults." From f87a7c0891a6eaafd5abd48ea98f5639fbec2ed3 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 28 Feb 2023 21:33:37 +0000 Subject: [PATCH 19/34] tmux working on servers after removing some plugins. --- .tmux.conf | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/.tmux.conf b/.tmux.conf index f49a2f4..769d219 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -4,16 +4,12 @@ unbind C-t set-option -g prefix C-a bind-key a send-prefix -set-option default-terminal "tmux-256color" -set-option -a terminal-overrides ",*256color*:Tc" -set-option -g default-shell /opt/homebrew/bin/fish unbind t bind t new-window unbind n bind C-] next-window bind C-[ previous-window -set-option -sa terminal-overrides ',tmux-256color:RGB' # split panes using | and - unbind '"' @@ -56,32 +52,10 @@ set-window-option -g mode-keys vi # # clear buffer with C-k # bind C-k send-keys -R \; clear-history -set -g @continuum-boot-options 'iterm' -set -g @continuum-boot 'on' -# set -g @resurrect-strategy-nvim 'session' -set -g @continuum-restore 'on' -set -g @continuum-save-interval '10' # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'dracula/tmux' - -# Other examples: -# set -g @plugin 'github_username/plugin_name' -# set -g @plugin 'git@github.com/user/plugin' -# set -g @plugin 'git@bitbucket.com/user/plugin' - -# set -g @resurrect-save 'S' -# set -g @resurrect-restore 'R' -bind C-r source-file ~/.config/tmux/session1 - - # for vim - # set -g @resurrect-strategy-vim 'session' - # for neovim - # set -g @resurrect-strategy-nvim 'session' - -source ~/.tmux.conf.d/nested-tmux/active-row.conf - set -g focus-events on # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) From 7313026c3863631640e7c4f30ab5727c4c82dc95 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Wed, 1 Mar 2023 20:27:53 +0000 Subject: [PATCH 20/34] Added vi bash binding. --- .gitconfig | 1 + .tmux.conf | 10 ++--- .vimrc | 26 ++++++------- .zshrc | 6 +-- .zshrc-backup | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 22 deletions(-) create mode 100644 .zshrc-backup diff --git a/.gitconfig b/.gitconfig index 7a45132..fa6b203 100755 --- a/.gitconfig +++ b/.gitconfig @@ -1,5 +1,6 @@ [user] name = Neko Juers + email = neko.juers@gmail.com [core] excludesfile = /Users/nekoj/.gitignore_global editor = nvim diff --git a/.tmux.conf b/.tmux.conf index 769d219..cecdcd4 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -23,17 +23,17 @@ set -sg escape-time 0 set-option -g base-index 1 set-window-option -g pane-base-index 1 -# # Mouse works as expected +# # # Mouse works as expected # set -g mode-mouse on # set -g mouse-select-pane on # set -g mouse-resize-pane on # set -g mouse-select-window on # move around panes with hjkl, as one would in vim after pressing ctrl-w -bind -r M-h select-pane -L -bind -r M-j select-pane -D -bind -r M-k select-pane -U -bind -r M-l select-pane -R +bind -n C-h select-pane -L +bind -n C-j select-pane -D +bind -n C-k select-pane -U +bind -n C-l select-pane -R # resize panes like vim # feel free to change the "1" to however many lines you want to resize by, only diff --git a/.vimrc b/.vimrc index e863988..67dec4b 100644 --- a/.vimrc +++ b/.vimrc @@ -3,9 +3,8 @@ if empty(glob(data_dir . '/autoload/plug.vim')) silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif -call plug#begin('~/.config/nvim/plugged/') +call plug#begin() Plug 'andymass/vim-matchup' -Plug 'chrisbra/csv.vim' Plug 'dracula/vim' " Plug 'dag/vim-fish' Plug 'elzr/vim-json' @@ -17,7 +16,6 @@ Plug 'Konfekt/FastFold' "" Why won't this work? " Plug 'lukas-reineke/indent-blankline.nvim' Plug 'mpjuers/showcontext' -Plug 'nathanaelkane/vim-indent-guides' "" To set up later " Plug 'spinks/vim-leader-guide' " Pragmatic folding for .py @@ -84,8 +82,8 @@ nmap sk :leftabove new nmap sj :rightbelow new -" Word count for latex -noremap :w !detex \| wc -w +" " Word count for latex +" noremap :w !detex \| wc -w " show open buffers with f5 noremap :buffers:buffer " open term window @@ -307,15 +305,15 @@ let g:currentmode={ \ 't' : 'Terminal' \} -set laststatus=2 -set noshowmode -set statusline= -set statusline+=%0*\ %n\ " Buffer number -set statusline+=%0*\ %{toupper(g:currentmode[mode()])}\ " The current mode -set statusline+=%1*\ %<%F%m%r%h%w\ " File path, modified, readonly, helpfile, preview -set statusline+=%2*\ %Y\ " FileType -set statusline+=%5*\ %{FugitiveHead()}\ -set statusline+=%3* +" set laststatus=2 +" set noshowmode +" set statusline= +" set statusline+=%0*\ %n\ " Buffer number +" set statusline+=%0*\ %{toupper(g:currentmode[mode()])}\ " The current mode +" set statusline+=%1*\ %<%F%m%r%h%w\ " File path, modified, readonly, helpfile, preview +" set statusline+=%2*\ %Y\ " FileType +" set statusline+=%5*\ %{FugitiveHead()}\ +" set statusline+=%3* hi User1 ctermfg=007 ctermbg=239 guibg=#4e4e4e guifg=#adadad hi User2 ctermfg=007 ctermbg=236 guibg=#303030 guifg=#adadad diff --git a/.zshrc b/.zshrc index 1cca0a3..dfe61d0 100644 --- a/.zshrc +++ b/.zshrc @@ -96,9 +96,9 @@ plugins=(git vi-mode) # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" -alias vi "vim -u ~/dotfiles/.vimrc" +# alias vi="vim -u ~/dotfiles/.vimrc" +alias ssh='f() { ssh -t "$1" "bash -o vi" };f' + ZSH_THEME="amuse" plugins=(git vi-mode) - -tmux attach-session diff --git a/.zshrc-backup b/.zshrc-backup new file mode 100644 index 0000000..1cca0a3 --- /dev/null +++ b/.zshrc-backup @@ -0,0 +1,104 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# 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 the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git vi-mode) + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" +alias vi "vim -u ~/dotfiles/.vimrc" + +ZSH_THEME="amuse" +plugins=(git vi-mode) + +tmux attach-session From b78d96573e9c774c5f4d1c918faffc123528b974 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 3 Mar 2023 15:27:39 +0000 Subject: [PATCH 21/34] Add alt-L/R window switching to tmux. --- .tmux.conf | 2 ++ .zshrc | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.tmux.conf b/.tmux.conf index cecdcd4..53e89a1 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -7,6 +7,8 @@ bind-key a send-prefix unbind t bind t new-window unbind n +bind -n M-Right next-window +bind -n M-Left previous-window bind C-] next-window bind C-[ previous-window diff --git a/.zshrc b/.zshrc index dfe61d0..303ac14 100644 --- a/.zshrc +++ b/.zshrc @@ -97,7 +97,7 @@ plugins=(git vi-mode) # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" # alias vi="vim -u ~/dotfiles/.vimrc" -alias ssh='f() { ssh -t "$1" "bash -o vi" };f' +alias sshvi='f() { ssh -t "$1" "bash -o vi" };f' ZSH_THEME="amuse" From 46b2d3dcc7f61f200566fa72f75405abfe14befa Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 6 Mar 2023 19:07:01 +0000 Subject: [PATCH 22/34] Add alt+arrow tab switching to tmux. --- .tmux.conf | 2 -- 1 file changed, 2 deletions(-) diff --git a/.tmux.conf b/.tmux.conf index 53e89a1..67595c6 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -9,8 +9,6 @@ bind t new-window unbind n bind -n M-Right next-window bind -n M-Left previous-window -bind C-] next-window -bind C-[ previous-window # split panes using | and - From 01608bcd1c14f7b5709e972bfd59d3aec04d9333 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 7 Mar 2023 18:44:54 +0000 Subject: [PATCH 23/34] Add screen-256color to tmux. --- .tmux.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/.tmux.conf b/.tmux.conf index 67595c6..5c2c248 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -57,6 +57,7 @@ set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'dracula/tmux' set -g focus-events on +set -g default-terminal "screen-256color" # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run -b '~/.tmux/plugins/tpm/tpm' From 441db7bac9dcb057d68ccccbcf4e1f97322b2d7f Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 10 Mar 2023 21:07:04 +0000 Subject: [PATCH 24/34] Add ansible playbook for dotfiles. --- .gitignore | 1 + dotfiles.yaml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 dotfiles.yaml diff --git a/.gitignore b/.gitignore index c5c6c74..a88ec32 100755 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ bin/ext4fuse .config/gtk-2.0 .ipython/ .tmux/plugins +inventory diff --git a/dotfiles.yaml b/dotfiles.yaml new file mode 100644 index 0000000..19cb10b --- /dev/null +++ b/dotfiles.yaml @@ -0,0 +1,30 @@ +--- +- name: Dotfiles + hosts: list + tasks: + - name: Clone dotfiles + ansible.builtin.git: + repo: https://github.com/nekoju/dotfiles.git + dest: ~/dotfiles + depth: 3 + single_branch: true + version: servers + - name: Remove existing dotfiles + ansible.builtin.file: + path: "{{ item.dest }}" + state: absent + - name: Symlink relevant dotfiles + ansible.builtin.file: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + owner: njuers + group: njuers + state: link + loop: + - src: ~/dotfiles/.vimrc + dest: ~/.vimrc + - src: ~/dotfiles/.zshrc + dest: ~/.zshrc + - src: ~/dotfiles/.gitconfig + dest: ~/.gitconfig +... From 3db04bd14a389eb4439c2337f875a55d8cff3c45 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 10 Mar 2023 21:21:08 +0000 Subject: [PATCH 25/34] Update .zshrc with logic for bastion server aliases. --- .zshrc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.zshrc b/.zshrc index 303ac14..7d8a1ed 100644 --- a/.zshrc +++ b/.zshrc @@ -97,8 +97,14 @@ plugins=(git vi-mode) # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" # alias vi="vim -u ~/dotfiles/.vimrc" +ZSH_THEME="amuse" alias sshvi='f() { ssh -t "$1" "bash -o vi" };f' +if grep '[skip|leap|jump]' <(hostname) &> /dev/null ; then + echo "Don't use sudo here asshole." + alias sudo="echo Do NOT use sudo here asshole." + ZSH_THEME="jonathon" +fi +bindkey -v -ZSH_THEME="amuse" plugins=(git vi-mode) From 99dd48afc3e39a9b3175f5bf2522edf734d55001 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Mar 2023 13:16:22 +0000 Subject: [PATCH 26/34] Update .bashrc and .aliases for servers. --- .aliases | 31 ++++++++++++++++++++++++++++ .bashrc | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 .aliases diff --git a/.aliases b/.aliases new file mode 100644 index 0000000..94438db --- /dev/null +++ b/.aliases @@ -0,0 +1,31 @@ +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls="ls --color=auto" + + alias grep="grep --color=auto" + alias fgrep="fgrep --color=auto" + alias egrep="egrep --color=auto" +fi + +alias ll="ls -alF" +alias la="ls -A" +alias l="ls -CF" + +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +change-terminal-font () { + [[ -z "${1}" || -z "${2}" ]] && echo "Usage: change-terminal-font FROM_SIZE TO_SIZE" + + local from="${1}" + local to="${2}" + local windows_user="$(powershell.exe '$env:UserName' | sed -e 's/\r//g')" + local terminal_config="/c/Users/${windows_user}/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/LocalState/settings.json" + + perl -i -pe "s/\"fontSize\": ${from}/\"fontSize\": ${to}/g" "${terminal_config}" +} + +alias diff="diff --color -u" + +alias 755d="find . -type d -exec chmod 755 {} \;" + +alias 644f="find . -type f -exec chmod 644 {} \;" diff --git a/.bashrc b/.bashrc index eb430c4..8a2be09 100644 --- a/.bashrc +++ b/.bashrc @@ -1,3 +1,61 @@ +#!/usr/bin/env bash +# This file runs every time you open a new terminal window. -unset HISTFILE -export LESSHISTFILE="-" +set -o vi + +# Limit number of lines and entries in the history. HISTFILESIZE controls the +# history file on disk and HISTSIZE controls lines stored in memory. +export HISTFILESIZE=50000 +export HISTSIZE=50000 + +# Add a timestamp to each command. +export HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S: " + +# Duplicate lines and lines starting with a space are not put into the history. +export HISTCONTROL=ignoreboth + +# Append to the history file, don't overwrite it. +shopt -s histappend + +# Ensure $LINES and $COLUMNS always get updated. +shopt -s checkwinsize + +# Enable bash completion. +[ -f /etc/bash_completion ] && source /etc/bash_completion + +# Improve output of less for binary files. +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# Load aliases if they exist. +[ -f "${HOME}/.aliases" ] && source "${HOME}/.aliases" +[ -f "${HOME}/.aliases.local" ] && source "${HOME}/.aliases.local" + +# Determine git branch. +parse_git_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} + +# Set a non-distracting prompt. +PS1='\[\]\u@\h\[\]:\[\]\w\[\] \[\]$(parse_git_branch)\[\]\$ ' + +# If it's an xterm compatible terminal, set the title to user@host: dir. +case "${TERM}" in +xterm*|rxvt*) + PS1="\[\e]0;\u@\h: \w\a\]${PS1}" + ;; +*) + ;; +esac +# .bashrc + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi + +# Uncomment the following line if you don't like systemctl's auto-paging feature: +# export SYSTEMD_PAGER= + +# User specific aliases and functions + +[ -f ~/.fzf.bash ] && source ~/.fzf.bash From 003aca72dab65185b22f27391eedb2ab06b04f21 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Mar 2023 13:28:01 +0000 Subject: [PATCH 27/34] Include aliases in .gitconfig. --- .bashrc | 4 +--- .gitconfig | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bashrc b/.bashrc index 8a2be09..68827f4 100644 --- a/.bashrc +++ b/.bashrc @@ -56,6 +56,4 @@ fi # Uncomment the following line if you don't like systemctl's auto-paging feature: # export SYSTEMD_PAGER= -# User specific aliases and functions - -[ -f ~/.fzf.bash ] && source ~/.fzf.bash +export PATH=$PATH:~/.gitaliases diff --git a/.gitconfig b/.gitconfig index fa6b203..b986ba3 100755 --- a/.gitconfig +++ b/.gitconfig @@ -40,3 +40,5 @@ cmd = nvr -s -d $LOCAL $REMOTE [mergetool "nvr"] cmd = nvr -s -d $LOCAL $BASE $REMOTE $MERGED -c 'wincmd J | wincmd =' +[include] + path = ~/.gitaliases/* From 03140f1a67f5c3ed858a21673906031cd83595ce Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Mar 2023 13:34:05 +0000 Subject: [PATCH 28/34] Set up install script. --- install.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..cfd960f --- /dev/null +++ b/install.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# Add some logic here +git clone --single-branch --branch servers https://github.com/nekoju/dotfiles.git ~/dotfiles \ + || cd ~/dotfiles && git pull --rebase + +files=( .bashrc .aliases .gitconfig .gitaliases ) +for file in "${files[@]}"; do + echo linking "$file" + mv ~/"$file" ~/"$file".bak \ + && ln -sf ~/dotfiles/"$file" ~/"$file" \ + && echo done +done From 0d64cdfbb5b355fce00cf8018cc9127cf0d0a4b5 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Mar 2023 14:19:43 +0000 Subject: [PATCH 29/34] Add .bash_profile to setup. --- .bash_profile | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ .bashrc | 51 --------------------------------------------------- install.sh | 2 +- 3 files changed, 51 insertions(+), 52 deletions(-) create mode 100644 .bash_profile diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..9e8be6c --- /dev/null +++ b/.bash_profile @@ -0,0 +1,50 @@ +# Add a timestamp to each command. +set -o vi +export HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S: " + +# Duplicate lines and lines starting with a space are not put into the history. +export HISTCONTROL=ignoreboth + +# Append to the history file, don't overwrite it. +shopt -s histappend + +# Ensure $LINES and $COLUMNS always get updated. +shopt -s checkwinsize + +# Enable bash completion. +[ -f /etc/bash_completion ] && source /etc/bash_completion + +# Improve output of less for binary files. +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# Load aliases if they exist. +[ -f "${HOME}/.aliases" ] && source "${HOME}/.aliases" +[ -f "${HOME}/.aliases.local" ] && source "${HOME}/.aliases.local" + +# Determine git branch. +parse_git_branch() { + git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' +} + +# Set a non-distracting prompt. +PS1='\[\]\u@\h\[\]:\[\]\w\[\] \[\]$(parse_git_branch)\[\]\$ ' + +# If it's an xterm compatible terminal, set the title to user@host: dir. +case "${TERM}" in +xterm*|rxvt*) + PS1="\[\e]0;\u@\h: \w\a\]${PS1}" + ;; +*) + ;; +esac +# .bashrc + +# Source global definitions +if [ -f /etc/bashrc ]; then + . /etc/bashrc +fi + +# Uncomment the following line if you don't like systemctl's auto-paging feature: +# export SYSTEMD_PAGER= + +export PATH=$PATH:~/.gitaliases diff --git a/.bashrc b/.bashrc index 68827f4..201a981 100644 --- a/.bashrc +++ b/.bashrc @@ -1,59 +1,8 @@ #!/usr/bin/env bash # This file runs every time you open a new terminal window. -set -o vi # Limit number of lines and entries in the history. HISTFILESIZE controls the # history file on disk and HISTSIZE controls lines stored in memory. export HISTFILESIZE=50000 export HISTSIZE=50000 - -# Add a timestamp to each command. -export HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S: " - -# Duplicate lines and lines starting with a space are not put into the history. -export HISTCONTROL=ignoreboth - -# Append to the history file, don't overwrite it. -shopt -s histappend - -# Ensure $LINES and $COLUMNS always get updated. -shopt -s checkwinsize - -# Enable bash completion. -[ -f /etc/bash_completion ] && source /etc/bash_completion - -# Improve output of less for binary files. -[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# Load aliases if they exist. -[ -f "${HOME}/.aliases" ] && source "${HOME}/.aliases" -[ -f "${HOME}/.aliases.local" ] && source "${HOME}/.aliases.local" - -# Determine git branch. -parse_git_branch() { - git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' -} - -# Set a non-distracting prompt. -PS1='\[\]\u@\h\[\]:\[\]\w\[\] \[\]$(parse_git_branch)\[\]\$ ' - -# If it's an xterm compatible terminal, set the title to user@host: dir. -case "${TERM}" in -xterm*|rxvt*) - PS1="\[\e]0;\u@\h: \w\a\]${PS1}" - ;; -*) - ;; -esac -# .bashrc - -# Source global definitions -if [ -f /etc/bashrc ]; then - . /etc/bashrc -fi - -# Uncomment the following line if you don't like systemctl's auto-paging feature: -# export SYSTEMD_PAGER= - -export PATH=$PATH:~/.gitaliases diff --git a/install.sh b/install.sh index cfd960f..b9f09c6 100755 --- a/install.sh +++ b/install.sh @@ -4,7 +4,7 @@ git clone --single-branch --branch servers https://github.com/nekoju/dotfiles.git ~/dotfiles \ || cd ~/dotfiles && git pull --rebase -files=( .bashrc .aliases .gitconfig .gitaliases ) +files=( .bashrc .aliases .gitconfig .gitaliases .bash_profile ) for file in "${files[@]}"; do echo linking "$file" mv ~/"$file" ~/"$file".bak \ From df6ff38d9a62cf69a8a63b2937c0dae2891c857c Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 7 Mar 2023 21:20:31 +0000 Subject: [PATCH 30/34] Add bindkey -v to .zshrc. --- .gitconfig | 18 ------------------ .zshrc | 7 +++---- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/.gitconfig b/.gitconfig index b986ba3..1413bae 100755 --- a/.gitconfig +++ b/.gitconfig @@ -3,7 +3,6 @@ email = neko.juers@gmail.com [core] excludesfile = /Users/nekoj/.gitignore_global - editor = nvim [alias] tree = log --branches --remotes --tags --graph --decorate --pretty=oneline --abbrev-commit tracked = !"git ls-tree -r \"$1\" --name-only #" @@ -23,22 +22,5 @@ templatedir = ~/.git_template [pull] rebase = preserve -[filter "dropoutput_nb"] - clean = mathematica-notebook-filter - smudge = cat -[filter "lfs"] - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - process = git-lfs filter-process - required = true -[merge] - conflictstyle = diff3 - tool = nvr -[diff] - tool = nvr -[difftool "nvr"] - cmd = nvr -s -d $LOCAL $REMOTE -[mergetool "nvr"] - cmd = nvr -s -d $LOCAL $BASE $REMOTE $MERGED -c 'wincmd J | wincmd =' [include] path = ~/.gitaliases/* diff --git a/.zshrc b/.zshrc index 7d8a1ed..e2c4149 100644 --- a/.zshrc +++ b/.zshrc @@ -69,7 +69,6 @@ export ZSH="$HOME/.oh-my-zsh" # Custom plugins may be added to $ZSH_CUSTOM/plugins/ # Example format: plugins=(rails git textmate ruby lighthouse) # Add wisely, as too many plugins slow down shell startup. -plugins=(git vi-mode) # User configuration @@ -97,6 +96,9 @@ plugins=(git vi-mode) # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" # alias vi="vim -u ~/dotfiles/.vimrc" +plugins=(git) +alias sshvi='f() { ssh -t "$1" "bash -o vi" };f' +alias eyamlEdit='eyaml edit --pkcs7-private-key=/etc/puppetlabs/code/secrets/hiera/private_key.pkcs7.pem --pkcs7-public-key=/etc/puppetlabs/code/secrets/hiera/public_key.pkcs7.pem' ZSH_THEME="amuse" alias sshvi='f() { ssh -t "$1" "bash -o vi" };f' if grep '[skip|leap|jump]' <(hostname) &> /dev/null ; then @@ -105,6 +107,3 @@ if grep '[skip|leap|jump]' <(hostname) &> /dev/null ; then ZSH_THEME="jonathon" fi bindkey -v - - -plugins=(git vi-mode) From 9efa25268642590a5a45f7eb96d06e7123bc55be Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Thu, 16 Mar 2023 17:48:02 +0000 Subject: [PATCH 31/34] Fix .zshrc. --- .zshrc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.zshrc b/.zshrc index e2c4149..592d3e2 100644 --- a/.zshrc +++ b/.zshrc @@ -104,6 +104,7 @@ alias sshvi='f() { ssh -t "$1" "bash -o vi" };f' if grep '[skip|leap|jump]' <(hostname) &> /dev/null ; then echo "Don't use sudo here asshole." alias sudo="echo Do NOT use sudo here asshole." - ZSH_THEME="jonathon" + ZSH_THEME="jonathan" fi bindkey -v +source ~/.oh-my-zsh/oh-my-zsh.sh From 78669b0eb92a018239060e1bdde053122fb514b5 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 24 Mar 2023 13:40:06 +0000 Subject: [PATCH 32/34] Add git mergetool handling for vanilla vim. --- .gitconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitconfig b/.gitconfig index 1413bae..5b90329 100755 --- a/.gitconfig +++ b/.gitconfig @@ -24,3 +24,6 @@ rebase = preserve [include] path = ~/.gitaliases/* +[merge] + conflictstyle = diff3 + mergetool = vimdiff From ba9e8c988206a5255f346beed18f454717b4894c Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Fri, 31 Mar 2023 13:10:16 +0000 Subject: [PATCH 33/34] Add vim-javascript.vim --- .config/nvim/init.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim index e863988..dba4daa 100644 --- a/.config/nvim/init.vim +++ b/.config/nvim/init.vim @@ -18,6 +18,7 @@ Plug 'Konfekt/FastFold' " Plug 'lukas-reineke/indent-blankline.nvim' Plug 'mpjuers/showcontext' Plug 'nathanaelkane/vim-indent-guides' +Plug 'pangloss/vim-javascript' "" To set up later " Plug 'spinks/vim-leader-guide' " Pragmatic folding for .py From c8e19334f73b66b4b2f7e5c584150cc9fc529028 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Wed, 17 May 2023 17:45:59 +0000 Subject: [PATCH 34/34] Change git email. --- .aliases | 2 ++ .gitconfig | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.aliases b/.aliases index 94438db..9561a42 100644 --- a/.aliases +++ b/.aliases @@ -29,3 +29,5 @@ alias diff="diff --color -u" alias 755d="find . -type d -exec chmod 755 {} \;" alias 644f="find . -type f -exec chmod 644 {} \;" + +alias mypuppet="cd /etc/puppetlabs/code/environments/njuers/" diff --git a/.gitconfig b/.gitconfig index 5b90329..f6859c1 100755 --- a/.gitconfig +++ b/.gitconfig @@ -1,8 +1,8 @@ [user] name = Neko Juers - email = neko.juers@gmail.com + email = njuers@globalnoc.iu.edu [core] - excludesfile = /Users/nekoj/.gitignore_global + excludesfile = /home/njuers/.gitignore_global [alias] tree = log --branches --remotes --tags --graph --decorate --pretty=oneline --abbrev-commit tracked = !"git ls-tree -r \"$1\" --name-only #" @@ -27,3 +27,6 @@ [merge] conflictstyle = diff3 mergetool = vimdiff +[safe] + directory = /etc/puppetlabs/code/environments/production/hieradat + directory = /etc/puppetlabs/code/environments/production/hieradata