diff options
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 @@ -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 @@ -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 |