summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitconfig19
-rw-r--r--.global_ignore1
-rw-r--r--.muttrc25
-rw-r--r--.tmux.conf6
-rw-r--r--.vimrc13
-rw-r--r--.wgetpaste.conf1
-rw-r--r--.zshrc56
-rw-r--r--Makefile23
-rw-r--r--gdb/.config/gdb/gdbearlyinit1
-rw-r--r--gdb/.config/gdb/gdbinit4
-rw-r--r--git/.config/git/config54
-rw-r--r--git/.config/git/ignore2
-rw-r--r--git/projects/gentoo/.gitconfig12
-rw-r--r--kitty/.config/kitty/adwaita_darker.conf51
-rw-r--r--kitty/.config/kitty/kitty.conf17
-rw-r--r--mpv/.config/mpv/mpv.conf (renamed from .mpv/config)0
-rw-r--r--msmtp/.config/msmtp/config (renamed from .msmtprc)0
-rw-r--r--mutt/.config/mutt/aliases3
-rw-r--r--mutt/.config/mutt/colors.muttrc100
-rw-r--r--mutt/.config/mutt/mailcap84
-rw-r--r--mutt/.config/mutt/muttrc183
-rw-r--r--nvim/.config/nvim/after/ftplugin/lua.lua3
-rw-r--r--nvim/.config/nvim/init.lua42
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins.lua66
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/ccls.lua24
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/completion.lua65
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/git.lua6
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/mason-lsp.lua65
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/telescope.lua137
-rw-r--r--nvim/.config/nvim/lua/lazy-plugins/treesitter.lua47
-rw-r--r--nvim/.config/nvim/lua/options.lua59
-rw-r--r--parallel/.parallel/will-cite0
-rw-r--r--screen/.screenrc1
-rw-r--r--tmux/.config/tmux/tmux.conf24
-rw-r--r--wgetpaste/.wgetpaste.conf1
-rwxr-xr-xzsh/.zshrc43
36 files changed, 1117 insertions, 121 deletions
diff --git a/.gitconfig b/.gitconfig
deleted file mode 100644
index f686288..0000000
--- a/.gitconfig
+++ /dev/null
@@ -1,19 +0,0 @@
-[user]
- email = mattst88@gmail.com
- name = Matt Turner
- signingkey = 0xED2ED19F85B3682C
-[color]
- ui = auto
-[rebase]
- autosquash = true
-[core]
- excludesfile = /home/mattst88/.global_ignore
-[diff]
- renames = true
-[push]
- default = simple
-[alias]
- fixes = show -s --pretty='format:Fixes: %h (\"%s\")'
- co = checkout
- shwo = show
- grpe = grep
diff --git a/.global_ignore b/.global_ignore
deleted file mode 100644
index 6e92f57..0000000
--- a/.global_ignore
+++ /dev/null
@@ -1 +0,0 @@
-tags
diff --git a/.muttrc b/.muttrc
deleted file mode 100644
index 5c25aa6..0000000
--- a/.muttrc
+++ /dev/null
@@ -1,25 +0,0 @@
-set realname="Matt Turner"
-set from="mattst88@gmail.com"
-
-### PGP
-set pgp_sign_as=0x974CA72A
-set pgp_auto_decode = yes
-set pgp_use_gpg_agent = yes
-set pgp_autosign=yes
-set pgp_replyencrypt=yes
-
-set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
-set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
-set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
-set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
-set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
-set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x974CA72A -- -r %r -- %f"
-set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x974CA72A -- -r %r -- %f"
-set pgp_import_command="gpg --no-verbose --import -v %f"
-set pgp_export_command="gpg --no-verbose --export --armor %r"
-set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
-set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
-set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
-
-set pgp_timeout=1800
-set pgp_good_sign="^gpg: Good signature from"
diff --git a/.tmux.conf b/.tmux.conf
deleted file mode 100644
index 0bd7996..0000000
--- a/.tmux.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-#set -s exit-empty off
-set -g prefix C-a
-unbind-key C-b
-bind-key C-a send-prefix
-
-set-option -g mouse
diff --git a/.vimrc b/.vimrc
deleted file mode 100644
index 369f6e1..0000000
--- a/.vimrc
+++ /dev/null
@@ -1,13 +0,0 @@
-autocmd BufNewFile,BufRead *.frag,*.vert,*.fp,*.vp,*.glsl,*.shader_test set syntax=glsl
-
-autocmd BufNewFile,BufRead /home/mattst88/projects/mesa/* set expandtab tabstop=8 softtabstop=3 shiftwidth=3
-autocmd BufNewFile,BufRead /home/mattst88/projects/mesa/src/glsl/glcpp/* set noexpandtab tabstop=8 softtabstop=8 shiftwidth=8
-autocmd BufNewFile,BufRead /home/mattst88/projects/mesa/src/glsl/glsl_parser.yy set noexpandtab tabstop=8 shiftwidth=8
-autocmd BufNewFile,BufRead /home/mattst88/projects/piglit/* set noexpandtab tabstop=8 softtabstop=8 shiftwidth=8
-autocmd BufNewFile,BufRead Makefile* set noexpandtab tabstop=8 softtabstop=8 shiftwidth=8
-autocmd BufNewFile,BufRead *.mk set noexpandtab tabstop=8 softtabstop=8 shiftwidth=8
-
-autocmd BufNewFile,BufRead *.py set tabstop=4 softtabstop=4 shiftwidth=4 textwidth=80 smarttab expandtab
-
-set bg=dark
-set modeline
diff --git a/.wgetpaste.conf b/.wgetpaste.conf
deleted file mode 100644
index 6255cc8..0000000
--- a/.wgetpaste.conf
+++ /dev/null
@@ -1 +0,0 @@
-DEFAULT_SERVICE=dpaste
diff --git a/.zshrc b/.zshrc
deleted file mode 100644
index 8e91869..0000000
--- a/.zshrc
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/zsh
-
-autoload -U compinit
-compinit
-
-zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
-zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'
-
-unsetopt correctall
-unsetopt equals
-
-autoload -U promptinit
-promptinit
-
-prompt gentoo
-
-export HISTSIZE=5000
-export HISTFILE="$HOME/.history"
-export SAVEHIST=$HISTSIZE
-setopt hist_ignore_all_dups
-setopt hist_ignore_space
-
-# Breaks "eix ^asdf"
-# setopt extendedglob
-
-bindkey "^[[H" beginning-of-line
-bindkey "^[[1~" beginning-of-line
-bindkey "^[OH" beginning-of-line
-bindkey "^[[F" end-of-line
-bindkey "^[[4~" end-of-line
-bindkey "^[OF" end-of-line
-bindkey ' ' magic-space # also do history expansion on space
-bindkey '^R' history-incremental-search-backward
-
-bindkey "^[[1;5C" forward-word
-bindkey "^[[1;5D" backward-word
-
-bindkey '^[[Z' reverse-menu-complete
-
-# Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~
-bindkey '^?' backward-delete-char
-bindkey "^[[3~" delete-char
-bindkey "^[3;5~" delete-char
-bindkey "\e[3~" delete-char
-
-export PATH=:$PATH:~/bin
-
-if [ -f "${HOME}/.gpg-agent-info" ]; then
- . "${HOME}/.gpg-agent-info"
- export GPG_AGENT_INFO
- export SSH_AUTH_SOCK
-fi
-export GPG_TTY=$(tty)
-
-[ -e /etc/profile.d/autojump.sh ] && . /etc/profile.d/autojump.sh
-[ -e /etc/profile.d/vte-2.91.sh ] && . /etc/profile.d/vte-2.91.sh
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..86ac73f
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,23 @@
+stow_dirs = $(wildcard */)
+.PHONY : stow
+stow :
+ stow --no-folding --target $(HOME) --verbose $(stow_dirs)
+
+.PHONY : stow-verbose
+# verbosity goes from 0 to 4
+VERBOSITY=1
+stow-verbose :
+ stow --verbose $(VERBOSITY) --no-folding --target $(HOME) --verbose $(stow_dirs)
+
+.PHONY : dry-run
+dry-run :
+ stow --no --no-folding --target $(HOME) --verbose $(stow_dirs)
+
+.PHONY : restow
+restow :
+ stow --no-folding --target $(HOME) --verbose --restow $(stow_dirs)
+
+# Do this *before* moving to another directory.
+.PHONY : delete
+delete :
+ stow --no-folding --target $(HOME) --verbose --delete $(stow_dirs)
diff --git a/gdb/.config/gdb/gdbearlyinit b/gdb/.config/gdb/gdbearlyinit
new file mode 100644
index 0000000..b73aa96
--- /dev/null
+++ b/gdb/.config/gdb/gdbearlyinit
@@ -0,0 +1 @@
+set startup-quietly on
diff --git a/gdb/.config/gdb/gdbinit b/gdb/.config/gdb/gdbinit
new file mode 100644
index 0000000..71fb88e
--- /dev/null
+++ b/gdb/.config/gdb/gdbinit
@@ -0,0 +1,4 @@
+set history save on
+set history remove-duplicates unlimited
+set history filename ~/.gdb_history
+set disassembly-flavor intel
diff --git a/git/.config/git/config b/git/.config/git/config
new file mode 100644
index 0000000..9656a24
--- /dev/null
+++ b/git/.config/git/config
@@ -0,0 +1,54 @@
+[user]
+ email = mattst88@gmail.com
+ name = Matt Turner
+ signingkey = 0xACEB29740C9A4E97!
+[includeIf "gitdir:~/projects/gentoo/"]
+ path = ~/projects/gentoo/.gitconfig
+[color]
+ ui = auto
+[rebase]
+ autosquash = true
+ autostash = true
+ updaterefs = true
+[core]
+ autocrlf = false
+ filemode = false
+ pager = less -+F
+[diff]
+ renames = true
+ srcprefix = ./
+ dstprefix = ./
+ algorithm = histogram
+ colormoved = true
+[push]
+ default = simple
+ autosetupremote = true
+[pull]
+ rebase = true
+[alias]
+ fixes = show -s --pretty='format:Fixes: %h (\"%s\")'
+ co = checkout
+ cp = cherry-pick
+ br = branch
+ shwo = show
+ grpe = grep
+ lgo = log
+ last-commit-to = log -n 1 --pretty=format:%H
+ git = !exec git
+ gti = !exec git
+[init]
+ defaultBranch = main
+[fixup]
+ menu = fzf --height '60%' \
+ --bind 'tab:toggle-preview' \
+ --bind 'space:preview-page-down' \
+ --preview 'git show --color {+1}' \
+ --preview-window=up:80% \
+ --preview-window cycle \
+ --prompt 'Select commit: '
+[commit]
+ verbose = true
+[branch]
+ sort = -committerdate
+[tag]
+ sort = version:refname
diff --git a/git/.config/git/ignore b/git/.config/git/ignore
new file mode 100644
index 0000000..25b4c59
--- /dev/null
+++ b/git/.config/git/ignore
@@ -0,0 +1,2 @@
+.ccls-cache
+compile_commands.json
diff --git a/git/projects/gentoo/.gitconfig b/git/projects/gentoo/.gitconfig
new file mode 100644
index 0000000..79cffde
--- /dev/null
+++ b/git/projects/gentoo/.gitconfig
@@ -0,0 +1,12 @@
+[user]
+ email = mattst88@gentoo.org
+[pull]
+ ff = only
+ rebase = merges
+[push]
+ default = simple
+ gpgsign = if-asked
+[commit]
+ gpgsign = 1
+[sendemail]
+ to = gentoo-dev@lists.gentoo.org
diff --git a/kitty/.config/kitty/adwaita_darker.conf b/kitty/.config/kitty/adwaita_darker.conf
new file mode 100644
index 0000000..6cd386b
--- /dev/null
+++ b/kitty/.config/kitty/adwaita_darker.conf
@@ -0,0 +1,51 @@
+# vim:ft=kitty
+
+## name: Adwaita darker
+## license: MIT
+## author: Emil Löfquist (https://github.com/ewal)
+## upstream: https://github.com/ewal/kitty-adwaita/blob/main/adwaita_darker.conf
+## blurb: Adwaita darker - based on https://github.com/Mofiqul/adwaita.nvim
+
+background #000000
+foreground #deddda
+
+selection_background #1c1c1c
+selection_foreground #c0bfbc
+
+url_color #1a5fb4
+
+wayland_titlebar_color system
+macos_titlebar_color system
+
+cursor #deddda
+cursor_text_color #000000
+
+active_border_color #1e1e1e
+inactive_border_color #282828
+bell_border_color #ed333b
+visual_bell_color none
+
+active_tab_background #101010
+active_tab_foreground #fcfcfc
+inactive_tab_background #1c1c1c
+inactive_tab_foreground #b0afac
+tab_bar_background none
+tab_bar_margin_color none
+
+color0 #000000
+color1 #ed333b
+color2 #57e389
+color3 #ff7800
+color4 #62a0ea
+color5 #9141ac
+color6 #5bc8af
+color7 #deddda
+
+color8 #9a9996
+color9 #f66151
+color10 #8ff0a4
+color11 #ffa348
+color12 #99c1f1
+color13 #dc8add
+color14 #93ddc2
+color15 #f6f5f4
diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf
new file mode 100644
index 0000000..5159e11
--- /dev/null
+++ b/kitty/.config/kitty/kitty.conf
@@ -0,0 +1,17 @@
+enable_audio_bell no
+
+# Make switching/moving tabs work like gnome-terminal
+map ctrl+page_down next_tab
+map ctrl+page_up previous_tab
+map shift+ctrl+page_down move_tab_forward
+map shift+ctrl+page_up move_tab_backward
+
+# Map CTRL+Left click to open a URL like in gnome-terminal
+mouse_map ctrl+left click grabbed,ungrabbed mouse_click_url
+
+# New tab and windows but preserve CWD
+map kitty_mod+t new_tab_with_cwd
+map kitty_mod+enter new_window_with_cwd
+map kitty_mod+n new_os_window_with_cwd
+
+include adwaita_darker.conf
diff --git a/.mpv/config b/mpv/.config/mpv/mpv.conf
index 1e00302..1e00302 100644
--- a/.mpv/config
+++ b/mpv/.config/mpv/mpv.conf
diff --git a/.msmtprc b/msmtp/.config/msmtp/config
index 7b050b3..7b050b3 100644
--- a/.msmtprc
+++ b/msmtp/.config/msmtp/config
diff --git a/mutt/.config/mutt/aliases b/mutt/.config/mutt/aliases
new file mode 100644
index 0000000..6074ce0
--- /dev/null
+++ b/mutt/.config/mutt/aliases
@@ -0,0 +1,3 @@
+alias gentoo-dev gentoo-dev@lists.gentoo.org
+alias gentoo-dev-announce gentoo-dev-announce@lists.gentoo.org
+alias gentoo-project gentoo-project@lists.gentoo.org
diff --git a/mutt/.config/mutt/colors.muttrc b/mutt/.config/mutt/colors.muttrc
new file mode 100644
index 0000000..c7e5679
--- /dev/null
+++ b/mutt/.config/mutt/colors.muttrc
@@ -0,0 +1,100 @@
+# vim: filetype=muttrc
+
+# basic colors ---------------------------------------------------------
+
+color normal white default
+color error brightred default
+#color tilde color235 default
+#color message brightblack default
+#color markers red color254
+#color attachment color254 default
+color search brightwhite default
+color status brightwhite blue
+color indicator black brightgreen
+color tree brightblue default
+
+# basic monocolor screen
+mono bold bold
+mono underline underline
+mono indicator reverse
+mono error bold
+
+# index ----------------------------------------------------------------
+
+##color index red default "~D(!~p|~p)" # deleted
+##color index color235 default ~F # flagged
+##color index color166 default ~= # duplicate messages
+##color index color240 default "~A!~N!~T!~p!~Q!~F!~D!~P" # the rest
+##color index J_base default "~A~N!~T!~p!~Q!~F!~D" # the rest, new
+#color index red default "~A" # all messages
+#color index color166 default "~E" # expired messages
+color index white default "~N" # new messages
+#color index white default "~O" # old messages
+#color index color61 default "~Q" # messages that have been replied to
+color index default default "~R" # read messages
+color index white default "~U" # unread messages
+#color index white default "~U~$" # unread, unreferenced messages
+#color index brightblack default "~v" # messages part of a collapsed thread
+#color index brightblack default "~P" # messages from me
+#color index color37 default "~p!~F" # messages to me
+#color index color37 default "~N~p!~F" # new messages to me
+#color index color37 default "~U~p!~F" # unread messages to me
+#color index color240 default "~R~p!~F" # messages to me
+#color index red default "~F" # flagged messages
+#color index red default "~F~p" # flagged messages to me
+#color index red default "~N~F" # new flagged messages
+#color index red default "~N~F~p" # new flagged messages to me
+#color index red default "~U~F~p" # new flagged messages to me
+color index brightblack red "~D" # deleted messages
+color index default default "~v~(!~N)" # collapsed thread with no unread
+color index brightwhite default "~v~(~N)" # collapsed thread with some unread
+## statusbg used to indicated flagged when foreground color shows other status
+## for collapsed thread
+#color index red color235 "~v~(~F)!~N" # collapsed thread with flagged, no unread
+#color index color136 color235 "~v~(~F~N)" # collapsed thread with some unread & flagged
+#color index color64 color235 "~N~v~(~F~N)" # collapsed thread with unread parent & flagged
+#color index color64 color235 "~N~v~(~F)" # collapsed thread with unread parent, no unread inside, but some flagged
+#color index color37 color235 "~v~(~p)" # collapsed thread with unread parent, no unread inside, some to me directly
+color index brightblack red "~v~(~D)" # thread with deleted (doesn't differentiate between all or partial)
+##color index color136 default "~(~N)" # messages in threads with some unread
+##color index color64 default "~S" # superseded messages
+##color index red default "~T" # tagged messages
+##color index color166 red "~=" # duplicated messages
+#
+# message headers ------------------------------------------------------
+
+color header brightwhite default "^(From|Subject):"
+
+# body -----------------------------------------------------------------
+
+color quoted default default
+#color quoted1 color37 default
+#color quoted2 color136 default
+#color quoted3 red default
+#color quoted4 color166 default
+#
+#color signature color240 default
+#color bold color235 default
+#color underline color235 default
+#color normal color244 default
+
+## PGP
+
+color body brightblack default "^gpg: "
+color body brightgreen default "^gpg: Good signature .*"
+color body brightwhite red "^gpg: BAD signature from.*"
+mono body bold "^gpg: Good signature"
+mono body bold "^gpg: BAD signature from.*"
+
+## Patches
+#color body green default "^\+.*"
+#color body red default "^-.*"
+#color body yellow default "^@@@.*"
+color body brightwhite default "^>?diff \-.*"
+color body brightwhite default "^>?index [a-f0-9].*"
+color body brightwhite default "^>?\-\-\- .*"
+color body brightwhite default "^>?[\+]{3} .*"
+color body green default "^>?[\+][^\+]+.*"
+color body green default "^>?[\+]$"
+color body red default "^>?\-[^\-]+.*"
+color body cyan default "^>?@@ .*"
diff --git a/mutt/.config/mutt/mailcap b/mutt/.config/mutt/mailcap
new file mode 100644
index 0000000..637f214
--- /dev/null
+++ b/mutt/.config/mutt/mailcap
@@ -0,0 +1,84 @@
+text/calendar; vcalendar %s; copiousoutput;
+
+# Plain text
+text/plain; vim %s
+
+#text/html; w3m -I %{charset} -dump %s; nametemplate=%s.html; copiousoutput
+text/html; lynx -dump -width=78 %s | sed 's/^ //'; copiousoutput; needsterminal; nametemplate=%s.html
+
+image/jpg; eog %s
+image/jpeg; eog %s
+image/pjpeg; eog %s
+image/png; eog %s
+image/gif; eog %s
+
+application/pdf; evince %s
+
+application/pgp-encrypted; gpg --decrypt; copiousoutput
+
+# LibreOffice stuff
+application/vnd.oasis.opendocument.database; libreoffice --nologo --base '%s'; edit=libreoffice --nologo --base '%s'; test=test -n "$DISPLAY"; description="OpenDocument Database"; nametemplate=%s.odb
+application/vnd.oasis.opendocument.chart; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Chart"; nametemplate=%s.odc
+application/vnd.oasis.opendocument.spreadsheet; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet"; nametemplate=%s.ods
+application/vnd.oasis.opendocument.spreadsheet-template; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="OpenDocument Spreadsheet Template"; nametemplate=%s.ots
+application/vnd.oasis.opendocument.graphics; libreoffice --nologo --draw '%s'; edit=libreoffice --nologo --draw '%s'; test=test -n "$DISPLAY"; description="OpenDocument Drawing"; nametemplate=%s.odg
+application/vnd.oasis.opendocument.graphics-template; libreoffice --nologo --draw '%s'; edit=libreoffice --nologo --draw '%s'; test=test -n "$DISPLAY"; description="OpenDocument Drawing Template"; nametemplate=%s.otg
+application/vnd.oasis.opendocument.presentation; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="OpenDocument Presentation"; nametemplate=%s.odp
+application/vnd.oasis.opendocument.presentation-template; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="OpenDocument Presentation Template"; nametemplate=%s.otp
+application/vnd.oasis.opendocument.formula; libreoffice --nologo --math '%s'; edit=libreoffice --nologo --math '%s'; test=test -n "$DISPLAY"; description="OpenDocument Formula"; nametemplate=%s.odf
+application/vnd.oasis.opendocument.text; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Text Document"; nametemplate=%s.odt
+application/vnd.oasis.opendocument.text-master; libreoffice --nologo -global '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Master Document"; nametemplate=%s.odm
+application/vnd.oasis.opendocument.text-template; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="OpenDocument Text Document Template"; nametemplate=%s.ott
+application/vnd.oasis.opendocument.text-web; libreoffice --nologo -web '%s'; edit=libreoffice --nologo -web '%s'; test=test -n "$DISPLAY"; description="OpenDocument HTML Document Template"; nametemplate=%s.oth
+application/vnd.sun.xml.base; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; description="OpenOffice.org Database"; nametemplate=%s.sdb
+application/vnd.sun.xml.calc; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet"; nametemplate=%s.sxc
+application/vnd.sun.xml.calc.template; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Spreadsheet Template"; nametemplate=%s.stc
+application/vnd.sun.xml.draw; libreoffice --nologo --draw '%s'; edit=libreoffice --nologo --draw '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing"; nametemplate=%s.sxd
+application/vnd.sun.xml.draw.template; libreoffice --nologo --draw '%s'; edit=libreoffice --nologo --draw '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Drawing Template"; nametemplate=%s.std
+application/vnd.stardivision.calc; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="StarCalc 5.0"; nametemplate=%s.sdc
+application/vnd.stardivision.chart; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="StarChart 5.0"; nametemplate=%s.sds
+application/vnd.stardivision.draw; libreoffice --nologo --draw '%s'; edit=libreoffice --nologo --draw '%s'; test=test -n "$DISPLAY"; description="StarDraw 5.0"; nametemplate=%s.sda
+application/vnd.stardivision.impress; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="StarImpress 5.0"; nametemplate=%s.sdd
+application/vnd.stardivision.math; libreoffice --nologo --math '%s'; edit=libreoffice --nologo --math '%s'; test=test -n "$DISPLAY"; description="StarMath 5.0"; nametemplate=%s.sdf
+application/vnd.stardivision.writer-global; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="StarWriter 5.0 Master Document"; nametemplate=%s.sgl
+application/vnd.stardivision.writer; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="StarWriter 5.0"; nametemplate=%s.sdw
+application/vnd.sun.xml.impress; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation"; nametemplate=%s.sxi
+application/vnd.sun.xml.impress.template; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Presentation Template"; nametemplate=%s.sti
+application/vnd.sun.xml.math; libreoffice --nologo --math '%s'; edit=libreoffice --nologo --math '%s'; test=test -n "$DISPLAY"; description="OpenOffice.org Formula"; nametemplate=%s.sxm
+application/vnd.sun.xml.writer; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; description="OpenOffice.org Text Document"; nametemplate=%s.sxw
+application/vnd.sun.xml.writer.global; libreoffice --nologo -global '%s'; edit=libreoffice --nologo --writer '%s'; description="OpenOffice.org Master Document"; nametemplate=%s.sxg
+application/vnd.sun.xml.writer.template; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; description="OpenOffice.org Text Document Template"; nametemplate=%s.stw
+text/csv; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv
+text/spreadsheet; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Spreadsheet Interchange Document"; nametemplate=%s.slk
+application/x-quattropro; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Quattro Pro 6 for Windows Spreadsheet"; nametemplate=%s.wb2
+application/x-dbf; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf
+application/vnd.ms-excel.sheet.macroEnabled.12; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet with Macros Enabled"; nametemplate=%s.xlsm
+application/vnd.ms-excel.template.macroEnabled.12; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template with Macros Enabled"; nametemplate=%s.xltm
+application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet"; nametemplate=%s.xlsx
+application/vnd.openxmlformats-officedocument.spreadsheetml.template; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Office Open XML Spreadsheet Template"; nametemplate=%s.xltx
+application/vnd.lotus-1-2-3; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Lotus 1-2-3 spreadsheet"; nametemplate=%s.123
+application/vnd.ms-excel; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls
+application/msexcel; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="Microsoft Excel Document"; nametemplate=%s.xls
+application/x-dbase; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="xBase Document"; nametemplate=%s.dbf
+text/x-csv; libreoffice --nologo --calc '%s'; edit=libreoffice --nologo --calc '%s'; test=test -n "$DISPLAY"; description="CSV Document"; nametemplate=%s.csv
+application/vnd.ms-powerpoint.presentation.macroEnabled.12; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation with Macros Enabled"; nametemplate=%s.pptm
+application/vnd.ms-powerpoint.slideshow.macroEnabled.12; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show with Macros Enabled"; nametemplate=%s.ppsm
+application/vnd.ms-powerpoint.template.macroEnabled.12; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template with Macros Enabled"; nametemplate=%s.potm
+application/vnd.openxmlformats-officedocument.presentationml.presentation; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation"; nametemplate=%s.pptx
+application/vnd.openxmlformats-officedocument.presentationml.slideshow; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Slide Show"; nametemplate=%s.ppsx
+application/vnd.openxmlformats-officedocument.presentationml.template; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Office Open XML Presentation Template"; nametemplate=%s.potx
+application/vnd.ms-powerpoint; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt
+application/mspowerpoint; libreoffice --nologo --impress '%s'; edit=libreoffice --nologo --impress '%s'; test=test -n "$DISPLAY"; description="Microsoft PowerPoint Document"; nametemplate=%s.ppt
+text/mathml; libreoffice --nologo --math '%s'; edit=libreoffice --nologo --math '%s'; test=test -n "$DISPLAY"; description="MathML Formula"; nametemplate=%s.mml
+application/rtf; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf
+#application/x-extension-txt; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Plain Text Document"; nametemplate=%s.txt
+application/x-t602; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="T602 Document"; nametemplate=%s.602
+application/vnd.wordperfect; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp
+application/vnd.ms-word.document.macroEnabled.12; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document with Macros Enabled"; nametemplate=%s.docm
+application/vnd.ms-word.template.macroEnabled.12; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document Template with Macros Enabled"; nametemplate=%s.dotm
+application/vnd.openxmlformats-officedocument.wordprocessingml.document; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document"; nametemplate=%s.docx
+application/vnd.openxmlformats-officedocument.wordprocessingml.template; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Office Open XML Document Template"; nametemplate=%s.dotx
+application/vnd.ms-works; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Microsoft Works Document"; nametemplate=%s.wps
+application/msword; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Microsoft Word Document"; nametemplate=%s.doc
+application/wordperfect; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="WordPerfect Document"; nametemplate=%s.wp
+text/rtf; libreoffice --nologo --writer '%s'; edit=libreoffice --nologo --writer '%s'; test=test -n "$DISPLAY"; description="Rich Text Format"; nametemplate=%s.rtf
diff --git a/mutt/.config/mutt/muttrc b/mutt/.config/mutt/muttrc
new file mode 100644
index 0000000..fbbda7d
--- /dev/null
+++ b/mutt/.config/mutt/muttrc
@@ -0,0 +1,183 @@
+# vim: ft=muttrc
+
+set realname="Matt Turner"
+set from="mattst88@gmail.com"
+
+macro generic "<esc>1" ":set from=mattst88@gmail.com"
+macro generic "<esc>2" ":set from=mattst88@gentoo.org"
+
+alternative_order text/plain text/enriched text/html
+auto_view text/x-vcard text/html text/enriched
+
+set mbox_type = Maildir
+set folder = "~/.mail"
+#set mbox = "+intel/Inbox"
+#set record = "+intel/Inbox"
+set postponed = "+mattst88@gmail.com/Drafts"
+set spoolfile = "+mattst88@gmail.com/INBOX"
+set trash = "+archive-mattst88@gmail.com/Trash"
+
+named-mailboxes "Inbox" =mattst88@gmail.com/INBOX
+named-mailboxes "Drafts" =mattst88@gmail.com/Drafts
+named-mailboxes "Sent" =mattst88@gmail.com/Sent
+named-mailboxes "alpha-contacts" =mattst88@gmail.com/alpha-contacts
+named-mailboxes "craigslist" =mattst88@gmail.com/craigslist
+named-mailboxes "forum-notifications" =mattst88@gmail.com/forum-notification
+named-mailboxes "gentoo-comrel" =mattst88@gmail.com/gentoo-comrel
+named-mailboxes "gentoo-core" =mattst88@gmail.com/gentoo-core
+named-mailboxes "gentoo-council" =mattst88@gmail.com/gentoo-council
+named-mailboxes "to-vacuum" =mattst88@gmail.com/to-vacuum
+
+set header_cache=~/.cache/mutt/hcache
+set mail_check_stats
+
+# sidebar
+#set sidebar_width=15
+set sidebar_short_path = yes
+set sidebar_format="%B%* %N"
+set sidebar_visible = yes
+bind index,pager B sidebar-toggle-visible
+bind index,pager \ck sidebar-prev
+bind index,pager \cj sidebar-next
+bind index,pager \Co sidebar-open
+
+set sendmail="/usr/bin/msmtp"
+
+#set record=~/.mail/Sent
+#set spoolfile=~/.mail/INBOX
+
+# needed for maildir format
+# IMAP and INBOX (this should map to any existing IMAP folders)
+#mailboxes = +intel/INBOX +intel/Sent
+#=Drafts \
+#=Junk \
+#=Trash \
+#=Lastfolder
+
+set crypt_use_gpgme=yes
+
+### PGP
+set pgp_sign_as=0x3BB639E56F861FA2E86505690FDD682D974CA72A
+#set pgp_auto_decode = yes
+#set pgp_use_gpg_agent = yes
+#set pgp_autosign=yes
+#set pgp_replyencrypt=yes
+#
+#set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
+#set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
+#set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
+#set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
+#set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
+#set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x974CA72A -- -r %r -- %f"
+#set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x974CA72A -- -r %r -- %f"
+#set pgp_import_command="gpg --no-verbose --import -v %f"
+#set pgp_export_command="gpg --no-verbose --export --armor %r"
+#set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
+#set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
+#set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
+#
+#set pgp_timeout=1800
+#set pgp_good_sign="^gpg: Good signature from"
+#
+#folder-hook . `rm -f /tmp/mutt/*`
+
+# Basic Options --------------------------------------
+set wait_key = no # shut up, mutt
+set timeout = 3 # idle time before scanning
+set mail_check = 0 # minimum time between scans
+unset move # gmail does that
+set delete # don't ask, just do
+unset confirmappend # don't ask, just do!
+set quit # don't ask, just do!!
+unset mark_old # read/new is good enough for me
+set beep_new # bell on new mails
+set pipe_decode # strip headers and eval mimes when piping
+set thorough_search # strip headers and eval mimes before searching
+set recall = no # don't ask if I want to recall a postponed message
+
+# Status Bar -----------------------------------------
+set status_chars = " *%A"
+set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
+
+# Index View Options ---------------------------------
+set date_format = "%m/%d"
+set sort = threads # like gmail
+set sort_aux = reverse-last-date-received # like gmail
+set uncollapse_jump # don't collapse on an unread message
+set sort_re # thread based on regex
+set reply_regexp = "^(([Rr][Ee]?(\[[0-9]+\])?: *)?(\[[^]]+\] *)?)*"
+
+# Format for index list
+# [message status flags]
+# Date sent (in my timezone)
+# 20 characters of who it's from
+# Number of attachment (if > 0)
+# Subject
+#set index_format = "[%Z] %D %-20.20F %?X?%X& ? %?M?[%M]->&?%s"
+set index_format = "[%Z] %D %-20.20F %s"
+set index_format="%4C %Z %?GI?%GI& ? %[%d/%b] %-16.15F %?M?(%3M)& ? %s %> %?g?%g?"
+
+macro index F "<shell-escape>mbsync -a<enter>" "run mbsync to sync all mail"
+
+# Index Key Bindings ---------------------------------
+bind index g noop
+bind index gg first-entry
+bind index G last-entry
+bind index R group-reply
+bind index <tab> sync-mailbox
+bind index P recall-message
+
+# Pager View Options ---------------------------------
+set pager_index_lines = 10 # number of index lines to show
+set pager_context = 3 # number of context lines to show
+set pager_stop # don't go to next message automatically
+set menu_scroll # scroll in menus
+set tilde # show tildes like in vim
+unset markers # no ugly plus signs
+auto_view text/html
+set strict_threads # Don't thread by message subjec
+alternative_order text/html text/enriched text/plain
+
+set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
+alternative_order text/plain text/enriched text/html
+
+# Header Options -------------------------------------
+ignore * # ignore all headers
+unignore from: to: cc: date: subject: # show only these
+unhdr_order * # some distros order things by default
+hdr_order from: to: cc: date: subject: # and in this order
+
+# Pager Key Bindings ---------------------------------
+bind pager k previous-line
+bind pager j next-line
+bind pager g noop
+bind pager gg top
+bind pager G bottom
+bind pager R group-reply
+
+# View attachments properly.
+bind attach <return> view-mailcap
+
+# Compose View Options -------------------------------
+set envelope_from # which from?
+set sig_dashes # dashes before sig
+set edit_headers # show headers when composing
+set fast_reply # skip to compose when replying
+unset reply_self # don't include myself when replying
+unset askcc # don't ask for CC:
+set fcc_attach # save attachments with the body
+unset mime_forward # forward attachments as part of body
+set forward_format = "Fwd: %s" # format of subject when forwarding
+set forward_decode # decode when forwarding
+set attribution = "On %d, %n wrote:" # format of quoting header
+set reply_to # reply to Reply to: field
+set reverse_name # reply as whomever it was to
+set include # include message in replies
+set forward_quote # include message in forwards
+set text_flowed = yes # Flow text instead of using line breaks
+set sig_on_top # puts signature above quoted text
+# set display_filter = ~/.mutt/display_filter.sh
+set copy = yes
+
+source colors.muttrc
+source aliases
diff --git a/nvim/.config/nvim/after/ftplugin/lua.lua b/nvim/.config/nvim/after/ftplugin/lua.lua
new file mode 100644
index 0000000..cbbe688
--- /dev/null
+++ b/nvim/.config/nvim/after/ftplugin/lua.lua
@@ -0,0 +1,3 @@
+vim.opt_local.expandtab = true
+vim.opt_local.softtabstop = 2
+vim.opt_local.shiftwidth = 2
diff --git a/nvim/.config/nvim/init.lua b/nvim/.config/nvim/init.lua
new file mode 100644
index 0000000..da14476
--- /dev/null
+++ b/nvim/.config/nvim/init.lua
@@ -0,0 +1,42 @@
+vim.g.loaded_ruby_provider = 0
+vim.g.loaded_node_provider = 0
+vim.g.loaded_perl_provider = 0
+
+local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
+if not vim.loop.fs_stat(lazypath) then
+ -- bootstrap lazy.nvim
+ -- stylua: ignore
+ vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable",
+ lazypath })
+end
+vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
+
+require("lazy").setup({
+ spec = {
+ { import = "lazy-plugins" },
+ },
+ defaults = {
+ -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
+ -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
+ lazy = false,
+ version = "*", -- try installing the latest stable version for plugins that support semver
+ },
+ install = { colorscheme = { "tokyonight", "habamax" } },
+ performance = {
+ rtp = {
+ -- disable some rtp plugins
+ disabled_plugins = {
+ "gzip",
+ -- "matchit",
+ -- "matchparen",
+ -- "netrwPlugin",
+ "tarPlugin",
+ "tohtml",
+ "tutor",
+ "zipPlugin",
+ },
+ },
+ },
+})
+
+require('options')
diff --git a/nvim/.config/nvim/lua/lazy-plugins.lua b/nvim/.config/nvim/lua/lazy-plugins.lua
new file mode 100644
index 0000000..632b246
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins.lua
@@ -0,0 +1,66 @@
+vim.g.table_mode_corner = "|"
+
+-- Put simply configured plugins here.
+return {
+ { "fladson/vim-kitty", ft = "kitty" },
+ { "lukas-reineke/indent-blankline.nvim", version = "v3.6.3", main = "ibl", opts = {} },
+ {
+ "Mofiqul/adwaita.nvim",
+ lazy = false,
+ priority = 1000,
+ config = function()
+ vim.g.adwaita_darker = true
+ vim.cmd("colorscheme adwaita")
+ end
+ },
+ { "norcalli/nvim-terminal.lua", opts = {} },
+ "dhruvasagar/vim-table-mode",
+ {
+ "ibhagwan/fzf-lua",
+ dependencies = { "nvim-tree/nvim-web-devicons" },
+ },
+ {
+ "kylechui/nvim-surround",
+ event = "VeryLazy",
+ config = function()
+ require("nvim-surround").setup({
+ -- Configuration here, or leave empty to use defaults
+ })
+ end
+ },
+ "tpope/vim-eunuch",
+ "vim-scripts/git_patch_tags.vim",
+ {
+ "nvim-lualine/lualine.nvim",
+ dependencies = {
+ "nvim-tree/nvim-web-devicons"
+ },
+ },
+ {
+ 'numToStr/Comment.nvim',
+ opts = {
+ -- add any options here
+ },
+ lazy = false,
+ },
+ {
+ "windwp/nvim-autopairs",
+ event = "InsertEnter",
+ config = true
+ },
+ {
+ "rktjmp/paperplanes.nvim",
+ opts = {
+ register = "+",
+ provider = "sprunge.us",
+ provider_options = { insecure = true, },
+ notifier = vim.notify or print,
+ },
+ },
+ {
+ "j-hui/fidget.nvim",
+ tag = "legacy",
+ event = "LspAttach",
+ opts = {},
+ },
+}
diff --git a/nvim/.config/nvim/lua/lazy-plugins/ccls.lua b/nvim/.config/nvim/lua/lazy-plugins/ccls.lua
new file mode 100644
index 0000000..1ae961c
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/ccls.lua
@@ -0,0 +1,24 @@
+local M = {
+ "ranjithshegde/ccls.nvim",
+ dependencies = { "neovim/nvim-lspconfig" },
+}
+
+M.config = function()
+ local ccls = require("ccls")
+ ccls.setup({
+ lsp = {
+ -- check :help vim.lsp.start for config options
+ server = {
+ name = "ccls", --String name
+ cmd = {"/usr/bin/ccls"}, -- point to your binary, has to be a table
+ args = {--[[Any args table]] },
+ offset_encoding = "utf-32", -- default value set by plugin
+ root_dir = vim.fs.dirname(vim.fs.find({ "compile_commands.json", ".git" }, { upward = true })[1]), -- or some other function that returns a string
+ --on_attach = your_func,
+ --capabilites = your_table/func
+ },
+ },
+ })
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/lazy-plugins/completion.lua b/nvim/.config/nvim/lua/lazy-plugins/completion.lua
new file mode 100644
index 0000000..01fc0d8
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/completion.lua
@@ -0,0 +1,65 @@
+local M = {
+ "hrsh7th/nvim-cmp",
+ dependencies = {
+ "hrsh7th/cmp-nvim-lsp",
+ "hrsh7th/cmp-nvim-lua",
+ "hrsh7th/cmp-buffer",
+ "hrsh7th/cmp-path",
+ "hrsh7th/cmp-cmdline",
+ "saadparwaiz1/cmp_luasnip",
+ {
+ "L3MON4D3/LuaSnip",
+ tag = "v2.1.1",
+ },
+ },
+}
+
+M.config = function()
+ local cmp = require("cmp")
+ vim.opt.completeopt = { "menu", "menuone", "noselect" }
+
+ cmp.setup({
+ snippet = {
+ expand = function(args)
+ require("luasnip").lsp_expand(args.body) -- For `luasnip` users.
+ end,
+ },
+ window = {
+ -- completion = cmp.config.window.bordered(),
+ -- documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ["<Tab>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
+ ["<S-Tab>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
+ ["<C-d>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<CR>"] = cmp.mapping.confirm({}),
+ ["<S-CR>"] = cmp.mapping.confirm({
+ behavior = cmp.ConfirmBehavior.Replace,
+ select = true,
+ }),
+ }),
+ sources = cmp.config.sources({
+ { name = "nvim_lsp" },
+ { name = "nvim_lua" },
+ { name = "luasnip" }, -- For luasnip users.
+ -- { name = "orgmode" },
+ }, {
+ { name = "buffer" },
+ { name = "path" },
+ }),
+ })
+
+ cmp.setup.cmdline(":", {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = cmp.config.sources({
+ { name = "path" },
+ }, {
+ { name = "cmdline" },
+ }),
+ })
+end
+
+return M
diff --git a/nvim/.config/nvim/lua/lazy-plugins/git.lua b/nvim/.config/nvim/lua/lazy-plugins/git.lua
new file mode 100644
index 0000000..dfd6e63
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/git.lua
@@ -0,0 +1,6 @@
+return {
+ {
+ "tpope/vim-fugitive",
+ cmd = "Git",
+ }
+}
diff --git a/nvim/.config/nvim/lua/lazy-plugins/mason-lsp.lua b/nvim/.config/nvim/lua/lazy-plugins/mason-lsp.lua
new file mode 100644
index 0000000..75537c0
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/mason-lsp.lua
@@ -0,0 +1,65 @@
+return {
+ {
+ "neovim/nvim-lspconfig",
+ name = "lspconfig",
+ lazy = false,
+ dependencies = {
+ { "williamboman/mason-lspconfig.nvim", name = "mason-lspconfig" },
+ { "williamboman/mason.nvim", name = "mason" },
+ },
+ config = function()
+ local lspconfig = require("lspconfig")
+ local mason = require("mason")
+ local mason_lspconfig = require("mason-lspconfig")
+ local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
+ local servers = { "lua_ls", "marksman", "pylsp" }
+-- local options = { noremap = true, silent = true }
+
+ mason.setup({})
+
+ mason_lspconfig.setup({ ensure_installed = servers })
+
+ mason_lspconfig.setup_handlers({
+ function(server_name)
+ lspconfig[server_name].setup({
+ capabilities = capabilities,
+ })
+ end,
+ ["lua_ls"] = function()
+ lspconfig.lua_ls.setup {
+ settings = {
+ Lua = {
+ runtime = { version = 'LuaJIT', },
+ diagnostics = {
+ globals = {
+ 'vim',
+ 'require',
+ },
+ },
+ workspace = {
+ library = vim.api.nvim_get_runtime_file("", true),
+ checkThirdParty = false,
+ },
+ telemetry = { enable = false },
+ },
+ },
+ }
+ end,
+ ["pylsp"] = function()
+ lspconfig.pylsp.setup {
+ settings = {
+ pylsp = {
+ plugins = {
+ pycodestyle = {
+ ignore = {'W391'},
+ maxLineLength = 100,
+ }
+ },
+ },
+ },
+ }
+ end
+ })
+ end
+ },
+}
diff --git a/nvim/.config/nvim/lua/lazy-plugins/telescope.lua b/nvim/.config/nvim/lua/lazy-plugins/telescope.lua
new file mode 100644
index 0000000..cf3f151
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/telescope.lua
@@ -0,0 +1,137 @@
+return {
+ {
+ "nvim-telescope/telescope.nvim",
+ lazy = true,
+ dependencies = {
+ { 'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' },
+ "nvim-tree/nvim-web-devicons",
+ "nvim-lua/plenary.nvim",
+ "nvim-telescope/telescope-symbols.nvim",
+ },
+ cmd = "Telescope",
+ keys = {
+ { "gr", function() require('telescope.builtin').lsp_references() end },
+ { "<leader>fr", function() require('telescope.builtin').lsp_references() end },
+ { "<leader>ff", "<cmd>Telescope find_files<cr>" },
+ { "<leader>fo", "<cmd>Telescope oldfiles<cr>" },
+ { "<leader>fg", "<cmd>Telescope live_grep<cr>" },
+ { "<leader>fb", "<cmd>Telescope buffers<cr>" },
+ { "<leader>fh", "<cmd>Telescope help_tags<cr>" },
+ { "<leader>fs", "<cmd>Telescope grep_string<cr>" },
+ },
+ config = function()
+ local always_ignore_these = {
+ "yarn.lock", -- nodejs
+ "package%-lock.json", -- nodejs
+ "node_modules/.*", -- nodejs
+ "vendor/*", -- golang
+ "%.git/.*",
+ "%.png",
+ "%.jpeg",
+ "%.jpg",
+ "%.ico",
+ "%.webp",
+ "%.avif",
+ "%.heic",
+ "%.mp3",
+ "%.mp4",
+ "%.mkv",
+ "%.mov",
+ "%.wav",
+ "%.flv",
+ "%.avi",
+ "%.webm",
+ "%.db",
+ }
+
+ require("telescope").setup({
+ defaults = {
+ mappings = {
+ i = {
+ -- don't go into normal mode, just close
+ ["<Esc>"] = require("telescope.actions").close,
+ -- scroll the list with <c-j> and <c-k>
+ ["<C-j>"] = require("telescope.actions").move_selection_next,
+ ["<C-k>"] = require("telescope.actions").move_selection_previous,
+ -- move the preview window up and down
+ ["<C-u>"] = require("telescope.actions").preview_scrolling_up,
+ ["<C-d>"] = require("telescope.actions").preview_scrolling_down,
+ },
+ },
+ vimgrep_arguments = {
+ "rg",
+ "--color=never",
+ "--no-heading",
+ "--with-filename",
+ "--line-number",
+ "--column",
+ "--smart-case",
+ "--trim",
+ },
+ layout_strategy = "flex",
+ layout_config = {
+ prompt_position = "top",
+ horizontal = {
+ mirror = true,
+ preview_cutoff = 100,
+ preview_width = 0.5,
+ },
+ vertical = {
+ mirror = true,
+ preview_cutoff = 0.4,
+ },
+ flex = {
+ flip_columns = 110,
+ },
+ height = 0.94,
+ width = 0.86,
+ },
+ prompt_prefix = "  ",
+ selection_caret = " ",
+ entry_prefix = " ",
+ initial_mode = "insert",
+ selection_strategy = "reset",
+ sorting_strategy = "ascending",
+ file_sorter = require("telescope.sorters").get_fuzzy_file,
+ file_ignore_patterns = always_ignore_these,
+ generic_sorter = require("telescope.sorters").get_generic_fuzzy_sorter,
+ path_display = { "truncate" },
+ winblend = 0,
+ border = {},
+ borderchars = {
+ "─",
+ "│",
+ "─",
+ "│",
+ "╭",
+ "╮",
+ "╯",
+ "╰",
+ },
+ color_devicons = true,
+ use_less = true,
+ set_env = { ["COLORTERM"] = "truecolor" }, -- default = nil,
+ file_previewer = require("telescope.previewers").vim_buffer_cat.new,
+ grep_previewer = require("telescope.previewers").vim_buffer_vimgrep.new,
+ qflist_previewer = require("telescope.previewers").vim_buffer_qflist.new,
+ -- Developer configurations: Not meant for general override
+ buffer_previewer_maker = require("telescope.previewers").buffer_previewer_maker,
+ },
+ pickers = {
+ find_files = {
+ find_command = { "fd", "--type", "f", "--strip-cwd-prefix" },
+ hidden = true,
+ },
+ },
+ extensions = {
+ fzf = {
+ fuzzy = true,
+ override_generic_sorter = true,
+ override_file_sorter = true,
+ case_mode = "smart_case",
+ },
+ },
+ })
+ end
+ },
+}
diff --git a/nvim/.config/nvim/lua/lazy-plugins/treesitter.lua b/nvim/.config/nvim/lua/lazy-plugins/treesitter.lua
new file mode 100644
index 0000000..c1b9cf2
--- /dev/null
+++ b/nvim/.config/nvim/lua/lazy-plugins/treesitter.lua
@@ -0,0 +1,47 @@
+return {
+ {
+ "nvim-treesitter/nvim-treesitter",
+ build = function()
+ pcall(require("nvim-treesitter.install").update({ with_sync = true }))
+ end,
+ event = "BufReadPost",
+ dependencies = {
+ "nvim-treesitter/nvim-treesitter-textobjects",
+ },
+ opts = {
+ highlight = { enable = true },
+ indent = { enable = true },
+ context_commentstring = { enable = true, enable_autocmd = false },
+ ensure_installed = {
+ "bash",
+ "c",
+ "cmake",
+ "cpp",
+ "dockerfile",
+ "git_config",
+ "gitattributes",
+ "gitcommit",
+ "gitignore",
+ "go",
+ "ini",
+ "javascript",
+ "jsdoc",
+ "json",
+ "json5",
+ "lua",
+ "make",
+ "markdown",
+ "meson",
+ "ninja",
+ "python",
+ "rust",
+ "toml",
+ "vim",
+ "yaml",
+ },
+ },
+ config = function(plugin, opts)
+ require("nvim-treesitter.configs").setup(opts)
+ end,
+ },
+}
diff --git a/nvim/.config/nvim/lua/options.lua b/nvim/.config/nvim/lua/options.lua
new file mode 100644
index 0000000..681fa71
--- /dev/null
+++ b/nvim/.config/nvim/lua/options.lua
@@ -0,0 +1,59 @@
+-- show line numbers
+vim.opt.number = true
+vim.opt.relativenumber = true
+
+-- Color the colum to the right of the limit
+vim.opt.colorcolumn = "+1"
+
+-- Options for completions. Move this at some point.
+-- have a fixed column for the diagnostics to appear in this removes the jitter when warnings/errors flow in
+vim.wo.signcolumn = "yes"
+vim.cmd([[autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })]])
+
+--Set completeopt to have a better completion experience
+-- :help completeopt
+-- menuone: popup even when there's only one match
+-- noinsert: Do not insert text until a selection is made
+-- noselect: Do not select, force to select one from the menu
+-- shortness: avoid showing extra messages when using completion
+-- updatetime: set updatetime for CursorHold
+vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
+vim.opt.shortmess = vim.opt.shortmess + { c = true}
+vim.api.nvim_set_option('updatetime', 300)
+
+vim.keymap.set('n', '<Leader>gr', ':FzfLua grep_project<cr>', { noremap = true, silent = true })
+vim.keymap.set('n', '<Leader>gg', ':FzfLua git_files<cr>', { noremap = true, silent = true })
+vim.keymap.set('n', '<Leader>gf', ':FzfLua files<cr>', { noremap = true, silent = true })
+
+vim.keymap.set('n', '<Leader>e', vim.diagnostic.open_float)
+vim.keymap.set('n', '<Leader>E', vim.diagnostic.setloclist)
+vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
+vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
+
+-- Use LspAttach autocommand to only map the following keys
+-- after the language server attaches to the current buffer
+vim.api.nvim_create_autocmd('LspAttach', {
+ group = vim.api.nvim_create_augroup('UserLspConfig', {}),
+ callback = function(ev)
+ -- Enable completion triggered by <c-x><c-o>
+ vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
+
+ -- Buffer local mappings.
+ -- See `:help vim.lsp.*` for documentation on any of the below functions
+ local options = { buffer = ev.buf }
+ vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, options)
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, options)
+ vim.keymap.set('n', 'K', vim.lsp.buf.hover, options)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, options)
+ vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, options)
+ vim.keymap.set('n', '<c-\\>c', vim.lsp.buf.incoming_calls, options)
+ vim.keymap.set({'n', 'v'}, '<Leader>ca', vim.lsp.buf.code_action, options)
+ vim.keymap.set('n', '<Leader>rn', vim.lsp.buf.rename, options)
+ vim.keymap.set('n', '<c-\\>g', vim.lsp.buf.references, options)
+ vim.keymap.set('n', '<space>f', function ()
+ vim.lsp.buf.format{ async = true }
+ end, options)
+ end,
+})
+
+vim.o.termguicolors = true
diff --git a/parallel/.parallel/will-cite b/parallel/.parallel/will-cite
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/parallel/.parallel/will-cite
diff --git a/screen/.screenrc b/screen/.screenrc
new file mode 100644
index 0000000..3337674
--- /dev/null
+++ b/screen/.screenrc
@@ -0,0 +1 @@
+startup_message off
diff --git a/tmux/.config/tmux/tmux.conf b/tmux/.config/tmux/tmux.conf
new file mode 100644
index 0000000..f13e41b
--- /dev/null
+++ b/tmux/.config/tmux/tmux.conf
@@ -0,0 +1,24 @@
+set-option -sa terminal-features ',xterm-256color:RGB'
+
+unbind-key C-b
+bind-key C-a send-prefix
+set -g prefix ^A
+set -g base-index 1 # start indexing windows at 1 instead of 0
+set -g detach-on-destroy off # don't exit from tmux when closing a session
+set -g escape-time 0 # zero-out escape time delay
+set -g history-limit 1000000 # increase history size (from 2,000)
+set -g renumber-windows on # renumber all windows when any window is closed
+set -g set-clipboard on # use system clipboard
+set -g default-terminal "${TERM}"
+set -g default-shell "${SHELL}"
+set -g mouse
+set -g pane-active-border-style 'fg=magenta,bg=default'
+set -g pane-border-style 'fg=brightblack,bg=default'
+set -gw mode-keys vi
+
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-sensible'
+set -g @plugin 'joshmedeski/tmux-nerd-font-window-name'
+set -g @plugin 'wfxr/tmux-fzf-url'
+
+run '~/.tmux/plugins/tpm/tpm'
diff --git a/wgetpaste/.wgetpaste.conf b/wgetpaste/.wgetpaste.conf
new file mode 100644
index 0000000..5db2281
--- /dev/null
+++ b/wgetpaste/.wgetpaste.conf
@@ -0,0 +1 @@
+DEFAULT_SERVICE=0x0
diff --git a/zsh/.zshrc b/zsh/.zshrc
new file mode 100755
index 0000000..8d90e58
--- /dev/null
+++ b/zsh/.zshrc
@@ -0,0 +1,43 @@
+#!/bin/zsh
+
+export ZSH="$HOME/.oh-my-zsh"
+
+ZSH_THEME="gentoo"
+
+plugins=(
+ autojump
+ colored-man-pages
+ fzf
+ git
+ gpg-agent
+ mosh
+ pass
+)
+
+source $ZSH/oh-my-zsh.sh
+
+export FZF_TMUX=1
+export FZF_TMUX_OPTS='-p90%,80%'
+export EDITOR=nvim
+export HISTSIZE=5000
+export HISTFILE="$HOME/.history"
+export SAVEHIST=$HISTSIZE
+setopt hist_ignore_all_dups
+setopt hist_ignore_space
+setopt share_history
+
+export PATH=:$PATH:~/bin
+
+export CMAKE_GENERATOR=Ninja
+export CMAKE_EXPORT_COMPILE_COMMANDS=ON
+
+alias pkgdiff="pkgdiff-mg"
+alias grpe="grep"
+alias gti="git"
+alias mkdir="mkdir -p"
+alias sl="ls"
+[[ $(command -v fdfind) ]] && alias fd=fdfind
+[[ $(command -v nvim) ]] && alias vi=nvim
+
+bindkey "^[[1~" beginning-of-line
+bindkey "^[[4~" end-of-line