this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'main' of github.com:ian-h-chamberlain/dotfiles

+340 -266
+116 -129
.Brewfile
··· 3 3 # ============================================================================== 4 4 5 5 tap "homebrew/bundle" 6 + tap "homebrew/cask-drivers" 6 7 tap "homebrew/cask-fonts" 8 + tap "homebrew/cask-versions" 7 9 tap "homebrew/cask" 8 10 tap "homebrew/core" 9 - tap "homebrew/cask-drivers" 10 - tap "homebrew/cask-versions" 11 11 tap "homebrew/services" 12 12 tap "homebrew/test-bot" 13 13 ··· 16 16 # ============================================================================== 17 17 18 18 tap "ian-h-chamberlain/dotfiles" 19 - tap "jason0x43/neovim-nightly" 20 - tap "nektos/tap" 21 - tap "srkomodo/tap" 19 + tap "shihanng/gig" 22 20 23 21 # ============================================================================== 24 22 # Regular packages 25 23 # ============================================================================== 26 24 25 + # Run your GitHub Actions locally 🚀 26 + brew "act" 27 + 27 28 # Automatic configure script builder 28 29 brew "autoconf" 29 30 ··· 33 34 # Bourne-Again SHell, a UNIX command interpreter 34 35 brew "bash" 35 36 36 - # Programmable completion for Bash 4.1+ 37 + # Programmable completion for Bash 4.2+ 37 38 brew "bash-completion@2" 38 39 39 40 # Informative, fancy bash prompt for Git users ··· 45 46 # User-friendly launcher for Bazel 46 47 brew "bazelisk" 47 48 48 - # Generate compilation database for clang tooling 49 - brew "bear" 50 - 51 - # Bash and Zsh completion for Cargo 52 - brew "cargo-completion" 53 - 54 49 # Formatting tools for C, C++, Obj-C, Java, JavaScript, TypeScript 55 50 brew "clang-format" 56 51 ··· 69 64 # Get a file from an HTTP, HTTPS or FTP server 70 65 brew "curl" 71 66 67 + # Pack, ship and run any application as a lightweight container 68 + brew "docker" 69 + 70 + # Platform keystore credential helper for Docker 71 + brew "docker-credential-helper" 72 + 73 + # Simple, fast and user-friendly alternative to find 74 + brew "fd" 75 + 72 76 # User-friendly command-line shell for UNIX-like operating systems 73 77 brew "fish" 74 78 ··· 83 87 84 88 # Git extension for versioning large files 85 89 brew "git-lfs" 86 - 87 - # Core application library for C 88 - brew "glib" 89 90 90 91 # Open source programming language to build simple/reliable/efficient software 91 92 brew "go" 92 93 94 + # Fast linters runner for Go 95 + brew "golangci-lint" 96 + 93 97 # GNU Pretty Good Privacy (PGP) package 94 98 brew "gnupg" 95 99 96 100 # Graph visualization software from AT&T and Bell Labs 97 101 brew "graphviz" 98 - 99 - # Hex editor focussing on speed 100 - cask "hex-fiend" 101 102 102 103 # Improved top (interactive process viewer) 103 104 brew "htop" ··· 108 109 # Lightweight and flexible command-line JSON processor 109 110 brew "jq" 110 111 111 - # Package manager for the Lua programming language 112 - brew "luarocks" 113 - 114 112 # Curses-based tool for viewing and analyzing log files 115 113 brew "lnav" 116 - 117 - # Mac App Store command-line interface 118 - brew "mas" 119 114 120 115 # Simple tool to make locally trusted development certificates 121 116 brew "mkcert" 122 117 123 - # Run GitHub Actions locally 124 - brew "nektos/tap/act" 125 - 126 118 # Ambitious Vim-fork focused on extensibility and agility 127 - brew "neovim-nightly" 119 + brew "neovim" 128 120 129 121 # OpenBSD freely-licensed SSH connectivity tools 130 122 brew "openssh" 131 123 132 - # Cryptography and SSL/TLS Toolkit 133 - brew "openssl@1.1" 134 - 135 - # Perl compatible regular expressions library 136 - # NOTE: this is a dependency of lnav and may need to be upgraded to HEAD at some point 137 - brew "pcre" 138 - 139 - # Pinentry for GPG on Mac 140 - brew "pinentry-mac" 141 - 142 - # Tool for managing OCI containers and pods 143 - brew "podman" 144 - 145 124 # Python version management 146 125 brew "pyenv" 147 126 ··· 154 133 # Search tool like grep and The Silver Searcher 155 134 brew "ripgrep" 156 135 157 - # The Rust toolchain installer 136 + # Rust toolchain installer 158 137 brew "rustup-init" 159 138 160 139 # Static analysis and lint tool, for (ba)sh scripts 161 140 brew "shellcheck" 162 141 163 - # An automatic updater for ShadowFox 164 - brew "srkomodo/tap/shadowfox-updater" 142 + # gitignore file generator 143 + brew "shihanng/gig/gig" 165 144 166 145 # User interface to the TELNET protocol 167 146 brew "telnet" 168 147 169 - # Programatically correct mistyped console commands 148 + # Programmatically correct mistyped console commands 170 149 brew "thefuck" 171 150 172 151 # Terminal multiplexer ··· 178 157 # Vi 'workalike' with many additional features 179 158 brew "vim" 180 159 160 + # Executes a program periodically, showing output fullscreen 161 + brew "watch" 162 + 181 163 # Internet file retriever 182 164 brew "wget" 183 165 184 166 # Yet Another Dotfiles Manager 185 167 brew "yadm" 186 168 187 - # General-purpose lossless data-compression library 188 - brew "zlib" 169 + # ============================================================================== 170 + # macOS-specific packages (including casks and Mac App Store apps) 171 + # ============================================================================== 172 + if `uname -s` == "Darwin" 173 + # Mac App Store command-line interface 174 + brew "mas" 189 175 176 + # Container runtimes on MacOS (and Linux) with minimal setup 177 + brew "colima" 190 178 191 - # ============================================================================== 192 - # Packages that are work-specific or personal-only 193 - # ============================================================================== 179 + # Pinentry for GPG on Mac 180 + brew "pinentry-mac" 181 + 182 + # ============================================================================== 183 + # Packages that are work-specific or personal-only 184 + # ============================================================================== 194 185 195 - case `yadm config local.class`.strip 186 + case `yadm config local.class`.strip 196 187 197 - when "personal" 188 + when "personal" 198 189 # Nothing yet... 199 190 200 - when "work" 191 + when "work" 201 192 # Collection of portable C++ source libraries 202 193 brew "ian-h-chamberlain/dotfiles/boost@1.69", args: ["--cc=llvm_clang"] 203 194 ··· 254 245 255 246 # Rich and complete approach to parallelism in C++ 256 247 brew "tbb" 257 - end 248 + end 258 249 250 + # ============================================================================== 251 + # Casks 252 + # ============================================================================== 259 253 260 - # ============================================================================== 261 - # Casks 262 - # ============================================================================== 254 + case `yadm config local.class`.strip 263 255 264 - case `yadm config local.class`.strip 265 - 266 - when "personal" 256 + when "personal" 267 257 # Install in home dir instead of /Applications 268 258 cask_args appdir: "~/Applications" 269 259 ··· 282 272 283 273 # Video game digital distribution service 284 274 cask "steam" 285 - 286 - when "work" 275 + when "work" 287 276 # OpenVPN client 288 277 cask "pritunl" 289 278 ··· 292 281 293 282 # Team communication and collaboration software 294 283 cask "slite" 295 - end 284 + end 296 285 297 - # Application uninstaller 298 - cask "appcleaner" 286 + # Application uninstaller 287 + cask "appcleaner" 299 288 300 - # Compact TeX distribution as alternative to the full TeX Live / MacTeX 301 - cask "basictex" 289 + # Compact TeX distribution as alternative to the full TeX Live / MacTeX 290 + cask "basictex" 302 291 303 - # Fixes issues with macOS audio becoming unbalanced 304 - cask "balance-lock" 292 + # Prevents audio balance from drifting left or right 293 + cask "balance-lock" 305 294 306 - # Tool to customize input devices and automate computer systems 307 - cask "bettertouchtool" 295 + # Tool to customize input devices and automate computer systems 296 + cask "bettertouchtool" 308 297 309 - # Web browser 310 - cask "google-chrome" 298 + # Text editor 299 + cask "emacs" 311 300 312 - # App to build and share containerized applications and microservices 313 - cask "docker" 301 + # Web browser 302 + cask "firefox" 314 303 315 - # Text editor 316 - cask "emacs" 304 + # Screen color temperature controller 305 + cask "flux" 317 306 318 - # Web browser 319 - cask "firefox" 307 + # GIT client 308 + cask "fork" 320 309 321 - # Screen color temperature controller 322 - cask "flux" 310 + # Free and open-source image editor 311 + cask "gimp" 323 312 324 - # GIT client 325 - cask "fork" 313 + # Hex editor focussing on speed 314 + cask "hex-fiend" 326 315 327 - # Free and open-source image editor 328 - cask "gimp" 316 + # Preferred font for fixed-width text e.g. terminal + editors 317 + cask "ian-h-chamberlain/dotfiles/font-input" 329 318 330 - # Preferred font for fixed-width text e.g. terminal + editors 331 - cask "ian-h-chamberlain/dotfiles/font-input" 319 + # Vector graphics editor 320 + cask "inkscape" 332 321 333 - # Vector graphics editor 334 - cask "inkscape" 335 - 336 - # Cross-platform HTTP and GraphQL Client 337 - cask "insomnia" 322 + # HTTP and GraphQL Client 323 + cask "insomnia" 338 324 339 - # Terminal emulator as alternative to Apple's Terminal app 340 - cask "iterm2" 325 + # Terminal emulator as alternative to Apple's Terminal app 326 + cask "iterm2" 341 327 342 - # Password manager app 343 - cask "keepassxc" 328 + # Password manager app 329 + cask "keepassxc" 344 330 345 - # Support for Logitech G gear 346 - cask "logitech-g-hub" 331 + # Support for Logitech G gear 332 + cask "logitech-g-hub" 347 333 348 - # Cross-platform instant messaging application focusing on security 349 - cask "signal" 334 + # Full TeX Live distribution with GUI applications 335 + cask "mactex" 350 336 351 - # Music streaming service 352 - cask "spotify" 337 + # Cross-platform instant messaging application focusing on security 338 + cask "signal" 353 339 354 - # Real time file synchronization software 355 - cask "syncthing" 340 + # Music streaming service 341 + cask "spotify" 356 342 357 - # Finder extension for opening a terminal from the current directory 358 - cask "termhere" 343 + # Real time file synchronization software 344 + cask "syncthing" 359 345 360 - # GUI frontend editor for LaTeX 361 - cask "texworks" 346 + # Finder extension for opening a terminal from the current directory 347 + cask "termhere" 362 348 363 - # Open-source code editor 364 - cask "visual-studio-code" 349 + # Virtualizer for x86 hardware 350 + cask "virtualbox" 365 351 366 - # Multimedia player 367 - cask "vlc" 352 + # GUI frontend editor for LaTeX 353 + cask "texworks" 368 354 369 - # Network protocol analyzer 370 - cask "wireshark" 355 + # Open-source code editor 356 + cask "visual-studio-code" 371 357 372 - # Open-source version of the X.Org X Window System 373 - cask "xquartz" 358 + # Multimedia player 359 + cask "vlc" 374 360 361 + # Network protocol analyzer 362 + cask "wireshark" 375 363 376 - # ============================================================================== 377 - # Mac App Store apps 378 - # ============================================================================== 364 + # Open-source version of the X.Org X Window System 365 + cask "xquartz" 379 366 380 - # TODO add some more: 381 - # - AppCleaner 382 - # - DTerm? (custom cask?) 383 - # - Amphetamine Enhancer (maybe also custom cask?) 367 + # ============================================================================== 368 + # Mac App Store apps 369 + # ============================================================================== 384 370 385 - # Powerful keep-awake utility 386 - mas "Amphetamine", id: 937984704 371 + # Powerful keep-awake utility 372 + mas "Amphetamine", id: 937984704 387 373 388 - # Stand up and stretch regularly 389 - mas "StandUp", id: 1439378680 374 + # Stand up and stretch regularly 375 + mas "StandUp", id: 1439378680 390 376 391 - # Developer Tools 392 - mas "Xcode", id: 497799835 377 + # Developer Tools 378 + mas "Xcode", id: 497799835 379 + end
+10 -8
.config/fish/functions/fish_check_saved_functions.fish
··· 1 1 function fish_check_saved_functions --description 'check syntax of saved files' 2 - set -l exclude_functions \ 3 - fish_check_saved_functions \ 4 - fish_prompt \ 5 - fisher 2 + echo "Checking syntax and style of fish files..." 3 + 4 + set -l exclude_functions '(fish_check_saved_functions|fish_prompt|fisher)' 6 5 7 6 for fish_function in ~/.config/fish/functions/*.fish 8 7 set -l func_name (basename $fish_function .fish) 9 8 set -l rel_func_path '~/.config/fish/functions/'$func_name'.fish' 10 9 11 - if contains $func_name $exclude_functions 10 + if string match --quiet --regex $exclude_functions $func_name 12 11 continue 13 12 end 14 13 ··· 18 17 end 19 18 20 19 set -l retcode 0 20 + set -l check_files 21 21 22 22 for fish_file in ~/.config/fish/**/*.fish 23 - if contains $fish_file $exclude_functions 23 + if string match --quiet --regex $exclude_functions $fish_file 24 24 continue 25 25 end 26 + 27 + set -a check_files $fish_file 26 28 27 29 if ! fish --no-execute $fish_file 28 30 set -l retcode (math 1 + $retcode) 29 31 end 30 32 end 31 33 32 - fish_indent --check ~/.config/fish/**/*.fish 34 + fish_indent --check $check_files 33 35 set -l failed_files $status 34 36 if test $failed_files -ne 0 35 37 set retcode (math $retcode + $failed_files) 36 - fish_indent --write ~/.config/fish/**/*.fish 38 + fish_indent --write $check_files 37 39 end 38 40 39 41 return $retcode
+8
.config/fish/functions/info.fish
··· 1 + function info 2 + if test -f (command info --where $argv[1]) 3 + # Info file really exists, open it with vim :Info 4 + vim -R -M -c "Info $argv[1] $argv[2]" +only -c 'buffer 1 | bdelete' 5 + else 6 + man $argv 7 + end 8 + end
+3
.config/fish/functions/york.fish
··· 1 + function york 2 + yadm enter open -n -a Fork ~ 3 + end
+9
.config/vscode/custom.css
··· 1 + .monaco-workbench .part>.content code, 2 + .monaco-workbench .part>.content .tiw-metadata-value, 3 + .monaco-workbench .part>.content .monaco-tokenized-source, 4 + .comment-body pre *, 5 + .comment-body code *, 6 + .comment-body .diff * { 7 + font-size: 11px !important; 8 + font-family: 'Input Mono' !important; 9 + }
+60 -53
.config/vscode/extensions.txt
··· 2 2 a5huynh.vscode-ron@0.9.0 3 3 ahmadalli.vscode-nginx-conf@0.1.3 4 4 Alpha4.jsonl@0.0.1 5 - asvetliakov.vscode-neovim@0.0.89 5 + asvetliakov.vscode-neovim@0.0.95 6 6 atlassian.atlascode@2.10.12 7 7 attilabuti.brainfuck-syntax@0.0.1 8 - BazelBuild.vscode-bazel@0.5.0 8 + BazelBuild.vscode-bazel@0.7.0 9 9 be5invis.toml@0.6.0 10 - bierner.markdown-checkbox@0.3.2 11 - bierner.markdown-mermaid@1.14.3 12 - bmalehorn.vscode-fish@1.0.29 13 - bpruitt-goddard.mermaid-markdown-syntax-highlighting@1.3.2 10 + be5invis.vscode-custom-css@7.1.0 11 + bierner.markdown-checkbox@0.4.0 12 + bierner.markdown-mermaid@1.17.3 13 + bmalehorn.vscode-fish@1.0.31 14 + bpruitt-goddard.mermaid-markdown-syntax-highlighting@1.5.0 14 15 bungcip.better-toml@0.3.2 15 - codeout.vscode-junos@0.2.5 16 + codeout.vscode-junos@0.2.6 16 17 codezombiech.gitignore@0.9.0 17 18 corewa-rs.redcode@0.2.0 19 + d-biehl.robotcode@0.18.0 18 20 dan-c-underwood.arm@1.7.4 19 - DavidAnson.vscode-markdownlint@0.47.0 21 + DavidAnson.vscode-markdownlint@0.48.1 20 22 dfarley1.file-picker@0.2.0 21 - dnicolson.binary-plist@0.9.1 23 + dnicolson.binary-plist@0.11.0 22 24 DotJoshJohnson.xml@2.5.1 23 25 dunstontc.viml@0.1.7 24 - eamodio.gitlens@12.1.2 26 + eamodio.gitlens@13.2.0 25 27 emeraldwalk.RunOnSave@0.2.0 26 28 geddski.macros@1.2.1 27 - GitHub.vscode-pull-request-github@0.48.0 28 - golang.go@0.35.1 29 - Gruntfuggly.todo-tree@0.0.215 30 - haskell.haskell@2.2.0 29 + GitHub.vscode-pull-request-github@0.56.0 30 + golang.go@0.37.0 31 + Gruntfuggly.todo-tree@0.0.220 32 + haskell.haskell@2.2.2 31 33 ian-h-chamberlain.pica200@0.1.0 34 + ian-h-chamberlain.rpm-spec@0.3.3 32 35 IBM.output-colorizer@0.1.2 33 36 iliazeus.vscode-ansi@1.1.2 34 - iocave.customize-ui@0.1.63 35 - iocave.monkey-patch@0.1.19 36 37 janjoerke.jenkins-pipeline-linter-connector@1.2.0 37 38 jasonnutter.vscode-codeowners@1.1.1 38 - jbenden.c-cpp-flylint@1.11.0 39 - jeff-hykin.better-cpp-syntax@1.15.19 39 + jbenden.c-cpp-flylint@1.12.1 40 + jeff-hykin.better-cpp-syntax@1.17.2 40 41 jinliming2.vscode-go-template@0.2.1 41 - josetr.cmake-language-support-vscode@0.0.4 42 + josetr.cmake-language-support-vscode@0.0.9 42 43 joshuapoehls.json-escaper@1.1.2 43 44 justusadam.language-haskell@3.6.0 44 45 korekontrol.saltstack@0.0.9 45 46 kumar-harsh.graphql-for-vscode@1.15.3 46 47 LaurentTreguier.rpm-spec@0.3.2 47 - llvm-vs-code-extensions.vscode-clangd@0.1.21 48 - mariusschulz.yarn-lock-syntax@0.1.3 48 + llvm-vs-code-extensions.vscode-clangd@0.1.23 49 + mariusschulz.yarn-lock-syntax@0.2.0 49 50 marko2276.yang@0.1.3 50 51 mattn.Lisp@0.1.12 51 - mechatroner.rainbow-csv@2.4.0 52 - ms-azuretools.vscode-docker@1.22.1 53 - ms-python.python@2022.12.0 54 - ms-python.vscode-pylance@2022.8.10 55 - ms-toolsai.jupyter@2022.7.1002181843 52 + mechatroner.rainbow-csv@3.5.0 53 + ms-azuretools.vscode-docker@1.23.3 54 + ms-dotnettools.vscode-dotnet-runtime@1.6.0 55 + ms-python.python@2022.20.1 56 + ms-python.vscode-pylance@2023.1.10 57 + ms-toolsai.jupyter@2022.11.1003412109 56 58 ms-toolsai.jupyter-keymap@1.0.0 57 - ms-toolsai.jupyter-renderers@1.0.9 58 - ms-vscode-remote.remote-containers@0.241.3 59 - ms-vscode-remote.remote-ssh@0.84.0 60 - ms-vscode-remote.remote-ssh-edit@0.80.0 61 - ms-vscode.cmake-tools@1.11.26 62 - ms-vscode.cpptools@1.11.4 63 - ms-vscode.hexeditor@1.9.8 64 - ms-vscode.live-server@0.2.13 59 + ms-toolsai.jupyter-renderers@1.0.12 60 + ms-toolsai.vscode-jupyter-cell-tags@0.1.6 61 + ms-toolsai.vscode-jupyter-slideshow@0.1.5 62 + ms-vscode-remote.remote-containers@0.266.1 63 + ms-vscode-remote.remote-ssh@0.94.0 64 + ms-vscode-remote.remote-ssh-edit@0.84.0 65 + ms-vscode.azure-account@0.11.2 66 + ms-vscode.cmake-tools@1.12.27 67 + ms-vscode.cpptools@1.13.9 68 + ms-vscode.hexeditor@1.9.9 69 + ms-vscode.live-server@0.4.4 70 + ms-vscode.remote-explorer@0.0.3 65 71 ms-vscode.vscode-typescript-tslint-plugin@1.3.4 66 - ms-vsliveshare.vsliveshare@1.0.5679 72 + ms-vsliveshare.vsliveshare@1.0.5797 67 73 neilding.language-liquid@0.1.1 68 - NicolasVuillamy.vscode-groovy-lint@1.9.0 69 - PolyMeilex.wgsl@0.1.12 74 + NicolasVuillamy.vscode-groovy-lint@2.0.0 75 + PolyMeilex.wgsl@0.1.14 70 76 raynigon.nginx-formatter@0.0.13 71 77 rebornix.ruby@0.28.1 72 78 redhat.vscode-commons@0.0.6 73 - redhat.vscode-xml@0.21.0 74 - redhat.vscode-yaml@1.9.1 79 + redhat.vscode-xml@0.23.0 80 + redhat.vscode-yaml@1.10.1 81 + ria.elastic@0.13.3 75 82 richie5um2.vscode-sort-json@1.20.0 76 - rioj7.command-variable@1.40.0 77 - ritwickdey.LiveServer@5.7.5 78 - robocorp.robotframework-lsp@0.49.0 83 + rioj7.command-variable@1.45.0 84 + ritwickdey.LiveServer@5.7.9 85 + robocorp.robotframework-lsp@1.6.0 79 86 RReverser.llvm@0.1.1 80 - rust-lang.rust-analyzer@0.3.1148 81 - ryanluker.vscode-coverage-gutters@2.10.1 82 - samuelcolvin.jinjahtml@0.17.0 87 + rust-lang.rust-analyzer@0.3.1348 88 + ryanluker.vscode-coverage-gutters@2.10.2 89 + samuelcolvin.jinjahtml@0.19.0 83 90 sleistner.vscode-fileutils@3.5.0 84 91 slevesque.shader@1.1.5 85 92 stevensona.shader-toy@0.10.15 86 - streetsidesoftware.code-spell-checker@2.3.4 87 - tamasfe.even-better-toml@0.16.5 88 - timonwong.shellcheck@0.19.6 89 - TomiTurtiainen.rf-intellisense@2.8.0 93 + streetsidesoftware.code-spell-checker@2.12.0 94 + tamasfe.even-better-toml@0.19.0 95 + timonwong.shellcheck@0.29.3 90 96 twxs.cmake@0.0.17 91 97 Tyriar.sort-lines@1.9.1 92 - vadimcn.vscode-lldb@1.7.3 98 + vadimcn.vscode-lldb@1.8.1 93 99 Veracosta.mib@0.0.4 94 100 vsciot-vscode.vscode-arduino@0.4.12 95 101 vscode-org-mode.org-mode@1.0.0 102 + vstirbu.vscode-mermaid-preview@1.6.3 96 103 warpnet.salt-lint@0.1.0 97 104 warpnet.saltstack-extension-pack@0.0.2 98 - webfreak.debug@0.26.0 105 + webfreak.debug@0.26.1 99 106 wholroyd.jinja@0.0.8 100 107 wingrunr21.vscode-ruby@0.28.0 101 108 xaver.clang-format@1.9.0 102 - xoronic.pestfile@0.2.0 103 - yy0931.gitconfig-lsp@0.7.1 109 + xoronic.pestfile@0.3.0 110 + yy0931.gitconfig-lsp@0.9.2 104 111 zhouronghui.propertylist@0.0.2 105 112 ZixuanWang.linkerscript@1.0.2 106 113 zxh404.vscode-proto3@0.5.5
.config/yadm/alt/.ssh/known_hosts##class.personal

