diff --git a/.gitignore b/.gitignore index e9f4263..2a88912 100644 --- a/.gitignore +++ b/.gitignore @@ -5,10 +5,10 @@ automatic_backups homebrew/*.lock.json # Tmux Plugin Manager -.config/tmux/plugins/ +config/tmux/plugins/ # Fish -.config/fish/completions -.config/fish/conf.d -.config/fish/fish_variables -.config/fish/functions/* +config/fish/completions +config/fish/conf.d +config/fish/fish_variables +config/fish/functions/* diff --git a/.stow-local-ignore b/.stow-local-ignore deleted file mode 100644 index d8e03b8..0000000 --- a/.stow-local-ignore +++ /dev/null @@ -1,11 +0,0 @@ -.git -.gitignore -.gitmodules -.DS_Store - -install.sh -README.md - -bin -homebrew -private diff --git a/README.md b/README.md index 96aab6f..199eb93 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ xcode-select --install ## Install Initial Software ```sh -brew install stow +brew install dotbot brew install --cask proton-pass brew install --cask secretive ``` @@ -42,11 +42,11 @@ sudo scutil --set HostName git clone git@github.com:kogakure/dotfiles.git ~/.dotfiles ``` -## Install Script +## Setup the Mac Log in with your Apple ID to be able to install app store apps. Run the install script to setup the computer: ```sh cd ~/.dotfiles -./install.sh +./setup.sh ``` diff --git a/.ack b/ack similarity index 100% rename from .ack rename to ack diff --git a/.ag b/ag similarity index 100% rename from .ag rename to ag diff --git a/.aliases b/aliases similarity index 100% rename from .aliases rename to aliases diff --git a/.asdfrc b/asdfrc similarity index 100% rename from .asdfrc rename to asdfrc diff --git a/.bash_profile b/bash_profile similarity index 100% rename from .bash_profile rename to bash_profile diff --git a/.bashrc b/bashrc similarity index 100% rename from .bashrc rename to bashrc diff --git a/.config/atuin/config.toml b/config/atuin/config.toml similarity index 100% rename from .config/atuin/config.toml rename to config/atuin/config.toml diff --git a/.config/bat/config b/config/bat/config similarity index 100% rename from .config/bat/config rename to config/bat/config diff --git a/.config/bat/syntaxes/.gitkeep b/config/bat/syntaxes/.gitkeep similarity index 100% rename from .config/bat/syntaxes/.gitkeep rename to config/bat/syntaxes/.gitkeep diff --git a/.config/bat/themes/Catppuccin-frappe.tmTheme b/config/bat/themes/Catppuccin-frappe.tmTheme similarity index 100% rename from .config/bat/themes/Catppuccin-frappe.tmTheme rename to config/bat/themes/Catppuccin-frappe.tmTheme diff --git a/.config/bat/themes/Catppuccin-latte.tmTheme b/config/bat/themes/Catppuccin-latte.tmTheme similarity index 100% rename from .config/bat/themes/Catppuccin-latte.tmTheme rename to config/bat/themes/Catppuccin-latte.tmTheme diff --git a/.config/bat/themes/Catppuccin-macchiato.tmTheme b/config/bat/themes/Catppuccin-macchiato.tmTheme similarity index 100% rename from .config/bat/themes/Catppuccin-macchiato.tmTheme rename to config/bat/themes/Catppuccin-macchiato.tmTheme diff --git a/.config/bat/themes/Catppuccin-mocha.tmTheme b/config/bat/themes/Catppuccin-mocha.tmTheme similarity index 100% rename from .config/bat/themes/Catppuccin-mocha.tmTheme rename to config/bat/themes/Catppuccin-mocha.tmTheme diff --git a/.config/fish/config.fish b/config/fish/config.fish similarity index 100% rename from .config/fish/config.fish rename to config/fish/config.fish diff --git a/.config/fish/fish_plugins b/config/fish/fish_plugins similarity index 100% rename from .config/fish/fish_plugins rename to config/fish/fish_plugins diff --git a/config/fish/functions/__bass.py b/config/fish/functions/__bass.py new file mode 100644 index 0000000..3f02bd4 --- /dev/null +++ b/config/fish/functions/__bass.py @@ -0,0 +1,140 @@ +""" +To be used with a companion fish function like this: + + function refish + set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x + end + +""" + +from __future__ import print_function + +import json +import os +import signal +import subprocess +import sys +import traceback + + +BASH = 'bash' + +FISH_READONLY = [ + 'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version', + 'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode' +] + +IGNORED = [ + 'PS1', 'XPC_SERVICE_NAME' +] + +def ignored(name): + if name == 'PWD': # this is read only, but has special handling + return False + # ignore other read only variables + if name in FISH_READONLY: + return True + if name in IGNORED or name.startswith("BASH_FUNC"): + return True + if name.startswith('%'): + return True + return False + +def escape(string): + # use json.dumps to reliably escape quotes and backslashes + return json.dumps(string).replace(r'$', r'\$') + +def escape_identifier(word): + return escape(word.replace('?', '\\?')) + +def comment(string): + return '\n'.join(['# ' + line for line in string.split('\n')]) + +def gen_script(): + # Use the following instead of /usr/bin/env to read environment so we can + # deal with multi-line environment variables (and other odd cases). + env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable) + args = [BASH, '-c', env_reader] + output = subprocess.check_output(args, universal_newlines=True) + old_env = output.strip() + + pipe_r, pipe_w = os.pipe() + if sys.version_info >= (3, 4): + os.set_inheritable(pipe_w, True) + command = 'eval $1 && ({}; alias) >&{}'.format( + env_reader, + pipe_w + ) + args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])] + p = subprocess.Popen(args, universal_newlines=True, close_fds=False) + os.close(pipe_w) + with os.fdopen(pipe_r) as f: + new_env = f.readline() + alias_str = f.read() + if p.wait() != 0: + raise subprocess.CalledProcessError( + returncode=p.returncode, + cmd=' '.join(sys.argv[1:]), + output=new_env + alias_str + ) + new_env = new_env.strip() + + old_env = json.loads(old_env) + new_env = json.loads(new_env) + + script_lines = [] + + for k, v in new_env.items(): + if ignored(k): + continue + v1 = old_env.get(k) + if not v1: + script_lines.append(comment('adding %s=%s' % (k, v))) + elif v1 != v: + script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v))) + # process special variables + if k == 'PWD': + script_lines.append('cd %s' % escape(v)) + continue + else: + continue + if k == 'PATH': + value = ' '.join([escape(directory) + for directory in v.split(':')]) + else: + value = escape(v) + script_lines.append('set -g -x %s %s' % (k, value)) + + for var in set(old_env.keys()) - set(new_env.keys()): + script_lines.append(comment('removing %s' % var)) + script_lines.append('set -e %s' % var) + + script = '\n'.join(script_lines) + + alias_lines = [] + for line in alias_str.splitlines(): + _, rest = line.split(None, 1) + k, v = rest.split("=", 1) + alias_lines.append("alias " + escape_identifier(k) + "=" + v) + alias = '\n'.join(alias_lines) + + return script + '\n' + alias + +script_file = os.fdopen(3, 'w') + +if not sys.argv[1:]: + print('__bass_usage', file=script_file, end='') + sys.exit(0) + +try: + script = gen_script() +except subprocess.CalledProcessError as e: + sys.exit(e.returncode) +except Exception: + print('Bass internal error!', file=sys.stderr) + raise # traceback will output to stderr +except KeyboardInterrupt: + signal.signal(signal.SIGINT, signal.SIG_DFL) + os.kill(os.getpid(), signal.SIGINT) +else: + script_file.write(script) diff --git a/config/fish/functions/__fzf_cd.fish b/config/fish/functions/__fzf_cd.fish new file mode 100644 index 0000000..c79a725 --- /dev/null +++ b/config/fish/functions/__fzf_cd.fish @@ -0,0 +1,49 @@ +function __fzf_cd -d "Change directory" + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + if not type -q argparse + # Fallback for fish shell version < 2.7 + function argparse + functions -e argparse # deletes itself + end + if contains -- --hidden $argv; or contains -- -h $argv + set _flag_hidden "yes" + end + end + + # Fish shell version >= v2.7, use argparse + set -l options "h/hidden" + argparse $options -- $argv + + set -l COMMAND + + set -q FZF_CD_COMMAND + or set -l FZF_CD_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type d -print 2> /dev/null | sed 's@^\./@@'" + + set -q FZF_CD_WITH_HIDDEN_COMMAND + or set -l FZF_CD_WITH_HIDDEN_COMMAND " + command find -L \$dir \ + \\( -path '*/\\.git*' -o -fstype 'dev' -o -fstype 'proc' \\) -prune \ + -o -type d -print 2> /dev/null | sed 1d | cut -b3-" + + if set -q _flag_hidden + set COMMAND $FZF_CD_WITH_HIDDEN_COMMAND + else + set COMMAND $FZF_CD_COMMAND + end + + eval "$COMMAND | "(__fzfcmd)" +m $FZF_DEFAULT_OPTS $FZF_CD_OPTS --query \"$fzf_query\"" | read -l select + + if not test -z "$select" + builtin cd "$select" + + # Remove last token from commandline. + commandline -t "" + end + + commandline -f repaint +end diff --git a/config/fish/functions/__fzf_complete.fish b/config/fish/functions/__fzf_complete.fish new file mode 100644 index 0000000..e8848fa --- /dev/null +++ b/config/fish/functions/__fzf_complete.fish @@ -0,0 +1,168 @@ +## +# Use fzf as fish completion widget. +# +# +# When FZF_COMPLETE variable is set, fzf is used as completion +# widget for the fish shell by binding the TAB key. +# +# FZF_COMPLETE can have some special numeric values: +# +# `set FZF_COMPLETE 0` basic widget accepts with TAB key +# `set FZF_COMPLETE 1` extends 0 with candidate preview window +# `set FZF_COMPLETE 2` same as 1 but TAB walks on candidates +# `set FZF_COMPLETE 3` multi TAB selection, RETURN accepts selected ones. +# +# Any other value of FZF_COMPLETE is given directly as options to fzf. +# +# If you prefer to set more advanced options, take a look at the +# `__fzf_complete_opts` function and override that in your environment. + + +# modified from https://github.com/junegunn/fzf/wiki/Examples-(fish)#completion +function __fzf_complete -d 'fzf completion and print selection back to commandline' + # As of 2.6, fish's "complete" function does not understand + # subcommands. Instead, we use the same hack as __fish_complete_subcommand and + # extract the subcommand manually. + set -l cmd (commandline -co) (commandline -ct) + + switch $cmd[1] + case env sudo + for i in (seq 2 (count $cmd)) + switch $cmd[$i] + case '-*' + case '*=*' + case '*' + set cmd $cmd[$i..-1] + break + end + end + end + + set -l cmd_lastw $cmd[-1] + set cmd (string join -- ' ' $cmd) + + set -l initial_query '' + test -n "$cmd_lastw"; and set initial_query --query="$cmd_lastw" + + set -l complist (complete -C$cmd) + set -l result + + # do nothing if there is nothing to select from + test -z "$complist"; and return + + set -l compwc (echo $complist | wc -w) + if test $compwc -eq 1 + # if there is only one option dont open fzf + set result "$complist" + else + + set -l query + string join -- \n $complist \ + | eval (__fzfcmd) (string escape --no-quoted -- $initial_query) --print-query (__fzf_complete_opts) \ + | cut -f1 \ + | while read -l r + # first line is the user entered query + if test -z "$query" + set query $r + # rest of lines are selected candidates + else + set result $result $r + end + end + + # exit if user canceled + if test -z "$query" ;and test -z "$result" + commandline -f repaint + return + end + + # if user accepted but no candidate matches, use the input as result + if test -z "$result" + set result $query + end + end + + set prefix (string sub -s 1 -l 1 -- (commandline -t)) + for i in (seq (count $result)) + set -l r $result[$i] + switch $prefix + case "'" + commandline -t -- (string escape -- $r) + case '"' + if string match '*"*' -- $r >/dev/null + commandline -t -- (string escape -- $r) + else + commandline -t -- '"'$r'"' + end + case '~' + commandline -t -- (string sub -s 2 (string escape -n -- $r)) + case '*' + commandline -t -- $r + end + [ $i -lt (count $result) ]; and commandline -i ' ' + end + + commandline -f repaint +end + +function __fzf_complete_opts_common + if set -q FZF_DEFAULT_OPTS + echo $FZF_DEFAULT_OPTS + end + echo --cycle --reverse --inline-info +end + +function __fzf_complete_opts_tab_accepts + echo --bind tab:accept,btab:cancel +end + +function __fzf_complete_opts_tab_walks + echo --bind tab:down,btab:up +end + +function __fzf_complete_opts_preview + set -l file (status -f) + echo --with-nth=1 --preview-window=right:wrap --preview="fish\ '$file'\ __fzf_complete_preview\ '{1}'\ '{2..}'" +end + +test "$argv[1]" = "__fzf_complete_preview"; and __fzf_complete_preview $argv[2..3] + +function __fzf_complete_opts_0 -d 'basic single selection with tab accept' + __fzf_complete_opts_common + echo --no-multi + __fzf_complete_opts_tab_accepts +end + +function __fzf_complete_opts_1 -d 'single selection with preview and tab accept' + __fzf_complete_opts_0 + __fzf_complete_opts_preview +end + +function __fzf_complete_opts_2 -d 'single selection with preview and tab walks' + __fzf_complete_opts_1 + __fzf_complete_opts_tab_walks +end + +function __fzf_complete_opts_3 -d 'multi selection with preview' + __fzf_complete_opts_common + echo --multi + __fzf_complete_opts_preview +end + +function __fzf_complete_opts -d 'fzf options for fish tab completion' + switch $FZF_COMPLETE + case 0 + __fzf_complete_opts_0 + case 1 + __fzf_complete_opts_1 + case 2 + __fzf_complete_opts_2 + case 3 + __fzf_complete_opts_3 + case '*' + echo $FZF_COMPLETE + end + if set -q FZF_COMPLETE_OPTS + echo $FZF_COMPLETE_OPTS + end +end diff --git a/config/fish/functions/__fzf_complete_preview.fish b/config/fish/functions/__fzf_complete_preview.fish new file mode 100644 index 0000000..585ab92 --- /dev/null +++ b/config/fish/functions/__fzf_complete_preview.fish @@ -0,0 +1,31 @@ +function __fzf_complete_preview -d 'generate preview for completion widget. + argv[1] is the currently selected candidate in fzf + argv[2] is a string containing the rest of the output produced by `complete -Ccmd` + ' + + if test "$argv[2]" = "Redefine variable" + # show environment variables current value + set -l evar (echo $argv[1] | cut -d= -f1) + echo $argv[1]$$evar + else + echo $argv[1] + end + + set -l path (string replace "~" $HOME -- $argv[1]) + + # list directories on preview + if test -d "$path" + eval $FZF_PREVIEW_DIR_CMD (string escape $path) + end + + # show ten lines of non-binary files preview + if test -f "$path"; and grep -qI . "$path" + eval $FZF_PREVIEW_FILE_CMD (string escape $path) + end + + # if fish knows about it, let it show info + type -q "$path" 2>/dev/null; and type -a "$path" + + # show aditional data + echo $argv[2] +end diff --git a/config/fish/functions/__fzf_find_file.fish b/config/fish/functions/__fzf_find_file.fish new file mode 100644 index 0000000..1900006 --- /dev/null +++ b/config/fish/functions/__fzf_find_file.fish @@ -0,0 +1,29 @@ +function __fzf_find_file -d "List files and folders" + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + set -q FZF_FIND_FILE_COMMAND + or set -l FZF_FIND_FILE_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | sed 's@^\./@@'" + + begin + eval "$FZF_FIND_FILE_COMMAND | "(__fzfcmd) "-m $FZF_DEFAULT_OPTS $FZF_FIND_FILE_OPTS --query \"$fzf_query\"" | while read -l s; set results $results $s; end + end + + if test -z "$results" + commandline -f repaint + return + else + commandline -t "" + end + + for result in $results + commandline -it -- (string escape $result) + commandline -it -- " " + end + commandline -f repaint +end diff --git a/config/fish/functions/__fzf_get_dir.fish b/config/fish/functions/__fzf_get_dir.fish new file mode 100644 index 0000000..77c873c --- /dev/null +++ b/config/fish/functions/__fzf_get_dir.fish @@ -0,0 +1,17 @@ +function __fzf_get_dir -d 'Find the longest existing filepath from input string' + set dir $argv + + # Strip all trailing slashes. Ignore if $dir is root dir (/) + if test (string length $dir) -gt 1 + set dir (string replace -r '/*$' '' $dir) + end + + # Iteratively check if dir exists and strip tail end of path + while test ! -d "$dir" + # If path is absolute, this can keep going until ends up at / + # If path is relative, this can keep going until entire input is consumed, dirname returns "." + set dir (dirname "$dir") + end + + echo $dir +end diff --git a/config/fish/functions/__fzf_open.fish b/config/fish/functions/__fzf_open.fish new file mode 100644 index 0000000..aa5ca61 --- /dev/null +++ b/config/fish/functions/__fzf_open.fish @@ -0,0 +1,63 @@ +function __fzf_open -d "Open files and directories." + function __fzf_open_get_open_cmd -d "Find appropriate open command." + if type -q xdg-open + echo "xdg-open" + else if type -q open + echo "open" + end + end + + set -l commandline (__fzf_parse_commandline) + set -l dir $commandline[1] + set -l fzf_query $commandline[2] + + if not type -q argparse + set created_argparse + function argparse + functions -e argparse # deletes itself + end + if contains -- --editor $argv; or contains -- -e $argv + set _flag_editor "yes" + end + if contains -- --preview $argv; or contains -- -p $argv + set _flag_preview "yes" + end + end + + set -l options "e/editor" "p/preview=?" + argparse $options -- $argv + + set -l preview_cmd + if set -q FZF_ENABLE_OPEN_PREVIEW + set preview_cmd "--preview-window=right:wrap --preview='fish -c \"__fzf_complete_preview {}\"'" + end + + set -q FZF_OPEN_COMMAND + or set -l FZF_OPEN_COMMAND " + command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \ + -o -type f -print \ + -o -type d -print \ + -o -type l -print 2> /dev/null | sed 's@^\./@@'" + + set -l select (eval "$FZF_OPEN_COMMAND | "(__fzfcmd) $preview_cmd "-m $FZF_DEFAULT_OPTS $FZF_OPEN_OPTS --query \"$fzf_query\"" | string escape) + + # set how to open + set -l open_cmd + if set -q _flag_editor + set open_cmd "$EDITOR" + else + set open_cmd (__fzf_open_get_open_cmd) + if test -z "$open_cmd" + echo "Couldn't find appropriate open command to use. Do you have 'xdg-open' or 'open' installed?"; and return 1 + end + end + + set -l open_status 0 + if not test -z "$select" + commandline "$open_cmd $select"; and commandline -f execute + set open_status $status + end + + commandline -f repaint + return $open_status +end diff --git a/config/fish/functions/__fzf_parse_commandline.fish b/config/fish/functions/__fzf_parse_commandline.fish new file mode 100644 index 0000000..2cc9dfb --- /dev/null +++ b/config/fish/functions/__fzf_parse_commandline.fish @@ -0,0 +1,23 @@ +function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath and rest of token' + # eval is used to do shell expansion on paths + set -l commandline (eval "printf '%s' "(commandline -t)) + + if test -z $commandline + # Default to current directory with no --query + set dir '.' + set fzf_query '' + else + set dir (__fzf_get_dir $commandline) + + if test "$dir" = "." -a (string sub -l 1 $commandline) != '.' + # if $dir is "." but commandline is not a relative path, this means no file path found + set fzf_query $commandline + else + # Also remove trailing slash after dir, to "split" input properly + set fzf_query (string replace -r "^$dir/?" '' "$commandline") + end + end + + echo $dir + echo $fzf_query +end diff --git a/config/fish/functions/__fzf_reverse_isearch.fish b/config/fish/functions/__fzf_reverse_isearch.fish new file mode 100644 index 0000000..2ebbe20 --- /dev/null +++ b/config/fish/functions/__fzf_reverse_isearch.fish @@ -0,0 +1,6 @@ +function __fzf_reverse_isearch + history merge + history -z | eval (__fzfcmd) --read0 --print0 --tiebreak=index --toggle-sort=ctrl-r $FZF_DEFAULT_OPTS $FZF_REVERSE_ISEARCH_OPTS -q '(commandline)' | read -lz result + and commandline -- $result + commandline -f repaint +end diff --git a/config/fish/functions/__fzfcmd.fish b/config/fish/functions/__fzfcmd.fish new file mode 100644 index 0000000..821c650 --- /dev/null +++ b/config/fish/functions/__fzfcmd.fish @@ -0,0 +1,9 @@ +function __fzfcmd + set -q FZF_TMUX; or set FZF_TMUX 0 + set -q FZF_TMUX_HEIGHT; or set FZF_TMUX_HEIGHT 40% + if test $FZF_TMUX -eq 1 + echo "fzf-tmux -d$FZF_TMUX_HEIGHT" + else + echo "fzf" + end +end diff --git a/config/fish/functions/__z.fish b/config/fish/functions/__z.fish new file mode 100644 index 0000000..f72ff0e --- /dev/null +++ b/config/fish/functions/__z.fish @@ -0,0 +1,174 @@ +function __z -d "Jump to a recent directory." + function __print_help -d "Print z help." + printf "Usage: $Z_CMD [-celrth] string1 string2...\n\n" + printf " -c --clean Removes directories that no longer exist from $Z_DATA\n" + printf " -d --dir Opens matching directory using system file manager.\n" + printf " -e --echo Prints best match, no cd\n" + printf " -l --list List matches and scores, no cd\n" + printf " -p --purge Delete all entries from $Z_DATA\n" + printf " -r --rank Search by rank\n" + printf " -t --recent Search by recency\n" + printf " -x --delete Removes the current directory from $Z_DATA\n" + printf " -h --help Print this help\n\n" + end + function __z_legacy_escape_regex + # taken from escape_string_pcre2 in fish + # used to provide compatibility with fish 2 + for c in (string split '' $argv) + if contains $c (string split '' '.^$*+()?[{}\\|-]') + printf \\ + end + printf '%s' $c + end + end + + set -l options h/help c/clean e/echo l/list p/purge r/rank t/recent d/directory x/delete + + argparse $options -- $argv + + if set -q _flag_help + __print_help + return 0 + else if set -q _flag_clean + __z_clean + printf "%s cleaned!\n" $Z_DATA + return 0 + else if set -q _flag_purge + echo >$Z_DATA + printf "%s purged!\n" $Z_DATA + return 0 + else if set -q _flag_delete + sed -i -e "\:^$PWD|.*:d" $Z_DATA + return 0 + end + + set -l typ + + if set -q _flag_rank + set typ rank + else if set -q _flag_recent + set typ recent + end + + set -l z_script ' + function frecent(rank, time) { + dx = t-time + if( dx < 3600 ) return rank*4 + if( dx < 86400 ) return rank*2 + if( dx < 604800 ) return rank/2 + return rank/4 + } + + function output(matches, best_match, common) { + # list or return the desired directory + if( list ) { + cmd = "sort -nr" + for( x in matches ) { + if( matches[x] ) { + printf "%-10s %s\n", matches[x], x | cmd + } + } + } else { + if( common ) best_match = common + print best_match + } + } + + function common(matches) { + # find the common root of a list of matches, if it exists + for( x in matches ) { + if( matches[x] && (!short || length(x) < length(short)) ) { + short = x + } + } + if( short == "/" ) return + for( x in matches ) if( matches[x] && index(x, short) != 1 ) { + return + } + return short + } + + BEGIN { + hi_rank = ihi_rank = -9999999999 + } + { + if( typ == "rank" ) { + rank = $2 + } else if( typ == "recent" ) { + rank = $3 - t + } else rank = frecent($2, $3) + if( $1 ~ q ) { + matches[$1] = rank + } else if( tolower($1) ~ tolower(q) ) imatches[$1] = rank + if( matches[$1] && matches[$1] > hi_rank ) { + best_match = $1 + hi_rank = matches[$1] + } else if( imatches[$1] && imatches[$1] > ihi_rank ) { + ibest_match = $1 + ihi_rank = imatches[$1] + } + } + + END { + # prefer case sensitive + if( best_match ) { + output(matches, best_match, common(matches)) + } else if( ibest_match ) { + output(imatches, ibest_match, common(imatches)) + } + } + ' + + set -l qs + for arg in $argv + set -l escaped $arg + if string escape --style=regex '' >/dev/null 2>&1 # use builtin escape if available + set escaped (string escape --style=regex $escaped) + else + set escaped (__z_legacy_escape_regex $escaped) + end + # Need to escape twice, see https://www.math.utah.edu/docs/info/gawk_5.html#SEC32 + set escaped (string replace --all \\ \\\\ $escaped) + set qs $qs $escaped + end + set -l q (string join '.*' $qs) + + if set -q _flag_list + # Handle list separately as it can print common path information to stderr + # which cannot be captured from a subcommand. + command awk -v t=(date +%s) -v list="list" -v typ="$typ" -v q="$q" -F "|" $z_script "$Z_DATA" + return + end + + set target (command awk -v t=(date +%s) -v typ="$typ" -v q="$q" -F "|" $z_script "$Z_DATA") + + if test "$status" -gt 0 + return + end + + if test -z "$target" + printf "'%s' did not match any results\n" "$argv" + return 1 + end + + if set -q _flag_echo + printf "%s\n" "$target" + else if set -q _flag_directory + if test -n "$ZO_METHOD" + type -q "$ZO_METHOD"; and "$ZO_METHOD" "$target"; and return $status + echo "Cannot open with ZO_METHOD set to $ZO_METHOD"; and return 1 + else if test "$OS" = Windows_NT + # Be careful, in msys2, explorer always return 1 + type -q explorer; and explorer "$target" + return 0 + echo "Cannot open file explorer" + return 1 + else + type -q xdg-open; and xdg-open "$target"; and return $status + type -q open; and open "$target"; and return $status + echo "Not sure how to open file manager"; and return 1 + end + else + pushd "$target" + end +end diff --git a/config/fish/functions/__z_add.fish b/config/fish/functions/__z_add.fish new file mode 100644 index 0000000..20d5d7e --- /dev/null +++ b/config/fish/functions/__z_add.fish @@ -0,0 +1,49 @@ +function __z_add -d "Add PATH to .z file" + test -n "$fish_private_mode"; and return 0 + + for i in $Z_EXCLUDE + if string match -r $i $PWD >/dev/null + return 0 #Path excluded + end + end + + set -l tmpfile (mktemp $Z_DATA.XXXXXX) + + if test -f $tmpfile + set -l path (string replace --all \\ \\\\ $PWD) + command awk -v path=$path -v now=(date +%s) -F "|" ' + BEGIN { + rank[path] = 1 + time[path] = now + } + $2 >= 1 { + if( $1 == path ) { + rank[$1] = $2 + 1 + time[$1] = now + } + else { + rank[$1] = $2 + time[$1] = $3 + } + count += $2 + } + END { + if( count > 1000 ) { + for( i in rank ) print i "|" 0.9*rank[i] "|" time[i] # aging + } + else for( i in rank ) print i "|" rank[i] "|" time[i] + } + ' $Z_DATA 2>/dev/null >$tmpfile + + if test ! -z "$Z_OWNER" + chown $Z_OWNER:(id -ng $Z_OWNER) $tmpfile + end + # + # Don't use redirection here as it can lead to a race condition where $Z_DATA is clobbered. + # Note: There is a still a possible race condition where an old version of $Z_DATA is + # read by one instance of Fish before another instance of Fish writes its copy. + # + command mv $tmpfile $Z_DATA + or command rm $tmpfile + end +end diff --git a/config/fish/functions/__z_clean.fish b/config/fish/functions/__z_clean.fish new file mode 100644 index 0000000..ae1721a --- /dev/null +++ b/config/fish/functions/__z_clean.fish @@ -0,0 +1,11 @@ +function __z_clean -d "Clean up .z file to remove paths no longer valid" + set -l tmpfile (mktemp $Z_DATA.XXXXXX) + + if test -f $tmpfile + while read line + set -l path (string split '|' $line)[1] + test -d $path; and echo $line + end <$Z_DATA >$tmpfile + command mv -f $tmpfile $Z_DATA + end +end diff --git a/config/fish/functions/__z_complete.fish b/config/fish/functions/__z_complete.fish new file mode 100644 index 0000000..a626456 --- /dev/null +++ b/config/fish/functions/__z_complete.fish @@ -0,0 +1,13 @@ +function __z_complete -d "add completions" + complete -c $Z_CMD -a "(__z -l | string replace -r '^\\S*\\s*' '')" -f -k + complete -c $ZO_CMD -a "(__z -l | string replace -r '^\\S*\\s*' '')" -f -k + + complete -c $Z_CMD -s c -l clean -d "Cleans out $Z_DATA" + complete -c $Z_CMD -s e -l echo -d "Prints best match, no cd" + complete -c $Z_CMD -s l -l list -d "List matches, no cd" + complete -c $Z_CMD -s p -l purge -d "Purges $Z_DATA" + complete -c $Z_CMD -s r -l rank -d "Searches by rank, cd" + complete -c $Z_CMD -s t -l recent -d "Searches by recency, cd" + complete -c $Z_CMD -s h -l help -d "Print help" + complete -c $Z_CMD -s x -l delete -d "Removes the current directory from $Z_DATA" +end diff --git a/config/fish/functions/_autopair_backspace.fish b/config/fish/functions/_autopair_backspace.fish new file mode 100644 index 0000000..a43fa79 --- /dev/null +++ b/config/fish/functions/_autopair_backspace.fish @@ -0,0 +1,9 @@ +function _autopair_backspace + set --local index (commandline --cursor) + set --local buffer (commandline) + + test $index -ge 1 && + contains -- (string sub --start=$index --length=2 -- "$buffer") $autopair_pairs && + commandline --function delete-char + commandline --function backward-delete-char +end diff --git a/config/fish/functions/_autopair_insert_left.fish b/config/fish/functions/_autopair_insert_left.fish new file mode 100644 index 0000000..f078e86 --- /dev/null +++ b/config/fish/functions/_autopair_insert_left.fish @@ -0,0 +1,13 @@ +function _autopair_insert_left --argument-names left right + set --local buffer (commandline) + set --local before (commandline --cut-at-cursor) + + commandline --insert -- $left + + switch "$buffer" + case "$before"{," "\*,$autopair_right\*} + set --local index (commandline --cursor) + commandline --insert -- $right + commandline --cursor $index + end +end diff --git a/config/fish/functions/_autopair_insert_right.fish b/config/fish/functions/_autopair_insert_right.fish new file mode 100644 index 0000000..a0bd61c --- /dev/null +++ b/config/fish/functions/_autopair_insert_right.fish @@ -0,0 +1,11 @@ +function _autopair_insert_right --argument-names key + set --local buffer (commandline) + set --local before (commandline --cut-at-cursor) + + switch "$buffer" + case "$before$key"\* + commandline --cursor (math (commandline --cursor) + 1) + case \* + commandline --insert -- $key + end +end diff --git a/config/fish/functions/_autopair_insert_same.fish b/config/fish/functions/_autopair_insert_same.fish new file mode 100644 index 0000000..27f971d --- /dev/null +++ b/config/fish/functions/_autopair_insert_same.fish @@ -0,0 +1,20 @@ +function _autopair_insert_same --argument-names key + set --local buffer (commandline) + set --local index (commandline --cursor) + set --local next (string sub --start=(math $index + 1) --length=1 -- "$buffer") + + if test (math (count (string match --all --regex -- "$key" "$buffer")) % 2) = 0 + test $key = $next && commandline --cursor (math $index + 1) && return + + commandline --insert -- $key + + if test $index -lt 1 || + contains -- (string sub --start=$index --length=1 -- "$buffer") "" " " $autopair_left && + contains -- $next "" " " $autopair_right + commandline --insert -- $key + commandline --cursor (math $index + 1) + end + else + commandline --insert -- $key + end +end diff --git a/config/fish/functions/_autopair_tab.fish b/config/fish/functions/_autopair_tab.fish new file mode 100644 index 0000000..f2ab8eb --- /dev/null +++ b/config/fish/functions/_autopair_tab.fish @@ -0,0 +1,7 @@ +function _autopair_tab + commandline --paging-mode && down-or-search && return + + string match --quiet --regex -- '\$[^\s]*"$' (commandline --current-token) && + commandline --function end-of-line --function backward-delete-char + commandline --function complete +end diff --git a/config/fish/functions/bass.fish b/config/fish/functions/bass.fish new file mode 100644 index 0000000..2b3af16 --- /dev/null +++ b/config/fish/functions/bass.fish @@ -0,0 +1,29 @@ +function bass + set -l bash_args $argv + set -l bass_debug + if test "$bash_args[1]_" = '-d_' + set bass_debug true + set -e bash_args[1] + end + + set -l script_file (mktemp) + if command -v python3 >/dev/null 2>&1 + command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file + else + command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file + end + set -l bass_status $status + if test $bass_status -ne 0 + return $bass_status + end + + if test -n "$bass_debug" + cat $script_file + end + source $script_file + command rm $script_file +end + +function __bass_usage + echo "Usage: bass [-d] " +end diff --git a/.config/fish/functions/dataUrl.fish b/config/fish/functions/dataUrl.fish similarity index 100% rename from .config/fish/functions/dataUrl.fish rename to config/fish/functions/dataUrl.fish diff --git a/.config/fish/functions/deleteNodeModules.fish b/config/fish/functions/deleteNodeModules.fish similarity index 100% rename from .config/fish/functions/deleteNodeModules.fish rename to config/fish/functions/deleteNodeModules.fish diff --git a/.config/fish/functions/encodeBase64.fish b/config/fish/functions/encodeBase64.fish similarity index 100% rename from .config/fish/functions/encodeBase64.fish rename to config/fish/functions/encodeBase64.fish diff --git a/.config/fish/functions/fcd.fish b/config/fish/functions/fcd.fish similarity index 100% rename from .config/fish/functions/fcd.fish rename to config/fish/functions/fcd.fish diff --git a/.config/fish/functions/fe.fish b/config/fish/functions/fe.fish similarity index 100% rename from .config/fish/functions/fe.fish rename to config/fish/functions/fe.fish diff --git a/.config/fish/functions/fhcd.fish b/config/fish/functions/fhcd.fish similarity index 100% rename from .config/fish/functions/fhcd.fish rename to config/fish/functions/fhcd.fish diff --git a/config/fish/functions/fisher.fish b/config/fish/functions/fisher.fish new file mode 100644 index 0000000..b1513d3 --- /dev/null +++ b/config/fish/functions/fisher.fish @@ -0,0 +1,240 @@ +function fisher --argument-names cmd --description "A plugin manager for Fish" + set --query fisher_path || set --local fisher_path $__fish_config_dir + set --local fisher_version 4.4.4 + set --local fish_plugins $__fish_config_dir/fish_plugins + + switch "$cmd" + case -v --version + echo "fisher, version $fisher_version" + case "" -h --help + echo "Usage: fisher install Install plugins" + echo " fisher remove Remove installed plugins" + echo " fisher update Update installed plugins" + echo " fisher update Update all installed plugins" + echo " fisher list [] List installed plugins matching regex" + echo "Options:" + echo " -v, --version Print version" + echo " -h, --help Print this help message" + echo "Variables:" + echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~ + case ls list + string match --entire --regex -- "$argv[2]" $_fisher_plugins + case install update remove + isatty || read --local --null --array stdin && set --append argv $stdin + + set --local install_plugins + set --local update_plugins + set --local remove_plugins + set --local arg_plugins $argv[2..-1] + set --local old_plugins $_fisher_plugins + set --local new_plugins + + test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins) + + if ! set --query argv[2] + if test "$cmd" != update + echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1 + else if ! set --query file_plugins + echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1 + end + set arg_plugins $file_plugins + end + + for plugin in $arg_plugins + set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin) + contains -- "$plugin" $new_plugins || set --append new_plugins $plugin + end + + if set --query argv[2] + for plugin in $new_plugins + if contains -- "$plugin" $old_plugins + test "$cmd" = remove && + set --append remove_plugins $plugin || + set --append update_plugins $plugin + else if test "$cmd" = install + set --append install_plugins $plugin + else + echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1 + end + end + else + for plugin in $new_plugins + contains -- "$plugin" $old_plugins && + set --append update_plugins $plugin || + set --append install_plugins $plugin + end + + for plugin in $old_plugins + contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin + end + end + + set --local pid_list + set --local source_plugins + set --local fetch_plugins $update_plugins $install_plugins + set --local fish_path (status fish-path) + + echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal) + + for plugin in $fetch_plugins + set --local source (command mktemp -d) + set --append source_plugins $source + + command mkdir -p $source/{completions,conf.d,themes,functions} + + $fish_path --command " + if test -e $plugin + command cp -Rf $plugin/* $source + else + set temp (command mktemp -d) + set repo (string split -- \@ $plugin) || set repo[2] HEAD + + if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1]) + set name (string split -- / \$path)[-1] + set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz + else + set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2] + end + + echo Fetching (set_color --underline)\$url(set_color normal) + + if command curl -q --silent -L \$url | command tar -xzC \$temp -f - 2>/dev/null + command cp -Rf \$temp/*/* $source + else + echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2 + command rm -rf $source + end + + command rm -rf \$temp + end + + set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files + " & + + set --append pid_list (jobs --last --pid) + end + + wait $pid_list 2>/dev/null + + for plugin in $fetch_plugins + if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source + if set --local index (contains --index -- "$plugin" $install_plugins) + set --erase install_plugins[$index] + else + set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)] + end + end + end + + for plugin in $update_plugins $remove_plugins + if set --local index (contains --index -- "$plugin" $_fisher_plugins) + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + if contains -- "$plugin" $remove_plugins + for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var) + emit {$name}_uninstall + end + printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + set --erase _fisher_plugins[$index] + end + + command rm -rf (string replace -- \~ ~ $$plugin_files_var) + + functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var) + + for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var) + complete --erase --command $name + end + + set --erase $plugin_files_var + end + end + + if set --query update_plugins[1] || set --query install_plugins[1] + command mkdir -p $fisher_path/{functions,themes,conf.d,completions} + end + + for plugin in $update_plugins $install_plugins + set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] + set --local files $source/{functions,themes,conf.d,completions}/* + + if set --local index (contains --index -- $plugin $install_plugins) + set --local user_files $fisher_path/{functions,themes,conf.d,completions}/* + set --local conflict_files + + for file in (string replace -- $source/ $fisher_path/ $files) + contains -- $file $user_files && set --append conflict_files $file + end + + if set --query conflict_files[1] && set --erase install_plugins[$index] + echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2 + continue + end + end + + for file in (string replace -- $source/ "" $files) + command cp -RLf $source/$file $fisher_path/$file + end + + set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files + + set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~) + + contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin + contains -- $plugin $install_plugins && set --local event install || set --local event update + + printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~ + + for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~) + source $file + if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file) + emit {$name}_$event + end + end + end + + command rm -rf $source_plugins + + if set --query _fisher_plugins[1] + set --local commit_plugins + + for plugin in $file_plugins + contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin + end + + for plugin in $_fisher_plugins + contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin + end + + printf "%s\n" $commit_plugins >$fish_plugins + else + set --erase _fisher_plugins + command rm -f $fish_plugins + end + + set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins) + + test "$total" != "0 0 0" && echo (string join ", " ( + test $total[1] = 0 || echo "Installed $total[1]") ( + test $total[2] = 0 || echo "Updated $total[2]") ( + test $total[3] = 0 || echo "Removed $total[3]") + ) plugin/s + case \* + echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1 + end +end + +if ! set --query _fisher_upgraded_to_4_4 + set --universal _fisher_upgraded_to_4_4 + if functions --query _fisher_list + set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share + command rm -rf $XDG_DATA_HOME/fisher + functions --erase _fisher_{list,plugin_parse} + fisher update >/dev/null 2>/dev/null + else + for var in (set --names | string match --entire --regex '^_fisher_.+_files$') + set $var (string replace -- ~ \~ $$var) + end + functions --erase _fisher_fish_postexec + end +end diff --git a/.config/fish/functions/fs.fish b/config/fish/functions/fs.fish similarity index 100% rename from .config/fish/functions/fs.fish rename to config/fish/functions/fs.fish diff --git a/.config/fish/functions/fwt.fish b/config/fish/functions/fwt.fish similarity index 100% rename from .config/fish/functions/fwt.fish rename to config/fish/functions/fwt.fish diff --git a/.config/fish/functions/ghpr.fish b/config/fish/functions/ghpr.fish similarity index 100% rename from .config/fish/functions/ghpr.fish rename to config/fish/functions/ghpr.fish diff --git a/.config/fish/functions/server.fish b/config/fish/functions/server.fish similarity index 100% rename from .config/fish/functions/server.fish rename to config/fish/functions/server.fish diff --git a/.config/fish/functions/unquarantine.fish b/config/fish/functions/unquarantine.fish similarity index 100% rename from .config/fish/functions/unquarantine.fish rename to config/fish/functions/unquarantine.fish diff --git a/.config/gh-dash/config.yml b/config/gh-dash/config.yml similarity index 100% rename from .config/gh-dash/config.yml rename to config/gh-dash/config.yml diff --git a/.config/gh/config.yml b/config/gh/config.yml similarity index 100% rename from .config/gh/config.yml rename to config/gh/config.yml diff --git a/.config/gh/hosts.yml b/config/gh/hosts.yml similarity index 100% rename from .config/gh/hosts.yml rename to config/gh/hosts.yml diff --git a/.config/git/config b/config/git/config similarity index 100% rename from .config/git/config rename to config/git/config diff --git a/.config/git/ignore b/config/git/ignore similarity index 100% rename from .config/git/ignore rename to config/git/ignore diff --git a/.config/lazydocker/config.yml b/config/lazydocker/config.yml similarity index 100% rename from .config/lazydocker/config.yml rename to config/lazydocker/config.yml diff --git a/.config/lazygit/config.yml b/config/lazygit/config.yml similarity index 100% rename from .config/lazygit/config.yml rename to config/lazygit/config.yml diff --git a/.config/lf/lfrc b/config/lf/lfrc similarity index 100% rename from .config/lf/lfrc rename to config/lf/lfrc diff --git a/.config/lf/previewer.sh b/config/lf/previewer.sh similarity index 100% rename from .config/lf/previewer.sh rename to config/lf/previewer.sh diff --git a/.config/nvim/.gitignore b/config/nvim/.gitignore similarity index 100% rename from .config/nvim/.gitignore rename to config/nvim/.gitignore diff --git a/.config/nvim/.neoconf.json b/config/nvim/.neoconf.json similarity index 100% rename from .config/nvim/.neoconf.json rename to config/nvim/.neoconf.json diff --git a/.config/nvim/LICENSE b/config/nvim/LICENSE similarity index 100% rename from .config/nvim/LICENSE rename to config/nvim/LICENSE diff --git a/.config/nvim/README.md b/config/nvim/README.md similarity index 100% rename from .config/nvim/README.md rename to config/nvim/README.md diff --git a/.config/nvim/dictionary/de_neu.txt b/config/nvim/dictionary/de_neu.txt similarity index 100% rename from .config/nvim/dictionary/de_neu.txt rename to config/nvim/dictionary/de_neu.txt diff --git a/.config/nvim/dictionary/de_user.txt b/config/nvim/dictionary/de_user.txt similarity index 100% rename from .config/nvim/dictionary/de_user.txt rename to config/nvim/dictionary/de_user.txt diff --git a/.config/nvim/dictionary/en_us.txt b/config/nvim/dictionary/en_us.txt similarity index 100% rename from .config/nvim/dictionary/en_us.txt rename to config/nvim/dictionary/en_us.txt diff --git a/.config/nvim/init.lua b/config/nvim/init.lua similarity index 100% rename from .config/nvim/init.lua rename to config/nvim/init.lua diff --git a/.config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json similarity index 86% rename from .config/nvim/lazy-lock.json rename to config/nvim/lazy-lock.json index 7bc6d99..1f5dea2 100644 --- a/.config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -1,8 +1,8 @@ { "ChatGPT.nvim": { "branch": "main", "commit": "f081338f07216a46d3915ce46c1fcb083bcb5016" }, - "CopilotChat.nvim": { "branch": "canary", "commit": "4a5e07185b37d3132e5541d8fa42aa874b774476" }, + "CopilotChat.nvim": { "branch": "canary", "commit": "cfdf371cec954fccf5410315884e110d214d38fa" }, "LazyVim": { "branch": "main", "commit": "12818a6cb499456f4903c5d8e68af43753ebc869" }, - "SchemaStore.nvim": { "branch": "main", "commit": "a86e7a0ecaf09fdb0b58ca09f34cd1e2b2b1fd75" }, + "SchemaStore.nvim": { "branch": "main", "commit": "6ba091a30616aadeda531c7f27dfad263303f55d" }, "aerial.nvim": { "branch": "master", "commit": "e75a3df2c20b3a98c786f5e61587d74a7a6b61d6" }, "auto-save.nvim": { "branch": "main", "commit": "979b6c82f60cfa80f4cf437d77446d0ded0addf0" }, "baleia.nvim": { "branch": "main", "commit": "1b25eac3ac03659c3d3af75c7455e179e5f197f7" }, @@ -10,7 +10,7 @@ "base16-vim": { "branch": "master", "commit": "3be3cd82cd31acfcab9a41bad853d9c68d30478d" }, "blamer.nvim": { "branch": "master", "commit": "e0d43c11697300eb68f00d69df8b87deb0bf52dc" }, "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, - "catppuccin": { "branch": "main", "commit": "e1268d1c0351aa5a42ea00a680ce84de2ba080fc" }, + "catppuccin": { "branch": "main", "commit": "548b2a25415bb60e05c536b7658aa8ffbfeb3e45" }, "chafa.nvim": { "branch": "main", "commit": "792c8f4f0e86b5e27c3602be4614f886f3a12a5a" }, "cheatsheet.nvim": { "branch": "master", "commit": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, @@ -20,7 +20,7 @@ "codeium.nvim": { "branch": "main", "commit": "f6a2ef32a9e923cb0104a19d3e426b0e40e49505" }, "codewindow.nvim": { "branch": "master", "commit": "dd7017617962943eb1d152fc58940f11c6775a4a" }, "committia.vim": { "branch": "master", "commit": "a187b8633694027ab5ef8a834527d33093282f95" }, - "conform.nvim": { "branch": "master", "commit": "25d48271e3d4404ba017cb92a37d3a681c1ad149" }, + "conform.nvim": { "branch": "master", "commit": "0f4f299dfea09d2adfd7a1da05149a0844ac8eee" }, "copilot-cmp": { "branch": "master", "commit": "b6e5286b3d74b04256d0a7e3bd2908eabec34b44" }, "copilot.lua": { "branch": "master", "commit": "86537b286f18783f8b67bccd78a4ef4345679625" }, "dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" }, @@ -33,18 +33,18 @@ "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, "fm-nvim": { "branch": "master", "commit": "8e6a77049330e7c797eb9e63affd75eb796fe75e" }, "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, - "fzf": { "branch": "master", "commit": "4e85f72f0ee237bef7a1617e0cf8c811a4091d72" }, - "fzf-lua": { "branch": "main", "commit": "73bdec9ac5da578376bdc5a705ea80a19baa4942" }, + "fzf": { "branch": "master", "commit": "c423c496a15b96cfc3c3fbd09135bcdc0c8e6b6e" }, + "fzf-lua": { "branch": "main", "commit": "2c4f76ac810de3b1ef91f06371ebc3cff55b1b3c" }, "fzf.vim": { "branch": "master", "commit": "6f28c8c7bb551161a0315a76488522204f39c1f4" }, - "gen.nvim": { "branch": "main", "commit": "07fb74cf1bc533791e2c7cfca7bd3f45a3b597f9" }, + "gen.nvim": { "branch": "main", "commit": "5c153aae3e3f2c39fe424b992127aa43cf1a0293" }, "gh.nvim": { "branch": "main", "commit": "ebbaac254ef7dd6f85b439825fbce82d0dc84515" }, - "gitsigns.nvim": { "branch": "main", "commit": "58bd9e98d8e3c5a1c98af312e85247ee1afd3ed2" }, - "grug-far.nvim": { "branch": "main", "commit": "3e491ca05c50f87d02543adb010aed9dfb1e12c1" }, + "gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" }, + "grug-far.nvim": { "branch": "main", "commit": "22f1571d2c60883b3fbf05e90f04cabde056fe3e" }, "harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" }, "harpoon-lualine": { "branch": "master", "commit": "d1b873c19b701fd80d60a67d086dbb3bcc4eb00e" }, "highlight-undo.nvim": { "branch": "main", "commit": "1ea1c79372d7d93c88fd97543880927b7635e3d2" }, "inc-rename.nvim": { "branch": "main", "commit": "8ba77017ca468f3029bf88ef409c2d20476ea66b" }, - "indent-blankline.nvim": { "branch": "master", "commit": "3fe94b8034dd5241cb882bb73847303b58857ecf" }, + "indent-blankline.nvim": { "branch": "master", "commit": "dddb5d21811c319eb6e51a993d8fb44b193aae3f" }, "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, "lazygit.nvim": { "branch": "main", "commit": "dc56df433bfbf107fee0139e187eb9750878fa84" }, @@ -59,7 +59,7 @@ "mason-lspconfig.nvim": { "branch": "main", "commit": "62360f061d45177dda8afc1b0fd1327328540301" }, "mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" }, "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, - "mini.ai": { "branch": "main", "commit": "45587078f323eaf41b9f701bbc04f8d1ab008979" }, + "mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" }, "mini.animate": { "branch": "main", "commit": "320fb35460238c436407cd779f63abad98e84870" }, "mini.icons": { "branch": "main", "commit": "fe63fe080e76d80713557e5f0c65bc15b14b152d" }, "mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" }, @@ -67,34 +67,34 @@ "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" }, "neogit": { "branch": "master", "commit": "2b74a777b963dfdeeabfabf84d5ba611666adab4" }, "neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" }, - "neotest-golang": { "branch": "main", "commit": "f71d2494726c529c5d5c43813b24b3dd91ade981" }, + "neotest-golang": { "branch": "main", "commit": "58a174e5526b0edd2cf0829a6cf98efe3d49f209" }, "neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" }, "neotest-rspec": { "branch": "main", "commit": "53fc108a06ae43d7f873d42ee5189c2301e33623" }, "neotest-vitest": { "branch": "main", "commit": "353364aa05b94b09409cbef21b79c97c5564e2ce" }, - "night-owl.nvim": { "branch": "main", "commit": "131641a516085c5b3cacc8022581902e9f2f14af" }, + "night-owl.nvim": { "branch": "main", "commit": "87486a7157d49bc9ed43aab89432672deaf03110" }, "noctis.nvim": { "branch": "main", "commit": "0b9336e39c686a7e58de06e4dd38c2bd862a7b33" }, "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" }, "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, "nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" }, "nvim-cursorline": { "branch": "main", "commit": "804f0023692653b2b2368462d67d2a87056947f9" }, - "nvim-dap": { "branch": "master", "commit": "dcc85d12d6e2c18c5fa0f9a304d9f5e767e1401a" }, - "nvim-dap-go": { "branch": "main", "commit": "5030d53097fed7b75524a04048d8dbf417fa0140" }, + "nvim-dap": { "branch": "master", "commit": "9b81479813c5b1e79d2c7e2df6dc99aa1580bc19" }, + "nvim-dap-go": { "branch": "main", "commit": "5511788255c92bdd845f8d9690f88e2e0f0ff9f2" }, "nvim-dap-ruby": { "branch": "main", "commit": "4176405d186a93ebec38a6344df124b1689cfcfd" }, "nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "484995d573c0f0563f6a66ebdd6c67b649489615" }, - "nvim-lint": { "branch": "master", "commit": "efc6fc83f0772283e064c53a8f9fb5645bde0bc0" }, - "nvim-lspconfig": { "branch": "master", "commit": "81a19de18990208b678be084597613e2dbe66912" }, + "nvim-lint": { "branch": "master", "commit": "906cd0012be2acbf98de87a3c25154abe7da0478" }, + "nvim-lspconfig": { "branch": "master", "commit": "652386deae739e38fa1bcf2f06e3e7de9b3436ba" }, "nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" }, "nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-silicon": { "branch": "main", "commit": "feb882f04c992b797daa118101a239fb3bedfc04" }, "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" }, "nvim-transparent": { "branch": "main", "commit": "fd35a46f4b7c1b244249266bdcb2da3814f01724" }, - "nvim-treesitter": { "branch": "master", "commit": "1aad04ecde5ebf8f2b3eea5c6f39d38b251757f5" }, - "nvim-treesitter-textobjects": { "branch": "master", "commit": "33a17515b79ddb10d750320fa994098bdc3e93ef" }, + "nvim-treesitter": { "branch": "master", "commit": "3d1f5e7df8d9981ec0bcf4aa635c0cc0a7ee89d9" }, + "nvim-treesitter-textobjects": { "branch": "master", "commit": "ca93cb2c34b67ab22d01976fc90bc95627a3317f" }, "nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" }, - "nvim-ufo": { "branch": "main", "commit": "76f6b1d7c3f254567dc583124318e52305e3b111" }, + "nvim-ufo": { "branch": "main", "commit": "7dcb8fea3e7b3ccdb50f2c3ae7c248cdf6fe1ae1" }, "nvim-various-textobjs": { "branch": "main", "commit": "52343c70e2487095cafd4a5000d0465a2b992b03" }, "nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" }, "oatmeal.nvim": { "branch": "master", "commit": "c8cdd0a182cf77f88ea5fa4703229ddb3f47c1f7" }, @@ -128,7 +128,7 @@ "telescope.nvim": { "branch": "master", "commit": "3b1600d0fd5172ad9fae00987362ca0ef3d8895d" }, "tmux-awesome-manager.nvim": { "branch": "master", "commit": "f266ba588249965a16df77bca3f8e9a241156d37" }, "todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" }, - "toggleterm.nvim": { "branch": "main", "commit": "8ed0f52006d3207ec6c94de7db62da840937ef2a" }, + "toggleterm.nvim": { "branch": "main", "commit": "137d06fb103952a0fb567882bb8527e2f92d327d" }, "tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" }, "trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" }, "ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" }, diff --git a/.config/nvim/lazyvim.json b/config/nvim/lazyvim.json similarity index 100% rename from .config/nvim/lazyvim.json rename to config/nvim/lazyvim.json diff --git a/.config/nvim/lua/config/autocmds.lua b/config/nvim/lua/config/autocmds.lua similarity index 100% rename from .config/nvim/lua/config/autocmds.lua rename to config/nvim/lua/config/autocmds.lua diff --git a/.config/nvim/lua/config/keymaps.lua b/config/nvim/lua/config/keymaps.lua similarity index 100% rename from .config/nvim/lua/config/keymaps.lua rename to config/nvim/lua/config/keymaps.lua diff --git a/.config/nvim/lua/config/lazy.lua b/config/nvim/lua/config/lazy.lua similarity index 100% rename from .config/nvim/lua/config/lazy.lua rename to config/nvim/lua/config/lazy.lua diff --git a/.config/nvim/lua/config/options.lua b/config/nvim/lua/config/options.lua similarity index 100% rename from .config/nvim/lua/config/options.lua rename to config/nvim/lua/config/options.lua diff --git a/.config/nvim/lua/lualine/themes/custom.lua b/config/nvim/lua/lualine/themes/custom.lua similarity index 100% rename from .config/nvim/lua/lualine/themes/custom.lua rename to config/nvim/lua/lualine/themes/custom.lua diff --git a/.config/nvim/lua/lualine/themes/transparent.lua b/config/nvim/lua/lualine/themes/transparent.lua similarity index 100% rename from .config/nvim/lua/lualine/themes/transparent.lua rename to config/nvim/lua/lualine/themes/transparent.lua diff --git a/.config/nvim/lua/plugins/abolish.lua b/config/nvim/lua/plugins/abolish.lua similarity index 100% rename from .config/nvim/lua/plugins/abolish.lua rename to config/nvim/lua/plugins/abolish.lua diff --git a/.config/nvim/lua/plugins/aerial.lua b/config/nvim/lua/plugins/aerial.lua similarity index 100% rename from .config/nvim/lua/plugins/aerial.lua rename to config/nvim/lua/plugins/aerial.lua diff --git a/.config/nvim/lua/plugins/astro.lua b/config/nvim/lua/plugins/astro.lua similarity index 100% rename from .config/nvim/lua/plugins/astro.lua rename to config/nvim/lua/plugins/astro.lua diff --git a/.config/nvim/lua/plugins/auto-save.lua b/config/nvim/lua/plugins/auto-save.lua similarity index 100% rename from .config/nvim/lua/plugins/auto-save.lua rename to config/nvim/lua/plugins/auto-save.lua diff --git a/.config/nvim/lua/plugins/autotag.lua b/config/nvim/lua/plugins/autotag.lua similarity index 100% rename from .config/nvim/lua/plugins/autotag.lua rename to config/nvim/lua/plugins/autotag.lua diff --git a/.config/nvim/lua/plugins/barbecue.lua b/config/nvim/lua/plugins/barbecue.lua similarity index 100% rename from .config/nvim/lua/plugins/barbecue.lua rename to config/nvim/lua/plugins/barbecue.lua diff --git a/.config/nvim/lua/plugins/base16.lua b/config/nvim/lua/plugins/base16.lua similarity index 100% rename from .config/nvim/lua/plugins/base16.lua rename to config/nvim/lua/plugins/base16.lua diff --git a/.config/nvim/lua/plugins/blamer.lua b/config/nvim/lua/plugins/blamer.lua similarity index 100% rename from .config/nvim/lua/plugins/blamer.lua rename to config/nvim/lua/plugins/blamer.lua diff --git a/.config/nvim/lua/plugins/bookmark.lua b/config/nvim/lua/plugins/bookmark.lua similarity index 100% rename from .config/nvim/lua/plugins/bookmark.lua rename to config/nvim/lua/plugins/bookmark.lua diff --git a/.config/nvim/lua/plugins/bufferline.lua b/config/nvim/lua/plugins/bufferline.lua similarity index 100% rename from .config/nvim/lua/plugins/bufferline.lua rename to config/nvim/lua/plugins/bufferline.lua diff --git a/.config/nvim/lua/plugins/catppuccin.lua b/config/nvim/lua/plugins/catppuccin.lua similarity index 100% rename from .config/nvim/lua/plugins/catppuccin.lua rename to config/nvim/lua/plugins/catppuccin.lua diff --git a/.config/nvim/lua/plugins/chafa.lua b/config/nvim/lua/plugins/chafa.lua similarity index 100% rename from .config/nvim/lua/plugins/chafa.lua rename to config/nvim/lua/plugins/chafa.lua diff --git a/.config/nvim/lua/plugins/chatgpg.lua b/config/nvim/lua/plugins/chatgpg.lua similarity index 100% rename from .config/nvim/lua/plugins/chatgpg.lua rename to config/nvim/lua/plugins/chatgpg.lua diff --git a/.config/nvim/lua/plugins/chatgpg.txt.gpg b/config/nvim/lua/plugins/chatgpg.txt.gpg similarity index 100% rename from .config/nvim/lua/plugins/chatgpg.txt.gpg rename to config/nvim/lua/plugins/chatgpg.txt.gpg diff --git a/.config/nvim/lua/plugins/cheatsheet.lua b/config/nvim/lua/plugins/cheatsheet.lua similarity index 100% rename from .config/nvim/lua/plugins/cheatsheet.lua rename to config/nvim/lua/plugins/cheatsheet.lua diff --git a/.config/nvim/lua/plugins/cmp.lua b/config/nvim/lua/plugins/cmp.lua similarity index 100% rename from .config/nvim/lua/plugins/cmp.lua rename to config/nvim/lua/plugins/cmp.lua diff --git a/.config/nvim/lua/plugins/codewindow.lua b/config/nvim/lua/plugins/codewindow.lua similarity index 100% rename from .config/nvim/lua/plugins/codewindow.lua rename to config/nvim/lua/plugins/codewindow.lua diff --git a/.config/nvim/lua/plugins/colorizer.lua b/config/nvim/lua/plugins/colorizer.lua similarity index 100% rename from .config/nvim/lua/plugins/colorizer.lua rename to config/nvim/lua/plugins/colorizer.lua diff --git a/.config/nvim/lua/plugins/colorscheme-catppuccin.lua b/config/nvim/lua/plugins/colorscheme-catppuccin.lua similarity index 100% rename from .config/nvim/lua/plugins/colorscheme-catppuccin.lua rename to config/nvim/lua/plugins/colorscheme-catppuccin.lua diff --git a/.config/nvim/lua/plugins/colorscheme-night-owl.lua b/config/nvim/lua/plugins/colorscheme-night-owl.lua similarity index 100% rename from .config/nvim/lua/plugins/colorscheme-night-owl.lua rename to config/nvim/lua/plugins/colorscheme-night-owl.lua diff --git a/.config/nvim/lua/plugins/colorscheme-tokyonight.lua b/config/nvim/lua/plugins/colorscheme-tokyonight.lua similarity index 100% rename from .config/nvim/lua/plugins/colorscheme-tokyonight.lua rename to config/nvim/lua/plugins/colorscheme-tokyonight.lua diff --git a/.config/nvim/lua/plugins/colorschemes.lua b/config/nvim/lua/plugins/colorschemes.lua similarity index 100% rename from .config/nvim/lua/plugins/colorschemes.lua rename to config/nvim/lua/plugins/colorschemes.lua diff --git a/.config/nvim/lua/plugins/committia.lua b/config/nvim/lua/plugins/committia.lua similarity index 100% rename from .config/nvim/lua/plugins/committia.lua rename to config/nvim/lua/plugins/committia.lua diff --git a/.config/nvim/lua/plugins/copilot-chat.lua b/config/nvim/lua/plugins/copilot-chat.lua similarity index 100% rename from .config/nvim/lua/plugins/copilot-chat.lua rename to config/nvim/lua/plugins/copilot-chat.lua diff --git a/.config/nvim/lua/plugins/copilot.lua b/config/nvim/lua/plugins/copilot.lua similarity index 100% rename from .config/nvim/lua/plugins/copilot.lua rename to config/nvim/lua/plugins/copilot.lua diff --git a/.config/nvim/lua/plugins/cursorline.lua b/config/nvim/lua/plugins/cursorline.lua similarity index 100% rename from .config/nvim/lua/plugins/cursorline.lua rename to config/nvim/lua/plugins/cursorline.lua diff --git a/.config/nvim/lua/plugins/dashboard.lua b/config/nvim/lua/plugins/dashboard.lua similarity index 100% rename from .config/nvim/lua/plugins/dashboard.lua rename to config/nvim/lua/plugins/dashboard.lua diff --git a/.config/nvim/lua/plugins/dial.lua b/config/nvim/lua/plugins/dial.lua similarity index 100% rename from .config/nvim/lua/plugins/dial.lua rename to config/nvim/lua/plugins/dial.lua diff --git a/.config/nvim/lua/plugins/diffview.lua b/config/nvim/lua/plugins/diffview.lua similarity index 100% rename from .config/nvim/lua/plugins/diffview.lua rename to config/nvim/lua/plugins/diffview.lua diff --git a/.config/nvim/lua/plugins/editorconfig.lua b/config/nvim/lua/plugins/editorconfig.lua similarity index 100% rename from .config/nvim/lua/plugins/editorconfig.lua rename to config/nvim/lua/plugins/editorconfig.lua diff --git a/.config/nvim/lua/plugins/emmet.lua b/config/nvim/lua/plugins/emmet.lua similarity index 100% rename from .config/nvim/lua/plugins/emmet.lua rename to config/nvim/lua/plugins/emmet.lua diff --git a/.config/nvim/lua/plugins/example.lua b/config/nvim/lua/plugins/example.lua similarity index 100% rename from .config/nvim/lua/plugins/example.lua rename to config/nvim/lua/plugins/example.lua diff --git a/.config/nvim/lua/plugins/export-to-vscode.lua b/config/nvim/lua/plugins/export-to-vscode.lua similarity index 100% rename from .config/nvim/lua/plugins/export-to-vscode.lua rename to config/nvim/lua/plugins/export-to-vscode.lua diff --git a/.config/nvim/lua/plugins/flash.lua b/config/nvim/lua/plugins/flash.lua similarity index 100% rename from .config/nvim/lua/plugins/flash.lua rename to config/nvim/lua/plugins/flash.lua diff --git a/.config/nvim/lua/plugins/fm.lua b/config/nvim/lua/plugins/fm.lua similarity index 100% rename from .config/nvim/lua/plugins/fm.lua rename to config/nvim/lua/plugins/fm.lua diff --git a/.config/nvim/lua/plugins/formatting.lua b/config/nvim/lua/plugins/formatting.lua similarity index 100% rename from .config/nvim/lua/plugins/formatting.lua rename to config/nvim/lua/plugins/formatting.lua diff --git a/.config/nvim/lua/plugins/fugitive.lua b/config/nvim/lua/plugins/fugitive.lua similarity index 100% rename from .config/nvim/lua/plugins/fugitive.lua rename to config/nvim/lua/plugins/fugitive.lua diff --git a/.config/nvim/lua/plugins/gh-line.lua b/config/nvim/lua/plugins/gh-line.lua similarity index 100% rename from .config/nvim/lua/plugins/gh-line.lua rename to config/nvim/lua/plugins/gh-line.lua diff --git a/.config/nvim/lua/plugins/gh.lua b/config/nvim/lua/plugins/gh.lua similarity index 100% rename from .config/nvim/lua/plugins/gh.lua rename to config/nvim/lua/plugins/gh.lua diff --git a/.config/nvim/lua/plugins/grammarous.lua b/config/nvim/lua/plugins/grammarous.lua similarity index 100% rename from .config/nvim/lua/plugins/grammarous.lua rename to config/nvim/lua/plugins/grammarous.lua diff --git a/.config/nvim/lua/plugins/harpoon-lualine.lua b/config/nvim/lua/plugins/harpoon-lualine.lua similarity index 100% rename from .config/nvim/lua/plugins/harpoon-lualine.lua rename to config/nvim/lua/plugins/harpoon-lualine.lua diff --git a/.config/nvim/lua/plugins/harpoon.lua b/config/nvim/lua/plugins/harpoon.lua similarity index 100% rename from .config/nvim/lua/plugins/harpoon.lua rename to config/nvim/lua/plugins/harpoon.lua diff --git a/.config/nvim/lua/plugins/highlight-undo.lua b/config/nvim/lua/plugins/highlight-undo.lua similarity index 100% rename from .config/nvim/lua/plugins/highlight-undo.lua rename to config/nvim/lua/plugins/highlight-undo.lua diff --git a/.config/nvim/lua/plugins/inc-rename.lua b/config/nvim/lua/plugins/inc-rename.lua similarity index 100% rename from .config/nvim/lua/plugins/inc-rename.lua rename to config/nvim/lua/plugins/inc-rename.lua diff --git a/.config/nvim/lua/plugins/lazygit.lua b/config/nvim/lua/plugins/lazygit.lua similarity index 100% rename from .config/nvim/lua/plugins/lazygit.lua rename to config/nvim/lua/plugins/lazygit.lua diff --git a/.config/nvim/lua/plugins/legendary.lua b/config/nvim/lua/plugins/legendary.lua similarity index 100% rename from .config/nvim/lua/plugins/legendary.lua rename to config/nvim/lua/plugins/legendary.lua diff --git a/.config/nvim/lua/plugins/lf.lua b/config/nvim/lua/plugins/lf.lua similarity index 100% rename from .config/nvim/lua/plugins/lf.lua rename to config/nvim/lua/plugins/lf.lua diff --git a/.config/nvim/lua/plugins/linting.lua b/config/nvim/lua/plugins/linting.lua similarity index 100% rename from .config/nvim/lua/plugins/linting.lua rename to config/nvim/lua/plugins/linting.lua diff --git a/.config/nvim/lua/plugins/lsp-progress.lua b/config/nvim/lua/plugins/lsp-progress.lua similarity index 100% rename from .config/nvim/lua/plugins/lsp-progress.lua rename to config/nvim/lua/plugins/lsp-progress.lua diff --git a/.config/nvim/lua/plugins/lspconfig.lua b/config/nvim/lua/plugins/lspconfig.lua similarity index 100% rename from .config/nvim/lua/plugins/lspconfig.lua rename to config/nvim/lua/plugins/lspconfig.lua diff --git a/.config/nvim/lua/plugins/lualine.lua b/config/nvim/lua/plugins/lualine.lua similarity index 100% rename from .config/nvim/lua/plugins/lualine.lua rename to config/nvim/lua/plugins/lualine.lua diff --git a/.config/nvim/lua/plugins/markdown-preview.lua b/config/nvim/lua/plugins/markdown-preview.lua similarity index 100% rename from .config/nvim/lua/plugins/markdown-preview.lua rename to config/nvim/lua/plugins/markdown-preview.lua diff --git a/.config/nvim/lua/plugins/mason.lua b/config/nvim/lua/plugins/mason.lua similarity index 100% rename from .config/nvim/lua/plugins/mason.lua rename to config/nvim/lua/plugins/mason.lua diff --git a/.config/nvim/lua/plugins/mundo.lua b/config/nvim/lua/plugins/mundo.lua similarity index 100% rename from .config/nvim/lua/plugins/mundo.lua rename to config/nvim/lua/plugins/mundo.lua diff --git a/.config/nvim/lua/plugins/neogit.lua b/config/nvim/lua/plugins/neogit.lua similarity index 100% rename from .config/nvim/lua/plugins/neogit.lua rename to config/nvim/lua/plugins/neogit.lua diff --git a/.config/nvim/lua/plugins/neotest.lua b/config/nvim/lua/plugins/neotest.lua similarity index 100% rename from .config/nvim/lua/plugins/neotest.lua rename to config/nvim/lua/plugins/neotest.lua diff --git a/.config/nvim/lua/plugins/noctis.lua b/config/nvim/lua/plugins/noctis.lua similarity index 100% rename from .config/nvim/lua/plugins/noctis.lua rename to config/nvim/lua/plugins/noctis.lua diff --git a/.config/nvim/lua/plugins/noice.lua b/config/nvim/lua/plugins/noice.lua similarity index 100% rename from .config/nvim/lua/plugins/noice.lua rename to config/nvim/lua/plugins/noice.lua diff --git a/.config/nvim/lua/plugins/notify.lua b/config/nvim/lua/plugins/notify.lua similarity index 100% rename from .config/nvim/lua/plugins/notify.lua rename to config/nvim/lua/plugins/notify.lua diff --git a/.config/nvim/lua/plugins/oatmeal.lua b/config/nvim/lua/plugins/oatmeal.lua similarity index 100% rename from .config/nvim/lua/plugins/oatmeal.lua rename to config/nvim/lua/plugins/oatmeal.lua diff --git a/.config/nvim/lua/plugins/obsidian.lua b/config/nvim/lua/plugins/obsidian.lua similarity index 100% rename from .config/nvim/lua/plugins/obsidian.lua rename to config/nvim/lua/plugins/obsidian.lua diff --git a/.config/nvim/lua/plugins/oil.lua b/config/nvim/lua/plugins/oil.lua similarity index 100% rename from .config/nvim/lua/plugins/oil.lua rename to config/nvim/lua/plugins/oil.lua diff --git a/.config/nvim/lua/plugins/ollama.lua b/config/nvim/lua/plugins/ollama.lua similarity index 100% rename from .config/nvim/lua/plugins/ollama.lua rename to config/nvim/lua/plugins/ollama.lua diff --git a/.config/nvim/lua/plugins/project.lua b/config/nvim/lua/plugins/project.lua similarity index 100% rename from .config/nvim/lua/plugins/project.lua rename to config/nvim/lua/plugins/project.lua diff --git a/.config/nvim/lua/plugins/rainbow-csv.lua b/config/nvim/lua/plugins/rainbow-csv.lua similarity index 100% rename from .config/nvim/lua/plugins/rainbow-csv.lua rename to config/nvim/lua/plugins/rainbow-csv.lua diff --git a/.config/nvim/lua/plugins/remote-nvim.lua b/config/nvim/lua/plugins/remote-nvim.lua similarity index 100% rename from .config/nvim/lua/plugins/remote-nvim.lua rename to config/nvim/lua/plugins/remote-nvim.lua diff --git a/.config/nvim/lua/plugins/screenshots.lua b/config/nvim/lua/plugins/screenshots.lua similarity index 100% rename from .config/nvim/lua/plugins/screenshots.lua rename to config/nvim/lua/plugins/screenshots.lua diff --git a/.config/nvim/lua/plugins/smart-splits.lua b/config/nvim/lua/plugins/smart-splits.lua similarity index 100% rename from .config/nvim/lua/plugins/smart-splits.lua rename to config/nvim/lua/plugins/smart-splits.lua diff --git a/.config/nvim/lua/plugins/symbols-outline.lua b/config/nvim/lua/plugins/symbols-outline.lua similarity index 100% rename from .config/nvim/lua/plugins/symbols-outline.lua rename to config/nvim/lua/plugins/symbols-outline.lua diff --git a/.config/nvim/lua/plugins/table-mode.lua b/config/nvim/lua/plugins/table-mode.lua similarity index 100% rename from .config/nvim/lua/plugins/table-mode.lua rename to config/nvim/lua/plugins/table-mode.lua diff --git a/.config/nvim/lua/plugins/tailwindcss.lua b/config/nvim/lua/plugins/tailwindcss.lua similarity index 100% rename from .config/nvim/lua/plugins/tailwindcss.lua rename to config/nvim/lua/plugins/tailwindcss.lua diff --git a/.config/nvim/lua/plugins/telecope-heading.lua b/config/nvim/lua/plugins/telecope-heading.lua similarity index 100% rename from .config/nvim/lua/plugins/telecope-heading.lua rename to config/nvim/lua/plugins/telecope-heading.lua diff --git a/.config/nvim/lua/plugins/telescope-file-browser.lua b/config/nvim/lua/plugins/telescope-file-browser.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-file-browser.lua rename to config/nvim/lua/plugins/telescope-file-browser.lua diff --git a/.config/nvim/lua/plugins/telescope-frecency.lua b/config/nvim/lua/plugins/telescope-frecency.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-frecency.lua rename to config/nvim/lua/plugins/telescope-frecency.lua diff --git a/.config/nvim/lua/plugins/telescope-fzy-native.lua b/config/nvim/lua/plugins/telescope-fzy-native.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-fzy-native.lua rename to config/nvim/lua/plugins/telescope-fzy-native.lua diff --git a/.config/nvim/lua/plugins/telescope-github.lua b/config/nvim/lua/plugins/telescope-github.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-github.lua rename to config/nvim/lua/plugins/telescope-github.lua diff --git a/.config/nvim/lua/plugins/telescope-import.lua b/config/nvim/lua/plugins/telescope-import.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-import.lua rename to config/nvim/lua/plugins/telescope-import.lua diff --git a/.config/nvim/lua/plugins/telescope-live-grep-args.lua b/config/nvim/lua/plugins/telescope-live-grep-args.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-live-grep-args.lua rename to config/nvim/lua/plugins/telescope-live-grep-args.lua diff --git a/.config/nvim/lua/plugins/telescope-node-modules.lua b/config/nvim/lua/plugins/telescope-node-modules.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-node-modules.lua rename to config/nvim/lua/plugins/telescope-node-modules.lua diff --git a/.config/nvim/lua/plugins/telescope-smart-open.lua b/config/nvim/lua/plugins/telescope-smart-open.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-smart-open.lua rename to config/nvim/lua/plugins/telescope-smart-open.lua diff --git a/.config/nvim/lua/plugins/telescope-undo.lua b/config/nvim/lua/plugins/telescope-undo.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope-undo.lua rename to config/nvim/lua/plugins/telescope-undo.lua diff --git a/.config/nvim/lua/plugins/telescope.lua b/config/nvim/lua/plugins/telescope.lua similarity index 100% rename from .config/nvim/lua/plugins/telescope.lua rename to config/nvim/lua/plugins/telescope.lua diff --git a/.config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua b/config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua similarity index 100% rename from .config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua rename to config/nvim/lua/plugins/tmux-awesome-plugin-manager.lua diff --git a/.config/nvim/lua/plugins/tmux-navigator.lua b/config/nvim/lua/plugins/tmux-navigator.lua similarity index 100% rename from .config/nvim/lua/plugins/tmux-navigator.lua rename to config/nvim/lua/plugins/tmux-navigator.lua diff --git a/.config/nvim/lua/plugins/todo-comments.lua b/config/nvim/lua/plugins/todo-comments.lua similarity index 100% rename from .config/nvim/lua/plugins/todo-comments.lua rename to config/nvim/lua/plugins/todo-comments.lua diff --git a/.config/nvim/lua/plugins/transparent.lua b/config/nvim/lua/plugins/transparent.lua similarity index 100% rename from .config/nvim/lua/plugins/transparent.lua rename to config/nvim/lua/plugins/transparent.lua diff --git a/.config/nvim/lua/plugins/treesitter.lua b/config/nvim/lua/plugins/treesitter.lua similarity index 100% rename from .config/nvim/lua/plugins/treesitter.lua rename to config/nvim/lua/plugins/treesitter.lua diff --git a/.config/nvim/lua/plugins/twilight.lua b/config/nvim/lua/plugins/twilight.lua similarity index 100% rename from .config/nvim/lua/plugins/twilight.lua rename to config/nvim/lua/plugins/twilight.lua diff --git a/.config/nvim/lua/plugins/ufo.lua b/config/nvim/lua/plugins/ufo.lua similarity index 100% rename from .config/nvim/lua/plugins/ufo.lua rename to config/nvim/lua/plugins/ufo.lua diff --git a/.config/nvim/lua/plugins/various-textobjs.lua b/config/nvim/lua/plugins/various-textobjs.lua similarity index 100% rename from .config/nvim/lua/plugins/various-textobjs.lua rename to config/nvim/lua/plugins/various-textobjs.lua diff --git a/.config/nvim/lua/plugins/vim-nix.lua b/config/nvim/lua/plugins/vim-nix.lua similarity index 100% rename from .config/nvim/lua/plugins/vim-nix.lua rename to config/nvim/lua/plugins/vim-nix.lua diff --git a/.config/nvim/lua/plugins/vimux.lua b/config/nvim/lua/plugins/vimux.lua similarity index 100% rename from .config/nvim/lua/plugins/vimux.lua rename to config/nvim/lua/plugins/vimux.lua diff --git a/.config/nvim/lua/plugins/visincr.lua b/config/nvim/lua/plugins/visincr.lua similarity index 100% rename from .config/nvim/lua/plugins/visincr.lua rename to config/nvim/lua/plugins/visincr.lua diff --git a/.config/nvim/lua/plugins/visual-multi.lua b/config/nvim/lua/plugins/visual-multi.lua similarity index 100% rename from .config/nvim/lua/plugins/visual-multi.lua rename to config/nvim/lua/plugins/visual-multi.lua diff --git a/.config/nvim/lua/plugins/wakatime.lua b/config/nvim/lua/plugins/wakatime.lua similarity index 100% rename from .config/nvim/lua/plugins/wakatime.lua rename to config/nvim/lua/plugins/wakatime.lua diff --git a/.config/nvim/lua/plugins/worktrees.lua b/config/nvim/lua/plugins/worktrees.lua similarity index 100% rename from .config/nvim/lua/plugins/worktrees.lua rename to config/nvim/lua/plugins/worktrees.lua diff --git a/.config/nvim/lua/plugins/wrapping.lua b/config/nvim/lua/plugins/wrapping.lua similarity index 100% rename from .config/nvim/lua/plugins/wrapping.lua rename to config/nvim/lua/plugins/wrapping.lua diff --git a/.config/nvim/lua/plugins/xtract.lua b/config/nvim/lua/plugins/xtract.lua similarity index 100% rename from .config/nvim/lua/plugins/xtract.lua rename to config/nvim/lua/plugins/xtract.lua diff --git a/.config/nvim/lua/plugins/zen-mode.lua b/config/nvim/lua/plugins/zen-mode.lua similarity index 100% rename from .config/nvim/lua/plugins/zen-mode.lua rename to config/nvim/lua/plugins/zen-mode.lua diff --git a/.config/nvim/spell/de.utf-8.add b/config/nvim/spell/de.utf-8.add similarity index 100% rename from .config/nvim/spell/de.utf-8.add rename to config/nvim/spell/de.utf-8.add diff --git a/.config/nvim/spell/de.utf-8.add.spl b/config/nvim/spell/de.utf-8.add.spl similarity index 100% rename from .config/nvim/spell/de.utf-8.add.spl rename to config/nvim/spell/de.utf-8.add.spl diff --git a/.config/nvim/spell/de.utf-8.spl b/config/nvim/spell/de.utf-8.spl similarity index 100% rename from .config/nvim/spell/de.utf-8.spl rename to config/nvim/spell/de.utf-8.spl diff --git a/.config/nvim/spell/de.utf-8.sug b/config/nvim/spell/de.utf-8.sug similarity index 100% rename from .config/nvim/spell/de.utf-8.sug rename to config/nvim/spell/de.utf-8.sug diff --git a/.config/nvim/spell/en.utf-8.add b/config/nvim/spell/en.utf-8.add similarity index 100% rename from .config/nvim/spell/en.utf-8.add rename to config/nvim/spell/en.utf-8.add diff --git a/.config/nvim/spell/en.utf-8.add.spl b/config/nvim/spell/en.utf-8.add.spl similarity index 100% rename from .config/nvim/spell/en.utf-8.add.spl rename to config/nvim/spell/en.utf-8.add.spl diff --git a/.config/nvim/spell/en.utf-8.spl b/config/nvim/spell/en.utf-8.spl similarity index 100% rename from .config/nvim/spell/en.utf-8.spl rename to config/nvim/spell/en.utf-8.spl diff --git a/.config/nvim/spell/en.utf-8.sug b/config/nvim/spell/en.utf-8.sug similarity index 100% rename from .config/nvim/spell/en.utf-8.sug rename to config/nvim/spell/en.utf-8.sug diff --git a/.config/nvim/stylua.toml b/config/nvim/stylua.toml similarity index 100% rename from .config/nvim/stylua.toml rename to config/nvim/stylua.toml diff --git a/.config/nvim/thesaurus/de_openthesaurus.txt b/config/nvim/thesaurus/de_openthesaurus.txt similarity index 100% rename from .config/nvim/thesaurus/de_openthesaurus.txt rename to config/nvim/thesaurus/de_openthesaurus.txt diff --git a/.config/nvim/thesaurus/de_user.txt b/config/nvim/thesaurus/de_user.txt similarity index 100% rename from .config/nvim/thesaurus/de_user.txt rename to config/nvim/thesaurus/de_user.txt diff --git a/.config/oatmeal/config.toml b/config/oatmeal/config.toml similarity index 100% rename from .config/oatmeal/config.toml rename to config/oatmeal/config.toml diff --git a/.config/ripgrep/ripgreprc b/config/ripgrep/ripgreprc similarity index 100% rename from .config/ripgrep/ripgreprc rename to config/ripgrep/ripgreprc diff --git a/.config/sesh/scripts/node_dev b/config/sesh/scripts/node_dev similarity index 100% rename from .config/sesh/scripts/node_dev rename to config/sesh/scripts/node_dev diff --git a/.config/sesh/scripts/open_files b/config/sesh/scripts/open_files similarity index 100% rename from .config/sesh/scripts/open_files rename to config/sesh/scripts/open_files diff --git a/.config/sesh/sesh.toml b/config/sesh/sesh.toml similarity index 100% rename from .config/sesh/sesh.toml rename to config/sesh/sesh.toml diff --git a/.config/skhd/skhdrc b/config/skhd/skhdrc similarity index 100% rename from .config/skhd/skhdrc rename to config/skhd/skhdrc diff --git a/.config/starship.toml b/config/starship.toml similarity index 100% rename from .config/starship.toml rename to config/starship.toml diff --git a/.config/tmux/tmux-nerd-font-window-name.yml b/config/tmux/tmux-nerd-font-window-name.yml similarity index 100% rename from .config/tmux/tmux-nerd-font-window-name.yml rename to config/tmux/tmux-nerd-font-window-name.yml diff --git a/.config/tmux/tmux.conf b/config/tmux/tmux.conf similarity index 100% rename from .config/tmux/tmux.conf rename to config/tmux/tmux.conf diff --git a/.config/wezterm/terminal.icns b/config/wezterm/terminal.icns similarity index 100% rename from .config/wezterm/terminal.icns rename to config/wezterm/terminal.icns diff --git a/.config/wezterm/wezterm.lua b/config/wezterm/wezterm.lua similarity index 100% rename from .config/wezterm/wezterm.lua rename to config/wezterm/wezterm.lua diff --git a/.config/yabai/yabairc b/config/yabai/yabairc similarity index 100% rename from .config/yabai/yabairc rename to config/yabai/yabairc diff --git a/.config/yazi/flavors/.gitkeep b/config/yazi/flavors/.gitkeep similarity index 100% rename from .config/yazi/flavors/.gitkeep rename to config/yazi/flavors/.gitkeep diff --git a/.config/yazi/plugins/.gitkeep b/config/yazi/plugins/.gitkeep similarity index 100% rename from .config/yazi/plugins/.gitkeep rename to config/yazi/plugins/.gitkeep diff --git a/.config/yazi/yazi.toml b/config/yazi/yazi.toml similarity index 100% rename from .config/yazi/yazi.toml rename to config/yazi/yazi.toml diff --git a/.config/zed/settings.json b/config/zed/settings.json similarity index 100% rename from .config/zed/settings.json rename to config/zed/settings.json diff --git a/.ctags b/ctags similarity index 100% rename from .ctags rename to ctags diff --git a/.curlrc b/curlrc similarity index 100% rename from .curlrc rename to curlrc diff --git a/.hammerspoon/caffeine.lua b/darwin/hammerspoon/caffeine.lua similarity index 100% rename from .hammerspoon/caffeine.lua rename to darwin/hammerspoon/caffeine.lua diff --git a/.hammerspoon/functions.lua b/darwin/hammerspoon/functions.lua similarity index 100% rename from .hammerspoon/functions.lua rename to darwin/hammerspoon/functions.lua diff --git a/.hammerspoon/icons/cup-off.pdf b/darwin/hammerspoon/icons/cup-off.pdf similarity index 100% rename from .hammerspoon/icons/cup-off.pdf rename to darwin/hammerspoon/icons/cup-off.pdf diff --git a/.hammerspoon/icons/cup-on.pdf b/darwin/hammerspoon/icons/cup-on.pdf similarity index 100% rename from .hammerspoon/icons/cup-on.pdf rename to darwin/hammerspoon/icons/cup-on.pdf diff --git a/.hammerspoon/icons/moon.pdf b/darwin/hammerspoon/icons/moon.pdf similarity index 100% rename from .hammerspoon/icons/moon.pdf rename to darwin/hammerspoon/icons/moon.pdf diff --git a/.hammerspoon/icons/sun.pdf b/darwin/hammerspoon/icons/sun.pdf similarity index 100% rename from .hammerspoon/icons/sun.pdf rename to darwin/hammerspoon/icons/sun.pdf diff --git a/.hammerspoon/init.lua b/darwin/hammerspoon/init.lua similarity index 100% rename from .hammerspoon/init.lua rename to darwin/hammerspoon/init.lua diff --git a/.config/karabiner/assets/complex_modifications/1668261369.json b/darwin/karabiner/assets/complex_modifications/1668261369.json similarity index 100% rename from .config/karabiner/assets/complex_modifications/1668261369.json rename to darwin/karabiner/assets/complex_modifications/1668261369.json diff --git a/.config/karabiner/assets/complex_modifications/1669799628.json b/darwin/karabiner/assets/complex_modifications/1669799628.json similarity index 100% rename from .config/karabiner/assets/complex_modifications/1669799628.json rename to darwin/karabiner/assets/complex_modifications/1669799628.json diff --git a/.config/karabiner/assets/complex_modifications/1670850784.json b/darwin/karabiner/assets/complex_modifications/1670850784.json similarity index 100% rename from .config/karabiner/assets/complex_modifications/1670850784.json rename to darwin/karabiner/assets/complex_modifications/1670850784.json diff --git a/.config/karabiner/karabiner.json b/darwin/karabiner/karabiner.json similarity index 100% rename from .config/karabiner/karabiner.json rename to darwin/karabiner/karabiner.json diff --git a/.default-gems b/default-gems similarity index 100% rename from .default-gems rename to default-gems diff --git a/.default-npm-packages b/default-npm-packages similarity index 100% rename from .default-npm-packages rename to default-npm-packages diff --git a/.default-python-packages b/default-python-packages similarity index 100% rename from .default-python-packages rename to default-python-packages diff --git a/.editorconfig b/editorconfig similarity index 100% rename from .editorconfig rename to editorconfig diff --git a/.functions/delete_node_modules.sh b/functions/delete_node_modules.sh similarity index 100% rename from .functions/delete_node_modules.sh rename to functions/delete_node_modules.sh diff --git a/.functions/fcd.sh b/functions/fcd.sh similarity index 100% rename from .functions/fcd.sh rename to functions/fcd.sh diff --git a/.functions/fcdh.sh b/functions/fcdh.sh similarity index 100% rename from .functions/fcdh.sh rename to functions/fcdh.sh diff --git a/.functions/fco.sh b/functions/fco.sh similarity index 100% rename from .functions/fco.sh rename to functions/fco.sh diff --git a/.functions/fcoc.sh b/functions/fcoc.sh similarity index 100% rename from .functions/fcoc.sh rename to functions/fcoc.sh diff --git a/.functions/fdr.sh b/functions/fdr.sh similarity index 100% rename from .functions/fdr.sh rename to functions/fdr.sh diff --git a/.functions/fgh.sh b/functions/fgh.sh similarity index 100% rename from .functions/fgh.sh rename to functions/fgh.sh diff --git a/.functions/fkill.sh b/functions/fkill.sh similarity index 100% rename from .functions/fkill.sh rename to functions/fkill.sh diff --git a/.functions/fo.sh b/functions/fo.sh similarity index 100% rename from .functions/fo.sh rename to functions/fo.sh diff --git a/.functions/fs.sh b/functions/fs.sh similarity index 100% rename from .functions/fs.sh rename to functions/fs.sh diff --git a/.functions/fshow.sh b/functions/fshow.sh similarity index 100% rename from .functions/fshow.sh rename to functions/fshow.sh diff --git a/.functions/fz.sh b/functions/fz.sh similarity index 100% rename from .functions/fz.sh rename to functions/fz.sh diff --git a/.functions/ghpr.sh b/functions/ghpr.sh similarity index 100% rename from .functions/ghpr.sh rename to functions/ghpr.sh diff --git a/.functions/server.sh b/functions/server.sh similarity index 100% rename from .functions/server.sh rename to functions/server.sh diff --git a/.gemrc b/gemrc similarity index 100% rename from .gemrc rename to gemrc diff --git a/.gitmux.conf b/gitmux.conf similarity index 100% rename from .gitmux.conf rename to gitmux.conf diff --git a/.gnupg/dirmngr.conf b/gnupg/dirmngr.conf similarity index 100% rename from .gnupg/dirmngr.conf rename to gnupg/dirmngr.conf diff --git a/.gnupg/gpg-agent.conf b/gnupg/gpg-agent.conf similarity index 100% rename from .gnupg/gpg-agent.conf rename to gnupg/gpg-agent.conf diff --git a/.gnupg/gpg.conf b/gnupg/gpg.conf similarity index 100% rename from .gnupg/gpg.conf rename to gnupg/gpg.conf diff --git a/homebrew/mac-mini b/homebrew/mac-mini index 3c8cb85..1f4a683 100644 --- a/homebrew/mac-mini +++ b/homebrew/mac-mini @@ -70,6 +70,8 @@ brew "docbook-xsl" brew "docker-buildx" # Text processing system for reStructuredText brew "docutils" +# Tool that bootstraps your dotfiles +brew "dotbot" # More intuitive version of du in rust brew "dust" # Maintain consistent coding style between multiple editors @@ -230,8 +232,6 @@ brew "silicon" brew "ssh-copy-id" # Cross-shell prompt for astronauts brew "starship" -# Organize software neatly under a single directory tree (e.g. /usr/local) -brew "stow" # Official documentation format of the GNU project brew "texinfo" # Code-search similar to ack @@ -513,7 +513,6 @@ vscode "bbenoist.nix" vscode "bierner.markdown-preview-github-styles" vscode "bradlc.vscode-tailwindcss" vscode "chakrounanas.turbo-console-log" -vscode "chrischinchilla.vale-vscode" vscode "christian-kohler.npm-intellisense" vscode "christian-kohler.path-intellisense" vscode "chrmarti.regex" diff --git a/install b/install new file mode 100755 index 0000000..df6dfb9 --- /dev/null +++ b/install @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +set -e + +CONFIG="install.conf.yaml" +BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +dotbot -d "${BASEDIR}" -c "${CONFIG}" "${@}" diff --git a/install.conf.yaml b/install.conf.yaml new file mode 100644 index 0000000..3abe0f9 --- /dev/null +++ b/install.conf.yaml @@ -0,0 +1,54 @@ +- defaults: + link: + relink: true + +- clean: ["~"] + +- create: + ~/.ssh: + mode: 0700 + +- link: + ~/.ack: ack + ~/.ag: ag + ~/.aliases: aliases + ~/.asdfrc: asdfrc + ~/.bash_profile: bash_profile + ~/.bashrc: bashrc + ~/.config/: + glob: true + path: config/* + relink: true + exclude: [config/karabiner, config/hammerspoon] + ~/.config/karabiner: + if: "[ `uname` = Darwin ]" + link: darwin/karabiner + ~/.ctags: ctags + ~/.curlrc: curlrc + ~/.default-gems: default-gems + ~/.default-npm-packages: default-npm-packages + ~/.default-python-packages: default-python-packages + ~/.editorconfig: editorconfig + ~/.functions: functions + ~/.gemrc: gemrc + ~/.gitmux.conf: gitmux.conf + ~/.gnupg/dirmngr.conf: gnupg/dirmngr.conf + ~/.gnupg/gpg-agent.conf: gnupg/gpg-agent.conf + ~/.gnupg/gpg.conf: gnupg/gpg.conf + ~/.hammerspoon: + if: "[ `uname` = Darwin ]" + path: darwin/hammerspoon + ~/.profile: profile + ~/.session-variables.sh: session-variables.sh + ~/.tool-versions: tool-versions + ~/.wget: wget + ~/.zsh_plugins.txt: zsh_plugins.txt + ~/.zshenv: zshenv + ~/.zshrc: zshrc + +- shell: + - [git submodule update --init --recursive, Installing submodules] + - [ + ~/.tmux/plugins/tpm/scripts/install_plugins.sh >/dev/null 2>&1, + Installing tmux plugins, + ] diff --git a/.profile b/profile similarity index 100% rename from .profile rename to profile diff --git a/.session-variables.sh b/session-variables.sh similarity index 100% rename from .session-variables.sh rename to session-variables.sh diff --git a/install.sh b/setup.sh similarity index 99% rename from install.sh rename to setup.sh index dddf29f..0de6398 100755 --- a/install.sh +++ b/setup.sh @@ -42,7 +42,7 @@ echo "Initializing submodule(s)" git submodule update --init --recursive # Symlink dotfiles -stow --no-folding --adopt -v . +./install # Download wezterm.terminfo curl https://raw.githubusercontent.com/wez/wezterm/master/termwiz/data/wezterm.terminfo | tic -x - diff --git a/.tool-versions b/tool-versions similarity index 100% rename from .tool-versions rename to tool-versions diff --git a/.wget b/wget similarity index 100% rename from .wget rename to wget diff --git a/.zsh_plugins.txt b/zsh_plugins.txt similarity index 100% rename from .zsh_plugins.txt rename to zsh_plugins.txt diff --git a/.zshenv b/zshenv similarity index 100% rename from .zshenv rename to zshenv diff --git a/.zshrc b/zshrc similarity index 100% rename from .zshrc rename to zshrc