├── .gitattributes ├── .gitignore ├── Brewfile ├── LICENSE ├── README.md └── matt ├── .cargo └── .crates.toml ├── .config ├── fish │ ├── alias.fish │ ├── conf.d │ │ └── omf.fish │ ├── config.fish │ ├── fish_variables │ ├── functions.fish │ └── functions │ │ ├── co.fish │ │ ├── envsource.fish │ │ ├── s.fish │ │ └── vio.fish ├── gh │ ├── config.yml │ └── hosts.yml ├── kitty │ ├── kitty.conf │ └── theme.conf ├── neofetch │ └── config.conf ├── nvim │ ├── init.lua │ ├── lazy-lock.json │ ├── lua │ │ ├── autocmd.lua │ │ ├── keymap.lua │ │ ├── opts.lua │ │ └── pkg.lua │ ├── snippets │ │ └── go.snippets │ └── spell │ │ ├── en.utf-8.add │ │ └── en.utf-8.add.spl ├── omf │ ├── bundle │ ├── channel │ └── theme ├── raycast │ └── script-commands │ │ ├── apple-music-next.applescript │ │ ├── apple-music-pause.applescript │ │ ├── apple-music-play.applescript │ │ ├── open-desktop.sh │ │ └── open-downloads.sh ├── resin │ └── foo.toml └── zathura │ └── zathurarc ├── .docker └── config.json ├── .gitconfig ├── .gnupg └── gpg-agent.conf ├── .hushlogin ├── .rustup └── settings.toml └── Library └── Application Support └── Code └── User ├── keybindings.json ├── settings.json └── snippets ├── css.json ├── go.json ├── latex.json ├── svelte.json ├── typescript.json └── typescriptreact.json /.gitattributes: -------------------------------------------------------------------------------- 1 | *.xml linguist-detectable=true 2 | *.xml linguist-documentation=false 3 | *.yml linguist-detectable=true 4 | *.yml linguist-documentation=false 5 | *.yaml linguist-detectable=true 6 | *.yaml linguist-documentation=false 7 | *.txt linguist-detectable=true 8 | *.txt linguist-documentation=false 9 | *.toml linguist-detectable=true 10 | *.toml linguist-documentation=false 11 | *.py linguist-detectable=false 12 | *.py linguist-documentation=false 13 | *.pyc linguist-detectable=false 14 | *.pyc linguist-detectable=false 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | secret* 4 | matt/.config/raycast/extensions* 5 | -------------------------------------------------------------------------------- /Brewfile: -------------------------------------------------------------------------------- 1 | tap "hashicorp/tap" 2 | tap "homebrew-zathura/zathura" 3 | # Clone of cat(1) with syntax highlighting and Git integration 4 | brew "bat" 5 | # Python code formatter 6 | brew "black" 7 | # Statistics utility to count lines of code 8 | brew "cloc" 9 | # Cross-platform make 10 | brew "cmake" 11 | # Modern, maintained replacement for ls 12 | brew "eza" 13 | # Simple, fast and user-friendly alternative to find 14 | brew "fd" 15 | # Play, record, convert, and stream audio and video 16 | brew "ffmpeg" 17 | # User-friendly command-line shell for UNIX-like operating systems 18 | brew "fish" 19 | # Monitor a directory for changes and run a shell command 20 | brew "fswatch" 21 | # GitHub command-line tool 22 | brew "gh" 23 | # Distributed revision control system 24 | brew "git" 25 | # GNU Pretty Good Privacy (PGP) package 26 | brew "gnupg" 27 | # Open source programming language to build simple/reliable/efficient software 28 | brew "go" 29 | # Fast linters runner for Go 30 | brew "golangci-lint" 31 | # Database client and tools for the Go vulnerability database 32 | brew "govulncheck" 33 | # Smarter Dockerfile linter to validate best practices 34 | brew "hadolint" 35 | # Simple terminal UI for git commands 36 | brew "lazygit" 37 | # Fast, highly customisable system info script 38 | brew "neofetch" 39 | # Ambitious Vim-fork focused on extensibility and agility 40 | brew "neovim" 41 | # Pinentry for GPG on Mac 42 | brew "pinentry-mac" 43 | # Fast, disk space efficient package manager 44 | brew "pnpm" 45 | # Python package management tool 46 | brew "poetry" 47 | # Static type checker for Python 48 | brew "pyright" 49 | # Search tool like grep and The Silver Searcher 50 | brew "ripgrep" 51 | # Fuzzy Finder in rust! 52 | brew "sk" 53 | # Display directories as trees (with optional color/HTML output) 54 | brew "tree" 55 | # Executes a program periodically, showing output fullscreen 56 | brew "watch" 57 | # Command-line client for WebSockets 58 | brew "websocat" 59 | # JavaScript package manager 60 | brew "yarn" 61 | # Feature-rich command-line audio/video downloader 62 | brew "yt-dlp" 63 | # Terraform 64 | brew "hashicorp/tap/terraform" 65 | # PDF viewer 66 | brew "homebrew-zathura/zathura/zathura" 67 | # Poppler backend plugin for zathura 68 | brew "homebrew-zathura/zathura/zathura-pdf-poppler" 69 | # Collection of apps and services for photography, design, video, web, and UX 70 | cask "adobe-creative-cloud" 71 | # Menu bar icon organiser 72 | cask "bartender" 73 | # Desktop password and login vault 74 | cask "bitwarden" 75 | # Voice and text chat software 76 | cask "discord" 77 | # App to build and share containerised applications and microservices 78 | cask "docker" 79 | cask "font-ibm-plex-mono" 80 | cask "font-inter" 81 | # GitHub notifications on your menu bar 82 | cask "gitify" 83 | # Client for the Google Drive storage service 84 | cask "google-drive" 85 | # Free and open-source media player 86 | cask "iina" 87 | # System monitoring app 88 | cask "istat-menus@6" 89 | # GPU-based terminal emulator 90 | cask "kitty" 91 | # Full TeX Live distribution without GUI applications 92 | cask "mactex-no-gui" 93 | # Reverse proxy, secure introspectable tunnels to localhost 94 | cask "ngrok" 95 | # Converts and edits video, audio or image files 96 | cask "permute" 97 | # HTTP client that helps testing and describing APIs 98 | cask "rapidapi" 99 | # Control your tools with a few keystrokes 100 | cask "raycast" 101 | # Move and resize windows using keyboard shortcuts or snap areas 102 | cask "rectangle" 103 | # Video game digital distribution service 104 | cask "steam" 105 | # Native GUI tool for relational databases 106 | cask "tableplus" 107 | # Open-source code editor 108 | cask "visual-studio-code" 109 | # Web browser with built-in email client focusing on customization and control 110 | cask "vivaldi" 111 | # Video communication and virtual meeting platform 112 | cask "zoom" 113 | vscode "adamgraham.polykai-theme" 114 | vscode "akamud.vscode-theme-onedark" 115 | vscode "antfu.icons-carbon" 116 | vscode "blanu.vscode-styled-jsx" 117 | vscode "bmalehorn.vscode-fish" 118 | vscode "bodil.prettier-toml" 119 | vscode "christian-kohler.path-intellisense" 120 | vscode "clinyong.vscode-css-modules" 121 | vscode "dbaeumer.vscode-eslint" 122 | vscode "donjayamanne.githistory" 123 | vscode "dustypomerleau.rust-syntax" 124 | vscode "emeraldwalk.runonsave" 125 | vscode "esbenp.prettier-vscode" 126 | vscode "exiasr.hadolint" 127 | vscode "formulahendry.auto-close-tag" 128 | vscode "formulahendry.auto-rename-tag" 129 | vscode "github.copilot" 130 | vscode "github.copilot-chat" 131 | vscode "github.github-vscode-theme" 132 | vscode "github.vscode-github-actions" 133 | vscode "github.vscode-pull-request-github" 134 | vscode "golang.go" 135 | vscode "hashicorp.terraform" 136 | vscode "icrawl.discord-vscode" 137 | vscode "james-yu.latex-workshop" 138 | vscode "jdinhlife.gruvbox" 139 | vscode "kdarkhan.mips" 140 | vscode "matthewpi.caddyfile-support" 141 | vscode "meganrogge.template-string-converter" 142 | vscode "mgmcdermott.vscode-language-babel" 143 | vscode "mikestead.dotenv" 144 | vscode "ms-python.black-formatter" 145 | vscode "ms-python.debugpy" 146 | vscode "ms-python.isort" 147 | vscode "ms-python.python" 148 | vscode "ms-python.vscode-pylance" 149 | vscode "ms-vscode-remote.remote-ssh" 150 | vscode "ms-vscode-remote.remote-ssh-edit" 151 | vscode "ms-vscode.cpptools" 152 | vscode "ms-vscode.live-server" 153 | vscode "ms-vscode.remote-explorer" 154 | vscode "ms-vsliveshare.vsliveshare" 155 | vscode "naumovs.color-highlight" 156 | vscode "njpwerner.autodocstring" 157 | vscode "pmndrs.pmndrs" 158 | vscode "redhat.vscode-yaml" 159 | vscode "rust-lang.rust-analyzer" 160 | vscode "shardulm94.trailing-spaces" 161 | vscode "skyran.js-jsx-snippets" 162 | vscode "spywhere.now-playing" 163 | vscode "streetsidesoftware.code-spell-checker" 164 | vscode "sumneko.lua" 165 | vscode "svelte.svelte-vscode" 166 | vscode "tamasfe.even-better-toml" 167 | vscode "tecosaur.latex-utilities" 168 | vscode "usernamehw.errorlens" 169 | vscode "vadimcn.vscode-lldb" 170 | vscode "vivaxy.vscode-conventional-commits" 171 | vscode "vscode-icons-team.vscode-icons" 172 | vscode "vscodevim.vim" 173 | vscode "wakatime.vscode-wakatime" 174 | vscode "yzhang.markdown-all-in-one" 175 | vscode "zeshuaro.vscode-python-poetry" 176 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2025 Matt Gleich 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dots 2 | 3 | updated with [gleich/scripts/dots](https://github.com/gleich/scripts/tree/main/dots) 4 | 5 | ```txt 6 | matt@macbookpro.lan 7 | ------------------- 8 | OS: macOS 15.5 arm64 9 | Host: MacBookPro18,4 10 | Kernel: Darwin 24.5.0 11 | Packages: 181 (brew) 12 | Shell: fish 4.0.2 13 | DE: Aqua 14 | WM: Rectangle 15 | CPU: Apple M1 Max 16 | GPU: Apple M1 Max 17 | GPU Driver: macOS Default Graphics Driver 18 | ``` -------------------------------------------------------------------------------- /matt/.cargo/.crates.toml: -------------------------------------------------------------------------------- 1 | [v1] 2 | "cargo-edit 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)" = [ 3 | "cargo-add", 4 | "cargo-rm", 5 | "cargo-set-version", 6 | "cargo-upgrade", 7 | ] 8 | "resin 1.6.3 (path+file:///Users/matt/src/gleich/resin)" = ["resin"] 9 | -------------------------------------------------------------------------------- /matt/.config/fish/alias.fish: -------------------------------------------------------------------------------- 1 | alias c="clear" 2 | alias vi="nvim" 3 | alias vim="nvim" 4 | alias q="exit" 5 | alias l="ls" 6 | alias sl="ls" 7 | alias cpwd="pwd | pbcopy" 8 | alias pcd="cd (pbpaste)" 9 | alias ore="omf reload" 10 | alias cat="bat -n --theme=OneHalfDark" 11 | 12 | # git 13 | alias gp="git push" 14 | alias gs="git status" 15 | alias gl="git log --no-decorate" 16 | alias gpu="git pull" 17 | alias gcd="cd (git rev-parse --show-toplevel)" 18 | 19 | # lazygit 20 | alias lg="lazygit" 21 | 22 | # gh 23 | alias gv="gh repo view -w" 24 | alias cl="gh repo clone" 25 | alias wl="gh run list --limit 10" 26 | alias wlw="watch -n 5 -c 'script -q /dev/null gh run list --limit 10 | sed -E \"s/^.*(STATUS)/\1/\"'" 27 | alias ww="gh run watch" 28 | alias wv="gh run view --log" 29 | alias wvf="gh run view --log-failed" 30 | 31 | # resin 32 | alias gmap="resin -a -p" 33 | alias gma="resin -a" 34 | -------------------------------------------------------------------------------- /matt/.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 | -------------------------------------------------------------------------------- /matt/.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | source ~/.config/fish/functions.fish 2 | source ~/.config/fish/alias.fish 3 | 4 | set fish_greeting 5 | 6 | # terminal colors 7 | set -U fish_color_autosuggestion brblack 8 | set -U fish_color_cancel -r 9 | set -U fish_color_command brgreen 10 | set -U fish_color_comment brmagenta 11 | set -U fish_color_cwd green 12 | set -U fish_color_cwd_root red 13 | set -U fish_color_end brmagenta 14 | set -U fish_color_error brred 15 | set -U fish_color_escape brcyan 16 | set -U fish_color_history_current --bold 17 | set -U fish_color_host normal 18 | set -U fish_color_match --background=brblue 19 | set -U fish_color_normal normal 20 | set -U fish_color_operator cyan 21 | set -U fish_color_param brblue 22 | set -U fish_color_quote yellow 23 | set -U fish_color_redirection bryellow 24 | set -U fish_color_search_match bryellow '--background=brblack' 25 | set -U fish_color_selection white --bold '--background=brblack' 26 | set -U fish_color_status red 27 | set -U fish_color_user brgreen 28 | set -U fish_color_valid_path --underline 29 | set -U fish_pager_color_completion normal 30 | set -U fish_pager_color_description yellow 31 | set -U fish_pager_color_prefix white --bold --underline 32 | set -U fish_pager_color_progress brwhite '--background=cyan' 33 | 34 | # vim 35 | fish_vi_key_bindings 36 | set fish_cursor_insert line blink 37 | function fish_mode_prompt 38 | echo ' [' 39 | switch $fish_bind_mode 40 | case default 41 | set_color --bold red 42 | echo N 43 | case insert 44 | set_color --bold green 45 | echo I 46 | case replace_one 47 | set_color --bold green 48 | echo R 49 | case visual 50 | set_color --bold cyan 51 | echo V 52 | case '*' 53 | set_color --bold red 54 | echo '?' 55 | end 56 | set_color normal 57 | echo '] ' 58 | end 59 | 60 | # bun install path 61 | set --export BUN_INSTALL "$HOME/.bun" 62 | set --export PATH $BUN_INSTALL/bin $PATH 63 | -------------------------------------------------------------------------------- /matt/.config/fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR __fish_initialized:3800 4 | SETUVAR chain_links:chain\x2elinks\x2eroot\x1echain\x2elinks\x2ejobs\x1echain\x2elinks\x2epwd\x1echain\x2elinks\x2evcs_branch\x1echain\x2elinks\x2evcs_dirty\x1echain\x2elinks\x2evcs_stashed 5 | SETUVAR fish_color_autosuggestion:brblack 6 | SETUVAR fish_color_cancel:\x2dr 7 | SETUVAR fish_color_command:brgreen 8 | SETUVAR fish_color_comment:brmagenta 9 | SETUVAR fish_color_cwd:green 10 | SETUVAR fish_color_cwd_root:red 11 | SETUVAR fish_color_end:brmagenta 12 | SETUVAR fish_color_error:brred 13 | SETUVAR fish_color_escape:brcyan 14 | SETUVAR fish_color_history_current:\x2d\x2dbold 15 | SETUVAR fish_color_host:normal 16 | SETUVAR fish_color_host_remote:yellow 17 | SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue 18 | SETUVAR fish_color_normal:normal 19 | SETUVAR fish_color_operator:cyan 20 | SETUVAR fish_color_param:brblue 21 | SETUVAR fish_color_quote:yellow 22 | SETUVAR fish_color_redirection:bryellow 23 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 24 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 25 | SETUVAR fish_color_status:red 26 | SETUVAR fish_color_user:brgreen 27 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 28 | SETUVAR fish_key_bindings:fish_vi_key_bindings 29 | SETUVAR fish_pager_color_completion:normal 30 | SETUVAR fish_pager_color_description:yellow 31 | SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 32 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 33 | SETUVAR fish_pager_color_selected_background:\x2dr 34 | SETUVAR fish_user_paths:/opt/homebrew/bin 35 | -------------------------------------------------------------------------------- /matt/.config/fish/functions.fish: -------------------------------------------------------------------------------- 1 | function ccat 2 | cat $argv | pbcopy 3 | end 4 | -------------------------------------------------------------------------------- /matt/.config/fish/functions/co.fish: -------------------------------------------------------------------------------- 1 | function co 2 | if test (count $argv) -gt 0 3 | set src_path ~/.config/$argv 4 | else 5 | set src_path ~/.config/ 6 | end 7 | cd $src_path 8 | end 9 | 10 | complete -c co -f -a "(command ls ~/.config)" 11 | -------------------------------------------------------------------------------- /matt/.config/fish/functions/envsource.fish: -------------------------------------------------------------------------------- 1 | function envsource 2 | for line in (cat $argv | grep -v '^#' | grep -v '^\s*$' | sed -e 's/=/ /' -e "s/'//g" -e 's/"//g' ) 3 | set export (string split ' ' $line) 4 | set -gx $export[1] $export[2] 5 | echo "Exported key $export[1]" 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /matt/.config/fish/functions/s.fish: -------------------------------------------------------------------------------- 1 | function s 2 | if test (count $argv) -gt 0 3 | set src_path ~/src/gleich/$argv 4 | else 5 | cd ~/src/ 6 | set src_path (fd . --type d --exact-depth 2 | sk --color=bw --reverse --no-mouse --no-multi) 7 | end 8 | cd $src_path 9 | end 10 | 11 | complete -c s -f -a "(command ls ~/src/gleich)" 12 | -------------------------------------------------------------------------------- /matt/.config/fish/functions/vio.fish: -------------------------------------------------------------------------------- 1 | function vio 2 | if test (count $argv) -gt 0 3 | set src_path ~/src/gleich/$argv 4 | else 5 | cd ~/src/ 6 | set src_path (fd . --type d --exact-depth 2 | sk --color=bw --reverse --no-mouse --no-multi) 7 | end 8 | cd $src_path && vi 9 | end 10 | 11 | complete -c vio -f -a "(command ls ~/src/gleich)" 12 | -------------------------------------------------------------------------------- /matt/.config/gh/config.yml: -------------------------------------------------------------------------------- 1 | # The current version of the config schema 2 | version: 1 3 | # What protocol to use when performing git operations. Supported values: ssh, https 4 | git_protocol: https 5 | # What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. 6 | editor: 7 | # When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled 8 | prompt: enabled 9 | # Preference for editor-based interactive prompting. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled 10 | prefer_editor_prompt: disabled 11 | # A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager. 12 | pager: 13 | # Aliases allow you to create nicknames for gh commands 14 | aliases: 15 | co: pr checkout 16 | # The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. 17 | http_unix_socket: 18 | # What web browser gh should use when opening URLs. If blank, will refer to environment. 19 | browser: 20 | # Whether to display labels using their RGB hex color codes in terminals that support truecolor. Supported values: enabled, disabled 21 | color_labels: disabled 22 | # Whether customizable, 4-bit accessible colors should be used. Supported values: enabled, disabled 23 | accessible_colors: disabled 24 | # Whether an accessible prompter should be used. Supported values: enabled, disabled 25 | accessible_prompter: disabled 26 | # Whether to use a animated spinner as a progress indicator. If disabled, a textual progress indicator is used instead. Supported values: enabled, disabled 27 | spinner: enabled 28 | -------------------------------------------------------------------------------- /matt/.config/gh/hosts.yml: -------------------------------------------------------------------------------- 1 | github.com: 2 | git_protocol: https 3 | users: 4 | gleich: 5 | user: gleich 6 | -------------------------------------------------------------------------------- /matt/.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | font_family family="IBM Plex Mono" style="Semibold" features="+zero" 2 | 3 | # window 4 | # enabled_layouts grid 5 | window_padding_width 3 6 | confirm_os_window_close 1 7 | sync_to_monitor yes 8 | macos_show_window_title_in window 9 | macos_traditional_fullscreen false 10 | hide_window_decorations titlebar-only 11 | 12 | # tabs 13 | tab_bar_style separator 14 | tab_separator " | " 15 | tab_bar_edge top 16 | tab_bar_align center 17 | tab_bar_min_tabs 1 18 | 19 | # background 20 | background_opacity 0.98 21 | background_blur 50 22 | 23 | # keybindings 24 | map shift+up move_window up 25 | map shift+left move_window left 26 | map shift+right move_window right 27 | map shift+down move_window down 28 | map super+left neighboring_window left 29 | map super+right neighboring_window right 30 | map super+up neighboring_window up 31 | map super+down neighboring_window down 32 | map super+enter new_window_with_cwd 33 | map super+t new_tab_with_cwd 34 | 35 | # etc 36 | allow_remote_control yes 37 | 38 | # performance 39 | input_delay 0 40 | repaint_delay 2 41 | sync_to_monitor no 42 | wayland_enable_ime no 43 | 44 | include theme.conf 45 | -------------------------------------------------------------------------------- /matt/.config/kitty/theme.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: mattglei.ch 4 | ## author: Matt Gleich 5 | ## license: MIT 6 | 7 | #: The basic colors 8 | 9 | foreground #ffffff 10 | background #15191b 11 | selection_foreground #484A4B 12 | selection_background #2b95ff 13 | 14 | #: Cursor colors 15 | 16 | cursor #2b95ff 17 | 18 | #: Tab bar colors 19 | 20 | tab_bar_background #15191b 21 | active_tab_foreground #15191b 22 | active_tab_background #00d96b 23 | inactive_tab_foreground #ffffff 24 | inactive_tab_background #15191b 25 | 26 | #: Split separator color 27 | inactive_border_color #434343 28 | active_border_color #28563d 29 | 30 | #: The basic 16 colors 31 | 32 | #: black 33 | color0 #292b2d 34 | color8 #676767 35 | 36 | #: red 37 | color1 #f30928 38 | color9 #ff4b5c 39 | 40 | #: green 41 | color2 #00d96b 42 | color10 #00ff88 43 | 44 | #: yellow 45 | color3 #e3b341 46 | color11 #e3b341 47 | 48 | #: blue 49 | color4 #2b95ff 50 | color12 #5fafff 51 | 52 | #: magenta 53 | color5 #bc8cff 54 | color13 #d2a8ff 55 | 56 | #: cyan 57 | color6 #39c5cf 58 | color14 #56d4dd 59 | 60 | #: white 61 | color7 #ffffff 62 | color15 #ffffff 63 | -------------------------------------------------------------------------------- /matt/.config/neofetch/config.conf: -------------------------------------------------------------------------------- 1 | # See this wiki page for more info: 2 | # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info 3 | print_info() { 4 | info title 5 | info underline 6 | 7 | info "OS" distro 8 | info "Host" model 9 | info "Kernel" kernel 10 | # info "Uptime" uptime 11 | info "Packages" packages 12 | info "Shell" shell 13 | # info "Resolution" resolution 14 | info "DE" de 15 | info "WM" wm 16 | info "WM Theme" wm_theme 17 | info "Theme" theme 18 | info "Icons" icons 19 | # info "Terminal" term 20 | info "Terminal Font" term_font 21 | info "CPU" cpu 22 | info "GPU" gpu 23 | # info "Memory" memory 24 | info "GPU Driver" gpu_driver # Linux/macOS only 25 | # info "CPU Usage" cpu_usage 26 | # info "Disk" disk 27 | # info "Battery" battery 28 | info "Font" font 29 | 30 | # info "Song" song 31 | # [[ "$player" ]] && prin "Music Player" "$player" 32 | # info "Local IP" local_ip 33 | # info "Public IP" public_ip 34 | # info "Users" users 35 | # info "Locale" locale # This only works on glibc systems. 36 | 37 | # info cols 38 | } 39 | 40 | # Title 41 | 42 | 43 | # Hide/Show Fully qualified domain name. 44 | # 45 | # Default: 'off' 46 | # Values: 'on', 'off' 47 | # Flag: --title_fqdn 48 | title_fqdn="off" 49 | 50 | 51 | # Kernel 52 | 53 | 54 | # Shorten the output of the kernel function. 55 | # 56 | # Default: 'on' 57 | # Values: 'on', 'off' 58 | # Flag: --kernel_shorthand 59 | # Supports: Everything except *BSDs (except PacBSD and PC-BSD) 60 | # 61 | # Example: 62 | # on: '4.8.9-1-ARCH' 63 | # off: 'Linux 4.8.9-1-ARCH' 64 | kernel_shorthand="off" 65 | 66 | 67 | # Distro 68 | 69 | 70 | # Shorten the output of the distro function 71 | # 72 | # Default: 'off' 73 | # Values: 'on', 'tiny', 'off' 74 | # Flag: --distro_shorthand 75 | # Supports: Everything except Windows and Haiku 76 | distro_shorthand="on" 77 | 78 | # Show/Hide OS Architecture. 79 | # Show 'x86_64', 'x86' and etc in 'Distro:' output. 80 | # 81 | # Default: 'on' 82 | # Values: 'on', 'off' 83 | # Flag: --os_arch 84 | # 85 | # Example: 86 | # on: 'Arch Linux x86_64' 87 | # off: 'Arch Linux' 88 | os_arch="on" 89 | 90 | 91 | # Uptime 92 | 93 | 94 | # Shorten the output of the uptime function 95 | # 96 | # Default: 'on' 97 | # Values: 'on', 'tiny', 'off' 98 | # Flag: --uptime_shorthand 99 | # 100 | # Example: 101 | # on: '2 days, 10 hours, 3 mins' 102 | # tiny: '2d 10h 3m' 103 | # off: '2 days, 10 hours, 3 minutes' 104 | uptime_shorthand="on" 105 | 106 | 107 | # Memory 108 | 109 | 110 | # Show memory pecentage in output. 111 | # 112 | # Default: 'off' 113 | # Values: 'on', 'off' 114 | # Flag: --memory_percent 115 | # 116 | # Example: 117 | # on: '1801MiB / 7881MiB (22%)' 118 | # off: '1801MiB / 7881MiB' 119 | memory_percent="on" 120 | 121 | # Change memory output unit. 122 | # 123 | # Default: 'mib' 124 | # Values: 'kib', 'mib', 'gib' 125 | # Flag: --memory_unit 126 | # 127 | # Example: 128 | # kib '1020928KiB / 7117824KiB' 129 | # mib '1042MiB / 6951MiB' 130 | # gib: ' 0.98GiB / 6.79GiB' 131 | memory_unit="mib" 132 | 133 | 134 | # Packages 135 | 136 | 137 | # Show/Hide Package Manager names. 138 | # 139 | # Default: 'tiny' 140 | # Values: 'on', 'tiny' 'off' 141 | # Flag: --package_managers 142 | # 143 | # Example: 144 | # on: '998 (pacman), 8 (flatpak), 4 (snap)' 145 | # tiny: '908 (pacman, flatpak, snap)' 146 | # off: '908' 147 | package_managers="on" 148 | 149 | 150 | # Shell 151 | 152 | 153 | # Show the path to $SHELL 154 | # 155 | # Default: 'off' 156 | # Values: 'on', 'off' 157 | # Flag: --shell_path 158 | # 159 | # Example: 160 | # on: '/bin/bash' 161 | # off: 'bash' 162 | shell_path="off" 163 | 164 | # Show $SHELL version 165 | # 166 | # Default: 'on' 167 | # Values: 'on', 'off' 168 | # Flag: --shell_version 169 | # 170 | # Example: 171 | # on: 'bash 4.4.5' 172 | # off: 'bash' 173 | shell_version="on" 174 | 175 | 176 | # CPU 177 | 178 | 179 | # CPU speed type 180 | # 181 | # Default: 'bios_limit' 182 | # Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. 183 | # Flag: --speed_type 184 | # Supports: Linux with 'cpufreq' 185 | # NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. 186 | speed_type="bios_limit" 187 | 188 | # CPU speed shorthand 189 | # 190 | # Default: 'off' 191 | # Values: 'on', 'off'. 192 | # Flag: --speed_shorthand 193 | # NOTE: This flag is not supported in systems with CPU speed less than 1 GHz 194 | # 195 | # Example: 196 | # on: 'i7-6500U (4) @ 3.1GHz' 197 | # off: 'i7-6500U (4) @ 3.100GHz' 198 | speed_shorthand="off" 199 | 200 | # Enable/Disable CPU brand in output. 201 | # 202 | # Default: 'on' 203 | # Values: 'on', 'off' 204 | # Flag: --cpu_brand 205 | # 206 | # Example: 207 | # on: 'Intel i7-6500U' 208 | # off: 'i7-6500U (4)' 209 | cpu_brand="on" 210 | 211 | # CPU Speed 212 | # Hide/Show CPU speed. 213 | # 214 | # Default: 'on' 215 | # Values: 'on', 'off' 216 | # Flag: --cpu_speed 217 | # 218 | # Example: 219 | # on: 'Intel i7-6500U (4) @ 3.1GHz' 220 | # off: 'Intel i7-6500U (4)' 221 | cpu_speed="on" 222 | 223 | # CPU Cores 224 | # Display CPU cores in output 225 | # 226 | # Default: 'logical' 227 | # Values: 'logical', 'physical', 'off' 228 | # Flag: --cpu_cores 229 | # Support: 'physical' doesn't work on BSD. 230 | # 231 | # Example: 232 | # logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) 233 | # physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) 234 | # off: 'Intel i7-6500U @ 3.1GHz' 235 | cpu_cores="logical" 236 | 237 | # CPU Temperature 238 | # Hide/Show CPU temperature. 239 | # Note the temperature is added to the regular CPU function. 240 | # 241 | # Default: 'off' 242 | # Values: 'C', 'F', 'off' 243 | # Flag: --cpu_temp 244 | # Supports: Linux, BSD 245 | # NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable 246 | # coretemp kernel module. This only supports newer Intel processors. 247 | # 248 | # Example: 249 | # C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' 250 | # F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' 251 | # off: 'Intel i7-6500U (4) @ 3.1GHz' 252 | cpu_temp="F" 253 | 254 | 255 | # GPU 256 | 257 | 258 | # Enable/Disable GPU Brand 259 | # 260 | # Default: 'on' 261 | # Values: 'on', 'off' 262 | # Flag: --gpu_brand 263 | # 264 | # Example: 265 | # on: 'AMD HD 7950' 266 | # off: 'HD 7950' 267 | gpu_brand="on" 268 | 269 | # Which GPU to display 270 | # 271 | # Default: 'all' 272 | # Values: 'all', 'dedicated', 'integrated' 273 | # Flag: --gpu_type 274 | # Supports: Linux 275 | # 276 | # Example: 277 | # all: 278 | # GPU1: AMD HD 7950 279 | # GPU2: Intel Integrated Graphics 280 | # 281 | # dedicated: 282 | # GPU1: AMD HD 7950 283 | # 284 | # integrated: 285 | # GPU1: Intel Integrated Graphics 286 | gpu_type="all" 287 | 288 | 289 | # Resolution 290 | 291 | 292 | # Display refresh rate next to each monitor 293 | # Default: 'off' 294 | # Values: 'on', 'off' 295 | # Flag: --refresh_rate 296 | # Supports: Doesn't work on Windows. 297 | # 298 | # Example: 299 | # on: '1920x1080 @ 60Hz' 300 | # off: '1920x1080' 301 | refresh_rate="on" 302 | 303 | 304 | # Gtk Theme / Icons / Font 305 | 306 | 307 | # Shorten output of GTK Theme / Icons / Font 308 | # 309 | # Default: 'off' 310 | # Values: 'on', 'off' 311 | # Flag: --gtk_shorthand 312 | # 313 | # Example: 314 | # on: 'Numix, Adwaita' 315 | # off: 'Numix [GTK2], Adwaita [GTK3]' 316 | gtk_shorthand="off" 317 | 318 | 319 | # Enable/Disable gtk2 Theme / Icons / Font 320 | # 321 | # Default: 'on' 322 | # Values: 'on', 'off' 323 | # Flag: --gtk2 324 | # 325 | # Example: 326 | # on: 'Numix [GTK2], Adwaita [GTK3]' 327 | # off: 'Adwaita [GTK3]' 328 | gtk2="on" 329 | 330 | # Enable/Disable gtk3 Theme / Icons / Font 331 | # 332 | # Default: 'on' 333 | # Values: 'on', 'off' 334 | # Flag: --gtk3 335 | # 336 | # Example: 337 | # on: 'Numix [GTK2], Adwaita [GTK3]' 338 | # off: 'Numix [GTK2]' 339 | gtk3="on" 340 | 341 | 342 | # IP Address 343 | 344 | 345 | # Website to ping for the public IP 346 | # 347 | # Default: 'http://ident.me' 348 | # Values: 'url' 349 | # Flag: --ip_host 350 | public_ip_host="http://ident.me" 351 | 352 | # Public IP timeout. 353 | # 354 | # Default: '2' 355 | # Values: 'int' 356 | # Flag: --ip_timeout 357 | public_ip_timeout=2 358 | 359 | 360 | # Desktop Environment 361 | 362 | 363 | # Show Desktop Environment version 364 | # 365 | # Default: 'on' 366 | # Values: 'on', 'off' 367 | # Flag: --de_version 368 | de_version="on" 369 | 370 | 371 | # Disk 372 | 373 | 374 | # Which disks to display. 375 | # The values can be any /dev/sdXX, mount point or directory. 376 | # NOTE: By default we only show the disk info for '/'. 377 | # 378 | # Default: '/' 379 | # Values: '/', '/dev/sdXX', '/path/to/drive'. 380 | # Flag: --disk_show 381 | # 382 | # Example: 383 | # disk_show=('/' '/dev/sdb1'): 384 | # 'Disk (/): 74G / 118G (66%)' 385 | # 'Disk (/mnt/Videos): 823G / 893G (93%)' 386 | # 387 | # disk_show=('/'): 388 | # 'Disk (/): 74G / 118G (66%)' 389 | # 390 | disk_show=('/') 391 | 392 | # Disk subtitle. 393 | # What to append to the Disk subtitle. 394 | # 395 | # Default: 'mount' 396 | # Values: 'mount', 'name', 'dir', 'none' 397 | # Flag: --disk_subtitle 398 | # 399 | # Example: 400 | # name: 'Disk (/dev/sda1): 74G / 118G (66%)' 401 | # 'Disk (/dev/sdb2): 74G / 118G (66%)' 402 | # 403 | # mount: 'Disk (/): 74G / 118G (66%)' 404 | # 'Disk (/mnt/Local Disk): 74G / 118G (66%)' 405 | # 'Disk (/mnt/Videos): 74G / 118G (66%)' 406 | # 407 | # dir: 'Disk (/): 74G / 118G (66%)' 408 | # 'Disk (Local Disk): 74G / 118G (66%)' 409 | # 'Disk (Videos): 74G / 118G (66%)' 410 | # 411 | # none: 'Disk: 74G / 118G (66%)' 412 | # 'Disk: 74G / 118G (66%)' 413 | # 'Disk: 74G / 118G (66%)' 414 | disk_subtitle="mount" 415 | 416 | # Disk percent. 417 | # Show/Hide disk percent. 418 | # 419 | # Default: 'on' 420 | # Values: 'on', 'off' 421 | # Flag: --disk_percent 422 | # 423 | # Example: 424 | # on: 'Disk (/): 74G / 118G (66%)' 425 | # off: 'Disk (/): 74G / 118G' 426 | disk_percent="on" 427 | 428 | 429 | # Song 430 | 431 | 432 | # Manually specify a music player. 433 | # 434 | # Default: 'auto' 435 | # Values: 'auto', 'player-name' 436 | # Flag: --music_player 437 | # 438 | # Available values for 'player-name': 439 | # 440 | # amarok 441 | # audacious 442 | # banshee 443 | # bluemindo 444 | # clementine 445 | # cmus 446 | # deadbeef 447 | # deepin-music 448 | # dragon 449 | # elisa 450 | # exaile 451 | # gnome-music 452 | # gmusicbrowser 453 | # gogglesmm 454 | # guayadeque 455 | # io.elementary.music 456 | # iTunes 457 | # juk 458 | # lollypop 459 | # mocp 460 | # mopidy 461 | # mpd 462 | # muine 463 | # netease-cloud-music 464 | # olivia 465 | # playerctl 466 | # pogo 467 | # pragha 468 | # qmmp 469 | # quodlibet 470 | # rhythmbox 471 | # sayonara 472 | # smplayer 473 | # spotify 474 | # strawberry 475 | # tauonmb 476 | # tomahawk 477 | # vlc 478 | # xmms2d 479 | # xnoise 480 | # yarock 481 | music_player="auto" 482 | 483 | # Format to display song information. 484 | # 485 | # Default: '%artist% - %album% - %title%' 486 | # Values: '%artist%', '%album%', '%title%' 487 | # Flag: --song_format 488 | # 489 | # Example: 490 | # default: 'Song: Jet - Get Born - Sgt Major' 491 | song_format="%artist% - %album% - %title%" 492 | 493 | # Print the Artist, Album and Title on separate lines 494 | # 495 | # Default: 'off' 496 | # Values: 'on', 'off' 497 | # Flag: --song_shorthand 498 | # 499 | # Example: 500 | # on: 'Artist: The Fratellis' 501 | # 'Album: Costello Music' 502 | # 'Song: Chelsea Dagger' 503 | # 504 | # off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' 505 | song_shorthand="off" 506 | 507 | # 'mpc' arguments (specify a host, password etc). 508 | # 509 | # Default: '' 510 | # Example: mpc_args=(-h HOST -P PASSWORD) 511 | mpc_args=() 512 | 513 | 514 | # Text Colors 515 | 516 | 517 | # Text Colors 518 | # 519 | # Default: 'distro' 520 | # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' 521 | # Flag: --colors 522 | # 523 | # Each number represents a different part of the text in 524 | # this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' 525 | # 526 | # Example: 527 | # colors=(distro) - Text is colored based on Distro colors. 528 | # colors=(4 6 1 8 8 6) - Text is colored in the order above. 529 | colors=(distro) 530 | 531 | 532 | # Text Options 533 | 534 | 535 | # Toggle bold text 536 | # 537 | # Default: 'on' 538 | # Values: 'on', 'off' 539 | # Flag: --bold 540 | bold="on" 541 | 542 | # Enable/Disable Underline 543 | # 544 | # Default: 'on' 545 | # Values: 'on', 'off' 546 | # Flag: --underline 547 | underline_enabled="on" 548 | 549 | # Underline character 550 | # 551 | # Default: '-' 552 | # Values: 'string' 553 | # Flag: --underline_char 554 | underline_char="-" 555 | 556 | 557 | # Info Separator 558 | # Replace the default separator with the specified string. 559 | # 560 | # Default: ':' 561 | # Flag: --separator 562 | # 563 | # Example: 564 | # separator="->": 'Shell-> bash' 565 | # separator=" =": 'WM = dwm' 566 | separator=":" 567 | 568 | 569 | # Color Blocks 570 | 571 | 572 | # Color block range 573 | # The range of colors to print. 574 | # 575 | # Default: '0', '15' 576 | # Values: 'num' 577 | # Flag: --block_range 578 | # 579 | # Example: 580 | # 581 | # Display colors 0-7 in the blocks. (8 colors) 582 | # neofetch --block_range 0 7 583 | # 584 | # Display colors 0-15 in the blocks. (16 colors) 585 | # neofetch --block_range 0 15 586 | block_range=(0 15) 587 | 588 | # Toggle color blocks 589 | # 590 | # Default: 'on' 591 | # Values: 'on', 'off' 592 | # Flag: --color_blocks 593 | color_blocks="on" 594 | 595 | # Color block width in spaces 596 | # 597 | # Default: '3' 598 | # Values: 'num' 599 | # Flag: --block_width 600 | block_width=3 601 | 602 | # Color block height in lines 603 | # 604 | # Default: '1' 605 | # Values: 'num' 606 | # Flag: --block_height 607 | block_height=1 608 | 609 | # Color Alignment 610 | # 611 | # Default: 'auto' 612 | # Values: 'auto', 'num' 613 | # Flag: --col_offset 614 | # 615 | # Number specifies how far from the left side of the terminal (in spaces) to 616 | # begin printing the columns, in case you want to e.g. center them under your 617 | # text. 618 | # Example: 619 | # col_offset="auto" - Default behavior of neofetch 620 | # col_offset=7 - Leave 7 spaces then print the colors 621 | col_offset="auto" 622 | 623 | # Progress Bars 624 | 625 | 626 | # Bar characters 627 | # 628 | # Default: '-', '=' 629 | # Values: 'string', 'string' 630 | # Flag: --bar_char 631 | # 632 | # Example: 633 | # neofetch --bar_char 'elapsed' 'total' 634 | # neofetch --bar_char '-' '=' 635 | bar_char_elapsed="-" 636 | bar_char_total="=" 637 | 638 | # Toggle Bar border 639 | # 640 | # Default: 'on' 641 | # Values: 'on', 'off' 642 | # Flag: --bar_border 643 | bar_border="on" 644 | 645 | # Progress bar length in spaces 646 | # Number of chars long to make the progress bars. 647 | # 648 | # Default: '15' 649 | # Values: 'num' 650 | # Flag: --bar_length 651 | bar_length=15 652 | 653 | # Progress bar colors 654 | # When set to distro, uses your distro's logo colors. 655 | # 656 | # Default: 'distro', 'distro' 657 | # Values: 'distro', 'num' 658 | # Flag: --bar_colors 659 | # 660 | # Example: 661 | # neofetch --bar_colors 3 4 662 | # neofetch --bar_colors distro 5 663 | bar_color_elapsed="distro" 664 | bar_color_total="distro" 665 | 666 | 667 | # Info display 668 | # Display a bar with the info. 669 | # 670 | # Default: 'off' 671 | # Values: 'bar', 'infobar', 'barinfo', 'off' 672 | # Flags: --cpu_display 673 | # --memory_display 674 | # --battery_display 675 | # --disk_display 676 | # 677 | # Example: 678 | # bar: '[---=======]' 679 | # infobar: 'info [---=======]' 680 | # barinfo: '[---=======] info' 681 | # off: 'info' 682 | cpu_display="off" 683 | memory_display="off" 684 | battery_display="off" 685 | disk_display="off" 686 | 687 | 688 | # Backend Settings 689 | 690 | 691 | # Image backend. 692 | # 693 | # Default: 'ascii' 694 | # Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', 695 | # 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' 696 | # Flag: --backend 697 | image_backend="ascii" 698 | 699 | # Image Source 700 | # 701 | # Which image or ascii file to display. 702 | # 703 | # Default: 'auto' 704 | # Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' 705 | # 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' 706 | # Flag: --source 707 | # 708 | # NOTE: 'auto' will pick the best image source for whatever image backend is used. 709 | # In ascii mode, distro ascii art will be used and in an image mode, your 710 | # wallpaper will be used. 711 | image_source="auto" 712 | 713 | 714 | # Ascii Options 715 | 716 | 717 | # Ascii distro 718 | # Which distro's ascii art to display. 719 | # 720 | # Default: 'auto' 721 | # Values: 'auto', 'distro_name' 722 | # Flag: --ascii_distro 723 | # NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", 724 | # "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, 725 | # ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, 726 | # Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, 727 | # BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, 728 | # Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, 729 | # Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, 730 | # DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, 731 | # EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, 732 | # FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, 733 | # gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, 734 | # Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, 735 | # Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, 736 | # LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, 737 | # Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, 738 | # Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, 739 | # NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, 740 | # OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, 741 | # Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, 742 | # popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, 743 | # Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, 744 | # Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, 745 | # Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, 746 | # SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, 747 | # openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, 748 | # Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, 749 | # Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, 750 | # and IRIX have ascii logos 751 | # NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. 752 | # Use '{distro name}_old' to use the old logos. 753 | # NOTE: Ubuntu has flavor variants. 754 | # Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, 755 | # Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. 756 | # NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, 757 | # CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, 758 | # Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, 759 | # Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, 760 | # Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, 761 | # postmarketOS, and Void have a smaller logo variant. 762 | # Use '{distro name}_small' to use the small variants. 763 | ascii_distro="auto" 764 | 765 | # Ascii Colors 766 | # 767 | # Default: 'distro' 768 | # Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' 769 | # Flag: --ascii_colors 770 | # 771 | # Example: 772 | # ascii_colors=(distro) - Ascii is colored based on Distro colors. 773 | # ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. 774 | ascii_colors=(distro) 775 | 776 | # Bold ascii logo 777 | # Whether or not to bold the ascii logo. 778 | # 779 | # Default: 'on' 780 | # Values: 'on', 'off' 781 | # Flag: --ascii_bold 782 | ascii_bold="on" 783 | 784 | 785 | # Image Options 786 | 787 | 788 | # Image loop 789 | # Setting this to on will make neofetch redraw the image constantly until 790 | # Ctrl+C is pressed. This fixes display issues in some terminal emulators. 791 | # 792 | # Default: 'off' 793 | # Values: 'on', 'off' 794 | # Flag: --loop 795 | image_loop="off" 796 | 797 | # Thumbnail directory 798 | # 799 | # Default: '~/.cache/thumbnails/neofetch' 800 | # Values: 'dir' 801 | thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" 802 | 803 | # Crop mode 804 | # 805 | # Default: 'normal' 806 | # Values: 'normal', 'fit', 'fill' 807 | # Flag: --crop_mode 808 | # 809 | # See this wiki page to learn about the fit and fill options. 810 | # https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F 811 | crop_mode="normal" 812 | 813 | # Crop offset 814 | # Note: Only affects 'normal' crop mode. 815 | # 816 | # Default: 'center' 817 | # Values: 'northwest', 'north', 'northeast', 'west', 'center' 818 | # 'east', 'southwest', 'south', 'southeast' 819 | # Flag: --crop_offset 820 | crop_offset="center" 821 | 822 | # Image size 823 | # The image is half the terminal width by default. 824 | # 825 | # Default: 'auto' 826 | # Values: 'auto', '00px', '00%', 'none' 827 | # Flags: --image_size 828 | # --size 829 | image_size="auto" 830 | 831 | # Gap between image and text 832 | # 833 | # Default: '3' 834 | # Values: 'num', '-num' 835 | # Flag: --gap 836 | gap=3 837 | 838 | # Image offsets 839 | # Only works with the w3m backend. 840 | # 841 | # Default: '0' 842 | # Values: 'px' 843 | # Flags: --xoffset 844 | # --yoffset 845 | yoffset=0 846 | xoffset=0 847 | 848 | # Image background color 849 | # Only works with the w3m backend. 850 | # 851 | # Default: '' 852 | # Values: 'color', 'blue' 853 | # Flag: --bg_color 854 | background_color= 855 | 856 | 857 | # Misc Options 858 | 859 | # Stdout mode 860 | # Turn off all colors and disables image backend (ASCII/Image). 861 | # Useful for piping into another command. 862 | # Default: 'off' 863 | # Values: 'on', 'off' 864 | stdout="off" 865 | -------------------------------------------------------------------------------- /matt/.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- neovim editor configuration 2 | -- © Matt Gleich 2025 under MIT License 3 | 4 | require("opts") 5 | require("keymap") 6 | require("autocmd") 7 | require("pkg") 8 | -------------------------------------------------------------------------------- /matt/.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, 3 | "alpha-nvim": { "branch": "main", "commit": "de72250e054e5e691b9736ee30db72c65d560771" }, 4 | "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, 5 | "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, 6 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 7 | "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, 8 | "conform.nvim": { "branch": "master", "commit": "a6f5bdb78caa305496357d17e962bbc4c0b392e2" }, 9 | "emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" }, 10 | "fidget.nvim": { "branch": "main", "commit": "d9ba6b7bfe29b3119a610892af67602641da778e" }, 11 | "github-theme": { "branch": "main", "commit": "c106c9472154d6b2c74b74565616b877ae8ed31d" }, 12 | "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" }, 13 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 14 | "lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" }, 15 | "lualine.nvim": { "branch": "master", "commit": "f4f791f67e70d378a754d02da068231d2352e5bc" }, 16 | "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" }, 17 | "mason-tool-installer.nvim": { "branch": "main", "commit": "374c78d3ebb5c53f43ea6bd906b6587b5e899b9e" }, 18 | "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, 19 | "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, 20 | "nvim-cmp": { "branch": "main", "commit": "5a11682453ac6b13dbf32cd403da4ee9c07ef1c3" }, 21 | "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, 22 | "nvim-lspconfig": { "branch": "master", "commit": "9e932edb0af4e20880685ddb96a231669fbe8091" }, 23 | "nvim-tree.lua": { "branch": "master", "commit": "6709463b2d18e77f7a946027917aa00d4aaed6f4" }, 24 | "nvim-treesitter": { "branch": "master", "commit": "e6d02ec9efd396d294a7793f2066e2527b07b03a" }, 25 | "nvim-web-devicons": { "branch": "master", "commit": "1020869742ecb191f260818234517f4a1515cfe8" }, 26 | "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, 27 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "2a5ceff981501cff8f46871d5402cd3378a8ab6a" }, 28 | "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, 29 | "telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, 30 | "vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" }, 31 | "vim-rhubarb": { "branch": "master", "commit": "386daa2e9d98e23e27ad089afcbe5c5a903e488d" }, 32 | "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, 33 | "vim-wakatime": { "branch": "master", "commit": "e46d7c4f98ee0f40782008dd60cb2a79c377fb1d" } 34 | } 35 | -------------------------------------------------------------------------------- /matt/.config/nvim/lua/autocmd.lua: -------------------------------------------------------------------------------- 1 | vim.api.nvim_create_autocmd("FileType", { 2 | desc = "emmet as tab when writing html", 3 | pattern = { "html", "jsx", "tsx", "md" }, 4 | callback = function() 5 | vim.cmd([[ 6 | imap pumvisible() ? "\" : emmet#expandAbbrIntelligent("\") 7 | ]]) 8 | end, 9 | }) 10 | -------------------------------------------------------------------------------- /matt/.config/nvim/lua/keymap.lua: -------------------------------------------------------------------------------- 1 | -- clear highlights on search when pressing in normal mode 2 | vim.keymap.set("n", "", "nohlsearch", { desc = "clear highlights" }) 3 | 4 | -- quick quit using 5 | vim.keymap.set("n", "q", "q", { desc = "quit" }) 6 | 7 | -- copy all of the lines in the current file 8 | vim.keymap.set("n", "ca", "%y+", { desc = "Copy all lines to clipboard" }) 9 | 10 | -- move splits with ctrl+arrow_key 11 | vim.keymap.set("n", "", "h", { desc = "move to window left" }) 12 | vim.keymap.set("n", "", "j", { desc = "move to window down" }) 13 | vim.keymap.set("n", "", "k", { desc = "move to window up" }) 14 | vim.keymap.set("n", "", "l", { desc = "move to window right" }) 15 | 16 | -- create splits with ctrl+arrow_key and switch focus to the new split 17 | vim.keymap.set("n", "w", "aboveleft split | wincmd w", { desc = "open split above and move" }) 18 | vim.keymap.set("n", "s", "belowright split | wincmd w", { desc = "open split below and move" }) 19 | vim.keymap.set("n", "d", "leftabove vsplit | wincmd w", { desc = "open vertical split left and move" }) 20 | vim.keymap.set( 21 | "n", 22 | "a", 23 | "rightbelow vsplit | wincmd w", 24 | { desc = "open vertical split right and move" } 25 | ) 26 | 27 | -- create a new tab 28 | vim.keymap.set("n", "t", "tabnew", { desc = "create a new tab" }) 29 | 30 | -- git 31 | vim.keymap.set("n", "gv", "GBrowse", { desc = "open current git repo in browser" }) 32 | vim.keymap.set("n", "ga", "Git add .", { desc = "add all files in the current directory" }) 33 | -------------------------------------------------------------------------------- /matt/.config/nvim/lua/opts.lua: -------------------------------------------------------------------------------- 1 | -- show line numbers 2 | vim.wo.number = true 3 | 4 | -- leader key configuration 5 | vim.g.mapleader = "\\" 6 | vim.g.maplocalleader = "\\" 7 | 8 | -- nerd font configuration 9 | vim.g.have_nerd_font = true 10 | 11 | -- do not show mode as it is already in status line 12 | vim.opt.showmode = false 13 | 14 | -- decrease update time 15 | vim.opt.updatetime = 50 16 | 17 | -- decrease mapped sequence wait time 18 | vim.opt.timeoutlen = 300 19 | 20 | -- save undo history 21 | vim.opt.undofile = true 22 | 23 | -- keep signcolumn on by default 24 | vim.opt.signcolumn = "yes" 25 | 26 | -- display certain whitespace characters 27 | vim.opt.list = true 28 | vim.opt.listchars = { tab = " ", trail = "·", nbsp = "␣" } 29 | 30 | -- preview substitutions 31 | vim.opt.inccommand = "split" 32 | 33 | -- min number of screen lines to keep above and below cursor 34 | vim.opt.scrolloff = 900 35 | 36 | -- a tab character appears as 4 spaces wide 37 | vim.opt.tabstop = 4 38 | 39 | -- indentation uses 4 spaces per level 40 | vim.opt.shiftwidth = 4 41 | 42 | -- editing operations treat a tab as 4 spaces 43 | vim.opt.softtabstop = 4 44 | 45 | -- disable mouse support 46 | vim.opt.mouse = "" 47 | 48 | -- disable swap and backup files 49 | vim.opt.swapfile = false 50 | vim.opt.backup = false 51 | 52 | -- enable undo directory 53 | vim.undodir = os.getenv("HOME") .. "/.vim/undoir" 54 | vim.opt.undofile = true 55 | 56 | -- enable extra color support 57 | vim.opt.termguicolors = true 58 | 59 | -- spell 60 | vim.opt.spelllang = "en_us" 61 | vim.opt.spell = true 62 | -------------------------------------------------------------------------------- /matt/.config/nvim/lua/pkg.lua: -------------------------------------------------------------------------------- 1 | -- bootstrap lazypkg 2 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 3 | if not (vim.uv or vim.loop).fs_stat(lazypath) then 4 | local lazyrepo = "https://github.com/folke/lazy.nvim.git" 5 | local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) 6 | if vim.v.shell_error ~= 0 then 7 | error("Error cloning lazy.nvim:\n" .. out) 8 | end 9 | end ---@diagnostic disable-next-line: undefined-field 10 | vim.opt.rtp:prepend(lazypath) 11 | 12 | require("lazy").setup({ 13 | -- detect tabstop and shiftwidth automatically 14 | "tpope/vim-sleuth", 15 | 16 | -- emmet html snippets 17 | "mattn/emmet-vim", 18 | 19 | -- git support 20 | "tpope/vim-fugitive", 21 | 22 | -- github support 23 | "tpope/vim-rhubarb", 24 | 25 | -- code time tracking 26 | { "wakatime/vim-wakatime", event = "BufReadPre" }, 27 | 28 | -- color hex codes and color color formats 29 | { 30 | "norcalli/nvim-colorizer.lua", 31 | lazy = true, 32 | config = function() 33 | require("colorizer").setup() 34 | end, 35 | ft = { "css", "conf", "javascriptreact", "html", "go", "lua" }, 36 | }, 37 | 38 | -- autopairs 39 | { 40 | "windwp/nvim-autopairs", 41 | event = "InsertEnter", 42 | config = true, 43 | }, 44 | 45 | -- add git related signs to the gutter 46 | { 47 | "lewis6991/gitsigns.nvim", 48 | opts = { 49 | signs = { 50 | add = { text = "+" }, 51 | change = { text = "~" }, 52 | delete = { text = "_" }, 53 | topdelete = { text = "‾" }, 54 | changedelete = { text = "~" }, 55 | }, 56 | }, 57 | }, 58 | 59 | -- theme 60 | { 61 | "projekt0n/github-nvim-theme", 62 | name = "github-theme", 63 | lazy = false, -- make sure we load this during startup if it is your main colorscheme 64 | priority = 1000, -- make sure to load this before all the other start plugins 65 | config = function() 66 | require("github-theme").setup({ 67 | options = { 68 | transparent = true, 69 | darken = { 70 | floats = false, 71 | sidebars = { 72 | enable = false, 73 | list = {}, 74 | }, 75 | }, 76 | }, 77 | }) 78 | vim.cmd("colorscheme github_dark") 79 | end, 80 | }, 81 | 82 | -- icons 83 | { 84 | "nvim-tree/nvim-web-devicons", 85 | config = function() 86 | require("nvim-web-devicons").setup({ 87 | override = { 88 | go = { 89 | icon = "", 90 | color = "#00ADD8", 91 | name = "Go", 92 | }, 93 | ["go.mod"] = { 94 | icon = "", 95 | color = "#00ADD8", 96 | name = "GoMod", 97 | }, 98 | ["go.sum"] = { 99 | icon = "", 100 | color = "#00ADD8", 101 | name = "GoSum", 102 | }, 103 | }, 104 | }) 105 | end, 106 | }, 107 | 108 | -- status line 109 | { 110 | "nvim-lualine/lualine.nvim", 111 | config = function() 112 | require("lualine").setup({ 113 | options = { 114 | icons_enabled = vim.g.have_nerd_font, 115 | theme = "auto", 116 | component_separators = { left = "|", right = "|" }, 117 | section_separators = { left = "", right = "" }, 118 | }, 119 | sections = { 120 | lualine_a = { 121 | { 122 | "mode", 123 | color = { gui = "bold" }, 124 | fmt = function(str) 125 | return str:sub(1, 1) 126 | end, 127 | }, 128 | }, 129 | lualine_b = { "branch", "diff" }, 130 | lualine_c = { "filename" }, 131 | lualine_x = { "filetype" }, 132 | lualine_y = {}, 133 | lualine_z = {}, 134 | }, 135 | }) 136 | end, 137 | }, 138 | 139 | -- statup screen 140 | { 141 | "goolord/alpha-nvim", 142 | config = function() 143 | local dashboard = require("alpha.themes.dashboard") 144 | dashboard.section.header.val = { "mattglei.ch" } 145 | dashboard.section.header.opts.hl = "AlphaHeader" 146 | dashboard.section.footer.val = {} 147 | dashboard.section.buttons.val = {} 148 | 149 | local header_lines = #dashboard.section.header.val 150 | local total_lines = vim.o.lines 151 | local top_padding = math.floor((total_lines - header_lines) / 2) 152 | 153 | dashboard.config.layout = { 154 | { type = "padding", val = top_padding }, 155 | dashboard.section.header, 156 | { type = "padding", val = 1 }, 157 | dashboard.section.buttons, 158 | dashboard.section.footer, 159 | } 160 | 161 | vim.cmd([[highlight AlphaHeader guifg=#ffffff]]) 162 | require("alpha").setup(dashboard.config) 163 | end, 164 | }, 165 | 166 | -- fuzzy finder 167 | { 168 | "nvim-telescope/telescope.nvim", 169 | event = "VimEnter", 170 | branch = "0.1.x", 171 | dependencies = { 172 | "nvim-lua/plenary.nvim", 173 | "nvim-telescope/telescope-ui-select.nvim", 174 | { 175 | "nvim-telescope/telescope-fzf-native.nvim", 176 | build = "make", 177 | cond = function() 178 | return vim.fn.executable("make") == 1 179 | end, 180 | }, 181 | }, 182 | config = function() 183 | require("telescope").setup({ 184 | extensions = { 185 | ["ui-select"] = { 186 | require("telescope.themes").get_dropdown(), 187 | }, 188 | }, 189 | }) 190 | 191 | -- enable telescope extensions 192 | pcall(require("telescope").load_extension, "fzf") 193 | pcall(require("telescope").load_extension, "ui-select") 194 | 195 | -- key mappings 196 | local builtin = require("telescope.builtin") 197 | vim.keymap.set("n", "ff", function() 198 | builtin.find_files({ hidden = true, file_ignore_patterns = { "%.git/" } }) 199 | end, { desc = "[F]ind [F]iles (including hidden)" }) 200 | vim.keymap.set("n", "lg", builtin.live_grep, { desc = "[L]ive [G]rep" }) 201 | 202 | -- fuzzy finder for neovim configuration files 203 | vim.keymap.set("n", "sco", function() 204 | builtin.find_files({ cwd = vim.fn.stdpath("config") }) 205 | end, { desc = "[S]earch [C]onfigation files" }) 206 | end, 207 | }, 208 | 209 | -- configures lua lsp, run time and plugins used for completion, 210 | -- annotations, and signatures of neovim apis 211 | { 212 | "folke/lazydev.nvim", 213 | ft = "lua", 214 | opts = { 215 | library = { 216 | { path = "${3rd}/luv/library", words = { "vim%.uv" } }, 217 | }, 218 | }, 219 | }, 220 | 221 | -- floating texting window 222 | { 223 | "j-hui/fidget.nvim", 224 | opts = { 225 | notification = { 226 | window = { 227 | normal_hl = "Comment", 228 | winblend = 0, 229 | border = "solid", 230 | }, 231 | }, 232 | }, 233 | }, 234 | 235 | -- file explorer 236 | { 237 | "nvim-tree/nvim-tree.lua", 238 | lazy = false, 239 | config = function() 240 | local height_ratio = 0.8 241 | local width_ratio = 0.5 242 | 243 | vim.api.nvim_create_autocmd("FileType", { 244 | pattern = "NvimTree", 245 | callback = function() 246 | vim.keymap.set( 247 | "n", 248 | "", 249 | "NvimTreeClose", 250 | { buffer = true, noremap = true, silent = true } 251 | ) 252 | end, 253 | }) 254 | 255 | require("nvim-tree").setup({ 256 | disable_netrw = true, 257 | hijack_netrw = true, 258 | respect_buf_cwd = true, 259 | hijack_cursor = true, 260 | sync_root_with_cwd = true, 261 | update_focused_file = { enable = true, update_root = true }, 262 | actions = { 263 | open_file = { 264 | window_picker = { 265 | enable = false, 266 | }, 267 | }, 268 | }, 269 | filters = { 270 | custom = { "^\\.git$" }, 271 | }, 272 | diagnostics = { 273 | enable = true, 274 | show_on_dirs = true, 275 | icons = { 276 | error = "󰅚 ", 277 | warning = "󰀪 ", 278 | info = "󰋽 ", 279 | hint = "󰌶 ", 280 | }, 281 | }, 282 | view = { 283 | signcolumn = "no", 284 | float = { 285 | enable = true, 286 | open_win_config = function() 287 | local screen_w = vim.opt.columns:get() 288 | local screen_h = vim.opt.lines:get() - vim.opt.cmdheight:get() 289 | local window_w = screen_w * width_ratio 290 | local window_h = screen_h * height_ratio 291 | local window_w_int = math.floor(window_w) 292 | local window_h_int = math.floor(window_h) 293 | local center_x = (screen_w - window_w) / 2 294 | local center_y = ((vim.opt.lines:get() - window_h) / 2) - vim.opt.cmdheight:get() 295 | return { 296 | border = "rounded", 297 | relative = "editor", 298 | row = center_y, 299 | col = center_x, 300 | width = window_w_int, 301 | height = window_h_int, 302 | } 303 | end, 304 | }, 305 | width = function() 306 | return math.floor(vim.opt.columns:get() * width_ratio) 307 | end, 308 | }, 309 | renderer = { 310 | highlight_git = "icon", 311 | icons = { 312 | glyphs = { 313 | git = { 314 | unstaged = "+", 315 | staged = "+", 316 | unmerged = "~", 317 | renamed = "~", 318 | untracked = "+", 319 | deleted = "_", 320 | ignored = "‾", 321 | }, 322 | }, 323 | }, 324 | }, 325 | }) 326 | 327 | vim.keymap.set("n", "x", ":NvimTreeToggle", { desc = "toggle neovim tree" }) 328 | end, 329 | }, 330 | 331 | -- main lsp configuration 332 | { 333 | "neovim/nvim-lspconfig", 334 | dependencies = { 335 | "williamboman/mason-lspconfig.nvim", 336 | "WhoIsSethDaniel/mason-tool-installer.nvim", 337 | "hrsh7th/cmp-nvim-lsp", 338 | { "williamboman/mason.nvim", opts = {} }, 339 | }, 340 | config = function() 341 | vim.api.nvim_create_autocmd("LspAttach", { 342 | group = vim.api.nvim_create_augroup("lsp-attach", { clear = true }), 343 | callback = function(event) 344 | local map = function(keys, func, desc, mode) 345 | mode = mode or "n" 346 | vim.keymap.set(mode, keys, func, { buffer = event.buf, desc = "LSP: " .. desc }) 347 | end 348 | 349 | map("gd", require("telescope.builtin").lsp_definitions, "[G]oto [D]efinition") 350 | map("gr", require("telescope.builtin").lsp_references, "[G]oto [R]eferences") 351 | map("r", vim.lsp.buf.rename, "[R]ename") 352 | map("gv", vim.lsp.buf.hover, "[G]et [V]er documentation") 353 | 354 | -- This function resolves a difference between neovim nightly (version 0.11) and stable (version 0.10) 355 | ---@param client vim.lsp.Client 356 | ---@param method vim.lsp.protocol.Method 357 | ---@param bufnr? integer some lsp support methods only in specific files 358 | ---@return boolean 359 | local function client_supports_method(client, method, bufnr) 360 | if vim.fn.has("nvim-0.11") == 1 then 361 | return client:supports_method(method, bufnr) 362 | else 363 | return client.supports_method(method, { bufnr = bufnr }) 364 | end 365 | end 366 | 367 | -- The following two autocommands are used to highlight references of the 368 | -- word under your cursor when your cursor rests there for a little while. 369 | -- See `:help CursorHold` for information about when this is executed 370 | -- 371 | -- When you move your cursor, the highlights will be cleared (the second autocommand). 372 | local client = vim.lsp.get_client_by_id(event.data.client_id) 373 | if 374 | client 375 | and client_supports_method( 376 | client, 377 | vim.lsp.protocol.Methods.textDocument_documentHighlight, 378 | event.buf 379 | ) 380 | then 381 | local highlight_augroup = vim.api.nvim_create_augroup("lsp-highlight", { clear = false }) 382 | vim.api.nvim_create_autocmd({ "CursorHold", "CursorHoldI" }, { 383 | buffer = event.buf, 384 | group = highlight_augroup, 385 | callback = vim.lsp.buf.document_highlight, 386 | }) 387 | 388 | vim.api.nvim_create_autocmd({ "CursorMoved", "CursorMovedI" }, { 389 | buffer = event.buf, 390 | group = highlight_augroup, 391 | callback = vim.lsp.buf.clear_references, 392 | }) 393 | 394 | vim.api.nvim_create_autocmd("LspDetach", { 395 | group = vim.api.nvim_create_augroup("lsp-detach", { clear = true }), 396 | callback = function(event2) 397 | vim.lsp.buf.clear_references() 398 | vim.api.nvim_clear_autocmds({ group = "lsp-highlight", buffer = event2.buf }) 399 | end, 400 | }) 401 | end 402 | end, 403 | }) 404 | 405 | -- diagnostic Config 406 | -- See :help vim.diagnostic.Opts 407 | vim.diagnostic.config({ 408 | severity_sort = true, 409 | float = { border = "rounded", source = "if_many" }, 410 | underline = { severity = vim.diagnostic.severity.ERROR }, 411 | signs = vim.g.have_nerd_font and { 412 | text = { 413 | [vim.diagnostic.severity.ERROR] = "󰅚 ", 414 | [vim.diagnostic.severity.WARN] = "󰀪 ", 415 | [vim.diagnostic.severity.INFO] = "󰋽 ", 416 | [vim.diagnostic.severity.HINT] = "󰌶 ", 417 | }, 418 | } or {}, 419 | virtual_text = { 420 | source = "if_many", 421 | spacing = 2, 422 | format = function(diagnostic) 423 | local diagnostic_message = { 424 | [vim.diagnostic.severity.ERROR] = diagnostic.message, 425 | [vim.diagnostic.severity.WARN] = diagnostic.message, 426 | [vim.diagnostic.severity.INFO] = diagnostic.message, 427 | [vim.diagnostic.severity.HINT] = diagnostic.message, 428 | } 429 | return diagnostic_message[diagnostic.severity] 430 | end, 431 | }, 432 | }) 433 | 434 | -- LSP servers and clients are able to communicate to each other what features they support. 435 | -- By default, Neovim doesn't support everything that is in the LSP specification. 436 | -- When you add nvim-cmp, luasnip, etc. Neovim now has *more* capabilities. 437 | -- So, we create new capabilities with nvim cmp, and then broadcast that to the servers. 438 | local capabilities = vim.lsp.protocol.make_client_capabilities() 439 | capabilities = vim.tbl_deep_extend("force", capabilities, require("cmp_nvim_lsp").default_capabilities()) 440 | 441 | -- enable the following language servers 442 | local servers = { 443 | gopls = {}, 444 | pyright = {}, 445 | rust_analyzer = {}, 446 | terraformls = {}, 447 | lua_ls = { 448 | settings = { 449 | Lua = { 450 | completion = { 451 | callSnippet = "Replace", 452 | }, 453 | }, 454 | }, 455 | }, 456 | } 457 | 458 | local ensure_installed = vim.tbl_keys(servers or {}) 459 | vim.list_extend(ensure_installed, { 460 | "stylua", -- Used to format Lua code 461 | "golines", 462 | "goimports", 463 | }) 464 | 465 | require("mason-tool-installer").setup({ ensure_installed = ensure_installed }) 466 | require("mason-lspconfig").setup({ 467 | handlers = { 468 | function(server_name) 469 | local server = servers[server_name] or {} 470 | server.capabilities = vim.tbl_deep_extend("force", {}, capabilities, server.capabilities or {}) 471 | require("lspconfig")[server_name].setup(server) 472 | end, 473 | }, 474 | }) 475 | end, 476 | }, 477 | 478 | -- autoformat 479 | { 480 | "stevearc/conform.nvim", 481 | event = { "BufWritePre" }, 482 | cmd = { "ConformInfo" }, 483 | keys = { 484 | { 485 | "f", 486 | function() 487 | require("conform").format({ async = true, lsp_format = "fallback" }) 488 | end, 489 | mode = "", 490 | desc = "[F]ormat buffer", 491 | }, 492 | }, 493 | opts = { 494 | notify_on_error = false, 495 | format_on_save = function(bufnr) 496 | -- Disable "format_on_save lsp_fallback" for languages that don't 497 | -- have a well standardized coding style. You can add additional 498 | -- languages here or re-enable it for the disabled ones. 499 | local disable_filetypes = { c = true, cpp = true } 500 | local lsp_format_opt 501 | if disable_filetypes[vim.bo[bufnr].filetype] then 502 | lsp_format_opt = "never" 503 | else 504 | lsp_format_opt = "fallback" 505 | end 506 | return { 507 | timeout_ms = 500, 508 | lsp_format = lsp_format_opt, 509 | } 510 | end, 511 | formatters_by_ft = { 512 | lua = { "stylua" }, 513 | go = { "goimports", "golines" }, 514 | }, 515 | }, 516 | }, 517 | 518 | -- autocompletion 519 | { 520 | "hrsh7th/nvim-cmp", 521 | event = "InsertEnter", 522 | dependencies = { 523 | { 524 | "L3MON4D3/LuaSnip", 525 | build = (function() 526 | if vim.fn.has("win32") == 1 or vim.fn.executable("make") == 0 then 527 | return 528 | end 529 | return "make install_jsregexp" 530 | end)(), 531 | dependencies = {}, 532 | }, 533 | "saadparwaiz1/cmp_luasnip", 534 | "hrsh7th/cmp-nvim-lsp", 535 | "hrsh7th/cmp-path", 536 | "hrsh7th/cmp-path", 537 | "hrsh7th/cmp-nvim-lsp-signature-help", 538 | }, 539 | config = function() 540 | -- See `:help cmp` 541 | local cmp = require("cmp") 542 | local luasnip = require("luasnip") 543 | luasnip.config.setup({}) 544 | 545 | require("luasnip.loaders.from_snipmate").lazy_load() 546 | 547 | vim.cmd([[highlight CmpBorder guifg=#808080 guibg=none]]) 548 | 549 | cmp.setup({ 550 | preselect = cmp.PreselectMode.None, 551 | snippet = { 552 | expand = function(args) 553 | luasnip.lsp_expand(args.body) 554 | end, 555 | }, 556 | completion = { completeopt = "menu,menuone,noinsert" }, 557 | 558 | mapping = cmp.mapping.preset.insert({ 559 | -- Scroll the documentation window [b]ack / [f]orward 560 | [""] = cmp.mapping.scroll_docs(-4), 561 | [""] = cmp.mapping.scroll_docs(4), 562 | 563 | -- Accept ([y]es) the completion. 564 | -- This will auto-import if your LSP supports it. 565 | -- This will expand snippets if the LSP sent a snippet. 566 | 567 | -- If you prefer more traditional completion keymaps, 568 | -- you can uncomment the following lines 569 | [""] = cmp.mapping.confirm({ select = true }), 570 | [""] = cmp.mapping.confirm({ select = true }), 571 | [""] = cmp.mapping.select_prev_item(), 572 | [""] = cmp.mapping.select_next_item(), 573 | 574 | -- Manually trigger a completion from nvim-cmp. 575 | -- Generally you don't need this, because nvim-cmp will display 576 | -- completions whenever it has completion options available. 577 | [""] = cmp.mapping.complete({}), 578 | }), 579 | window = { 580 | completion = { 581 | border = "rounded", 582 | -- Link the float border to your custom highlight group 583 | winhighlight = "Normal:CmpPmenu,FloatBorder:CmpBorder", 584 | }, 585 | documentation = { 586 | border = "rounded", 587 | winhighlight = "Normal:CmpDoc,FloatBorder:CmpBorder", 588 | }, 589 | }, 590 | sources = { 591 | { 592 | name = "lazydev", 593 | group_index = 0, 594 | }, 595 | { name = "nvim_lsp" }, 596 | { name = "luasnip" }, 597 | { name = "path" }, 598 | { name = "nvim_lsp_signature_help" }, 599 | }, 600 | }) 601 | end, 602 | }, 603 | 604 | -- highlight, edit, and navigate code 605 | { -- Highlight, edit, and navigate code 606 | "nvim-treesitter/nvim-treesitter", 607 | build = ":TSUpdate", 608 | main = "nvim-treesitter.configs", -- Sets main module to use for opts 609 | -- [[ Configure Treesitter ]] See `:help nvim-treesitter` 610 | opts = { 611 | ensure_installed = { 612 | "bash", 613 | "c", 614 | "diff", 615 | "html", 616 | "lua", 617 | "luadoc", 618 | "markdown", 619 | "markdown_inline", 620 | "query", 621 | "vim", 622 | "vimdoc", 623 | "go", 624 | }, 625 | auto_install = true, 626 | highlight = { 627 | enable = true, 628 | additional_vim_regex_highlighting = { "ruby" }, 629 | }, 630 | indent = { enable = true, disable = { "ruby" } }, 631 | }, 632 | }, 633 | }) 634 | -------------------------------------------------------------------------------- /matt/.config/nvim/snippets/go.snippets: -------------------------------------------------------------------------------- 1 | snippet ife 2 | if err != nil { 3 | ${0} 4 | } 5 | 6 | snippet re 7 | return ${0} fmt.Errorf("%w: ${1}", err) 8 | 9 | snippet fa 10 | timber.Fatal(err, "failed to ${0}") 11 | 12 | snippet main 13 | package main 14 | 15 | func main() { 16 | ${0} 17 | } 18 | -------------------------------------------------------------------------------- /matt/.config/nvim/spell/en.utf-8.add: -------------------------------------------------------------------------------- 1 | gleich 2 | dir 3 | txt 4 | mattglei 5 | www 6 | config 7 | omf 8 | neofetch 9 | zathura 10 | raycast 11 | nvim 12 | gh 13 | gitconfig 14 | hushlogin 15 | json 16 | conf 17 | toml 18 | rustup 19 | gnupg 20 | gpg 21 | homebrew 22 | Brewfile 23 | stdout 24 | README 25 | md 26 | /scripts/dots](https://gi 27 | github 28 | https 29 | lazygit 30 | Gleich's 31 | env 32 | LCP 33 | rsa 34 | goreleaser 35 | dockerfile 36 | src 37 | rit 38 | iste 39 | Stderr 40 | os 41 | PNG 42 | blurhash 43 | img 44 | const 45 | porsche 46 | nyc 47 | VERCEL 48 | λ 49 | colorscheme 50 | statup 51 | neovim 52 | lua 53 | lsp 54 | apis 55 | autocommands 56 | cmp 57 | luasnip 58 | keymaps 59 | treesitter 60 | autopairs 61 | unmarshal 62 | EOF 63 | tcp 64 | http 65 | caprover 66 | applemusic 67 | strava 68 | lcp 69 | dev 70 | Coldplay 71 | MaxWidth 72 | vscode 73 | rsync 74 | Hostname 75 | glados 76 | edu 77 | websocket 78 | ws 79 | webterm 80 | localhost 81 | minio 82 | -------------------------------------------------------------------------------- /matt/.config/nvim/spell/en.utf-8.add.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gleich/dots/53709c18b569408dc345980b9e96e8331b04c5e1/matt/.config/nvim/spell/en.utf-8.add.spl -------------------------------------------------------------------------------- /matt/.config/omf/bundle: -------------------------------------------------------------------------------- 1 | package vcs 2 | theme chain 3 | theme default 4 | -------------------------------------------------------------------------------- /matt/.config/omf/channel: -------------------------------------------------------------------------------- 1 | stable 2 | -------------------------------------------------------------------------------- /matt/.config/omf/theme: -------------------------------------------------------------------------------- 1 | chain 2 | -------------------------------------------------------------------------------- /matt/.config/raycast/script-commands/apple-music-next.applescript: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Open Desktop 6 | # @raycast.mode silent 7 | # @raycast.packageName Navigation 8 | 9 | # Optional parameters: 10 | # @raycast.icon images/folder-desktop.png 11 | 12 | # Documentation: 13 | # @raycast.description Opens the Desktop folder in the Finder. 14 | 15 | cd ~/Desktop 16 | open . 17 | -------------------------------------------------------------------------------- /matt/.config/raycast/script-commands/apple-music-pause.applescript: -------------------------------------------------------------------------------- 1 | #!/usr/bin/osascript 2 | 3 | # @raycast.title Pause 4 | # @raycast.author Caleb Stauffer 5 | # @raycast.authorURL https://github.com/crstauf 6 | # @raycast.description Pause Music. 7 | 8 | # @raycast.icon images/apple-music-logo.png 9 | # @raycast.mode silent 10 | # @raycast.packageName Music 11 | # @raycast.schemaVersion 1 12 | 13 | tell application "Music" 14 | if player state is playing then 15 | pause 16 | do shell script "echo Paused music" 17 | end if 18 | end tell 19 | -------------------------------------------------------------------------------- /matt/.config/raycast/script-commands/apple-music-play.applescript: -------------------------------------------------------------------------------- 1 | #!/usr/bin/osascript 2 | 3 | # @raycast.title Play 4 | # @raycast.author Caleb Stauffer 5 | # @raycast.authorURL https://github.com/crstauf 6 | # @raycast.description Play Music. 7 | 8 | # @raycast.icon images/apple-music-logo.png 9 | # @raycast.mode silent 10 | # @raycast.packageName Music 11 | # @raycast.schemaVersion 1 12 | 13 | tell application "Music" 14 | if player state is paused then 15 | play 16 | do shell script "echo Playing music" 17 | end if 18 | end tell 19 | -------------------------------------------------------------------------------- /matt/.config/raycast/script-commands/open-desktop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Open Desktop 6 | # @raycast.mode silent 7 | # @raycast.packageName Navigation 8 | 9 | # Optional parameters: 10 | # @raycast.icon images/folder-desktop.png 11 | 12 | # Documentation: 13 | # @raycast.description Opens the Desktop folder in the Finder. 14 | 15 | cd ~/Desktop 16 | open . 17 | -------------------------------------------------------------------------------- /matt/.config/raycast/script-commands/open-downloads.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Required parameters: 4 | # @raycast.schemaVersion 1 5 | # @raycast.title Open Downloads 6 | # @raycast.mode silent 7 | # @raycast.packageName Navigation 8 | 9 | # Optional parameters: 10 | # @raycast.icon images/folder-downloads.png 11 | 12 | # Documentation: 13 | # @raycast.description Opens the Downloads folder in the Finder. 14 | 15 | open ~/Downloads 16 | -------------------------------------------------------------------------------- /matt/.config/resin/foo.toml: -------------------------------------------------------------------------------- 1 | scopes = ["structure", "format", "minor"] 2 | sign = true 3 | -------------------------------------------------------------------------------- /matt/.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | map recolor 2 | -------------------------------------------------------------------------------- /matt/.docker/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "auths": {}, 3 | "credsStore": "desktop", 4 | "currentContext": "desktop-linux" 5 | } -------------------------------------------------------------------------------- /matt/.gitconfig: -------------------------------------------------------------------------------- 1 | [credential "https://github.com"] 2 | helper = 3 | helper = !/opt/homebrew/bin/gh auth git-credential 4 | [credential "https://gist.github.com"] 5 | helper = 6 | helper = !/opt/homebrew/bin/gh auth git-credential 7 | [user] 8 | name = Matt Gleich 9 | email = git@mattglei.ch 10 | signingkey = 0C4065CC7F0175D7 11 | [commit] 12 | gpgsign = true 13 | [tag] 14 | forceSignAnnotated = true 15 | [init] 16 | defaultBranch = main 17 | [core] 18 | editor = nvim 19 | [gpg] 20 | program = gpg 21 | [push] 22 | autoSetupRemote = true 23 | -------------------------------------------------------------------------------- /matt/.gnupg/gpg-agent.conf: -------------------------------------------------------------------------------- 1 | default-cache-ttl 600 2 | max-cache-ttl 7200 3 | enable-ssh-support 4 | pinentry-program /opt/homebrew/bin/pinentry-mac 5 | -------------------------------------------------------------------------------- /matt/.hushlogin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gleich/dots/53709c18b569408dc345980b9e96e8331b04c5e1/matt/.hushlogin -------------------------------------------------------------------------------- /matt/.rustup/settings.toml: -------------------------------------------------------------------------------- 1 | version = "12" 2 | default_toolchain = "stable-aarch64-apple-darwin" 3 | profile = "default" 4 | 5 | [overrides] 6 | -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/keybindings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "shift+cmd+s", 4 | "command": "git.stageAll" 5 | }, 6 | { 7 | "key": "shift+alt+p", 8 | "command": "git.push" 9 | }, 10 | { 11 | "key": "ctrl+shift+`", 12 | "command": "-workbench.action.terminal.new" 13 | }, 14 | { 15 | "key": "cmd+r", 16 | "command": "workbench.action.openRecent" 17 | }, 18 | { 19 | "key": "ctrl+r", 20 | "command": "-workbench.action.openRecent" 21 | }, 22 | { 23 | "key": "shift+cmd+c", 24 | "command": "grammarly.check" 25 | }, 26 | { 27 | "key": "cmd+e", 28 | "command": "extension.conventionalCommits" 29 | }, 30 | { 31 | "key": "shift+cmd+b", 32 | "command": "markdown.extension.editing.toggleBold", 33 | "when": "editorTextFocus && !editorReadonly && editorLangId == 'markdown'" 34 | }, 35 | { 36 | "key": "cmd+b", 37 | "command": "-markdown.extension.editing.toggleBold", 38 | "when": "editorTextFocus && !editorReadonly && editorLangId == 'markdown'" 39 | }, 40 | { 41 | "key": "shift+cmd+n", 42 | "command": "explorer.newFile" 43 | }, 44 | { 45 | "key": "shift+alt+n", 46 | "command": "explorer.newFolder" 47 | }, 48 | { 49 | "key": "shift+cmd+d", 50 | "command": "workbench.action.debug.start", 51 | "when": "debuggersAvailable && debugState != 'initializing'" 52 | }, 53 | { 54 | "key": "f5", 55 | "command": "-workbench.action.debug.start", 56 | "when": "debuggersAvailable && debugState != 'initializing'" 57 | }, 58 | { 59 | "key": "ctrl+v", 60 | "command": "git.viewHistory" 61 | }, 62 | { 63 | "key": "ctrl+`", 64 | "command": "-workbench.action.terminal.toggleTerminal", 65 | "when": "terminal.active" 66 | }, 67 | { 68 | "key": "shift+tab", 69 | "command": "-outdent", 70 | "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus" 71 | }, 72 | { 73 | "key": "shift+tab", 74 | "command": "-markdown.extension.onShiftTabKey", 75 | "when": "editorTextFocus && !editorReadonly && !editorTabMovesFocus && !hasOtherSuggestions && !hasSnippetCompletions && !inSnippetMode && !suggestWidgetVisible && editorLangId == 'markdown'" 76 | }, 77 | { 78 | "key": "shift+tab", 79 | "command": "-jumpToPrevSnippetPlaceholder", 80 | "when": "editorTextFocus && hasPrevTabstop && inSnippetMode" 81 | }, 82 | { 83 | "key": "shift+tab", 84 | "command": "-insertPrevSuggestion", 85 | "when": "hasOtherSuggestions && textInputFocus && textInputFocus && !inSnippetMode && !suggestWidgetVisible && config.editor.tabCompletion == 'on'" 86 | }, 87 | { 88 | "key": "shift+tab", 89 | "command": "-acceptAlternativeSelectedSuggestion", 90 | "when": "suggestWidgetVisible && textInputFocus && textInputFocus" 91 | }, 92 | { 93 | "key": "shift+cmd+w", 94 | "command": "github-actions.workflows.focus" 95 | }, 96 | { 97 | "key": "shift+cmd+c", 98 | "command": "workbench.files.action.collapseExplorerFolders" 99 | }, 100 | { 101 | "key": "cmd+enter", 102 | "command": "explorer.openToSide", 103 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" 104 | }, 105 | { 106 | "key": "ctrl+enter", 107 | "command": "-explorer.openToSide", 108 | "when": "explorerViewletFocus && explorerViewletVisible && !inputFocus" 109 | }, 110 | { 111 | "key": "cmd+r", 112 | "command": "git.refresh" 113 | }, 114 | { 115 | "key": "ctrl+left", 116 | "command": "workbench.action.navigateLeft" 117 | }, 118 | { 119 | "key": "ctrl+right", 120 | "command": "workbench.action.navigateRight" 121 | }, 122 | { 123 | "key": "ctrl+up", 124 | "command": "workbench.action.navigateUp" 125 | }, 126 | { 127 | "key": "ctrl+down", 128 | "command": "workbench.action.navigateDown" 129 | }, 130 | { 131 | "key": "alt+w", 132 | "command": "editor.emmet.action.wrapWithAbbreviation" 133 | }, 134 | { 135 | "key": "shift+cmd+t", 136 | "command": "workbench.action.terminal.new" 137 | }, 138 | { 139 | "key": "cmd+t", 140 | "command": "workbench.action.terminal.toggleTerminal" 141 | }, 142 | { 143 | "key": "shift+enter", 144 | "command": "-python.execSelectionInTerminal", 145 | "when": "editorTextFocus && !findInputFocussed && !jupyter.ownsSelection && !notebookEditorFocused && !replaceInputFocussed && editorLangId == 'python'" 146 | }, 147 | { 148 | "key": "cmd+w", 149 | "command": "-workbench.action.closeWindow", 150 | "when": "!editorIsOpen && !multipleEditorGroups" 151 | }, 152 | { 153 | "key": "shift+cmd+b", 154 | "command": "workbench.action.terminal.sendSequence", 155 | "args": { 156 | "text": "fix_pdfs && echo && optic build\u000D" 157 | } 158 | }, 159 | { 160 | "key": "shift+cmd+c", 161 | "command": "grammarly.ignoreIssue" 162 | }, 163 | { 164 | "key": "shift+cmd+r", 165 | "command": "-rerunSearchEditorSearch", 166 | "when": "inSearchEditor" 167 | }, 168 | { 169 | "key": "shift+cmd+r", 170 | "command": "latex-workshop.refresh-viewer" 171 | }, 172 | { 173 | "key": "cmd+d", 174 | "command": "workbench.action.openRecent" 175 | }, 176 | { 177 | "key": "cmd+b", 178 | "command": "-markdown.extension.editing.toggleBold", 179 | "when": "editorTextFocus && !editorReadonly && editorLangId =~ /^markdown$|^rmd$|^quarto$/" 180 | }, 181 | { 182 | "key": "cmd+g", 183 | "command": "workbench.action.toggleAuxiliaryBar" 184 | }, 185 | { 186 | "key": "alt+cmd+b", 187 | "command": "-workbench.action.toggleAuxiliaryBar" 188 | } 189 | ] -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.multiCursorModifier": "ctrlCmd", 3 | "editor.formatOnPaste": true, 4 | "cSpell.language": "en", 5 | "files.exclude": { 6 | ".idea": true, 7 | "**/*.class": true, 8 | "**/.classpath": true, 9 | "**/.project": true, 10 | "**/.settings": true, 11 | "**/.factorypath": true 12 | }, 13 | "git.autofetch": true, 14 | "search.useGlobalIgnoreFiles": true, 15 | "latex-workshop.message.update.show": true, 16 | "latex-workshop.view.pdf.viewer": "tab", 17 | "workbench.iconTheme": "vscode-icons", 18 | "cSpell.userWords": [ 19 | "Adafruit", 20 | "Airpods", 21 | "AIRTABLE", 22 | "Alacritty", 23 | "applemusic", 24 | "arange", 25 | "auralite", 26 | "authed", 27 | "autofocus", 28 | "autopep", 29 | "bday", 30 | "blinkt", 31 | "blurhash", 32 | "Boesen", 33 | "borderless", 34 | "bottomline", 35 | "Brainstem", 36 | "btask", 37 | "Caddyfile", 38 | "caprover", 39 | "Caser", 40 | "Chamarty", 41 | "charmbracelet", 42 | "chdir", 43 | "cjdenio", 44 | "CLI's", 45 | "clippy", 46 | "cmds", 47 | "CNDs", 48 | "codegen", 49 | "colorbox", 50 | "consistuaiotn", 51 | "contituionation", 52 | "contralateral", 53 | "Coronavirus", 54 | "COVERFRAME", 55 | "COVID", 56 | "CPUs", 57 | "creds", 58 | "cringy", 59 | "CSCI", 60 | "cupertino", 61 | "darkmode", 62 | "Datatypes", 63 | "dateutil", 64 | "DDOS", 65 | "Deftones", 66 | "Denio", 67 | "denoise", 68 | "deontological", 69 | "deps", 70 | "Desmos", 71 | "DIALOGUER", 72 | "dockerenv", 73 | "Dockerfiles", 74 | "DOCKERHUB", 75 | "dotenv", 76 | "dtype", 77 | "eagleye", 78 | "Elon", 79 | "emojicast", 80 | "fanboat", 81 | "fintech", 82 | "Firewatch", 83 | "flexbox", 84 | "fluttercommunity", 85 | "fname", 86 | "fnames", 87 | "fpath", 88 | "frontmatter", 89 | "Funcs", 90 | "getcwd", 91 | "getenv", 92 | "gitlab", 93 | "gitmoji", 94 | "glados", 95 | "Gleich", 96 | "Gleich's", 97 | "godoc", 98 | "godotenv", 99 | "Goffstown", 100 | "gofmt", 101 | "golangci", 102 | "Golisano", 103 | "gomod", 104 | "goodnotes", 105 | "goreleaser", 106 | "gorm", 107 | "gource", 108 | "Grafana", 109 | "Graff", 110 | "hackathons", 111 | "hackclub", 112 | "hackclubbers", 113 | "hadolint", 114 | "Hagner", 115 | "heartrate", 116 | "Hevy", 117 | "Homocysteine", 118 | "Hyperpluralism", 119 | "imgs", 120 | "improvmx", 121 | "imread", 122 | "infographics", 123 | "Innersource", 124 | "insta", 125 | "Ints", 126 | "Ipsilateral", 127 | "iste", 128 | "jira", 129 | "kcftech", 130 | "Kops", 131 | "Kothari", 132 | "Kubeadm", 133 | "kubectl", 134 | "Kubernetes", 135 | "latexmk", 136 | "leaderboards", 137 | "Libermensch", 138 | "lightmode", 139 | "Lightroom's", 140 | "Linkedin", 141 | "linkplain", 142 | "lipgloss", 143 | "loguru", 144 | "lowkey", 145 | "macbook", 146 | "macos", 147 | "manimlib", 148 | "mapbox", 149 | "mattg", 150 | "mattglei", 151 | "mattgleich", 152 | "matthewgleich", 153 | "mgleich", 154 | "microbit", 155 | "microcontroller", 156 | "microdotphat", 157 | "microservice", 158 | "microservices", 159 | "Minikube", 160 | "minio", 161 | "mkdir", 162 | "modtime", 163 | "Monokai", 164 | "multiline", 165 | "ndarray", 166 | "negatable", 167 | "neopixel", 168 | "ngnix", 169 | "niranth", 170 | "notionapi", 171 | "numpy", 172 | "nvim", 173 | "oauthlib", 174 | "octodns", 175 | "oled", 176 | "openapi", 177 | "opengraph", 178 | "osascript", 179 | "outdoorfolio", 180 | "paystub", 181 | "PDFs", 182 | "Pickleball", 183 | "Poiseuille's", 184 | "Poiseuilles", 185 | "Polyline", 186 | "Pomodoro", 187 | "popen", 188 | "postgres", 189 | "postgresql", 190 | "Powerpoint", 191 | "prefs", 192 | "prerender", 193 | "Printf", 194 | "Println", 195 | "pubspec", 196 | "pytest", 197 | "pyyaml", 198 | "Queryable", 199 | "Raycast", 200 | "repo", 201 | "repos", 202 | "reqwest", 203 | "RGBO", 204 | "RMAPI", 205 | "Roboto", 206 | "rootly", 207 | "rprintln", 208 | "Rubba", 209 | "rustfmt", 210 | "rustup", 211 | "sdks", 212 | "sourcegraph", 213 | "Stateful", 214 | "Strava", 215 | "strftime", 216 | "subcommand", 217 | "subnational", 218 | "Sveltekit", 219 | "syscall", 220 | "texsch", 221 | "textdegree", 222 | "textemdash", 223 | "textendash", 224 | "textsuperscript", 225 | "todos", 226 | "toolchain", 227 | "transpiled", 228 | "uint", 229 | "uncommented", 230 | "unstaged", 231 | "unsynced", 232 | "Upgrader", 233 | "urequests", 234 | "Vals", 235 | "VARCHAR", 236 | "vaxxers", 237 | "Vercel", 238 | "vite", 239 | "vlan", 240 | "VLANs", 241 | "vsix", 242 | "wakatime", 243 | "webex", 244 | "wsjson", 245 | "Xcode", 246 | "zwift" 247 | ], 248 | "[javascript]": { 249 | "editor.defaultFormatter": "esbenp.prettier-vscode" 250 | }, 251 | "[yaml]": { 252 | "editor.defaultFormatter": "esbenp.prettier-vscode" 253 | }, 254 | "go.formatTool": "custom", 255 | "go.useLanguageServer": true, 256 | "files.autoSaveDelay": 100, 257 | "emmet.showSuggestionsAsSnippets": true, 258 | "liveServer.settings.donotShowInfoMsg": true, 259 | "latex-workshop.intellisense.package.enabled": true, 260 | "editor.fontFamily": "IBM Plex Mono", 261 | "dart.debugExternalLibraries": true, 262 | "dart.debugSdkLibraries": false, 263 | "editor.wordWrap": "on", 264 | "editor.autoClosingBrackets": "always", 265 | "workbench.editor.limit.value": 3, 266 | "dart.previewFlutterUiGuides": true, 267 | "git.alwaysSignOff": true, 268 | "go.autocompleteUnimportedPackages": true, 269 | "html.format.indentInnerHtml": true, 270 | "dart.warnWhenEditingFilesOutsideWorkspace": false, 271 | "[python]": { 272 | "editor.defaultFormatter": "ms-python.black-formatter", 273 | "editor.formatOnPaste": false, 274 | "editor.formatOnType": true 275 | }, 276 | "latex-workshop.message.error.show": false, 277 | "editor.fontLigatures": "'zero'", 278 | "latex-workshop.message.warning.show": false, 279 | "workbench.sideBar.location": "right", 280 | "debug.openDebug": "neverOpen", 281 | "editor.accessibilitySupport": "off", 282 | "terminal.external.osxExec": "Kitty.app", 283 | "yaml.format.singleQuote": true, 284 | "prettier.singleQuote": true, 285 | "bracket-pair-colorizer-2.rulerPosition": "Full", 286 | "bracket-pair-colorizer-2.forceUniqueOpeningColor": true, 287 | "trailing-spaces.backgroundColor": "rgba(0,0,0,0)", 288 | "trailing-spaces.borderColor": "rgba(0,0,0,0)", 289 | "trailing-spaces.trimOnSave": true, 290 | "[html]": { 291 | "editor.defaultFormatter": "esbenp.prettier-vscode" 292 | }, 293 | "git.enableCommitSigning": true, 294 | "bracket-pair-colorizer-2.showBracketsInRuler": true, 295 | "editor.hover.delay": 200, 296 | "html.format.endWithNewline": true, 297 | "trailing-spaces.showStatusBarMessage": false, 298 | "extensions.ignoreRecommendations": true, 299 | "javascript.preferences.quoteStyle": "single", 300 | "typescript.preferences.quoteStyle": "single", 301 | "[dart]": { 302 | "editor.formatOnSave": true, 303 | "editor.formatOnType": true, 304 | "editor.rulers": [80], 305 | "editor.selectionHighlight": false, 306 | "editor.suggest.snippetsPreventQuickSuggestions": false, 307 | "editor.suggestSelection": "first", 308 | "editor.tabCompletion": "onlySnippets", 309 | "editor.wordBasedSuggestions": "off" 310 | }, 311 | "editor.cursorBlinking": "smooth", 312 | "terminal.integrated.cursorBlinking": true, 313 | "errorLens.statusBarMessageEnabled": true, 314 | "workbench.tree.indent": 16, 315 | "editor.lightbulb.enabled": "off", 316 | "python.formatting.autopep8Args": ["--aggressive"], 317 | "go.lintTool": "golangci-lint", 318 | "go.lintFlags": ["--fast", "--enable=\"errcheck\""], 319 | "python.formatting.provider": "black", 320 | "python.formatting.blackPath": "/opt/homebrew/bin/black", 321 | "git.confirmSync": false, 322 | "markdown.extension.toc.levels": "1..4", 323 | "[rust]": { 324 | "editor.defaultFormatter": "rust-lang.rust-analyzer" 325 | }, 326 | "rust.all_features": true, 327 | "emmet.triggerExpansionOnTab": true, 328 | "grammarly.hideUnavailablePremiumAlerts": true, 329 | "vim.enableNeovim": true, 330 | // "latex-workshop.view.pdf.invertMode.enabled": "always", 331 | "latex-workshop.latex.autoClean.run": "onBuilt", 332 | // "latex-workshop.latex.autoBuild.run": "never", 333 | "latex-workshop.latex.build.forceRecipeUsage": true, 334 | "latex-workshop.progress.barStyle": "none", 335 | "[typescriptreact]": { 336 | "editor.defaultFormatter": "esbenp.prettier-vscode" 337 | }, 338 | "vim.handleKeys": { 339 | "": false 340 | }, 341 | "workbench.editorAssociations": { 342 | "*.ipynb": "jupyter-notebook", 343 | "*.svg": "default" 344 | }, 345 | "latex-utilities.message.update.show": false, 346 | "workbench.tree.expandMode": "singleClick", 347 | "sonarlint.rules": { 348 | "java:S106": { 349 | "level": "off" 350 | }, 351 | "java:S125": { 352 | "level": "off" 353 | }, 354 | "java:S3776": { 355 | "level": "off" 356 | }, 357 | "java:S1192": { 358 | "level": "off" 359 | }, 360 | "java:S1871": { 361 | "level": "off" 362 | }, 363 | "typescript:S1117": { 364 | "level": "off" 365 | }, 366 | "java:S3400": { 367 | "level": "off" 368 | }, 369 | "java:S135": { 370 | "level": "off" 371 | }, 372 | "java:S2189": { 373 | "level": "off" 374 | }, 375 | "java:S1319": { 376 | "level": "off" 377 | } 378 | }, 379 | "[markdown]": { 380 | "editor.defaultFormatter": "esbenp.prettier-vscode" 381 | }, 382 | "[jsonc]": { 383 | "editor.defaultFormatter": "esbenp.prettier-vscode" 384 | }, 385 | "editor.cursorSurroundingLines": 10000, 386 | "[json]": { 387 | "editor.defaultFormatter": "esbenp.prettier-vscode" 388 | }, 389 | "[typescript]": { 390 | "editor.defaultFormatter": "esbenp.prettier-vscode" 391 | }, 392 | "javascript.updateImportsOnFileMove.enabled": "always", 393 | "rust.rustfmt_path": "~/.cargo/bin/rustfmt", 394 | "vsicons.dontShowNewVersionMessage": true, 395 | "yaclock.flashTimeSeparator": true, 396 | "yaclock.prefix": "", 397 | "yaclock.showDay": true, 398 | "yaclock.showDate": true, 399 | "window.titleSeparator": " | ", 400 | "hadolint.hadolintPath": "/opt/homebrew/bin/hadolint", 401 | "conventionalCommits.scopes": [ 402 | "script", 403 | "config", 404 | "license", 405 | "structure", 406 | "setup", 407 | "format", 408 | "lint", 409 | "deps", 410 | "release", 411 | "assets", 412 | "minor", 413 | "wip" 414 | ], 415 | "conventionalCommits.gitmoji": false, 416 | "editor.scrollbar.verticalScrollbarSize": 5, 417 | "latex-workshop.intellisense.unimathsymbols.enabled": true, 418 | "yaclock.hour12": true, 419 | "git.rebaseWhenSync": true, 420 | "rust-analyzer.notifications.cargoTomlNotFound": false, 421 | "[latex]": { 422 | "editor.formatOnPaste": false, 423 | "editor.suggestSelection": "recentlyUsedByPrefix", 424 | "editor.formatOnSave": false, 425 | "editor.tabSize": 4, 426 | "editor.detectIndentation": false 427 | }, 428 | "vim.incsearch": true, 429 | "latex-workshop.bibtex-format.sort.enabled": true, 430 | "latex-workshop.viewer.pdf.internal.keyboardEvent": "force", 431 | "latex-workshop.view.pdf.zoom": "page-fit", 432 | "go.toolsManagement.autoUpdate": true, 433 | "docker.showStartPage": false, 434 | "explorer.compactFolders": false, 435 | "editor.suggest.insertMode": "replace", 436 | "editor.suggest.showStatusBar": true, 437 | "go.useCodeSnippetsOnFunctionSuggest": true, 438 | "fgh-code.promptOnOpen": false, 439 | "vim.debug.silent": true, 440 | "security.workspace.trust.untrustedFiles": "open", 441 | "security.workspace.trust.enabled": false, 442 | "vim.camelCaseMotion.enable": true, 443 | "vim.highlightedyank.duration": 100, 444 | "editor.selectionHighlight": false, 445 | "editor.suggest.snippetsPreventQuickSuggestions": false, 446 | "explorer.confirmDragAndDrop": false, 447 | "editor.tabCompletion": "on", 448 | "python.showStartPage": false, 449 | "vim.normalModeKeyBindingsNonRecursive": [ 450 | { 451 | "before": ["u"], 452 | "commands": ["undo"] 453 | }, 454 | { 455 | "before": ["o"], 456 | "after": ["A", "enter"] 457 | }, 458 | { 459 | "before": ["C-r"], 460 | "commands": ["redo"] 461 | }, 462 | { 463 | "before": ["down"], 464 | "after": ["g", "j"] 465 | }, 466 | { 467 | "before": ["up"], 468 | "after": ["g", "k"] 469 | }, 470 | { 471 | "before": ["j"], 472 | "after": ["g", "j"] 473 | }, 474 | { 475 | "before": ["k"], 476 | "after": ["g", "k"] 477 | } 478 | ], 479 | "vim.visualModeKeyBindingsNonRecursive": [ 480 | { 481 | "before": ["down"], 482 | "after": ["g", "j"] 483 | }, 484 | { 485 | "before": ["up"], 486 | "after": ["g", "k"] 487 | }, 488 | { 489 | "before": "k", 490 | "after": ["g", "j"] 491 | }, 492 | { 493 | "before": "j", 494 | "after": ["g", "j"] 495 | } 496 | ], 497 | "editor.inlineSuggest.enabled": true, 498 | "explorer.confirmDelete": false, 499 | "notebook.cellToolbarLocation": { 500 | "default": "right", 501 | "jupyter-notebook": "left" 502 | }, 503 | "terminal.integrated.defaultLocation": "editor", 504 | "typescript.updateImportsOnFileMove.enabled": "always", 505 | "vim.highlightedyank.enable": true, 506 | "vim.normalModeKeyBindings": [ 507 | { 508 | "before": ["", "r"], 509 | "commands": ["editor.action.rename"] 510 | }, 511 | { 512 | "before": ["", "c"], 513 | "commands": ["grammarly.ignoreIssue"] 514 | } 515 | ], 516 | "editor.linkedEditing": true, 517 | "errorLens.fontWeight": "700", 518 | "editor.suggestSelection": "first", 519 | "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue", 520 | "workbench.preferredLightColorTheme": "GitHub Light", 521 | "workbench.preferredDarkColorTheme": "GitHub Dark", 522 | "markdown.preview.scrollEditorWithPreview": false, 523 | "markdown.preview.scrollPreviewWithEditor": false, 524 | "editor.quickSuggestions": { 525 | "comments": "on", 526 | "strings": "on", 527 | "other": "on" 528 | }, 529 | "emmet.syntaxProfiles": { 530 | "javascript": "jsx" 531 | }, 532 | "emmet.includeLanguages": { 533 | "mdx": "html", 534 | "javascript": "javascript-react" 535 | }, 536 | "[go]": { 537 | "editor.codeActionsOnSave": { 538 | "source.organizeImports": "explicit" 539 | }, 540 | "editor.defaultFormatter": "golang.go" 541 | }, 542 | "zenMode.hideLineNumbers": false, 543 | "workbench.editor.decorations.colors": false, 544 | "editor.renderLineHighlight": "gutter", 545 | "editor.renderFinalNewline": "off", 546 | "editor.renderControlCharacters": true, 547 | "files.trimFinalNewlines": true, 548 | "errorLens.infoGutterIconColor": "#418FDD", 549 | "errorLens.warningGutterIconColor": "#E1DC3F", 550 | "errorLens.statusBarIconsEnabled": true, 551 | "errorLens.errorGutterIconColor": "#E92741", 552 | "conventionalCommits.showNewVersionNotes": false, 553 | "svelte.enable-ts-plugin": true, 554 | "vim.showMarksInGutter": true, 555 | "[svelte]": { 556 | "editor.formatOnSave": true, 557 | "editor.defaultFormatter": "svelte.svelte-vscode" 558 | }, 559 | // "editor.tokenColorCustomizations": { 560 | // "textMateRules": [ 561 | // { 562 | // "scope": [ 563 | // //following will be in italic (=FlottFlott) 564 | // "comment", 565 | // "entity.name.type.class", //class names 566 | // "keyword", //import, export, return… 567 | // "constant", //String, Number, Boolean…, this, super 568 | // "storage.modifier", //static keyword 569 | // "storage.type.class.js" //class keyword 570 | // ], 571 | // "settings": { 572 | // "fontStyle": "italic" 573 | // } 574 | // } 575 | // ] 576 | // }, 577 | "C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google, IndentWidth: 4 }", 578 | "rust-analyzer.diagnostics.disabled": ["macro-error"], 579 | "discord.removeTimestamp": true, 580 | "discord.suppressNotifications": true, 581 | "git.inputValidation": true, 582 | "gitlens.hovers.currentLine.over": "line", 583 | "gitlens.codeLens.enabled": false, 584 | "gitlens.statusBar.enabled": false, 585 | "gitlens.hovers.enabled": false, 586 | "latex-workshop.view.outline.numbers.enabled": false, 587 | "search.showLineNumbers": true, 588 | "java.configuration.updateBuildConfiguration": "automatic", 589 | "terminal.integrated.macOptionIsMeta": true, 590 | "workbench.productIconTheme": "icons-carbon", 591 | "window.commandCenter": false, 592 | "githubPullRequests.createOnPublishBranch": "never", 593 | "terminal.integrated.defaultProfile.osx": "fish", 594 | "java.jdt.ls.java.home": "/opt/homebrew/opt/openjdk/libexec/openjdk.jdk/Contents/Home", 595 | "svelte.plugin.svelte.note-new-transformation": false, 596 | "git.openRepositoryInParentFolders": "always", 597 | "editor.bracketPairColorization.enabled": false, 598 | "redhat.telemetry.enabled": true, 599 | "terminal.integrated.scrollback": 50000, 600 | "lldb.suppressUpdateNotifications": true, 601 | "githubPullRequests.pullBranch": "never", 602 | "editor.formatOnSave": true, 603 | "workbench.editor.empty.hint": "hidden", 604 | "workbench.activityBar.location": "top", 605 | "liveshare.populateGitCoAuthors": "never", 606 | "markdown.preview.fontFamily": "IBM Plex Mono", 607 | "editor.defaultFormatter": "esbenp.prettier-vscode", 608 | "svg.preview.mode": "img", 609 | "github-actions.workflows.pinned.refresh.interval": 10, 610 | "github-actions.workflows.pinned.refresh.enabled": true, 611 | "emeraldwalk.runonsave": { 612 | "commands": [ 613 | { 614 | "match": "\\.go$", 615 | "cmd": "golines --shorten-comments ${file} -w" 616 | } 617 | ] 618 | }, 619 | "terminal.integrated.fontFamily": "IBM Plex Mono", 620 | "editor.folding": false, 621 | "[terraform]": { 622 | "editor.defaultFormatter": "hashicorp.terraform" 623 | }, 624 | "terminal.integrated.fontWeight": "500", 625 | "latex-workshop.view.pdf.invert": 0.88, 626 | "workbench.editor.restoreViewState": false, 627 | "terminal.integrated.fontLigatures": true, 628 | "editor.fontWeight": "500", 629 | "workbench.colorTheme": "GitHub Dark", 630 | "[typst]": { 631 | "editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?" 632 | }, 633 | "[typst-code]": { 634 | "editor.wordSeparators": "`~!@#$%^&*()=+[{]}\\|;:'\",.<>/?" 635 | }, 636 | "[lua]": { 637 | "editor.defaultFormatter": "sumneko.lua" 638 | }, 639 | "workbench.editor.enablePreview": false, 640 | "diffEditor.ignoreTrimWhitespace": true, 641 | "eslint.validate": ["svelte", "typescript", "javascript"], 642 | "workbench.preferredHighContrastLightColorTheme": "GitHub Light", 643 | "window.autoDetectColorScheme": true, 644 | "breadcrumbs.enabled": false, 645 | "editor.lineHeight": 1.35, 646 | "workbench.editor.tabActionLocation": "left", 647 | "workbench.editor.tabSizing": "shrink", 648 | "workbench.colorCustomizations": { 649 | "editorIndentGuide.background1": "#00000001", 650 | "statusBar.foreground": "#ffffff", 651 | "statusBar.debuggingForeground": "#ffffff" 652 | }, 653 | "workbench.editor.highlightModifiedTabs": true, 654 | "vim.startInInsertMode": true, 655 | "editor.minimap.enabled": false, 656 | "chat.agent.enabled": false, 657 | "workbench.navigationControl.enabled": false, 658 | "window.density.editorTabHeight": "compact", 659 | "chat.commandCenter.enabled": false, 660 | "workbench.layoutControl.enabled": false, 661 | "workbench.startupEditor": "none", 662 | "github.copilot.enable": { 663 | "*": false, 664 | "plaintext": false, 665 | "markdown": false, 666 | "scminput": false 667 | } 668 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/css.json: -------------------------------------------------------------------------------- 1 | { 2 | "Max width media query": { 3 | "prefix": "max", 4 | "body": [ 5 | "@media (max-width: $1px) {", 6 | "\t$2", 7 | "}" 8 | ], 9 | "description": "Media query with max width" 10 | } 11 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/go.json: -------------------------------------------------------------------------------- 1 | { 2 | "Wrap error": { 3 | "prefix": "re", 4 | "body": [ 5 | "fmt.Errorf(\"%w $1\", err)" 6 | ], 7 | "description": "Wrap a given error" 8 | }, 9 | "Return error": { 10 | "prefix": "ife", 11 | "body": [ 12 | "if err != nil {", 13 | "\t$1", 14 | "}" 15 | ], 16 | "description": "Return the error" 17 | }, 18 | "Fatal Error": { 19 | "prefix": "fa", 20 | "body": [ 21 | "timber.Fatal(err, \"failed to $1\")", 22 | ], 23 | "description": "log out a fatal error" 24 | } 25 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/latex.json: -------------------------------------------------------------------------------- 1 | { 2 | "Subsection": { 3 | "prefix": ["ss"], 4 | "body": ["\\subsection{$1}"] 5 | }, 6 | "Subsubsection": { 7 | "prefix": ["sss"], 8 | "body": ["\\subsubsection{$1}"] 9 | }, 10 | "Center": { 11 | "prefix": ["ce"], 12 | "body": ["\\begin{center}\n\t\\item $1 \n\\end{center}"] 13 | }, 14 | "Center Math": { 15 | "prefix": ["cm"], 16 | "body": ["\\[ $1 \\]"] 17 | }, 18 | "Enumeration with capital letters": { 19 | "prefix": ["enumA"], 20 | "body": [ 21 | "\\begin{enumerate}[label=\\Alph*.]\n\t\\item $1 \n\\end{enumerate}" 22 | ] 23 | }, 24 | "Enumeration with capital letters in parentheses": { 25 | "prefix": ["enumP"], 26 | "body": [ 27 | "\\begin{enumerate}[label=(\\Alph*)]\n\t\\item $1 \n\\end{enumerate}" 28 | ] 29 | }, 30 | "Enumeration with lowercase letters": { 31 | "prefix": ["enuma"], 32 | "body": [ 33 | "\\begin{enumerate}[label=\\alph*.]\n\t\\item $1 \n\\end{enumerate}" 34 | ] 35 | }, 36 | "Enumeration with lowercase letters in parentheses": { 37 | "prefix": ["enump"], 38 | "body": [ 39 | "\\begin{enumerate}[label=(\\alph*)]\n\t\\item $1 \n\\end{enumerate}" 40 | ] 41 | }, 42 | "Itemize with no bullets": { 43 | "prefix": ["itemn"], 44 | "body": ["\\begin{itemize}[label=]\n\t\\item $1 \n\\end{itemize}"] 45 | }, 46 | "Full set of parentheses": { 47 | "prefix": ["le"], 48 | "body": ["\\left($1\\right)"] 49 | }, 50 | "Term Table": { 51 | "prefix": ["ttab"], 52 | "body": [ 53 | "\\begin{center}\n\t\\begin{tabular}{| c | c |}\n\t\t\\hline\n\t\t\\textbf{Term} & \\textbf{Definition} \\\\\\ \\hline \\hline\n\t\t$1 & $2 \\\\\\ \\hline$3\n\t\\end{tabular}\n\\end{center}" 54 | ] 55 | }, 56 | "Variable Table": { 57 | "prefix": ["vtab"], 58 | "body": [ 59 | "\\begin{tabular}{| c | l |}\n\t\\hline\n\t\\textbf{Variable} & \\textbf{Definition} \\\\\\ \\hline \\hline\n\t$ $1 $ & $2 \\\\\\ \\hline$3\n\\end{tabular}" 60 | ] 61 | }, 62 | "Variable Table with Units": { 63 | "prefix": ["vutab"], 64 | "body": [ 65 | "\\begin{tabular}{| c | l | l |}\n\t\\hline\n\t\\textbf{Variable} & \\textbf{Definition} & \\textbf{Unit} \\\\\\ \\hline \\hline\n\t$ $1 $ & $2 & $3 \\\\\\ \\hline$4\n\\end{tabular}" 66 | ] 67 | }, 68 | "Row": { 69 | "prefix": ["re"], 70 | "body": ["$1 & $2 \\\\\\ \\hline"] 71 | }, 72 | "Row (Three Columns)": { 73 | "prefix": ["ree"], 74 | "body": ["$1 & $2 & $3 \\\\\\ \\hline"] 75 | }, 76 | "Row (Four Columns)": { 77 | "prefix": ["reee"], 78 | "body": ["$1 & $2 & $3 & $4 \\\\\\ \\hline"] 79 | }, 80 | "Inline Math": { 81 | "prefix": ["ie"], 82 | "body": ["$ $1 $"] 83 | }, 84 | "Mathmatical Solution": { 85 | "prefix": ["mso"], 86 | "body": ["\\msol{$1}"] 87 | }, 88 | "Solution": { 89 | "prefix": ["so"], 90 | "body": ["\\sol{$1}"] 91 | }, 92 | "Question": { 93 | "prefix": ["qe"], 94 | "body": "\\section*{Problem \\#$1}\n\t" 95 | }, 96 | "Question Normal": { 97 | "prefix": ["qen"], 98 | "body": "\\subsection*{Problem \\#$1}\n\t" 99 | }, 100 | "Question Sub": { 101 | "prefix": ["qes"], 102 | "body": [ 103 | "\\subsection{}\n\t\\subsubsection{Question}\n\t\t$1\n\t\\subsubsection{Work \\& Answer}\n\t\t\\begin{align*}\n\t\t $2\n\t\t\\end{align*}\n\t\t\\msol{$3}" 104 | ] 105 | }, 106 | "Plain Enumeration": { 107 | "prefix": ["enum"], 108 | "body": ["\\begin{enumerate}\n\t\\item $1 \n\\end{enumerate}"] 109 | }, 110 | "Plain Text in Math Mode": { 111 | "prefix": ["rm"], 112 | "body": ["\\text{$1}"] 113 | }, 114 | "Bold text": { 115 | "prefix": ["bf"], 116 | "body": ["\\textbf{$1}"] 117 | }, 118 | "Right Arrow": { 119 | "prefix": ["ira"], 120 | "body": ["$ \\rightarrow $ "] 121 | }, 122 | "Angle": { 123 | "prefix": ["an"], 124 | "body": ["$ \\measuredangle $1^{\\circ} $"] 125 | }, 126 | "Celcius": { 127 | "prefix": ["cet"], 128 | "body": ["$1$^{\\circ}\\$C"] 129 | }, 130 | "Fahrenheit": { 131 | "prefix": ["fet"], 132 | "body": ["$1$^{\\circ}\\$F"] 133 | }, 134 | "Kelvin": { 135 | "prefix": ["ket"], 136 | "body": ["$1$^{\\circ}\\$K"] 137 | }, 138 | "Celcius Math": { 139 | "prefix": ["cem"], 140 | "body": ["\\text{ C}^{\\circ}"] 141 | }, 142 | "Fahrenheit Math": { 143 | "prefix": ["fem"], 144 | "body": ["\\text{ F}^{\\circ}"] 145 | }, 146 | "Kelvin Math": { 147 | "prefix": ["kem"], 148 | "body": ["\\text{ K}^{\\circ}"] 149 | }, 150 | "y axis": { 151 | "prefix": ["yaxis"], 152 | "body": ["$ y $-axis"] 153 | }, 154 | "x axis": { 155 | "prefix": ["xaxis"], 156 | "body": ["$ x $-axis"] 157 | }, 158 | "icos": { 159 | "prefix": ["icos"], 160 | "body": ["$ \\cos \\theta $"] 161 | }, 162 | "isin": { 163 | "prefix": ["isin"], 164 | "body": ["$ \\sin \\theta $"] 165 | }, 166 | "itan": { 167 | "prefix": ["itan"], 168 | "body": ["$ \\tan \\theta $"] 169 | }, 170 | "cos": { 171 | "prefix": ["cos"], 172 | "body": ["\\cos \\theta"] 173 | }, 174 | "sin": { 175 | "prefix": ["sin"], 176 | "body": ["\\sin \\theta"] 177 | }, 178 | "tan": { 179 | "prefix": ["tan"], 180 | "body": ["\\tan \\theta"] 181 | }, 182 | "icsc": { 183 | "prefix": ["icsc"], 184 | "body": ["$ \\csc \\theta $"] 185 | }, 186 | "isec": { 187 | "prefix": ["isec"], 188 | "body": ["$ \\sec \\theta $"] 189 | }, 190 | "icot": { 191 | "prefix": ["icot"], 192 | "body": ["$ \\cot \\theta $"] 193 | }, 194 | "csc": { 195 | "prefix": ["csc"], 196 | "body": ["\\csc \\theta"] 197 | }, 198 | "sec": { 199 | "prefix": ["sec"], 200 | "body": ["\\sec \\theta"] 201 | }, 202 | "cot": { 203 | "prefix": ["cot"], 204 | "body": ["\\cot \\theta"] 205 | }, 206 | "Right Arrow in Math": { 207 | "prefix": ["ra"], 208 | "body": ["\\rightarrow"] 209 | }, 210 | "Practice Problem": { 211 | "prefix": ["pra"], 212 | "body": [ 213 | "\\section{}", 214 | "\t\\subsection{Work \\& Answer}", 215 | "\t\t\\begin{align*}", 216 | "\t\t\t$2", 217 | "\t\t\\end{align*}", 218 | "\t\t\\msol{$3}", 219 | "\t\\subsection{Result}", 220 | "\t\t$4", 221 | "\t\\subsection{Correction/Take Away}", 222 | "\t\t$5", 223 | "", 224 | "\\horizontalrule" 225 | ] 226 | }, 227 | "Sub Practice Problem": { 228 | "prefix": ["pras"], 229 | "body": [ 230 | "\\subsection{}", 231 | "\t\\subsubsection{Work \\& Answer}", 232 | "\t\t\\begin{align*}", 233 | "\t\t\t$2", 234 | "\t\t\\end{align*}", 235 | "\t\t\\msol{$3}", 236 | "\t\\subsubsection{Result}", 237 | "\t\t$4", 238 | "\t\\subsubsection{Correction/Take Away}", 239 | "\t\t$5", 240 | "", 241 | "\\horizontalrule" 242 | ] 243 | }, 244 | "y-axis intercept": { 245 | "prefix": ["yint"], 246 | "body": ["$ y $-intercept"] 247 | }, 248 | "x-axis intercept": { 249 | "prefix": ["xint"], 250 | "body": ["$ x $-intercept"] 251 | }, 252 | "Table of Contents": { 253 | "prefix": ["toc"], 254 | "body": ["\\tableofcontents", "\\newpage\n"] 255 | }, 256 | "Explain Equation Macro": { 257 | "prefix": ["ep"], 258 | "body": ["\\explain{$1}{\n\t$2\n}"] 259 | }, 260 | "Combine Like Terms (Right Side)": { 261 | "prefix": ["cltr"], 262 | "body": ["\\explain{Combine Like Terms (R)}{\n\t\\step{ $1 }\n}"] 263 | }, 264 | "Solve": { 265 | "prefix": ["sol"], 266 | "body": ["\\explain{Solve}{\n\t\\step{ $1 }\n}"] 267 | }, 268 | "Combine Like Terms": { 269 | "prefix": ["clt"], 270 | "body": ["\\explain{Combine Like Terms}{\n\t\\step{ $1 }\n}"] 271 | }, 272 | "Combine Like Terms (Left Side)": { 273 | "prefix": ["cltl"], 274 | "body": ["\\explain{Combine Like Terms (L)}{\n\t\\step{ $1 }\n}"] 275 | }, 276 | "Combine Like Terms (Up)": { 277 | "prefix": ["cltu"], 278 | "body": [ 279 | "\\explain{Combine Like Terms ($ \\uparrow $)}{\n\t\\step{ $1 }\n}" 280 | ] 281 | }, 282 | "Combine Like Terms (Down)": { 283 | "prefix": ["cltd"], 284 | "body": [ 285 | "\\explain{Combine Like Terms ($ \\downarrow $)}{\n\t\\step{ $1 }\n}" 286 | ] 287 | }, 288 | "Variable Insertion": { 289 | "prefix": ["is"], 290 | "body": ["\\explain{Insert}{\n\t\\step{ $1 }\n}"] 291 | }, 292 | "Variable Declaration": { 293 | "prefix": ["vars"], 294 | "body": [ 295 | "\\begin{align*}", 296 | " \\variables{", 297 | " $1 = $2 \\\\\\ $3", 298 | " }", 299 | "\\end{align*}" 300 | ] 301 | }, 302 | "Initial Equation": { 303 | "prefix": ["eq"], 304 | "body": ["\\eq{$1}"] 305 | }, 306 | "Statement": { 307 | "prefix": ["sm"], 308 | "body": ["\\statement{$1}"] 309 | }, 310 | "Variable Declaration in Problem": { 311 | "prefix": ["vas"], 312 | "body": ["\\variables{\n\t$1\n}"] 313 | }, 314 | "And shorthand symbol": { 315 | "prefix": ["and"], 316 | "body": ["\\& "] 317 | }, 318 | "Correct": { 319 | "prefix": ["cor"], 320 | "body": ["\\ding{51} \\green{Correct}"] 321 | }, 322 | "Incorrect": { 323 | "prefix": ["icor"], 324 | "body": ["\\ding{55} \\red{Incorrect}"] 325 | }, 326 | "Yellow Highlighter": { 327 | "prefix": ["ye"], 328 | "body": ["\\yellow{$1}"] 329 | }, 330 | "th super script suffix": { 331 | "prefix": ["th"], 332 | "body": ["$1\\textsuperscript{th}"] 333 | }, 334 | "rd super script suffix": { 335 | "prefix": ["rd"], 336 | "body": ["$1\\textsuperscript{rd}"] 337 | }, 338 | "nd super script suffix": { 339 | "prefix": ["nd"], 340 | "body": ["$1\\textsuperscript{nd}"] 341 | }, 342 | "st super script suffix": { 343 | "prefix": ["st"], 344 | "body": ["$1\\textsuperscript{st}"] 345 | }, 346 | "therefore": { 347 | "prefix": ["te"], 348 | "body": ["\\therefore "] 349 | }, 350 | "approximate equal": { 351 | "prefix": ["aeq"], 352 | "body": ["\\approxeq "] 353 | }, 354 | "approximate": { 355 | "prefix": ["ap"], 356 | "body": ["\\approx "] 357 | }, 358 | "unknown": { 359 | "prefix": ["uk"], 360 | "body": ["\\var{$1}{\\text{?}}"] 361 | }, 362 | "unknown with unit": { 363 | "prefix": ["uku"], 364 | "body": ["\\varu{$1}{\\text{?}}{$2}"] 365 | }, 366 | "ohm text": { 367 | "prefix": ["ohm"], 368 | "body": ["$ \\Omega $"] 369 | }, 370 | "ohm math": { 371 | "prefix": ["om"], 372 | "body": ["\\text{ } \\Omega"] 373 | }, 374 | "circuit tikz": { 375 | "prefix": ["ctikz"], 376 | "body": ["\\begin{circuitikz} \\draw", "\t$1", "\\end{circuitikz}"] 377 | }, 378 | "measured angle": { 379 | "prefix": ["ma"], 380 | "body": ["\\measuredangle $1^{\\circ}"] 381 | }, 382 | "angle": { 383 | "prefix": ["an"], 384 | "body": ["\\angle $1^{\\circ}"] 385 | }, 386 | "vector components": { 387 | "prefix": ["com"], 388 | "body": ["\\left\\langle $1 \\right\\rangle"] 389 | }, 390 | "variable": { 391 | "prefix": ["va"], 392 | "body": ["\\var{$1}{$2}"] 393 | }, 394 | "variable with text name": { 395 | "prefix": ["vat"], 396 | "body": ["\\vart{$1}{$2}"] 397 | }, 398 | "variable with unit": { 399 | "prefix": ["vau"], 400 | "body": ["\\varu{$1}{$2}{$3}"] 401 | }, 402 | "variable with unit and text name": { 403 | "prefix": ["vatu"], 404 | "body": ["\\vartu{$1}{$2}{$3}"] 405 | }, 406 | "math step": { 407 | "prefix": ["sp"], 408 | "body": ["\\step{ $1 }"] 409 | }, 410 | "formula": { 411 | "prefix": "fo", 412 | "body": "\\formula{$1}" 413 | }, 414 | "infinity": { 415 | "prefix": "in", 416 | "body": "\\infty" 417 | }, 418 | "center dot": { 419 | "prefix": "cd", 420 | "body": "\\cdot " 421 | }, 422 | "coordinate plot": { 423 | "prefix": "plot", 424 | "body": [ 425 | "\\begin{center}", 426 | "\t\\begin{tikzpicture}", 427 | "\t\t\\pgfplotsset{scale only axis, width=10cm}", 428 | "\t\t\\begin{axis}[", 429 | "\t\t\txlabel=$1,", 430 | "\t\t\tylabel=$2,", 431 | "\t\t\tgrid,", 432 | "\t\t\ttitle=$1 \\textit{v.s}. $2", 433 | "\t\t]", 434 | "\t\t\\addplot[mark=otimes*] coordinates {", 435 | "\t\t\t$4", 436 | "\t\t};", 437 | "\t\t\\end{axis}", 438 | "\t\\end{tikzpicture}", 439 | "\\end{center}" 440 | ] 441 | }, 442 | "angled bar chart": { 443 | "prefix": "anbar", 444 | "body": [ 445 | "\\begin{center}", 446 | "\t\\begin{tikzpicture}", 447 | "\t\t\\begin{axis}[", 448 | "\t\t\ttitle=$1", 449 | "\t\t\tybar", 450 | "\t\t\theight=8cm", 451 | "\t\t\twidth=0.8\\textwidth", 452 | "\t\t\txlabel=$2", 453 | "\t\t\tylabel=$3", 454 | "\t\t\tsymbolic x coords={", 455 | "\t\t\t\t$4", 456 | "\t\t\t},", 457 | "\t\t\txtick=data,", 458 | "\t\t\tnodes near coords,", 459 | "\t\t\tnodes near coords align={vertical},", 460 | "\t\t\tx tick label style={rotate=45,anchor=east},", 461 | "\t\t]", 462 | "\t\t\\addplot coordinates {", 463 | "\t\t\t($5,$6)", 464 | "\t\t};", 465 | "\t\t\\end{axis}", 466 | "\t\\end{tikzpicture}", 467 | "\\end{center}" 468 | ] 469 | }, 470 | "rho": { 471 | "prefix": "ro", 472 | "body": "\\rho " 473 | }, 474 | "limit": { 475 | "prefix": "li", 476 | "body": "\\lim_{$1 \\to $2} " 477 | }, 478 | "overline": { 479 | "prefix": "ol", 480 | "body": "\\overline{$1} " 481 | }, 482 | "sum": { 483 | "prefix": "su", 484 | "body": "\\sum " 485 | }, 486 | "full sum": { 487 | "prefix": "fsu", 488 | "body": "\\sum_{$1}^{$2} " 489 | }, 490 | "sq": { 491 | "prefix": "sq", 492 | "body": "\\sqrt{$1} " 493 | }, 494 | "img": { 495 | "prefix": "img", 496 | "body": [ 497 | "\\begin{center}", 498 | "\t\\item \\includegraphics[width=0.8\\textwidth]{$1}", 499 | "\\end{center}" 500 | ] 501 | }, 502 | "delta": { 503 | "prefix": "de", 504 | "body": "\\Delta " 505 | }, 506 | "eta": { 507 | "prefix": "et", 508 | "body": "\\eta " 509 | }, 510 | "section": { 511 | "prefix": "se", 512 | "body": "\\section{$1}\n\t$2" 513 | }, 514 | "hat": { 515 | "prefix": "ha", 516 | "body": "\\hat{$1} " 517 | }, 518 | "isotope": { 519 | "prefix": "iso", 520 | "body": "\\isotope[$1][$2]{$3}" 521 | }, 522 | "times": { 523 | "prefix": "ti", 524 | "body": "\\times " 525 | }, 526 | "nu": { 527 | "prefix": "nu", 528 | "body": "\\nu " 529 | }, 530 | "lambda": { 531 | "prefix": "la", 532 | "body": "\\lambda" 533 | }, 534 | "scientific notation": { 535 | "prefix": "sn", 536 | "body": "\\sn{$1}" 537 | }, 538 | "fra": { 539 | "prefix": "/", 540 | "body": "\\frac{$1}{$2}" 541 | }, 542 | "chemical formula": { 543 | "prefix": "ch", 544 | "body": "\\ch{$1}" 545 | }, 546 | "unit": { 547 | "prefix": "un", 548 | "body": "\\si{$1}" 549 | }, 550 | "underline": { 551 | "prefix": "ul", 552 | "body": "\\underline{$1}" 553 | }, 554 | "frac without underline": { 555 | "prefix": "fro", 556 | "body": "\\genfrac{}{}{0pt}{}{$1}{$2}" 557 | }, 558 | "align row": { 559 | "prefix": "ar", 560 | "body": "$1 &\\rightarrow $2 \\\\\\\\" 561 | } 562 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/svelte.json: -------------------------------------------------------------------------------- 1 | { 2 | "script": { 3 | "prefix": "sc", 4 | "body": [ 5 | "", 8 | ], 9 | "description": "script tag with typescript" 10 | }, 11 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/typescript.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "prefix": "pr", 4 | "body": [ 5 | "const { $1 }: { $1 } = \\$props();", 6 | ], 7 | "description": "svelte props" 8 | } 9 | } -------------------------------------------------------------------------------- /matt/Library/Application Support/Code/User/snippets/typescriptreact.json: -------------------------------------------------------------------------------- 1 | { 2 | "Removed": { 3 | "prefix": "stj", 4 | "body": [ 5 | "" 10 | ], 11 | "description": "Styled JSX" 12 | } 13 | } --------------------------------------------------------------------------------