This is a binary file and will not be displayed.

+24 -20
.config/yadm/bootstrap
··· 4 4 set -o nounset 5 5 set -o pipefail 6 6 7 + trap 'exit -2' INT 8 + 7 9 # shellcheck source=utils.sh 8 10 source ~/.config/yadm/utils.sh 9 11 ··· 11 13 12 14 # A "full" bootstrap means to run everything. Otherwise just update vscode extension 13 15 # (and maybe fish completions) 14 - YADM_BOOTSTRAP_FULL=0 16 + : "${YADM_BOOTSTRAP_FULL:=0}" 15 17 16 18 function setup_macos() { 17 - # Install homebrew and use it to install basic packages/apps 18 - if ! command -v brew &>/dev/null && \ 19 - confirm "'brew' command not found. Install it? " 20 - then 21 - eval "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 22 - echo 23 - fi 24 - 25 19 # Specify iTerm2 preferences directory 26 20 #shellcheck disable=SC2088 27 21 defaults write com.googlecode.iterm2.plist PrefsCustomFolder -string '~/.config/iterm2/' 28 22 defaults write com.googlecode.iterm2.plist LoadPrefsFromCustomFolder -bool true 29 23 30 - # TODO: should there be a step to `brew bundle cleanup` here? 31 - if ! brew bundle --global check && \ 32 - confirm "Install packages from Brewfile? " 33 - then 34 - brew bundle --global install 35 - echo 36 - fi 37 - 38 - echo "macOS setup is complete!" 24 + echo "macOS-specific setup is complete!" 39 25 } 40 26 41 27 function setup_linux() { 42 28 # TBD. Might need separate function each for NixOS / Termux 43 - # To consider: brew on linux? Gets a bunch of stuff for free I guess... 44 - : 29 + echo "Linux-specific setup is complete!" 45 30 } 46 31 47 32 function main() { ··· 63 48 setup_linux 64 49 fi 65 50 51 + # Install homebrew and use it to install basic packages/apps 52 + if ! command -v brew &>/dev/null && \ 53 + confirm "'brew' command not found. Install it? " 54 + then 55 + eval "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" 56 + echo 57 + fi 58 + 59 + if ! brew bundle --global check && \ 60 + confirm "Install packages from Brewfile? " 61 + then 62 + brew bundle --global install 63 + echo 64 + fi 65 + 66 66 if confirm "Update fish auto-generated completions?"; then 67 67 fish -c 'fish_update_completions' 68 + fi 69 + 70 + if confirm "Install fisher plugins?"; then 71 + fish -c 'set -gx fisher_path ~/.config/fish/fisher_install && fisher update' 68 72 fi 69 73 70 74 # Load GPG configuration for timeouts
+25 -5
.config/yadm/hooks/pre_commit
··· 3 3 set -o errexit 4 4 set -o nounset 5 5 6 + trap 'exit -2' INT 7 + 6 8 # Start from the base yadm directory 7 9 cd "$(dirname "${BASH_SOURCE[0]}")" 8 10 cd .. ··· 20 22 exit 0 21 23 fi 22 24 25 + # Sort of hacky, but handle `yadm commit -a` to check all modified files 26 + cached_arg="" 27 + if ! [[ "$YADM_HOOK_FULL_COMMAND" =~ ( )-a($| ) ]]; then 28 + cached_arg="--cached" 29 + fi 30 + CHANGED_FILES=$(yadm diff $cached_arg --name-only --diff-filter=ACM) 31 + 23 32 if command -v shellcheck >/dev/null; then 24 33 SHELLCHECK_SOURCES=( 25 34 bootstrap ··· 32 41 fi 33 42 fi 34 43 35 - if git rev-parse -q --verify MERGE_HEAD command -v code >/dev/null; then 44 + if ! git rev-parse -q --verify MERGE_HEAD && command -v code >/dev/null; then 36 45 if ! check_vscode_exts &>/dev/null; then 37 46 # Update vscode extension list to be current with installed extensions 38 47 list_vscode_exts >"$VSCODE_EXTENSIONS" ··· 40 49 fi 41 50 fi 42 51 52 + if grep --quiet .Brewfile <(echo "$CHANGED_FILES"); then 53 + echo "Checking that all packages in Brewfile are installed..." 54 + # A little faster if we don't have to wait for auto-update 55 + export HOMEBREW_NO_AUTO_UPDATE=1 56 + if ! brew bundle check --global --no-upgrade --verbose ; then 57 + warn "$HOME/.Brewfile is out of date or incorrect" 58 + fi 59 + fi 60 + 43 61 # Check for unstaged changes (typically new functions/completions or config files) 44 62 CHECK_UNTRACKED_DIRS=( 45 63 ~/.config/fish/ ··· 52 70 exit_with_error "Untracked files found in repository:" "$untracked_files" 53 71 fi 54 72 55 - fish -c fish_check_saved_functions 56 - failed_files=$? 57 - if [[ $failed_files -ne 0 ]] ; then 58 - exit_with_error "$failed_files files failed fish lint/format checks!" 73 + if grep -q fish <(echo "$CHANGED_FILES"); then 74 + fish -c fish_check_saved_functions 75 + failed_files=$? 76 + if [[ $failed_files -ne 0 ]] ; then 77 + exit_with_error "$failed_files files failed fish lint/format checks!" 78 + fi 59 79 fi 60 80 61 81 # TODO: convert other scripts to fish instead of bash (except bootstrap)
+4 -1
.gdbinit
··· 1 1 add-auto-load-safe-path ~ 2 - set startup-with-shell off 2 + # set startup-with-shell off 3 3 4 4 # source ~/.config/gdb/init.py 5 5 set index-cache on 6 6 7 7 set substitute-path /home/fincs/git/pacman-packages/libctru/src/libctru-2.1.1/ /Users/ianchamberlain/Documents/Development/3ds/libctru/ 8 + 9 + set history save 10 + set history filename ~/.gdb_history
+2
.gitconfig
··· 68 68 defaultBranch = main 69 69 [fetch] 70 70 recurseSubmodules = no 71 + [protocol "file"] 72 + allow = always
+3
.gitmodules
··· 13 13 [submodule ".vim/pack/bundle/start/arm-syntax-vim"] 14 14 path = .vim/pack/bundle/start/arm-syntax-vim 15 15 url = https://github.com/ARM9/arm-syntax-vim.git 16 + [submodule ".vim/pack/bundle/start/info.vim"] 17 + path = .vim/pack/bundle/start/info.vim 18 + url = https://gitlab.com/HiPhish/info.vim
.ssh/config

