All my dotfiles

initial commit

+769
.gitignore

This is a binary file and will not be displayed.

+21
LICENSE
··· 1 + MIT License 2 + 3 + Copyright (c) 2025 Kristófer Reykjalín 4 + 5 + Permission is hereby granted, free of charge, to any person obtaining a copy 6 + of this software and associated documentation files (the "Software"), to deal 7 + in the Software without restriction, including without limitation the rights 8 + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 + copies of the Software, and to permit persons to whom the Software is 10 + furnished to do so, subject to the following conditions: 11 + 12 + The above copyright notice and this permission notice shall be included in all 13 + copies or substantial portions of the Software. 14 + 15 + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 + SOFTWARE.
+272
atuin/config.toml
··· 1 + ## where to store your database, default is your system data directory 2 + ## linux/mac: ~/.local/share/atuin/history.db 3 + ## windows: %USERPROFILE%/.local/share/atuin/history.db 4 + # db_path = "~/.history.db" 5 + 6 + ## where to store your encryption key, default is your system data directory 7 + ## linux/mac: ~/.local/share/atuin/key 8 + ## windows: %USERPROFILE%/.local/share/atuin/key 9 + # key_path = "~/.key" 10 + 11 + ## where to store your auth session token, default is your system data directory 12 + ## linux/mac: ~/.local/share/atuin/session 13 + ## windows: %USERPROFILE%/.local/share/atuin/session 14 + # session_path = "~/.session" 15 + 16 + ## date format used, either "us" or "uk" 17 + # dialect = "us" 18 + 19 + ## default timezone to use when displaying time 20 + ## either "l", "local" to use the system's current local timezone, or an offset 21 + ## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]" 22 + ## for example: "+9", "-05", "+03:30", "-01:23:45", etc. 23 + # timezone = "local" 24 + 25 + ## enable or disable automatic sync 26 + # auto_sync = true 27 + 28 + ## enable or disable automatic update checks 29 + # update_check = true 30 + 31 + ## address of the sync server 32 + # sync_address = "https://api.atuin.sh" 33 + 34 + ## how often to sync history. note that this is only triggered when a command 35 + ## is ran, so sync intervals may well be longer 36 + ## set it to 0 to sync after every command 37 + # sync_frequency = "10m" 38 + 39 + ## which search mode to use 40 + ## possible values: prefix, fulltext, fuzzy, skim 41 + # search_mode = "fuzzy" 42 + 43 + ## which filter mode to use by default 44 + ## possible values: "global", "host", "session", "directory", "workspace" 45 + ## consider using search.filters to customize the enablement and order of filter modes 46 + # filter_mode = "global" 47 + 48 + ## With workspace filtering enabled, Atuin will filter for commands executed 49 + ## in any directory within a git repository tree (default: false). 50 + ## 51 + ## To use workspace mode by default when available, set this to true and 52 + ## set filter_mode to "workspace" or leave it unspecified and 53 + ## set search.filters to include "workspace" before other filter modes. 54 + # workspaces = false 55 + 56 + ## which filter mode to use when atuin is invoked from a shell up-key binding 57 + ## the accepted values are identical to those of "filter_mode" 58 + ## leave unspecified to use same mode set in "filter_mode" 59 + # filter_mode_shell_up_key_binding = "global" 60 + 61 + ## which search mode to use when atuin is invoked from a shell up-key binding 62 + ## the accepted values are identical to those of "search_mode" 63 + ## leave unspecified to use same mode set in "search_mode" 64 + # search_mode_shell_up_key_binding = "fuzzy" 65 + 66 + ## which style to use 67 + ## possible values: auto, full, compact 68 + # style = "auto" 69 + 70 + ## the maximum number of lines the interface should take up 71 + ## set it to 0 to always go full screen 72 + # inline_height = 0 73 + 74 + ## Invert the UI - put the search bar at the top , Default to `false` 75 + # invert = false 76 + 77 + ## enable or disable showing a preview of the selected command 78 + ## useful when the command is longer than the terminal width and is cut off 79 + # show_preview = true 80 + 81 + ## what to do when the escape key is pressed when searching 82 + ## possible values: return-original, return-query 83 + # exit_mode = "return-original" 84 + 85 + ## possible values: emacs, subl 86 + # word_jump_mode = "emacs" 87 + 88 + ## characters that count as a part of a word 89 + # word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" 90 + 91 + ## number of context lines to show when scrolling by pages 92 + # scroll_context_lines = 1 93 + 94 + ## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts 95 + ## alt-0 .. alt-9 96 + # ctrl_n_shortcuts = false 97 + 98 + ## default history list format - can also be specified with the --format arg 99 + # history_format = "{time}\t{command}\t{duration}" 100 + 101 + ## prevent commands matching any of these regexes from being written to history. 102 + ## Note that these regular expressions are unanchored, i.e. if they don't start 103 + ## with ^ or end with $, they'll match anywhere in the command. 104 + ## For details on the supported regular expression syntax, see 105 + ## https://docs.rs/regex/latest/regex/#syntax 106 + # history_filter = [ 107 + # "^secret-cmd", 108 + # "^innocuous-cmd .*--secret=.+", 109 + # ] 110 + 111 + ## prevent commands run with cwd matching any of these regexes from being written 112 + ## to history. Note that these regular expressions are unanchored, i.e. if they don't 113 + ## start with ^ or end with $, they'll match anywhere in CWD. 114 + ## For details on the supported regular expression syntax, see 115 + ## https://docs.rs/regex/latest/regex/#syntax 116 + # cwd_filter = [ 117 + # "^/very/secret/area", 118 + # ] 119 + 120 + ## Configure the maximum height of the preview to show. 121 + ## Useful when you have long scripts in your history that you want to distinguish 122 + ## by more than the first few lines. 123 + # max_preview_height = 4 124 + 125 + ## Configure whether or not to show the help row, which includes the current Atuin 126 + ## version (and whether an update is available), a keymap hint, and the total 127 + ## amount of commands in your history. 128 + # show_help = true 129 + 130 + ## Configure whether or not to show tabs for search and inspect 131 + # show_tabs = true 132 + 133 + ## Configure whether or not the tabs row may be auto-hidden, which includes the current Atuin 134 + ## tab, such as Search or Inspector, and other tabs you may wish to see. This will 135 + ## only be hidden if there are fewer than this count of lines available, and does not affect the use 136 + ## of keyboard shortcuts to switch tab. 0 to never auto-hide, default is 8 (lines). 137 + ## This is ignored except in `compact` mode. 138 + # auto_hide_height = 8 139 + 140 + ## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include 141 + ## 1. AWS key id 142 + ## 2. Github pat (old and new) 143 + ## 3. Slack oauth tokens (bot, user) 144 + ## 4. Slack webhooks 145 + ## 5. Stripe live/test keys 146 + # secrets_filter = true 147 + 148 + ## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit. 149 + # This applies for new installs. Old installs will keep the old behaviour unless configured otherwise. 150 + enter_accept = true 151 + 152 + ## Defaults to "emacs". This specifies the keymap on the startup of `atuin 153 + ## search`. If this is set to "auto", the startup keymap mode in the Atuin 154 + ## search is automatically selected based on the shell's keymap where the 155 + ## keybinding is defined. If this is set to "emacs", "vim-insert", or 156 + ## "vim-normal", the startup keymap mode in the Atuin search is forced to be 157 + ## the specified one. 158 + # keymap_mode = "auto" 159 + 160 + ## Cursor style in each keymap mode. If specified, the cursor style is changed 161 + ## in entering the cursor shape. Available values are "default" and 162 + ## "{blink,steady}-{block,underline,bar}". 163 + # keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" } 164 + 165 + # network_connect_timeout = 5 166 + # network_timeout = 5 167 + 168 + ## Timeout (in seconds) for acquiring a local database connection (sqlite) 169 + # local_timeout = 5 170 + 171 + ## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc. 172 + ## Alternatively, set env NO_MOTION=true 173 + # prefers_reduced_motion = false 174 + 175 + [stats] 176 + ## Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl 177 + # common_subcommands = [ 178 + # "apt", 179 + # "cargo", 180 + # "composer", 181 + # "dnf", 182 + # "docker", 183 + # "git", 184 + # "go", 185 + # "ip", 186 + # "jj", 187 + # "kubectl", 188 + # "nix", 189 + # "nmcli", 190 + # "npm", 191 + # "pecl", 192 + # "pnpm", 193 + # "podman", 194 + # "port", 195 + # "systemctl", 196 + # "tmux", 197 + # "yarn", 198 + # ] 199 + 200 + ## Set commands that should be totally stripped and ignored from stats 201 + # common_prefix = ["sudo"] 202 + 203 + ## Set commands that will be completely ignored from stats 204 + # ignored_commands = [ 205 + # "cd", 206 + # "ls", 207 + # "vi" 208 + # ] 209 + 210 + [keys] 211 + # Defaults to true. If disabled, using the up/down key won't exit the TUI when scrolled past the first/last entry. 212 + # scroll_exits = true 213 + # Defaults to true. The left arrow key will exit the TUI when scrolling before the first character 214 + # exit_past_line_start = true 215 + # Defaults to true. The right arrow key performs the same functionality as Tab and copies the selected line to the command line to be modified. 216 + # accept_past_line_end = true 217 + 218 + [sync] 219 + # Enable sync v2 by default 220 + # This ensures that sync v2 is enabled for new installs only 221 + # In a later release it will become the default across the board 222 + records = true 223 + 224 + [preview] 225 + ## which preview strategy to use to calculate the preview height (respects max_preview_height). 226 + ## possible values: auto, static 227 + ## auto: length of the selected command. 228 + ## static: length of the longest command stored in the history. 229 + ## fixed: use max_preview_height as fixed height. 230 + # strategy = "auto" 231 + 232 + [daemon] 233 + ## Enables using the daemon to sync. Requires the daemon to be running in the background. Start it with `atuin daemon` 234 + # enabled = false 235 + 236 + ## How often the daemon should sync in seconds 237 + # sync_frequency = 300 238 + 239 + ## The path to the unix socket used by the daemon (on unix systems) 240 + ## linux/mac: ~/.local/share/atuin/atuin.sock 241 + ## windows: Not Supported 242 + # socket_path = "~/.local/share/atuin/atuin.sock" 243 + 244 + ## Use systemd socket activation rather than opening the given path (the path must still be correct for the client) 245 + ## linux: false 246 + ## mac/windows: Not Supported 247 + # systemd_socket = false 248 + 249 + ## The port that should be used for TCP on non unix systems 250 + # tcp_port = 8889 251 + 252 + # [theme] 253 + ## Color theme to use for rendering in the terminal. 254 + ## There are some built-in themes, including the base theme ("default"), 255 + ## "autumn" and "marine". You can add your own themes to the "./themes" subdirectory of your 256 + ## Atuin config (or ATUIN_THEME_DIR, if provided) as TOML files whose keys should be one or 257 + ## more of AlertInfo, AlertWarn, AlertError, Annotation, Base, Guidance, Important, and 258 + ## the string values as lowercase entries from this list: 259 + ## https://ogeon.github.io/docs/palette/master/palette/named/index.html 260 + ## If you provide a custom theme file, it should be called "NAME.toml" and the theme below 261 + ## should be the stem, i.e. `theme = "NAME"` for your chosen NAME. 262 + # name = "autumn" 263 + 264 + ## Whether the theme manager should output normal or extra information to help fix themes. 265 + ## Boolean, true or false. If unset, left up to the theme manager. 266 + # debug = true 267 + 268 + [search] 269 + ## The list of enabled filter modes, in order of priority. 270 + ## The "workspace" mode is skipped when not in a workspace or workspaces = false. 271 + ## Default filter mode can be overridden with the filter_mode setting. 272 + # filters = [ "global", "host", "session", "workspace", "directory" ]
+8
efm-langserver/config.yaml
··· 1 + version: 2 2 + root-markers: 3 + - .git/ 4 + - .package.json 5 + - .build.zig.zon 6 + lint-debounce: 1s 7 + 8 +
+5
fish/.gitignore
··· 1 + conf.d/ignore* 2 + fish_variables 3 + functions/ignore* 4 + themes/ignore* 5 + .DS_Store
+1
fish/completions/j.fish
··· 1 + complete -c j -a "(__fish_complete_cd)"
+43
fish/conf.d/abbreviations.fish
··· 1 + # Git. 2 + abbr --add ga git add 3 + abbr --add gap git add --patch 4 + abbr --add gp git push 5 + abbr --add gpf git push --force 6 + abbr --add gpl git pull 7 + abbr --add gplr git pull --rebase 8 + abbr --add gs git status 9 + if type --query difft 10 + abbr --add gd git -c diff.external=difft diff 11 + else 12 + abbr --add gd git diff 13 + end 14 + 15 + function remote_and_branch 16 + set branch (git rev-parse --abbrev-ref HEAD) 17 + echo (git config --get branch.$branch.remote) $branch 18 + end 19 + 20 + abbr --command git cb --function remote_and_branch 21 + 22 + # Zig build. 23 + abbr --add zb zig build 24 + abbr --add zbw zig build --watch 25 + abbr --add zbr zig build run 26 + abbr --add zbf zig build -Doptimize=ReleaseFast 27 + abbr --add zbfl zig build -Doptimize=ReleaseFast --prefix ~/.local 28 + abbr --add zbs zig build -Doptimize=ReleaseSafe 29 + abbr --add zbsl zig build -Doptimize=ReleaseSafe --prefix ~/.local 30 + abbr --add zt zig test 31 + abbr --add zbt zig build test --summary all 32 + 33 + if type --query eza 34 + abbr --add ls eza --icons 35 + abbr --add ll eza --icons -lh 36 + abbr --add la eza --icons -lha 37 + end 38 + 39 + if type --query bat 40 + abbr --add cat bat 41 + else if type --query zat 42 + abbr --add cat zat 43 + end
+4
fish/conf.d/atuin.fish
··· 1 + if type --query atuin; and status is-interactive 2 + # Commands to run in interactive sessions can go here 3 + atuin init fish | source 4 + end
+14
fish/conf.d/brew.fish
··· 1 + if type --query /opt/homebrew/bin/brew 2 + set -gx HOMEBREW_PREFIX /opt/homebrew 3 + set -gx HOMEBREW_CELLAR /opt/homebrew/Cellar 4 + set -gx HOMEBREW_REPOSITORY /opt/homebrew 5 + 6 + fish_add_path /opt/homebrew/bin 7 + fish_add_path /opt/homebrew/sbin 8 + 9 + set -q MANPATH; or set MANPATH '' 10 + set -gx MANPATH /opt/homebrew/share/man $MANPATH 11 + 12 + set -q INFOPATH; or set INFOPATH '' 13 + set -gx INFOPATH /opt/homebrew/share/info $INFOPATH 14 + end
+1
fish/conf.d/disable-greeting.fish
··· 1 + set -g fish_greeting
+1
fish/conf.d/fnm.fish
··· 1 + fnm env --use-on-cd --shell fish | source
+3
fish/conf.d/fzf.fish
··· 1 + if type --query fzf 2 + fzf --fish | source 3 + end
+29
fish/conf.d/set-editor.fish
··· 1 + if type --query hx 2 + set -gx EDITOR hx 3 + return 4 + end 5 + 6 + if type --query nvim 7 + set -gx EDITOR nvim 8 + return 9 + end 10 + 11 + if type --query vim 12 + set -gx EDITOR vim 13 + return 14 + end 15 + 16 + if type --query vi 17 + set -gx EDITOR vi 18 + return 19 + end 20 + 21 + if type --query pico 22 + set -gx EDITOR pico 23 + return 24 + end 25 + 26 + if type --query nano 27 + set -gx EDITOR nano 28 + return 29 + end
+1
fish/conf.d/set-paths.fish
··· 1 + fish_add_path ~/.local/bin/
+1
fish/config.fish
··· 1 +
+44
fish/functions/e.fish
··· 1 + function e --description 'opens a fuzzy file selector to open your editor if available' 2 + set fuzzer '' 3 + if type --query zf 4 + set fuzzer zf 5 + else if type --query fzf 6 + set fuzzer fzf 7 + end 8 + 9 + # If a fuzzer isn't available we don't try it and just run the editor. 10 + if not test -n "$fuzzer" 11 + $EDITOR $argv 12 + return 13 + end 14 + 15 + # We use `fd` if available. 16 + set find find . -type f 17 + if type --query fd 18 + set find fd --type f 19 + end 20 + 21 + if count $argv >/dev/null 22 + # If a directory is provided, we move there first. 23 + # Otherwise: open the provided file in the editor. 24 + if test -d $argv 25 + cd $argv 26 + set file ($find | $fuzzer) 27 + if test -z $file 28 + return 1 29 + end 30 + 31 + $EDITOR $file 32 + else 33 + $EDITOR $argv 34 + end 35 + else 36 + # If nothing is provided, open a picker for files in the current directory. 37 + set file ($find | $fuzzer) 38 + if test -z $file 39 + return 1 40 + end 41 + 42 + $EDITOR $file 43 + end 44 + end
+57
fish/functions/fish_prompt.fish
··· 1 + function fish_prompt 2 + set -l last_status $status 3 + 4 + set -l normal (set_color normal) 5 + set -l usercolor (set_color $fish_color_user) 6 + 7 + # set -l delim \U25BA 8 + # If we don't have unicode use a simpler delimiter 9 + # string match -qi "*.utf-8" -- $LANG $LC_CTYPE $LC_ALL; or set delim ">" 10 + 11 + set -l delim "> " 12 + 13 + fish_is_root_user; and set delim "# " 14 + 15 + set -l cwd (set_color $fish_color_cwd) 16 + if command -sq cksum 17 + # randomized cwd color 18 + # We hash the physical PWD and turn that into a color. That means directories (usually) get different colors, 19 + # but every directory always gets the same color. It's deterministic. 20 + # We use cksum because 1. it's fast, 2. it's in POSIX, so it should be available everywhere. 21 + set -l shas (pwd -P | cksum | string split -f1 ' ' | math --base=hex | string sub -s 3 | string pad -c 0 -w 6 | string match -ra ..) 22 + set -l col 0x$shas[1..3] 23 + 24 + # If the (simplified idea of) luminance is below 120 (out of 255), add some more. 25 + # (this runs at most twice because we add 60) 26 + while test (math 0.2126 x $col[1] + 0.7152 x $col[2] + 0.0722 x $col[3]) -lt 120 27 + set col[1] (math --base=hex "min(255, $col[1] + 60)") 28 + set col[2] (math --base=hex "min(255, $col[2] + 60)") 29 + set col[3] (math --base=hex "min(255, $col[3] + 60)") 30 + end 31 + set -l col (string replace 0x '' $col | string pad -c 0 -w 2 | string join "") 32 + 33 + set cwd (set_color $col) 34 + end 35 + 36 + # Prompt status only if it's not 0 37 + set -l prompt_status 38 + test $last_status -ne 0; and set prompt_status (set_color $fish_color_status)"[$last_status]$normal" 39 + 40 + # Only show host if in SSH or container 41 + # Store this in a global variable because it's slow and unchanging 42 + if not set -q prompt_host 43 + set -g prompt_host "" 44 + if set -q SSH_TTY 45 + or begin 46 + command -sq systemd-detect-virt 47 + and systemd-detect-virt -q 48 + end 49 + set prompt_host $usercolor$USER$normal@(set_color $fish_color_host)$hostname$normal":" 50 + end 51 + end 52 + 53 + # Shorten pwd if prompt is too long 54 + set -l pwd (prompt_pwd) 55 + 56 + echo -n -s $prompt_host $cwd $pwd $normal $prompt_status $delim 57 + end
+32
fish/functions/fish_right_prompt.fish
··· 1 + function fish_right_prompt 2 + set -g __fish_git_prompt_showdirtystate 1 3 + set -g __fish_git_prompt_showuntrackedfiles 1 4 + set -g __fish_git_prompt_showupstream informative 5 + set -g __fish_git_prompt_showcolorhints 1 6 + set -g __fish_git_prompt_use_informative_chars 1 7 + # Unfortunately this only works if we have a sensible locale 8 + string match -qi "*.utf-8" -- $LANG $LC_CTYPE $LC_ALL 9 + and set -g __fish_git_prompt_char_dirtystate \U1F4a9 10 + set -g __fish_git_prompt_char_untrackedfiles "?" 11 + 12 + # The git prompt's default format is ' (%s)'. 13 + # We don't want the leading space. 14 + set -l vcs (fish_vcs_prompt '(%s)' 2>/dev/null) 15 + 16 + set -l d (set_color brgrey)(date "+%R")(set_color normal) 17 + 18 + set -l duration "$cmd_duration$CMD_DURATION" 19 + if test $duration -gt 100 20 + set duration (math $duration / 1000)s 21 + else 22 + set duration 23 + end 24 + 25 + set -q VIRTUAL_ENV_DISABLE_PROMPT 26 + or set -g VIRTUAL_ENV_DISABLE_PROMPT true 27 + set -q VIRTUAL_ENV 28 + and set -l venv (string replace -r '.*/' '' -- "$VIRTUAL_ENV") 29 + 30 + set_color normal 31 + string join " " -- $venv $duration $vcs $d 32 + end
+23
fish/functions/j.fish
··· 1 + function j 2 + set old_cwd $PWD 3 + if test -n "$argv[1]" 4 + cd "$argv[1]" 5 + set should_alter_history yes 6 + end 7 + 8 + set dir (fd . --type d --max-depth 4 | zf --height 40 --preview 'eza --icons=always -1 --classify=always ') 9 + if test -z "$dir" 10 + cd "$old_cwd" 11 + if test -n "$should_alter_history" 12 + set dirprev $dirprev[1..-3] 13 + else 14 + set dirprev $dirprev[1..-2] 15 + end 16 + return 1 17 + end 18 + 19 + cd $dir 20 + if test -n "$should_alter_history" 21 + set dirprev $dirprev[1..-2] 22 + end 23 + end
+13
fish/functions/pp.fish
··· 1 + function pp 2 + if not type --query project-picker 3 + echo "project-picker not installed" 4 + return 1 5 + end 6 + 7 + set dir (project-picker) 8 + 9 + # A non-zero exit code means no project was selected. 10 + if test $status -eq 0 11 + cd $dir 12 + end 13 + end
+13
fish/functions/y.fish
··· 1 + function y 2 + if type --query yazi 3 + echo 'yazi is not installed' 4 + exit 1 5 + end 6 + 7 + set tmp (mktemp -t "yazi-cwd.XXXXXX") 8 + yazi $argv --cwd-file="$tmp" 9 + if set cwd (command cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ] 10 + builtin cd -- "$cwd" 11 + end 12 + rm -f -- "$tmp" 13 + end
+30
fish/themes/Catppuccin Mocha.theme
··· 1 + # name: 'Catppuccin Mocha' 2 + # url: 'https://github.com/catppuccin/fish' 3 + # preferred_background: 1e1e2e 4 + 5 + fish_color_normal cdd6f4 6 + fish_color_command 89b4fa 7 + fish_color_param f2cdcd 8 + fish_color_keyword f38ba8 9 + fish_color_quote a6e3a1 10 + fish_color_redirection f5c2e7 11 + fish_color_end fab387 12 + fish_color_comment 7f849c 13 + fish_color_error f38ba8 14 + fish_color_gray 6c7086 15 + fish_color_selection --background=313244 16 + fish_color_search_match --background=313244 17 + fish_color_option a6e3a1 18 + fish_color_operator f5c2e7 19 + fish_color_escape eba0ac 20 + fish_color_autosuggestion 6c7086 21 + fish_color_cancel f38ba8 22 + fish_color_cwd f9e2af 23 + fish_color_user 94e2d5 24 + fish_color_host 89b4fa 25 + fish_color_host_remote a6e3a1 26 + fish_color_status f38ba8 27 + fish_pager_color_progress 6c7086 28 + fish_pager_color_prefix f5c2e7 29 + fish_pager_color_completion cdd6f4 30 + fish_pager_color_description 6c7086
+1
ghostty/.gitignore
··· 1 + ghostty-shaders
+30
ghostty/config
··· 1 + font-family = 0xProto 2 + 3 + shell-integration-features = sudo 4 + 5 + keybind = global:cmd+shift+grave_accent=toggle_quick_terminal 6 + 7 + # Disable ligatures since I'm not using 0xProto with ligature support. 8 + font-feature = -calt 9 + font-feature = -liga 10 + font-feature = -dlig 11 + 12 + theme = catppuccin-mocha 13 + 14 + macos-icon = custom-style 15 + macos-icon-frame = chrome 16 + macos-icon-screen-color = #FF00FF 17 + macos-icon-ghost-color = #FF00FF 18 + 19 + # Set left option to alt 20 + macos-option-as-alt = left 21 + 22 + # Allow text to show up in cursor with catppuccin colors. 23 + cursor-color = #f5e0dc 24 + cursor-text = #11111b 25 + 26 + # Maximize Ghostty on startup 27 + # maximize = true # For some reason this isn't working, setting width/height instead. 28 + window-height = 6000 29 + window-width = 6000 30 +
+1
git/allowed_signers
··· 1 + kristofer@thorlaksson.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOCSUTJT2azsk2+c+zlJ9OWeet7GBeNCjSPu9Ua06AD7
+6
git/ignore
··· 1 + .DS_Store 2 + .zed 3 + .helix 4 + .envrc 5 + devenv.* 6 + .phpactor.*
+42
helix/config.toml
··· 1 + theme = "catppuccin_mocha" 2 + # theme = "catppuccin_latte" 3 + 4 + [editor] 5 + auto-pairs = false 6 + bufferline = "multiple" 7 + color-modes = true 8 + completion-replace = true 9 + cursorline = true 10 + end-of-line-diagnostics = "hint" 11 + line-number = "relative" 12 + popup-border = "all" 13 + rulers = [ 100 ] 14 + scroll-lines = 1 15 + text-width = 100 16 + true-color = true 17 + undercurl = true 18 + 19 + [editor.cursor-shape] 20 + insert = "bar" 21 + 22 + [editor.indent-guides] 23 + render = true 24 + character = "▏" 25 + skip-levels = 1 26 + 27 + [editor.inline-diagnostics] 28 + cursor-line = "warning" 29 + other-lines = "warning" 30 + 31 + [keys.insert] 32 + j = { k = "normal_mode" } 33 + 34 + [keys.normal.space.o] 35 + t = ":sh zellij run -n dev-test -f -x 10%% -y 10%% --width 80%% --height 80%% -- dev test %{buffer_name}" 36 + l = ":sh zellij run -n stylelint -f -x 10%% -y 10%% --width 80%% --height 80%% -- npx stylelint %{buffer_name}" 37 + e = ":sh zellij run -n eslint -f -x 10%% -y 10%% --width 80%% --height 80%% -- npx eslint %{buffer_name}" 38 + 39 + [keys.normal.space.o.g] 40 + d = [":sh echo %{buffer_name} | pbcopy", ":vsplit-new", ":set-language diff", ":insert-output pbpaste | git diff"] 41 + D = [":vsplit-new", ":set-language diff", ":insert-output git diff"] 42 +
+13
helix/ignore
··· 1 + # unignore in file picker and global search. 2 + !.github/ 3 + 4 + !.gitignore 5 + !.gitattributes 6 + 7 + !.env* 8 + 9 + !.prettierrc 10 + !.eslintrc 11 + 12 + !.builds 13 + !.github
+39
helix/languages.toml
··· 1 + # Extends the base config from https://github.com/helix-editor/helix/blob/master/languages.toml 2 + 3 + [language-server.efm] 4 + command = "efm-langserver" 5 + 6 + [language-server.vtsls] 7 + command = "vtsls" 8 + args = [ "--stdio" ] 9 + 10 + [[language]] 11 + name = "markdown" 12 + 13 + # Soft-wrap markdown files. 14 + [language.soft-wrap] 15 + enable = true 16 + wrap-at-text-width = true 17 + 18 + 19 + [[language]] 20 + name = "html" 21 + language-servers = [ "superhtml" ] 22 + 23 + [[language]] 24 + name = "typescript" 25 + language-servers = [ "vtsls" ] 26 + formatter = { command = "npx", args = [ "prettier", "--parser", "typescript" ] } 27 + auto-format = true 28 + 29 + [[language]] 30 + name = "tsx" 31 + language-servers = [ "vtsls" ] 32 + formatter = { command = "npx", args = [ "prettier", "--parser", "typescript" ] } 33 + auto-format = true 34 + 35 + [[language]] 36 + name = "svelte" 37 + language-servers = [ "vtsls" ] 38 + formatter = { command = "npx", args = [ "prettier", "--parser", "svelte" ] } 39 + auto-format = true
+8
helix/zellij-fuzzy-picker.fish
··· 1 + set paths (fd --type f | zf --lines 30) 2 + zellij action toggle-floating-panes 3 + 4 + if test -n "$paths" 5 + zellij action write 27 # send <escape> key. 6 + zellij action write-chars ":$argv[1] $paths" 7 + zellij action write 13 # send <enter> key. 8 + end
+5
helix/zellij-git-diff.fish
··· 1 + if type --query difft 2 + GIT_PAGER="less -+F --clear-screen" git -c diff.external=difft diff $argv 3 + else 4 + GIT_PAGER="less -+F --clear-screen" git diff $argv 5 + end
+8
helix/zellij-yazi-picker.fish
··· 1 + set paths (yazi $argv[2] --chooser-file=/dev/stdout) 2 + zellij action toggle-floating-panes 3 + 4 + if test -n "$paths" 5 + zellij action write 27 # send <escape> key. 6 + zellij action write-chars ":$argv[1] $paths" 7 + zellij action write 13 # send <enter> key. 8 + end