├── .gitignore ├── home ├── tool-versions ├── master-gitignore ├── gitconfig-groupon ├── gitconfig ├── finicky.js └── tmux.conf ├── config ├── bat │ └── config ├── fish │ ├── functions │ │ ├── nvm.fish │ │ ├── nvm_find_nvmrc.fish │ │ ├── is_in_git_repo.fish │ │ ├── fish_prompt.fish │ │ ├── gho.fish │ │ ├── load_nvm.fish │ │ └── lfcd.fish │ ├── conf.d │ │ ├── omf.fish │ │ ├── aliases.fish │ │ └── abbreviations.fish │ ├── config.fish │ └── fish_variables └── karabiner.edn ├── .gitmodules ├── .vscode └── tasks.json ├── install ├── install.conf.yaml ├── vscode ├── README.md ├── keybindings.json └── settings.json ├── README.md └── iterm2 ├── vscodedark.itermcolors └── Default-profile.json /.gitignore: -------------------------------------------------------------------------------- 1 | .luarc.json 2 | -------------------------------------------------------------------------------- /home/tool-versions: -------------------------------------------------------------------------------- 1 | nodejs 18.17.1 2 | 3 | -------------------------------------------------------------------------------- /home/master-gitignore: -------------------------------------------------------------------------------- 1 | Session.vim 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /config/bat/config: -------------------------------------------------------------------------------- 1 | --theme="default" 2 | --style="numbers,changes" 3 | 4 | -------------------------------------------------------------------------------- /config/fish/functions/nvm.fish: -------------------------------------------------------------------------------- 1 | function nvm 2 | bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv 3 | end -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dotbot"] 2 | path = dotbot 3 | url = https://github.com/anishathalye/dotbot 4 | ignore = dirty 5 | -------------------------------------------------------------------------------- /config/fish/functions/nvm_find_nvmrc.fish: -------------------------------------------------------------------------------- 1 | function nvm_find_nvmrc 2 | bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc 3 | end 4 | -------------------------------------------------------------------------------- /config/fish/functions/is_in_git_repo.fish: -------------------------------------------------------------------------------- 1 | function is_in_git_repo --description 'Check if current directory is a Git repo' 2 | git rev-parse HEAD >/dev/null 2>&1 3 | end 4 | -------------------------------------------------------------------------------- /config/fish/functions/fish_prompt.fish: -------------------------------------------------------------------------------- 1 | function fish_prompt 2 | set_color $fish_color_cwd 3 | echo -n (basename $PWD) 4 | set_color normal 5 | echo -n ' ) ' 6 | end 7 | -------------------------------------------------------------------------------- /config/fish/conf.d/omf.fish: -------------------------------------------------------------------------------- 1 | # Path to Oh My Fish install. 2 | set -q XDG_DATA_HOME 3 | and set -gx OMF_PATH "$XDG_DATA_HOME/omf" 4 | or set -gx OMF_PATH "$HOME/.local/share/omf" 5 | 6 | # Load Oh My Fish configuration. 7 | source $OMF_PATH/init.fish 8 | -------------------------------------------------------------------------------- /home/gitconfig-groupon: -------------------------------------------------------------------------------- 1 | [user] 2 | name = c_fhalas 3 | email = c_fhalas@groupon.com 4 | [url "ssh://git@github.groupondev.com"] 5 | insteadOf = https://github.groupondev.com 6 | [core] 7 | sshCommand = ssh -i ~/.ssh/c-fhalas 8 | [commit] 9 | gpgsign = false -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "Karabiner", 6 | "type": "process", 7 | "command": "goku", 8 | "problemMatcher": [] 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /config/fish/conf.d/aliases.fish: -------------------------------------------------------------------------------- 1 | if status --is-interactive 2 | alias cat 'bat' 3 | alias python 'python3' 4 | # alias vi 'nvim -S Session.vim' 5 | # alias vim 'nvim -S Session.vim' 6 | alias brow '/usr/local/bin/brew' 7 | alias rgf 'rg --files | rg' # or use "fd filename" 8 | end 9 | -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | CONFIG="install.conf.yaml" 6 | DOTBOT_DIR="dotbot" 7 | 8 | DOTBOT_BIN="bin/dotbot" 9 | BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 10 | 11 | cd "${BASEDIR}" 12 | git -C "${DOTBOT_DIR}" submodule sync --quiet --recursive 13 | git submodule update --init --recursive "${DOTBOT_DIR}" 14 | 15 | "${BASEDIR}/${DOTBOT_DIR}/${DOTBOT_BIN}" -d "${BASEDIR}" -c "${CONFIG}" "${@}" 16 | -------------------------------------------------------------------------------- /config/fish/functions/gho.fish: -------------------------------------------------------------------------------- 1 | function gho --description 'Open current Git branch in browser' 2 | if not is_in_git_repo 3 | exit 1 4 | end 5 | 6 | set -l url (git config --get remote.origin.url) 7 | set -l branch (git rev-parse --abbrev-ref --symbolic-full-name HEAD) 8 | if test $branch = HEAD 9 | set branch (git rev-parse HEAD) 10 | end 11 | 12 | set -l converted_url (echo "$url/tree/$branch" | 13 | sed 's|git@github.com:\(.*\)\.git|https://github.com/\1|') 14 | 15 | open "$converted_url" 16 | end 17 | -------------------------------------------------------------------------------- /config/fish/functions/load_nvm.fish: -------------------------------------------------------------------------------- 1 | function load_nvm --on-variable="PWD" 2 | set -l default_node_version (nvm version default) 3 | set -l node_version (nvm version) 4 | set -l nvmrc_path (nvm_find_nvmrc) 5 | if test -n "$nvmrc_path" 6 | set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) 7 | if test "$nvmrc_node_version" = "N/A" 8 | nvm install (cat $nvmrc_path) 9 | else if test "$nvmrc_node_version" != "$node_version" 10 | nvm use $nvmrc_node_version 11 | end 12 | else if test "$node_version" != "$default_node_version" 13 | echo "Reverting to default Node version" 14 | nvm use default 15 | end 16 | end -------------------------------------------------------------------------------- /config/fish/conf.d/abbreviations.fish: -------------------------------------------------------------------------------- 1 | if status --is-interactive 2 | abbr -a -- - 'cd -' 3 | abbr -a -- .. 'cd ..' 4 | abbr -a -- ... 'cd ../..' 5 | 6 | # abbr -a -- yarnup 'yarn upgrade-interactive --latest' 7 | 8 | abbr -a -g brewup 'brew update && brew upgrade && brew cleanup && brew doctor' 9 | 10 | abbr -a -g tma 'tmux attach' 11 | abbr -a -g tms 'tmux switch' 12 | abbr -a -g tmls 'tmux list-sessions' 13 | 14 | abbr -a -g gc 'git commit -m' 15 | abbr -a -g gm 'git merge' 16 | abbr -a -g gco 'git checkout' 17 | abbr -a -g gcb 'git checkout -b' 18 | abbr -a -g gP 'git push' 19 | abbr -a -g gf 'git fetch' 20 | abbr -a -g gl 'git pull' 21 | abbr -a -g gs 'git status' 22 | abbr -a -g ga 'git add' 23 | abbr -a -g gaa 'git add --all' 24 | abbr -a -g gb 'git branch' 25 | end 26 | -------------------------------------------------------------------------------- /config/fish/functions/lfcd.fish: -------------------------------------------------------------------------------- 1 | # Change working dir in fish to last dir in lf on exit (adapted from ranger). 2 | # 3 | # You may put this file to a directory in $fish_function_path variable: 4 | # 5 | # mkdir -p ~/.config/fish/functions 6 | # ln -s "/path/to/lfcd.fish" ~/.config/fish/functions 7 | # 8 | # You may also like to assign a key to this command: 9 | # 10 | # bind \co 'set old_tty (stty -g); stty sane; lfcd; stty $old_tty; commandline -f repaint' 11 | # 12 | # You may put this in a function called fish_user_key_bindings. 13 | 14 | function lfcd 15 | set tmp (mktemp) 16 | lf -last-dir-path=$tmp $argv 17 | if test -f "$tmp" 18 | set dir (cat $tmp) 19 | rm -f $tmp 20 | if test -d "$dir" 21 | if test "$dir" != (pwd) 22 | cd $dir 23 | end 24 | end 25 | end 26 | end 27 | 28 | -------------------------------------------------------------------------------- /home/gitconfig: -------------------------------------------------------------------------------- 1 | [user] 2 | name = halafi 3 | email = filiphalas74@gmail.com 4 | signingkey = D2559CD7C018B12E 5 | [credential] 6 | helper = store 7 | [core] 8 | excludesFile = ~/.master-gitignore 9 | editor = nvim 10 | pager = delta 11 | [commit] 12 | template = ~/.stCommitMsg 13 | gpgsign = true 14 | [merge] 15 | tool = nvim 16 | [mergetool "nvim"] 17 | cmd = nvim -f \"$MERGED\" 18 | [mergetool "vscode"] 19 | cmd = code --wait $MERGED 20 | [mergetool] 21 | prompt = false 22 | keepBackup = false 23 | [url "ssh://git@github.com/"] 24 | insteadOf = https://github.com/ 25 | [gpg] 26 | program = /opt/homebrew/bin/gpg 27 | [difftool "sourcetree"] 28 | cmd = opendiff \"$LOCAL\" \"$REMOTE\" 29 | path = 30 | [mergetool "sourcetree"] 31 | cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\" 32 | trustExitCode = true 33 | [includeIf "gitdir:~/Projects/groupon/"] 34 | path = .gitconfig-groupon 35 | -------------------------------------------------------------------------------- /install.conf.yaml: -------------------------------------------------------------------------------- 1 | - defaults: 2 | link: 3 | create: true 4 | relink: true 5 | 6 | # remove dead symlinks 7 | - clean: 8 | ~/: 9 | force: true 10 | ~/.config: 11 | recursive: true 12 | 13 | - link: 14 | # home 15 | ~/: 16 | glob: true 17 | path: home/* 18 | prefix: "." 19 | # nvim 20 | # ~/.config/lf/lfrc: config/lf/lfrc 21 | # ~/.config/lf/previewer.sh: config/lf/previewer.sh 22 | ~/.config/bat/config: config/bat/config 23 | # ~/.config/nvim/init.lua: config/nvim/init.lua 24 | # ~/.config/nvim/lua: 25 | # glob: true 26 | # path: config/nvim/lua/* 27 | # ~/.config/nvim/snippets: 28 | # glob: true 29 | # path: config/nvim/snippets/* 30 | # # other 31 | ~/.config/karabiner.edn: config/karabiner.edn 32 | ~/.config/fish: 33 | glob: true 34 | path: config/fish/* 35 | # lazygit 36 | ~/Library/Application Support/lazygit/config.yml: config/lazygit/config.yml 37 | -------------------------------------------------------------------------------- /config/fish/config.fish: -------------------------------------------------------------------------------- 1 | # DISABLED UNTIL NEEDED 2 | #fish_add_path $GOBIN 3 | #fish_add_path $GOROOT/bin 4 | #fish_add_path /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin 5 | #fish_add_path /opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/bin/ 6 | # pipx 7 | #fish_add_path ~/.local/bin 8 | #fish_add_path $HOME/.poetry/bin 9 | #fish_add_path $HOME/Library/Application\ Support/pypoetry/venv/bin 10 | #fish_add_path $HOME/tools/lua-language-server/bin 11 | #fish_add_path $HOME/.cargo/bin 12 | 13 | # output of $(yarn global bin) 14 | # fish_add_path ~/.asdf/installs/nodejs/18.17.1/.npm/bin 15 | source /opt/homebrew/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.fish.inc 16 | 17 | 18 | # need to load brew binaries 19 | eval "$(/opt/homebrew/bin/brew shellenv)" 20 | # eval "$(pyenv init --path)" 21 | # source (brew --prefix asdf)/libexec/asdf.fish 22 | load_nvm > /dev/stderr 23 | 24 | 25 | # disable greeting 26 | set fish_greeting 27 | 28 | # automatically call commands 29 | functions --copy cd standard_cd 30 | # function cd 31 | # standard_cd $argv; and exa 32 | # end 33 | # function zz 34 | # z $argv; and onefetch 2>/dev/null; and exa 35 | # end 36 | 37 | export GPG_TTY=$(tty) 38 | 39 | # Created by `pipx` on 2025-05-05 12:30:07 40 | set PATH $PATH /Users/halafi/.local/bin 41 | -------------------------------------------------------------------------------- /vscode/README.md: -------------------------------------------------------------------------------- 1 | # vsCode 2 | 3 | Backup of my config but since it's synced with GitHub this may not be kept up to date. 4 | 5 | ## code --list-extensions 6 | 7 | includes some disabled ones 8 | 9 | ``` 10 | alefragnani.Bookmarks 11 | alefragnani.project-manager 12 | bajdzis.vscode-database 13 | be5invis.toml 14 | bradlc.vscode-tailwindcss 15 | codezombiech.gitignore 16 | dbaeumer.vscode-eslint 17 | donjayamanne.githistory 18 | eamodio.gitlens 19 | EditorConfig.EditorConfig 20 | esbenp.prettier-vscode 21 | firsttris.vscode-jest-runner 22 | golang.go 23 | GraphQL.vscode-graphql 24 | GraphQL.vscode-graphql-syntax 25 | hashicorp.terraform 26 | ionutvmi.path-autocomplete 27 | JakeBecker.elixir-ls 28 | kevinglasson.cornflakes-linter 29 | mikestead.dotenv 30 | mjmcloug.vscode-elixir 31 | ms-azuretools.vscode-docker 32 | ms-python.python 33 | ms-python.vscode-pylance 34 | ms-toolsai.jupyter 35 | ms-toolsai.jupyter-keymap 36 | ms-toolsai.jupyter-renderers 37 | ms-toolsai.vscode-jupyter-cell-tags 38 | ms-toolsai.vscode-jupyter-slideshow 39 | Prisma.prisma 40 | riazxrazor.html-to-jsx 41 | rust-lang.rust-analyzer 42 | stylelint.vscode-stylelint 43 | svelte.svelte-vscode 44 | TabNine.tabnine-vscode 45 | toba.vsfire 46 | vadimcn.vscode-lldb 47 | vscodevim.vim 48 | yzhang.markdown-all-in-one 49 | ZainChen.json 50 | ziyasal.vscode-open-in-github 51 | ``` -------------------------------------------------------------------------------- /home/finicky.js: -------------------------------------------------------------------------------- 1 | const WORK_RELATED_HOSTS = [ 2 | "localhost", 3 | "127.0.0.1", 4 | "zenhub.com", 5 | "app.zenhub.com", 6 | "github.com", 7 | "zoom.us", 8 | "cloud.google.com", 9 | "docs.google.com", 10 | "chrome.google.com", 11 | "drive.google.com", 12 | "meet.google.com", 13 | "figma.com", 14 | "www.figma.com", 15 | "developer.chrome.com", 16 | "groups.google.com", 17 | "miro.com", 18 | ]; 19 | 20 | module.exports = { 21 | defaultBrowser: { name: "Google Chrome", profile: "Filip (eucalyptus.vc)" }, 22 | options: { 23 | hideIcon: true, 24 | checkForUpdate: true, 25 | logRequests: false, 26 | }, 27 | rewrite: [ 28 | { 29 | // Redirect all urls to use https 30 | match: ({ url }) => url.protocol === "http" && url.host !== 'localhost' && url.host !== '127.0.0.1', 31 | url: { protocol: "https" }, 32 | }, 33 | ], 34 | handlers: [ 35 | { 36 | match: ({ url }) => WORK_RELATED_HOSTS.includes(url.host), 37 | browser: { 38 | name: "Google Chrome", 39 | profile: "Profile 1", 40 | }, 41 | }, 42 | { 43 | // Open any url that includes the string "workplace" 44 | match: /eucalyptus/, // handle e.g. notion links 45 | browser: { 46 | name: "Google Chrome", 47 | profile: "Profile 3", 48 | }, 49 | }, 50 | ], 51 | }; 52 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | 3 | I use VSCODE + VIM plugin as I got [tired of maintaining Neovim](https://filiphalas.com/from-neovim-back-to-vscode) running properly and since I could never really got rid of doing certain things in VSCode such as debugging, jupyter notebooks, etc. 4 | 5 | My dotfiles for karabiner (60% keyboard layout), tmux, fish and everything configurable. 6 | Setup for web development (React with TypeScript), Go, Lua and Rust on macOS Monterey. 7 | 8 | Managed with [Dotbot](https://github.com/anishathalye/dotbot). 9 | 10 | ## Terminal 11 | 12 | I am mostly using VSCode terminal these days with Tmux + Fish and [iTerm2](https://github.com/gnachman/iTerm2) for macOS. 13 | 14 | - [Fish](https://github.com/fish-shell/fish-shell) 🐟 with [ohmyfish](https://github.com/oh-my-fish/oh-my-fish) 15 | 16 | - [tmux](https://github.com/tmux/tmux) (no session management at the moment) 17 | 18 | 19 | 20 | - [goku](https://github.com/yqrashawn/GokuRakuJoudo/) + [karabiner elements](https://karabiner-elements.pqrs.org/) for making 60% keyboard layout usable 21 | 22 | 23 | 24 | 25 | 26 | ## Dependencies 27 | 28 | ### System 29 | 30 | 1. Install [brew](https://brew.sh/) 31 | 2. Install fish: `brew install fish` 32 | 3. Install [omf](https://github.com/oh-my-fish/oh-my-fish) and `omf install z` 33 | 4. [Tmux plugin manager](https://github.com/tmux-plugins/tpm) (q+i to install plugins) 34 | 5. Brew packages: 35 | - `brew install asdf fish fzf fd bat git-delta ripgrep tmux yarn htop google-cloud-sdk terraform` 36 | 6. Install [FiraCode font patched with icons](https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/FiraCode/Retina/FiraCodeNerdFont-Retina.ttf) for iTerm 37 | 38 | ### Git 39 | 1. Generate and setup ssh key if needed https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent 40 | 41 | ### ⌨️ Keyboard 42 | 1. install karabiner `brew install karabiner-elements` 43 | 2. install goku `brew install yqrashawn/goku/goku` 44 | - `softwareupdate --install-rosetta` if needed for goku 45 | 3. make sure karabiner profile is named `Default` 46 | 4. run `goku` once to generate karabiner config 47 | 48 | ### Node.js 49 | 1. `asdf plugin add nodejs` 50 | 2. `asdf install nodejs 18.xx.x` (latest lts) 51 | 3. update `.tool-versions` by running `asdf global nodejs 16.xx.x` (latest lts) 52 | 53 | ### Go 54 | 1. Install [Go](https://go.dev/doc/install) 55 | 2. Adjust GO fish_variables if needed 56 | 57 | ### Rust / Cargo 58 | 1. https://doc.rust-lang.org/cargo/getting-started/installation.html 59 | 60 | ### Elixir 61 | 1. `asdf plugin add elixir` 62 | 63 | ### Python 64 | 1. `brew install pyenv` 65 | 66 | 67 | ## Alfred Workflows 68 | 69 | - [Fkill](https://github.com/SamVerschueren/alfred-fkill) 70 | - [Bluetooth Controller](https://github.com/vegardinho/alfred_bluetooth_controller) 71 | - [Localhost](https://github.com/mhanberg/alfred-localhost) 72 | - [VSCode Workspaces](https://github.com/phartenfeller/alfred-vscode-workspaces) 73 | - [Alfred Emoji](https://github.com/jsumners/alfred-emoji) 74 | - [Restart Wifi](https://github.com/AugustusZ/alfred-workflows) 75 | - [Alfred NightShift](https://github.com/shmulvad/alfred-nightshift) 76 | - [Switch Appearance](https://alfred.app/workflows/alfredapp/switch-appearance/) 77 | 78 | ## FAQ 79 | 1. Where to get fonts? 80 | 81 | https://www.nerdfonts.com/font-downloads 82 | 83 | 2. How to chagne default shell to fish? 84 | 85 | https://stackoverflow.com/a/26321141 86 | 87 | 3. How to setup git key signing with gpg? 88 | 89 | - `brew install gpg` 90 | - https://jamespanther.com/writings/signing-github-commits-using-keybase/ 91 | -------------------------------------------------------------------------------- /home/tmux.conf: -------------------------------------------------------------------------------- 1 | unbind C-b 2 | set -g prefix C-a 3 | set -g mouse on 4 | set -g history-limit 100000 5 | set -g set-titles on 6 | set -g renumber-windows on 7 | set -g focus-events on 8 | # rename with prefix , 9 | # don't rename windows automatically 10 | # set-option -g allow-rename off 11 | setw -g automatic-rename on 12 | set -g automatic-rename-format '#{b:pane_current_path}' 13 | set -g window-status-format " #I:#W#F " 14 | set -g window-status-current-format " #I:#W#F " 15 | set -g base-index 1 16 | setw -g pane-base-index 1 17 | set -s extended-keys always 18 | set -g default-terminal "xterm-256color" 19 | # set -a terminal-overrides ",alacritty:RGB" 20 | set -g default-terminal "iterm" 21 | set -g default-shell /opt/homebrew/bin/fish 22 | set -g default-command /opt/homebrew/bin/fish 23 | 24 | bind-key [ swap-window -d -t -1 25 | bind-key ] swap-window -d -t +1 26 | 27 | unbind r 28 | bind r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf" 29 | 30 | unbind v 31 | unbind h 32 | unbind l #last 33 | unbind p #previous 34 | 35 | unbind % # Split vertically 36 | unbind '"' # Split horizontally 37 | 38 | bind v split-window -h -c "#{pane_current_path}" 39 | 40 | # ctrl 41 | bind -n C-h select-pane -L 42 | bind -n C-j select-pane -D 43 | bind -n C-k select-pane -U 44 | bind -n C-l select-pane -R 45 | 46 | # navigate between windows 47 | # bind -n M-h previous-window 48 | # bind -n M-l next-window 49 | bind-key h previous-window 50 | bind-key j previous-window 51 | bind-key k next-window 52 | bind-key l next-window 53 | 54 | # bind-key h split-window -v -c "#{pane_current_path}" 55 | bind-key s split-window -v -c "#{pane_current_path}" 56 | bind-key t split-window -v -p 30 -c "#{pane_current_path}" 57 | bind-key v split-window -h -c "#{pane_current_path}" 58 | bind-key c new-window -a -c "#{pane_current_path}" 59 | bind-key p display-popup -d "#{pane_current_path}" 60 | 61 | # toggle status bar 62 | bind-key T set-option status 63 | 64 | # vi mode 65 | # prefix key -> [ enters copy mode 66 | set -g status-keys vi 67 | set-window-option -g mode-keys vi 68 | bind-key Space copy-mode 69 | bind-key -T copy-mode-vi v send -X begin-selection 70 | bind-key -T copy-mode-vi y send -X copy-selection-and-cancel 71 | bind-key -T copy-mode-vi Escape send -X cancel 72 | bind-key -T copy-mode-vi d send -X halfpage-down 73 | bind-key -T copy-mode-vi u send -X halfpage-up 74 | 75 | # Smart pane switching with awareness of Vim splits. 76 | # See: https://github.com/christoomey/vim-tmux-navigator 77 | is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ 78 | | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" 79 | bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L' 80 | bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D' 81 | bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U' 82 | bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R' 83 | tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' 84 | if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ 85 | "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" 86 | if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ 87 | "bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'" 88 | 89 | bind-key -T copy-mode-vi 'C-h' select-pane -L 90 | bind-key -T copy-mode-vi 'C-j' select-pane -D 91 | bind-key -T copy-mode-vi 'C-k' select-pane -U 92 | bind-key -T copy-mode-vi 'C-l' select-pane -R 93 | 94 | # List of plugins 95 | set -g @plugin 'tmux-plugins/tpm' 96 | set -g @plugin 'tmux-plugins/tmux-sensible' 97 | # set -g @plugin 'dracula/tmux' 98 | set -g @plugin 'jaclu/tmux-menus' # actions menu 99 | set -g @plugin 'tmux-plugins/tmux-yank' 100 | set -g @plugin 'schasse/tmux-jump' 101 | 102 | set-option -g status-position "bottom" 103 | set-option -g status-style bg=default,fg=default 104 | set-option -g status-justify left 105 | set-option -g status-left '#[bg=#698DDA,fg=black,bold]#{?client_prefix, tmux ,}' 106 | set-option -g status-right '#S' 107 | set-option -g window-status-format ' #I:#W ' 108 | set-option -g window-status-current-format '#[bg=#698DDA,fg=black] #I:#W#{?window_zoomed_flag,  , }' 109 | set -g @jump-key 's' 110 | 111 | # available plugins: battery, cpu-usage, git, gpu-usage, ram-usage, network, weather 112 | # set -g @dracula-plugins "git battery" 113 | # set -g @dracula-show-powerline true 114 | # set -g @dracula-show-left-icon smiley 115 | # set -g @dracula-left-icon-padding 0 116 | # set -g @dracula-border-contrast false 117 | # set -g @dracula-show-fahrenheit false 118 | # set -g @dracula-show-timezone true 119 | # set -g @dracula-border-contrast false 120 | # set -g @dracula-show-flags false 121 | # set -g @dracula-day-month true 122 | # set -g @dracula-military-time true 123 | 124 | 125 | # bottom line 126 | run '~/.tmux/plugins/tpm/tpm' 127 | -------------------------------------------------------------------------------- /config/karabiner.edn: -------------------------------------------------------------------------------- 1 | ; docs -> https://github.com/yqrashawn/GokuRakuJoudo/blob/master/tutorial.md 2 | ; example -> https://github.com/kchen0x/k-goku 3 | ; simlayers -> https://gist.github.com/gsinclair/f4ab34da53034374eb6164698a0a8ace 4 | 5 | ;; LEGEND 6 | ;; ! | means mandatory 7 | ;; # | means optional 8 | ;; C | left_command 9 | ;; T | left_control 10 | ;; O | left_option 11 | ;; S | left_shift 12 | ;; F | fn 13 | ;; Q | right_command 14 | ;; W | right_control 15 | ;; E | right_option 16 | ;; R | right_shift 17 | ;; !! | mandatory command + control + optional + shift (hyper) 18 | ;; ## | optional any 19 | 20 | ; cmd+shift+/ 21 | { 22 | :profiles {:Default {:default true :sim 50 :delay 500 :alone 500 :held 500}} 23 | :devices { 24 | :macbook-internal [{:product_id 835 :vendor_id 1452 :is_built_in_keyboard true}] 25 | :k380 [{:vendor_id 1133, :product_id 45890}] 26 | :voyager [{:vendor_id 12951, :product_id 6519 }] 27 | } 28 | :applications { 29 | :terminals ["^com\\.apple\\.Terminal$" "^com\\.googlecode\\.iterm2$"], 30 | :alfred ["^com\\.runningwithcrayons\\.Alfred$"] 31 | :slack ["com.tinyspeck.slackmacgap"] 32 | :discord [".*Discord$"] 33 | ;; :chrome ["^com\\.google\\.Chrome$"] 34 | :browser ["^com\\.brave\\.Browser$"] 35 | ;; :browser [".*\\.librewolf$"] 36 | :music [".*Music"] 37 | :code ["com.microsoft.VSCode"] 38 | ; :browsers ["^com\\.kagi\\.kagimacOS$" "^org\\.mozilla\\.firefox$" "^org\\.mozilla\\.firefoxdeveloperedition$" "^com\\.google\\.Chrome$" "^org\\.chromium\\.Chromium$" "^com\\.google\\.ome\\.canary$" "^com\\.apple\\.Safari$" "^com\\.brave\\.Browser$"] 39 | } 40 | :layers { 41 | :hyper-mode {:key :caps_lock :alone {:key :escape} :afterup [{:set ["regular-hjkl" 0]}] :condi [:k380 :macbook-internal]} ; ctrl+caps for caps toggle 42 | :3-mode {:key :3 :condi [:k380 :macbook-internal]} ;; '6' + vowel = circumflex 43 | } 44 | :templates { 45 | :open "open -a \"%s\"" 46 | :alf "open /Applications/Alfred\\ 5.app && osascript -e 'tell application \"Alfred 5\" to search \"%s\"'" 47 | :togglerecentapp "osascript -e ' 48 | tell application \"System Events\" 49 | key code 48 using {command down} 50 | end tell 51 | '" 52 | ;; :km "osascript -e 'tell application \"Keyboard Maestro Engine\" to do script \"%s\"'" 53 | 54 | :open-chrome "osascript -e ' 55 | set address to \"%s\" 56 | 57 | tell application \"Google Chrome\" 58 | activate 59 | if not (exists window 1) then reopen 60 | repeat with w in windows 61 | set i to 1 62 | repeat with t in tabs of w 63 | if URL of t contains address then 64 | set active tab index of w to i 65 | set index of w to 1 66 | return 67 | end if 68 | set i to i + 1 69 | end repeat 70 | end repeat 71 | open location \"http://\" & address 72 | end tell 73 | '" 74 | ; :paste "osascript -e ' 75 | ; set the clipboard to \"%s\" 76 | ; tell application \"System Events\" 77 | ; keystroke \"v\" using command down 78 | ; end tell 79 | ; '" 80 | } 81 | :main [ 82 | {:des "Hyper Mode - Voyager (simplified)" 83 | :rules [ 84 | ;; apps 85 | [:!!delete_or_backspace [:open "/Applications/Visual Studio Code.app"] :browser] 86 | [:!!delete_or_backspace [:open "/Applications/Brave Browser.app"] :code] 87 | [:!!delete_or_backspace [:open "/Applications/Brave Browser.app"]] 88 | ;; [:!!w [:open "/Applications/LibreWolf.app"]] 89 | [:!!f [:open "/Applications/Figma.app"]] 90 | [:!!return_or_enter [:togglerecentapp]] 91 | [:!!s [:open "/Applications/Slack.app"]] 92 | [:!!g [:open "/Applications/Brave Browser.app"]] 93 | [:!!d [:open "/Applications/Discord.app"]] 94 | [:!!r [:open "Reminders"]] 95 | [:!!c [:open "Calendar"]] 96 | [:!!k [:open "/Applications/Toggl Track.app"]] 97 | [:!!m [:open "YouTube Music"]] 98 | [:!!b [:open "/Applications/Beekeeper Studio.app"]] 99 | [:!!t [:open "/Applications/Thunderbird.app"]] 100 | [:!!l :!CSopen_bracket] ; pane left 101 | [:!!u :!CSclose_bracket] ; pane right 102 | ; neio reserved for vscode nav 103 | [:!!n [:!Ta :left_arrow] :terminals] 104 | [:!!e [:!Ta :down_arrow] :terminals] 105 | [:!!o [:!Ta :right_arrow] :terminals] 106 | [:!!h [:!Ta :j] :terminals :code] ; pane left 107 | [:!!comma [:!Ta :k] :terminals :code] ; pane right 108 | ; tmux 109 | ;; [:!!quote :!CSopen_bracket] ; pane left 110 | ;; [:!!delete_forward :!CSclose_bracket] ; pane right 111 | ;; [:!!grave_accent_and_tilde :!CSclose_bracket] ; pane right 112 | ;; [:!!quote :!CSclose_bracket] ; pane right 113 | [:!!w [:!Ta :c]] ; create window 114 | [:!!x [:!Ta :x]] ; kill pane 115 | [:!!spacebar [:!Ta :spacebar]] ; copy mode 116 | ]} 117 | 118 | {:des "Map shift+backspace to del (all keyboards)" 119 | :rules [ 120 | :k380 :macbook-internal 121 | [:!Sdelete_or_backspace :delete_forward] 122 | ]} 123 | 124 | {:des "Make Caps behave like ESC" 125 | :rules [ 126 | :macbook-internal 127 | :k380 128 | [:caps_lock :escape] 129 | ]} 130 | ] 131 | } 132 | -------------------------------------------------------------------------------- /vscode/keybindings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "cmd+e n", 4 | "command": "explorer.newFile" 5 | }, 6 | { 7 | "key": "cmd+e f", 8 | "command": "explorer.newFolder" 9 | }, 10 | { 11 | "key": "cmd+e r", 12 | "command": "workbench.files.action.refreshFilesExplorer" 13 | }, 14 | // { 15 | // "key": "ctrl+o", 16 | // "command": "workbench.action.navigateRight", 17 | // "when": "!panelFocus" 18 | // }, 19 | // { 20 | // "key": "ctrl+i", 21 | // "command": "workbench.action.navigateUp", 22 | // }, 23 | // { 24 | // "key": "ctrl+e", 25 | // "command": "workbench.action.navigateDown", 26 | // }, 27 | // { 28 | // "key": "ctrl+n", 29 | // "command": "workbench.action.navigateLeft", 30 | // // "when": "editorTextFocus && vim.active && vim.mode != 'Insert'" 31 | // }, 32 | { 33 | "key": "ctrl+shift+alt+cmd+n", 34 | "command": "workbench.action.navigateLeft", 35 | // "when": "editorTextFocus && vim.active && vim.mode != 'Insert'" 36 | }, 37 | { 38 | "key": "ctrl+shift+alt+cmd+e", 39 | "command": "workbench.action.navigateDown", 40 | }, 41 | { 42 | "key": "ctrl+shift+alt+cmd+e", 43 | "command": "search.action.focusSearchList", 44 | "when": "hasSearchResult && searchInputBoxFocus" 45 | }, 46 | { 47 | "key": "ctrl+shift+alt+cmd+e", 48 | "command": "search.action.focusSearchList", 49 | "when": "hasSearchResult && searchInputBoxFocus" 50 | }, 51 | // { 52 | // "key": "ctrl+h", 53 | // "command": "workbench.action.focusSideBar", 54 | // "when": "editorTextFocus && vim.active && vim.mode != 'Insert' && sideBarFocus" 55 | // }, 56 | { 57 | "key": "ctrl+shift+alt+cmd+i", 58 | "command": "workbench.action.navigateUp", 59 | }, 60 | { 61 | "key": "ctrl+shift+alt+cmd+i", 62 | "command": "search.action.focusSearchFromResults", 63 | "when": "hasSearchResult && searchViewletFocus" 64 | }, 65 | { 66 | "key": "ctrl+shift+alt+cmd+i", 67 | "command": "search.action.focusSearchFromResults", 68 | "when": "hasSearchResult && searchViewletFocus" 69 | }, 70 | { 71 | "key": "ctrl+shift+alt+cmd+o", 72 | "command": "workbench.action.navigateRight", 73 | "when": "!panelFocus" 74 | }, 75 | { 76 | "key": "ctrl+enter", 77 | "command": "workbench.action.toggleMaximizedPanel", 78 | "when": "terminalFocus" 79 | }, 80 | { 81 | "key": "ctrl+j", 82 | "command": "workbench.action.quickOpenSelectNext", 83 | "when": "inQuickOpen" 84 | }, 85 | // { 86 | // "key": "ctrl+h", 87 | // "command": "workbench.action.previousPanelView", 88 | // "when": "panelFocus" 89 | // }, 90 | // { 91 | // "key": "ctrl+l", 92 | // "command": "workbench.action.nextPanelView", 93 | // "when": "panelFocus" 94 | // }, 95 | // { 96 | // "key": "cmd+shift+[", 97 | // "command": "workbench.panel.output.focus", 98 | // "when": "workbench" 99 | // }, 100 | { 101 | "key": "ctrl+k", 102 | "command": "workbench.action.quickOpenSelectPrevious", 103 | "when": "inQuickOpen" 104 | }, 105 | { 106 | "key": "ctrl+l", 107 | "command": "workbench.action.focusActiveEditorGroup", 108 | "when": "!editorTextFocus && !panelFocus" 109 | }, 110 | { 111 | "key": "ctrl+enter", 112 | "command": "problems.action.openToSide", 113 | "when": "problemFocus" 114 | }, 115 | { 116 | "key": "ctrl+enter", 117 | "command": "-problems.action.openToSide", 118 | "when": "problemFocus" 119 | }, 120 | { 121 | "key": "ctrl+enter", 122 | "command": "search.action.openResultToSide", 123 | "when": "fileMatchOrMatchFocus && searchViewletVisible" 124 | }, 125 | { 126 | "key": "ctrl+enter", 127 | "command": "-search.action.openResultToSide", 128 | "when": "fileMatchOrMatchFocus && searchViewletVisible" 129 | }, 130 | { 131 | "key": "cmd+1", 132 | "command": "workbench.action.firstEditorInGroup" 133 | }, 134 | { 135 | "key": "cmd+up", 136 | "command": "-search.action.focusSearchFromResults", 137 | "when": "accessibilityModeEnabled && searchViewletVisible || firstMatchFocus && searchViewletVisible" 138 | }, 139 | { 140 | "key": "ctrl+f e", 141 | "command": "search.action.expandSearchResults", 142 | "when": "hasSearchResult" 143 | }, 144 | { 145 | "key": "ctrl+f r", 146 | "command": "search.action.collapseSearchResults", 147 | "when": "hasSearchResult" 148 | }, 149 | { 150 | "key": "alt+w", 151 | "command": "git.openFile" 152 | }, 153 | { 154 | "key": "cmd+0", 155 | "command": "-workbench.action.focusSideBar" 156 | }, 157 | { 158 | "key": "cmd+0", 159 | "command": "workbench.action.zoomReset" 160 | }, 161 | { 162 | "key": "cmd+numpad0", 163 | "command": "-workbench.action.zoomReset" 164 | }, 165 | { 166 | "key": "cmd+e n", 167 | "command": "explorer.newFile" 168 | }, 169 | { 170 | "key": "cmd+e f", 171 | "command": "explorer.newFolder" 172 | }, 173 | { 174 | "key": "cmd+e r", 175 | "command": "workbench.files.action.refreshFilesExplorer" 176 | }, 177 | { 178 | "key": "ctrl+shift+alt+w", 179 | "command": "projectManager.listProjectsNewWindow" 180 | }, 181 | // { 182 | // "key": "ctrl+h", 183 | // "command": "workbench.action.focusSideBar", 184 | // "when": "editorTextFocus && vim.active && vim.mode != 'Insert' && sideBarFocus" 185 | // }, 186 | { 187 | "key": "ctrl+enter", 188 | "command": "workbench.action.toggleMaximizedPanel", 189 | "when": "terminalFocus" 190 | }, 191 | { 192 | "key": "ctrl+j", 193 | "command": "workbench.action.quickOpenSelectNext", 194 | "when": "inQuickOpen" 195 | }, 196 | // { 197 | // "key": "ctrl+h", 198 | // "command": "workbench.action.previousPanelView", 199 | // "when": "panelFocus" 200 | // }, 201 | // { 202 | // "key": "ctrl+l", 203 | // "command": "workbench.action.nextPanelView", 204 | // "when": "panelFocus" 205 | // }, 206 | // { 207 | // "key": "cmd+shift+[", 208 | // "command": "workbench.panel.output.focus", 209 | // "when": "workbench" 210 | // }, 211 | { 212 | "key": "ctrl+k", 213 | "command": "workbench.action.quickOpenSelectPrevious", 214 | "when": "inQuickOpen" 215 | }, 216 | { 217 | "key": "ctrl+l", 218 | "command": "workbench.action.focusActiveEditorGroup", 219 | "when": "!editorTextFocus && !panelFocus" 220 | }, 221 | { 222 | "key": "ctrl+enter", 223 | "command": "problems.action.openToSide", 224 | "when": "problemFocus" 225 | }, 226 | { 227 | "key": "ctrl+enter", 228 | "command": "-problems.action.openToSide", 229 | "when": "problemFocus" 230 | }, 231 | { 232 | "key": "ctrl+enter", 233 | "command": "search.action.openResultToSide", 234 | "when": "fileMatchOrMatchFocus && searchViewletVisible" 235 | }, 236 | { 237 | "key": "ctrl+enter", 238 | "command": "-search.action.openResultToSide", 239 | "when": "fileMatchOrMatchFocus && searchViewletVisible" 240 | }, 241 | { 242 | "key": "cmd+1", 243 | "command": "workbench.action.firstEditorInGroup" 244 | }, 245 | 246 | { 247 | "key": "cmd+up", 248 | "command": "-search.action.focusSearchFromResults", 249 | "when": "accessibilityModeEnabled && searchViewletVisible || firstMatchFocus && searchViewletVisible" 250 | }, 251 | { 252 | "key": "ctrl+f e", 253 | "command": "search.action.expandSearchResults", 254 | "when": "hasSearchResult" 255 | }, 256 | { 257 | "key": "ctrl+f r", 258 | "command": "search.action.collapseSearchResults", 259 | "when": "hasSearchResult" 260 | }, 261 | { 262 | "key": "alt+w", 263 | "command": "git.openFile" 264 | }, 265 | { 266 | "key": "cmd+0", 267 | "command": "-workbench.action.focusSideBar" 268 | }, 269 | { 270 | "key": "cmd+0", 271 | "command": "workbench.action.zoomReset" 272 | }, 273 | { 274 | "key": "cmd+numpad0", 275 | "command": "-workbench.action.zoomReset" 276 | }, 277 | { 278 | "key": "ctrl+shift+alt+p", 279 | "command": "projectManager.listProjects" 280 | }, 281 | { 282 | "key": "alt+cmd+p", 283 | "command": "-projectManager.listProjects" 284 | }, 285 | { 286 | "key": "ctrl+shift+alt+a", 287 | "command": "git.stageAll", 288 | "when": "projectsExplorerGit.visible && !editorTextFocus && !panelFocus" 289 | }, 290 | { 291 | "key": "ctrl+shift+alt+s", 292 | "command": "git.stage", 293 | "when": "!editorTextFocus && !inSearchEditor && !panelFocus" 294 | }, 295 | { 296 | "key": "ctrl+shift+alt+r", 297 | "command": "git.unstageAll", 298 | "when": "projectsExplorerGit.visible && !editorTextFocus && !panelFocus" 299 | }, 300 | { 301 | "key": "tab", 302 | "command": "-jumpToNextSnippetPlaceholder", 303 | "when": "hasNextTabstop && inSnippetMode && textInputFocus" 304 | }, 305 | { 306 | "key": "tab", 307 | "command": "jumpToNextSnippetPlaceholder", 308 | "when": "hasNextTabstop && inSnippetMode && textInputFocus" 309 | }, 310 | { 311 | "key": "tab", 312 | "command": "editor.action.inlineSuggest.commit", 313 | "when": "inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editorHoverFocused && !editorTabMovesFocus" 314 | }, 315 | { 316 | "key": "tab", 317 | "command": "-editor.action.inlineSuggest.commit", 318 | "when": "inlineSuggestionHasIndentationLessThanTabSize && inlineSuggestionVisible && !editorHoverFocused && !editorTabMovesFocus && !suggestWidgetVisible" 319 | } 320 | ] -------------------------------------------------------------------------------- /iterm2/vscodedark.itermcolors: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ansi 0 Color 6 | 7 | Alpha Component 8 | 1 9 | Blue Component 10 | 0.0 11 | Color Space 12 | sRGB 13 | Green Component 14 | 0.0 15 | Red Component 16 | 0.0 17 | 18 | Ansi 1 Color 19 | 20 | Alpha Component 21 | 1 22 | Blue Component 23 | 0.31764706969261169 24 | Color Space 25 | sRGB 26 | Green Component 27 | 0.29019609093666077 28 | Red Component 29 | 0.91372549533843994 30 | 31 | Ansi 10 Color 32 | 33 | Alpha Component 34 | 1 35 | Blue Component 36 | 0.54117649793624878 37 | Color Space 38 | sRGB 39 | Green Component 40 | 0.82745099067687988 41 | Red Component 42 | 0.27058824896812439 43 | 44 | Ansi 11 Color 45 | 46 | Alpha Component 47 | 1 48 | Blue Component 49 | 0.29019609093666077 50 | Color Space 51 | sRGB 52 | Green Component 53 | 0.97254902124404907 54 | Red Component 55 | 0.94901961088180542 56 | 57 | Ansi 12 Color 58 | 59 | Alpha Component 60 | 1 61 | Blue Component 62 | 0.91372549533843994 63 | Color Space 64 | sRGB 65 | Green Component 66 | 0.54117649793624878 67 | Red Component 68 | 0.30588236451148987 69 | 70 | Ansi 13 Color 71 | 72 | Alpha Component 73 | 1 74 | Blue Component 75 | 0.83921569585800171 76 | Color Space 77 | sRGB 78 | Green Component 79 | 0.41568627953529358 80 | Red Component 81 | 0.82352942228317261 82 | 83 | Ansi 14 Color 84 | 85 | Alpha Component 86 | 1 87 | Blue Component 88 | 0.85490196943283081 89 | Color Space 90 | sRGB 91 | Green Component 92 | 0.71764707565307617 93 | Red Component 94 | 0.28627452254295349 95 | 96 | Ansi 15 Color 97 | 98 | Alpha Component 99 | 1 100 | Blue Component 101 | 0.89803922176361084 102 | Color Space 103 | sRGB 104 | Green Component 105 | 0.89803922176361084 106 | Red Component 107 | 0.89803922176361084 108 | 109 | Ansi 2 Color 110 | 111 | Alpha Component 112 | 1 113 | Blue Component 114 | 0.47058823704719543 115 | Color Space 116 | sRGB 117 | Green Component 118 | 0.7450980544090271 119 | Red Component 120 | 0.21568627655506134 121 | 122 | Ansi 3 Color 123 | 124 | Alpha Component 125 | 1 126 | Blue Component 127 | 0.13333334028720856 128 | Color Space 129 | sRGB 130 | Green Component 131 | 0.90980392694473267 132 | Red Component 133 | 0.88627451658248901 134 | 135 | Ansi 4 Color 136 | 137 | Alpha Component 138 | 1 139 | Blue Component 140 | 0.78039216995239258 141 | Color Space 142 | sRGB 143 | Green Component 144 | 0.43137255311012268 145 | Red Component 146 | 0.22352941334247589 147 | 148 | Ansi 5 Color 149 | 150 | Alpha Component 151 | 1 152 | Blue Component 153 | 0.73725491762161255 154 | Color Space 155 | sRGB 156 | Green Component 157 | 0.20784313976764679 158 | Red Component 159 | 0.72156864404678345 160 | 161 | Ansi 6 Color 162 | 163 | Alpha Component 164 | 1 165 | Blue Component 166 | 0.80000001192092896 167 | Color Space 168 | sRGB 169 | Green Component 170 | 0.65490198135375977 171 | Red Component 172 | 0.23137255012989044 173 | 174 | Ansi 7 Color 175 | 176 | Alpha Component 177 | 1 178 | Blue Component 179 | 0.89803922176361084 180 | Color Space 181 | sRGB 182 | Green Component 183 | 0.89803922176361084 184 | Red Component 185 | 0.89803922176361084 186 | 187 | Ansi 8 Color 188 | 189 | Alpha Component 190 | 1 191 | Blue Component 192 | 0.40000000596046448 193 | Color Space 194 | sRGB 195 | Green Component 196 | 0.40000000596046448 197 | Red Component 198 | 0.40000000596046448 199 | 200 | Ansi 9 Color 201 | 202 | Alpha Component 203 | 1 204 | Blue Component 205 | 0.31764706969261169 206 | Color Space 207 | sRGB 208 | Green Component 209 | 0.29019609093666077 210 | Red Component 211 | 0.91372549533843994 212 | 213 | Background Color 214 | 215 | Alpha Component 216 | 1 217 | Blue Component 218 | 0.11764705926179886 219 | Color Space 220 | sRGB 221 | Green Component 222 | 0.11764705926179886 223 | Red Component 224 | 0.11764705926179886 225 | 226 | Badge Color 227 | 228 | Alpha Component 229 | 0.5 230 | Blue Component 231 | 1 232 | Color Space 233 | sRGB 234 | Green Component 235 | 1 236 | Red Component 237 | 1 238 | 239 | Bold Color 240 | 241 | Alpha Component 242 | 1 243 | Blue Component 244 | 1 245 | Color Space 246 | sRGB 247 | Green Component 248 | 1 249 | Red Component 250 | 0.99999600648880005 251 | 252 | Cursor Color 253 | 254 | Alpha Component 255 | 1 256 | Blue Component 257 | 0.80000001192092896 258 | Color Space 259 | sRGB 260 | Green Component 261 | 0.80000001192092896 262 | Red Component 263 | 0.80000001192092896 264 | 265 | Cursor Guide Color 266 | 267 | Alpha Component 268 | 0.25 269 | Blue Component 270 | 1 271 | Color Space 272 | sRGB 273 | Green Component 274 | 0.9268307089805603 275 | Red Component 276 | 0.70213186740875244 277 | 278 | Cursor Text Color 279 | 280 | Alpha Component 281 | 1 282 | Blue Component 283 | 0.0 284 | Color Space 285 | sRGB 286 | Green Component 287 | 0.0 288 | Red Component 289 | 0.0 290 | 291 | Foreground Color 292 | 293 | Alpha Component 294 | 1 295 | Blue Component 296 | 0.80000001192092896 297 | Color Space 298 | sRGB 299 | Green Component 300 | 0.80000001192092896 301 | Red Component 302 | 0.80000001192092896 303 | 304 | Link Color 305 | 306 | Alpha Component 307 | 1 308 | Blue Component 309 | 0.9337158203125 310 | Color Space 311 | sRGB 312 | Green Component 313 | 0.55789834260940552 314 | Red Component 315 | 0.19802422821521759 316 | 317 | Selected Text Color 318 | 319 | Alpha Component 320 | 1 321 | Blue Component 322 | 1 323 | Color Space 324 | sRGB 325 | Green Component 326 | 1 327 | Red Component 328 | 1 329 | 330 | Selection Color 331 | 332 | Alpha Component 333 | 1 334 | Blue Component 335 | 0.3333333432674408 336 | Color Space 337 | sRGB 338 | Green Component 339 | 0.3333333432674408 340 | Red Component 341 | 0.3333333432674408 342 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --export DBT_PROFILES_DIR:/Users/halafi/Projects/data\x2danalytics/maquinillo/maquinillo/data_transformations/dbt 4 | SETUVAR --export EDITOR:nvim 5 | SETUVAR --export GOBIN:/Users/halafi/go\x2dworkspace/bin 6 | SETUVAR --export --path GOPATH:/Users/halafi/go\x2dworkspace 7 | SETUVAR --export GOROOT:/usr/local/go 8 | SETUVAR --export LF_ICONS:\x2a\x2e7z\x3d\uf410\x3a\x2a\x2eaac\x3d\uf40f\x3a\x2a\x2eace\x3d\uf410\x3a\x2a\x2ealz\x3d\uf410\x3a\x2a\x2earc\x3d\uf410\x3a\x2a\x2earj\x3d\uf410\x3a\x2a\x2easf\x3d\uf40f\x3a\x2a\x2eatom\x3d\ue764\x3a\x2a\x2eau\x3d\uf40f\x3a\x2a\x2eavi\x3d\uf40f\x3a\x2a\x2ebash\x3d\uf489\x3a\x2a\x2ebash_history\x3d\uf489\x3a\x2a\x2ebashprofile\x3d\uf489\x3a\x2a\x2ebashrc\x3d\uf489\x3a\x2a\x2ebmp\x3d\uf40f\x3a\x2a\x2ebz2\x3d\uf410\x3a\x2a\x2ebz\x3d\uf410\x3a\x2a\x2ec\x3d\ue61e\x3a\x2a\x2ecab\x3d\uf410\x3a\x2a\x2ecc\x3d\ue61d\x3a\x2a\x2ecfg\x3d\ue615\x3a\x2a\x2ecgm\x3d\uf40f\x3a\x2a\x2eclang\x2dformat\x3d\ue615\x3a\x2a\x2eclj\x3d\ue768\x3a\x2a\x2ecmd\x3d\uf40d\x3a\x2a\x2ecoffee\x3d\ue751\x3a\x2a\x2ecpio\x3d\uf410\x3a\x2a\x2ecpp\x3d\ue61d\x3a\x2a\x2ecss\x3d\ue614\x3a\x2a\x2ed\x3d\ue7af\x3a\x2a\x2edart\x3d\ue798\x3a\x2a\x2edeb\x3d\uf410\x3a\x2a\x2edl\x3d\uf40f\x3a\x2a\x2eDS_Store\x3d\uf179\x3a\x2a\x2edwm\x3d\uf410\x3a\x2a\x2edz\x3d\uf410\x3a\x2a\x2eear\x3d\uf410\x3a\x2a\x2eemf\x3d\uf40f\x3a\x2a\x2eenv\x3d\uf444\x3a\x2a\x2eerl\x3d\ue7b1\x3a\x2a\x2eesd\x3d\uf410\x3a\x2a\x2eexs\x3d\ue62d\x3a\x2a\x2efish\x3d\uf489\x3a\x2a\x2eflac\x3d\uf40f\x3a\x2a\x2eflc\x3d\uf40f\x3a\x2a\x2efli\x3d\uf40f\x3a\x2a\x2eflv\x3d\uf40f\x3a\x2a\x2efs\x3d\ue7a7\x3a\x2a\x2egif\x3d\uf40f\x3a\x2a\x2egit\x3d\ue725\x3a\x2a\x2egitattributes\x3d\ue725\x3a\x2a\x2egitconfig\x3d\ue725\x3a\x2a\x2egithub\x3d\uf408\x3a\x2a\x2egitignore\x3d\ue725\x3a\x2a\x2egitignore_global\x3d\ue725\x3a\x2a\x2egitkeep\x3d\ue725\x3a\x2a\x2egitmodules\x3d\ue725\x3a\x2a\x2egl\x3d\uf40f\x3a\x2a\x2ego\x3d\ue627\x3a\x2a\x2egz\x3d\uf410\x3a\x2a\x2eh\x3d\ue61e\x3a\x2a\x2ehh\x3d\ue61d\x3a\x2a\x2ehidden\x3d\uf023\x3a\x2a\x2ehpp\x3d\ue61d\x3a\x2a\x2ehs\x3d\ue777\x3a\x2a\x2ehtml\x3d\ue60e\x3a\x2a\x2ehyper\x2ejs\x3d\uf489\x3a\x2a\x2ejar\x3d\uf410\x3a\x2a\x2ejava\x3d\ue738\x3a\x2a\x2ejl\x3d\ue624\x3a\x2a\x2ejpeg\x3d\uf40f\x3a\x2a\x2ejpg\x3d\uf40f\x3a\x2a\x2ejs\x3d\ue74e\x3a\x2a\x2ejson\x3d\ue60b\x3a\x2a\x2ejsx\x3d\ue7ba\x3a\x2a\x2elha\x3d\uf410\x3a\x2a\x2elrz\x3d\uf410\x3a\x2a\x2elua\x3d\ue620\x3a\x2a\x2elz4\x3d\uf410\x3a\x2a\x2elz\x3d\uf410\x3a\x2a\x2elzh\x3d\uf410\x3a\x2a\x2elzma\x3d\uf410\x3a\x2a\x2elzo\x3d\uf410\x3a\x2a\x2em2v\x3d\uf40f\x3a\x2a\x2em4a\x3d\uf40f\x3a\x2a\x2em4v\x3d\uf40f\x3a\x2a\x2emap\x3d\uf278\x3a\x2a\x2emd\x3d\ue609\x3a\x2a\x2emdx\x3d\ue609\x3a\x2a\x2emid\x3d\uf40f\x3a\x2a\x2emidi\x3d\uf40f\x3a\x2a\x2emjpeg\x3d\uf40f\x3a\x2a\x2emjpg\x3d\uf40f\x3a\x2a\x2emka\x3d\uf40f\x3a\x2a\x2emkv\x3d\uf40f\x3a\x2a\x2emng\x3d\uf40f\x3a\x2a\x2emov\x3d\uf40f\x3a\x2a\x2emp3\x3d\uf40f\x3a\x2a\x2emp4\x3d\uf40f\x3a\x2a\x2emp4v\x3d\uf40f\x3a\x2a\x2empc\x3d\uf40f\x3a\x2a\x2empeg\x3d\uf40f\x3a\x2a\x2empg\x3d\uf40f\x3a\x2a\x2enix\x3d\uf313\x3a\x2a\x2enpmignore\x3d\ue71e\x3a\x2a\x2enpmrc\x3d\ue71e\x3a\x2a\x2enuv\x3d\uf40f\x3a\x2a\x2envmrc\x3d\ue718\x3a\x2a\x2eoga\x3d\uf40f\x3a\x2a\x2eogg\x3d\uf40f\x3a\x2a\x2eogm\x3d\uf40f\x3a\x2a\x2eogv\x3d\uf40f\x3a\x2a\x2eogx\x3d\uf40f\x3a\x2a\x2eopus\x3d\uf40f\x3a\x2a\x2epbm\x3d\uf40f\x3a\x2a\x2epcx\x3d\uf40f\x3a\x2a\x2epdf\x3d\uf411\x3a\x2a\x2epgm\x3d\uf40f\x3a\x2a\x2ephp\x3d\ue608\x3a\x2a\x2epl\x3d\ue769\x3a\x2a\x2epng\x3d\uf40f\x3a\x2a\x2eppm\x3d\uf40f\x3a\x2a\x2epro\x3d\ue7a1\x3a\x2a\x2eps1\x3d\uf40d\x3a\x2a\x2epy\x3d\ue73c\x3a\x2a\x2eqt\x3d\uf40f\x3a\x2a\x2era\x3d\uf40f\x3a\x2a\x2erar\x3d\uf410\x3a\x2a\x2erb\x3d\ue739\x3a\x2a\x2erm\x3d\uf40f\x3a\x2a\x2ermvb\x3d\uf40f\x3a\x2a\x2erpm\x3d\uf410\x3a\x2a\x2ers\x3d\ue7a8\x3a\x2a\x2ervm\x3d\ue21e\x3a\x2a\x2erz\x3d\uf410\x3a\x2a\x2esar\x3d\uf410\x3a\x2a\x2escala\x3d\ue737\x3a\x2a\x2esh\x3d\uf40d\x3a\x2a\x2eskhdrc\x3d\uf179\x3a\x2a\x2esol\x3d\ufcb9\x3a\x2a\x2espx\x3d\uf40f\x3a\x2a\x2esvg\x3d\uf40f\x3a\x2a\x2esvgz\x3d\uf40f\x3a\x2a\x2eswm\x3d\uf410\x3a\x2a\x2et7z\x3d\uf410\x3a\x2a\x2etar\x3d\uf410\x3a\x2a\x2etaz\x3d\uf410\x3a\x2a\x2etbz2\x3d\uf410\x3a\x2a\x2etbz\x3d\uf410\x3a\x2a\x2etga\x3d\uf40f\x3a\x2a\x2etgz\x3d\uf410\x3a\x2a\x2etif\x3d\uf40f\x3a\x2a\x2etiff\x3d\uf40f\x3a\x2a\x2etlz\x3d\uf410\x3a\x2a\x2etmux\x2econf\x3d\uf489\x3a\x2a\x2etrash\x3d\uf1f8\x3a\x2a\x2ets\x3d\ue628\x3a\x2a\x2etsx\x3d\ue7ba\x3a\x2a\x2etxz\x3d\uf410\x3a\x2a\x2etz\x3d\uf410\x3a\x2a\x2etzo\x3d\uf410\x3a\x2a\x2etzst\x3d\uf410\x3a\x2a\x2evim\x3d\ue62b\x3a\x2a\x2evimrc\x3d\ue62b\x3a\x2a\x2evob\x3d\uf40f\x3a\x2a\x2evscode\x3d\ue70c\x3a\x2a\x2ewar\x3d\uf410\x3a\x2a\x2ewav\x3d\uf40f\x3a\x2a\x2ewebm\x3d\uf40f\x3a\x2a\x2ewim\x3d\uf410\x3a\x2a\x2exbm\x3d\uf40f\x3a\x2a\x2excf\x3d\uf40f\x3a\x2a\x2expm\x3d\uf40f\x3a\x2a\x2exspf\x3d\uf40f\x3a\x2a\x2exwd\x3d\uf40f\x3a\x2a\x2exz\x3d\uf410\x3a\x2a\x2eyabairc\x3d\uf179\x3a\x2a\x2eyaml\x3d\ufb44\x3a\x2a\x2eyarn\x2dintegrity\x3d\ue718\x3a\x2a\x2eyarnrc\x3d\ue718\x3a\x2a\x2eyml\x3d\ufb44\x3a\x2a\x2eyuv\x3d\uf40f\x3a\x2a\x2ez\x3d\uf410\x3a\x2a\x2ezip\x3d\uf410\x3a\x2a\x2ezoo\x3d\uf410\x3a\x2a\x2ezprofile\x3d\uf489\x3a\x2a\x2ezprofile\x3d\uf489\x3a\x2a\x2ezsh\x3d\uf489\x3a\x2a\x2ezsh_history\x3d\uf489\x3a\x2a\x2ezshrc\x3d\uf489\x3a\x2a\x2ezst\x3d\uf410\x3a\x2abin\x3d\ue5fc\x3a\x2aconfig\x3d\ue5fc\x3a\x2adocker\x2dcompose\x2eyml\x3d\uf308\x3a\x2adockerfile\x3d\uf308\x3a\x2agradle\x3d\ue70e\x3a\x2agruntfile\x2ecoffee\x3d\ue611\x3a\x2agruntfile\x2ejs\x3d\ue611\x3a\x2agruntfile\x2els\x3d\ue611\x3a\x2agulpfile\x2ecoffee\x3d\ue610\x3a\x2agulpfile\x2ejs\x3d\ue610\x3a\x2agulpfile\x2els\x3d\ue610\x3a\x2ainclude\x3d\ue5fc\x3a\x2alib\x3d\uf121\x3a\x2alocalized\x3d\uf179\x3a\x2anode_modules\x3d\ue718\x3a\x2apackage\x2ejson\x3d\ue718\x3a\x2arubydoc\x3d\ue73b\x3a\x2atsconfig\x2ejson\x3d\ue628\x3a\x2ayarn\x2elock\x3d\ue718\x3adi\x3d\uf115\x3adt\x3d\uf115\x3aex\x3d\uf427\x3afi\x3d\uf40e\x3aln\x3d\uf481\x3aor\x3d\uf481\x3aow\x3d\uf115\x3ast\x3d\uf115\x3atw\x3d\uf115\x3a 9 | SETUVAR --export VIMCONFIG:/Users/halafi/\x2econfig/nvim 10 | SETUVAR --export VISUAL:nvim 11 | SETUVAR __fish_initialized:3400 12 | SETUVAR _fish_abbr__2D_:cd\x20\x2d 13 | SETUVAR _fish_abbr__2E_2E_:cd\x20\x2e\x2e 14 | SETUVAR _fish_abbr__2E_2E_2E_:cd\x20\x2e\x2e/\x2e\x2e 15 | SETUVAR fish_color_autosuggestion:969896 16 | SETUVAR fish_color_cancel:\x2d\x2dreverse 17 | SETUVAR fish_color_command:c397d8 18 | SETUVAR fish_color_comment:e7c547 19 | SETUVAR fish_color_cwd:green 20 | SETUVAR fish_color_cwd_root:red 21 | SETUVAR fish_color_end:c397d8 22 | SETUVAR fish_color_error:d54e53 23 | SETUVAR fish_color_escape:00a6b2 24 | SETUVAR fish_color_history_current:\x2d\x2dbold 25 | SETUVAR fish_color_host:normal 26 | SETUVAR fish_color_host_remote:\x1d 27 | SETUVAR fish_color_keyword:\x1d 28 | SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue 29 | SETUVAR fish_color_normal:normal 30 | SETUVAR fish_color_operator:00a6b2 31 | SETUVAR fish_color_option:\x1d 32 | SETUVAR fish_color_param:7aa6da 33 | SETUVAR fish_color_quote:b9ca4a 34 | SETUVAR fish_color_redirection:70c0b1 35 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 36 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 37 | SETUVAR fish_color_status:red 38 | SETUVAR fish_color_user:brgreen 39 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 40 | SETUVAR fish_key_bindings:fish_default_key_bindings 41 | SETUVAR fish_pager_color_background:\x1d 42 | SETUVAR fish_pager_color_completion:normal 43 | SETUVAR fish_pager_color_description:B3A06D 44 | SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 45 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 46 | SETUVAR fish_pager_color_secondary_background:\x1d 47 | SETUVAR fish_pager_color_secondary_completion:\x1d 48 | SETUVAR fish_pager_color_secondary_description:\x1d 49 | SETUVAR fish_pager_color_secondary_prefix:\x1d 50 | SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack 51 | SETUVAR fish_pager_color_selected_completion:\x1d 52 | SETUVAR fish_pager_color_selected_description:\x1d 53 | SETUVAR fish_pager_color_selected_prefix:\x1d 54 | SETUVAR fish_user_paths:/Users/halafi/\x2easdf/installs/nodejs/16\x2e17\x2e1/\x2enpm/bin\x1e/usr/local/go/bin\x1e/Users/halafi/\x2ecargo/bin\x1e/Users/halafi/tools/lua\x2dlanguage\x2dserver/bin\x2e/Users/halafi/\x2elocal/bin\x1e/Users/halafi/go\x2dworkspace/bin 55 | SETUVAR pure_begin_prompt_with_current_directory:true 56 | SETUVAR pure_check_for_new_release:false 57 | SETUVAR pure_color_at_sign:pure_color_mute 58 | SETUVAR pure_color_command_duration:pure_color_warning 59 | SETUVAR pure_color_current_directory:pure_color_primary 60 | SETUVAR pure_color_danger:red 61 | SETUVAR pure_color_dark:black 62 | SETUVAR pure_color_git_branch:pure_color_mute 63 | SETUVAR pure_color_git_dirty:pure_color_mute 64 | SETUVAR pure_color_git_stash:pure_color_info 65 | SETUVAR pure_color_git_unpulled_commits:pure_color_info 66 | SETUVAR pure_color_git_unpushed_commits:pure_color_info 67 | SETUVAR pure_color_hostname:pure_color_mute 68 | SETUVAR pure_color_info:cyan 69 | SETUVAR pure_color_jobs:pure_color_normal 70 | SETUVAR pure_color_light:white 71 | SETUVAR pure_color_mute:brblack 72 | SETUVAR pure_color_normal:normal 73 | SETUVAR pure_color_prefix_root_prompt:pure_color_danger 74 | SETUVAR pure_color_primary:blue 75 | SETUVAR pure_color_prompt_on_error:pure_color_danger 76 | SETUVAR pure_color_prompt_on_success:pure_color_success 77 | SETUVAR pure_color_success:magenta 78 | SETUVAR pure_color_system_time:pure_color_mute 79 | SETUVAR pure_color_username_normal:pure_color_mute 80 | SETUVAR pure_color_username_root:pure_color_light 81 | SETUVAR pure_color_virtualenv:pure_color_mute 82 | SETUVAR pure_color_warning:yellow 83 | SETUVAR pure_enable_git:true 84 | SETUVAR pure_enable_single_line_prompt:false 85 | SETUVAR pure_reverse_prompt_symbol_in_vimode:true 86 | SETUVAR pure_separate_prompt_on_error:false 87 | SETUVAR pure_show_jobs:false 88 | SETUVAR pure_show_prefix_root_prompt:false 89 | SETUVAR pure_show_subsecond_command_duration:false 90 | SETUVAR pure_show_system_time:false 91 | SETUVAR pure_symbol_git_dirty:\x2a 92 | SETUVAR pure_symbol_git_stash:\u2261 93 | SETUVAR pure_symbol_git_unpulled_commits:\u21e3 94 | SETUVAR pure_symbol_git_unpushed_commits:\u21e1 95 | SETUVAR pure_symbol_prefix_root_prompt:\x23 96 | SETUVAR pure_symbol_prompt:\u276f 97 | SETUVAR pure_symbol_reverse_prompt:\u276e 98 | SETUVAR pure_symbol_title_bar_separator:\x2d 99 | SETUVAR pure_threshold_command_duration:5 100 | -------------------------------------------------------------------------------- /iterm2/Default-profile.json: -------------------------------------------------------------------------------- 1 | { 2 | "Use Non-ASCII Font" : false, 3 | "Tags" : [ 4 | 5 | ], 6 | "Ansi 12 Color" : { 7 | "Red Component" : 0.30588236451148987, 8 | "Color Space" : "sRGB", 9 | "Blue Component" : 0.91372549533843994, 10 | "Alpha Component" : 1, 11 | "Green Component" : 0.54117649793624878 12 | }, 13 | "Ansi 7 Color" : { 14 | "Red Component" : 0.89803922176361084, 15 | "Color Space" : "sRGB", 16 | "Blue Component" : 0.89803922176361084, 17 | "Alpha Component" : 1, 18 | "Green Component" : 0.89803922176361084 19 | }, 20 | "Draw Powerline Glyphs" : true, 21 | "Bold Color" : { 22 | "Red Component" : 0.99999600648880005, 23 | "Color Space" : "sRGB", 24 | "Blue Component" : 1, 25 | "Alpha Component" : 1, 26 | "Green Component" : 1 27 | }, 28 | "Ansi 8 Color" : { 29 | "Red Component" : 0.40000000596046448, 30 | "Color Space" : "sRGB", 31 | "Blue Component" : 0.40000000596046448, 32 | "Alpha Component" : 1, 33 | "Green Component" : 0.40000000596046448 34 | }, 35 | "Ansi 9 Color" : { 36 | "Red Component" : 0.91372549533843994, 37 | "Color Space" : "sRGB", 38 | "Blue Component" : 0.31764706969261169, 39 | "Alpha Component" : 1, 40 | "Green Component" : 0.29019609093666077 41 | }, 42 | "Link Color" : { 43 | "Red Component" : 0.19802422821521759, 44 | "Color Space" : "sRGB", 45 | "Blue Component" : 0.9337158203125, 46 | "Alpha Component" : 1, 47 | "Green Component" : 0.55789834260940552 48 | }, 49 | "Rows" : 25, 50 | "Default Bookmark" : "No", 51 | "Ansi 0 Color" : { 52 | "Red Component" : 0, 53 | "Color Space" : "sRGB", 54 | "Blue Component" : 0, 55 | "Alpha Component" : 1, 56 | "Green Component" : 0 57 | }, 58 | "Cursor Guide Color" : { 59 | "Red Component" : 0.70213186740875244, 60 | "Color Space" : "sRGB", 61 | "Blue Component" : 1, 62 | "Alpha Component" : 0.25, 63 | "Green Component" : 0.9268307089805603 64 | }, 65 | "Non-ASCII Anti Aliased" : true, 66 | "Use Bright Bold" : true, 67 | "Ansi 10 Color" : { 68 | "Red Component" : 0.27058824896812439, 69 | "Color Space" : "sRGB", 70 | "Blue Component" : 0.54117649793624878, 71 | "Alpha Component" : 1, 72 | "Green Component" : 0.82745099067687988 73 | }, 74 | "Ambiguous Double Width" : false, 75 | "Jobs to Ignore" : [ 76 | "rlogin", 77 | "ssh", 78 | "slogin", 79 | "telnet" 80 | ], 81 | "Ansi 15 Color" : { 82 | "Red Component" : 0.89803922176361084, 83 | "Color Space" : "sRGB", 84 | "Blue Component" : 0.89803922176361084, 85 | "Alpha Component" : 1, 86 | "Green Component" : 0.89803922176361084 87 | }, 88 | "Foreground Color" : { 89 | "Red Component" : 0.80000001192092896, 90 | "Color Space" : "sRGB", 91 | "Blue Component" : 0.80000001192092896, 92 | "Alpha Component" : 1, 93 | "Green Component" : 0.80000001192092896 94 | }, 95 | "Working Directory" : "\/Users\/halafi", 96 | "Blinking Cursor" : true, 97 | "Disable Window Resizing" : true, 98 | "Sync Title" : false, 99 | "Prompt Before Closing 2" : false, 100 | "BM Growl" : true, 101 | "Mouse Reporting" : true, 102 | "Command" : "", 103 | "Description" : "Default", 104 | "Screen" : -1, 105 | "Selection Color" : { 106 | "Red Component" : 0.3333333432674408, 107 | "Color Space" : "sRGB", 108 | "Blue Component" : 0.3333333432674408, 109 | "Alpha Component" : 1, 110 | "Green Component" : 0.3333333432674408 111 | }, 112 | "Columns" : 80, 113 | "Idle Code" : 0, 114 | "Ansi 13 Color" : { 115 | "Red Component" : 0.82352942228317261, 116 | "Color Space" : "sRGB", 117 | "Blue Component" : 0.83921569585800171, 118 | "Alpha Component" : 1, 119 | "Green Component" : 0.41568627953529358 120 | }, 121 | "Custom Command" : "No", 122 | "ASCII Anti Aliased" : true, 123 | "Non Ascii Font" : "Monaco 12", 124 | "Vertical Spacing" : 1, 125 | "Use Bold Font" : true, 126 | "Option Key Sends" : 2, 127 | "Selected Text Color" : { 128 | "Red Component" : 1, 129 | "Color Space" : "sRGB", 130 | "Blue Component" : 1, 131 | "Alpha Component" : 1, 132 | "Green Component" : 1 133 | }, 134 | "Background Color" : { 135 | "Red Component" : 0.11764705926179886, 136 | "Color Space" : "sRGB", 137 | "Blue Component" : 0.11764705926179886, 138 | "Alpha Component" : 1, 139 | "Green Component" : 0.11764705926179886 140 | }, 141 | "Character Encoding" : 4, 142 | "Ansi 11 Color" : { 143 | "Red Component" : 0.94901961088180542, 144 | "Color Space" : "sRGB", 145 | "Blue Component" : 0.29019609093666077, 146 | "Alpha Component" : 1, 147 | "Green Component" : 0.97254902124404907 148 | }, 149 | "Use Italic Font" : true, 150 | "Unlimited Scrollback" : false, 151 | "Keyboard Map" : { 152 | "0xf700-0x260000" : { 153 | "Action" : 10, 154 | "Text" : "[1;6A" 155 | }, 156 | "0x37-0x40000" : { 157 | "Action" : 11, 158 | "Text" : "0x1f" 159 | }, 160 | "0x32-0x40000" : { 161 | "Action" : 11, 162 | "Text" : "0x00" 163 | }, 164 | "0xf709-0x20000" : { 165 | "Action" : 10, 166 | "Text" : "[17;2~" 167 | }, 168 | "0xf70c-0x20000" : { 169 | "Action" : 10, 170 | "Text" : "[20;2~" 171 | }, 172 | "0xf729-0x20000" : { 173 | "Action" : 10, 174 | "Text" : "[1;2H" 175 | }, 176 | "0xf72b-0x40000" : { 177 | "Action" : 10, 178 | "Text" : "[1;5F" 179 | }, 180 | "0xf705-0x20000" : { 181 | "Action" : 10, 182 | "Text" : "[1;2Q" 183 | }, 184 | "0xf703-0x260000" : { 185 | "Action" : 10, 186 | "Text" : "[1;6C" 187 | }, 188 | "0xf700-0x220000" : { 189 | "Action" : 10, 190 | "Text" : "[1;2A" 191 | }, 192 | "0xf701-0x280000" : { 193 | "Action" : 11, 194 | "Text" : "0x1b 0x1b 0x5b 0x42" 195 | }, 196 | "0x38-0x40000" : { 197 | "Action" : 11, 198 | "Text" : "0x7f" 199 | }, 200 | "0x33-0x40000" : { 201 | "Action" : 11, 202 | "Text" : "0x1b" 203 | }, 204 | "0xf703-0x220000" : { 205 | "Action" : 10, 206 | "Text" : "[1;2C" 207 | }, 208 | "0xf701-0x240000" : { 209 | "Action" : 10, 210 | "Text" : "[1;5B" 211 | }, 212 | "0xf703-0x280000-0x0" : { 213 | "Version" : 0, 214 | "Action" : 10, 215 | "Text" : "f", 216 | "Label" : "" 217 | }, 218 | "0xf70d-0x20000" : { 219 | "Action" : 10, 220 | "Text" : "[21;2~" 221 | }, 222 | "0xf702-0x260000" : { 223 | "Action" : 10, 224 | "Text" : "[1;6D" 225 | }, 226 | "0xf729-0x40000" : { 227 | "Action" : 10, 228 | "Text" : "[1;5H" 229 | }, 230 | "0xf706-0x20000" : { 231 | "Action" : 10, 232 | "Text" : "[1;2R" 233 | }, 234 | "0x34-0x40000" : { 235 | "Action" : 11, 236 | "Text" : "0x1c" 237 | }, 238 | "0xf700-0x280000" : { 239 | "Action" : 11, 240 | "Text" : "0x1b 0x1b 0x5b 0x41" 241 | }, 242 | "0x2d-0x40000" : { 243 | "Action" : 11, 244 | "Text" : "0x1f" 245 | }, 246 | "0xf70e-0x20000" : { 247 | "Action" : 10, 248 | "Text" : "[23;2~" 249 | }, 250 | "0xf702-0x220000" : { 251 | "Action" : 10, 252 | "Text" : "[1;2D" 253 | }, 254 | "0xf700-0x240000" : { 255 | "Action" : 10, 256 | "Text" : "[1;5A" 257 | }, 258 | "0xf707-0x20000" : { 259 | "Action" : 10, 260 | "Text" : "[1;2S" 261 | }, 262 | "0xf70a-0x20000" : { 263 | "Action" : 10, 264 | "Text" : "[18;2~" 265 | }, 266 | "0x35-0x40000" : { 267 | "Action" : 11, 268 | "Text" : "0x1d" 269 | }, 270 | "0xf70f-0x20000" : { 271 | "Action" : 10, 272 | "Text" : "[24;2~" 273 | }, 274 | "0xf703-0x240000" : { 275 | "Action" : 10, 276 | "Text" : "[1;5C" 277 | }, 278 | "0xf701-0x260000" : { 279 | "Action" : 10, 280 | "Text" : "[1;6B" 281 | }, 282 | "0xf72b-0x20000" : { 283 | "Action" : 10, 284 | "Text" : "[1;2F" 285 | }, 286 | "0x36-0x40000" : { 287 | "Action" : 11, 288 | "Text" : "0x1e" 289 | }, 290 | "0xf708-0x20000" : { 291 | "Action" : 10, 292 | "Text" : "[15;2~" 293 | }, 294 | "0xf701-0x220000" : { 295 | "Action" : 10, 296 | "Text" : "[1;2B" 297 | }, 298 | "0xf70b-0x20000" : { 299 | "Action" : 10, 300 | "Text" : "[19;2~" 301 | }, 302 | "0xf702-0x280000-0x0" : { 303 | "Version" : 0, 304 | "Action" : 10, 305 | "Text" : "b", 306 | "Label" : "" 307 | }, 308 | "0xf702-0x240000" : { 309 | "Action" : 10, 310 | "Text" : "[1;5D" 311 | }, 312 | "0xf704-0x20000" : { 313 | "Action" : 10, 314 | "Text" : "[1;2P" 315 | } 316 | }, 317 | "Window Type" : 0, 318 | "Background Image Location" : "", 319 | "Blur" : false, 320 | "Badge Color" : { 321 | "Red Component" : 1, 322 | "Color Space" : "sRGB", 323 | "Blue Component" : 1, 324 | "Alpha Component" : 0.5, 325 | "Green Component" : 1 326 | }, 327 | "Scrollback Lines" : 1000, 328 | "Send Code When Idle" : false, 329 | "Close Sessions On End" : true, 330 | "Terminal Type" : "xterm-256color", 331 | "Visual Bell" : true, 332 | "Flashing Bell" : false, 333 | "Silence Bell" : false, 334 | "Ansi 14 Color" : { 335 | "Red Component" : 0.28627452254295349, 336 | "Color Space" : "sRGB", 337 | "Blue Component" : 0.85490196943283081, 338 | "Alpha Component" : 1, 339 | "Green Component" : 0.71764707565307617 340 | }, 341 | "ASCII Ligatures" : true, 342 | "Name" : "Default", 343 | "Cursor Text Color" : { 344 | "Red Component" : 0, 345 | "Color Space" : "sRGB", 346 | "Blue Component" : 0, 347 | "Alpha Component" : 1, 348 | "Green Component" : 0 349 | }, 350 | "Shortcut" : "", 351 | "Cursor Color" : { 352 | "Red Component" : 0.80000001192092896, 353 | "Color Space" : "sRGB", 354 | "Blue Component" : 0.80000001192092896, 355 | "Alpha Component" : 1, 356 | "Green Component" : 0.80000001192092896 357 | }, 358 | "Transparency" : 0, 359 | "Guid" : "6C40211C-B01A-4315-BC10-A6157E9C563A", 360 | "Ansi 2 Color" : { 361 | "Red Component" : 0.21568627655506134, 362 | "Color Space" : "sRGB", 363 | "Blue Component" : 0.47058823704719543, 364 | "Alpha Component" : 1, 365 | "Green Component" : 0.7450980544090271 366 | }, 367 | "Ansi 3 Color" : { 368 | "Red Component" : 0.88627451658248901, 369 | "Color Space" : "sRGB", 370 | "Blue Component" : 0.13333334028720856, 371 | "Alpha Component" : 1, 372 | "Green Component" : 0.90980392694473267 373 | }, 374 | "Ansi 4 Color" : { 375 | "Red Component" : 0.22352941334247589, 376 | "Color Space" : "sRGB", 377 | "Blue Component" : 0.78039216995239258, 378 | "Alpha Component" : 1, 379 | "Green Component" : 0.43137255311012268 380 | }, 381 | "Right Option Key Sends" : 2, 382 | "Ansi 6 Color" : { 383 | "Red Component" : 0.23137255012989044, 384 | "Color Space" : "sRGB", 385 | "Blue Component" : 0.80000001192092896, 386 | "Alpha Component" : 1, 387 | "Green Component" : 0.65490198135375977 388 | }, 389 | "Ansi 1 Color" : { 390 | "Red Component" : 0.91372549533843994, 391 | "Color Space" : "sRGB", 392 | "Blue Component" : 0.31764706969261169, 393 | "Alpha Component" : 1, 394 | "Green Component" : 0.29019609093666077 395 | }, 396 | "Normal Font" : "FiraCodeNerdFontComplete-Retina 14", 397 | "Custom Directory" : "No", 398 | "Horizontal Spacing" : 1, 399 | "Ansi 5 Color" : { 400 | "Red Component" : 0.72156864404678345, 401 | "Color Space" : "sRGB", 402 | "Blue Component" : 0.73725491762161255, 403 | "Alpha Component" : 1, 404 | "Green Component" : 0.20784313976764679 405 | } 406 | } -------------------------------------------------------------------------------- /vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "workbench.startupEditor": "none", 3 | "security.workspace.trust.untrustedFiles": "open", 4 | "svelte.enable-ts-plugin": true, 5 | "projectManager.git.baseFolders": ["~/Projects"], 6 | "git.autofetch": true, 7 | "git.confirmSync": false, 8 | "[javascript]": { 9 | "editor.defaultFormatter": "vscode.typescript-language-features" 10 | }, 11 | "[typescriptreact]": { 12 | "editor.defaultFormatter": "esbenp.prettier-vscode" 13 | }, 14 | "settingsSync.ignoredSettings": ["-window.zoomLevel"], 15 | "files.hotExit": "onExitAndWindowClose", 16 | "[typescript]": { 17 | "editor.defaultFormatter": "esbenp.prettier-vscode" 18 | }, 19 | "terminal.integrated.defaultProfile.osx": "fish", 20 | "terminal.integrated.profiles.osx": { 21 | "fish": { 22 | "path": "/opt/homebrew/bin/fish", 23 | "args": ["-l"] 24 | }, 25 | "tmux-shell": { 26 | "path": "tmux", 27 | "args": ["new-session", "-A", "-s", "vscode:${workspaceFolder}"] 28 | } 29 | }, 30 | "window.autoDetectColorScheme": true, 31 | "window.restoreWindows": "preserve", 32 | "[svelte]": { 33 | "editor.defaultFormatter": "svelte.svelte-vscode" 34 | }, 35 | "explorer.confirmDragAndDrop": false, 36 | "git.rememberPostCommitCommand": true, 37 | "github.copilot.enable": { 38 | "*": true, 39 | "plaintext": false, 40 | "markdown": true, 41 | "scminput": false 42 | }, 43 | "vim.replaceWithRegister": true, 44 | "vim.camelCaseMotion.enable": true, 45 | "vim.highlightedyank.enable": true, 46 | "vim.hlsearch": true, 47 | "vim.easymotion": true, 48 | "vim.leader": " ", 49 | "vim.useSystemClipboard": true, 50 | "vim.visualstar": true, 51 | "vim.operatorPendingModeKeyBindingsNonRecursive": [ 52 | // rebind camelCase motion 53 | { 54 | "before": ["i", "v"], 55 | "after": ["i", "", "w"] 56 | } 57 | ], 58 | "vim.normalModeKeyBindingsNonRecursive": [ 59 | { 60 | "before": ["u"], 61 | "commands": ["undo"] 62 | }, 63 | { 64 | "before": [""], 65 | "commands": ["redo"] 66 | }, 67 | { 68 | "before": [":"], 69 | "commands": ["workbench.action.showCommands"] 70 | }, 71 | { 72 | "before": ["", "g", "c"], 73 | "commands": ["git.checkout"] 74 | }, 75 | { 76 | "before": ["", "g", "m"], 77 | "commands": ["git.merge"] 78 | }, 79 | { 80 | "before": ["", "g", "l"], 81 | "commands": ["git.pull"] 82 | }, 83 | { 84 | "before": ["", "g", "P"], 85 | "commands": ["git.push"] 86 | }, 87 | { 88 | "before": ["", "g", "d"], 89 | "commands": ["references-view.findReferences"] 90 | }, 91 | { 92 | "before": ["", "g", "a", "a"], 93 | "commands": ["git.stageAll"] 94 | }, 95 | { 96 | "before": [ 97 | "", 98 | "r" // refactor - rename 99 | ], 100 | "commands": ["editor.action.rename"] 101 | }, 102 | { 103 | "before": ["", "t", "r"], 104 | "commands": ["code-runner.stop", "code-runner.run"] 105 | }, 106 | { 107 | "before": ["w"], 108 | "after": ["", "w"] 109 | }, 110 | { 111 | "before": ["b"], 112 | "after": ["", "b"] 113 | }, 114 | { 115 | "before": ["e"], 116 | "after": ["", "e"] 117 | }, 118 | { 119 | "before": ["g", "i"], 120 | "commands": ["editor.action.goToImplementation"] 121 | }, 122 | { 123 | "before": ["", "f"], 124 | "commands": ["editor.action.formatDocument", "eslint.executeAutofix"] 125 | }, 126 | { 127 | "before": [ 128 | // "", 129 | "", 130 | "v" 131 | ], 132 | "commands": ["workbench.action.splitEditor"] 133 | }, 134 | { 135 | "before": [ 136 | // "", 137 | "", 138 | "h" 139 | ], 140 | "commands": ["workbench.action.splitEditorDown"] 141 | }, 142 | // { 143 | // "before": [ 144 | // "", 145 | // "w", 146 | // "q" 147 | // ], 148 | // "commands": [ 149 | // "workbench.action.closeActiveEditor" 150 | // ] 151 | // }, 152 | { 153 | "before": ["", ""], 154 | "commands": ["workbench.action.files.revealActiveFileInWindows"] 155 | }, 156 | { 157 | "before": [""], 158 | "commands": ["workbench.files.action.showActiveFileInExplorer"] 159 | }, 160 | { 161 | "before": ["", "n"], 162 | "commands": ["workbench.action.toggleSidebarVisibility"] 163 | }, 164 | { 165 | "before": ["", "m"], 166 | "commands": ["editor.action.toggleMinimap"] 167 | }, 168 | // vim-cutlass implementation 169 | { 170 | "before": ["D"], 171 | "after": ["\"", "_", "D"] 172 | }, 173 | { 174 | "before": ["d"], 175 | "after": ["\"", "_", "d"] 176 | }, 177 | { 178 | "before": ["d", "d"], 179 | "after": ["\"", "_", "d", "d"] 180 | }, 181 | { 182 | "before": ["c"], 183 | "after": ["\"", "_", "c"] 184 | }, 185 | { 186 | "before": ["C"], 187 | "after": ["\"", "_", "C"] 188 | }, 189 | { 190 | "before": ["c", "c"], 191 | "after": ["\"", "_", "c", "c"] 192 | }, 193 | { 194 | "before": ["x"], 195 | "after": ["\"", "_", "x"] 196 | }, 197 | { 198 | "before": ["X"], 199 | "after": ["\"", "_", "X"] 200 | }, 201 | // "move"/"cut" remap 202 | { 203 | "before": ["m"], 204 | "after": ["d"] 205 | }, 206 | { 207 | "before": ["m", "m"], 208 | "after": ["d", "d"] 209 | }, 210 | { 211 | "before": ["M"], 212 | "after": ["D"] 213 | } 214 | ], 215 | "vim.normalModeKeyBindings": [ 216 | { 217 | "before": ["", "5"], 218 | "commands": ["editor.emmet.action.matchTag"] 219 | }, 220 | // easymotion -- seems better than sneak 221 | { 222 | "before": ["s"], 223 | "after": ["leader", "leader", "s"] 224 | }, 225 | { 226 | "before": ["S"], 227 | "after": ["leader", "leader", "leader", "b", "d", "j", "k"] 228 | }, 229 | // replace with register 230 | { 231 | "before": ["l"], 232 | "after": ["g", "r"] 233 | }, 234 | // { 235 | // "before": [":"], 236 | // "commands": [ 237 | // "workbench.action.showCommands", 238 | // ], 239 | // "silent": true 240 | // }, 241 | // TODO: fix 242 | // { 243 | // "before": ["M", "K"], 244 | // "after": ["editor.action.moveLinesDownAction"] 245 | // "after": ["editor.action.moveLinesUpAction"] 246 | // }, 247 | { 248 | "before": ["]", "f"], 249 | "commands": ["search.action.focusNextSearchResult"] 250 | }, 251 | { 252 | "before": ["[", "f"], 253 | "commands": ["search.action.focusPreviousSearchResult"] 254 | }, 255 | { 256 | "before": ["]", "d"], 257 | "commands": ["editor.action.marker.next"] 258 | }, 259 | { 260 | "before": ["[", "d"], 261 | "commands": ["editor.action.marker.prev"] 262 | }, 263 | { 264 | "before": ["leader", "b", "d"], 265 | "commands": ["workbench.action.closeActiveEditor"] 266 | }, 267 | { 268 | "before": ["leader", "b", "D"], 269 | "commands": ["workbench.action.closeOtherEditors"] 270 | }, 271 | { 272 | "before": ["]", "b"], 273 | "commands": ["workbench.action.nextEditor"] 274 | }, 275 | { 276 | "before": ["]", "B"], 277 | "commands": ["workbench.action.lastEditorInGroup"] 278 | }, 279 | { 280 | "before": ["[", "B"], 281 | "commands": ["workbench.action.firstEditorInGroup"] 282 | }, 283 | { 284 | "before": ["[", "b"], 285 | "commands": ["workbench.action.previousEditor"] 286 | }, 287 | { 288 | "before": ["]", "c"], 289 | "commands": [ 290 | "workbench.action.editor.nextChange" 291 | // "editor.action.dirtydiff.next", 292 | ] 293 | }, 294 | { 295 | "before": ["[", "c"], 296 | "commands": [ 297 | "workbench.action.editor.previousChange" 298 | // "editor.action.dirtydiff.previous", 299 | ] 300 | }, 301 | { 302 | "before": ["]", "n"], 303 | "commands": [ 304 | "merge-conflict.next" 305 | // "editor.action.dirtydiff.next", 306 | ] 307 | }, 308 | // conflict markers https://github.com/rhysd/conflict-marker.vim 309 | { 310 | "before": ["[", "n"], 311 | "commands": ["merge-conflict.previous"] 312 | }, 313 | { 314 | "before": ["[", "n"], 315 | "commands": ["merge-conflict.previous"] 316 | }, 317 | { 318 | "before": ["m", "c", "b"], 319 | "commands": ["merge-conflict.accept.both"] 320 | }, 321 | { 322 | "before": ["m", "c", "t"], 323 | "commands": ["merge-conflict.accept.incoming"] 324 | }, 325 | { 326 | "before": ["m", "c", "o"], 327 | "commands": ["merge-conflict.accept.current"] 328 | }, 329 | // testing 330 | { 331 | "before": ["leader", "t", "h"], 332 | "commands": ["extension.runJest"] 333 | }, 334 | { 335 | "before": ["leader", "t", "f"], 336 | "commands": ["extension.runJestFile"] 337 | }, 338 | { 339 | "before": ["leader", "t", "w"], 340 | "commands": ["extension.runJestFileWithWatchMode"] 341 | }, 342 | { 343 | "before": ["leader", "h", "p"], 344 | "commands": ["editor.action.dirtydiff.next"] 345 | }, 346 | { 347 | "before": ["leader", "h", "h"], 348 | "commands": ["closeQuickDiff"] 349 | }, 350 | { 351 | "before": ["leader", "h", "s"], 352 | "commands": ["git.stageSelectedRanges"] 353 | }, 354 | { 355 | "before": ["leader", "h", "r"], 356 | "commands": [ 357 | "git.revertSelectedRanges" // fix 358 | // "git.revertChange", 359 | ] 360 | }, 361 | // zz after n / N 362 | { 363 | "before": ["n"], 364 | "after": ["n", "z", "z"] 365 | }, 366 | { 367 | "before": ["N"], 368 | "after": ["N", "z", "z"] 369 | }, 370 | // bookmarks 371 | { 372 | "before": ["g", "m"], 373 | "commands": ["bookmarks.toggle"] 374 | }, 375 | { 376 | "before": ["g", "M"], 377 | "commands": ["bookmarksExplorer.focus"] 378 | }, 379 | { 380 | "before": ["`", "m"], 381 | "commands": ["bookmarks.list"] 382 | }, 383 | { 384 | "before": ["'", "m"], 385 | "commands": ["bookmarks.list"] 386 | }, 387 | // other 388 | { 389 | "before": ["enter"], 390 | "commands": [ 391 | // "workbench.action.files.save", 392 | "workbench.action.files.saveWithoutFormatting" 393 | ] 394 | }, 395 | { 396 | "before": ["leader", "f", "s"], 397 | "commands": ["workbench.view.search.focus"] 398 | }, 399 | // how do I work with git these days? 400 | // mainly in files with hunks ]c [c hp hr etc 401 | // sourcetree to search in file history text changes 402 | { 403 | "before": ["leader", "f", "g"], 404 | "commands": ["workbench.view.scm"] 405 | }, 406 | // git-graph.view -- git log with easy to find diffs in recent changes 407 | { 408 | "before": ["leader", "f", "l"], 409 | "commands": ["git-graph.view"] 410 | }, 411 | // git.viewFileHistory -- don't like this one much 412 | // best file history I got but can't do search by text 413 | { 414 | "before": ["leader", "f", "h"], 415 | "commands": ["gitlens.showFileHistoryView"] 416 | }, 417 | { 418 | "before": [""], 419 | "commands": ["workbench.action.focusActiveEditorGroup"] 420 | } 421 | ], 422 | "vim.visualModeKeyBindingsNonRecursive": [ 423 | // kinda the same as P - replace with register 424 | { 425 | "before": ["="], 426 | "after": ["g", "r"] 427 | }, 428 | { 429 | "before": ["p"], 430 | "after": ["P"] 431 | }, 432 | // cutlass 433 | { 434 | "before": ["d"], 435 | "after": ["\"", "_", "d"] 436 | }, 437 | { 438 | "before": ["c"], 439 | "after": ["\"", "_", "c"] 440 | }, 441 | { 442 | "before": ["x"], 443 | "after": ["\"", "_", "x"] 444 | }, 445 | { 446 | "before": ["m"], 447 | "after": ["d"] 448 | } 449 | ], 450 | "vim.visualModeKeyBindings": [ 451 | { 452 | "before": [">"], 453 | "commands": ["editor.action.indentLines"] 454 | }, 455 | { 456 | "before": ["<"], 457 | "commands": ["editor.action.outdentLines"] 458 | } 459 | ], 460 | "terminal.integrated.enableMultiLinePasteWarning": false, 461 | "editor.smoothScrolling": true, 462 | "zenMode.hideLineNumbers": false, 463 | "workbench.activityBar.iconClickBehavior": "focus", 464 | "editor.bracketPairColorization.enabled": true, 465 | "editor.cursorSurroundingLines": 4, 466 | "window.nativeTabs": true, 467 | "[html]": { 468 | "editor.defaultFormatter": "vscode.html-language-features" 469 | }, 470 | "[go]": { 471 | "editor.defaultFormatter": "golang.go" 472 | }, 473 | "window.nativeFullScreen": false, 474 | "editor.accessibilitySupport": "off", 475 | "eslint.format.enable": true, 476 | "eslint.probe": [ 477 | "javascript", 478 | "javascriptreact", 479 | "typescript", 480 | "typescriptreact", 481 | "html", 482 | "vue", 483 | "markdown", 484 | "svelte" 485 | ], 486 | "window.titleBarStyle": "native", 487 | "window.customTitleBarVisibility": "never", 488 | "diffEditor.ignoreTrimWhitespace": false, 489 | "workbench.colorTheme": "Default Dark+", 490 | "vim.sneakReplacesF": true, 491 | "vim.sneak": true, 492 | "vim.easymotionKeys": "hlyuiopnm,.qwertzxcvbasdgjf", 493 | "explorer.confirmPasteNative": false, 494 | "typescript.updateImportsOnFileMove.enabled": "always", 495 | "extensions.ignoreRecommendations": true, 496 | "editor.formatOnSave": true, 497 | "explorer.fileNesting.patterns": { 498 | "*.ts": "${capture}.js", 499 | "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts", 500 | "*.jsx": "${capture}.js", 501 | "*.tsx": "${capture}.ts", 502 | "tsconfig.json": "tsconfig.*.json", 503 | "package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb", 504 | "*.sqlite": "${capture}.${extname}-*", 505 | "*.db": "${capture}.${extname}-*", 506 | "*.sqlite3": "${capture}.${extname}-*", 507 | "*.db3": "${capture}.${extname}-*", 508 | "*.sdb": "${capture}.${extname}-*", 509 | "*.s3db": "${capture}.${extname}-*" 510 | }, 511 | "playwright.reuseBrowser": false, 512 | "redhat.telemetry.enabled": false, 513 | "[yaml]": { 514 | "editor.defaultFormatter": "redhat.vscode-yaml" 515 | }, 516 | "git.allowForcePush": true, 517 | "terminal.integrated.lineHeight": 1.15, 518 | "editor.fontFamily": "FiraCode Nerd Font, Menlo, Monaco, 'Courier New', monospace", 519 | "workbench.preferredDarkColorTheme": "Default Dark+", 520 | "editor.lineHeight": 1.2, 521 | "telemetry.telemetryLevel": "off", 522 | "editor.fontSize": 14, 523 | "editor.stickyScroll.maxLineCount": 3, 524 | "editor.minimap.enabled": false 525 | } 526 | --------------------------------------------------------------------------------