├── .cargo └── .crates.toml ├── .chunkwmrc ├── .config ├── alacritty │ ├── alacritty.toml │ └── alacritty.yml └── nvim │ ├── autoload │ └── validate.vim │ ├── coc-settings.json │ ├── coc.vim │ ├── debug.vim │ ├── editing.vim │ ├── format.vim │ ├── frame.vim │ ├── fzf.vim │ ├── init.vim │ ├── latex.vim │ ├── lua │ └── init.lua │ ├── mappings.vim │ ├── pl.vim │ ├── plug.vim │ ├── visual.vim │ ├── window.vim │ └── ycm.vim ├── .gitignore ├── .gitignore_global ├── .gitmodules ├── .p10k.zsh ├── .purepower ├── .racketrc ├── .rustup └── settings.toml ├── .scripts └── cc-config ├── .skhdrc ├── .tmux.conf ├── .vimrc ├── .yabairc ├── .zsh_etc ├── bison.zsh ├── codes.zsh ├── fzf.zsh ├── go.zsh ├── gpg.zsh ├── haskell.zsh ├── hmcd.zsh ├── llvm.zsh ├── nvim.zsh ├── nvm.zsh ├── openssl.zsh ├── plugins.zsh ├── projects.zsh ├── python.zsh ├── ruby.zsh ├── rust.zsh ├── school.zsh ├── scripts.zsh ├── secrets.zsh ├── status_msg.zsh ├── theme.zsh └── yarn.zsh ├── .zshrc ├── Brewfile ├── Brewfile.lock.json └── README.md /.cargo/.crates.toml: -------------------------------------------------------------------------------- 1 | v1 = { "Xorfilter 0.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = ["Xorfilter"], "asm-lsp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["asm-lsp"], "cargo-audit 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-audit"], "cargo-bump 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-bump"], "cargo-deadlinks 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-deadlinks"], "cargo-edit 0.3.0-alpha.1 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-add", "cargo-rm", "cargo-upgrade"], "cargo-expand 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-expand"], "cargo-fuzz 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-fuzz"], "cargo-kcov 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-kcov"], "cargo-make 0.32.7 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-make", "makers"], "cargo-raze 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-raze"], "cargo-travis 0.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-coverage", "cargo-coveralls"], "cargo-watch 7.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-watch"], "clippy 0.0.212 (git+https://github.com/rust-lang/rust-clippy/#a9f8d3a034b30d0a2bedfe99c107aeeefbf8e176)" = ["cargo-clippy", "clippy-driver"], "evcxr_repl 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = ["evcxr"], "exa 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["exa"], "fd-find 8.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["fd"], "frum 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = ["frum"], "git-absorb 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["git-absorb"], "guessing_game 0.1.0 (path+file:///Users/hafiz/Desktop/Rust/guessing_game)" = ["guessing_game"], "hyperfine 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["hyperfine"], "mirai 1.0.5 (git+https://github.com/facebookexperimental/MIRAI#6bc8e908c15490c2fc8d50a8410ecbc3b1d4f18a)" = ["mirai"], "racer 2.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = ["racer"], "rectangles 0.1.0 (path+file:///Users/hafiz/Desktop/Rust/rectangles)" = ["rectangles"], "rust-code-analysis-cli 0.0.23 (registry+https://github.com/rust-lang/crates.io-index)" = ["rust-code-analysis-cli"], "rustfmt 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = ["cargo-fmt", "rustfmt"], "viu 0.1.1 (path+file:///Users/hafiz/Git/viu)" = ["viu"] } 2 | -------------------------------------------------------------------------------- /.chunkwmrc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # NOTE: any 'chunkc' command that is run from this config file 5 | # that is NOT 'chunkc core::<..>' or 'chunkc set ..' 6 | # MUST be put in the background using & 7 | # 8 | # e.g: 9 | # chunkc tiling::rule --owner Finder --name Copy --state float & 10 | # 11 | 12 | # 13 | # NOTE: specify the absolutepath of the file to use for logging. 14 | # 'stdout' or 'stderr' can be used instead of an actual filepath. 15 | # 16 | 17 | chunkc core::log_file stdout 18 | 19 | # 20 | # NOTE: specify the desired level of logging. 21 | # 22 | # - none, debug, profile, warn, error 23 | # 24 | 25 | chunkc core::log_level warn 26 | 27 | # 28 | # NOTE: specify the absolutepath to the directory to use when loading a plugin. 29 | # 30 | 31 | chunkc core::plugin_dir /usr/local/opt/chunkwm/share/chunkwm/plugins 32 | 33 | # 34 | # NOTE: if enabled, chunkwm will monitor the specified plugin_dir 35 | # and automatically reload any '.so' file that is changed. 36 | # 37 | 38 | chunkc core::hotload 0 39 | 40 | # 41 | # NOTE: the following are config variables for the chunkwm-tiling plugin. 42 | # 43 | 44 | chunkc set custom_bar_enabled 0 45 | chunkc set custom_bar_all_monitors 0 46 | chunkc set custom_bar_offset_top 0 47 | chunkc set custom_bar_offset_bottom 0 48 | chunkc set custom_bar_offset_left 0 49 | chunkc set custom_bar_offset_right 0 50 | 51 | chunkc set global_desktop_mode bsp 52 | chunkc set global_desktop_offset_top 80 53 | chunkc set global_desktop_offset_bottom 80 54 | chunkc set global_desktop_offset_left 100 55 | chunkc set global_desktop_offset_right 100 56 | chunkc set global_desktop_offset_gap 25 57 | 58 | # 59 | # NOTE: syntax for desktop-specific settings 60 | # 61 | # chunkc set 2_desktop_mode monocle 62 | # chunkc set 5_desktop_mode float 63 | # chunkc set 3_desktop_offset_top 190 64 | # chunkc set 3_desktop_offset_bottom 190 65 | # chunkc set 3_desktop_offset_left 190 66 | # chunkc set 3_desktop_offset_right 190 67 | # chunkc set 3_desktop_offset_gap 30 68 | # 69 | 70 | chunkc set desktop_padding_step_size 10.0 71 | chunkc set desktop_gap_step_size 5.0 72 | 73 | chunkc set bsp_spawn_left 1 74 | chunkc set bsp_optimal_ratio 1.618 75 | chunkc set bsp_split_mode optimal 76 | chunkc set bsp_split_ratio 0.5 77 | 78 | chunkc set monitor_focus_cycle 1 79 | chunkc set window_focus_cycle monitor 80 | 81 | chunkc set mouse_follows_focus intrinsic 82 | chunkc set window_float_next 0 83 | chunkc set window_region_locked 1 84 | 85 | chunkc set mouse_move_window \"fn 1\" 86 | chunkc set mouse_resize_window \"fn 2\" 87 | chunkc set mouse_motion_interval 35 88 | 89 | chunkc set preselect_border_color 0xffd75f5f 90 | chunkc set preselect_border_width 1 91 | chunkc set preselect_border_radius 0 92 | chunkc set preselect_border_outline 0 93 | 94 | # 95 | # NOTE: these settings require chwm-sa. 96 | # (https://github.com/koekeishiya/chwm-sa) 97 | # 98 | 99 | chunkc set window_float_topmost 0 100 | chunkc set window_fade_inactive 0 101 | chunkc set window_fade_alpha 0.85 102 | chunkc set window_fade_duration 0.25 103 | chunkc set window_use_cgs_move 0 104 | 105 | # 106 | # NOTE: the following are config variables for the chunkwm-border plugin. 107 | # 108 | # NOTE: syntax for `focused_border_outline` setting 109 | # 0 = false, inline border 110 | # 1 = true, outline border 111 | # 112 | 113 | chunkc set focused_border_color 0xff989bc5 114 | chunkc set focused_border_width 8 115 | chunkc set focused_border_radius 10 116 | chunkc set focused_border_outline 4 117 | chunkc set focused_border_skip_floating 0 118 | chunkc set focused_border_skip_monocle 0 119 | 120 | # 121 | # NOTE: the following are config variables for the chunkwm-ffm plugin. 122 | # 123 | 124 | chunkc set ffm_bypass_modifier fn 125 | chunkc set ffm_standby_on_float 1 126 | 127 | # 128 | # NOTE: specify plugins to load when chunkwm starts. 129 | # 130 | 131 | chunkc core::load border.so 132 | chunkc core::load tiling.so 133 | chunkc core::load ffm.so 134 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | 2 | [colors] 3 | draw_bold_text_with_bright_colors = true 4 | 5 | [colors.bright] 6 | black = "0x5c6370" 7 | blue = "0x61afef" 8 | cyan = "0x56b6c2" 9 | green = "0x98c379" 10 | magenta = "0xc678dd" 11 | red = "0xe06c75" 12 | white = "0xffffff" 13 | yellow = "0xd19a66" 14 | 15 | [colors.normal] 16 | black = "0x282c34" 17 | blue = "0x61afef" 18 | cyan = "0x56b6c2" 19 | green = "0x98c379" 20 | magenta = "0xc678dd" 21 | red = "0xe06c75" 22 | white = "0xabb2bf" 23 | yellow = "0xd19a66" 24 | 25 | [colors.primary] 26 | background = "0x282c34" 27 | foreground = "0xabb2bf" 28 | 29 | [cursor] 30 | style = "Block" 31 | unfocused_hollow = true 32 | 33 | [debug] 34 | persistent_logging = false 35 | render_timer = false 36 | 37 | [font] 38 | size = 16.0 39 | 40 | [font.normal] 41 | family = "MesloLGS NF" 42 | 43 | [font.glyph_offset] 44 | x = 0 45 | y = 0 46 | 47 | [font.offset] 48 | x = 0 49 | y = 0 50 | 51 | [[keyboard.bindings]] 52 | action = "ResetFontSize" 53 | key = "Key0" 54 | mods = "Command" 55 | 56 | [[keyboard.bindings]] 57 | action = "IncreaseFontSize" 58 | key = "Equals" 59 | mods = "Command" 60 | 61 | [[keyboard.bindings]] 62 | action = "IncreaseFontSize" 63 | key = "Plus" 64 | mods = "Command" 65 | 66 | [[keyboard.bindings]] 67 | action = "DecreaseFontSize" 68 | key = "Minus" 69 | mods = "Command" 70 | 71 | [[keyboard.bindings]] 72 | action = "ClearHistory" 73 | key = "K" 74 | mods = "Command" 75 | 76 | [[keyboard.bindings]] 77 | chars = "\f" 78 | key = "K" 79 | mods = "Command" 80 | 81 | [[keyboard.bindings]] 82 | action = "Paste" 83 | key = "V" 84 | mods = "Command" 85 | 86 | [[keyboard.bindings]] 87 | action = "Copy" 88 | key = "C" 89 | mods = "Command" 90 | 91 | [[keyboard.bindings]] 92 | action = "Hide" 93 | key = "H" 94 | mods = "Command" 95 | 96 | [[keyboard.bindings]] 97 | action = "Quit" 98 | key = "Q" 99 | mods = "Command" 100 | 101 | [[keyboard.bindings]] 102 | action = "Quit" 103 | key = "W" 104 | mods = "Command" 105 | 106 | [[keyboard.bindings]] 107 | action = "Paste" 108 | key = "Paste" 109 | 110 | [[keyboard.bindings]] 111 | action = "Copy" 112 | key = "Copy" 113 | 114 | [[keyboard.bindings]] 115 | chars = "\u001B[1;3H" 116 | key = "Home" 117 | mods = "Alt" 118 | 119 | [[keyboard.bindings]] 120 | chars = "\u001BOH" 121 | key = "Home" 122 | mode = "AppCursor" 123 | 124 | [[keyboard.bindings]] 125 | chars = "\u001B[H" 126 | key = "Home" 127 | mode = "~AppCursor" 128 | 129 | [[keyboard.bindings]] 130 | chars = "\u001B[1;3F" 131 | key = "End" 132 | mods = "Alt" 133 | 134 | [[keyboard.bindings]] 135 | chars = "\u001BOF" 136 | key = "End" 137 | mode = "AppCursor" 138 | 139 | [[keyboard.bindings]] 140 | chars = "\u001B[F" 141 | key = "End" 142 | mode = "~AppCursor" 143 | 144 | [[keyboard.bindings]] 145 | action = "ScrollPageUp" 146 | key = "PageUp" 147 | mode = "~Alt" 148 | mods = "Shift" 149 | 150 | [[keyboard.bindings]] 151 | chars = "\u001B[5;2~" 152 | key = "PageUp" 153 | mode = "Alt" 154 | mods = "Shift" 155 | 156 | [[keyboard.bindings]] 157 | chars = "\u001B[5;5~" 158 | key = "PageUp" 159 | mods = "Control" 160 | 161 | [[keyboard.bindings]] 162 | chars = "\u001B[5;3~" 163 | key = "PageUp" 164 | mods = "Alt" 165 | 166 | [[keyboard.bindings]] 167 | chars = "\u001B[5~" 168 | key = "PageUp" 169 | 170 | [[keyboard.bindings]] 171 | action = "ScrollPageDown" 172 | key = "PageDown" 173 | mode = "~Alt" 174 | mods = "Shift" 175 | 176 | [[keyboard.bindings]] 177 | chars = "\u001B[6;2~" 178 | key = "PageDown" 179 | mode = "Alt" 180 | mods = "Shift" 181 | 182 | [[keyboard.bindings]] 183 | chars = "\u001B[6;5~" 184 | key = "PageDown" 185 | mods = "Control" 186 | 187 | [[keyboard.bindings]] 188 | chars = "\u001B[6;3~" 189 | key = "PageDown" 190 | mods = "Alt" 191 | 192 | [[keyboard.bindings]] 193 | chars = "\u001B[6~" 194 | key = "PageDown" 195 | 196 | [[keyboard.bindings]] 197 | chars = "\u001B[Z" 198 | key = "Tab" 199 | mods = "Shift" 200 | 201 | [[keyboard.bindings]] 202 | chars = "\u007F" 203 | key = "Back" 204 | 205 | [[keyboard.bindings]] 206 | chars = "\u001B\u007F" 207 | key = "Back" 208 | mods = "Alt" 209 | 210 | [[keyboard.bindings]] 211 | chars = "\u001B[2~" 212 | key = "Insert" 213 | 214 | [[keyboard.bindings]] 215 | chars = "\u001B[3~" 216 | key = "Delete" 217 | 218 | [[keyboard.bindings]] 219 | chars = "\u001B[1;2D" 220 | key = "Left" 221 | mods = "Shift" 222 | 223 | [[keyboard.bindings]] 224 | chars = "\u001B[1;5D" 225 | key = "Left" 226 | mods = "Control" 227 | 228 | [[keyboard.bindings]] 229 | chars = "\u001B[1;3D" 230 | key = "Left" 231 | mods = "Alt" 232 | 233 | [[keyboard.bindings]] 234 | chars = "\u001B[D" 235 | key = "Left" 236 | mode = "~AppCursor" 237 | 238 | [[keyboard.bindings]] 239 | chars = "\u001BOD" 240 | key = "Left" 241 | mode = "AppCursor" 242 | 243 | [[keyboard.bindings]] 244 | chars = "\u001B[1;2C" 245 | key = "Right" 246 | mods = "Shift" 247 | 248 | [[keyboard.bindings]] 249 | chars = "\u001B[1;5C" 250 | key = "Right" 251 | mods = "Control" 252 | 253 | [[keyboard.bindings]] 254 | chars = "\u001B[1;3C" 255 | key = "Right" 256 | mods = "Alt" 257 | 258 | [[keyboard.bindings]] 259 | chars = "\u001B[C" 260 | key = "Right" 261 | mode = "~AppCursor" 262 | 263 | [[keyboard.bindings]] 264 | chars = "\u001BOC" 265 | key = "Right" 266 | mode = "AppCursor" 267 | 268 | [[keyboard.bindings]] 269 | chars = "\u001B[1;2A" 270 | key = "Up" 271 | mods = "Shift" 272 | 273 | [[keyboard.bindings]] 274 | chars = "\u001B[1;5A" 275 | key = "Up" 276 | mods = "Control" 277 | 278 | [[keyboard.bindings]] 279 | chars = "\u001B[1;3A" 280 | key = "Up" 281 | mods = "Alt" 282 | 283 | [[keyboard.bindings]] 284 | chars = "\u001B[A" 285 | key = "Up" 286 | mode = "~AppCursor" 287 | 288 | [[keyboard.bindings]] 289 | chars = "\u001BOA" 290 | key = "Up" 291 | mode = "AppCursor" 292 | 293 | [[keyboard.bindings]] 294 | chars = "\u001B[1;2B" 295 | key = "Down" 296 | mods = "Shift" 297 | 298 | [[keyboard.bindings]] 299 | chars = "\u001B[1;5B" 300 | key = "Down" 301 | mods = "Control" 302 | 303 | [[keyboard.bindings]] 304 | chars = "\u001B[1;3B" 305 | key = "Down" 306 | mods = "Alt" 307 | 308 | [[keyboard.bindings]] 309 | chars = "\u001B[B" 310 | key = "Down" 311 | mode = "~AppCursor" 312 | 313 | [[keyboard.bindings]] 314 | chars = "\u001BOB" 315 | key = "Down" 316 | mode = "AppCursor" 317 | 318 | [[keyboard.bindings]] 319 | chars = "\u001BOP" 320 | key = "F1" 321 | 322 | [[keyboard.bindings]] 323 | chars = "\u001BOQ" 324 | key = "F2" 325 | 326 | [[keyboard.bindings]] 327 | chars = "\u001BOR" 328 | key = "F3" 329 | 330 | [[keyboard.bindings]] 331 | chars = "\u001BOS" 332 | key = "F4" 333 | 334 | [[keyboard.bindings]] 335 | chars = "\u001B[15~" 336 | key = "F5" 337 | 338 | [[keyboard.bindings]] 339 | chars = "\u001B[17~" 340 | key = "F6" 341 | 342 | [[keyboard.bindings]] 343 | chars = "\u001B[18~" 344 | key = "F7" 345 | 346 | [[keyboard.bindings]] 347 | chars = "\u001B[19~" 348 | key = "F8" 349 | 350 | [[keyboard.bindings]] 351 | chars = "\u001B[20~" 352 | key = "F9" 353 | 354 | [[keyboard.bindings]] 355 | chars = "\u001B[21~" 356 | key = "F10" 357 | 358 | [[keyboard.bindings]] 359 | chars = "\u001B[23~" 360 | key = "F11" 361 | 362 | [[keyboard.bindings]] 363 | chars = "\u001B[24~" 364 | key = "F12" 365 | 366 | [[keyboard.bindings]] 367 | chars = "\u001B[1;2P" 368 | key = "F1" 369 | mods = "Shift" 370 | 371 | [[keyboard.bindings]] 372 | chars = "\u001B[1;2Q" 373 | key = "F2" 374 | mods = "Shift" 375 | 376 | [[keyboard.bindings]] 377 | chars = "\u001B[1;2R" 378 | key = "F3" 379 | mods = "Shift" 380 | 381 | [[keyboard.bindings]] 382 | chars = "\u001B[1;2S" 383 | key = "F4" 384 | mods = "Shift" 385 | 386 | [[keyboard.bindings]] 387 | chars = "\u001B[15;2~" 388 | key = "F5" 389 | mods = "Shift" 390 | 391 | [[keyboard.bindings]] 392 | chars = "\u001B[17;2~" 393 | key = "F6" 394 | mods = "Shift" 395 | 396 | [[keyboard.bindings]] 397 | chars = "\u001B[18;2~" 398 | key = "F7" 399 | mods = "Shift" 400 | 401 | [[keyboard.bindings]] 402 | chars = "\u001B[19;2~" 403 | key = "F8" 404 | mods = "Shift" 405 | 406 | [[keyboard.bindings]] 407 | chars = "\u001B[20;2~" 408 | key = "F9" 409 | mods = "Shift" 410 | 411 | [[keyboard.bindings]] 412 | chars = "\u001B[21;2~" 413 | key = "F10" 414 | mods = "Shift" 415 | 416 | [[keyboard.bindings]] 417 | chars = "\u001B[23;2~" 418 | key = "F11" 419 | mods = "Shift" 420 | 421 | [[keyboard.bindings]] 422 | chars = "\u001B[24;2~" 423 | key = "F12" 424 | mods = "Shift" 425 | 426 | [[keyboard.bindings]] 427 | chars = "\u001B[1;5P" 428 | key = "F1" 429 | mods = "Control" 430 | 431 | [[keyboard.bindings]] 432 | chars = "\u001B[1;5Q" 433 | key = "F2" 434 | mods = "Control" 435 | 436 | [[keyboard.bindings]] 437 | chars = "\u001B[1;5R" 438 | key = "F3" 439 | mods = "Control" 440 | 441 | [[keyboard.bindings]] 442 | chars = "\u001B[1;5S" 443 | key = "F4" 444 | mods = "Control" 445 | 446 | [[keyboard.bindings]] 447 | chars = "\u001B[15;5~" 448 | key = "F5" 449 | mods = "Control" 450 | 451 | [[keyboard.bindings]] 452 | chars = "\u001B[17;5~" 453 | key = "F6" 454 | mods = "Control" 455 | 456 | [[keyboard.bindings]] 457 | chars = "\u001B[18;5~" 458 | key = "F7" 459 | mods = "Control" 460 | 461 | [[keyboard.bindings]] 462 | chars = "\u001B[19;5~" 463 | key = "F8" 464 | mods = "Control" 465 | 466 | [[keyboard.bindings]] 467 | chars = "\u001B[20;5~" 468 | key = "F9" 469 | mods = "Control" 470 | 471 | [[keyboard.bindings]] 472 | chars = "\u001B[21;5~" 473 | key = "F10" 474 | mods = "Control" 475 | 476 | [[keyboard.bindings]] 477 | chars = "\u001B[23;5~" 478 | key = "F11" 479 | mods = "Control" 480 | 481 | [[keyboard.bindings]] 482 | chars = "\u001B[24;5~" 483 | key = "F12" 484 | mods = "Control" 485 | 486 | [[keyboard.bindings]] 487 | chars = "\u001B[1;6P" 488 | key = "F1" 489 | mods = "Alt" 490 | 491 | [[keyboard.bindings]] 492 | chars = "\u001B[1;6Q" 493 | key = "F2" 494 | mods = "Alt" 495 | 496 | [[keyboard.bindings]] 497 | chars = "\u001B[1;6R" 498 | key = "F3" 499 | mods = "Alt" 500 | 501 | [[keyboard.bindings]] 502 | chars = "\u001B[1;6S" 503 | key = "F4" 504 | mods = "Alt" 505 | 506 | [[keyboard.bindings]] 507 | chars = "\u001B[15;6~" 508 | key = "F5" 509 | mods = "Alt" 510 | 511 | [[keyboard.bindings]] 512 | chars = "\u001B[17;6~" 513 | key = "F6" 514 | mods = "Alt" 515 | 516 | [[keyboard.bindings]] 517 | chars = "\u001B[18;6~" 518 | key = "F7" 519 | mods = "Alt" 520 | 521 | [[keyboard.bindings]] 522 | chars = "\u001B[19;6~" 523 | key = "F8" 524 | mods = "Alt" 525 | 526 | [[keyboard.bindings]] 527 | chars = "\u001B[20;6~" 528 | key = "F9" 529 | mods = "Alt" 530 | 531 | [[keyboard.bindings]] 532 | chars = "\u001B[21;6~" 533 | key = "F10" 534 | mods = "Alt" 535 | 536 | [[keyboard.bindings]] 537 | chars = "\u001B[23;6~" 538 | key = "F11" 539 | mods = "Alt" 540 | 541 | [[keyboard.bindings]] 542 | chars = "\u001B[24;6~" 543 | key = "F12" 544 | mods = "Alt" 545 | 546 | [[keyboard.bindings]] 547 | chars = "\u001B[1;3P" 548 | key = "F1" 549 | mods = "Super" 550 | 551 | [[keyboard.bindings]] 552 | chars = "\u001B[1;3Q" 553 | key = "F2" 554 | mods = "Super" 555 | 556 | [[keyboard.bindings]] 557 | chars = "\u001B[1;3R" 558 | key = "F3" 559 | mods = "Super" 560 | 561 | [[keyboard.bindings]] 562 | chars = "\u001B[1;3S" 563 | key = "F4" 564 | mods = "Super" 565 | 566 | [[keyboard.bindings]] 567 | chars = "\u001B[15;3~" 568 | key = "F5" 569 | mods = "Super" 570 | 571 | [[keyboard.bindings]] 572 | chars = "\u001B[17;3~" 573 | key = "F6" 574 | mods = "Super" 575 | 576 | [[keyboard.bindings]] 577 | chars = "\u001B[18;3~" 578 | key = "F7" 579 | mods = "Super" 580 | 581 | [[keyboard.bindings]] 582 | chars = "\u001B[19;3~" 583 | key = "F8" 584 | mods = "Super" 585 | 586 | [[keyboard.bindings]] 587 | chars = "\u001B[20;3~" 588 | key = "F9" 589 | mods = "Super" 590 | 591 | [[keyboard.bindings]] 592 | chars = "\u001B[21;3~" 593 | key = "F10" 594 | mods = "Super" 595 | 596 | [[keyboard.bindings]] 597 | chars = "\u001B[23;3~" 598 | key = "F11" 599 | mods = "Super" 600 | 601 | [[keyboard.bindings]] 602 | chars = "\u001B[24;3~" 603 | key = "F12" 604 | mods = "Super" 605 | 606 | [[keyboard.bindings]] 607 | chars = """ 608 | 609 | """ 610 | key = "NumpadEnter" 611 | 612 | [mouse] 613 | hide_when_typing = false 614 | 615 | [[mouse.bindings]] 616 | action = "PasteSelection" 617 | mouse = "Middle" 618 | 619 | [scrolling] 620 | history = 10000 621 | multiplier = 3 622 | 623 | [selection] 624 | save_to_clipboard = false 625 | semantic_escape_chars = ",│`|:\"' ()[]{}<>" 626 | 627 | [window] 628 | decorations = "buttonless" 629 | dynamic_padding = false 630 | startup_mode = "Maximized" 631 | 632 | [window.dimensions] 633 | columns = 0 634 | lines = 0 635 | 636 | [window.padding] 637 | x = 20 638 | y = 20 639 | 640 | [general] 641 | live_config_reload = true 642 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | # Configuration for Alacritty, the GPU enhanced terminal emulator. 2 | 3 | # Any items in the `env` entry below will be added as 4 | # environment variables. Some entries may override variables 5 | # set by alacritty itself. 6 | #env: 7 | # TERM variable 8 | # 9 | # This value is used to set the `$TERM` environment variable for 10 | # each instance of Alacritty. If it is not present, alacritty will 11 | # check the local terminfo database and use `alacritty` if it is 12 | # available, otherwise `xterm-256color` is used. 13 | #TERM: xterm-256color 14 | 15 | window: 16 | # Window dimensions (changes require restart) 17 | # 18 | # Specified in number of columns/lines, not pixels. 19 | # If both are `0`, this setting is ignored. 20 | dimensions: 21 | columns: 0 22 | lines: 0 23 | 24 | # Window position (changes require restart) 25 | # 26 | # Specified in number of pixels. 27 | # If the position is not set, the window manager will handle the placement. 28 | #position: 29 | # x: 0 30 | # y: 0 31 | 32 | # Window padding (changes require restart) 33 | # 34 | # Blank space added around the window in pixels. This padding is scaled 35 | # by DPI and the specified value is always added at both opposing sides. 36 | padding: 37 | x: 20 38 | y: 20 39 | 40 | # Spread additional padding evenly around the terminal content. 41 | dynamic_padding: false 42 | 43 | # Window decorations 44 | # 45 | # Values for `decorations`: 46 | # - full: Borders and title bar 47 | # - none: Neither borders nor title bar 48 | # 49 | # Values for `decorations` (macOS only): 50 | # - transparent: Title bar, transparent background and title bar buttons 51 | # - buttonless: Title bar, transparent background, but no title bar buttons 52 | decorations: buttonless 53 | 54 | startup_mode: Maximized 55 | 56 | scrolling: 57 | # Maximum number of lines in the scrollback buffer. 58 | # Specifying '0' will disable scrolling. 59 | history: 10000 60 | 61 | # Number of lines the viewport will move for every line scrolled when 62 | # scrollback is enabled (history > 0). 63 | multiplier: 3 64 | 65 | # Scroll to the bottom when new text is written to the terminal. 66 | auto_scroll: false 67 | 68 | # Spaces per Tab (changes require restart) 69 | # 70 | # This setting defines the width of a tab in cells. 71 | # 72 | # Some applications, like Emacs, rely on knowing about the width of a tab. 73 | # To prevent unexpected behavior in these applications, it's also required to 74 | # change the `it` value in terminfo when altering this setting. 75 | tabspaces: 8 76 | 77 | # Font configuration (changes require restart) 78 | font: 79 | # Normal (roman) font face 80 | #normal: 81 | # Font family 82 | # 83 | # Default: 84 | # - (macOS) Menlo 85 | # - (Linux) monospace 86 | # - (Windows) Consolas 87 | #family: monospace 88 | 89 | # The `style` can be specified to pick a specific face. 90 | #style: Regular 91 | 92 | # Bold font face 93 | #bold: 94 | # Font family 95 | # 96 | # If the bold family is not specified, it will fall back to the 97 | # value specified for the normal font. 98 | #family: monospace 99 | 100 | # The `style` can be specified to pick a specific face. 101 | #style: Bold 102 | 103 | # Italic font face 104 | #italic: 105 | # Font family 106 | # 107 | # If the italic family is not specified, it will fall back to the 108 | # value specified for the normal font. 109 | #family: monospace 110 | 111 | # The `style` can be specified to pick a specific face. 112 | #style: Italic 113 | 114 | # Point size 115 | size: 15.0 116 | 117 | # Offset is the extra space around each character. `offset.y` can be thought of 118 | # as modifying the line spacing, and `offset.x` as modifying the letter spacing. 119 | offset: 120 | x: 0 121 | y: 0 122 | 123 | # Glyph offset determines the locations of the glyphs within their cells with 124 | # the default being at the bottom. Increasing `x` moves the glyph to the right, 125 | # increasing `y` moves the glyph upwards. 126 | glyph_offset: 127 | x: 0 128 | y: 0 129 | 130 | # Thin stroke font rendering (macOS only) 131 | # 132 | # Thin strokes are suitable for retina displays, but for non-retina screens 133 | # it is recommended to set `use_thin_strokes` to `false` 134 | # 135 | # macOS >= 10.14.x: 136 | # 137 | # If the font quality on non-retina display looks bad then set 138 | # `use_thin_strokes` to `true` and enable font smoothing by running the 139 | # following command: 140 | # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` 141 | # 142 | # This is a global setting and will require a log out or restart to take 143 | # effect. 144 | use_thin_strokes: true 145 | 146 | debug: 147 | # Display the time it takes to redraw each frame. 148 | render_timer: false 149 | 150 | # Keep the log file after quitting Alacritty. 151 | persistent_logging: false 152 | 153 | # If `true`, bold text is drawn using the bright color variants. 154 | draw_bold_text_with_bright_colors: true 155 | 156 | # Colors (One Dark) [bak: snazzy] 157 | colors: 158 | # Default colors 159 | primary: 160 | background: '0x282c34' 161 | foreground: '0xabb2bf' 162 | 163 | # Normal colors 164 | normal: 165 | # NOTE: Use '0x131613' for the `black` color if you'd like to see 166 | # black text on the background. 167 | black: '0x282c34' 168 | red: '0xe06c75' 169 | green: '0x98c379' 170 | yellow: '0xd19a66' 171 | blue: '0x61afef' 172 | magenta: '0xc678dd' 173 | cyan: '0x56b6c2' 174 | white: '0xabb2bf' 175 | 176 | # Bright colors 177 | bright: 178 | black: '0x5c6370' 179 | red: '0xe06c75' 180 | green: '0x98c379' 181 | yellow: '0xd19a66' 182 | blue: '0x61afef' 183 | magenta: '0xc678dd' 184 | cyan: '0x56b6c2' 185 | white: '0xffffff' 186 | 187 | # Visual Bell 188 | # 189 | # Any time the BEL code is received, Alacritty "rings" the visual bell. Once 190 | # rung, the terminal background will be set to white and transition back to the 191 | # default background color. You can control the rate of this transition by 192 | # setting the `duration` property (represented in milliseconds). You can also 193 | # configure the transition function by setting the `animation` property. 194 | # 195 | # Values for `animation`: 196 | # - Ease 197 | # - EaseOut 198 | # - EaseOutSine 199 | # - EaseOutQuad 200 | # - EaseOutCubic 201 | # - EaseOutQuart 202 | # - EaseOutQuint 203 | # - EaseOutExpo 204 | # - EaseOutCirc 205 | # - Linear 206 | # 207 | # Specifying a `duration` of `0` will disable the visual bell. 208 | visual_bell: 209 | animation: EaseOutExpo 210 | duration: 0 211 | color: '0xffffff' 212 | 213 | # Background opacity 214 | # 215 | # Window opacity as a floating point number from `0.0` to `1.0`. 216 | # The value `0.0` is completely transparent and `1.0` is opaque. 217 | background_opacity: 0.96 218 | 219 | # Mouse bindings 220 | # 221 | # Available fields: 222 | # - mouse 223 | # - action 224 | # - mods (optional) 225 | # 226 | # Values for `mouse`: 227 | # - Middle 228 | # - Left 229 | # - Right 230 | # - Numeric identifier such as `5` 231 | # 232 | # All available `mods` and `action` values are documented in the key binding 233 | # section. 234 | mouse_bindings: 235 | - { mouse: Middle, action: PasteSelection } 236 | 237 | mouse: 238 | # Click settings 239 | # 240 | # The `double_click` and `triple_click` settings control the time 241 | # alacritty should wait for accepting multiple clicks as one double 242 | # or triple click. 243 | double_click: { threshold: 300 } 244 | triple_click: { threshold: 300 } 245 | 246 | # If this is `true`, the cursor is temporarily hidden when typing. 247 | hide_when_typing: false 248 | 249 | selection: 250 | semantic_escape_chars: ",│`|:\"' ()[]{}<>" 251 | 252 | # When set to `true`, selected text will be copied to the primary clipboard. 253 | save_to_clipboard: false 254 | 255 | # Allow terminal applications to change Alacritty's window title. 256 | dynamic_title: true 257 | 258 | cursor: 259 | # Cursor style 260 | # 261 | # Values for `style`: 262 | # - ▇ Block 263 | # - _ Underline 264 | # - | Beam 265 | style: Block 266 | 267 | # If this is `true`, the cursor will be rendered as a hollow box when the 268 | # window is not focused. 269 | unfocused_hollow: true 270 | 271 | # Live config reload (changes require restart) 272 | live_config_reload: true 273 | 274 | # Shell 275 | # 276 | # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. 277 | # Entries in `shell.args` are passed unmodified as arguments to the shell. 278 | # 279 | # Default: 280 | # - (Linux/macOS) /bin/bash --login 281 | # - (Windows) powershell 282 | #shell: 283 | # program: /bin/bash 284 | # args: 285 | # - --login 286 | 287 | # Windows 10 ConPTY backend (Windows only) 288 | # 289 | # This will enable better color support and may resolve other issues, 290 | # however this API and its implementation is still young and so is 291 | # disabled by default, as stability may not be as good as the winpty 292 | # backend. 293 | # 294 | # Alacritty will fall back to the WinPTY automatically if the ConPTY 295 | # backend cannot be initialized. 296 | enable_experimental_conpty_backend: false 297 | 298 | # Send ESC (\x1b) before characters when alt is pressed. 299 | alt_send_esc: true 300 | 301 | # Key bindings 302 | # 303 | # Key bindings are specified as a list of objects. Each binding will specify a 304 | # key and modifiers required to trigger it, terminal modes where the binding is 305 | # applicable, and what should be done when the key binding fires. It can either 306 | # send a byte sequence to the running application (`chars`), execute a 307 | # predefined action (`action`) or fork and execute a specified command plus 308 | # arguments (`command`). 309 | # 310 | # Bindings are always filled by default, but will be replaced when a new binding 311 | # with the same triggers is defined. To unset a default binding, it can be 312 | # mapped to the `None` action. 313 | # 314 | # Example: 315 | # `- { key: V, mods: Control|Shift, action: Paste }` 316 | # 317 | # Available fields: 318 | # - key 319 | # - mods (optional) 320 | # - chars | action | command (exactly one required) 321 | # - mode (optional) 322 | # 323 | # Values for `key`: 324 | # - `A` -> `Z` 325 | # - `F1` -> `F12` 326 | # - `Key1` -> `Key0` 327 | # 328 | # A full list with available key codes can be found here: 329 | # https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants 330 | # 331 | # Instead of using the name of the keys, the `key` field also supports using 332 | # the scancode of the desired key. Scancodes have to be specified as a 333 | # decimal number. 334 | # This command will allow you to display the hex scancodes for certain keys: 335 | # `showkey --scancodes` 336 | # 337 | # Values for `mods`: 338 | # - Command 339 | # - Control 340 | # - Super 341 | # - Shift 342 | # - Alt 343 | # 344 | # Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. 345 | # Whitespace and capitalization is relevant and must match the example. 346 | # 347 | # Values for `chars`: 348 | # The `chars` field writes the specified string to the terminal. This makes 349 | # it possible to pass escape sequences. 350 | # To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run 351 | # the command `showkey -a` outside of tmux. 352 | # Note that applications use terminfo to map escape sequences back to 353 | # keys. It is therefore required to update the terminfo when 354 | # changing an escape sequence. 355 | # 356 | # Values for `action`: 357 | # - Paste 358 | # - PasteSelection 359 | # - Copy 360 | # - IncreaseFontSize 361 | # - DecreaseFontSize 362 | # - ResetFontSize 363 | # - ScrollPageUp 364 | # - ScrollPageDown 365 | # - ScrollLineUp 366 | # - ScrollLineDown 367 | # - ScrollToTop 368 | # - ScrollToBottom 369 | # - ClearHistory 370 | # - Hide 371 | # - Quit 372 | # - ClearLogNotice 373 | # - SpawnNewInstance 374 | # - None 375 | # 376 | # Values for `command`: 377 | # The `command` field must be a map containing a `program` string and 378 | # an `args` array of command line parameter strings. 379 | # 380 | # Example: 381 | # `command: { program: "alacritty", args: ["-e", "vttest"] }` 382 | # 383 | # Values for `mode`: 384 | # - ~AppCursor 385 | # - AppCursor 386 | # - ~AppKeypad 387 | # - AppKeypad 388 | key_bindings: 389 | # (Windows/Linux only) 390 | #- { key: V, mods: Control|Shift, action: Paste } 391 | #- { key: C, mods: Control|Shift, action: Copy } 392 | #- { key: Insert, mods: Shift, action: PasteSelection } 393 | #- { key: Key0, mods: Control, action: ResetFontSize } 394 | #- { key: Equals, mods: Control, action: IncreaseFontSize } 395 | #- { key: Add, mods: Control, action: IncreaseFontSize } 396 | #- { key: Subtract, mods: Control, action: DecreaseFontSize } 397 | #- { key: Minus, mods: Control, action: DecreaseFontSize } 398 | 399 | # (macOS only) 400 | - { key: Key0, mods: Command, action: ResetFontSize } 401 | - { key: Equals, mods: Command, action: IncreaseFontSize } 402 | - { key: Plus, mods: Command, action: IncreaseFontSize } 403 | - { key: Minus, mods: Command, action: DecreaseFontSize } 404 | - { key: K, mods: Command, action: ClearHistory } 405 | - { key: K, mods: Command, chars: "\x0c" } 406 | - { key: V, mods: Command, action: Paste } 407 | - { key: C, mods: Command, action: Copy } 408 | - { key: H, mods: Command, action: Hide } 409 | - { key: Q, mods: Command, action: Quit } 410 | - { key: W, mods: Command, action: Quit } 411 | 412 | - { key: Paste, action: Paste } 413 | - { key: Copy, action: Copy } 414 | - { key: Home, mods: Alt, chars: "\x1b[1;3H" } 415 | - { key: Home, chars: "\x1bOH", mode: AppCursor } 416 | - { key: Home, chars: "\x1b[H", mode: ~AppCursor } 417 | - { key: End, mods: Alt, chars: "\x1b[1;3F" } 418 | - { key: End, chars: "\x1bOF", mode: AppCursor } 419 | - { key: End, chars: "\x1b[F", mode: ~AppCursor } 420 | - { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt } 421 | - { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt } 422 | - { key: PageUp, mods: Control, chars: "\x1b[5;5~" } 423 | - { key: PageUp, mods: Alt, chars: "\x1b[5;3~" } 424 | - { key: PageUp, chars: "\x1b[5~" } 425 | - { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt } 426 | - { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt } 427 | - { key: PageDown, mods: Control, chars: "\x1b[6;5~" } 428 | - { key: PageDown, mods: Alt, chars: "\x1b[6;3~" } 429 | - { key: PageDown, chars: "\x1b[6~" } 430 | - { key: Tab, mods: Shift, chars: "\x1b[Z" } 431 | - { key: Back, chars: "\x7f" } 432 | - { key: Back, mods: Alt, chars: "\x1b\x7f" } 433 | - { key: Insert, chars: "\x1b[2~" } 434 | - { key: Delete, chars: "\x1b[3~" } 435 | - { key: Left, mods: Shift, chars: "\x1b[1;2D" } 436 | - { key: Left, mods: Control, chars: "\x1b[1;5D" } 437 | - { key: Left, mods: Alt, chars: "\x1b[1;3D" } 438 | - { key: Left, chars: "\x1b[D", mode: ~AppCursor } 439 | - { key: Left, chars: "\x1bOD", mode: AppCursor } 440 | - { key: Right, mods: Shift, chars: "\x1b[1;2C" } 441 | - { key: Right, mods: Control, chars: "\x1b[1;5C" } 442 | - { key: Right, mods: Alt, chars: "\x1b[1;3C" } 443 | - { key: Right, chars: "\x1b[C", mode: ~AppCursor } 444 | - { key: Right, chars: "\x1bOC", mode: AppCursor } 445 | - { key: Up, mods: Shift, chars: "\x1b[1;2A" } 446 | - { key: Up, mods: Control, chars: "\x1b[1;5A" } 447 | - { key: Up, mods: Alt, chars: "\x1b[1;3A" } 448 | - { key: Up, chars: "\x1b[A", mode: ~AppCursor } 449 | - { key: Up, chars: "\x1bOA", mode: AppCursor } 450 | - { key: Down, mods: Shift, chars: "\x1b[1;2B" } 451 | - { key: Down, mods: Control, chars: "\x1b[1;5B" } 452 | - { key: Down, mods: Alt, chars: "\x1b[1;3B" } 453 | - { key: Down, chars: "\x1b[B", mode: ~AppCursor } 454 | - { key: Down, chars: "\x1bOB", mode: AppCursor } 455 | - { key: F1, chars: "\x1bOP" } 456 | - { key: F2, chars: "\x1bOQ" } 457 | - { key: F3, chars: "\x1bOR" } 458 | - { key: F4, chars: "\x1bOS" } 459 | - { key: F5, chars: "\x1b[15~" } 460 | - { key: F6, chars: "\x1b[17~" } 461 | - { key: F7, chars: "\x1b[18~" } 462 | - { key: F8, chars: "\x1b[19~" } 463 | - { key: F9, chars: "\x1b[20~" } 464 | - { key: F10, chars: "\x1b[21~" } 465 | - { key: F11, chars: "\x1b[23~" } 466 | - { key: F12, chars: "\x1b[24~" } 467 | - { key: F1, mods: Shift, chars: "\x1b[1;2P" } 468 | - { key: F2, mods: Shift, chars: "\x1b[1;2Q" } 469 | - { key: F3, mods: Shift, chars: "\x1b[1;2R" } 470 | - { key: F4, mods: Shift, chars: "\x1b[1;2S" } 471 | - { key: F5, mods: Shift, chars: "\x1b[15;2~" } 472 | - { key: F6, mods: Shift, chars: "\x1b[17;2~" } 473 | - { key: F7, mods: Shift, chars: "\x1b[18;2~" } 474 | - { key: F8, mods: Shift, chars: "\x1b[19;2~" } 475 | - { key: F9, mods: Shift, chars: "\x1b[20;2~" } 476 | - { key: F10, mods: Shift, chars: "\x1b[21;2~" } 477 | - { key: F11, mods: Shift, chars: "\x1b[23;2~" } 478 | - { key: F12, mods: Shift, chars: "\x1b[24;2~" } 479 | - { key: F1, mods: Control, chars: "\x1b[1;5P" } 480 | - { key: F2, mods: Control, chars: "\x1b[1;5Q" } 481 | - { key: F3, mods: Control, chars: "\x1b[1;5R" } 482 | - { key: F4, mods: Control, chars: "\x1b[1;5S" } 483 | - { key: F5, mods: Control, chars: "\x1b[15;5~" } 484 | - { key: F6, mods: Control, chars: "\x1b[17;5~" } 485 | - { key: F7, mods: Control, chars: "\x1b[18;5~" } 486 | - { key: F8, mods: Control, chars: "\x1b[19;5~" } 487 | - { key: F9, mods: Control, chars: "\x1b[20;5~" } 488 | - { key: F10, mods: Control, chars: "\x1b[21;5~" } 489 | - { key: F11, mods: Control, chars: "\x1b[23;5~" } 490 | - { key: F12, mods: Control, chars: "\x1b[24;5~" } 491 | - { key: F1, mods: Alt, chars: "\x1b[1;6P" } 492 | - { key: F2, mods: Alt, chars: "\x1b[1;6Q" } 493 | - { key: F3, mods: Alt, chars: "\x1b[1;6R" } 494 | - { key: F4, mods: Alt, chars: "\x1b[1;6S" } 495 | - { key: F5, mods: Alt, chars: "\x1b[15;6~" } 496 | - { key: F6, mods: Alt, chars: "\x1b[17;6~" } 497 | - { key: F7, mods: Alt, chars: "\x1b[18;6~" } 498 | - { key: F8, mods: Alt, chars: "\x1b[19;6~" } 499 | - { key: F9, mods: Alt, chars: "\x1b[20;6~" } 500 | - { key: F10, mods: Alt, chars: "\x1b[21;6~" } 501 | - { key: F11, mods: Alt, chars: "\x1b[23;6~" } 502 | - { key: F12, mods: Alt, chars: "\x1b[24;6~" } 503 | - { key: F1, mods: Super, chars: "\x1b[1;3P" } 504 | - { key: F2, mods: Super, chars: "\x1b[1;3Q" } 505 | - { key: F3, mods: Super, chars: "\x1b[1;3R" } 506 | - { key: F4, mods: Super, chars: "\x1b[1;3S" } 507 | - { key: F5, mods: Super, chars: "\x1b[15;3~" } 508 | - { key: F6, mods: Super, chars: "\x1b[17;3~" } 509 | - { key: F7, mods: Super, chars: "\x1b[18;3~" } 510 | - { key: F8, mods: Super, chars: "\x1b[19;3~" } 511 | - { key: F9, mods: Super, chars: "\x1b[20;3~" } 512 | - { key: F10, mods: Super, chars: "\x1b[21;3~" } 513 | - { key: F11, mods: Super, chars: "\x1b[23;3~" } 514 | - { key: F12, mods: Super, chars: "\x1b[24;3~" } 515 | - { key: NumpadEnter, chars: "\n" } 516 | -------------------------------------------------------------------------------- /.config/nvim/autoload/validate.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim environment validation functions. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | function g:validate#PrintError(msg, file) abort 8 | execute 'normal! \' 9 | echohl ErrorMsg 10 | echomsg "ERROR: ".a:file.": ".a:msg 11 | echohl None 12 | endfunction 13 | 14 | function g:validate#CheckEnv(variable, file) 15 | let ev = "$".a:variable 16 | if !exists(ev) 17 | call validate#PrintError("Environment variable ".ev." not defined.", g:file) 18 | endif 19 | endfunction 20 | -------------------------------------------------------------------------------- /.config/nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "list.previewSplitRight": true, 3 | "list.normalMappings": { 4 | "v": "action:vsplit" 5 | }, 6 | "tsserver.log": "normal", 7 | "rust-analyzer.checkOnSave": true, 8 | "rust-analyzer.check.command": "clippy", 9 | "rust-analyzer.check.extraArgs": [ 10 | "--target-dir", 11 | "/tmp/rust-analyzer-check" 12 | ], 13 | "rust-analyzer.cargo.features": "all", 14 | "rust-analyzer.debug.runtime": "vimspector", 15 | "rust-analyzer.procMacro.enable": true, 16 | "rust-analyzer.procMacro.attributes.enable": true, 17 | // TODO turn on after https://github.com/neovim/neovim/pull/9496 18 | "rust-analyzer.inlayHints.typeHints.enable": false, 19 | "rust-analyzer.inlayHints.chainingHints.enable": true, 20 | "rust-analyzer.inlayHints.reborrowHints.enable": "never", 21 | "rust-analyzer.inlayHints.closingBraceHints.enable": true, 22 | "rust-analyzer.inlayHints.closingBraceHints.minLines": 50, 23 | "coc.preferences.formatOnSave": true, 24 | // TODO turn on after https://github.com/neovim/neovim/pull/9496 25 | "inlayHint.enableParameter": false, 26 | "inlayHint.display": true, 27 | // "rust-analyzer.diagnostics.disabled": ["inactive-code"], 28 | // "inactive-coderust-analyzer.checkOnSave.overrideCommand": [ 29 | // "./x.py", 30 | // "check", 31 | // "--json-output" 32 | // ], 33 | // "rust-analyzer.rustfmt.overrideCommand": [ 34 | // "./build/x86_64-apple-darwin/stage0/bin/rustfmt", 35 | // "--edition=2021" 36 | // ], 37 | "rust-analyzer.cargo.buildScripts.enable": false, 38 | // "rust-analyzer.rustc.source": "./Cargo.toml", 39 | "zig.enabled": true, 40 | "zig.startUpMessage": true, 41 | "zig.path": "zls", 42 | "zig.debugLog": false, 43 | // 44 | // Both of the following lines are required to use mypy for typechecking 45 | // https://github.com/fannheyward/coc-pyright/issues/848 46 | // "python.analysis.typeCheckingMode": "off", 47 | // "python.linting.mypyEnabled": true, 48 | "python.analysis.typeCheckingMode": "basic", 49 | "python.formatting.provider": "black", 50 | // 51 | "codeLens.enable": false, 52 | "diagnostic.refreshOnInsertMode": true, 53 | // "diagnostic.virtualText": true, 54 | "diagnostic.messageTarget": "float", 55 | "diagnostic.checkCurrentLine": false, 56 | "diagnostic.level": "information", 57 | "diagnostic-languageserver.enable": true, 58 | "diagnostic-languageserver.filetypes": { 59 | "sh": "shellcheck" 60 | }, 61 | "suggest.noselect": false, 62 | "languageserver": { 63 | "ccls": { 64 | "command": "ccls", 65 | "filetypes": [], 66 | "rootPatterns": [ 67 | ".ccls-root", 68 | "compile_commands.json" 69 | ], 70 | "initializationOptions": { 71 | "cache": { 72 | "directory": ".ccls-cache" 73 | }, 74 | "clang": { 75 | "extraArgs": [ 76 | "-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" 77 | ] 78 | } 79 | } 80 | }, 81 | "clangd": { 82 | "command": "clangd", 83 | "args": [ 84 | "--background-index" 85 | ], 86 | "rootPatterns": [ 87 | "compile_flags.txt", 88 | "compile_commands.json", 89 | ".git/", 90 | ".hg/" 91 | ], 92 | "filetypes": [ 93 | "c", 94 | "cpp", 95 | "objc", 96 | "objcpp" 97 | ] 98 | }, 99 | "haskell": { 100 | "command": "haskell-language-server-wrapper", 101 | "args": [ 102 | "--lsp" 103 | ], 104 | "rootPatterns": [ 105 | "*.cabal", 106 | "stack.yaml", 107 | "cabal.project", 108 | "package.yaml", 109 | "hie.yaml" 110 | ], 111 | "filetypes": [ 112 | "haskell", 113 | "lhaskell" 114 | ] 115 | }, 116 | "slide": { 117 | "command": "/Users/hafiz/.cargo/bin/slide_ls", 118 | "rootPatterns": [ 119 | "*" 120 | ], 121 | "filetypes": [ 122 | "md", 123 | "markdown", 124 | "slide" 125 | ], 126 | "initializationOptions": { 127 | "document_parsers": { 128 | "md": "```math\\n((?:.|\\n)*?)\\n```", 129 | "slide": "(.*)" 130 | } 131 | } 132 | }, 133 | "roc": { 134 | "command": "/Users/hafiz/Code/Roc/roc/crates/lang_srv/debug_server.sh", 135 | "filetypes": [ 136 | "roc" 137 | ] 138 | }, 139 | // "elmLS": { 140 | // "command": "elm-language-server", 141 | // "filetypes": ["elm"] 142 | // }, 143 | "ocaml": { 144 | "command": "ocamllsp", 145 | "filetypes": [ 146 | "ocaml" 147 | ] 148 | }, 149 | "asm": { 150 | "command": "asm-lsp", 151 | "filetypes": [ 152 | "nasm" 153 | ] 154 | }, 155 | "nix": { 156 | "command": "rnix-lsp", 157 | "filetypes": [ 158 | "nix" 159 | ] 160 | }, 161 | "ruff": { 162 | "command": "uv", 163 | "args": [ 164 | "run", 165 | "ruff", 166 | "server" 167 | ], 168 | "filetypes": [ 169 | "python" 170 | ] 171 | }, 172 | "terraform": { 173 | "command": "terraform-ls", 174 | "args": [ 175 | "serve" 176 | ], 177 | "filetypes": [ 178 | "terraform", 179 | "tf" 180 | ], 181 | "initializationOptions": {}, 182 | "settings": {} 183 | } 184 | } 185 | } 186 | -------------------------------------------------------------------------------- /.config/nvim/coc.vim: -------------------------------------------------------------------------------- 1 | " Handles CoC dependencies. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | Plug 'neoclide/coc.nvim', { 'branch': 'release' } 8 | 9 | let g:coc_global_extensions = [ 10 | \ 'coc-tsserver', 11 | \ 'coc-pyright', 12 | \ 'coc-json', 13 | \ 'coc-eslint', 14 | \ ] 15 | 16 | " if hidden is not set, TextEdit might fail. 17 | set hidden 18 | 19 | " Some servers have issues with backup files, see #649 20 | set nobackup 21 | set nowritebackup 22 | 23 | " Term height 24 | let g:coc_terminal_height = 25 25 | 26 | " Use tab for trigger completion with characters ahead and navigate. 27 | " NOTE: There's always complete item selected by default, you may want to enable 28 | " no select by `"suggest.noselect": true` in your configuration file. 29 | " NOTE: Use command ':verbose imap ' to make sure tab is not mapped by 30 | " other plugin before putting this into your config. 31 | inoremap 32 | \ coc#pum#visible() ? coc#pum#next(1) : 33 | \ CheckBackspace() ? "\" : 34 | \ coc#refresh() 35 | inoremap coc#pum#visible() ? coc#pum#prev(1) : "\" 36 | 37 | " Make to accept selected completion item or notify coc.nvim to format 38 | " u breaks current undo, please make your own choice. 39 | inoremap coc#pum#visible() ? coc#pum#confirm() 40 | \: "\u\\=coc#on_enter()\" 41 | 42 | function! CheckBackspace() abort 43 | let col = col('.') - 1 44 | return !col || getline('.')[col - 1] =~# '\s' 45 | endfunction 46 | 47 | " Use to trigger completion. 48 | inoremap coc#refresh() 49 | inoremap coc#refresh() 50 | 51 | " Navigate diagnostics 52 | map D (coc-diagnostic-prev) 53 | map d (coc-diagnostic-next) 54 | 55 | " Remap keys for gotos 56 | nnoremap ff :call CocAction('jumpDefinition', 'vsplit') 57 | nnoremap fg (coc-definition) 58 | map y (coc-type-definition) 59 | map i (coc-implementation) 60 | nnoremap rr :call CocActionAsync("jumpReferences", "split") 61 | 62 | " Remap keys for actions 63 | nmap rn (coc-rename) 64 | 65 | " Use K to show documentation in preview window 66 | nnoremap K :call show_documentation() 67 | 68 | function! s:show_documentation() 69 | if (index(['vim','help'], &filetype) >= 0) 70 | execute 'h '.expand('') 71 | else 72 | call CocAction('doHover') 73 | endif 74 | endfunction 75 | 76 | " Highlight symbol under cursor on CursorHold 77 | autocmd CursorHold * silent call CocActionAsync('highlight') 78 | 79 | " Remap for do codeAction of selected region, ex: `aap` for current paragraph 80 | xmap A (coc-codeaction-selected) 81 | nmap A (coc-codeaction-selected) 82 | 83 | " Remap for do codeAction of current line 84 | nmap ac (coc-codeaction) 85 | " Remap for do codeAction of cursor 86 | nmap ax (coc-codeaction-cursor) 87 | " Fix autofix problem of current line 88 | nmap ado (coc-fix-current) 89 | 90 | " Create mappings for function text object, requires document symbols feature of languageserver. 91 | xmap if (coc-funcobj-i) 92 | xmap af (coc-funcobj-a) 93 | 94 | " Use `:Format` to format current buffer 95 | command! -nargs=0 Format :call CocAction('format') 96 | 97 | " Use `:Fold` to fold current buffer 98 | command! -nargs=? Fold :call CocAction('fold', ) 99 | 100 | " use `:OR` for organize import of current buffer 101 | command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') 102 | 103 | " Add status line support, for integration with other plugin, checkout `:h coc-status` 104 | set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} 105 | 106 | " Using CocList 107 | " Show all diagnostics 108 | nnoremap a :CocList diagnostics 109 | " Manage extensions 110 | nnoremap e :CocList extensions 111 | " Show commands 112 | nnoremap c :CocList commands 113 | " Find symbol of current document 114 | nnoremap o :CocList outline 115 | " Search workspace symbols 116 | nnoremap s :CocList -I symbols 117 | " Do default action for next item. 118 | nnoremap j :CocNext 119 | " Do default action for previous item. 120 | nnoremap k :CocPrev 121 | " Resume latest coc list 122 | nnoremap p :CocListResume 123 | 124 | " Pmenu coloring 125 | hi Pmenu ctermbg=242 126 | 127 | hi CocWarningFloat ctermfg=214 128 | hi CocErrorFloat ctermfg=213 129 | hi CocFloating ctermfg=213 ctermbg=242 130 | -------------------------------------------------------------------------------- /.config/nvim/debug.vim: -------------------------------------------------------------------------------- 1 | " Handles master Neovim configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | let g:vimspector_enable_mappings = 'HUMAN' 8 | 9 | " Rust 10 | nnoremap rst :CocCommand rust-analyzer.run 11 | -------------------------------------------------------------------------------- /.config/nvim/editing.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim editing conviniences. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " Editing convinience 8 | Plug 'terryma/vim-multiple-cursors' 9 | Plug 'tpope/vim-surround' 10 | 11 | " Tab to Spaces 12 | set tabstop=8 softtabstop=2 expandtab shiftwidth=2 smarttab 13 | 14 | let g:projectionist_heuristics = { 15 | \ '*.ts': { 'alternate': '{dirname}/{basename}.test.ts' } 16 | \ } 17 | 18 | let g:dispatch_compilers = { 19 | \ '*.test.ts': 'pnpm jest', 20 | \ } 21 | 22 | autocmd User Rails compiler rspec 23 | -------------------------------------------------------------------------------- /.config/nvim/format.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim formatting. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | Plug 'sbdchd/neoformat' 8 | Plug 'rhysd/vim-clang-format' 9 | 10 | let g:neoformat_try_node_exe = 1 11 | 12 | augroup FormatJSLike 13 | au BufWritePre *.ts,*.tsx Neoformat 14 | augroup END 15 | augroup FormatRubyLike 16 | " au BufWritePre *.ex,*.rb,*.cr Neoformat 17 | augroup END 18 | augroup FormatPythonLike 19 | "au BufWritePre *.py Neoformat yapf 20 | augroup END 21 | augroup FormatML 22 | au BufWritePre *.json,*.graphql,*.html Neoformat 23 | augroup END 24 | augroup FormatStyles 25 | au BufWritePre *.css,*.scss Neoformat prettierd 26 | augroup END 27 | augroup FormatHaskell 28 | au BufWritePre *.hs Neoformat brittany 29 | augroup END 30 | augroup FormatGo 31 | au BufWritePre *.go Neoformat 32 | augroup END 33 | augroup FormatML 34 | au BufWritePre *.ml,*.mli Neoformat 35 | augroup END 36 | 37 | autocmd filetype lisp,scheme setlocal equalprg=/Users/hafiz/.nvm/versions/node/v12.14.1/bin/scmindent 38 | 39 | " let g:clang_format#auto_format = 1 40 | 41 | " Removed in favor of rust-lang/rust.vim 42 | " augroup FormatRust 43 | " au BufWritePre *.rs Neoformat 44 | " augroup END 45 | " 46 | " For rust-lang/rust.vim 47 | let g:rustfmt_autosave = 1 48 | -------------------------------------------------------------------------------- /.config/nvim/frame.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim frame configurations. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " Relative numbers in normal mode 8 | " Absolute numbers in insert mode 9 | set number relativenumber 10 | augroup numbertoggle 11 | au! 12 | au BufEnter,FocusGained,InsertLeave * set relativenumber 13 | au BufLeave,FocusLost,InsertEnter * set norelativenumber 14 | augroup END 15 | 16 | " Nice status bar with word count, file information 17 | " Taken from: 18 | " https://cromwell-intl.com/open-source/vim-word-count.html 19 | let g:word_count="" 20 | function! WordCount() 21 | return g:word_count 22 | endfunction 23 | function! UpdateWordCount() 24 | let lnum = 1 25 | let n = 0 26 | while lnum <= line('$') 27 | let n = n + len(split(getline(lnum))) 28 | let lnum = lnum + 1 29 | endwhile 30 | let g:word_count = n 31 | endfunction 32 | " Update the count when cursor is idle in command or insert mode. 33 | " Update when idle for 1000 msec (default is 4000 msec). 34 | set updatetime=1000 35 | augroup WordCounter 36 | au! CursorHold,CursorHoldI * call UpdateWordCount() 37 | augroup END 38 | " Set statusline, shown here a piece at a time 39 | highlight User1 ctermbg=lightgray ctermfg=16 cterm=bold 40 | set statusline=%1* " Switch to User1 color highlight 41 | set statusline+=\%y " file type 42 | set statusline+=\ %<%F " file name, cut if needed at start 43 | set statusline+=\ %M " modified flag 44 | set statusline+=%= " separator from Left to right justified 45 | set statusline+=\ %{WordCount()}\ words, 46 | set statusline+=\ :%c, " line column 47 | set statusline+=\ %l/%L\ lines,\ %P " percentage through the file 48 | 49 | -------------------------------------------------------------------------------- /.config/nvim/fzf.vim: -------------------------------------------------------------------------------- 1 | " Handles fzf Neovim configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " fzf Install 8 | Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } 9 | Plug 'junegunn/fzf.vim' 10 | 11 | " Ignore non-git files. 12 | let $FZF_DEFAULT_COMMAND = 'fd --type f --hidden --follow --exclude .git --ignore-file .gitignore' 13 | 14 | " Open fzf 15 | nnoremap z :Files 16 | nnoremap / :Ag 17 | nnoremap h :History: 18 | nnoremap b :Buffers 19 | 20 | " An action can be a reference to a function that processes selected lines 21 | function! s:build_quickfix_list(lines) 22 | call setqflist(map(copy(a:lines), '{ "filename": v:val }')) 23 | copen 24 | cc 25 | endfunction 26 | 27 | let g:fzf_action = { 28 | \ 'ctrl-q': function('s:build_quickfix_list'), 29 | \ 'ctrl-o': 'tabnew', 30 | \ 'ctrl-x': 'split', 31 | \ 'ctrl-v': 'vsplit' } 32 | 33 | let g:fzf_layout = { 'window': { 'width': 0.9, 'height': 0.6, 'border': 'sharp' } } 34 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | " HandlesmonitorRetryRequests master Neovim configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | if (empty($TMUX)) 8 | if (has("nvim")) 9 | "For Neovim 0.1.3 and 0.1.4 < https://github.com/neovim/neovim/pull/2198 > 10 | let $NVIM_TUI_ENABLE_TRUE_COLOR=1 11 | endif 12 | "For Neovim > 0.1.5 and Vim > patch 7.4.1799 < https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162 > 13 | "Based on Vim patch 7.4.1770 (`guicolors` option) < https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd > 14 | " < https://github.com/neovim/neovim/wiki/Following-HEAD#20160511 > 15 | if (has("termguicolors")) 16 | set termguicolors 17 | endif 18 | endif 19 | 20 | syntax on 21 | 22 | set mouse= 23 | 24 | let file = expand(':p') 25 | call validate#CheckEnv("NVIM_CONFIG_PATH", string(g:file)) 26 | call validate#CheckEnv("HOME", string(g:file)) 27 | 28 | let &runtimepath .= ','.expand($NVIM_CONFIG_PATH."/autoload") 29 | let &packpath = &runtimepath 30 | 31 | source $NVIM_CONFIG_PATH/mappings.vim 32 | source $NVIM_CONFIG_PATH/window.vim 33 | source $NVIM_CONFIG_PATH/frame.vim 34 | source $NVIM_CONFIG_PATH/visual.vim 35 | source $NVIM_CONFIG_PATH/debug.vim 36 | 37 | " Source all custom configurations 38 | source $NVIM_CONFIG_PATH/plug.vim 39 | 40 | " Prevent 'INSERT (paste)' mode 41 | set nopaste 42 | 43 | " Allow terminal modification 44 | set modifiable 45 | 46 | " Project-specific .vimrc 47 | set exrc 48 | set secure 49 | 50 | lua require("init") 51 | -------------------------------------------------------------------------------- /.config/nvim/latex.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim LaTeX configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | Plug 'vim-latex/vim-latex' 8 | "Plug 'xuhdev/vim-latex-live-preview' 9 | 10 | let g:livepreview_previewer = 'open -a Preview' 11 | let g:vimtex_compiler_progname = 'nvr' 12 | 13 | augroup VimLatexIMAPs 14 | au! 15 | "" Create problem environment 16 | au VimEnter * call IMAP('EPR', "\\begin{problem}{<++>}\<++>\\\end{problem}<++>", 'tex') 17 | "" Create sub-problem environment 18 | au VimEnter * call IMAP('-EPR', "\\begin{problem}[]{<++>}\<++>\\\end{problem}<++>", 'tex') 19 | "" Create solution environment 20 | au VimEnter * call IMAP('ESOL', "\\begin{solution}\<++>\\\end{solution}<++>", 'tex') 21 | "" Create align environment(s) 22 | au VimEnter * call IMAP('EAL', "\\begin{align}\<++>\\\end{align}<++>", 'tex') 23 | au VimEnter * call IMAP('*EAL', "\\begin{align*}\<++>\\\end{align*}<++>", 'tex') 24 | "" Create subsection(s) 25 | au VimEnter * call IMAP('SEC', "\\section{<++>}\<++>", 'tex') 26 | au VimEnter * call IMAP('*SEC', "\\section*{<++>}\<++>", 'tex') 27 | au VimEnter * call IMAP('SSEC', "\\subsection{<++>}\<++>", 'tex') 28 | au VimEnter * call IMAP('SSSEC', "\\subsubsection{<++>}\<++>", 'tex') 29 | "" Create text font 30 | au VimEnter * call IMAP('FTX', '\text{<++>}<++>', 'tex') 31 | "" Create summation 32 | au VimEnter * call IMAP('SUM', '\sum_{<++>}^{<++>}<++>', 'tex') 33 | "" Create boxed expression 34 | au VimEnter * call IMAP('BOX', '\boxed{<++>}<++>', 'tex') 35 | augroup end 36 | 37 | "" Create a matrix with :Matrix 38 | function! CreateMatrix(rows, ...) abort 39 | let cols = a:0 ? a:1 : a:rows 40 | let matrix = ['\begin{bmatrix}'] 41 | call extend(matrix, repeat([repeat('<++> & ', cols - 1) . '<++>\\'], a:rows)) 42 | call add(matrix, '\end{bmatrix}<++>') 43 | call append(line('.') - 1, matrix) 44 | endfunction 45 | command! -nargs=+ Matrix silent call CreateMatrix() 46 | -------------------------------------------------------------------------------- /.config/nvim/lua/init.lua: -------------------------------------------------------------------------------- 1 | require('onedark').load() 2 | 3 | -- require 'nvim-treesitter.install'.compilers = { 'clang++'} 4 | 5 | require'nvim-treesitter.configs'.setup { 6 | -- A list of parser names, or "all" 7 | 8 | -- Install parsers synchronously (only applied to `ensure_installed`) 9 | sync_install = false, 10 | 11 | highlight = { 12 | enable = true, 13 | 14 | disable = { "md", "gitcommit", "teal", "erb", "liquidsoap" }, 15 | 16 | additional_vim_regex_highlighting = false, 17 | }, 18 | } 19 | 20 | require('gitsigns').setup{ 21 | on_attach = function(bufnr) 22 | local gs = package.loaded.gitsigns 23 | 24 | local function map(mode, l, r, opts) 25 | opts = opts or {} 26 | opts.buffer = bufnr 27 | vim.keymap.set(mode, l, r, opts) 28 | end 29 | 30 | -- Navigation 31 | map('n', ']c', function() 32 | if vim.wo.diff then return ']c' end 33 | vim.schedule(function() gs.next_hunk() end) 34 | return '' 35 | end, {expr=true}) 36 | 37 | map('n', '[c', function() 38 | if vim.wo.diff then return '[c' end 39 | vim.schedule(function() gs.prev_hunk() end) 40 | return '' 41 | end, {expr=true}) 42 | 43 | -- Actions 44 | map({'n', 'v'}, 'hs', ':Gitsigns stage_hunk') 45 | map({'n', 'v'}, 'hr', ':Gitsigns reset_hunk') 46 | map('n', 'hS', gs.stage_buffer) 47 | map('n', 'hu', gs.undo_stage_hunk) 48 | map('n', 'hR', gs.reset_buffer) 49 | map('n', 'hp', gs.preview_hunk) 50 | map('n', 'hb', function() gs.blame_line{full=true} end) 51 | map('n', 'tb', gs.toggle_current_line_blame) 52 | map('n', 'hd', gs.diffthis) 53 | map('n', 'hD', function() gs.diffthis('~') end) 54 | map('n', 'td', gs.toggle_deleted) 55 | 56 | -- Text object 57 | map({'o', 'x'}, 'ih', ':Gitsigns select_hunk') 58 | end 59 | } 60 | 61 | require("ssr").setup { 62 | border = "rounded", 63 | min_width = 50, 64 | min_height = 5, 65 | max_width = 120, 66 | max_height = 25, 67 | keymaps = { 68 | close = "q", 69 | next_match = "n", 70 | prev_match = "N", 71 | replace_confirm = "", 72 | replace_all = "", 73 | }, 74 | } 75 | 76 | require("supermaven-nvim").setup({}) 77 | 78 | vim.keymap.set({ "n", "x" }, "sr", function() require("ssr").open() end) 79 | 80 | -- deps: 81 | require('img-clip').setup ({ 82 | -- use recommended settings from above 83 | }) 84 | require('copilot').setup ({ 85 | -- use recommended settings from above 86 | }) 87 | require('avante_lib').load() 88 | require('avante').setup ({ 89 | -- Your config here! 90 | }) 91 | -------------------------------------------------------------------------------- /.config/nvim/mappings.vim: -------------------------------------------------------------------------------- 1 | " Handles general Neovim mappings. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | let g:mapleader = "," 8 | 9 | " Remap escape 10 | inoremap kj 11 | tnoremap kj 12 | 13 | " Remove highlight 14 | nnoremap n :noh 15 | " Open vimconfig 16 | nnoremap v :edit $MYVIMRC 17 | 18 | " View directory of currently-edited file 19 | nnoremap ls :edit %:p:h 20 | 21 | " Save current file as copy 22 | nmap sa :saveas %:p:h/ 23 | 24 | " Remap sourcing file 25 | nnoremap so :so % 26 | 27 | " Remap normal mode command key 28 | nnoremap ; : 29 | nnoremap : ; 30 | nnoremap w :w 31 | nnoremap e :noa w 32 | nnoremap q :q 33 | 34 | " Auto-close brackets 35 | inoremap ( ()<++> 36 | inoremap [ []<++> 37 | inoremap { {}<++> 38 | 39 | " Execute command 40 | "" Command specified in VimScript 41 | nnoremap x :tabnew\|pu=execute('\') 42 | tnoremap x :tabnew\|pu=execute('\') 43 | "" Command specified by visual selection 44 | vnoremap X "xy:@x 45 | 46 | " Open new terminal at first tab 47 | nnoremap T :tabnew+term\|tabm0 48 | -------------------------------------------------------------------------------- /.config/nvim/pl.vim: -------------------------------------------------------------------------------- 1 | " Handles Programming Language dependencies. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " PLs 8 | Plug 'sheerun/vim-polyglot' 9 | Plug 'vim-scripts/DoxygenToolkit.vim' 10 | Plug 'ziglang/zig.vim' 11 | Plug 'IngoHeimbach/neco-vim' 12 | Plug 'neovimhaskell/haskell-vim' 13 | Plug 'itspriddle/vim-shellcheck' 14 | " Plug 'kovisoft/slimv' 15 | Plug 'ocaml/vim-ocaml' 16 | Plug 'whonore/Coqtail' 17 | 18 | " Shellcheck 19 | au FileType sh nnoremap c :ShellCheck! 20 | 21 | " let g:ocaml_folding=1 22 | let g:markdown_folding=1 23 | -------------------------------------------------------------------------------- /.config/nvim/plug.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim Plug dependencies. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | let file = expand(':p') 8 | call validate#CheckEnv("NVIM_SHARE_PATH", string(g:file)) 9 | call validate#CheckEnv("NVIM_CONFIG_PATH", string(g:file)) 10 | 11 | call plug#begin($NVIM_SHARE_PATH.'/plugged') 12 | 13 | source $NVIM_CONFIG_PATH/editing.vim 14 | source $NVIM_CONFIG_PATH/format.vim 15 | source $NVIM_CONFIG_PATH/latex.vim 16 | 17 | " source $NVIM_CONFIG_PATH/ycm.vim 18 | source $NVIM_CONFIG_PATH/coc.vim 19 | source $NVIM_CONFIG_PATH/fzf.vim 20 | 21 | source $NVIM_CONFIG_PATH/pl.vim 22 | 23 | " Remote Neovim 24 | Plug 'mhinz/neovim-remote', { 'do': 'pip3 install -e .' } 25 | 26 | " Bazel 27 | Plug 'google/vim-maktaba' 28 | Plug 'bazelbuild/vim-bazel' 29 | 30 | " Git 31 | Plug 'tpope/vim-fugitive' 32 | Plug 'lewis6991/gitsigns.nvim' 33 | Plug 'rhysd/conflict-marker.vim' 34 | 35 | " Markdown 36 | " Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } 37 | " Plug 'preservim/tagbar' 38 | 39 | let todoist = { 'key': $TODOIST_API_KEY } 40 | Plug 'romgrk/todoist.vim', { 'do': ':TodoistInstall' } 41 | 42 | Plug 'dstein64/vim-startuptime' 43 | 44 | Plug 'nvim-treesitter/nvim-treesitter', { 'do': ':TSUpdate' } 45 | 46 | " Plug 'puremourning/vimspector' 47 | 48 | Plug 'rust-lang/rust.vim' 49 | 50 | Plug 'cshuaimin/ssr.nvim' 51 | 52 | Plug 'ruanyl/vim-gh-line' 53 | 54 | " Theme 55 | Plug 'navarasu/onedark.nvim' 56 | 57 | " Curse? 58 | Plug 'github/copilot.vim' 59 | Plug 'supermaven-inc/supermaven-nvim' 60 | 61 | Plug 'preservim/nerdtree' 62 | 63 | Plug 'tpope/vim-rails' 64 | Plug 'tpope/vim-projectionist' 65 | Plug 'tpope/vim-dispatch' 66 | 67 | Plug 'samjwill/nvim-unception' 68 | 69 | " Avante 70 | " Deps 71 | Plug 'stevearc/dressing.nvim' 72 | Plug 'nvim-lua/plenary.nvim' 73 | Plug 'MunifTanjim/nui.nvim' 74 | 75 | " Optional deps 76 | Plug 'nvim-tree/nvim-web-devicons' "or Plug 'echasnovski/mini.icons' 77 | Plug 'HakonHarnes/img-clip.nvim' 78 | Plug 'zbirenbaum/copilot.lua' 79 | 80 | Plug 'yetone/avante.nvim', { 'branch': 'main', 'do': 'make' } 81 | " Avante end 82 | 83 | call plug#end() 84 | 85 | let g:unception_open_buffer_in_new_tab = 1 86 | -------------------------------------------------------------------------------- /.config/nvim/visual.vim: -------------------------------------------------------------------------------- 1 | " Handles Neovim visual selection configurations. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " Replace all occurences of visual selection. 8 | "" Safe version: one at a time 9 | vnoremap r "hy:%s/h//gc 10 | "" Unsafe version: all at once 11 | vnoremap R "hy:%s/h//g 12 | 13 | " Copy to clipboard 14 | vnoremap c "+y 15 | 16 | " Visual select line without leading whitespace 17 | nnoremap Z ^vg_ 18 | 19 | let g:gh_open_command = 'fn() { echo "$@" | pbcopy; }; fn ' 20 | -------------------------------------------------------------------------------- /.config/nvim/window.vim: -------------------------------------------------------------------------------- 1 | " Handles window and tab Neovim configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | " Split to bottom and right 8 | set splitbelow 9 | set splitright 10 | 11 | " Tabs 12 | nnoremap H gT 13 | nnoremap L gt 14 | 15 | " Windows 16 | let g:C_Ctrl_j = 'off' 17 | noremap j 18 | nnoremap k 19 | nnoremap l 20 | nnoremap h 21 | 22 | " Error columns beyond 100 23 | " To override, set colorcolumn in a project-specific .nvimrc 24 | set colorcolumn=80 25 | highlight ColorColumn ctermbg=8 26 | 27 | " Highlight extra whitespace 28 | au BufWinEnter match Error /\s\+$/ 29 | au InsertEnter match Error /\s\+\%#\@ match Error /\s\+$/ 31 | au BufWinLeave call clearmatches() 32 | 33 | " Auto-wrap at 100 columns 34 | " To override, set textwidth in a project-specific .nvimrc 35 | set textwidth=80 36 | set formatoptions+=t 37 | 38 | " Diff highlights 39 | " hi DiffText ctermbg=242 40 | " hi DiffChange ctermbg=53 41 | " hi DiffDelete ctermbg=8 42 | " hi DiffAdd ctermbg=22 43 | 44 | au BufRead,BufNewFile *.nasm set filetype=nasm 45 | au BufRead,BufNewFile *.ll set filetype=llvm 46 | au BufRead,BufNewFile *.roc set filetype=roc syntax=elm 47 | -------------------------------------------------------------------------------- /.config/nvim/ycm.vim: -------------------------------------------------------------------------------- 1 | " Handles YCM Neovim configuration. 2 | " This file has no copyright. 3 | " 4 | " Author: @ayazhafiz 5 | " Source: https://github.com/ayazhafiz/hmcd 6 | 7 | Plug 'Valloric/YouCompleteMe', { 'do': './install.py --clang-completer --racer-completer' } 8 | Plug 'rdnetto/YCM-Generator', { 'branch': 'stable'} 9 | 10 | let g:ycm_always_populate_location_list = 1 11 | let g:ycm_confirm_extra_conf = 0 12 | let g:ycm_show_diagnostics_ui = 1 13 | let g:ycm_use_clangd = 0 14 | let g:ycm_autoclose_preview_window_after_completion = 1 15 | 16 | let g:ycm_global_ycm_extra_conf = '~/global_extra_conf.py' 17 | 18 | let g:ycm_language_server = [ 19 | \ { 20 | \ 'name': 'ruby', 21 | \ 'cmdline': [ 'solargraph', 'stdio' ], 22 | \ 'filetypes': [ 'ruby' ], 23 | \ }, 24 | \ { 25 | \ 'name': 'fortran', 26 | \ 'cmdline': [ 'fortls', '--symbol_skip_mem', '--incrmental_sync', '--autocomplete_no_prefix' ], 27 | \ 'filetypes': [ 'fortran' ], 28 | \ }, 29 | \ ] 30 | 31 | let g:ycm_semantic_triggers = { 32 | \ 'c': [ 're!\w{1}' ], 33 | \ 'cpp,cuda,objcpp': [ 're!\w{1}' ], 34 | \ 'python': [ 're!\w{1}' ], 35 | \ 'ruby,rust': ['.', '::'], 36 | \ 'vim': [ 're!\w{1}' ], 37 | \ } 38 | 39 | let g:ycm_rust_src_path = "$HOME/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/src" 40 | 41 | let g:ycm_python_interpreter_path = 'python' 42 | let g:ycm_python_sys_path = [] 43 | let g:ycm_extra_conf_vim_data = [ 44 | \ 'g:ycm_python_interpreter_path', 45 | \ 'g:ycm_python_sys_path' 46 | \] 47 | 48 | "" Faster GoToDefinition 49 | nnoremap f :YcmCompleter GoToDefinition 50 | nnoremap F :tab split \| YcmCompleter GoToDefinition 51 | " Use K to show documentation in preview window 52 | nnoremap K :YcmCompleter GetDoc 53 | 54 | " Pmenu coloring 55 | hi Pmenu ctermbg=242 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | !.cargo/ 4 | .cargo/* 5 | !/.cargo/*.toml 6 | 7 | !.chunkwmrc 8 | !.gitignore 9 | !.gitignore_global 10 | !.gitmodules 11 | !.nvimrc 12 | !.purepower 13 | !.racketrc 14 | 15 | !.rustup/ 16 | .rustup/* 17 | !.rustup/*.toml 18 | 19 | !.rvmrc 20 | !.scripts/ 21 | !.skhdrc 22 | !.tmux.conf 23 | !.nvimrc 24 | !.p10k.zsh 25 | !.vimrc 26 | !.yabairc 27 | !.zsh_etc/ 28 | !.zshrc 29 | !Brewfile* 30 | !README.md 31 | 32 | # Ignore only superfluous configurations. 33 | 34 | !.config/ 35 | .config/* 36 | 37 | !.config/nvim 38 | .config/nvim/* 39 | !.config/nvim/autoload 40 | !.config/nvim/*.json 41 | !.config/nvim/*.vim 42 | 43 | !.config/alacritty/ 44 | .config/alacritty/* 45 | !.config/alacritty/*.yml 46 | -------------------------------------------------------------------------------- /.gitignore_global: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .ycm_extra_conf.py 3 | *.out 4 | *.log 5 | *.aux 6 | *.toc 7 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule ".scripts/z"] 2 | path = .scripts/z 3 | url = https://github.com/rupa/z 4 | [submodule ".scripts/scripts"] 5 | path = .scripts/scripts 6 | url = https://github.com/ayazhafiz/scripts 7 | -------------------------------------------------------------------------------- /.purepower: -------------------------------------------------------------------------------- 1 | # Original location: https://github.com/romkatv/dotfiles-public/blob/master/.purepower. 2 | # If you copy this file, keep the link to the original and this sentence intact; you are encouraged 3 | # to change everything else. 4 | # 5 | # This file defines configuration options for Powerlevel10k ZSH theme that will make your prompt 6 | # lightweight and sleek, unlike the default bulky look. You can also use it with Powerlevel9k -- a 7 | # great choice if you need an excuse to have a cup of coffee after every command you type. 8 | # 9 | # This is how it'll look: 10 | # https://raw.githubusercontent.com/romkatv/dotfiles-public/master/dotfiles/purepower.png. 11 | # 12 | # Pure Power needs to be installed in addition to Powerlevel10k, not instead of it. Pure Power 13 | # defines a set of configuration parameters that affect the styling of Powerlevel10k; there is no 14 | # code in it. 15 | # 16 | # PHILOSOPHY 17 | # 18 | # This configuration is made for those who care about style and value clear UI without redundancy 19 | # and tacky ornaments that serve no function. 20 | # 21 | # * No overwhelming background that steals attention from real content on your screen. 22 | # * No redundant icons. A clock icon next to the current time takes space without conveying any 23 | # information. This is your personal prompt -- you don't need an icon to remind you that the 24 | # segment on the right shows current time. 25 | # * No separators between prompt segments. Different foreground colors are enough to keep them 26 | # visually distinct. 27 | # * Bright colors for important things, low-contrast colors for everything else. 28 | # * No needless color switching. The number of stashes you have in a git repository is always 29 | # green. Since its meaning is the same in a clean and in a dirty repository, it doesn't change 30 | # color. 31 | # 32 | # LEFT PROMPT 33 | # 34 | # * Your current directory is bright blue when under $HOME and brownish everywhere else. 35 | # * A lock icon is shown on the far left if you cannot write to the current directory. 36 | # * The prompt symbol on the left is '❮' when vicmd keymap is active and '❯' otherwise. It's green 37 | # if the last command has succeeded and red if it has failed. 38 | # * Git prompt colors: 39 | # * Grey: prompt is refreshing in the background (happens only in large repositories). 40 | # * Green: clean (no stated or unstaged changes and no untracked files). 41 | # * Yellow: dirty (some stated or unstaged changes). 42 | # * Teal: some untracked files but otherwise clean (no staged or unstaged changes). 43 | # * Git prompt icons: 44 | # * '@12345678' (git prompt color): detached HEAD at commit 12345678. 45 | # * 'my-feature' (git prompt color): on branch my-feature. 46 | # * 'my-feature|master' (git prompt color): on branch my-feature tracking remote branch master. 47 | # * '#my-release' (git prompt color): on tag my-release. 48 | # * '+' (yellow): staged changes. 49 | # * '!' (yellow): unstaged changes. 50 | # * '?' (teal): untracked files. 51 | # * '⇡42' (green): 42 commits ahead of remote. 52 | # * '⇣42' (green): 42 commits behind remote. 53 | # * '*42' (green): 42 stashes. 54 | # 55 | # RIGHT PROMPT 56 | # 57 | # * Current time on the far right. 58 | # * Last command execution time (in seconds). 59 | # * Error code with an optional signal name of the last command if it failed, in red. 60 | # * A gear icon if you have background jobs. 61 | # * An unlocked lock icon if you are root. 62 | # * If you type `custom_rprompt() { echo 'message' }`, you'll get 'message' shown on the right. 63 | # Useful to integrate with your scripts that change some sort of state/environment. 64 | # 65 | # INSTALLATION 66 | # 67 | # 1. Copy this file to your home directory. 68 | # 69 | # ( cd && curl -fsSLO https://raw.githubusercontent.com/romkatv/dotfiles-public/master/.purepower ) 70 | # 71 | # 2. Source the file from ~/.zshrc. 72 | # 73 | # echo 'source ~/.purepower' >>! ~/.zshrc 74 | # 75 | # 3. Enable Powerlevel10k ZSH theme. The easiest way is this: 76 | # 77 | # git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k 78 | # echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc 79 | # 80 | # If you are using a plugin manager, see https://github.com/romkatv/powerlevel10k for installation 81 | # options. 82 | # 83 | # CONFIGURATION 84 | # 85 | # You can set PURE_POWER_MODE before sourcing ~/.purepower to restrict the range of characters it 86 | # uses. 87 | # 88 | # * PURE_POWER_MODE=fancy use unicode characters in the prompt (default) 89 | # * PURE_POWER_MODE=portable use only ascii characters in the prompt 90 | # 91 | # You can switch mode on the fly by setting PURE_POWER_MODE and executing zsh. Useful when you end 92 | # up in an environment without a capable font and see gibberish on your screen. 93 | # 94 | # PURE_POWER_MODE=portable exec zsh # switch to portable mode 95 | # PURE_POWER_MODE=fancy exec zsh # switch to fancy mode 96 | # 97 | # To configure what gets shown in the prompt, edit ~/.purepower. See 98 | # https://github.com/romkatv/powerlevel10k/blob/master/README.md#installation-and-configuration for 99 | # configuration options. Prompt configuration is a deeply personal affair, so take your time to 100 | # craft the right prompt just for you. The stock configuration is merely a starting point, a source 101 | # of inspiration, a frame for your own creation. Mercilessly slash everything of little value to 102 | # you. Don't care how long commands take to execute? Get rid of command_execution_time segment! 103 | # Boldly mold prompt pieces useful to you to ensure a perfect fit to your workflow and aesthetic 104 | # preferences. Take full advantage of powerlevel over 9k! 105 | # 106 | # Remember that colors looks differently in different terminals. Use this script to choose what 107 | # works best for you. 108 | # 109 | # for ((i = 0; i != 256; ++i)); do print -P "%F{${(l:3::0:)i}}${(l:3::0:)i} TEST%f"; done 110 | # 111 | # Keep in mind that some prompt segments can appear and disappear depending on the state of your 112 | # environment. Make sure colors work well in every situation. Neighboring segments should always 113 | # have distinct colors. 114 | # 115 | # If you are using Pure Power with Powerlevel9k rather than Powerlevel10k, you'll need to set 116 | # PURE_POWER_USE_P10K_EXTENSIONS=0 before sourcing ~/.purepower or you'll see gibberish in your left 117 | # prompt. This option will turn off vi keymap integration, so your prompt symbol will always be '❯'. 118 | # Your prompt will also be 10-100 times slower with Powerlevel9k. This is not the fault of Pure 119 | # Power. Powerlevel9k is slow with any styling. 120 | # 121 | # ATTRIBUTION 122 | # 123 | # Visual design of this configuration borrows heavily from https://github.com/sindresorhus/pure. 124 | # Recreation of Pure look and feel in Powerlevel10k was inspired by 125 | # https://github.com/iboyperson/p9k-theme-pastel. The founding myth can be found at 126 | # https://www.reddit.com/r/zsh/comments/b45w6v/. 127 | 128 | if test -z "${ZSH_VERSION}"; then 129 | echo "purepower: unsupported shell; try zsh instead" >&2 130 | return 1 131 | exit 1 132 | fi 133 | 134 | () { 135 | emulate -L zsh && setopt no_unset pipe_fail 136 | 137 | if (( ARGC )); then 138 | echo -E "Usage: source ~/.purepower" >&2 139 | return 1 140 | fi 141 | 142 | local mode=${PURE_POWER_MODE:-fancy} 143 | case $mode in 144 | fancy) 145 | local vi_insert=$'\u276F' 146 | local vi_cmd=$'\u276E' 147 | local lock=$'\uF023' 148 | local incoming=$'\u21E3' 149 | local outgoing=$'\u21E1' 150 | local root=$'\uF09C' 151 | local jobs=$'\uF013' 152 | ;; 153 | *) 154 | if [[ $mode != portable ]]; then 155 | echo -En "purepower: invalid mode: ${(qq)mode}; " >&2 156 | echo -E "valid options are 'fancy' and 'portable'; falling back to 'portable'" >&2 157 | fi 158 | local vi_insert='>' 159 | local vi_cmd='<' 160 | local lock='X' 161 | local incoming='<' 162 | local outgoing='>' 163 | local root='#' 164 | local jobs='%%' 165 | ;; 166 | esac 167 | 168 | typeset -ga POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( 169 | dir_writable dir vcs) 170 | 171 | typeset -ga POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( 172 | status command_execution_time root_indicator background_jobs custom_rprompt time) 173 | 174 | if (( ${PURE_POWER_USE_P10K_EXTENSIONS:-1} )); then 175 | local p="\${\${\${KEYMAP:-0}:#vicmd}:+${${vi_insert//\\/\\\\}//\}/\\\}}}" 176 | p+="\${\${\$((!\${#\${KEYMAP:-0}:#vicmd})):#0}:+${${vi_cmd//\\/\\\\}//\}/\\\}}}" 177 | else 178 | p=$vi_insert 179 | fi 180 | 181 | typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="%(?.%F{002}${p}%f.%F{009}${p}%f) " 182 | typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=$'\n' 183 | typeset -g POWERLEVEL9K_PROMPT_ON_NEWLINE=true 184 | typeset -g POWERLEVEL9K_RPROMPT_ON_NEWLINE=false 185 | 186 | typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= 187 | typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' 188 | typeset -g POWERLEVEL9K_WHITESPACE_BETWEEN_{LEFT,RIGHT}_SEGMENTS= 189 | 190 | typeset -g POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_BACKGROUND=none 191 | typeset -g POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_VISUAL_IDENTIFIER_COLOR=003 192 | typeset -g POWERLEVEL9K_LOCK_ICON=$lock 193 | 194 | typeset -g POWERLEVEL9K_DIR_{ETC,HOME,HOME_SUBFOLDER,DEFAULT}_BACKGROUND=none 195 | typeset -g POWERLEVEL9K_DIR_{ETC,DEFAULT}_FOREGROUND=209 196 | typeset -g POWERLEVEL9K_DIR_{HOME,HOME_SUBFOLDER}_FOREGROUND=039 197 | typeset -g POWERLEVEL9K_{ETC,FOLDER,HOME,HOME_SUB}_ICON= 198 | 199 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED,LOADING}_BACKGROUND=none 200 | typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=076 201 | typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=014 202 | typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=011 203 | typeset -g POWERLEVEL9K_VCS_LOADING_FOREGROUND=244 204 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_UNTRACKEDFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND 205 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_UNSTAGEDFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_MODIFIED_FOREGROUND 206 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_STAGEDFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_MODIFIED_FOREGROUND 207 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_INCOMING_CHANGESFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_CLEAN_FOREGROUND 208 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_OUTGOING_CHANGESFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_CLEAN_FOREGROUND 209 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_STASHFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_CLEAN_FOREGROUND 210 | typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_ACTIONFORMAT_FOREGROUND=001 211 | typeset -g POWERLEVEL9K_VCS_LOADING_ACTIONFORMAT_FOREGROUND=$POWERLEVEL9K_VCS_LOADING_FOREGROUND 212 | typeset -g POWERLEVEL9K_VCS_{GIT,GIT_GITHUB,GIT_BITBUCKET,GIT_GITLAB,BRANCH}_ICON= 213 | typeset -g POWERLEVEL9K_VCS_REMOTE_BRANCH_ICON=$'\b|' 214 | typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@' 215 | typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON=$'\b?' 216 | typeset -g POWERLEVEL9K_VCS_UNSTAGED_ICON=$'\b!' 217 | typeset -g POWERLEVEL9K_VCS_STAGED_ICON=$'\b+' 218 | typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=$incoming 219 | typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=$outgoing 220 | typeset -g POWERLEVEL9K_VCS_STASH_ICON='*' 221 | typeset -g POWERLEVEL9K_VCS_TAG_ICON=$'\b#' 222 | 223 | typeset -g POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND=none 224 | typeset -g POWERLEVEL9K_ROOT_ICON=$root 225 | 226 | typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false 227 | typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=none 228 | typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_COLOR=002 229 | typeset -g POWERLEVEL9K_BACKGROUND_JOBS_ICON=$jobs 230 | 231 | typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 232 | typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=none 233 | typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101 234 | typeset -g POWERLEVEL9K_EXECUTION_TIME_ICON= 235 | 236 | typeset -g POWERLEVEL9K_TIME_BACKGROUND=none 237 | typeset -g POWERLEVEL9K_TIME_FOREGROUND=244 238 | typeset -g POWERLEVEL9K_TIME_ICON= 239 | 240 | typeset -g POWERLEVEL9K_STATUS_OK=false 241 | typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=none 242 | typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=009 243 | typeset -g POWERLEVEL9K_CARRIAGE_RETURN_ICON= 244 | 245 | typeset -g POWERLEVEL9K_CUSTOM_RPROMPT=custom_rprompt 246 | typeset -g POWERLEVEL9K_CUSTOM_RPROMPT_BACKGROUND=none 247 | typeset -g POWERLEVEL9K_CUSTOM_RPROMPT_FOREGROUND=012 248 | 249 | function custom_rprompt() {} # redefine this to show stuff in custom_rprompt segment 250 | } "$@" 251 | -------------------------------------------------------------------------------- /.racketrc: -------------------------------------------------------------------------------- 1 | (require xrepl) 2 | -------------------------------------------------------------------------------- /.rustup/settings.toml: -------------------------------------------------------------------------------- 1 | default_host_triple = "x86_64-apple-darwin" 2 | default_toolchain = "nightly-x86_64-apple-darwin" 3 | profile = "minimal" 4 | version = "12" 5 | 6 | [overrides] 7 | "/Users/hafiz/Code/Roc/roc" = "1.58-x86_64-apple-darwin" 8 | "/Users/hafiz/Code/Rust/MIRAI" = "nightly-2020-09-10-x86_64-apple-darwin" 9 | -------------------------------------------------------------------------------- /.scripts/cc-config: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Generates a "compile_commands.json" file in a CMake project. 3 | # This intended for usage with C++ langauge services like ccls. 4 | # Usage: 5 | # cc-config 6 | set -ex 7 | 8 | cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 9 | -------------------------------------------------------------------------------- /.skhdrc: -------------------------------------------------------------------------------- 1 | # NOTE(koekeishiya): A list of all built-in modifier and literal keywords can 2 | # be found at https://github.com/koekeishiya/skhd/issues/1 3 | 4 | # open terminal 5 | # cmd - return : Applications/Alacritty.app/Contents/MacOS/alacritty 6 | 7 | # open Safari 8 | # cmd + shift - return : osascript -e 'tell application "Safari" to make new document' 9 | 10 | # close focused window 11 | alt - w : yabai -m window --close 12 | 13 | # focus window 14 | alt - h : yabai -m window --focus west 15 | alt - j : yabai -m window --focus south 16 | alt - k : yabai -m window --focus north 17 | alt - l : yabai -m window --focus east 18 | 19 | # cmd - j : yabai -m window --focus prev 20 | # cmd - k : yabai -m window --focus next 21 | 22 | # swap window 23 | shift + alt - h : yabai -m window --swap west 24 | shift + alt - j : yabai -m window --swap south 25 | shift + alt - k : yabai -m window --swap north 26 | shift + alt - l : yabai -m window --swap east 27 | 28 | # move window 29 | shift + cmd - h : yabai -m window --warp west 30 | shift + cmd - j : yabai -m window --warp south 31 | shift + cmd - k : yabai -m window --warp north 32 | shift + cmd - l : yabai -m window --warp east 33 | 34 | # balance size of windows 35 | shift + alt - 0 : yabai -m space --balance 36 | 37 | # make floating window fill screen 38 | shift + alt - up : yabai -m window --grid 1:1:0:0:1:1 39 | 40 | # make floating window fill left-half of screen 41 | shift + alt - left : yabai -m window --grid 1:2:0:0:1:1 42 | 43 | # make floating window fill right-half of screen 44 | shift + alt - right : yabai -m window --grid 1:2:1:0:1:1 45 | 46 | # create desktop, move window and follow focus - uses jq for parsing json (brew install jq) 47 | shift + cmd - n : yabai -m space --create && \ 48 | index="$(yabai -m query --displays --display | jq '.spaces[-1]')" && \ 49 | yabai -m window --space "${index}" && \ 50 | yabai -m space --focus "${index}" && \ 51 | yabai -m space --toggle padding && \ 52 | yabai -m space --toggle gap 53 | 54 | # create desktop and follow focus - uses jq for parsing json (brew install jq) 55 | cmd + alt - n : yabai -m space --create;\ 56 | index="$(yabai -m query --displays --display | jq '.spaces[-1]')" && \ 57 | yabai -m space --focus "${index}" && \ 58 | yabai -m space --toggle padding && \ 59 | yabai -m space --toggle gap 60 | 61 | # destroy desktop 62 | cmd + alt - w : yabai -m space --destroy 63 | 64 | # fast focus desktop 65 | cmd + alt - x : yabai -m space --focus recent 66 | cmd + alt - z : yabai -m space --focus prev 67 | cmd + alt - c : yabai -m space --focus next 68 | cmd + alt - 1 : yabai -m space --focus 1 69 | cmd + alt - 2 : yabai -m space --focus 2 70 | cmd + alt - 3 : yabai -m space --focus 3 71 | cmd + alt - 4 : yabai -m space --focus 4 72 | cmd + alt - 5 : yabai -m space --focus 5 73 | cmd + alt - 6 : yabai -m space --focus 6 74 | cmd + alt - 7 : yabai -m space --focus 7 75 | cmd + alt - 8 : yabai -m space --focus 8 76 | cmd + alt - 9 : yabai -m space --focus 9 77 | cmd + alt - 0 : yabai -m space --focus 10 78 | 79 | # send window to desktop and follow focus 80 | shift + cmd - x : yabai -m window --space recent; yabai -m space --focus recent 81 | shift + cmd - z : yabai -m window --space prev; yabai -m space --focus prev 82 | shift + cmd - c : yabai -m window --space next; yabai -m space --focus next 83 | shift + cmd - 1 : yabai -m window --space 1; yabai -m space --focus 1 84 | shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2 85 | shift + cmd - 3 : yabai -m window --space 3; yabai -m space --focus 3 86 | shift + cmd - 4 : yabai -m window --space 4; yabai -m space --focus 4 87 | shift + cmd - 5 : yabai -m window --space 5; yabai -m space --focus 5 88 | shift + cmd - 6 : yabai -m window --space 6; yabai -m space --focus 6 89 | shift + cmd - 7 : yabai -m window --space 7; yabai -m space --focus 7 90 | shift + cmd - 8 : yabai -m window --space 8; yabai -m space --focus 8 91 | shift + cmd - 9 : yabai -m window --space 9; yabai -m space --focus 9 92 | shift + cmd - 0 : yabai -m window --space 10; yabai -m space --focus 10 93 | 94 | # focus monitor 95 | ctrl + alt - x : yabai -m display --focus recent 96 | ctrl + alt - z : yabai -m display --focus prev 97 | ctrl + alt - c : yabai -m display --focus next 98 | ctrl + alt - 1 : yabai -m display --focus 1 99 | ctrl + alt - 2 : yabai -m display --focus 2 100 | ctrl + alt - 3 : yabai -m display --focus 3 101 | 102 | # send window to monitor and follow focus 103 | ctrl + cmd - x : yabai -m window --display recent; yabai -m display --focus recent 104 | ctrl + cmd - z : yabai -m window --display prev; yabai -m display --focus prev 105 | ctrl + cmd - c : yabai -m window --display next; yabai -m display --focus next 106 | ctrl + cmd - 1 : yabai -m window --display 1; yabai -m display --focus 1 107 | ctrl + cmd - 2 : yabai -m window --display 2; yabai -m display --focus 2 108 | ctrl + cmd - 3 : yabai -m window --display 3; yabai -m display --focus 3 109 | 110 | # move window 111 | shift + ctrl - a : yabai -m window --move rel:-20:0 112 | shift + ctrl - s : yabai -m window --move rel:0:20 113 | shift + ctrl - w : yabai -m window --move rel:0:-20 114 | shift + ctrl - d : yabai -m window --move rel:20:0 115 | 116 | # increase window size 117 | shift + alt - a : yabai -m window --resize left:-20:0 118 | shift + alt - s : yabai -m window --resize bottom:0:20 119 | shift + alt - w : yabai -m window --resize top:0:-20 120 | shift + alt - d : yabai -m window --resize right:20:0 121 | 122 | # decrease window size 123 | shift + cmd - a : yabai -m window --resize left:20:0 124 | shift + cmd - s : yabai -m window --resize bottom:0:-20 125 | shift + cmd - w : yabai -m window --resize top:0:20 126 | shift + cmd - d : yabai -m window --resize right:-20:0 127 | 128 | # set insertion point in focused container 129 | ctrl + alt - h : yabai -m window --insert west 130 | ctrl + alt - j : yabai -m window --insert south 131 | ctrl + alt - k : yabai -m window --insert north 132 | ctrl + alt - l : yabai -m window --insert east 133 | 134 | # rotate tree 135 | alt - r : yabai -m space --rotate 90 136 | 137 | # mirror tree y-axis 138 | alt - y : yabai -m space --mirror y-axis 139 | 140 | # mirror tree x-axis 141 | alt - x : yabai -m space --mirror x-axis 142 | 143 | # toggle desktop offset 144 | alt - a : yabai -m space --toggle padding; yabai -m space --toggle gap 145 | 146 | # toggle window parent zoom 147 | alt - d : yabai -m window --toggle zoom-parent 148 | 149 | # toggle window fullscreen zoom 150 | alt - f : yabai -m window --toggle zoom-fullscreen 151 | 152 | # toggle window native fullscreen 153 | shift + alt - f : yabai -m window --toggle native-fullscreen 154 | 155 | # toggle window border 156 | shift + alt - b : yabai -m window --toggle border 157 | 158 | # toggle window split type 159 | alt - e : yabai -m window --toggle split 160 | 161 | # float / unfloat window and center on screen 162 | alt - t : yabai -m window --toggle float;\ 163 | yabai -m window --grid 4:4:1:1:2:2 164 | 165 | # toggle sticky 166 | alt - s : yabai -m window --toggle sticky 167 | 168 | # toggle sticky, float and resize to picture-in-picture size 169 | alt - p : yabai -m window --toggle sticky;\ 170 | yabai -m window --grid 5:5:4:0:1:1 171 | 172 | # change layout of desktop 173 | ctrl + alt - a : yabai -m space --layout bsp 174 | ctrl + alt - d : yabai -m space --layout float 175 | -------------------------------------------------------------------------------- /.tmux.conf: -------------------------------------------------------------------------------- 1 | set -sg escape-time 0 2 | 3 | unbind C-b 4 | set-option -g prefix ` 5 | bind ` send-prefix 6 | 7 | # Improve colors 8 | set -g default-terminal 'screen-256color' 9 | 10 | # Set scrollback buffer to 10000 11 | set -g history-limit 10000 12 | 13 | # Customize the status line 14 | set -g status-style fg=green,bg=default 15 | 16 | setw -g aggressive-resize on 17 | 18 | bind -n M-S-Left resize-pane -L 19 | bind -n M-S-Down resize-pane -D 20 | bind -n M-S-Up resize-pane -U 21 | bind -n M-S-Right resize-pane -R 22 | 23 | unbind a 24 | bind a last-window 25 | 26 | set -g window-style bg=default 27 | set -g window-active-style bg=default 28 | 29 | set -g window-status-activity-style bold 30 | set -g pane-border-style fg=colour245 31 | set -g pane-active-border-style fg=colour2 32 | set -g message-style fg=colour16,bg=colour5,bold 33 | 34 | set -g status-left-length 32 35 | set -g status-right-length 150 36 | set -g status-interval 5 37 | 38 | set -g status-left '' 39 | set -g status-right '' 40 | set -g window-status-format "#[fg=colour245,bg=default,nobold] #I:#W " 41 | set -g window-status-current-format "#[fg=colour236,bg=colour6,noreverse,bold] #I:#W #[fg=colour39,bg=default,nobold]" 42 | 43 | set -g status-justify centre 44 | set -g status-position top 45 | 46 | set-option -g default-shell /usr/local/bin/zsh 47 | 48 | set-window-option -g mode-keys vi 49 | bind h select-pane -L 50 | bind j select-pane -D 51 | bind k select-pane -U 52 | bind l select-pane -R 53 | 54 | unbind % 55 | bind | split-window -h 56 | unbind '"' 57 | bind - split-window -v 58 | bind _ split-window -v 59 | 60 | set -g allow-rename on 61 | set-window-option -g automatic-rename on 62 | 63 | bind-key c new-window -n 'zsh' 64 | 65 | bind-key T swap-window -t 0 66 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | /Users/hafiz/.config/nvim/init.vim -------------------------------------------------------------------------------- /.yabairc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | sudo yabai --load-sa 4 | yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" 5 | 6 | # bar settings 7 | yabai -m config status_bar off 8 | yabai -m config status_bar_text_font "--apple-system-font:Bold:12.0" 9 | yabai -m config status_bar_icon_font "FontAwesome:Regular:12.0" 10 | yabai -m config status_bar_background_color 0xff202020 11 | yabai -m config status_bar_foreground_color 0xffa8a8a8 12 | yabai -m config status_bar_space_icon_strip I II III IV V VI VII VIII IX X 13 | yabai -m config status_bar_power_icon_strip 14 | yabai -m config status_bar_space_icon 15 | yabai -m config status_bar_clock_icon 16 | 17 | # global settings 18 | yabai -m config mouse_follows_focus on 19 | yabai -m config focus_follows_mouse autofocus 20 | yabai -m config window_placement second_child 21 | yabai -m config window_topmost on 22 | yabai -m config window_opacity off 23 | yabai -m config window_shadow on 24 | yabai -m config window_border off 25 | yabai -m config window_border_width 4 26 | yabai -m config active_window_border_color 0xff6123A0 27 | yabai -m config normal_window_border_color 0x7f6123A#noborder 28 | yabai -m config insert_window_border_color 0xffCF515C 29 | yabai -m config active_window_opacity 1.0 30 | yabai -m config normal_window_opacity 0.95 31 | yabai -m config split_ratio 0.50 32 | yabai -m config auto_balance on 33 | yabai -m config mouse_modifier fn 34 | yabai -m config mouse_action1 move 35 | yabai -m config mouse_action2 resize 36 | 37 | # general space settings 38 | yabai -m config layout bsp 39 | yabai -m config top_padding 80 40 | yabai -m config bottom_padding 80 41 | yabai -m config left_padding 101 42 | yabai -m config right_padding 100 43 | yabai -m config window_gap 25 44 | 45 | # turn off spacing by default 46 | yabai -m space --toggle padding; yabai -m space --toggle gap 47 | 48 | echo "yabai configuration loaded." 49 | -------------------------------------------------------------------------------- /.zsh_etc/bison.zsh: -------------------------------------------------------------------------------- 1 | # Handles Bison environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export BISON="/usr/local/opt/bison/bin/bison" 8 | -------------------------------------------------------------------------------- /.zsh_etc/codes.zsh: -------------------------------------------------------------------------------- 1 | # Handles source codes environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export CODE="$HOME/Code" 8 | 9 | # Angular config 10 | export ANGULAR_ROOT="$CODE/Angular/angular" 11 | -------------------------------------------------------------------------------- /.zsh_etc/fzf.zsh: -------------------------------------------------------------------------------- 1 | # Handles fzf (Fuzzy Finder) theme configuration. 2 | # 3 | # https://github.com/junegunn/fzf 4 | # 5 | # This file is governed under no license. 6 | # 7 | # Author: @ayazhafiz 8 | # Source: https://github.com/ayazhafiz/hmcd 9 | source "$ZSH_ETC/status_msg.zsh" 10 | 11 | fzf_file="$HOME/.fzf.zsh" 12 | if [ -f "$fzf_file" ]; then 13 | source "$fzf_file" 14 | else 15 | warn "fzf source file (\`$fzf_file\') cannot be found; not loading configuration." >&2 16 | return 17 | fi 18 | -------------------------------------------------------------------------------- /.zsh_etc/go.zsh: -------------------------------------------------------------------------------- 1 | # Handles Go environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export GOPATH="$HOME/gocode" 8 | export GOROOT="/usr/local/opt/go/libexec" 9 | export PATH="$GOPATH/bin:$PATH" 10 | -------------------------------------------------------------------------------- /.zsh_etc/gpg.zsh: -------------------------------------------------------------------------------- 1 | # Handles GPG environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export GPG_TTY=$(tty) 8 | -------------------------------------------------------------------------------- /.zsh_etc/haskell.zsh: -------------------------------------------------------------------------------- 1 | # Handles Haskell configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export PATH="$PATH:$HOME/.cabal/bin" 8 | -------------------------------------------------------------------------------- /.zsh_etc/hmcd.zsh: -------------------------------------------------------------------------------- 1 | # Handles hmcd environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | source "$ZSH_ETC/status_msg.zsh" 7 | 8 | if $(type -P git 2>/dev/null); then 9 | warn "Git (\`git\') is not installed; not loading configuration." >&2 10 | return 11 | fi 12 | 13 | HMCD_DIR=".hmcd" 14 | HMCD="git --git-dir=$HOME/$HMCD_DIR --work-tree=$HOME" 15 | GIT='\git' 16 | 17 | function chpwd { 18 | if [ -d "$HMCD_DIR" ]; then 19 | alias git="$HMCD" 20 | else 21 | alias git="$GIT" 22 | fi 23 | } 24 | chpwd 25 | -------------------------------------------------------------------------------- /.zsh_etc/llvm.zsh: -------------------------------------------------------------------------------- 1 | # Handles LLVM environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export PATH="/usr/local/opt/llvm/bin:$PATH" 8 | 9 | alias lldb="PATH=/usr/bin:$PATH lldb" # source MacOS python 10 | -------------------------------------------------------------------------------- /.zsh_etc/nvim.zsh: -------------------------------------------------------------------------------- 1 | # Handles Neovim environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | source "$ZSH_ETC/status_msg.zsh" 7 | 8 | if ! [ -x "$(command -v nvim)" ]; then 9 | warn "Neovim (\`nvim\') is not installed; not loading configuration." >&2 10 | return 11 | fi 12 | 13 | export NVIM_CONFIG_PATH="$HOME/.config/nvim" 14 | export NVIM_SHARE_PATH="$HOME/.local/share/nvim" 15 | 16 | # Flatten nested vim instances 17 | if [ -n "$NVIM_LISTEN_ADDRESS" ]; then 18 | export VISUAL="nvr --remote-tab-wait +'set bufhidden=wipe'" 19 | else 20 | export VISUAL="nvim" 21 | fi 22 | alias vim="$VISUAL" 23 | export EDITOR="$VISUAL" 24 | alias vt="vim +term" 25 | -------------------------------------------------------------------------------- /.zsh_etc/nvm.zsh: -------------------------------------------------------------------------------- 1 | # Handles nvm (Node Version Manager) environment configuration. 2 | # 3 | # https://github.com/nvm-sh/nvm 4 | # 5 | # This file is governed under no license. 6 | # 7 | # Author: @ayazhafiz 8 | # Source: https://github.com/ayazhafiz/hmcd 9 | 10 | export NVM_DIR="$HOME/.nvm" 11 | [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 12 | [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 13 | -------------------------------------------------------------------------------- /.zsh_etc/openssl.zsh: -------------------------------------------------------------------------------- 1 | # Handles OpenSSL environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/" 8 | -------------------------------------------------------------------------------- /.zsh_etc/plugins.zsh: -------------------------------------------------------------------------------- 1 | # Handles ZSH plugin configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | plugins=(git 8 | zsh-autosuggestions 9 | zsh-completions 10 | zsh-syntax-highlighting 11 | alias-tips 12 | z 13 | ) 14 | 15 | ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8' 16 | 17 | # ZSH completions 18 | autoload -U compinit; compinit 19 | -------------------------------------------------------------------------------- /.zsh_etc/projects.zsh: -------------------------------------------------------------------------------- 1 | # Handles custom configurations for my projects. 2 | # 3 | # This file is governed under no license. 4 | # 5 | # Author: @ayazhafiz 6 | # Source: https://github.com/ayazhafiz/hmcd 7 | 8 | # https://github.com/ayazhafiz/slide 9 | alias ladder='./ladder'; 10 | alias slide_lsp="$CODE/Rust/slide/editor/server/target/debug/server"; 11 | -------------------------------------------------------------------------------- /.zsh_etc/python.zsh: -------------------------------------------------------------------------------- 1 | # Handles Python environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export PATH="$HOME/Library/Python/3.7/bin:$PATH" 8 | 9 | alias python="python3" 10 | alias pip="pip3" 11 | 12 | #export WORKON_HOME=$HOME/.virtualenvs 13 | #export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 14 | #export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv 15 | #export PROJECT_HOME=$HOME/Code 16 | #export PYTHONPATH=$HOME/usr/lib/python-2.7/site-packages 17 | #source /usr/local/bin/virtualenvwrapper.sh 18 | -------------------------------------------------------------------------------- /.zsh_etc/ruby.zsh: -------------------------------------------------------------------------------- 1 | # Handles Ruby environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | #eval "$(frum init)" 8 | -------------------------------------------------------------------------------- /.zsh_etc/rust.zsh: -------------------------------------------------------------------------------- 1 | # Handles Rust environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export PATH="$HOME/.cargo/bin:$PATH" 8 | # export RUST_SRC_PATH="$(rustc --print sysroot)/lib/rustlib/src/rust/src" 9 | 10 | alias alacritty='/Applications/Alacritty.app/Contents/MacOS/alacritty' 11 | alias xs="eza -lhga --git" 12 | -------------------------------------------------------------------------------- /.zsh_etc/school.zsh: -------------------------------------------------------------------------------- 1 | # Handles school environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | V() { cd "$HOME/Documents/Vanderbilt/$1" } 8 | -------------------------------------------------------------------------------- /.zsh_etc/scripts.zsh: -------------------------------------------------------------------------------- 1 | # Handles custom script configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | export PATH="$HOME/.scripts/scripts:$PATH" 8 | export PATH="$HOME/.scripts/scripts/angular:$PATH" 9 | export PATH="$HOME/.scripts/scripts/latex:$PATH" 10 | 11 | # Load `z` 12 | # . $HOME/.scripts/z/z.sh 13 | -------------------------------------------------------------------------------- /.zsh_etc/secrets.zsh: -------------------------------------------------------------------------------- 1 | # Handles environment secrets configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | source "$ZSH_ETC/status_msg.zsh" 7 | 8 | secrets_file="$HOME/.secrets" 9 | if [ -f "$secrets_file" ]; then 10 | source "$secrets_file" 11 | else 12 | warn "secrets file (\`$secrets_file\') cannot be found; not loading configuration." >&2 13 | return 14 | fi 15 | -------------------------------------------------------------------------------- /.zsh_etc/status_msg.zsh: -------------------------------------------------------------------------------- 1 | # Provides utilities for printing status messages to STDERR. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | info() { 8 | echo "${0##*/}\tINFO:\t$1" >&2 9 | } 10 | 11 | debug() { 12 | echo "${0##*/}\tDEBUG:\t$1" >&2 13 | } 14 | 15 | warn() { 16 | echo "${0##*/}\tWARNING:\t$1" >&2 17 | } 18 | 19 | error() { 20 | echo "${0##*/}\tERROR:\t$1" >&2 21 | } 22 | -------------------------------------------------------------------------------- /.zsh_etc/theme.zsh: -------------------------------------------------------------------------------- 1 | # Handles ZSH theme configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | ZSH_THEME="powerlevel10k/powerlevel10k" 8 | POWERLEVEL9K_IGNORE_TERM_COLORS=true 9 | 10 | # Load prompt theme 11 | autoload -U promptinit; promptinit 12 | 13 | # Use pure color scheme and theme 14 | PURE_GIT_PULL=1 15 | source "$HOME/.purepower" 16 | 17 | # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. 18 | [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh 19 | -------------------------------------------------------------------------------- /.zsh_etc/yarn.zsh: -------------------------------------------------------------------------------- 1 | # Handles Yarn environment configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | source "$ZSH_ETC/status_msg.zsh" 7 | 8 | export PATH="$HOME/.yarn/bin:$PATH" 9 | export PATH="$HOME/.config/yarn/global/node_modules/.bin:$PATH" 10 | 11 | # yvm configuration 12 | # https://github.com/tophat/yvm 13 | export YVM_DIR="$HOME/.yvm" 14 | yvm_file="$YVM_DIR/yvm.sh" 15 | if [ -r "$yvm_file" ]; then 16 | source "$yvm_file" 17 | else 18 | warn "yvm source file (\`$yvm_file\') cannot be found; not loading configuration." >&2 19 | return 20 | fi 21 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | # Handles master Zsh configuration. 2 | # This file is governed under no license. 3 | # 4 | # Author: @ayazhafiz 5 | # Source: https://github.com/ayazhafiz/hmcd 6 | 7 | # Source common custom configurations 8 | ZSH_ETC="$HOME/.zsh_etc" 9 | 10 | # Vi mode 11 | set -o vi 12 | bindkey -M viins 'jj' vi-cmd-mode 13 | bindkey -v 14 | 15 | # Env 16 | export PATH="$HOME/.local/bin:/usr/bin:$PATH" 17 | export PATH="/usr/local/bin:$PATH" 18 | export PATH="$HOME/bin:$PATH" 19 | export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH" 20 | export PATH="/opt/homebrew/bin:$PATH" 21 | # export PATH="$HOME/Code/Zig/source/zig-0.9.0-dev:$PATH" 22 | 23 | source "$ZSH_ETC/go.zsh" 24 | source "$ZSH_ETC/bison.zsh" 25 | source "$ZSH_ETC/haskell.zsh" 26 | source "$ZSH_ETC/llvm.zsh" 27 | source "$ZSH_ETC/python.zsh" 28 | source "$ZSH_ETC/rust.zsh" 29 | #source "$ZSH_ETC/yarn.zsh" 30 | 31 | source "$ZSH_ETC/codes.zsh" 32 | source "$ZSH_ETC/hmcd.zsh" 33 | source "$ZSH_ETC/projects.zsh" 34 | source "$ZSH_ETC/school.zsh" 35 | source "$ZSH_ETC/scripts.zsh" 36 | 37 | source "$ZSH_ETC/secrets.zsh" 38 | 39 | source "$ZSH_ETC/plugins.zsh" 40 | source "$ZSH_ETC/theme.zsh" 41 | 42 | source "$ZSH_ETC/gpg.zsh" 43 | source "$ZSH_ETC/openssl.zsh" 44 | source "$ZSH_ETC/nvim.zsh" 45 | 46 | # Load ZSH via oh-my-zsh 47 | export ZSH="$HOME/.oh-my-zsh" 48 | source "$ZSH/oh-my-zsh.sh" 49 | 50 | # Scripts that must happen last 51 | source "$ZSH_ETC/fzf.zsh" 52 | source "$ZSH_ETC/nvm.zsh" 53 | source "$ZSH_ETC/ruby.zsh" 54 | 55 | # opam configuration 56 | test -r /Users/hafiz/.opam/opam-init/init.zsh && . /Users/hafiz/.opam/opam-init/init.zsh > /dev/null 2> /dev/null || true 57 | 58 | [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh 59 | [ -f "/Users/hafiz/.ghcup/env" ] && source "/Users/hafiz/.ghcup/env" # ghcup-env 60 | if [ -e /Users/hafiz/.nix-profile/etc/profile.d/nix.sh ]; then . /Users/hafiz/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer 61 | 62 | # export YVM_DIR=/Users/hafiz/.yvm 63 | # [ -r $YVM_DIR/yvm.sh ] && . $YVM_DIR/yvm.sh 64 | 65 | # Wasmer 66 | export WASMER_DIR="/Users/hafiz/.wasmer" 67 | [ -s "$WASMER_DIR/wasmer.sh" ] && source "$WASMER_DIR/wasmer.sh" 68 | 69 | bindkey -v 70 | 71 | . "$HOME/.asdf/asdf.sh" 72 | fpath=(${ASDF_DIR}/completions $fpath) 73 | autoload -Uz compinit && compinit 74 | 75 | typeset -A _SOURCED_LOCAL_RC_FILES 76 | 77 | # Function to source local RC file 78 | _source_local_rc() { 79 | local local_rc="${PWD}/.zshrc.local" 80 | 81 | # Check if the file exists 82 | if [[ -f "$local_rc" ]]; then 83 | # Get the absolute path to avoid any path-related issues 84 | local abs_path="$(realpath "$local_rc")" 85 | 86 | # Check if we've already sourced this file 87 | if [[ -z "${_SOURCED_LOCAL_RC_FILES[$abs_path]}" ]]; then 88 | # Check if file is readable 89 | if [[ -r "$local_rc" ]]; then 90 | # Optional: Print a message when sourcing 91 | echo "Sourcing local RC file: $local_rc" 92 | 93 | # Source the file 94 | source "$local_rc" 95 | 96 | # Mark this file as sourced 97 | _SOURCED_LOCAL_RC_FILES[$abs_path]=1 98 | else 99 | echo "Warning: $local_rc exists but is not readable" >&2 100 | fi 101 | fi 102 | fi 103 | } 104 | 105 | # Add the function to the chpwd hook array 106 | # This ensures it runs every time we change directories 107 | autoload -U add-zsh-hook 108 | add-zsh-hook chpwd _source_local_rc 109 | _source_local_rc 110 | export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH" 111 | 112 | eval "$(direnv hook zsh)" 113 | -------------------------------------------------------------------------------- /Brewfile: -------------------------------------------------------------------------------- 1 | tap "heroku/brew" 2 | tap "homebrew/bundle" 3 | tap "homebrew/cask" 4 | tap "homebrew/cask-fonts" 5 | tap "homebrew/core" 6 | tap "homebrew/services" 7 | tap "koekeishiya/formulae" 8 | # Clone of cat(1) with syntax highlighting and Git integration 9 | brew "bat" 10 | # SSL/TLS cryptography library 11 | brew "openssl" 12 | # Library for manipulating PNG images 13 | brew "libpng" 14 | # Software library to render fonts 15 | brew "freetype" 16 | # XML-based font configuration API for X Windows 17 | brew "fontconfig" 18 | # Library for command-line editing 19 | brew "readline" 20 | # Interpreted, interactive, object-oriented programming language 21 | brew "python" 22 | # Formatting tools for C, C++, Obj-C, Java, JavaScript, TypeScript 23 | brew "clang-format" 24 | # ASP system to ground and solve logic programs 25 | brew "clingo", link: false 26 | # Statistics utility to count lines of code 27 | brew "cloc" 28 | # Cross-platform make 29 | brew "cmake" 30 | # Proof assistant for higher-order logic 31 | brew "coq" 32 | # GNU multiple precision arithmetic library 33 | brew "gmp" 34 | # Asynchronous event library 35 | brew "libevent" 36 | # YAML Parser 37 | brew "libyaml" 38 | # Next-gen compiler infrastructure 39 | brew "llvm@6" 40 | # Manage compile and link flags for libraries 41 | brew "pkg-config" 42 | # Fast and statically typed, compiled language with Ruby-like syntax 43 | brew "crystal" 44 | # Programming language for highly scalable real-time systems 45 | brew "erlang" 46 | # Functional metaprogramming aware language built on Erlang VM 47 | brew "elixir" 48 | # Modern replacement for 'ls' 49 | brew "exa" 50 | # Command-line tool to interact with exercism.io 51 | brew "exercism" 52 | # GNU compiler collection 53 | brew "gcc" 54 | # GNU debugger 55 | brew "gdb" 56 | # OpenType text shaping engine 57 | brew "harfbuzz" 58 | # Cross-platform application and UI framework 59 | brew "qt" 60 | # Command-driven, interactive function plotting 61 | brew "gnuplot" 62 | # Open source programming language to build simple/reliable/efficient software 63 | brew "go" 64 | # Command-line hex viewer 65 | brew "hexyl" 66 | # Convert source code to formatted text with syntax highlighting 67 | brew "highlight" 68 | # Tools and libraries to manipulate images in many formats 69 | brew "imagemagick" 70 | # Graphical front-end for GCC's coverage testing tool (gcov) 71 | brew "lcov" 72 | # Next-gen compiler infrastructure 73 | brew "llvm" 74 | # Keep your Mac's application settings in sync 75 | brew "mackup" 76 | # Ambitious Vim-fork focused on extensibility and agility 77 | brew "neovim" 78 | # Package for scientific computing with Python 79 | brew "numpy", link: false 80 | # Manage multiple Node.js versions 81 | brew "nvm" 82 | # Swiss-army knife of markup format conversion 83 | brew "pandoc" 84 | # Wrapper around libsass that helps to create command-line apps 85 | brew "sassc" 86 | # Generate ASCII art with terminal, shell, and OS info 87 | brew "screenfetch" 88 | # Static analysis and lint tool, for (ba)sh scripts 89 | brew "shellcheck" 90 | # ISO/Edinburgh-style Prolog interpreter 91 | brew "swi-prolog" 92 | # Terminal multiplexer 93 | brew "tmux" 94 | # Internet file retriever 95 | brew "wget" 96 | # The next-generation plugin manager for zsh 97 | brew "zplug" 98 | # UNIX shell (command interpreter) 99 | brew "zsh" 100 | # Everything you need to get started with Heroku 101 | brew "heroku/brew/heroku" 102 | # Tiling window manager for macOS based on plugin architecture 103 | brew "koekeishiya/formulae/chunkwm" 104 | # Simple hotkey-daemon for macOS. 105 | brew "koekeishiya/formulae/skhd" 106 | cask "alacritty" 107 | cask "brooklyn" 108 | cask "qutebrowser" 109 | -------------------------------------------------------------------------------- /Brewfile.lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "entries": { 3 | "tap": { 4 | "heroku/brew": { 5 | "revision": "3beb32c39ca5b2dc457f8024857224b8f635012d" 6 | }, 7 | "homebrew/bundle": { 8 | "revision": "58ba62fc467fcbe57c9588d0bd94d8156e692b0e" 9 | }, 10 | "homebrew/cask": { 11 | "revision": "bcd587d3babc30784d07640bd5073a33b8595e89" 12 | }, 13 | "homebrew/cask-fonts": { 14 | "revision": "2f6aecc05182d61c543afdb9ec20b22d24737e96" 15 | }, 16 | "homebrew/core": { 17 | "revision": "52b23cafcd17e6228b44d455f72218091dd6c096" 18 | }, 19 | "homebrew/services": { 20 | "revision": "eca39722f130e8bc1e2e322588db493ca0398c01" 21 | }, 22 | "koekeishiya/formulae": { 23 | "revision": "c581295f4156754eb4a4ffa95473d0a9bde098e9" 24 | } 25 | }, 26 | "brew": { 27 | "bat": { 28 | "version": "0.12.1", 29 | "bottle": { 30 | "cellar": ":any_skip_relocation", 31 | "prefix": "/usr/local", 32 | "files": { 33 | "catalina": { 34 | "url": "https://homebrew.bintray.com/bottles/bat-0.12.1.catalina.bottle.2.tar.gz", 35 | "sha256": "fe47d61a6eedc6442d4a2b45bb15eadce806102c46247dd866e762fc510f2ac0" 36 | }, 37 | "mojave": { 38 | "url": "https://homebrew.bintray.com/bottles/bat-0.12.1.mojave.bottle.2.tar.gz", 39 | "sha256": "c01694ccd70256fe852f5f597ed1ab917161642e1309b367caa537f77f98ebf8" 40 | }, 41 | "high_sierra": { 42 | "url": "https://homebrew.bintray.com/bottles/bat-0.12.1.high_sierra.bottle.2.tar.gz", 43 | "sha256": "d06770fb4f496a0dfa8294431d65d93c53c4fa14a09c28ca7d87bbacf8419cb3" 44 | } 45 | } 46 | } 47 | }, 48 | "openssl": null, 49 | "libpng": { 50 | "version": "1.6.37", 51 | "bottle": { 52 | "cellar": ":any", 53 | "prefix": "/usr/local", 54 | "files": { 55 | "catalina": { 56 | "url": "https://homebrew.bintray.com/bottles/libpng-1.6.37.catalina.bottle.tar.gz", 57 | "sha256": "c8e74da602c21f978cd7ee3d489979b4fc6681e71f678a1d99012943ee3a909f" 58 | }, 59 | "mojave": { 60 | "url": "https://homebrew.bintray.com/bottles/libpng-1.6.37.mojave.bottle.tar.gz", 61 | "sha256": "53bbd14cc27c86c16605e256e7646a1b5656c253abca084958c5d80a2961cb01" 62 | }, 63 | "high_sierra": { 64 | "url": "https://homebrew.bintray.com/bottles/libpng-1.6.37.high_sierra.bottle.tar.gz", 65 | "sha256": "bbdd94bdd5954bc50c096391486e67265dce5631efb913dcffe4469806a242b6" 66 | }, 67 | "sierra": { 68 | "url": "https://homebrew.bintray.com/bottles/libpng-1.6.37.sierra.bottle.tar.gz", 69 | "sha256": "e66797079a9a8134f91bd36b58054c6c32f6a9cd161c1bd19f0192319edb80aa" 70 | } 71 | } 72 | } 73 | }, 74 | "freetype": { 75 | "version": "2.10.1", 76 | "bottle": { 77 | "cellar": ":any", 78 | "prefix": "/usr/local", 79 | "files": { 80 | "catalina": { 81 | "url": "https://homebrew.bintray.com/bottles/freetype-2.10.1.catalina.bottle.tar.gz", 82 | "sha256": "ddd686141a969caec11ea248324e3736f6db50a54673187be103dde39cb01ebf" 83 | }, 84 | "mojave": { 85 | "url": "https://homebrew.bintray.com/bottles/freetype-2.10.1.mojave.bottle.tar.gz", 86 | "sha256": "2f5716f987df6f45a9d66e5f9af935bbb4202fe0b9850b6b0660fd6555ba1be4" 87 | }, 88 | "high_sierra": { 89 | "url": "https://homebrew.bintray.com/bottles/freetype-2.10.1.high_sierra.bottle.tar.gz", 90 | "sha256": "c367032a79a287a004e29023329c74e19887b80e05c495eec44182165ecd79e0" 91 | }, 92 | "sierra": { 93 | "url": "https://homebrew.bintray.com/bottles/freetype-2.10.1.sierra.bottle.tar.gz", 94 | "sha256": "282171a01965ae9dfd2d7955459a7285ca3a85f16504133e5fa46c72f682c14f" 95 | } 96 | } 97 | } 98 | }, 99 | "fontconfig": { 100 | "version": "2.13.1", 101 | "bottle": { 102 | "cellar": "/usr/local/Cellar", 103 | "prefix": "/usr/local", 104 | "files": { 105 | "catalina": { 106 | "url": "https://homebrew.bintray.com/bottles/fontconfig-2.13.1.catalina.bottle.tar.gz", 107 | "sha256": "64ff208b28613dfe2a65b9d74fd9b0129f3ca7e423db78329144cdaf51b36f70" 108 | }, 109 | "mojave": { 110 | "url": "https://homebrew.bintray.com/bottles/fontconfig-2.13.1.mojave.bottle.tar.gz", 111 | "sha256": "1c704a5a4249252bf42dc4f2a458f911a7858a931858ad257d9ec39978ca5095" 112 | }, 113 | "high_sierra": { 114 | "url": "https://homebrew.bintray.com/bottles/fontconfig-2.13.1.high_sierra.bottle.tar.gz", 115 | "sha256": "3b763143a4d6e3c74b3a8b237d2e5a383696347ea3599d07957f73a3f6521d23" 116 | }, 117 | "sierra": { 118 | "url": "https://homebrew.bintray.com/bottles/fontconfig-2.13.1.sierra.bottle.tar.gz", 119 | "sha256": "631531c4eb502bd97e4a5bef30760d1eef87dd50306ef2defb9460ac3338cfe1" 120 | }, 121 | "el_capitan": { 122 | "url": "https://homebrew.bintray.com/bottles/fontconfig-2.13.1.el_capitan.bottle.tar.gz", 123 | "sha256": "40d70137a970e257de5cf1251b10d56d7db835faee88a9f4c020b4a4e4f82eb1" 124 | } 125 | } 126 | } 127 | }, 128 | "readline": { 129 | "version": "8.0.1", 130 | "bottle": { 131 | "cellar": ":any", 132 | "prefix": "/usr/local", 133 | "files": { 134 | "catalina": { 135 | "url": "https://homebrew.bintray.com/bottles/readline-8.0.1.catalina.bottle.tar.gz", 136 | "sha256": "ab3c966f4cae7d0f3ecc5688bb989820c3261f5ed547a08c84186ba7f53bdd9c" 137 | }, 138 | "mojave": { 139 | "url": "https://homebrew.bintray.com/bottles/readline-8.0.1.mojave.bottle.tar.gz", 140 | "sha256": "3c754391e9d243835811d128771ca0f1a565024100fd2c2871534353d46aaf0e" 141 | }, 142 | "high_sierra": { 143 | "url": "https://homebrew.bintray.com/bottles/readline-8.0.1.high_sierra.bottle.tar.gz", 144 | "sha256": "ae341a036139a92a47396aabc773ffcf40a17fc388aaadf0147f688c72ece987" 145 | }, 146 | "sierra": { 147 | "url": "https://homebrew.bintray.com/bottles/readline-8.0.1.sierra.bottle.tar.gz", 148 | "sha256": "f234d1ff8148bf08b0ac31e661f2e96b5c6e64df26a45d2392056c9077f964af" 149 | } 150 | } 151 | } 152 | }, 153 | "python": { 154 | "version": "3.7.6_1", 155 | "bottle": { 156 | "cellar": "/usr/local/Cellar", 157 | "prefix": "/usr/local", 158 | "files": { 159 | "catalina": { 160 | "url": "https://homebrew.bintray.com/bottles/python-3.7.6_1.catalina.bottle.tar.gz", 161 | "sha256": "3871ef8b53270576c46489ae397f245b84772c405085238790cf5faa1853b33a" 162 | }, 163 | "mojave": { 164 | "url": "https://homebrew.bintray.com/bottles/python-3.7.6_1.mojave.bottle.tar.gz", 165 | "sha256": "643d627c2b4fc03a3286c397d299284ef8ce2d4a832737e41175f297d4f0862e" 166 | }, 167 | "high_sierra": { 168 | "url": "https://homebrew.bintray.com/bottles/python-3.7.6_1.high_sierra.bottle.tar.gz", 169 | "sha256": "3504f29ae0366d08fc025cfe2885cd2e685f74ab041a341a393d3b6967f139d7" 170 | } 171 | } 172 | } 173 | }, 174 | "clang-format": { 175 | "version": "2019-05-14", 176 | "bottle": { 177 | "cellar": ":any_skip_relocation", 178 | "prefix": "/usr/local", 179 | "files": { 180 | "catalina": { 181 | "url": "https://homebrew.bintray.com/bottles/clang-format-2019-05-14.catalina.bottle.tar.gz", 182 | "sha256": "811e557c5b540317ff532959f3b074d6b9763abfb58186f3a1cbeb10acfb3358" 183 | }, 184 | "mojave": { 185 | "url": "https://homebrew.bintray.com/bottles/clang-format-2019-05-14.mojave.bottle.tar.gz", 186 | "sha256": "beb4842dafb9092fe56ba4dc94030b581d3ae85ae914b2c2a37ae872c88dbd34" 187 | }, 188 | "high_sierra": { 189 | "url": "https://homebrew.bintray.com/bottles/clang-format-2019-05-14.high_sierra.bottle.tar.gz", 190 | "sha256": "dcea54b1734a2385a7275deb7b7fe9970cf06387d9051103476a0082614849f0" 191 | } 192 | } 193 | } 194 | }, 195 | "clingo": { 196 | "version": "5.4.0", 197 | "bottle": { 198 | "cellar": "/usr/local/Cellar", 199 | "prefix": "/usr/local", 200 | "files": { 201 | "catalina": { 202 | "url": "https://homebrew.bintray.com/bottles/clingo-5.4.0.catalina.bottle.tar.gz", 203 | "sha256": "768f983bdeb5b7ec3c2aa69b4df169d67df7ec9b0b3f666da4c0be2df84d106a" 204 | }, 205 | "mojave": { 206 | "url": "https://homebrew.bintray.com/bottles/clingo-5.4.0.mojave.bottle.tar.gz", 207 | "sha256": "15877a90707bbe5e0c2d32511c53dac3eeda520ffa60ed65c85e5d6ee92be40c" 208 | }, 209 | "high_sierra": { 210 | "url": "https://homebrew.bintray.com/bottles/clingo-5.4.0.high_sierra.bottle.tar.gz", 211 | "sha256": "c00105678551dd53f4ee59922422bdb9efd6691223daf132f26d8d8a4cc0bdfb" 212 | }, 213 | "sierra": { 214 | "url": "https://homebrew.bintray.com/bottles/clingo-5.4.0.sierra.bottle.tar.gz", 215 | "sha256": "7a0478cea53e35f02d1f007690150263bbe0febccbdec892a5e83146ac79137f" 216 | } 217 | } 218 | }, 219 | "options": { 220 | "link": false 221 | } 222 | }, 223 | "cloc": { 224 | "version": "1.84", 225 | "bottle": { 226 | "cellar": ":any_skip_relocation", 227 | "prefix": "/usr/local", 228 | "files": { 229 | "catalina": { 230 | "url": "https://homebrew.bintray.com/bottles/cloc-1.84.catalina.bottle.tar.gz", 231 | "sha256": "133bacc497cb73a958e823f12e09e91b97d43ac188e4b002e7f939c5625fcacd" 232 | }, 233 | "mojave": { 234 | "url": "https://homebrew.bintray.com/bottles/cloc-1.84.mojave.bottle.tar.gz", 235 | "sha256": "faa85a918f0517f35a41fb60550c0d990ed58aed325c50efca95634b014edbd8" 236 | }, 237 | "high_sierra": { 238 | "url": "https://homebrew.bintray.com/bottles/cloc-1.84.high_sierra.bottle.tar.gz", 239 | "sha256": "0407f6ec4d2378659b63bb33598f9b5f49756325322fe3fc0f339ec16b5edc5f" 240 | } 241 | } 242 | } 243 | }, 244 | "cmake": { 245 | "version": "3.16.2", 246 | "bottle": { 247 | "cellar": ":any_skip_relocation", 248 | "prefix": "/usr/local", 249 | "files": { 250 | "catalina": { 251 | "url": "https://homebrew.bintray.com/bottles/cmake-3.16.2.catalina.bottle.tar.gz", 252 | "sha256": "7b7d0cc5ceba524f0bea36285ab0cf5e23afc79b71633018ae504c22a32eaf0a" 253 | }, 254 | "mojave": { 255 | "url": "https://homebrew.bintray.com/bottles/cmake-3.16.2.mojave.bottle.tar.gz", 256 | "sha256": "58f068ef5e78c096258330bcc02855b3de3e36100e62802d70a471845575fc1c" 257 | }, 258 | "high_sierra": { 259 | "url": "https://homebrew.bintray.com/bottles/cmake-3.16.2.high_sierra.bottle.tar.gz", 260 | "sha256": "06a94d5dc873a08f122993a8fdbf6432798ff7c771754e932976a1a804d313e4" 261 | } 262 | } 263 | } 264 | }, 265 | "coq": { 266 | "version": "8.10.2_1", 267 | "bottle": { 268 | "cellar": "/usr/local/Cellar", 269 | "prefix": "/usr/local", 270 | "files": { 271 | "catalina": { 272 | "url": "https://homebrew.bintray.com/bottles/coq-8.10.2_1.catalina.bottle.tar.gz", 273 | "sha256": "268fcfac9a8f64f6f325470d59b6ccc4b5e1ee810c169fc06160545685e9ff7c" 274 | }, 275 | "mojave": { 276 | "url": "https://homebrew.bintray.com/bottles/coq-8.10.2_1.mojave.bottle.tar.gz", 277 | "sha256": "53934e4ddee99ebc7543d18c70e4a26f7559da79812a6ef1134ea61d4f266cea" 278 | }, 279 | "high_sierra": { 280 | "url": "https://homebrew.bintray.com/bottles/coq-8.10.2_1.high_sierra.bottle.tar.gz", 281 | "sha256": "833591e4d6b564f728afa5f869b5f8135f1e56ebb36b3536ff20252ca1d07640" 282 | } 283 | } 284 | } 285 | }, 286 | "gmp": { 287 | "version": "6.1.2_2", 288 | "bottle": { 289 | "cellar": ":any", 290 | "prefix": "/usr/local", 291 | "files": { 292 | "catalina": { 293 | "url": "https://homebrew.bintray.com/bottles/gmp-6.1.2_2.catalina.bottle.1.tar.gz", 294 | "sha256": "2409417943fceda33eac12a8229fbf7b990eee18ee341b543be575550a077bb0" 295 | }, 296 | "mojave": { 297 | "url": "https://homebrew.bintray.com/bottles/gmp-6.1.2_2.mojave.bottle.1.tar.gz", 298 | "sha256": "84f74594086bccc53bdb141f4d06d7847680374e255ebe016654da1e47db2dfc" 299 | }, 300 | "high_sierra": { 301 | "url": "https://homebrew.bintray.com/bottles/gmp-6.1.2_2.high_sierra.bottle.1.tar.gz", 302 | "sha256": "a536c51149806b73b2e1178be94300832b6b151455006bc7f2a32b9dc493c7a3" 303 | }, 304 | "sierra": { 305 | "url": "https://homebrew.bintray.com/bottles/gmp-6.1.2_2.sierra.bottle.1.tar.gz", 306 | "sha256": "ada22a8bbfe8532d71f2b565e00b1643beaf72bff6b36064cbad0cd7436e4948" 307 | } 308 | } 309 | } 310 | }, 311 | "libevent": { 312 | "version": "2.1.11_1", 313 | "bottle": { 314 | "cellar": ":any", 315 | "prefix": "/usr/local", 316 | "files": { 317 | "catalina": { 318 | "url": "https://homebrew.bintray.com/bottles/libevent-2.1.11_1.catalina.bottle.tar.gz", 319 | "sha256": "9d262f9ffb2268340a89c713826d8ca068bcac06c30baf49e6184ab4660d977a" 320 | }, 321 | "mojave": { 322 | "url": "https://homebrew.bintray.com/bottles/libevent-2.1.11_1.mojave.bottle.tar.gz", 323 | "sha256": "1e14fc34baae0b65cac6d7c75bc5ed0ccb1f6bbaa30c8f0f8477ab8ba85fb3c5" 324 | }, 325 | "high_sierra": { 326 | "url": "https://homebrew.bintray.com/bottles/libevent-2.1.11_1.high_sierra.bottle.tar.gz", 327 | "sha256": "89df3b053409a11d520e9ca88aed17221416c60c5799ec51813f8c2c7e3536de" 328 | }, 329 | "sierra": { 330 | "url": "https://homebrew.bintray.com/bottles/libevent-2.1.11_1.sierra.bottle.tar.gz", 331 | "sha256": "a9bddcb861a3464a0e9111926e4cb8d932ad860540f571edb74d448ef5a54811" 332 | } 333 | } 334 | } 335 | }, 336 | "libyaml": { 337 | "version": "0.2.2", 338 | "bottle": { 339 | "cellar": ":any", 340 | "prefix": "/usr/local", 341 | "files": { 342 | "catalina": { 343 | "url": "https://homebrew.bintray.com/bottles/libyaml-0.2.2.catalina.bottle.tar.gz", 344 | "sha256": "63cf355fb4b9fb7e33cb9d0b9b366252f680d887cb5d7e12de8468381aa5f000" 345 | }, 346 | "mojave": { 347 | "url": "https://homebrew.bintray.com/bottles/libyaml-0.2.2.mojave.bottle.tar.gz", 348 | "sha256": "aa23980d03fe5bd2e60d59424061b7ac91c24f315de84ec33856ab3bf44de0af" 349 | }, 350 | "high_sierra": { 351 | "url": "https://homebrew.bintray.com/bottles/libyaml-0.2.2.high_sierra.bottle.tar.gz", 352 | "sha256": "b763aa33bfdf6dca21b3bc16919217939ec28916266bb476ff8f44e777bde176" 353 | }, 354 | "sierra": { 355 | "url": "https://homebrew.bintray.com/bottles/libyaml-0.2.2.sierra.bottle.tar.gz", 356 | "sha256": "35d27c9b0709f142d5d30a2d37566d85dafcd023f64016d042282eeaf94102b7" 357 | } 358 | } 359 | } 360 | }, 361 | "llvm@6": { 362 | "version": "6.0.1_2", 363 | "bottle": { 364 | "cellar": ":any", 365 | "prefix": "/usr/local", 366 | "files": { 367 | "catalina": { 368 | "url": "https://homebrew.bintray.com/bottles/llvm@6-6.0.1_2.catalina.bottle.tar.gz", 369 | "sha256": "a9b2f8263268e19f68d5bc8e1791526c867e6a41e22d5231a7494a96ed4af8fc" 370 | }, 371 | "mojave": { 372 | "url": "https://homebrew.bintray.com/bottles/llvm@6-6.0.1_2.mojave.bottle.tar.gz", 373 | "sha256": "fff84017bc2b346184e39edeff42bf5003efa5bc1c18d262c3200c5f6f8c2a76" 374 | }, 375 | "high_sierra": { 376 | "url": "https://homebrew.bintray.com/bottles/llvm@6-6.0.1_2.high_sierra.bottle.tar.gz", 377 | "sha256": "bd0b6ad2bbd65461491adfe0fd1c8415e917bc395f9aa8bbc14c754c9c09f84d" 378 | } 379 | } 380 | } 381 | }, 382 | "pkg-config": { 383 | "version": "0.29.2", 384 | "bottle": { 385 | "cellar": ":any_skip_relocation", 386 | "prefix": "/usr/local", 387 | "files": { 388 | "catalina": { 389 | "url": "https://homebrew.bintray.com/bottles/pkg-config-0.29.2.catalina.bottle.1.tar.gz", 390 | "sha256": "c0a6927c8e404f6db8b14d6644a218b22ddb0d27be1fa0a69d15bf0d9a6875ae" 391 | }, 392 | "mojave": { 393 | "url": "https://homebrew.bintray.com/bottles/pkg-config-0.29.2.mojave.bottle.1.tar.gz", 394 | "sha256": "dcfcba723621eee085ddd5ebadc41fb8787a4717b9686f5288281633a830ac5e" 395 | }, 396 | "high_sierra": { 397 | "url": "https://homebrew.bintray.com/bottles/pkg-config-0.29.2.high_sierra.bottle.1.tar.gz", 398 | "sha256": "b6c0b7344ea89558f5d98711625e00414dc2be53af23c9ee8fcb07554f1736ac" 399 | } 400 | } 401 | } 402 | }, 403 | "crystal": { 404 | "version": "0.32.1", 405 | "bottle": { 406 | "cellar": "/usr/local/Cellar", 407 | "prefix": "/usr/local", 408 | "files": { 409 | "catalina": { 410 | "url": "https://homebrew.bintray.com/bottles/crystal-0.32.1.catalina.bottle.tar.gz", 411 | "sha256": "024e5e9c4b1f93863fa2ccfbc8fb98c3e494d6f0e0edfb5da5838826e6e63e0e" 412 | }, 413 | "mojave": { 414 | "url": "https://homebrew.bintray.com/bottles/crystal-0.32.1.mojave.bottle.tar.gz", 415 | "sha256": "cd590caeb6a39bd3555683e3b642ef19eaa5711740cacf19a67ab86cee4352a4" 416 | }, 417 | "high_sierra": { 418 | "url": "https://homebrew.bintray.com/bottles/crystal-0.32.1.high_sierra.bottle.tar.gz", 419 | "sha256": "cdabfcf0fc44bf640605c56eaa4be42e668acd022a1b62b44ca6405de5a60ad2" 420 | } 421 | } 422 | } 423 | }, 424 | "erlang": { 425 | "version": "22.2.1", 426 | "bottle": { 427 | "cellar": ":any", 428 | "prefix": "/usr/local", 429 | "files": { 430 | "catalina": { 431 | "url": "https://homebrew.bintray.com/bottles/erlang-22.2.1.catalina.bottle.tar.gz", 432 | "sha256": "49208976475bfcf3180fde91dc1c223f44d48a9e54016cbc048ff9a9de2efb19" 433 | }, 434 | "mojave": { 435 | "url": "https://homebrew.bintray.com/bottles/erlang-22.2.1.mojave.bottle.tar.gz", 436 | "sha256": "f6029f4d5c77dc4fe76fab60d3e0a8b466102b59c885c1f89346083e3fab1219" 437 | }, 438 | "high_sierra": { 439 | "url": "https://homebrew.bintray.com/bottles/erlang-22.2.1.high_sierra.bottle.tar.gz", 440 | "sha256": "de011859f132db86f136cd2bd3610475403a5fb387422cba2f5eb4861e6b06ea" 441 | } 442 | } 443 | } 444 | }, 445 | "elixir": { 446 | "version": "1.9.4", 447 | "bottle": { 448 | "cellar": ":any_skip_relocation", 449 | "prefix": "/usr/local", 450 | "files": { 451 | "catalina": { 452 | "url": "https://homebrew.bintray.com/bottles/elixir-1.9.4.catalina.bottle.tar.gz", 453 | "sha256": "cc27b1d278293c48c4ffaa8c845a1c0b3dffc346e3de3fcab5f38f0468d12a9c" 454 | }, 455 | "mojave": { 456 | "url": "https://homebrew.bintray.com/bottles/elixir-1.9.4.mojave.bottle.tar.gz", 457 | "sha256": "b265e0fa289d4e0bdd6d3c5833804410094b0e92b50657b151dbad7ba0427ee7" 458 | }, 459 | "high_sierra": { 460 | "url": "https://homebrew.bintray.com/bottles/elixir-1.9.4.high_sierra.bottle.tar.gz", 461 | "sha256": "53e9755a828a0f7f6cf5abcd3d72cb74cecd90ad1cccc552dcbd34b03e68ace8" 462 | } 463 | } 464 | } 465 | }, 466 | "exa": { 467 | "version": "0.9.0", 468 | "bottle": { 469 | "cellar": ":any_skip_relocation", 470 | "prefix": "/usr/local", 471 | "files": { 472 | "catalina": { 473 | "url": "https://homebrew.bintray.com/bottles/exa-0.9.0.catalina.bottle.tar.gz", 474 | "sha256": "cc484e7deb12cdae4ede810258be0ca069d7db395897e9d3fbadd501fb075743" 475 | }, 476 | "mojave": { 477 | "url": "https://homebrew.bintray.com/bottles/exa-0.9.0.mojave.bottle.tar.gz", 478 | "sha256": "bc80009ad845d914c08e6de1c39c97e0f4f180ef4f077b3ef1957cab519d6743" 479 | }, 480 | "high_sierra": { 481 | "url": "https://homebrew.bintray.com/bottles/exa-0.9.0.high_sierra.bottle.tar.gz", 482 | "sha256": "7382b758899c756f94c4c99440f71075945d333e302e53139e423fb1798c852e" 483 | }, 484 | "sierra": { 485 | "url": "https://homebrew.bintray.com/bottles/exa-0.9.0.sierra.bottle.tar.gz", 486 | "sha256": "9499359da5f5fffbd8b22c8cb8e78f0fdf99594c4d2b06e7ba58eb21afbcb582" 487 | } 488 | } 489 | } 490 | }, 491 | "exercism": { 492 | "version": "3.0.13", 493 | "bottle": { 494 | "cellar": ":any_skip_relocation", 495 | "prefix": "/usr/local", 496 | "files": { 497 | "catalina": { 498 | "url": "https://homebrew.bintray.com/bottles/exercism-3.0.13.catalina.bottle.1.tar.gz", 499 | "sha256": "fbdd9c6610651d7ec5fdc379c3223ad2468d8de8b8a65816b926a716f2267291" 500 | }, 501 | "mojave": { 502 | "url": "https://homebrew.bintray.com/bottles/exercism-3.0.13.mojave.bottle.1.tar.gz", 503 | "sha256": "1ff0a848544a5ffd13cf7c22d93b5a63c642829d6cfbde484ca4ef12bae146f5" 504 | }, 505 | "high_sierra": { 506 | "url": "https://homebrew.bintray.com/bottles/exercism-3.0.13.high_sierra.bottle.1.tar.gz", 507 | "sha256": "1c3903b2b675134e874b8a35a05744c161ca7feb0b13b171b65c50b3ad326045" 508 | } 509 | } 510 | } 511 | }, 512 | "gcc": { 513 | "version": "9.2.0_3", 514 | "bottle": { 515 | "cellar": "/usr/local/Cellar", 516 | "prefix": "/usr/local", 517 | "files": { 518 | "catalina": { 519 | "url": "https://homebrew.bintray.com/bottles/gcc-9.2.0_3.catalina.bottle.tar.gz", 520 | "sha256": "3d1fed93856370b9857e187c11f8cfe43c0df9a05274a2eaabb1a9e5c7fd9605" 521 | }, 522 | "mojave": { 523 | "url": "https://homebrew.bintray.com/bottles/gcc-9.2.0_3.mojave.bottle.tar.gz", 524 | "sha256": "76037262428095ab93360edca037d5b0153cc9a3bde2991d3d09295684c3bd8e" 525 | }, 526 | "high_sierra": { 527 | "url": "https://homebrew.bintray.com/bottles/gcc-9.2.0_3.high_sierra.bottle.tar.gz", 528 | "sha256": "4a5bad045cdc625c0eddfac21eb90f5c56370aaf186a33612907ca17551d7541" 529 | } 530 | } 531 | } 532 | }, 533 | "gdb": { 534 | "version": "8.3", 535 | "bottle": { 536 | "cellar": "/usr/local/Cellar", 537 | "prefix": "/usr/local", 538 | "files": { 539 | "catalina": { 540 | "url": "https://homebrew.bintray.com/bottles/gdb-8.3.catalina.bottle.tar.gz", 541 | "sha256": "fbc1eb60dc46eb6517ea530049496336e1a4d3c9b3bdf8816665cac528fd99a4" 542 | }, 543 | "mojave": { 544 | "url": "https://homebrew.bintray.com/bottles/gdb-8.3.mojave.bottle.tar.gz", 545 | "sha256": "16da5f61ca304740defde7f8a772d5fb5f5c48ac658984ef186d1c77f53b5d6a" 546 | }, 547 | "high_sierra": { 548 | "url": "https://homebrew.bintray.com/bottles/gdb-8.3.high_sierra.bottle.tar.gz", 549 | "sha256": "2721c3a733fba77d623f84c33cce6a1cca46c6a020649269f4431de402704fa1" 550 | }, 551 | "sierra": { 552 | "url": "https://homebrew.bintray.com/bottles/gdb-8.3.sierra.bottle.tar.gz", 553 | "sha256": "b2343fca9963d198248c98ee069211c28e04135effcc2e7ed0900fec7c7d95a3" 554 | } 555 | } 556 | } 557 | }, 558 | "harfbuzz": { 559 | "version": "2.6.4", 560 | "bottle": { 561 | "cellar": ":any", 562 | "prefix": "/usr/local", 563 | "files": { 564 | "catalina": { 565 | "url": "https://homebrew.bintray.com/bottles/harfbuzz-2.6.4.catalina.bottle.tar.gz", 566 | "sha256": "feed99de447de882a40417ee9b0739faf8827d01d3dfb25f01d89e73aa1f2444" 567 | }, 568 | "mojave": { 569 | "url": "https://homebrew.bintray.com/bottles/harfbuzz-2.6.4.mojave.bottle.tar.gz", 570 | "sha256": "b3fb0c92dcc1bf0917903ce0adca5d4beffde1fe500e3c12098a48a3708213e0" 571 | }, 572 | "high_sierra": { 573 | "url": "https://homebrew.bintray.com/bottles/harfbuzz-2.6.4.high_sierra.bottle.tar.gz", 574 | "sha256": "272c2ed319b5141b2c20f6ce5aa4178d688e52cadbe3bcf258c285934f8edb62" 575 | } 576 | } 577 | } 578 | }, 579 | "qt": { 580 | "version": "5.14.0", 581 | "bottle": { 582 | "cellar": ":any", 583 | "prefix": "/usr/local", 584 | "files": { 585 | "catalina": { 586 | "url": "https://homebrew.bintray.com/bottles/qt-5.14.0.catalina.bottle.tar.gz", 587 | "sha256": "80b6628ab4cb791447965aead90df06f6d293a643cfc5df625f6fab16c27170b" 588 | }, 589 | "mojave": { 590 | "url": "https://homebrew.bintray.com/bottles/qt-5.14.0.mojave.bottle.tar.gz", 591 | "sha256": "5820621ff53e91676c4a14b59a2bcc34cf880e75bfbe95bee11510ec3251eb7c" 592 | }, 593 | "high_sierra": { 594 | "url": "https://homebrew.bintray.com/bottles/qt-5.14.0.high_sierra.bottle.tar.gz", 595 | "sha256": "d3e8dc52ca3ff4f15fcbff62195c99f15f686141bf0bf1fb6926c007611d5e2a" 596 | } 597 | } 598 | } 599 | }, 600 | "gnuplot": { 601 | "version": "5.2.8", 602 | "bottle": { 603 | "cellar": "/usr/local/Cellar", 604 | "prefix": "/usr/local", 605 | "files": { 606 | "catalina": { 607 | "url": "https://homebrew.bintray.com/bottles/gnuplot-5.2.8.catalina.bottle.tar.gz", 608 | "sha256": "752b5a6f7e93af1e2a23e8ab27c6d19d286f50b054eb0b7accdfa5765c69b3b0" 609 | }, 610 | "mojave": { 611 | "url": "https://homebrew.bintray.com/bottles/gnuplot-5.2.8.mojave.bottle.tar.gz", 612 | "sha256": "645bff55538d6610cf93539dbeec5067a750a6edc0fbbbab6e34710c16db10ef" 613 | }, 614 | "high_sierra": { 615 | "url": "https://homebrew.bintray.com/bottles/gnuplot-5.2.8.high_sierra.bottle.tar.gz", 616 | "sha256": "36f2d97fbf5772eef3cd0f1988997848e7367ab7943a2542ea15d93bbfd083ce" 617 | } 618 | } 619 | } 620 | }, 621 | "go": { 622 | "version": "1.13.5", 623 | "bottle": { 624 | "cellar": "/usr/local/Cellar", 625 | "prefix": "/usr/local", 626 | "files": { 627 | "catalina": { 628 | "url": "https://homebrew.bintray.com/bottles/go-1.13.5.catalina.bottle.tar.gz", 629 | "sha256": "8a73da047a947b897d409ce43c107d8f45dc14d64f74e1cc6389cf9fa9ff759d" 630 | }, 631 | "mojave": { 632 | "url": "https://homebrew.bintray.com/bottles/go-1.13.5.mojave.bottle.tar.gz", 633 | "sha256": "06bfe3093a424828aa5b5f5de20d530188ea65e9fd666f4f34eccdf167838430" 634 | }, 635 | "high_sierra": { 636 | "url": "https://homebrew.bintray.com/bottles/go-1.13.5.high_sierra.bottle.tar.gz", 637 | "sha256": "b75de256bf156c3a80b46950b60729d2fec17307903cb051e06dab6d2393f883" 638 | } 639 | } 640 | } 641 | }, 642 | "hexyl": { 643 | "version": "0.6.0", 644 | "bottle": { 645 | "cellar": ":any_skip_relocation", 646 | "prefix": "/usr/local", 647 | "files": { 648 | "catalina": { 649 | "url": "https://homebrew.bintray.com/bottles/hexyl-0.6.0.catalina.bottle.1.tar.gz", 650 | "sha256": "c3d573fa057aef06a57da5e5244c50d45e895b2a0ffe36f543efc04866074d6d" 651 | }, 652 | "mojave": { 653 | "url": "https://homebrew.bintray.com/bottles/hexyl-0.6.0.mojave.bottle.1.tar.gz", 654 | "sha256": "99a3133f73538f29f0dc2a603f122b2c2165fdd53de0f2141fc0ebab086c22f2" 655 | }, 656 | "high_sierra": { 657 | "url": "https://homebrew.bintray.com/bottles/hexyl-0.6.0.high_sierra.bottle.1.tar.gz", 658 | "sha256": "c1f885347631441fceeb3f0ed4d29dc4c259f36108da31ce862dc240c1884819" 659 | } 660 | } 661 | } 662 | }, 663 | "highlight": { 664 | "version": "3.54", 665 | "bottle": { 666 | "cellar": "/usr/local/Cellar", 667 | "prefix": "/usr/local", 668 | "files": { 669 | "catalina": { 670 | "url": "https://homebrew.bintray.com/bottles/highlight-3.54.catalina.bottle.tar.gz", 671 | "sha256": "c02c61dfc4aee5d36e7567fba45f05552bab5e26a99d7b39693149ade95d3c7f" 672 | }, 673 | "mojave": { 674 | "url": "https://homebrew.bintray.com/bottles/highlight-3.54.mojave.bottle.tar.gz", 675 | "sha256": "a0f9bcef112645b17cfc3b71379a4d0da12c6e1341a3690fb23f3721002db317" 676 | }, 677 | "high_sierra": { 678 | "url": "https://homebrew.bintray.com/bottles/highlight-3.54.high_sierra.bottle.tar.gz", 679 | "sha256": "b917103aa86aa45d780a1118e8058daafab9ae749fac1a18cbc8000080056bd7" 680 | } 681 | } 682 | } 683 | }, 684 | "imagemagick": { 685 | "version": "7.0.9-14", 686 | "bottle": { 687 | "cellar": "/usr/local/Cellar", 688 | "prefix": "/usr/local", 689 | "files": { 690 | "catalina": { 691 | "url": "https://homebrew.bintray.com/bottles/imagemagick-7.0.9-14.catalina.bottle.tar.gz", 692 | "sha256": "7914bafe42d346fed256748a36eb249601689c0cd1407297cfc33682f4d29a8c" 693 | }, 694 | "mojave": { 695 | "url": "https://homebrew.bintray.com/bottles/imagemagick-7.0.9-14.mojave.bottle.tar.gz", 696 | "sha256": "79fb6d07daffc64759c6456b9a47f0b279876a78312bca29eb3eac88f8df12e9" 697 | }, 698 | "high_sierra": { 699 | "url": "https://homebrew.bintray.com/bottles/imagemagick-7.0.9-14.high_sierra.bottle.tar.gz", 700 | "sha256": "9292392034c82d3fe6382ce1670deef7bb6fdc4f730ac402f96c12660a6e122d" 701 | } 702 | } 703 | } 704 | }, 705 | "lcov": { 706 | "version": "1.14", 707 | "bottle": { 708 | "cellar": ":any_skip_relocation", 709 | "prefix": "/usr/local", 710 | "files": { 711 | "catalina": { 712 | "url": "https://homebrew.bintray.com/bottles/lcov-1.14.catalina.bottle.tar.gz", 713 | "sha256": "e41c1e1b7e38279cb0e0e8e638046ffe4172ae18bd43afcb767eb52f28d822fe" 714 | }, 715 | "mojave": { 716 | "url": "https://homebrew.bintray.com/bottles/lcov-1.14.mojave.bottle.tar.gz", 717 | "sha256": "2ca04e6c269ebf3587be2e485e0a6be9de81963e0a59a852c3be227bcb43919e" 718 | }, 719 | "high_sierra": { 720 | "url": "https://homebrew.bintray.com/bottles/lcov-1.14.high_sierra.bottle.tar.gz", 721 | "sha256": "2ca04e6c269ebf3587be2e485e0a6be9de81963e0a59a852c3be227bcb43919e" 722 | }, 723 | "sierra": { 724 | "url": "https://homebrew.bintray.com/bottles/lcov-1.14.sierra.bottle.tar.gz", 725 | "sha256": "e6d2a1d121c878d81d051de0f9f7fbda37c438a620de9c99d0a0c7540b5f61d1" 726 | } 727 | } 728 | } 729 | }, 730 | "llvm": { 731 | "version": "9.0.0_1", 732 | "bottle": { 733 | "cellar": ":any", 734 | "prefix": "/usr/local", 735 | "files": { 736 | "catalina": { 737 | "url": "https://homebrew.bintray.com/bottles/llvm-9.0.0_1.catalina.bottle.tar.gz", 738 | "sha256": "a8e2475a1fc5a81f0da83a73d17fd54cc2a686f7b5d8e7ace9ea18885971415f" 739 | }, 740 | "mojave": { 741 | "url": "https://homebrew.bintray.com/bottles/llvm-9.0.0_1.mojave.bottle.tar.gz", 742 | "sha256": "418d1e365a59f1ef41b36e444ea72e60f381ba02083659e0375838d81443b151" 743 | }, 744 | "high_sierra": { 745 | "url": "https://homebrew.bintray.com/bottles/llvm-9.0.0_1.high_sierra.bottle.tar.gz", 746 | "sha256": "f9e02c2d5e6a5480e2f3f353d223acb170a9ba19fcd8d3ce38fbbc4e99a7d952" 747 | } 748 | } 749 | } 750 | }, 751 | "mackup": { 752 | "version": "0.8.27_1", 753 | "bottle": { 754 | "cellar": ":any_skip_relocation", 755 | "prefix": "/usr/local", 756 | "files": { 757 | "catalina": { 758 | "url": "https://homebrew.bintray.com/bottles/mackup-0.8.27_1.catalina.bottle.tar.gz", 759 | "sha256": "08e307fb2b1ad49f54d6e042f2aef44ddad7fab38d69eb80d2a31bf4d6b3bc6d" 760 | }, 761 | "mojave": { 762 | "url": "https://homebrew.bintray.com/bottles/mackup-0.8.27_1.mojave.bottle.tar.gz", 763 | "sha256": "1e03d73d981c1cbc0d49da9058eb508b58293e6f4ad8bdbaf6dbb832d40d4dab" 764 | }, 765 | "high_sierra": { 766 | "url": "https://homebrew.bintray.com/bottles/mackup-0.8.27_1.high_sierra.bottle.tar.gz", 767 | "sha256": "8f7d3568073793ef4d511ff7bbb67d8d6b68518af8fd68c862b89c23b53176d7" 768 | } 769 | } 770 | } 771 | }, 772 | "neovim": { 773 | "version": "0.4.3", 774 | "bottle": { 775 | "cellar": "/usr/local/Cellar", 776 | "prefix": "/usr/local", 777 | "files": { 778 | "catalina": { 779 | "url": "https://homebrew.bintray.com/bottles/neovim-0.4.3.catalina.bottle.tar.gz", 780 | "sha256": "389ab254794ea04df8a106bf281c227c4fdee27c609d52951f32b9a0239031d6" 781 | }, 782 | "mojave": { 783 | "url": "https://homebrew.bintray.com/bottles/neovim-0.4.3.mojave.bottle.tar.gz", 784 | "sha256": "fb6cc38c45be4650a4a750a314cec27f6f7643dc7c22a1f5abae347e1b39b388" 785 | }, 786 | "high_sierra": { 787 | "url": "https://homebrew.bintray.com/bottles/neovim-0.4.3.high_sierra.bottle.tar.gz", 788 | "sha256": "b2f7450e005f4eb22bfaf650fe7741fa8629393a947b4dd48c9f91e7fc258113" 789 | } 790 | } 791 | } 792 | }, 793 | "numpy": { 794 | "version": "1.17.4", 795 | "bottle": { 796 | "cellar": ":any", 797 | "prefix": "/usr/local", 798 | "files": { 799 | "catalina": { 800 | "url": "https://homebrew.bintray.com/bottles/numpy-1.17.4.catalina.bottle.tar.gz", 801 | "sha256": "7b63631ab91df782aafe5662d11ad15265ff55ddd23647484ea51566e77e4ca1" 802 | }, 803 | "mojave": { 804 | "url": "https://homebrew.bintray.com/bottles/numpy-1.17.4.mojave.bottle.tar.gz", 805 | "sha256": "0c7b145b0075974fbb3beb4bef585b6c352d71ec470aeb2f3d6c2388c3073f25" 806 | }, 807 | "high_sierra": { 808 | "url": "https://homebrew.bintray.com/bottles/numpy-1.17.4.high_sierra.bottle.tar.gz", 809 | "sha256": "93d3b0d26275214bdd1d359c29e323b7719ac16269dbc98db3b5d80c7dfa8520" 810 | } 811 | } 812 | }, 813 | "options": { 814 | "link": false 815 | } 816 | }, 817 | "nvm": { 818 | "version": "0.35.2", 819 | "bottle": false 820 | }, 821 | "pandoc": { 822 | "version": "2.9.1.1", 823 | "bottle": { 824 | "cellar": "/usr/local/Cellar", 825 | "prefix": "/usr/local", 826 | "files": { 827 | "catalina": { 828 | "url": "https://homebrew.bintray.com/bottles/pandoc-2.9.1.1.catalina.bottle.tar.gz", 829 | "sha256": "1adc3019366def3f0368083a8220b6f0cc61347b832eb52535527f5ce28d23e7" 830 | }, 831 | "mojave": { 832 | "url": "https://homebrew.bintray.com/bottles/pandoc-2.9.1.1.mojave.bottle.tar.gz", 833 | "sha256": "f10f1af1eae6fccf77d78d478cf128cfca12d9edbd5856f80dedd5aaf5ff9c11" 834 | }, 835 | "high_sierra": { 836 | "url": "https://homebrew.bintray.com/bottles/pandoc-2.9.1.1.high_sierra.bottle.tar.gz", 837 | "sha256": "81fbc2783d28098aa44c24a7e26bbe30f60ccdc69043a752132aad77c36f3db5" 838 | } 839 | } 840 | } 841 | }, 842 | "sassc": { 843 | "version": "3.6.1", 844 | "bottle": { 845 | "cellar": ":any", 846 | "prefix": "/usr/local", 847 | "files": { 848 | "catalina": { 849 | "url": "https://homebrew.bintray.com/bottles/sassc-3.6.1.catalina.bottle.tar.gz", 850 | "sha256": "b3e76afb48cf7789113e29f01389bdc5d7f13faf3e9b7f28f4bf9ef352363b0f" 851 | }, 852 | "mojave": { 853 | "url": "https://homebrew.bintray.com/bottles/sassc-3.6.1.mojave.bottle.tar.gz", 854 | "sha256": "34e0739d4967b537d4836780cefcb47910ce8c5b8201e9f864d10c3d34801237" 855 | }, 856 | "high_sierra": { 857 | "url": "https://homebrew.bintray.com/bottles/sassc-3.6.1.high_sierra.bottle.tar.gz", 858 | "sha256": "4461eb8cf88f6fbbfe0d15b0efd0449cc95e3e46873af0f972769594786c32ea" 859 | }, 860 | "sierra": { 861 | "url": "https://homebrew.bintray.com/bottles/sassc-3.6.1.sierra.bottle.tar.gz", 862 | "sha256": "e54c8d0ddc93a8212c9c39f9e8c853a6b19ae1fc2ba3bee650785215441aa60e" 863 | } 864 | } 865 | } 866 | }, 867 | "screenfetch": { 868 | "version": "3.9.1", 869 | "bottle": false 870 | }, 871 | "shellcheck": { 872 | "version": "0.7.0", 873 | "bottle": { 874 | "cellar": ":any_skip_relocation", 875 | "prefix": "/usr/local", 876 | "files": { 877 | "mojave": { 878 | "url": "https://homebrew.bintray.com/bottles/shellcheck-0.7.0.mojave.bottle.tar.gz", 879 | "sha256": "be8e084d55379a4b5a8bfba78ad298f966f0888e6c3eb7e5202527d3938f3501" 880 | }, 881 | "high_sierra": { 882 | "url": "https://homebrew.bintray.com/bottles/shellcheck-0.7.0.high_sierra.bottle.tar.gz", 883 | "sha256": "a4e12db223139c82649fdc16a2d04184cbaf5fc413c1135b0a1100a16e33290b" 884 | }, 885 | "sierra": { 886 | "url": "https://homebrew.bintray.com/bottles/shellcheck-0.7.0.sierra.bottle.tar.gz", 887 | "sha256": "770a22a491ae6316f7b6e56d8039d30693d857336ccc608de865750798480899" 888 | } 889 | } 890 | } 891 | }, 892 | "swi-prolog": { 893 | "version": "8.0.3_1", 894 | "bottle": { 895 | "cellar": "/usr/local/Cellar", 896 | "prefix": "/usr/local", 897 | "files": { 898 | "catalina": { 899 | "url": "https://homebrew.bintray.com/bottles/swi-prolog-8.0.3_1.catalina.bottle.tar.gz", 900 | "sha256": "7c4d1bfaa974db039bdd7ec219d22206b63833b4c2a2d078db52c8f6742031ce" 901 | }, 902 | "mojave": { 903 | "url": "https://homebrew.bintray.com/bottles/swi-prolog-8.0.3_1.mojave.bottle.tar.gz", 904 | "sha256": "587beb4ccaa5e7fb85d1c4465487fb315e4ef168a30ad674c614d8c0ba84ca6b" 905 | }, 906 | "high_sierra": { 907 | "url": "https://homebrew.bintray.com/bottles/swi-prolog-8.0.3_1.high_sierra.bottle.tar.gz", 908 | "sha256": "fff29cb6a95e692fb68bda037ccef83164a91e550e784d643446f777a9cb8ccc" 909 | }, 910 | "sierra": { 911 | "url": "https://homebrew.bintray.com/bottles/swi-prolog-8.0.3_1.sierra.bottle.tar.gz", 912 | "sha256": "3cbd050f46aef41c733b56ab49dc081c6bd39ad67c79d3a24381a01291c8a1ad" 913 | } 914 | } 915 | } 916 | }, 917 | "tmux": { 918 | "version": "3.0a", 919 | "bottle": { 920 | "cellar": ":any", 921 | "prefix": "/usr/local", 922 | "files": { 923 | "catalina": { 924 | "url": "https://homebrew.bintray.com/bottles/tmux-3.0a.catalina.bottle.tar.gz", 925 | "sha256": "3d29caf7e2b87c9f1af575b4ec10af3e29c5de6979a8bd884153d9e8e1b69f20" 926 | }, 927 | "mojave": { 928 | "url": "https://homebrew.bintray.com/bottles/tmux-3.0a.mojave.bottle.tar.gz", 929 | "sha256": "6cfd3987dcda2901a3ed423138db7782ea88a993e1409c4ebb9d647b1c007e8a" 930 | }, 931 | "high_sierra": { 932 | "url": "https://homebrew.bintray.com/bottles/tmux-3.0a.high_sierra.bottle.tar.gz", 933 | "sha256": "c7c42853ca6a3a5ad6ab6544defee14e450643f5ace274b9cf00d348e8525993" 934 | } 935 | } 936 | } 937 | }, 938 | "wget": { 939 | "version": "1.20.3_2", 940 | "bottle": { 941 | "cellar": "/usr/local/Cellar", 942 | "prefix": "/usr/local", 943 | "files": { 944 | "catalina": { 945 | "url": "https://homebrew.bintray.com/bottles/wget-1.20.3_2.catalina.bottle.tar.gz", 946 | "sha256": "ef65c759c5097a36323fa9c77756468649e8d1980a3a4e05695c05e39568967c" 947 | }, 948 | "mojave": { 949 | "url": "https://homebrew.bintray.com/bottles/wget-1.20.3_2.mojave.bottle.tar.gz", 950 | "sha256": "28f4090610946a4eb207df102d841de23ced0d06ba31cb79e040d883906dcd4f" 951 | }, 952 | "high_sierra": { 953 | "url": "https://homebrew.bintray.com/bottles/wget-1.20.3_2.high_sierra.bottle.tar.gz", 954 | "sha256": "91dd0caca9bd3f38c439d5a7b6f68440c4274945615fae035ff0a369264b8a2f" 955 | } 956 | } 957 | } 958 | }, 959 | "zplug": { 960 | "version": "2.4.2", 961 | "bottle": false 962 | }, 963 | "zsh": { 964 | "version": "5.7.1", 965 | "bottle": { 966 | "cellar": "/usr/local/Cellar", 967 | "prefix": "/usr/local", 968 | "files": { 969 | "catalina": { 970 | "url": "https://homebrew.bintray.com/bottles/zsh-5.7.1.catalina.bottle.tar.gz", 971 | "sha256": "a24afee5cc1af2b139b6afb8963992b3fb22a4b9fbfa02402ac17e6bfa66a27a" 972 | }, 973 | "mojave": { 974 | "url": "https://homebrew.bintray.com/bottles/zsh-5.7.1.mojave.bottle.tar.gz", 975 | "sha256": "793d87f67e64a5e01dfdea890af218e4779a2df514d395b956e464129af16fd7" 976 | }, 977 | "high_sierra": { 978 | "url": "https://homebrew.bintray.com/bottles/zsh-5.7.1.high_sierra.bottle.tar.gz", 979 | "sha256": "6656fe9aa5d5cbaff49bc9c1ccf17b7d96d21036ac44c9181bd35c57dc38b450" 980 | }, 981 | "sierra": { 982 | "url": "https://homebrew.bintray.com/bottles/zsh-5.7.1.sierra.bottle.tar.gz", 983 | "sha256": "008dfc844b88fcd61925233b08f0d78b2851bf2901320a5f6ee975da4b8604e3" 984 | } 985 | } 986 | } 987 | }, 988 | "heroku/brew/heroku": null, 989 | "koekeishiya/formulae/chunkwm": null, 990 | "koekeishiya/formulae/skhd": null 991 | }, 992 | "cask": { 993 | "alacritty": { 994 | "version": "0.4.0" 995 | }, 996 | "brooklyn": { 997 | "version": "2.0.1" 998 | }, 999 | "qutebrowser": { 1000 | "version": "1.8.3" 1001 | } 1002 | } 1003 | }, 1004 | "system": { 1005 | "macos": { 1006 | "mojave": { 1007 | "HOMEBREW_VERSION": "2.2.2", 1008 | "HOMEBREW_PREFIX": "/usr/local", 1009 | "Homebrew/homebrew-core": "52b23cafcd17e6228b44d455f72218091dd6c096", 1010 | "CLT": "10.3.0.0.1.1562985497", 1011 | "Xcode": "10.2.1", 1012 | "macOS": "10.14.6" 1013 | } 1014 | } 1015 | } 1016 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## `hmcd` 2 | 3 | or, hafiz's macOS configuration dotfiles. These 4 | configurations are specific my workflow and may not necessarily suit your needs, 5 | per the title. However, I hope this repository will help you pick and choose 6 | what you need. 7 | 8 | This dotfile repo employs the dotfile management method 9 | [described here](https://news.ycombinator.com/item?id=11071754). The 10 | [Atlassian Developer Blog](https://www.atlassian.com/git/tutorials/dotfiles#installing-git-lfs) 11 | has a well-written summary of how to install these dotfiles on a new system. 12 | 13 | ### Overview 14 | 15 | These config files specify a particular workflow on a macOS machine. 16 | Configurations for the following programs and softwares are included: 17 | 18 | - [yabai](https://github.com/koekeishiya/yabai) (tiling WM) 19 | - [skhd](https://github.com/koekeishiya/skhd) (hotkey daemon) 20 | - [alacritty](https://github.com/jwilm/alacritty) (terminal emulator) 21 | - [tmux](https://github.com/tmux/tmux) 22 | - [(neo)vim](https://github.com/neovim/neovim) 23 | - [zsh](https://www.zsh.org) 24 | - [git](https://git-scm.com) 25 | - [clang](https://clang.llvm.org) 26 | - [cargo](https://github.com/rust-lang/cargo), [rustup](https://rustup.rs) 27 | - [homebrew](https://brew.sh) 28 | - ...among others 29 | --------------------------------------------------------------------------------