This is a binary file and will not be displayed.

+16
.vimrc
··· 47 47 noremap gU <Nop> 48 48 noremap gUU <Nop> 49 49 50 + " Use newer info than the macOS builtin 51 + let g:infoprg = '/usr/local/opt/texinfo/bin/info' 52 + 53 + " Keybinds for info files 54 + augroup InfoFile 55 + autocmd! 56 + autocmd FileType info nmap <buffer> gu <Plug>(InfoUp) 57 + autocmd FileType info nmap <buffer> gn <Plug>(InfoNext) 58 + autocmd FileType info nmap <buffer> gp <Plug>(InfoPrev) 59 + 60 + autocmd FileType info nmap <buffer> gm <Plug>(InfoMenu) 61 + autocmd FileType info nmap <buffer> gf <Plug>(InfoFollow) 62 + autocmd FileType info nmap <buffer> go <Plug>(InfoGoto) 63 + 64 + autocmd FileType info let g:airline#extensions#tabline#tabs_label = "hoo boy" 65 + augroup END 50 66 51 67 " Augroups, must be before `syntax on` 52 68 augroup CustomTodo
+39 -46
Library/Application Support/Code/User/settings.json
··· 105 105 106 106 "atlascode.bitbucket.enabled": false, 107 107 "atlascode.helpExplorerEnabled": false, 108 + "atlascode.jira.explorer.monitorEnabled": false, 109 + "atlascode.jira.explorer.refreshInterval": 60, 108 110 "atlascode.jira.hover.enabled": true, 109 - "atlascode.jira.explorer.refreshInterval": 60, 111 + "atlascode.jira.startWorkBranchTemplate.customPrefixes": [], 112 + "atlascode.jira.startWorkBranchTemplate.customTemplate": "ian/{{{issueKey}}}-{{{summary}}}", 110 113 "atlascode.jira.statusbar.enabled": false, 114 + "atlascode.jira.todoIssues.enabled": true, 111 115 "atlascode.jira.todoIssues.triggers": [ 112 - "TODO", 113 - "BUG", 114 - "FIXME", 115 - "ISSUE", 116 - "HACK", 117 - "XXX", 116 + "TODO:", 117 + "BUG:", 118 + "FIXME:", 119 + "HACK:", 120 + "XXX:" 118 121 ], 119 - "atlascode.jira.todoIssues.enabled": true, 120 122 "atlascode.outputLevel": "debug", 121 123 122 124 "bazel.buildifierFixOnFormat": true, ··· 150 152 "--background-index" 151 153 ], 152 154 "clangd.checkUpdates": true, 153 - "clangd.path": "/Users/ichamberlain/Library/Application Support/Code/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/15.0.3/clangd_15.0.3/bin/clangd", 155 + "clangd.path": "/Users/ianchamberlain/Library/Application Support/Code/User/globalStorage/llvm-vs-code-extensions.vscode-clangd/install/15.0.3/clangd_15.0.3/bin/clangd", 154 156 "clangd.onConfigChanged": "restart", 155 157 156 158 "cmake.cmakePath": "/usr/local/bin/cmake", ··· 232 234 "cSpell.useGitignore": true, 233 235 "cSpell.diagnosticLevel": "Hint", 234 236 235 - "customizeUI.font.monospace": "Input Mono", 236 - "customizeUI.fontSizeMap": { 237 - "monospace": "11px", 238 - }, 239 - "customizeUI.stylesheet": { 240 - ".monaco-workbench .part>.content code": { 241 - "font-size": "11px !important", 242 - }, 243 - ".monaco-workbench .part>.content .tiw-metadata-value": { 244 - "font-size": "11px !important", 245 - }, 246 - ".monaco-workbench .part>.content .monaco-tokenized-source": { 247 - "font-size": "11px !important", 248 - }, 249 - ".comment-body pre *": { 250 - "font-size": "11px !important", 251 - "font-family": "'Input Mono' !important", 252 - }, 253 - ".comment-body code *": { 254 - "font-size": "11px !important", 255 - "font-family": "'Input Mono' !important", 256 - }, 257 - ".comment-body .diff *": { 258 - "font-size": "11px !important", 259 - "font-family": "'Input Mono' !important", 260 - }, 261 - }, 262 - 263 237 "debug.console.acceptSuggestionOnEnter": "off", 264 238 "debug.console.fontSize": 11, 265 239 "debug.console.historySuggestions": false, ··· 289 263 "editor.semanticTokenColorCustomizations": { 290 264 "[Monokai]": { 291 265 "rules": { 266 + "variable.readonly.fileScope:cpp": "#AE81FF", 267 + "variable.readonly.fileScope:c": "#AE81FF", 268 + 292 269 "variable:dockerfile": "#FD971F", 293 270 "parameter:dockerfile": { 294 271 "fontStyle": "", ··· 302 279 "property.declaration:python": "#A6E22E", 303 280 304 281 // Normal rust customizations 282 + "attribute.defaultLibrary:rust": "#66D9EF", 305 283 "builtinAttribute:rust": "#66D9EF", 306 - "attribute.defaultLibrary:rust": "#66D9EF", 284 + "comment.documentation:rust": { 285 + "bold": true, 286 + }, 307 287 "derive.defaultLibrary:rust": "#A6E22E", 308 288 "selfKeyword:rust": "#FD971F", 309 289 "variable.constant:rust": "#AE81FF", ··· 453 433 "version": "0.0.82" 454 434 }, 455 435 }, 456 - 436 + "extensions.experimental.affinity": { 437 + "asvetliakov.vscode-neovim": "1" 438 + }, 457 439 "files.associations": { 458 440 "**/.cargo/config": "toml", 459 441 "**/.ssh/*config*": "ssh_config", ··· 509 491 "*.meta": "json", 510 492 "*.vdo": "shellscript", 511 493 "*.mir": "rust", 512 - "*.sh.j2": "jinja-shell" 494 + "*.sh.j2": "jinja-shell", 495 + "*.trycmd": "markdown" 513 496 }, 514 497 "files.exclude": { 515 498 "**/.cache/**": true, ··· 562 545 "query": "state:open repo:${owner}/${repository} sort:created-desc" 563 546 } 564 547 ], 548 + "githubPullRequests.assignCreated": "${user}", 565 549 "githubPullRequests.commentExpandState": "expandUnresolved", 566 550 "githubPullRequests.createOnPublishBranch": "never", 567 551 "githubPullRequests.fileListLayout": "tree", 568 - "githubPullRequests.assignCreated": "${user}", 552 + "githubPullRequests.notifications": "pullRequests", 569 553 "githubPullRequests.pullBranch": "never", 570 554 "githubPullRequests.queries": [ 571 555 { 572 556 "label": "Waiting For My Review", 573 - "query": "is:open review-requested:${user}" 557 + "query": "is:open review-requested:${user}", 574 558 }, 575 559 { 576 560 "label": "Reviewed By Me", ··· 824 808 } 825 809 }, 826 810 "rust-analyzer.debug.openDebugPane": true, 811 + "rust-analyzer.diagnostics.useRustcErrorCode": true, 827 812 "rust-analyzer.diagnostics.warningsAsHint": [ 828 813 "clippy::missing_panics_doc", 829 - "clippy::missing_errors_doc" 814 + "clippy::missing_errors_doc", 815 + "clippy::must_use_candidate", 830 816 ], 831 817 "rust-analyzer.diagnostics.warningsAsInfo": [ 832 - "clippy::pedantic" 818 + "clippy::pedantic", 833 819 ], 834 820 "rust-analyzer.imports.granularity.enforce": true, 835 821 "rust-analyzer.imports.granularity.group": "module", ··· 875 861 876 862 "shellcheck.executablePath": "/usr/local/bin/shellcheck", 877 863 "shellcheck.run": "onSave", 878 - "shellcheck.useWorkspaceRootAsCwd": true, 879 - "shellcheck.customArgs": ["--external-sources"], 864 + "shellcheck.customArgs": [ 865 + "--external-sources", 866 + "--source-path=SCRIPTDIR", 867 + ], 880 868 "shellcheck.enableQuickFix": true, 881 869 "shellcheck.ignorePatterns": { 882 870 "**/*.zsh": true, ··· 1027 1015 "todo-tree.tree.buttons.scanMode": true, 1028 1016 1029 1017 "typescript.check.npmIsInstalled": false, 1018 + 1019 + "vscode_custom_css.imports": [ 1020 + "file:///Users/ichamberlain/.config/vscode/custom.css", 1021 + "file:///Users/ianchamberlain/.config/vscode/custom.css", 1022 + ], 1030 1023 1031 1024 // Mouse selection seems to cause more problems than it's worth... 1032 1025 // TODO maybe worth reconsidering
Library/Application Support/lghub/settings.db

This is a binary file and will not be displayed.

+21 -4
Library/Services/Open in Visual Studio Code.workflow/Contents/document.wflow
··· 25 25 </array> 26 26 </dict> 27 27 <key>AMActionVersion</key> 28 - <string>1.1.1</string> 28 + <string>v.1.1.1</string> 29 29 <key>AMApplication</key> 30 30 <array> 31 31 <string>Finder</string> ··· 36 36 <dict> 37 37 <key>isPathPopUp</key> 38 38 <true/> 39 + <key>selectedVariableUUID</key> 40 + <string>46E00644-977A-4F82-80A6-C52E6A4EFCDB</string> 39 41 <key>variableUUIDsInMenu</key> 40 - <array/> 42 + <array> 43 + <string>46E00644-977A-4F82-80A6-C52E6A4EFCDB</string> 44 + </array> 41 45 </dict> 42 46 </dict> 43 47 <key>AMProvides</key> ··· 56 60 <key>ActionParameters</key> 57 61 <dict> 58 62 <key>appPath</key> 59 - <string>/Applications/Visual Studio Code.app</string> 63 + <string></string> 60 64 </dict> 61 65 <key>BundleIdentifier</key> 62 66 <string>com.apple.Automator.OpenFinderItems</string> ··· 107 111 <key>isViewVisible</key> 108 112 <integer>1</integer> 109 113 <key>location</key> 110 - <string>309.000000:280.000000</string> 114 + <string>608.500000:224.000000</string> 111 115 <key>nibPath</key> 112 116 <string>/System/Library/Automator/Open Finder Items.action/Contents/Resources/Base.lproj/main.nib</string> 113 117 </dict> ··· 117 121 </array> 118 122 <key>connectors</key> 119 123 <dict/> 124 + <key>variables</key> 125 + <array> 126 + <dict> 127 + <key>UUID</key> 128 + <string>46E00644-977A-4F82-80A6-C52E6A4EFCDB</string> 129 + <key>identifier</key> 130 + <string>com.apple.Automator.Variable.Path</string> 131 + <key>name</key> 132 + <string>VSCode</string> 133 + <key>value</key> 134 + <string>~/Applications/Visual Studio Code.app</string> 135 + </dict> 136 + </array> 120 137 <key>workflowMetaData</key> 121 138 <dict> 122 139 <key>applicationBundleID</key>