summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.chezmoiignore1
-rw-r--r--.gitmodules4
-rw-r--r--UNLICENSE24
-rw-r--r--dot_anypaste-plugins/executable_anyclone21
-rw-r--r--dot_anypaste-plugins/executable_brpaste28
-rw-r--r--dot_config/beets/config.yaml11
-rw-r--r--dot_config/git/config73
-rw-r--r--dot_config/luarocks/config.lua14
-rw-r--r--dot_config/mpv/mpv.conf16
-rw-r--r--dot_config/mpv/script-opts/acompressor.conf1
-rw-r--r--dot_config/mpv/scripts/symlink_acompressor.lua1
-rw-r--r--dot_config/mpv/twitch-input.conf21
-rw-r--r--dot_config/nvim/.chezmoiignore4
m---------dot_config/nvim/pack/vim-toastpack0
-rw-r--r--dot_config/nvim/symlink_init.vim1
-rw-r--r--dot_config/nvim/vimrc82
-rw-r--r--dot_config/rofi/config9
-rw-r--r--dot_config/streamlink/config.tmpl10
-rw-r--r--dot_config/tmux/linux-clipboard.tmux6
-rw-r--r--dot_config/tmux/tmux.conf43
-rw-r--r--dot_local/bin/.keep0
-rw-r--r--dot_local/share/toasty/.gitignore (renamed from .gitignore)0
-rw-r--r--dot_local/share/toasty/.gitmodules0
l---------dot_local/share/toasty/.zshrc (renamed from .zshrc)0
-rw-r--r--dot_local/share/toasty/LICENSE.md (renamed from LICENSE.md)0
-rw-r--r--dot_local/share/toasty/README.adoc (renamed from README.adoc)0
-rw-r--r--dot_local/share/toasty/completions/_autosource (renamed from completions/_autosource)0
-rw-r--r--dot_local/share/toasty/examples/source/enable-shared-history.zsh (renamed from examples/source/enable-shared-history.zsh)0
-rw-r--r--dot_local/share/toasty/examples/zshrc.local (renamed from examples/zshrc.local)0
-rw-r--r--dot_local/share/toasty/functions/autosource (renamed from functions/autosource)0
-rw-r--r--dot_local/share/toasty/functions/brpaste (renamed from functions/brpaste)0
-rw-r--r--dot_local/share/toasty/functions/sourceall (renamed from functions/sourceall)0
-rw-r--r--dot_local/share/toasty/functions/sprunge (renamed from functions/sprunge)0
-rw-r--r--dot_local/share/toasty/plugins/sudo (renamed from plugins/sudo)0
-rw-r--r--dot_local/share/toasty/plugins/xterm-title (renamed from plugins/xterm-title)0
-rw-r--r--dot_local/share/toasty/prompts/async (renamed from prompts/async)0
-rw-r--r--dot_local/share/toasty/prompts/prompt_pure_setup (renamed from prompts/prompt_pure_setup)0
-rw-r--r--dot_local/share/toasty/prompts/prompt_purer_setup (renamed from prompts/prompt_purer_setup)0
-rw-r--r--dot_local/share/toasty/prompts/prompt_shellder_setup (renamed from prompts/prompt_shellder_setup)0
-rw-r--r--dot_local/share/toasty/prompts/prompt_toasty_setup (renamed from prompts/prompt_toasty_setup)0
-rw-r--r--dot_local/share/toasty/source/aliases.zsh (renamed from source/aliases.zsh)0
-rw-r--r--dot_local/share/toasty/source/bindkeys.zsh (renamed from source/bindkeys.zsh)0
-rw-r--r--dot_local/share/toasty/source/completions.zsh (renamed from source/completions.zsh)0
-rw-r--r--dot_local/share/toasty/source/env.zsh (renamed from source/env.zsh)0
-rw-r--r--dot_local/share/toasty/source/options.zsh (renamed from source/options.zsh)0
-rw-r--r--dot_local/share/toasty/third-party-licenses/LICENSE.OMZ.md (renamed from third-party-licenses/LICENSE.OMZ.md)0
-rw-r--r--dot_local/share/toasty/third-party-licenses/LICENSE.pure.txt (renamed from third-party-licenses/LICENSE.pure.txt)0
-rw-r--r--dot_local/share/toasty/third-party-licenses/LICENSE.purer.txt (renamed from third-party-licenses/LICENSE.purer.txt)0
-rw-r--r--dot_local/share/toasty/third-party-licenses/LICENSE.shellder.txt (renamed from third-party-licenses/LICENSE.shellder.txt)0
-rw-r--r--dot_local/share/toasty/zshenv (renamed from zshenv)0
-rw-r--r--dot_local/share/toasty/zshrc (renamed from zshrc)0
-rw-r--r--dot_zsh/functions/twitch6
-rw-r--r--dot_zsh/plugins/exa11
-rw-r--r--dot_zsh/plugins/fuzzy27
-rw-r--r--dot_zsh/source/path.zsh25
-rw-r--r--run_submodules.sh2
-rw-r--r--symlink_bin1
-rw-r--r--symlink_dot_tmux.conf1
-rw-r--r--symlink_dot_vim1
-rw-r--r--symlink_dot_zshrc1
60 files changed, 445 insertions, 0 deletions
diff --git a/.chezmoiignore b/.chezmoiignore
new file mode 100644
index 0000000..cbbf4c0
--- /dev/null
+++ b/.chezmoiignore
@@ -0,0 +1 @@
+UNLICENSE
diff --git a/.gitmodules b/.gitmodules
index e69de29..604f4ef 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -0,0 +1,4 @@
+[submodule "dot_config/nvim/pack/vim-toastpack"]
+ path = dot_config/nvim/pack/vim-toastpack
+ url = https://github.com/5paceToast/vim-toastpack.git
+ branch = master
diff --git a/UNLICENSE b/UNLICENSE
new file mode 100644
index 0000000..fdddb29
--- /dev/null
+++ b/UNLICENSE
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <https://unlicense.org>
diff --git a/dot_anypaste-plugins/executable_anyclone b/dot_anypaste-plugins/executable_anyclone
new file mode 100644
index 0000000..6fc03d5
--- /dev/null
+++ b/dot_anypaste-plugins/executable_anyclone
@@ -0,0 +1,21 @@
+#!/bin/sh
+case $1 in
+ check_eligibility)
+ true
+ ;;
+ upload)
+ d=$(date +%Y/%m/%d)
+ rclone copyto "$ap_path" "fafnir:shared/anypaste/$d/$ap_human_name"
+ echo >&2
+ echo "Direct: https://minio.toast.cafe/shared/anypaste/$d/$ap_human_name"
+ echo
+ ;;
+ get_info)
+ echo '[name]'
+ echo 'RClone'
+ echo '[description]'
+ echo 'LMAO'
+ echo '[tags]'
+ echo 'private'
+ echo 'direct'
+esac
diff --git a/dot_anypaste-plugins/executable_brpaste b/dot_anypaste-plugins/executable_brpaste
new file mode 100644
index 0000000..7d36ca4
--- /dev/null
+++ b/dot_anypaste-plugins/executable_brpaste
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+: "${brpaste_host:=https://brpaste.xyz}"
+
+case $1 in
+ check_eligibility)
+ [[ $ap_mime == text/* ]]
+ ;;
+ upload)
+ brpaste_id=$(curl -#fF "data=<$ap_path" "$brpaste_host") \
+ || { echo 'ERROR: Upload failed!' >&2 && exit 1; }
+ echo >&2
+ echo "Link: $brpaste_host/$brpaste_id"
+ echo "Direct: $brpaste_host/raw/$brpaste_id"
+ echo
+ ;;
+ get_info)
+ echo '[name]'
+ echo 'BRPaste'
+ echo '[description]'
+ echo 'A pastebin so fast, it burns rubber.'
+ echo '[tags]'
+ echo 'private'
+ echo 'direct'
+ echo
+ echo '[optional_config]'
+ echo 'brpaste_host:Hosted instance to use (default: https://brpaste.xyz)'
+esac
diff --git a/dot_config/beets/config.yaml b/dot_config/beets/config.yaml
new file mode 100644
index 0000000..3c83952
--- /dev/null
+++ b/dot_config/beets/config.yaml
@@ -0,0 +1,11 @@
+directory: ~/Music
+library: ~/.local/share/beets.db
+incremental: yes
+
+plugins: bpd edit fetchart fromfilename info inline lastgenre mbsync replaygain scrub web
+
+bpd:
+ password: musicalthrones
+
+replaygain:
+ backend: gstreamer
diff --git a/dot_config/git/config b/dot_config/git/config
new file mode 100644
index 0000000..9c72614
--- /dev/null
+++ b/dot_config/git/config
@@ -0,0 +1,73 @@
+[alias]
+ aa = add -A
+ ap = add -p
+ bd = branch -D
+ cs = commit --verbose --gpg-sign
+ ci = commit --verbose
+ co = checkout
+ cb = checkout -b
+ cp = commit --patch
+ dc = diff --cached
+ hr = reset --hard HEAD
+ last = log -1 --stat
+ lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %Cblue<%an>%Creset' --abbrev-commit --date=relative --all
+ pf = push --force
+ st = status
+ stat = diff --stat
+[apply]
+ whitespace = warn
+[color]
+ ui = true
+[core]
+ editor = nvim
+ filemode = false
+ trustctime = false
+ whitespace = blank-at-eol,space-before-tab,tab-in-indent,tabwidth=4
+[credential]
+ helper = cache --timeout=3600
+[help]
+ autocorrect = 1
+[merge]
+ tool = vimdiff
+[mergetool]
+ keepbackup = false
+ keeptemporaries = false
+ prompt = false
+[pager]
+ stat = false
+[pull]
+ rebase = true
+[push]
+ default = simple
+[sendemail]
+ from = toast+misc@toast.cafe
+ smtpencryption = tls
+ smtpserver = smtp.soverin.net
+ smtpserverport = 587
+ smtpuser = toast@toast.cafe
+[status]
+ branch = true
+ short = true
+[user]
+ email = toast@toast.cafe
+ name = Chloe Kudryavtsev
+
+[url "git@github.com:5paceToast/"]
+ insteadOf = "st:"
+
+[url "https://github.com/"]
+ insteadOf = "gh:"
+
+[url "git@gitlab.com:SpaceToast/"]
+ insteadOf = "lst:"
+
+[url "https://gitlab.com/"]
+ insteadOf = "gl:"
+
+[filter "lfs"]
+ smudge = git-lfs smudge -- %f
+ process = git-lfs filter-process
+ required = true
+ clean = git-lfs clean -- %f
+
+# vim: ft=gitconfig
diff --git a/dot_config/luarocks/config.lua b/dot_config/luarocks/config.lua
new file mode 100644
index 0000000..3650446
--- /dev/null
+++ b/dot_config/luarocks/config.lua
@@ -0,0 +1,14 @@
+-- LuaRocks configuration
+
+rocks_trees = {
+ { name = "user", root = home .. "/.local/luarocks" };
+ { name = "system", root = "/usr" };
+}
+lua_interpreter = "lua5.3";
+variables = {
+ LUA_DIR = "/usr";
+ LUA_BINDIR = "/usr/bin";
+}
+
+home_tree = home .. "/.local/luarocks"
+homeconfdir = home .. "/.config/luarocks"
diff --git a/dot_config/mpv/mpv.conf b/dot_config/mpv/mpv.conf
new file mode 100644
index 0000000..a931bad
--- /dev/null
+++ b/dot_config/mpv/mpv.conf
@@ -0,0 +1,16 @@
+[default]
+volume=80
+
+hwdec=auto-safe
+
+ao=pulse
+vo=gpu
+gpu-api=vulkan
+video-sync=display-resample
+
+screenshot-format=png
+screenshot-directory=~/Pictures/Screenshots/mpv
+
+[twitch]
+osc=no
+input-conf=~/.config/mpv/twitch-input.conf
diff --git a/dot_config/mpv/script-opts/acompressor.conf b/dot_config/mpv/script-opts/acompressor.conf
new file mode 100644
index 0000000..892c0ba
--- /dev/null
+++ b/dot_config/mpv/script-opts/acompressor.conf
@@ -0,0 +1 @@
+default_enable=yes
diff --git a/dot_config/mpv/scripts/symlink_acompressor.lua b/dot_config/mpv/scripts/symlink_acompressor.lua
new file mode 100644
index 0000000..c3ab129
--- /dev/null
+++ b/dot_config/mpv/scripts/symlink_acompressor.lua
@@ -0,0 +1 @@
+/usr/share/mpv/scripts/acompressor.lua \ No newline at end of file
diff --git a/dot_config/mpv/twitch-input.conf b/dot_config/mpv/twitch-input.conf
new file mode 100644
index 0000000..46aea4c
--- /dev/null
+++ b/dot_config/mpv/twitch-input.conf
@@ -0,0 +1,21 @@
+WHEEL_UP ignore
+WHEEL_DOWN ignore
+RIGHT ignore
+LEFT ignore
+UP ignore
+DOWN ignore
+Shift+RIGHT ignore
+Shift+LEFT ignore
+Shift+UP ignore
+Shift+DOWN ignore
+Ctrl+LEFT ignore
+Ctrl+RIGHT ignore
+Shift+PGUP ignore
+Shift+PGDWN ignore
+Shift+BS ignore
+Shift+Ctrl+BS ignore
+FORWARD ignore
+REWIND ignore
+NEXT ignore
+PREV ignore
+l ignore
diff --git a/dot_config/nvim/.chezmoiignore b/dot_config/nvim/.chezmoiignore
new file mode 100644
index 0000000..8b08707
--- /dev/null
+++ b/dot_config/nvim/.chezmoiignore
@@ -0,0 +1,4 @@
+*
+!init.vim
+!vimrc
+!pack
diff --git a/dot_config/nvim/pack/vim-toastpack b/dot_config/nvim/pack/vim-toastpack
new file mode 160000
+Subproject 98bf18cc6dd8beeeafc0879912c4942038c75f4
diff --git a/dot_config/nvim/symlink_init.vim b/dot_config/nvim/symlink_init.vim
new file mode 100644
index 0000000..c9a3c9c
--- /dev/null
+++ b/dot_config/nvim/symlink_init.vim
@@ -0,0 +1 @@
+vimrc \ No newline at end of file
diff --git a/dot_config/nvim/vimrc b/dot_config/nvim/vimrc
new file mode 100644
index 0000000..7003af6
--- /dev/null
+++ b/dot_config/nvim/vimrc
@@ -0,0 +1,82 @@
+set nocompatible
+
+" annoyances
+set backspace=2 " aka indent,eol,start. vi-compat backspace is annoying
+set clipboard=unnamedplus " Use system clipboard ('+' register)
+set ffs=unix,dos,mac " default to UNIX encodings (\n)
+set hidden " don't delete buffers when you switch through them
+set magic " \. not . for literal dots and so on
+set nobackup " stop bothering me with backups!
+set noerrorbells " stop. bothering. me. with. noises.
+set nofoldenable " don't start with everything folded
+set nolazyredraw " update the screen when it's time to update it
+set noswapfile " no ~ files (TODO: maybe have a swap/undo dir instead)
+set noundofile " no .un files
+let g:is_bash=1 " yes, use bash for highlighting. at least for now.
+
+" major annoyances
+if !has('nvim') " vim fails to into colors unless you claim to be xterm
+ let oldterm = &term
+ if &term =~ "-256color$" " neovim is fine tho
+ set term=xterm-256color
+ endif
+ if oldterm =~? '\(tmux\|screen\)'
+ set t_ut= " tmux/screen need xterm-* but break background cleaning
+ endif " neovim should still be fine
+endif
+if has('nvim')
+ set rtp^=/usr/share/vim/vimfiles/ " let vim piggy back off of vim packages
+endif
+
+" ui
+set background=dark " white text on black, get over it
+set laststatus=2 " always have a status line (2=always)
+set mat=2 " see: showmatch. do it for less long
+set number " line numbers
+set scrolloff=2 " 2 lines around the cursor at all times (remove?)
+set showmatch " quickly show where the matching (, etc is
+syntax on " syntax highlighting is not evil
+set termguicolors " truecolor
+set ttyfast " I swear, this isn't 1998
+set t_Co=256 " you might *think* I don't have colors. I do tho
+set visualbell " you can have the window blink tho
+set wrap " wrap > broken
+if !has('nvim') " plsgofasts (no meaning on neovim)
+ set ttymouse=xterm2
+endif
+" ui-plugins
+let g:airline_powerline_fonts=1 " we have powerline fonts! :D
+let g:airline#extensions#tabline#enabled=1 " buffers=tabs when tabc=1
+
+" interaction
+filetype plugin on " enable ftplugin stuff
+filetype indent on " allow custom indents per ft - e.g go/elixir 2-spaces
+set loadplugins " plugins = good
+set mouse=a " meh, mice can be convenient
+set pastetoggle=<F2> " press F2 to toggle "paste" mode
+set smartindent " this is the less annoying variant
+set spelllang=en " I speaken ze ingles
+set whichwrap+=<,>,h,l " hl and arrows can switch lines
+
+" tabs (maybe move to annoyances later)
+set expandtab " tabs are spaces
+set shiftwidth=4 " indention: 4
+set softtabstop=4 " see tabstop
+set tabstop=4 " tabs count as 4 spaces
+" tab-plugins
+let g:vim_markdown_folding_disabled=1 " folding's on
+
+" mappings
+" F12 to reparse syntax
+noremap <F12> <Esc>:syntax sync fromstart<CR>
+inoremap <F12> <C-o>:syntax sync fromstart<CR>
+" gt to re-align text based on previous pattern
+noremap gt :Tabularize<CR>
+" :Sprunge to upload current buffer to sprunge.us
+command! Sprunge w !curl -F 'sprunge=<-' http://sprunge.us
+
+color pencil
+
+if filereadable(glob("~/.vim/vimrc.local"))
+ source ~/.vim/vimrc.local " overwrite things here
+endif
diff --git a/dot_config/rofi/config b/dot_config/rofi/config
new file mode 100644
index 0000000..b495912
--- /dev/null
+++ b/dot_config/rofi/config
@@ -0,0 +1,9 @@
+rofi.combi-modi: ssh,drun
+rofi.font: Hack 15
+rofi.matching: fuzzy
+rofi.modi: combi,run
+rofi.parse-known-hosts: true
+rofi.sort: true
+rofi.sorting-method: fzf
+rofi.terminal: alacritty
+rofi.theme: /usr/share/rofi/themes/Pop-Dark.rasi
diff --git a/dot_config/streamlink/config.tmpl b/dot_config/streamlink/config.tmpl
new file mode 100644
index 0000000..7f2f028
--- /dev/null
+++ b/dot_config/streamlink/config.tmpl
@@ -0,0 +1,10 @@
+player=mpv
+verbose-player
+
+{{- if eq .chezmoi.hostname "LapToast" }}
+default-stream=720p,720p60,1080p60,best
+{{- else }}
+default-stream=best
+{{- end }}
+
+player-passthrough=hls,http,rtmp
diff --git a/dot_config/tmux/linux-clipboard.tmux b/dot_config/tmux/linux-clipboard.tmux
new file mode 100644
index 0000000..5b2a711
--- /dev/null
+++ b/dot_config/tmux/linux-clipboard.tmux
@@ -0,0 +1,6 @@
+bind -T copy-mode MouseDragEnd1Pane send -X copy-pipe-and-cancel "xsel -ib"
+bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel "xsel -ib"
+
+bind -n M-C-v run "xsel -ob | tmux load-buffer -; tmux paste-buffer"
+
+# vim: ft=tmux
diff --git a/dot_config/tmux/tmux.conf b/dot_config/tmux/tmux.conf
new file mode 100644
index 0000000..4fd021f
--- /dev/null
+++ b/dot_config/tmux/tmux.conf
@@ -0,0 +1,43 @@
+# --- obvious settings ---
+# basics
+set -g default-terminal "tmux-256color" # colors
+set -g mouse on # mouse mode
+set -sg escape-time 10 # fix vim
+set -g xterm-keys on # ctrl-arrows, others...
+
+# 0 is very far away from 1
+set -g base-index 1
+set -g pane-base-index 1
+
+# terminal titles
+set -g set-titles on
+set -g set-titles-string "#T"
+
+# true colors
+set -ga terminal-overrides ",alacritty:RGB"
+set -ga terminal-overrides ",*256col*:RGB"
+set -ga terminal-overrides ",xterm-kitty:RGB"
+
+# --- keybinds ---
+# splitting
+bind | split-window -h
+bind - split-window -v
+unbind '"'
+unbind %
+
+# alt-direction to switch panes
+bind -n M-Left select-pane -L
+bind -n M-Right select-pane -R
+bind -n M-Up select-pane -U
+bind -n M-Down select-pane -D
+
+# convenient copy/paste
+if "uname | grep -q Linux" "source-file ~/.config/tmux/linux-clipboard.tmux" # requires xsel
+
+# convenience
+bind r source-file ~/.config/tmux/tmux.conf
+
+# local conf
+source-file -q ~/.config/tmux/local.tmux
+
+# vim: ft=tmux
diff --git a/dot_local/bin/.keep b/dot_local/bin/.keep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/dot_local/bin/.keep
diff --git a/.gitignore b/dot_local/share/toasty/.gitignore
index 3368c47..3368c47 100644
--- a/.gitignore
+++ b/dot_local/share/toasty/.gitignore
diff --git a/dot_local/share/toasty/.gitmodules b/dot_local/share/toasty/.gitmodules
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/dot_local/share/toasty/.gitmodules
diff --git a/.zshrc b/dot_local/share/toasty/.zshrc
index c8b42f4..c8b42f4 120000
--- a/.zshrc
+++ b/dot_local/share/toasty/.zshrc
diff --git a/LICENSE.md b/dot_local/share/toasty/LICENSE.md
index 2a7b602..2a7b602 100644
--- a/LICENSE.md
+++ b/dot_local/share/toasty/LICENSE.md
diff --git a/README.adoc b/dot_local/share/toasty/README.adoc
index 8ecf7dd..8ecf7dd 100644
--- a/README.adoc
+++ b/dot_local/share/toasty/README.adoc
diff --git a/completions/_autosource b/dot_local/share/toasty/completions/_autosource
index 35dbccd..35dbccd 100644
--- a/completions/_autosource
+++ b/dot_local/share/toasty/completions/_autosource
diff --git a/examples/source/enable-shared-history.zsh b/dot_local/share/toasty/examples/source/enable-shared-history.zsh
index 9b29c96..9b29c96 100644
--- a/examples/source/enable-shared-history.zsh
+++ b/dot_local/share/toasty/examples/source/enable-shared-history.zsh
diff --git a/examples/zshrc.local b/dot_local/share/toasty/examples/zshrc.local
index 6b74342..6b74342 100644
--- a/examples/zshrc.local
+++ b/dot_local/share/toasty/examples/zshrc.local
diff --git a/functions/autosource b/dot_local/share/toasty/functions/autosource
index 12b6bab..12b6bab 100644
--- a/functions/autosource
+++ b/dot_local/share/toasty/functions/autosource
diff --git a/functions/brpaste b/dot_local/share/toasty/functions/brpaste
index b4cf5ef..b4cf5ef 100644
--- a/functions/brpaste
+++ b/dot_local/share/toasty/functions/brpaste
diff --git a/functions/sourceall b/dot_local/share/toasty/functions/sourceall
index b63c58b..b63c58b 100644
--- a/functions/sourceall
+++ b/dot_local/share/toasty/functions/sourceall
diff --git a/functions/sprunge b/dot_local/share/toasty/functions/sprunge
index c76ed76..c76ed76 100644
--- a/functions/sprunge
+++ b/dot_local/share/toasty/functions/sprunge
diff --git a/plugins/sudo b/dot_local/share/toasty/plugins/sudo
index 0ba8bed..0ba8bed 100644
--- a/plugins/sudo
+++ b/dot_local/share/toasty/plugins/sudo
diff --git a/plugins/xterm-title b/dot_local/share/toasty/plugins/xterm-title
index a57ea03..a57ea03 100644
--- a/plugins/xterm-title
+++ b/dot_local/share/toasty/plugins/xterm-title
diff --git a/prompts/async b/dot_local/share/toasty/prompts/async
index d35f128..d35f128 100644
--- a/prompts/async
+++ b/dot_local/share/toasty/prompts/async
diff --git a/prompts/prompt_pure_setup b/dot_local/share/toasty/prompts/prompt_pure_setup
index a313c83..a313c83 100644
--- a/prompts/prompt_pure_setup
+++ b/dot_local/share/toasty/prompts/prompt_pure_setup
diff --git a/prompts/prompt_purer_setup b/dot_local/share/toasty/prompts/prompt_purer_setup
index f800176..f800176 100644
--- a/prompts/prompt_purer_setup
+++ b/dot_local/share/toasty/prompts/prompt_purer_setup
diff --git a/prompts/prompt_shellder_setup b/dot_local/share/toasty/prompts/prompt_shellder_setup
index 671eac4..671eac4 100644
--- a/prompts/prompt_shellder_setup
+++ b/dot_local/share/toasty/prompts/prompt_shellder_setup
diff --git a/prompts/prompt_toasty_setup b/dot_local/share/toasty/prompts/prompt_toasty_setup
index c10c766..c10c766 100644
--- a/prompts/prompt_toasty_setup
+++ b/dot_local/share/toasty/prompts/prompt_toasty_setup
diff --git a/source/aliases.zsh b/dot_local/share/toasty/source/aliases.zsh
index 69b9c24..69b9c24 100644
--- a/source/aliases.zsh
+++ b/dot_local/share/toasty/source/aliases.zsh
diff --git a/source/bindkeys.zsh b/dot_local/share/toasty/source/bindkeys.zsh
index 0c78646..0c78646 100644
--- a/source/bindkeys.zsh
+++ b/dot_local/share/toasty/source/bindkeys.zsh
diff --git a/source/completions.zsh b/dot_local/share/toasty/source/completions.zsh
index 8c3f0ae..8c3f0ae 100644
--- a/source/completions.zsh
+++ b/dot_local/share/toasty/source/completions.zsh
diff --git a/source/env.zsh b/dot_local/share/toasty/source/env.zsh
index 0da30e0..0da30e0 100644
--- a/source/env.zsh
+++ b/dot_local/share/toasty/source/env.zsh
diff --git a/source/options.zsh b/dot_local/share/toasty/source/options.zsh
index 0f6d0f6..0f6d0f6 100644
--- a/source/options.zsh
+++ b/dot_local/share/toasty/source/options.zsh
diff --git a/third-party-licenses/LICENSE.OMZ.md b/dot_local/share/toasty/third-party-licenses/LICENSE.OMZ.md
index a8e750c..a8e750c 100644
--- a/third-party-licenses/LICENSE.OMZ.md
+++ b/dot_local/share/toasty/third-party-licenses/LICENSE.OMZ.md
diff --git a/third-party-licenses/LICENSE.pure.txt b/dot_local/share/toasty/third-party-licenses/LICENSE.pure.txt
index 654d0bf..654d0bf 100644
--- a/third-party-licenses/LICENSE.pure.txt
+++ b/dot_local/share/toasty/third-party-licenses/LICENSE.pure.txt
diff --git a/third-party-licenses/LICENSE.purer.txt b/dot_local/share/toasty/third-party-licenses/LICENSE.purer.txt
index 654d0bf..654d0bf 100644
--- a/third-party-licenses/LICENSE.purer.txt
+++ b/dot_local/share/toasty/third-party-licenses/LICENSE.purer.txt
diff --git a/third-party-licenses/LICENSE.shellder.txt b/dot_local/share/toasty/third-party-licenses/LICENSE.shellder.txt
index 9a97054..9a97054 100644
--- a/third-party-licenses/LICENSE.shellder.txt
+++ b/dot_local/share/toasty/third-party-licenses/LICENSE.shellder.txt
diff --git a/zshenv b/dot_local/share/toasty/zshenv
index 6bfcdf7..6bfcdf7 100644
--- a/zshenv
+++ b/dot_local/share/toasty/zshenv
diff --git a/zshrc b/dot_local/share/toasty/zshrc
index 33fcbb6..33fcbb6 100644
--- a/zshrc
+++ b/dot_local/share/toasty/zshrc
diff --git a/dot_zsh/functions/twitch b/dot_zsh/functions/twitch
new file mode 100644
index 0000000..8b852f4
--- /dev/null
+++ b/dot_zsh/functions/twitch
@@ -0,0 +1,6 @@
+#!/bin/zsh
+[[ $# -gt 0 ]] || return
+(( $+commands[streamlink] )) || return
+zstyle -s :function:twitch ${1:l} stream || stream=${1:l}
+shift
+streamlink twitch.tv/$stream "$@"
diff --git a/dot_zsh/plugins/exa b/dot_zsh/plugins/exa
new file mode 100644
index 0000000..afdee79
--- /dev/null
+++ b/dot_zsh/plugins/exa
@@ -0,0 +1,11 @@
+#!/bin/zsh
+(( $+commands[exa] )) || return
+
+# removes default ls-likes, replaces them with exa variants
+unalias ls ll l la
+
+# old ones
+alias ls=exa ll='ls -l' l=ll la='l -a'
+# extras
+alias lr='l -T'
+alias lp='lr --git-ignore'
diff --git a/dot_zsh/plugins/fuzzy b/dot_zsh/plugins/fuzzy
new file mode 100644
index 0000000..ed419c1
--- /dev/null
+++ b/dot_zsh/plugins/fuzzy
@@ -0,0 +1,27 @@
+#!/bin/zsh
+(( $+commands[fd] )) || return # find(1) sucks, not worth without fd
+
+# if it's not set yet, set it
+[[ -z $fuzzy_command ]] && (( $+commands[fzf] )) && fuzzy_command=fzf
+[[ -z $fuzzy_command ]] && (( $+commands[sk] )) && fuzzy_command=sk
+
+local FUZZY_DEFAULT='fd -t f'
+local FUZZY_ALT_C='fd -t d'
+local FUZZY_CTRL_T="$FUZZY_DEFAULT"
+
+case $fuzzy_command in
+ fzf)
+ export FZF_DEFAULT_COMMAND="$FUZZY_DEFAULT"
+ export FZF_ALT_C_COMMAND="$FUZZY_ALT_C"
+ export FZF_CTRL_T_COMMAND="$FUZZY_CTRL_T"
+ . /usr/share/fzf/key-bindings.zsh
+ . /usr/share/fzf/completion.zsh
+ ;;
+ sk)
+ export SKIM_DEFAULT_COMMAND="$FUZZY_DEFAULT"
+ export SKIM_ALT_C_COMMAND="$FUZZY_ALT_C"
+ export SKIM_CTRL_T_COMMAND="$FUZZY_CTRL_T"
+ . /usr/share/skim/key-bindings.zsh
+ . /usr/share/skim/completion.zsh
+ ;;
+esac
diff --git a/dot_zsh/source/path.zsh b/dot_zsh/source/path.zsh
new file mode 100644
index 0000000..42b8c9d
--- /dev/null
+++ b/dot_zsh/source/path.zsh
@@ -0,0 +1,25 @@
+export CARGO_HOME=~/.local/cargo
+export DENO_DIR=~/.local/deno
+export GOPATH=~/.local/go
+export LUAROCKS_CONFIG=~/.config/luarocks/config.lua
+
+path+=(
+ ~/bin
+ ~/Applications
+ ~/.local/cargo/bin
+ ~/.local/go/bin
+ ~/.local/yarn/bin
+ ~/.gem/ruby/*/bin(N)
+)
+
+if (( $+commands[luarocks] )); then
+ PATH="$PATH:$(luarocks path --lr-bin)" # luarocks puts :s in the output
+ eval $(luarocks path --no-bin)
+fi
+if (( $+commands[opam] )); then
+ eval $(opam env)
+fi
+if (( $+commands[yarn] )) && [[ ! -f ~/.yarnrc ]]; then
+ yarn config set global-folder ~/.local/yarn/global
+ yarn config set prefix ~/.local/yarn
+fi
diff --git a/run_submodules.sh b/run_submodules.sh
new file mode 100644
index 0000000..53f9fcf
--- /dev/null
+++ b/run_submodules.sh
@@ -0,0 +1,2 @@
+#!/bin/sh
+chezmoi source -- submodule update --init --remote --recursive
diff --git a/symlink_bin b/symlink_bin
new file mode 100644
index 0000000..aab3518
--- /dev/null
+++ b/symlink_bin
@@ -0,0 +1 @@
+.local/bin \ No newline at end of file
diff --git a/symlink_dot_tmux.conf b/symlink_dot_tmux.conf
new file mode 100644
index 0000000..9e5901d
--- /dev/null
+++ b/symlink_dot_tmux.conf
@@ -0,0 +1 @@
+.config/tmux/tmux.conf \ No newline at end of file
diff --git a/symlink_dot_vim b/symlink_dot_vim
new file mode 100644
index 0000000..35dbcb1
--- /dev/null
+++ b/symlink_dot_vim
@@ -0,0 +1 @@
+.config/nvim \ No newline at end of file
diff --git a/symlink_dot_zshrc b/symlink_dot_zshrc
new file mode 100644
index 0000000..12a19bc
--- /dev/null
+++ b/symlink_dot_zshrc
@@ -0,0 +1 @@
+.local/share/toasty/zshrc \ No newline at end of file