dotfiles with stow
This commit is contained in:
parent
2c44971f2f
commit
00f346b438
66
config/.Xresources
Normal file
66
config/.Xresources
Normal file
@ -0,0 +1,66 @@
|
||||
! High DPI Settings for Window Managers
|
||||
!Xft.dpi: 192
|
||||
#include ".theme.xresources"
|
||||
|
||||
font: monospace:12
|
||||
//*font: "Cascadia Code"
|
||||
!! Dracula Xresources palette
|
||||
!/* *.foreground: #F8F8F2 */
|
||||
!/* *.background: #282A36 */
|
||||
!/* *.color0: #000000 */
|
||||
!/* *.color8: #4D4D4D */
|
||||
!/* *.color1: #FF5555 */
|
||||
!/* *.color9: #FF6E67 */
|
||||
!/* *.color2: #50FA7B */
|
||||
!/* *.color10: #5AF78E */
|
||||
!/* *.color3: #F1FA8C */
|
||||
!/* *.color11: #F4F99D */
|
||||
!/* *.color4: #BD93F9 */
|
||||
!/* *.color12: #CAA9FA */
|
||||
!/* *.color5: #FF79C6 */
|
||||
!/* *.color13: #FF92D0 */
|
||||
!/* *.color6: #8BE9FD */
|
||||
!/* *.color14: #9AEDFE */
|
||||
!/* *.color7: #BFBFBF */
|
||||
!/* *.color15: #E6E6E6 */
|
||||
!
|
||||
! Nord theme
|
||||
!#define nord0 #2E3440
|
||||
!#define nord1 #3B4252
|
||||
!#define nord2 #434C5E
|
||||
!#define nord3 #4C566A
|
||||
!#define nord4 #D8DEE9
|
||||
!#define nord5 #E5E9F0
|
||||
!#define nord6 #ECEFF4
|
||||
!#define nord7 #8FBCBB
|
||||
!#define nord8 #88C0D0
|
||||
!#define nord9 #81A1C1
|
||||
!#define nord10 #5E81AC
|
||||
!#define nord11 #BF616A
|
||||
!#define nord12 #D08770
|
||||
!#define nord13 #EBCB8B
|
||||
!#define nord14 #A3BE8C
|
||||
!#define nord15 #B48EAD
|
||||
!
|
||||
!*.foreground: nord4
|
||||
!*.background: nord0
|
||||
!*.cursorColor: nord4
|
||||
!*fading: 35
|
||||
!*fadeColor: nord3
|
||||
!
|
||||
!*.color0: nord1
|
||||
!*.color1: nord11
|
||||
!*.color2: nord14
|
||||
!*.color3: nord13
|
||||
!*.color4: nord9
|
||||
!*.color5: nord15
|
||||
!*.color6: nord8
|
||||
!*.color7: nord5
|
||||
!*.color8: nord3
|
||||
!*.color9: nord11
|
||||
!*.color10: nord14
|
||||
!*.color11: nord13
|
||||
!*.color12: nord9
|
||||
!*.color13: nord15
|
||||
!*.color14: nord7
|
||||
!*.color15: nord6
|
8
config/.bash_profile
Normal file
8
config/.bash_profile
Normal file
@ -0,0 +1,8 @@
|
||||
export PATH="${PATH}:$HOME/.scripts"
|
||||
source ~/.profile
|
||||
source ~/.bashrc
|
||||
|
||||
|
||||
# Added by Toolbox App
|
||||
export PATH="$PATH:/home/mikec/.local/share/JetBrains/Toolbox/scripts"
|
||||
|
172
config/.bashrc
Normal file
172
config/.bashrc
Normal file
@ -0,0 +1,172 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
case $- in
|
||||
*i*) ;;
|
||||
*) return;;
|
||||
esac
|
||||
|
||||
export PATH=~/.local/bin:/snap/bin:/usr/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/share/games:/usr/local/sbin:/usr/sbin:/sbin:$PATH
|
||||
PATH=$PATH:~/.local/share/gem/ruby/3.0.0/bin/:~/.scripts
|
||||
PATH=$PATH:~/.cargo/bin
|
||||
PATH=$PATH:~/go/bin/
|
||||
PATH=$PATH:~/.nimble/bin/
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
#if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
|
||||
# debian_chroot=$(cat /etc/debian_chroot)
|
||||
#fi
|
||||
#
|
||||
## set a fancy prompt (non-color, unless we know we "want" color)
|
||||
#case "$TERM" in
|
||||
# xterm-color) color_prompt=yes;;
|
||||
#esac
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
force_color_prompt=yes
|
||||
|
||||
#if [ -n "$force_color_prompt" ]; then
|
||||
# if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# # We have color support; assume it's compliant with Ecma-48
|
||||
# # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# # a case would tend to support setf rather than setaf.)
|
||||
# color_prompt=yes
|
||||
# else
|
||||
# color_prompt=
|
||||
# fi
|
||||
#fi
|
||||
#
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='\[\033[0;32m\]\u\[\033[00m\]\100\[\033[00m\]\h \[\033[0;32m\]\w\[\033[01;00m\]> '; else PS1='\[\033[0;32m\]\u\[\033[00m\]\100\[\033[00m\]\h \[\033[0;32m\]\w\[\033[01;00m\]> '
|
||||
#else
|
||||
# PS1='\u\100\h \w> '
|
||||
fi
|
||||
#
|
||||
## Set 'man' colors
|
||||
#if [ "$color_prompt" = yes ]; then
|
||||
# man() {
|
||||
# env \
|
||||
# LESS_TERMCAP_mb=$'\e[01;31m' \
|
||||
# LESS_TERMCAP_md=$'\e[01;31m' \
|
||||
# LESS_TERMCAP_me=$'\e[0m' \
|
||||
# LESS_TERMCAP_se=$'\e[0m' \
|
||||
# LESS_TERMCAP_so=$'\e[01;44;33m' \
|
||||
# LESS_TERMCAP_ue=$'\e[0m' \
|
||||
# LESS_TERMCAP_us=$'\e[01;32m' \
|
||||
# man "$@"
|
||||
# }
|
||||
#fi
|
||||
#
|
||||
#unset color_prompt force_color_prompt
|
||||
#
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
#case "$TERM" in
|
||||
#xterm*|rxvt*)
|
||||
# PS1="\[\033[0;31m\]\342\224\214\342\224\200\$([[ \$? != 0 ]] && echo \"[\[\033[0;31m\]\342\234\227\[\033[0;37m\]]\342\224\200\")[$(if [[ ${EUID} == 0 ]]; then echo '\[\033[01;31m\]root\[\033[01;33m\]@\[\033[01;96m\]\h'; else echo '\[\033[0;39m\]\u\[\033[01;33m\]@\[\033[01;96m\]\h'; fi)\[\033[0;31m\]]\342\224\200[\[\033[0;32m\]\w\[\033[0;31m\]]\n\[\033[0;31m\]\342\224\224\342\224\200\342\224\200\342\225\274 \[\033[0m\]\[\e[01;33m\]\\$\[\e[0m\]"
|
||||
# ;;
|
||||
#*)
|
||||
# ;;
|
||||
#esac
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
alias dir='dir --color=auto'
|
||||
alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -lh'
|
||||
alias la='ls -lha'
|
||||
alias l='ls -CF'
|
||||
alias emacs='emacs -nw'
|
||||
alias dd='dd status=progress'
|
||||
alias _='sudo'
|
||||
alias _i='sudo -i'
|
||||
alias please='sudo'
|
||||
alias fucking='sudo'
|
||||
alias hx='helix'
|
||||
alias bat='bat --theme="base16-256"'
|
||||
if [ -n "$(command -v 'eza')" ]; then
|
||||
alias ls='eza'
|
||||
fi
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
export EDITOR='kak'
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
if [ "$XDG_SESSION_DESKTOP" = "sway" ] ; then
|
||||
# https://github.com/swaywm/sway/issues/595
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export STUDIO_JDK=/usr/lib/jvm/java-11-openjdk/
|
||||
fi
|
||||
eval "$(zoxide init bash)"
|
||||
|
||||
export TMUX_TMPDIR=/tmp
|
||||
export TINTED_SHELL_ENABLE_BASE16_VARS=1
|
||||
|
||||
tinty_source_shell_theme() {
|
||||
tinty $@
|
||||
subcommand="$1"
|
||||
|
||||
if [ "$subcommand" = "apply" ] || [ "$subcommand" = "init" ]; then
|
||||
tinty_data_dir="${XDG_DATA_HOME:-$HOME/.local/share}/tinted-theming/tinty"
|
||||
|
||||
for tinty_script_file in $(find "$tinty_data_dir" -maxdepth 1 -type f -name "*.sh"); do
|
||||
. $tinty_script_file
|
||||
done
|
||||
|
||||
unset tinty_data_dir
|
||||
fi
|
||||
|
||||
unset subcommand
|
||||
}
|
||||
|
||||
if [ -n "$(command -v 'tinty')" ]; then
|
||||
tinty_source_shell_theme "init"
|
||||
alias theme='tinty_source_shell_theme apply "$(tinty list | fzf --cycle)" && xrdb ~/.Xresources'
|
||||
fi
|
||||
|
||||
if [ -n "$(command -v tmux)" ] && [ -z "$TMUX" ]; then
|
||||
alias kak='tmux new-session kak > /dev/null'
|
||||
fi
|
||||
alias enter-dev='. enter-dev.sh'
|
||||
alias ssh='TERM="xterm-256color" ssh'
|
||||
|
||||
export DISABLE_TELEMETRY=YES
|
415
config/.config/kak-lsp/kak-lsp.toml
Normal file
415
config/.config/kak-lsp/kak-lsp.toml
Normal file
@ -0,0 +1,415 @@
|
||||
snippet_support = true
|
||||
verbosity = 2
|
||||
|
||||
[server]
|
||||
# exit session if no requests were received during given period in seconds
|
||||
# works only in unix sockets mode (-s/--session)
|
||||
# set to 0 to disable
|
||||
timeout = 1800 # seconds = 30 minutes
|
||||
|
||||
[language.bash]
|
||||
filetypes = ["sh"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "bash-language-server"
|
||||
args = ["start"]
|
||||
|
||||
[language.c_cpp]
|
||||
filetypes = ["c", "cpp"]
|
||||
roots = ["compile_commands.json", ".clangd", ".git", ".hg"]
|
||||
command = "clangd"
|
||||
|
||||
[language.crystal]
|
||||
filetypes = ["crystal"]
|
||||
roots = ["shard.yml"]
|
||||
command = "scry"
|
||||
|
||||
[language.css]
|
||||
filetypes = ["css"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.less]
|
||||
filetypes = ["less"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.scss]
|
||||
filetypes = ["scss"]
|
||||
roots = ["package.json", ".git", ".hg"]
|
||||
command = "vscode-css-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.d]
|
||||
filetypes = ["d", "di"]
|
||||
roots = [".git", "dub.sdl", "dub.json"]
|
||||
command = "serve-d"
|
||||
|
||||
[language.dart]
|
||||
# start shell to find path to dart analysis server source
|
||||
filetypes = ["dart"]
|
||||
roots = ["pubspec.yaml", ".git", ".hg"]
|
||||
command = "sh"
|
||||
args = ["-c", "dart $(dirname $(command -v dart))/snapshots/analysis_server.dart.snapshot --lsp"]
|
||||
|
||||
[language.elixir]
|
||||
filetypes = ["elixir"]
|
||||
roots = ["mix.exs"]
|
||||
command = "elixir-ls"
|
||||
settings_section = "elixirLS"
|
||||
[language.elixir.settings.elixirLS]
|
||||
# See https://github.com/elixir-lsp/elixir-ls/blob/master/apps/language_server/lib/language_server/server.ex
|
||||
# dialyzerEnable = true
|
||||
|
||||
[language.elm]
|
||||
filetypes = ["elm"]
|
||||
roots = ["elm.json"]
|
||||
command = "elm-language-server"
|
||||
args = ["--stdio"]
|
||||
settings_section = "elmLS"
|
||||
[language.elm.settings.elmLS]
|
||||
# See https://github.com/elm-tooling/elm-language-server#server-settings
|
||||
runtime = "node"
|
||||
elmPath = "elm"
|
||||
elmFormatPath = "elm-format"
|
||||
elmTestPath = "elm-test"
|
||||
|
||||
[language.erlang]
|
||||
filetypes = ["erlang"]
|
||||
# See https://github.com/erlang-ls/erlang_ls.git for more information and
|
||||
# how to configure. This default config should work in most cases though.
|
||||
roots = ["rebar.config", "erlang.mk", ".git", ".hg"]
|
||||
command = "erlang_ls"
|
||||
|
||||
[language.go]
|
||||
filetypes = ["go"]
|
||||
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
|
||||
command = "gopls"
|
||||
settings_section = "gopls"
|
||||
[language.go.settings.gopls]
|
||||
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
|
||||
# "build.buildFlags" = []
|
||||
|
||||
[language.haskell]
|
||||
filetypes = ["haskell"]
|
||||
roots = ["Setup.hs", "stack.yaml", "*.cabal"]
|
||||
command = "haskell-language-server-wrapper"
|
||||
args = ["--lsp"]
|
||||
settings_section = "haskell"
|
||||
[language.haskell.settings.haskell]
|
||||
# See https://haskell-language-server.readthedocs.io/en/latest/configuration.html
|
||||
# formattingProvider = "ormolu"
|
||||
|
||||
[language.html]
|
||||
filetypes = ["html"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-html-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
# # Commented out by default because you still need to set the paths in the JDT
|
||||
# # Language Server arguments below before this can become a valid configuration.
|
||||
[language.java]
|
||||
filetypes = ["java"]
|
||||
roots = [".git", "mvnw", "gradlew"]
|
||||
command = "jdtls"
|
||||
# args = [
|
||||
# "-Declipse.application=org.eclipse.jdt.ls.core.id1",
|
||||
# "-Dosgi.bundles.defaultStartLevel=4",
|
||||
# "-Declipse.product=org.eclipse.jdt.ls.core.product",
|
||||
# "-Dlog.level=ALL",
|
||||
# "-Dfile.encoding=utf-8",
|
||||
# "--add-modules=ALL-SYSTEM",
|
||||
# "--add-opens",
|
||||
# "java.base/java.util=ALL-UNNAMED",
|
||||
# "--add-opens",
|
||||
# "java.base/java.lang=ALL-UNNAMED",
|
||||
# "-noverify",
|
||||
# "-Xmx1G",
|
||||
# "-jar",
|
||||
# "/usr/share/java/jdtls/plugins/org.eclipse.equinox.launcher_1.6.900.v20240613-2009.jar"
|
||||
# "-configuration",
|
||||
# "/usr/share/jdtls/config_linux",
|
||||
# "-data",
|
||||
# # "/path/to/eclipse-workspace",
|
||||
# ]
|
||||
# [language.java.settings]
|
||||
# # See https://github.dev/eclipse/eclipse.jdt.ls
|
||||
# # "java.format.insertSpaces" = true
|
||||
|
||||
[language.javascript]
|
||||
filetypes = ["javascript"]
|
||||
roots = [".flowconfig"]
|
||||
command = "flow"
|
||||
args = ["lsp"]
|
||||
|
||||
[language.json]
|
||||
filetypes = ["json"]
|
||||
roots = ["package.json"]
|
||||
command = "json-languageserver"
|
||||
args = ["--stdio"]
|
||||
|
||||
# Requires Julia packages "LanguageServer", "StaticLint" and "SymbolServer"
|
||||
[language.julia]
|
||||
filetypes = ["julia"]
|
||||
roots = ["Project.toml", ".git", ".hg"]
|
||||
command = "julia"
|
||||
args = [
|
||||
"--startup-file=no",
|
||||
"--history-file=no",
|
||||
"-e",
|
||||
"""
|
||||
using LanguageServer;
|
||||
using Pkg;
|
||||
import StaticLint;
|
||||
import SymbolServer;
|
||||
import REPL;
|
||||
env_path = dirname(Pkg.Types.Context().env.project_file);
|
||||
server = LanguageServer.LanguageServerInstance(stdin, stdout, env_path, "");
|
||||
server.runlinter = true;
|
||||
run(server);
|
||||
""",
|
||||
]
|
||||
[language.julia.settings]
|
||||
# See https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# Format options. See https://github.com/julia-vscode/DocumentFormat.jl/blob/master/src/DocumentFormat.jl
|
||||
# "julia.format.indent" = 4
|
||||
# Lint options. See https://github.com/julia-vscode/StaticLint.jl/blob/master/src/linting/checks.jl
|
||||
# "julia.lint.call" = true
|
||||
# Other options, see https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
|
||||
# "julia.lint.run" = "true"
|
||||
|
||||
[language.latex]
|
||||
filetypes = ["latex"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "texlab"
|
||||
settings_section = "texlab"
|
||||
[language.latex.settings.texlab]
|
||||
# See https://github.com/latex-lsp/texlab/blob/master/docs/options.md
|
||||
#
|
||||
# Preview configuration for zathura with SyncTeX search.
|
||||
# For other PDF viewers see https://github.com/latex-lsp/texlab/blob/master/docs/previewing.md
|
||||
forwardSearch.executable = "zathura"
|
||||
forwardSearch.args = [
|
||||
"%p",
|
||||
"--synctex-forward", # Support texlab-forward-search
|
||||
"%l:1:%f",
|
||||
"--synctex-editor-command", # Inverse search: use Control+Left-Mouse-Button to jump to source.
|
||||
"""
|
||||
sh -c '
|
||||
echo "
|
||||
evaluate-commands -client $kak_client %{
|
||||
evaluate-commands -try-client %opt{jumpclient} %{
|
||||
edit -- %{input} %{line}
|
||||
}
|
||||
}
|
||||
" | kak -p $kak_session
|
||||
'
|
||||
""",
|
||||
]
|
||||
|
||||
[language.lua]
|
||||
filetypes = ["lua"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "lua-language-server"
|
||||
[language.lua.settings.Lua]
|
||||
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
|
||||
# diagnostics.enable = true
|
||||
|
||||
[language.nim]
|
||||
filetypes = ["nim"]
|
||||
roots = ["*.nimble", ".git", ".hg"]
|
||||
command = "nimlangserver"
|
||||
|
||||
[language.nix]
|
||||
filetypes = ["nix"]
|
||||
roots = ["flake.nix", "shell.nix", ".git", ".hg"]
|
||||
command = "rnix-lsp"
|
||||
|
||||
[language.ocaml]
|
||||
filetypes = ["ocaml"]
|
||||
roots = ["Makefile", "opam", "*.opam", "dune"]
|
||||
command = "ocamllsp"
|
||||
|
||||
[language.php]
|
||||
filetypes = ["php"]
|
||||
roots = [".htaccess", "composer.json"]
|
||||
command = "intelephense"
|
||||
args = ["--stdio"]
|
||||
settings_section = "intelephense"
|
||||
[language.php.settings]
|
||||
intelephense.storagePath = "/tmp/intelephense"
|
||||
|
||||
[language.python]
|
||||
filetypes = ["python"]
|
||||
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
|
||||
command = "pylsp"
|
||||
settings_section = "_"
|
||||
[language.python.settings._]
|
||||
# See https://github.com/python-lsp/python-lsp-server#configuration
|
||||
# pylsp.configurationSources = ["flake8"]
|
||||
|
||||
[language.r]
|
||||
filetypes = ["r"]
|
||||
roots = ["DESCRIPTION", ".git", ".hg"]
|
||||
command = "R"
|
||||
args = ["--slave", "-e", "languageserver::run()"]
|
||||
|
||||
[language.racket]
|
||||
filetypes = ["racket"]
|
||||
roots = ["info.rkt"]
|
||||
command = "racket"
|
||||
args = ["-l", "racket-langserver"]
|
||||
|
||||
[language.reason]
|
||||
filetypes = ["reason"]
|
||||
roots = ["package.json", "Makefile", ".git", ".hg"]
|
||||
command = "ocamllsp"
|
||||
|
||||
[language.ruby]
|
||||
filetypes = ["ruby"]
|
||||
roots = ["Gemfile"]
|
||||
command = "solargraph"
|
||||
args = ["stdio"]
|
||||
[language.ruby.settings]
|
||||
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
|
||||
# "solargraph.completion" = true
|
||||
|
||||
[language.rust]
|
||||
filetypes = ["rust"]
|
||||
roots = ["Cargo.toml"]
|
||||
command = "sh"
|
||||
args = [
|
||||
"-c",
|
||||
"""
|
||||
if path=$(rustup which rls 2>/dev/null); then
|
||||
"$path"
|
||||
else
|
||||
rls
|
||||
fi
|
||||
""",
|
||||
]
|
||||
[language.rust.settings.rust]
|
||||
# See https://github.com/rust-lang/rls#configuration
|
||||
# features = []
|
||||
|
||||
# [language.rust]
|
||||
# filetypes = ["rust"]
|
||||
# roots = ["Cargo.toml"]
|
||||
# command = "sh"
|
||||
# args = [
|
||||
# "-c",
|
||||
# """
|
||||
# if path=$(rustup which rust-analyzer 2>/dev/null); then
|
||||
# "$path"
|
||||
# else
|
||||
# rust-analyzer
|
||||
# fi
|
||||
# """,
|
||||
# ]
|
||||
# settings_section = "rust-analyzer"
|
||||
# [language.rust.settings.rust-analyzer]
|
||||
# hoverActions.enable = false # kak-lsp doesn't support this at the moment
|
||||
# # cargo.features = []
|
||||
# # See https://rust-analyzer.github.io/manual.html#configuration
|
||||
# # If you get 'unresolved proc macro' warnings, you have two options
|
||||
# # 1. The safe choice is two disable the warning:
|
||||
# diagnostics.disabled = ["unresolved-proc-macro"]
|
||||
# # 2. Or you can opt-in for proc macro support
|
||||
# procMacro.enable = true
|
||||
# cargo.loadOutDirsFromCheck = true
|
||||
# # See https://github.com/rust-analyzer/rust-analyzer/issues/6448
|
||||
|
||||
[language.terraform]
|
||||
filetypes = ["terraform"]
|
||||
roots = ["*.tf"]
|
||||
command = "terraform-ls"
|
||||
args = ["serve"]
|
||||
[language.terraform.settings.terraform-ls]
|
||||
# See https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md
|
||||
# rootModulePaths = []
|
||||
|
||||
[language.typescript]
|
||||
filetypes = ["typescript"]
|
||||
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
command = "typescript-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
# [language.typescript]
|
||||
# filetypes = ["typescript"]
|
||||
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
|
||||
# command = "deno"
|
||||
# args = ["lsp"]
|
||||
# [language.typescript.settings.deno]
|
||||
# enable = true
|
||||
# lint = true
|
||||
|
||||
[language.yaml]
|
||||
filetypes = ["yaml"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "yaml-language-server"
|
||||
args = ["--stdio"]
|
||||
[language.yaml.settings]
|
||||
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
|
||||
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
|
||||
# yaml.format.enable = true
|
||||
|
||||
[language.zig]
|
||||
filetypes = ["zig"]
|
||||
roots = ["build.zig"]
|
||||
command = "zls"
|
||||
|
||||
# Semantic tokens support
|
||||
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
|
||||
# for the default list of tokens and modifiers.
|
||||
# However, many language servers implement their own values.
|
||||
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
|
||||
# Examples:
|
||||
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/2645fb54ea1e764aff71dee0ecc8aceff3aabf56/client/src/common/semanticTokens.ts#L58
|
||||
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/f6da603c7fe56c19a275dc7bab1f30fe1ad39707/crates/ide/src/syntax_highlighting.rs#L42
|
||||
[[semantic_tokens]]
|
||||
token = "comment"
|
||||
face = "documentation"
|
||||
modifiers = ["documentation"]
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "comment"
|
||||
face = "comment"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "function"
|
||||
face = "function"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "keyword"
|
||||
face = "keyword"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "namespace"
|
||||
face = "module"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "operator"
|
||||
face = "operator"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "string"
|
||||
face = "string"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "type"
|
||||
face = "type"
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "variable"
|
||||
face = "default+d"
|
||||
modifiers = ["readonly"]
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "variable"
|
||||
face = "default+d"
|
||||
modifiers = ["constant"]
|
||||
|
||||
[[semantic_tokens]]
|
||||
token = "variable"
|
||||
face = "variable"
|
163
config/.config/kak/colors/catppuccin_macchiato.kak
Normal file
163
config/.config/kak/colors/catppuccin_macchiato.kak
Normal file
@ -0,0 +1,163 @@
|
||||
# Catppuccin Macchiato theme for Kakoune
|
||||
#
|
||||
# Taken and adapted from
|
||||
# <https://github.com/catppuccin/kakoune/blob/e52fb5c95f70c297fea1fd58613284817b5a50bd/colors/catppuccin_macchiato.kak>
|
||||
|
||||
# Color palette
|
||||
declare-option str rosewater "rgb:f4dbd6"
|
||||
declare-option str red "rgb:ed8796"
|
||||
declare-option str mauve "rgb:c6a0f6"
|
||||
declare-option str maroon "rgb:ee99a0"
|
||||
declare-option str pink "rgb:f5bde6"
|
||||
declare-option str cyan "rgb:7dc4e4"
|
||||
declare-option str yellow "rgb:eed49f"
|
||||
declare-option str green "rgb:a6da95"
|
||||
declare-option str white "rgb:cad3f5"
|
||||
declare-option str blue "rgb:8aadf4"
|
||||
declare-option str sky "rgb:91d7e3"
|
||||
declare-option str lavender "rgb:b7bdf8"
|
||||
declare-option str black1 "rgb:1e2030"
|
||||
declare-option str black2 "rgb:24273a"
|
||||
declare-option str black3 "rgb:363a4f"
|
||||
declare-option str orange "rgb:f5a97f"
|
||||
declare-option str teal "rgb:8bd5ca"
|
||||
declare-option str flamingo "rgb:f0c6c6"
|
||||
declare-option str gray0 "rgb:5b6078"
|
||||
declare-option str gray1 "rgb:6e738d"
|
||||
declare-option str bright_red "%opt{red}+b"
|
||||
declare-option str bright_green "%opt{green}+b"
|
||||
declare-option str bright_yellow "%opt{yellow}+b"
|
||||
declare-option str bright_blue "%opt{blue}+b"
|
||||
declare-option str bright_cyan "%opt{cyan}+b"
|
||||
declare-option str bright_white "%opt{white}+b"
|
||||
declare-option str foreground %opt{white}
|
||||
declare-option str background %opt{black2}
|
||||
declare-option str overlay0 "rgb:8087a2"
|
||||
declare-option str overlay1 "rgb:939ab7"
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{rosewater}"
|
||||
set-face global header "%opt{bright_red}"
|
||||
set-face global bold "%opt{mauve}"
|
||||
set-face global italic "%opt{lavender}"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{cyan}"
|
||||
set-face global link "%opt{green}"
|
||||
set-face global bullet "%opt{green}"
|
||||
set-face global list "%opt{white}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{white},%opt{background}"
|
||||
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
|
||||
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
|
||||
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
|
||||
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
|
||||
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
|
||||
set-face global LineNumbers "%opt{gray1},%opt{background}"
|
||||
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
|
||||
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
|
||||
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
|
||||
set-face global MenuBackground "%opt{white},%opt{black3}"
|
||||
set-face global MenuInfo "%opt{black1},%opt{blue}"
|
||||
set-face global Information "%opt{black1},%opt{lavender}"
|
||||
set-face global Error "%opt{red},%opt{black2}"
|
||||
set-face global StatusLine "%opt{white},%opt{black1}"
|
||||
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{background},%opt{green}"
|
||||
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
|
||||
set-face global StatusCursor "%opt{black1},%opt{lavender}"
|
||||
set-face global Prompt "%opt{green},%opt{black2}"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{black2}"
|
||||
set-face global Whitespace "%opt{gray1},%opt{background}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{background},%opt{background}"
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{orange}"
|
||||
set-face global type "%opt{rosewater}"
|
||||
set-face global variable "%opt{white}"
|
||||
set-face global module "%opt{maroon}"
|
||||
set-face global function "%opt{sky}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{blue}"
|
||||
set-face global operator "%opt{blue}"
|
||||
set-face global attribute "%opt{green}"
|
||||
set-face global comment "%opt{gray1}+i"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{pink}"
|
||||
set-face global builtin "%opt{lavender}+b"
|
||||
|
||||
# Tree-sitter (<https://git.sr.ht/~hadronized/kak-tree-sitter>)
|
||||
set-face global ts_attribute "%opt{blue}"
|
||||
set-face global ts_comment "%opt{overlay0}+i"
|
||||
set-face global ts_conceal "%opt{mauve}+i"
|
||||
set-face global ts_constant "%opt{orange}"
|
||||
set-face global ts_constant_builtin_boolean "%opt{sky}"
|
||||
set-face global ts_constant_character "%opt{yellow}"
|
||||
set-face global ts_constant_macro "%opt{mauve}"
|
||||
set-face global ts_constructor "%opt{cyan}"
|
||||
set-face global ts_diff_plus "%opt{green}"
|
||||
set-face global ts_diff_minus "%opt{red}"
|
||||
set-face global ts_diff_delta "%opt{blue}"
|
||||
set-face global ts_diff_delta_moved "%opt{mauve}"
|
||||
set-face global ts_error "%opt{red}+b"
|
||||
set-face global ts_function "%opt{blue}"
|
||||
set-face global ts_function_builtin "%opt{blue}+i"
|
||||
set-face global ts_function_macro "%opt{mauve}"
|
||||
set-face global ts_hint "%opt{blue}+b"
|
||||
set-face global ts_info "%opt{green}+b"
|
||||
set-face global ts_keyword "%opt{mauve}"
|
||||
set-face global ts_keyword_conditional "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_conditional "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_directive "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_import "%opt{mauve}+i"
|
||||
set-face global ts_keyword_directive "%opt{mauve}+i"
|
||||
set-face global ts_label "%opt{cyan}+i"
|
||||
set-face global ts_markup_bold "%opt{orange}+b"
|
||||
set-face global ts_markup_heading "%opt{red}"
|
||||
set-face global ts_markup_heading_1 "%opt{red}"
|
||||
set-face global ts_markup_heading_2 "%opt{mauve}"
|
||||
set-face global ts_markup_heading_3 "%opt{green}"
|
||||
set-face global ts_markup_heading_4 "%opt{yellow}"
|
||||
set-face global ts_markup_heading_5 "%opt{pink}"
|
||||
set-face global ts_markup_heading_6 "%opt{teal}"
|
||||
set-face global ts_markup_heading_marker "%opt{orange}+b"
|
||||
set-face global ts_markup_italic "%opt{pink}+i"
|
||||
set-face global ts_markup_list_checked "%opt{green}"
|
||||
set-face global ts_markup_list_numbered "%opt{blue}+i"
|
||||
set-face global ts_markup_list_unchecked "%opt{teal}"
|
||||
set-face global ts_markup_list_unnumbered "%opt{mauve}"
|
||||
set-face global ts_markup_link_label "%opt{blue}"
|
||||
set-face global ts_markup_link_url "%opt{teal}+u"
|
||||
set-face global ts_markup_link_uri "%opt{teal}+u"
|
||||
set-face global ts_markup_link_text "%opt{blue}"
|
||||
set-face global ts_markup_quote "%opt{gray1}"
|
||||
set-face global ts_markup_raw "%opt{green}"
|
||||
set-face global ts_markup_strikethrough "%opt{gray1}+s"
|
||||
set-face global ts_namespace "%opt{blue}+i"
|
||||
set-face global ts_operator "%opt{sky}"
|
||||
set-face global ts_property "%opt{sky}"
|
||||
set-face global ts_punctuation "%opt{overlay1}"
|
||||
set-face global ts_punctuation_special "%opt{sky}"
|
||||
set-face global ts_special "%opt{blue}"
|
||||
set-face global ts_spell "%opt{mauve}"
|
||||
set-face global ts_string "%opt{green}"
|
||||
set-face global ts_string_regex "%opt{orange}"
|
||||
set-face global ts_string_regexp "%opt{orange}"
|
||||
set-face global ts_string_escape "%opt{mauve}"
|
||||
set-face global ts_string_special "%opt{blue}"
|
||||
set-face global ts_string_special_path "%opt{green}"
|
||||
set-face global ts_string_special_symbol "%opt{mauve}"
|
||||
set-face global ts_string_symbol "%opt{red}"
|
||||
set-face global ts_tag "%opt{mauve}"
|
||||
set-face global ts_tag_error "%opt{red}"
|
||||
set-face global ts_text "%opt{white}"
|
||||
set-face global ts_text_title "%opt{mauve}"
|
||||
set-face global ts_type "%opt{yellow}"
|
||||
set-face global ts_type_enum_variant "%opt{flamingo}"
|
||||
set-face global ts_variable "%opt{white}"
|
||||
set-face global ts_variable_builtin "%opt{red}"
|
||||
set-face global ts_variable_other_member "%opt{teal}"
|
||||
set-face global ts_variable_parameter "%opt{maroon}+i"
|
||||
set-face global ts_warning "%opt{orange}+b"
|
166
config/.config/kak/colors/catppuccin_mocha.kak
Normal file
166
config/.config/kak/colors/catppuccin_mocha.kak
Normal file
@ -0,0 +1,166 @@
|
||||
# Catppuccint Mocha theme for Kakoune
|
||||
#
|
||||
# Taken and adapted from
|
||||
# <https://github.com/catppuccin/kakoune/blob/7f187d9da2867a7fda568b2135d29b9c00cfbb94/colors/catppuccin_mocha.kak>
|
||||
|
||||
# Catppuccin theme for Kakoune
|
||||
|
||||
# Color palette (see https://catppuccin.com/palette)
|
||||
declare-option str rosewater "rgb:f5e0dc"
|
||||
declare-option str flamingo "rgb:f2cdcd"
|
||||
declare-option str pink "rgb:f5c2e7"
|
||||
declare-option str mauve "rgb:cba6f7"
|
||||
declare-option str red "rgb:f38ba8"
|
||||
declare-option str maroon "rgb:eba0ac"
|
||||
declare-option str peach "rgb:fab387"
|
||||
declare-option str yellow "rgb:f9e2af"
|
||||
declare-option str green "rgb:a6e3a1"
|
||||
declare-option str teal "rgb:94e2d5"
|
||||
declare-option str sky "rgb:89dceb"
|
||||
declare-option str sapphire "rgb:74c7ec"
|
||||
declare-option str blue "rgb:89b4fa"
|
||||
declare-option str lavender "rgb:b4befe"
|
||||
declare-option str text "rgb:cdd6f4"
|
||||
declare-option str subtext1 "rgb:bac2de"
|
||||
declare-option str subtext0 "rgb:a6adc8"
|
||||
declare-option str overlay2 "rgb:9399b2"
|
||||
declare-option str overlay1 "rgb:7f849c"
|
||||
declare-option str overlay0 "rgb:6c7086"
|
||||
declare-option str surface2 "rgb:585b70"
|
||||
declare-option str surface1 "rgb:45475a"
|
||||
declare-option str surface0 "rgb:313244"
|
||||
declare-option str base "rgb:1e1e2e"
|
||||
declare-option str mantle "rgb:181825"
|
||||
declare-option str crust "rgb:11111b"
|
||||
|
||||
# Markup
|
||||
set-face global title "%opt{text}+b"
|
||||
set-face global header "%opt{subtext0}+b"
|
||||
set-face global bold "%opt{maroon}+b"
|
||||
set-face global italic "%opt{maroon}+i"
|
||||
set-face global mono "%opt{green}"
|
||||
set-face global block "%opt{sapphire}"
|
||||
set-face global link "%opt{blue}"
|
||||
set-face global bullet "%opt{peach}"
|
||||
set-face global list "%opt{peach}"
|
||||
|
||||
# Builtins
|
||||
set-face global Default "%opt{text},%opt{base}"
|
||||
set-face global PrimarySelection "%opt{text},%opt{surface2}"
|
||||
set-face global SecondarySelection "%opt{text},%opt{surface2}"
|
||||
set-face global PrimaryCursor "%opt{crust},%opt{rosewater}"
|
||||
set-face global SecondaryCursor "%opt{text},%opt{overlay0}"
|
||||
set-face global PrimaryCursorEol "%opt{surface2},%opt{lavender}"
|
||||
set-face global SecondaryCursorEol "%opt{surface2},%opt{overlay1}"
|
||||
set-face global LineNumbers "%opt{overlay1},%opt{base}"
|
||||
set-face global LineNumberCursor "%opt{rosewater},%opt{surface2}+b"
|
||||
set-face global LineNumbersWrapped "%opt{rosewater},%opt{surface2}"
|
||||
set-face global MenuForeground "%opt{text},%opt{surface1}+b"
|
||||
set-face global MenuBackground "%opt{text},%opt{surface0}"
|
||||
set-face global MenuInfo "%opt{crust},%opt{teal}"
|
||||
set-face global Information "%opt{crust},%opt{teal}"
|
||||
set-face global Error "%opt{crust},%opt{red}"
|
||||
set-face global DiagnosticError Error
|
||||
set-face global DiagnosticWarning "%opt{yellow}"
|
||||
set-face global StatusLine "%opt{text},%opt{mantle}"
|
||||
set-face global StatusLineMode "%opt{crust},%opt{yellow}"
|
||||
set-face global StatusLineInfo "%opt{crust},%opt{teal}"
|
||||
set-face global StatusLineValue "%opt{crust},%opt{yellow}"
|
||||
set-face global StatusCursor "%opt{crust},%opt{rosewater}"
|
||||
set-face global Prompt "%opt{teal},%opt{base}+b"
|
||||
set-face global MatchingChar "%opt{maroon},%opt{base}"
|
||||
set-face global Whitespace "%opt{overlay1},%opt{base}+f"
|
||||
set-face global WrapMarker Whitespace
|
||||
set-face global BufferPadding "%opt{base},%opt{base}"
|
||||
|
||||
|
||||
# Code
|
||||
set-face global value "%opt{peach}"
|
||||
set-face global type "%opt{yellow}"
|
||||
set-face global variable "%opt{text}"
|
||||
set-face global module "%opt{maroon}"
|
||||
set-face global function "%opt{blue}"
|
||||
set-face global string "%opt{green}"
|
||||
set-face global keyword "%opt{mauve}"
|
||||
set-face global operator "%opt{sky}"
|
||||
set-face global attribute "%opt{yellow}"
|
||||
set-face global comment "%opt{overlay1}+i"
|
||||
set-face global documentation comment
|
||||
set-face global meta "%opt{yellow}"
|
||||
set-face global builtin "%opt{red}"
|
||||
|
||||
# Tree-sitter (<https://git.sr.ht/~hadronized/kak-tree-sitter>)
|
||||
# Copied from catppuccin_macchiato.kak
|
||||
# Adjusted with https://github.com/catppuccin/catppuccin/blob/main/docs/style-guide.md
|
||||
set-face global ts_attribute attribute
|
||||
set-face global ts_comment comment
|
||||
set-face global ts_conceal "%opt{mauve}+i"
|
||||
set-face global ts_constant "%opt{peach}"
|
||||
set-face global ts_constant_builtin_boolean "%opt{sky}"
|
||||
set-face global ts_constant_character "%opt{yellow}"
|
||||
set-face global ts_constant_macro "%opt{mauve}"
|
||||
set-face global ts_constructor "%opt{sky}"
|
||||
set-face global ts_diff_plus "%opt{green}"
|
||||
set-face global ts_diff_minus "%opt{red}"
|
||||
set-face global ts_diff_delta "%opt{blue}"
|
||||
set-face global ts_diff_delta_moved "%opt{mauve}"
|
||||
set-face global ts_error "%opt{red}+b"
|
||||
set-face global ts_function "%opt{blue}"
|
||||
set-face global ts_function_builtin "%opt{blue}+i"
|
||||
set-face global ts_function_macro "%opt{mauve}"
|
||||
set-face global ts_hint "%opt{blue}+b"
|
||||
set-face global ts_info "%opt{teal}+b"
|
||||
set-face global ts_keyword "%opt{mauve}"
|
||||
set-face global ts_keyword_conditional "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_conditional "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_directive "%opt{mauve}+i"
|
||||
set-face global ts_keyword_control_import "%opt{mauve}+i"
|
||||
set-face global ts_keyword_directive "%opt{mauve}+i"
|
||||
set-face global ts_label "%opt{sky}+i"
|
||||
set-face global ts_markup_bold "%opt{peach}+b"
|
||||
set-face global ts_markup_heading "%opt{red}"
|
||||
set-face global ts_markup_heading_1 "%opt{red}"
|
||||
set-face global ts_markup_heading_2 "%opt{mauve}"
|
||||
set-face global ts_markup_heading_3 "%opt{green}"
|
||||
set-face global ts_markup_heading_4 "%opt{yellow}"
|
||||
set-face global ts_markup_heading_5 "%opt{pink}"
|
||||
set-face global ts_markup_heading_6 "%opt{teal}"
|
||||
set-face global ts_markup_heading_marker "%opt{peach}+b"
|
||||
set-face global ts_markup_italic "%opt{pink}+i"
|
||||
set-face global ts_markup_list_checked "%opt{green}"
|
||||
set-face global ts_markup_list_numbered "%opt{blue}+i"
|
||||
set-face global ts_markup_list_unchecked "%opt{teal}"
|
||||
set-face global ts_markup_list_unnumbered "%opt{mauve}"
|
||||
set-face global ts_markup_link_label "%opt{blue}"
|
||||
set-face global ts_markup_link_url "%opt{teal}+u"
|
||||
set-face global ts_markup_link_uri "%opt{teal}+u"
|
||||
set-face global ts_markup_link_text "%opt{blue}"
|
||||
set-face global ts_markup_quote "%opt{overlay1}"
|
||||
set-face global ts_markup_raw "%opt{green}"
|
||||
set-face global ts_markup_strikethrough "%opt{overlay1}+s"
|
||||
set-face global ts_namespace "%opt{blue}+i"
|
||||
set-face global ts_operator "%opt{sky}"
|
||||
set-face global ts_property "%opt{sky}"
|
||||
set-face global ts_punctuation "%opt{overlay1}"
|
||||
set-face global ts_punctuation_special "%opt{sky}"
|
||||
set-face global ts_special "%opt{blue}"
|
||||
set-face global ts_spell "%opt{mauve}"
|
||||
set-face global ts_string string
|
||||
set-face global ts_string_regex "%opt{pink}"
|
||||
set-face global ts_string_regexp "%opt{pink}"
|
||||
set-face global ts_string_escape "%opt{flamingo}"
|
||||
set-face global ts_string_special "%opt{blue}"
|
||||
set-face global ts_string_special_path "%opt{green}"
|
||||
set-face global ts_string_special_symbol "%opt{mauve}"
|
||||
set-face global ts_string_symbol "%opt{red}"
|
||||
set-face global ts_tag "%opt{mauve}"
|
||||
set-face global ts_tag_error "%opt{red}"
|
||||
set-face global ts_text "%opt{text}"
|
||||
set-face global ts_text_title "%opt{mauve}"
|
||||
set-face global ts_type type
|
||||
set-face global ts_type_enum_variant "%opt{teal}"
|
||||
set-face global ts_variable variable
|
||||
set-face global ts_variable_builtin builtin
|
||||
set-face global ts_variable_other_member "%opt{teal}"
|
||||
set-face global ts_variable_parameter "%opt{maroon}+i"
|
||||
set-face global ts_warning "%opt{yellow}+b"
|
1
config/.config/kak/colors/kakoune
Symbolic link
1
config/.config/kak/colors/kakoune
Symbolic link
@ -0,0 +1 @@
|
||||
../plugins/base16-kakoune/colors/
|
423
config/.config/kak/kakrc
Normal file
423
config/.config/kak/kakrc
Normal file
@ -0,0 +1,423 @@
|
||||
### Plugins ###
|
||||
evaluate-commands %sh{
|
||||
plugins="$kak_config/plugins"
|
||||
mkdir -p "$plugins"
|
||||
[ ! -e "$plugins/plug.kak" ] && \
|
||||
git clone -q https://github.com/andreyorst/plug.kak.git "$plugins/plug.kak"
|
||||
printf "%s\n" "source '$plugins/plug.kak/rc/plug.kak'"
|
||||
}
|
||||
|
||||
plug "andreyorst/plug.kak" noload
|
||||
|
||||
plug "andreyorst/smarttab.kak" defer smarttab %{
|
||||
set-option global softtabstop 4
|
||||
}
|
||||
|
||||
plug "occivink/kakoune-sudo-write"
|
||||
|
||||
plug "kak-lsp/kak-lsp" do %{
|
||||
cargo install --locked --force --path .
|
||||
}
|
||||
|
||||
# plug "gustavo-hms/luar" %{
|
||||
# plug "gustavo-hms/peneira" %{
|
||||
# require-module peneira
|
||||
# }
|
||||
# }
|
||||
|
||||
# # Color Themes
|
||||
plug "tinted-theming/base16-kakoune"
|
||||
|
||||
### End Of Plugins ###
|
||||
|
||||
# set-option global luar_interpreter luajit
|
||||
|
||||
## Treesitter ##
|
||||
|
||||
eval %sh{ kak-tree-sitter -dks --with-highlighting --with-text-objects --session $kak_session }
|
||||
#eval %sh{ kak-tree-sitter -dks --with-text-objects --session $kak_session }
|
||||
#eval %sh{ kak-tree-sitter -dks --with-highlighting --session $kak_session }
|
||||
|
||||
evaluate-commands %sh{
|
||||
echo "colorscheme base16-$BASE16_THEME"
|
||||
}
|
||||
|
||||
## Highlighting ##
|
||||
hook global WinCreate .* %{ add-highlighter window/number-lines number-lines -relative -hlcursor}
|
||||
add-highlighter global/ show-matching
|
||||
add-highlighter global/ column 80 MenuForeground
|
||||
add-highlighter global/ show-whitespaces
|
||||
|
||||
## Formatting ##
|
||||
define-command enable-autofmt -docstring 'enable autoformatting of buffer' %{
|
||||
|
||||
|
||||
hook global -group autofmt BufSetOption filetype=(zig) %{
|
||||
set-option buffer formatcmd 'zig fmt --stdin'
|
||||
|
||||
hook -group autofmt buffer BufOpenFile .* %{
|
||||
format
|
||||
}
|
||||
|
||||
hook -group autofmt buffer BufWritePre .* %{
|
||||
format
|
||||
}
|
||||
}
|
||||
|
||||
hook global -group autofmt BufSetOption filetype=(html) %{
|
||||
set-option buffer formatcmd 'prettier --tab-width 4 --parser html'
|
||||
|
||||
hook -group autofmt buffer BufOpenFile .* %{
|
||||
format
|
||||
}
|
||||
|
||||
hook -group autofmt buffer BufWritePre .* %{
|
||||
format
|
||||
}
|
||||
}
|
||||
|
||||
hook global -group autofmt BufSetOption filetype=(css) %{
|
||||
set-option buffer formatcmd 'prettier --tab-width 4 --parser css'
|
||||
|
||||
hook -group autofmt buffer BufOpenFile .* %{
|
||||
format
|
||||
}
|
||||
|
||||
hook -group autofmt buffer BufWritePre .* %{
|
||||
format
|
||||
}
|
||||
}
|
||||
|
||||
hook global -group autofmt BufSetOption filetype=(javascript) %{
|
||||
set-option buffer formatcmd 'prettier --tab-width 4 --parser typescript'
|
||||
|
||||
hook -group autofmt buffer BufOpenFile .* %{
|
||||
format
|
||||
}
|
||||
|
||||
hook -group autofmt buffer BufWritePre .* %{
|
||||
format
|
||||
}
|
||||
}
|
||||
|
||||
hook global -group autofmt BufSetOption filetype=(go) %{
|
||||
set-option buffer formatcmd 'gofmt'
|
||||
|
||||
hook -group autofmt buffer BufOpenFile .* %{
|
||||
format
|
||||
}
|
||||
|
||||
hook -group autofmt buffer BufWritePre .* %{
|
||||
format
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command disable-autofmt -docstring 'disable autoformatting of buffer' %{
|
||||
remove-hooks global autofmt
|
||||
}
|
||||
|
||||
enable-autofmt
|
||||
|
||||
|
||||
## Indentation ##
|
||||
set global tabstop 4
|
||||
set global indentwidth 4
|
||||
hook global WinSetOption filetype=.* expandtab
|
||||
hook global WinSetOption filetype=(makefile|gas) noexpandtab
|
||||
hook global BufCreate .* %{
|
||||
editorconfig-load
|
||||
autoconfigtab
|
||||
}
|
||||
|
||||
define-command sleuth -docstring 'Heuristically set buffer options' %{
|
||||
try %{
|
||||
evaluate-commands -draft %{
|
||||
# Search the first indent level
|
||||
execute-keys 'gg' '/' '^\h+' '<ret>'
|
||||
|
||||
# Tab vs. Space
|
||||
# https://youtu.be/V7PLxL8jIl8
|
||||
try %{
|
||||
execute-keys '<a-k>' '\t' '<ret>'
|
||||
#set-option buffer indentwidth 0
|
||||
noexpandtab
|
||||
} catch %{
|
||||
set-option buffer indentwidth %val{selection_length}
|
||||
expandtab
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command git-status -docstring 'Show git diff' %{
|
||||
hook -group git-status global BufOpenFile .* %{
|
||||
git show-diff
|
||||
}
|
||||
|
||||
hook -group git-status global BufWritePost .* %{
|
||||
git show-diff
|
||||
}
|
||||
}
|
||||
|
||||
define-command disable-git-status -docstring 'Disable git diff gutter' %{
|
||||
remove-hooks global git-status
|
||||
}
|
||||
|
||||
define-command sleuth-enable -docstring 'Enable sleuth' %{
|
||||
# Run sleuth when opening and saving files.
|
||||
hook -group sleuth global BufOpenFile .* %{
|
||||
sleuth
|
||||
}
|
||||
|
||||
hook -group sleuth global BufWritePost .* %{
|
||||
sleuth
|
||||
}
|
||||
}
|
||||
|
||||
define-command sleuth-disable -docstring 'Disable sleuth' %{
|
||||
remove-hooks global sleuth
|
||||
}
|
||||
|
||||
## LSP ##
|
||||
lsp-enable
|
||||
lsp-auto-hover-enable
|
||||
|
||||
lsp-inlay-diagnostics-enable global
|
||||
hook global WinSetOption filetype=(c|zig|rust|python|ruby|lua|java|html|css) %{
|
||||
hook window -group semantic-tokens BufReload .* lsp-semantic-tokens
|
||||
hook window -group semantic-tokens NormalIdle .* lsp-semantic-tokens
|
||||
hook window -group semantic-tokens InsertIdle .* lsp-semantic-tokens
|
||||
hook -once -always window WinSetOption filetype=.* %{
|
||||
remove-hooks window semantic-tokens
|
||||
}
|
||||
}
|
||||
|
||||
face global InfoDefault Information
|
||||
face global InfoBlock Information
|
||||
face global InfoBlockQuote Information
|
||||
face global InfoBullet Information
|
||||
face global InfoHeader Information
|
||||
face global InfoLink Information
|
||||
face global InfoLinkMono Information
|
||||
face global InfoMono Information
|
||||
face global InfoRule Information
|
||||
face global InfoDiagnosticError Information
|
||||
face global InfoDiagnosticHint Information
|
||||
face global InfoDiagnosticInformation Information
|
||||
face global InfoDiagnosticWarning Information
|
||||
|
||||
set-option global lsp_config %{
|
||||
}
|
||||
|
||||
define-command -docstring 'Invoke fzf to select a buffer' fzf-buffer %{
|
||||
evaluate-commands %sh{
|
||||
BUFFER=$(
|
||||
(
|
||||
eval "set -- $kak_buflist"
|
||||
while [ $# -gt 0 ]; do
|
||||
printf "%s\0" "$1"
|
||||
shift
|
||||
done
|
||||
) |
|
||||
fzf-tmux --cycle -p 80%,90% --read0 --preview='bat --theme=base16-256 --color=always {} 2>/dev/null'
|
||||
)
|
||||
BUFFER=${BUFFER/\'/\'\'}
|
||||
if [ -n "$BUFFER" ]; then
|
||||
printf "buffer %s" "${BUFFER}"
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'live grep' live-grep %{
|
||||
evaluate-commands %sh{
|
||||
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(rfv.sh)"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'exact grep' exact-grep %{
|
||||
evaluate-commands %sh{
|
||||
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(rfve.sh)"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'search contents of current file' file-search %{
|
||||
evaluate-commands -save-regs '"' %{
|
||||
set-register dquote %sh{ mktemp }
|
||||
execute-keys -draft '%<a-|> cat > $kak_reg_dquote<ret>'
|
||||
evaluate-commands %sh{
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(rfs.sh ${kak_reg_dquote} ${kak_buffile})"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
rm $kak_reg_dquote
|
||||
fi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'search contents of current file with regex' regex-file-search %{
|
||||
evaluate-commands -save-regs '"' %{
|
||||
set-register dquote %sh{ mktemp }
|
||||
execute-keys -draft '%<a-|> cat > $kak_reg_dquote<ret>'
|
||||
evaluate-commands %sh{
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(rgrs.sh ${kak_reg_dquote} ${kak_buffile})"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
rm $kak_reg_dquote
|
||||
fi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'Invoke fzf to open a file' -params 0 fzf-edit %{
|
||||
evaluate-commands %sh{
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(fd -t f . |TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 80%,90% --preview='bat --theme=base16-256 --color=always {} 2>/dev/null || cat {} 2>/dev/null')"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'Invoke fzf to open a file local to the current file' -params 0 fzf-edit-local %{
|
||||
evaluate-commands %sh{
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
dir="$(get_local_path ${kak_buffile})"
|
||||
if [ -n "$dir" ]; then
|
||||
file="$(fd -u -t f . $dir |TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 80%,90% --preview='bat --theme=base16-256 --color=always {} 2>/dev/null || cat {} 2>/dev/null')"
|
||||
fi
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'Pick project' -params 0 switch-project %{
|
||||
evaluate-commands %sh{
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
proj="$(cat ~/.scripts/projects | TMUX="${kak_client_env_TMUX}" fzf-tmux --cycle -p 80%,90% | cut -d' ' -f1)"
|
||||
if [ -n "$proj" ]; then
|
||||
printf "cd %s\n" "$proj"
|
||||
printf 'fzf-edit\n'
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'Project wide search' project-search %{
|
||||
evaluate-commands %sh{
|
||||
|
||||
if [ -z "${kak_client_env_TMUX}" ]; then
|
||||
printf 'fail "client was not started under tmux"\n'
|
||||
else
|
||||
file="$(rgfs.sh)"
|
||||
if [ -n "$file" ]; then
|
||||
printf "edit %s\n" "$file"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
define-command -docstring 'Print Working Directory' -params 0 pwd %{
|
||||
evaluate-commands echo %sh{ echo "$(pwd)"}
|
||||
}
|
||||
|
||||
define-command -docstring 'copy to clipboard' xcopy %{
|
||||
execute-keys '<a-|>xclip -selection clipboard -i<ret>'
|
||||
}
|
||||
|
||||
define-command -docstring 'paste from clipboard' xpaste %{
|
||||
evaluate-commands -save-regs '"' %{
|
||||
set-register dquote %sh{ xclip -selection clipboard -o }
|
||||
execute-keys 'p'
|
||||
}
|
||||
}
|
||||
|
||||
declare-user-mode config
|
||||
map -docstring 'enter config mode' global user e ':enter-user-mode config<ret>'
|
||||
map -docstring 'edit kakoune config' global config k ':cd ~/.config/kak/<ret>:e ./kakrc<ret>'
|
||||
map -docstring 'edit tmux config' global config t ':e ~/.tmux.conf<ret>'
|
||||
map -docstring 'edit bash config' global config b ':e ~/.bashrc<ret>'
|
||||
map -docstring 'edit scripts folder' global config s ':cd ~/.scripts<ret>:fzf-edit<ret>'
|
||||
map -docstring 'edit .config folder' global config c ':cd ~/.config<ret>:fzf-edit<ret>'
|
||||
|
||||
declare-user-mode buffer
|
||||
map -docstring 'enter buffer mode' global user b ':enter-user-mode buffer<ret>'
|
||||
map -docstring 'next buffer' global buffer n ':buffer-next<ret>'
|
||||
map -docstring 'previous buffer' global buffer p ':buffer-previous<ret>'
|
||||
map -docstring 'close current buffer' global buffer d ':delete-buffer!<ret>'
|
||||
map -docstring 'write and close current buffer' global buffer w ':w<ret>:db<ret>'
|
||||
map -docstring 'list and select a buffer' global buffer b ':fzf-buffer<ret>'
|
||||
|
||||
declare-user-mode find
|
||||
map -docstring 'enter find mode' global user f ':enter-user-mode find<ret>'
|
||||
map -docstring 'find files' global find f ':fzf-edit<ret>'
|
||||
map -docstring 'find tags for the current project' global find t ':ctags-search '
|
||||
map -docstring 'find line in current file' global find l ':file-search<ret>'
|
||||
map -docstring 'find line in current file with regex' global find L ':regex-file-search<ret>'
|
||||
map -docstring 'find files in current directory' global find F ':fzf-edit-local<ret>'
|
||||
map -docstring "grep file contents recursively" global find g ':live-grep<ret>'
|
||||
map -docstring "grep exact file contents recursively" global find e ':exact-grep<ret>'
|
||||
map -docstring 'project wide search' global find p ':project-search<ret>'
|
||||
|
||||
map -docstring 'enter lsp mode' global user l ':enter-user-mode lsp<ret>'
|
||||
map -docstring 'goto definition (tag)' global lsp t '<a-i>w:ctags-search<ret>'
|
||||
|
||||
map -docstring 'enter treesitter mode' global user t ':enter-user-mode tree-sitter<ret>'
|
||||
map -docstring 'enter treesitter search mode' global user s ':enter-user-mode tree-sitter-search<ret>'
|
||||
|
||||
declare-user-mode tmux
|
||||
map -docstring 'enter tmux/window mode' global user w ':enter-user-mode tmux<ret>'
|
||||
map -docstring 'vertical split' global tmux v ':tmux-terminal-horizontal kak -c %val{session}<ret>'
|
||||
map -docstring 'horizontal split' global tmux h ':tmux-terminal-vertical kak -c %val{session}<ret>'
|
||||
map -docstring 'new tab' global tmux t ':tmux-terminal-window kak -c %val{session}<ret>'
|
||||
map -docstring 'vertical terminal split' global tmux V ':tmux-repl-horizontal bash<ret>'
|
||||
map -docstring 'horizontal terminal split' global tmux H ':tmux-repl-vertical bash<ret>'
|
||||
map -docstring 'new terminal tab' global tmux T ':tmux-repl-window<ret>'
|
||||
map -docstring 'new git window' global tmux g ':tmux-terminal-window lazygit<ret>'
|
||||
|
||||
declare-user-mode project
|
||||
map -docstring 'enter project mode' global user P ':enter-user-mode project<ret>'
|
||||
map -docstring 'open project' global project o ':switch-project<ret>'
|
||||
|
||||
map -docstring 'enter man mode' global user m ':enter-user-mode man<ret>'
|
||||
|
||||
#map -docstring 'clipboard yank' global user y '<a-|>clip.exe<ret>'
|
||||
map -docstring 'clipboard yank' global user y ':xcopy<ret>'
|
||||
#map -docstring 'clipboard paste' global user p '|powershell.exe -C Get-Clipboard | tr -d "\r"<ret>'
|
||||
map -docstring 'clipboard paste' global user p ':xpaste<ret>'
|
||||
|
||||
map -docstring 'quit kakoune' global user q ':q<ret>'
|
||||
map -docstring 'toggle comments' global user c ':comment-line<ret>'
|
4
config/.config/kak/plugins/.build/kak-lsp/hooks
Normal file
4
config/.config/kak/plugins/.build/kak-lsp/hooks
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
set -e
|
||||
|
||||
cargo install --locked --force --path .
|
19
config/.config/kak/plugins/.build/kakoune-discord/config
Normal file
19
config/.config/kak/plugins/.build/kakoune-discord/config
Normal file
@ -0,0 +1,19 @@
|
||||
try %{
|
||||
|
||||
discord-presence-enable
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'kakoune-discord' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'kakoune-discord' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
2
config/.config/kak/plugins/.build/kakoune-discord/hooks
Normal file
2
config/.config/kak/plugins/.build/kakoune-discord/hooks
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
cargo install --path . --force
|
23
config/.config/kak/plugins/.build/kakoune-rainbow/config
Normal file
23
config/.config/kak/plugins/.build/kakoune-rainbow/config
Normal file
@ -0,0 +1,23 @@
|
||||
try %{
|
||||
|
||||
require-module rainbow
|
||||
# suggested mapping
|
||||
# # map global user r ": rainbow<ret>" -docstring "rainbow brackets"
|
||||
# # map global user R ": rmhl window/ranges_rainbow_specs<ret>" \
|
||||
# # -docstring "remove rainbow highlighter"
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'kakoune-rainbow' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'kakoune-rainbow' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
1
config/.config/kak/plugins/.build/kakoune-rainbow/domain
Normal file
1
config/.config/kak/plugins/.build/kakoune-rainbow/domain
Normal file
@ -0,0 +1 @@
|
||||
gitlab.com
|
@ -0,0 +1,19 @@
|
||||
try %{
|
||||
|
||||
# configuration here
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'kakoune-smooth-scroll' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'kakoune-smooth-scroll' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
21
config/.config/kak/plugins/.build/luar/config
Normal file
21
config/.config/kak/plugins/.build/luar/config
Normal file
@ -0,0 +1,21 @@
|
||||
try %{
|
||||
|
||||
plug "gustavo-hms/peneira" %{
|
||||
require-module peneira
|
||||
}
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'luar' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'luar' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
19
config/.config/kak/plugins/.build/pandoc.kak/config
Normal file
19
config/.config/kak/plugins/.build/pandoc.kak/config
Normal file
@ -0,0 +1,19 @@
|
||||
try %{
|
||||
|
||||
# your config
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'pandoc.kak' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'pandoc.kak' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
19
config/.config/kak/plugins/.build/peneira/config
Normal file
19
config/.config/kak/plugins/.build/peneira/config
Normal file
@ -0,0 +1,19 @@
|
||||
try %{
|
||||
|
||||
require-module peneira
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'peneira' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'peneira' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
25
config/.config/kak/plugins/.build/tagbar.kak/config
Normal file
25
config/.config/kak/plugins/.build/tagbar.kak/config
Normal file
@ -0,0 +1,25 @@
|
||||
try %{
|
||||
|
||||
# if you have wrap highlighter enamled in you configuration
|
||||
# files it's better to turn it off for tagbar, using this hook:
|
||||
hook global WinSetOption filetype=tagbar %{
|
||||
remove-highlighter window/wrap
|
||||
# you can also disable rendering whitespaces here, line numbers, and
|
||||
# matching characters
|
||||
}
|
||||
} catch %{
|
||||
echo -debug "Error while evaluating 'tagbar.kak' configuration: %val{error}"
|
||||
|
||||
set-option -add current plug_conf_errors "Error while evaluating 'tagbar.kak' configuration:"
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n " }
|
||||
set-option -add current plug_conf_errors %val{error}
|
||||
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
|
||||
|
||||
hook -once -group plug-conf-err global WinDisplay .* %{
|
||||
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
|
||||
on-key %{
|
||||
info -style modal
|
||||
execute-keys -with-maps -with-hooks %val{key}
|
||||
}
|
||||
}
|
||||
}
|
0
config/.config/mutt/.mailsynclastrun
Normal file
0
config/.config/mutt/.mailsynclastrun
Normal file
22
config/.config/mutt/accounts/chalupmc@rose-hulman.edu.muttrc
Normal file
22
config/.config/mutt/accounts/chalupmc@rose-hulman.edu.muttrc
Normal file
@ -0,0 +1,22 @@
|
||||
# vim: filetype=neomuttrc
|
||||
# muttrc file for account chalupmc@rose-hulman.edu
|
||||
set realname = "chalupmc"
|
||||
set from = "chalupmc@rose-hulman.edu"
|
||||
set sendmail = "msmtp -a chalupmc@rose-hulman.edu"
|
||||
alias me chalupmc <chalupmc@rose-hulman.edu>
|
||||
set folder = "/home/mikec/.local/share/mail/chalupmc@rose-hulman.edu"
|
||||
set header_cache = /home/mikec/.cache/mutt-wizard/chalupmc@rose-hulman.edu/headers
|
||||
set message_cachedir = /home/mikec/.cache/mutt-wizard/chalupmc@rose-hulman.edu/bodies
|
||||
set mbox_type = Maildir
|
||||
set hostname = "rose-hulman.edu"
|
||||
source /usr/share/mutt-wizard/switch.muttrc
|
||||
set spoolfile = +INBOX
|
||||
set postponed = +Drafts
|
||||
set trash = +Trash
|
||||
set record = +Sent
|
||||
|
||||
macro index o "<shell-escape>mw -y chalupmc@rose-hulman.edu<enter>" "run mbsync to sync chalupmc@rose-hulman.edu"
|
||||
macro index \eg "<enter-command>unset wait_key<enter><shell-escape>gpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; /usr/libexec/gpg-wks-client --create \$eFGPT \$eID | msmtp --read-envelope-from --read-recipients -a chalupmc@rose-hulman.edu<enter>" "publish GPG key to WKS provider"
|
||||
macro index \eh "<pipe-message>/usr/libexec/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a chalupmc@rose-hulman.edu<enter>" "confirm GPG publication"
|
||||
|
||||
mailboxes "=INBOX" "=Drafts" "=Junk" "=Trash" "=Sent" "=Archive"
|
19
config/.config/mutt/accounts/mikec@mchalupiak.com.muttrc
Normal file
19
config/.config/mutt/accounts/mikec@mchalupiak.com.muttrc
Normal file
@ -0,0 +1,19 @@
|
||||
# vim: filetype=neomuttrc
|
||||
# muttrc file for account mikec@mchalupiak.com
|
||||
set real_name = "mikec"
|
||||
set from = "mikec@mchalupiak.com"
|
||||
set sendmail = "msmtp -a mikec@mchalupiak.com"
|
||||
alias me mikec <mikec@mchalupiak.com>
|
||||
set folder = "/home/mikec/.local/share/mail/mikec@mchalupiak.com"
|
||||
set header_cache = "/home/mikec/.cache/mutt-wizard/mikec_mchalupiak.com/headers"
|
||||
set message_cachedir = "/home/mikec/.cache/mutt-wizard/mikec_mchalupiak.com/bodies"
|
||||
set mbox_type = Maildir
|
||||
set hostname = "mchalupiak.com"
|
||||
source /usr/share/mutt-wizard/switch.muttrc
|
||||
set spool_file = "+INBOX"
|
||||
set postponed = "+Drafts"
|
||||
set trash = "+Trash"
|
||||
set record = "+Sent"
|
||||
|
||||
macro index o "<shell-escape>mailsync mikec@mchalupiak.com<enter>" "sync mikec@mchalupiak.com"
|
||||
mailboxes "=Sent" "=Drafts" "=Junk" "=INBOX"
|
@ -0,0 +1,22 @@
|
||||
# vim: filetype=neomuttrc
|
||||
# muttrc file for account mikecchalupiak@outlook.com
|
||||
set realname = "mikecchalupiak"
|
||||
set from = "mikecchalupiak@outlook.com"
|
||||
set sendmail = "msmtp -a mikecchalupiak@outlook.com"
|
||||
alias me mikecchalupiak <mikecchalupiak@outlook.com>
|
||||
set folder = "/home/mikec/.local/share/mail/mikecchalupiak@outlook.com"
|
||||
set header_cache = /home/mikec/.cache/mutt-wizard/mikecchalupiak@outlook.com/headers
|
||||
set message_cachedir = /home/mikec/.cache/mutt-wizard/mikecchalupiak@outlook.com/bodies
|
||||
set mbox_type = Maildir
|
||||
set hostname = "outlook.com"
|
||||
source /usr/share/mutt-wizard/switch.muttrc
|
||||
set spoolfile = +INBOX
|
||||
set postponed = +Drafts
|
||||
set trash = +Trash
|
||||
set record = +Sent
|
||||
|
||||
macro index o "<shell-escape>mw -y mikecchalupiak@outlook.com<enter>" "run mbsync to sync mikecchalupiak@outlook.com"
|
||||
macro index \eg "<enter-command>unset wait_key<enter><shell-escape>gpg --list-secret-keys; printf 'Enter email ID of user to publish: '; read eID; printf 'Enter fingerprint of GPG key to publish: '; read eFGPT; /usr/libexec/gpg-wks-client --create \$eFGPT \$eID | msmtp --read-envelope-from --read-recipients -a mikecchalupiak@outlook.com<enter>" "publish GPG key to WKS provider"
|
||||
macro index \eh "<pipe-message>/usr/libexec/gpg-wks-client --receive | msmtp --read-envelope-from --read-recipients -a mikecchalupiak@outlook.com<enter>" "confirm GPG publication"
|
||||
|
||||
mailboxes "=INBOX" "=Drafts" "=Junk" "=Trash" "=Sent" "=Archive"
|
BIN
config/.config/mutt/chalupmc
Normal file
BIN
config/.config/mutt/chalupmc
Normal file
Binary file not shown.
BIN
config/.config/mutt/mikecchalupiak
Normal file
BIN
config/.config/mutt/mikecchalupiak
Normal file
Binary file not shown.
6
config/.config/mutt/muttrc
Normal file
6
config/.config/mutt/muttrc
Normal file
@ -0,0 +1,6 @@
|
||||
# vim: filetype=neomuttrc
|
||||
source /usr/share/mutt-wizard/mutt-wizard.muttrc
|
||||
source /home/mikec/.config/mutt/accounts/mikecchalupiak@outlook.com.muttrc
|
||||
macro index,pager i1 '<sync-mailbox><enter-command>source /home/mikec/.config/mutt/accounts/mikecchalupiak@outlook.com.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to mikecchalupiak@outlook.com"
|
||||
macro index,pager i2 '<sync-mailbox><enter-command>source /home/mikec/.config/mutt/accounts/chalupmc@rose-hulman.edu.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to chalupmc@rose-hulman.edu"
|
||||
macro index,pager i3 '<sync-mailbox><enter-command>source /home/mikec/.config/mutt/accounts/mikec@mchalupiak.com.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to mikec@mchalupiak.com"
|
BIN
config/.config/newsboat/cache.db
Normal file
BIN
config/.config/newsboat/cache.db
Normal file
Binary file not shown.
23
config/.config/newsboat/config
Normal file
23
config/.config/newsboat/config
Normal file
@ -0,0 +1,23 @@
|
||||
# unbind keys
|
||||
# unbind-key ENTER
|
||||
unbind-key j
|
||||
unbind-key k
|
||||
unbind-key h
|
||||
unbind-key l
|
||||
unbind-key g
|
||||
unbind-key G
|
||||
|
||||
# bind keys - vim style
|
||||
bind-key j down
|
||||
bind-key k up
|
||||
bind-key l open
|
||||
bind-key h quit
|
||||
bind-key g home
|
||||
bind-key G end
|
||||
|
||||
podlist-format "%2i %b %> %S [%dMB / %tMB] [%p %%] [%K]"
|
||||
download-filename-format "%t | %n [%F].%e"
|
||||
download-path "~/podcasts/%n/"
|
||||
|
||||
macro 1 set browser "curl %u --output /tmp/image && sxiv /tmp/image && rm /tmp/image"; one; set browser lynx
|
||||
macro 2 set browser "mpv --vid=no -- %u"; one; set browser lynx
|
0
config/.config/newsboat/queue
Normal file
0
config/.config/newsboat/queue
Normal file
9
config/.config/newsboat/urls
Normal file
9
config/.config/newsboat/urls
Normal file
@ -0,0 +1,9 @@
|
||||
https://phaazon.net/blog/feed
|
||||
https://danielde.dev/rss.xml
|
||||
https://sizeof.cat/index.xml
|
||||
https://lukesmith.xyz/index.xml
|
||||
https://api.substack.com/feed/podcast/462466.rss
|
||||
https://www.dailywire.com/feeds/rss.xml
|
||||
https://feeds.simplecast.com/6c2VScgo
|
||||
https://feeds.simplecast.com/pp_b9xO6
|
||||
https://notrelated.xyz/rss
|
14
config/.config/nvim/after/plugin/colors.lua
Executable file
14
config/.config/nvim/after/plugin/colors.lua
Executable file
@ -0,0 +1,14 @@
|
||||
function colors(color)
|
||||
color = color or 'vscode'
|
||||
-- Available values: `'hard'`, `'medium'`, `'soft'`
|
||||
vim.g.gruvbox_material_background = 'medium'
|
||||
-- Available values: `'material'`, `'mix'`, `'original'`
|
||||
vim.g.gruvbox_material_foreground = 'mix'
|
||||
-- Available values: `'hard'`, `'medium'`, `'soft'`
|
||||
vim.g.everforest_background = 'hard'
|
||||
vim.g.gruvbox_material_better_performance = 1
|
||||
vim.g.everforest_better_performance = 1
|
||||
vim.cmd.colorscheme(color)
|
||||
end
|
||||
|
||||
colors()
|
90
config/.config/nvim/after/plugin/lsp.lua
Executable file
90
config/.config/nvim/after/plugin/lsp.lua
Executable file
@ -0,0 +1,90 @@
|
||||
local lsp = require('lsp-zero')
|
||||
local lsp_config = require("lspconfig")
|
||||
|
||||
lsp.preset('recommended')
|
||||
|
||||
lsp.ensure_installed({
|
||||
'lua_ls',
|
||||
})
|
||||
|
||||
--Enable (broadcasting) snippet capability for completion
|
||||
local capabilities = vim.lsp.protocol.make_client_capabilities()
|
||||
capabilities.textDocument.completion.completionItem.snippetSupport = true
|
||||
|
||||
lsp_config.html.setup {
|
||||
capabilities = capabilities,
|
||||
filetypes = { "html", "etlua" },
|
||||
}
|
||||
|
||||
lsp_config.nim_langserver.setup{
|
||||
settings = {
|
||||
nim = {
|
||||
projectMapping = {
|
||||
projectFile = "main.nim",
|
||||
fileRegex = ".*\\.nim"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
local cmp = require("cmp")
|
||||
local cmp_select = {behavior = cmp.SelectBehavior.Select}
|
||||
local cmp_mappings = lsp.defaults.cmp_mappings({
|
||||
['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
|
||||
['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
|
||||
['<C-y>'] = cmp.mapping.confirm({select = true}),
|
||||
['<C-Space>'] = cmp.mapping.complete(),
|
||||
})
|
||||
|
||||
cmp.setup {
|
||||
sources = {
|
||||
-- { name = 'conjure' },
|
||||
{ name = 'nvim_lsp_signature_help' },
|
||||
{ name = 'nvim_lsp' },
|
||||
{ name = 'luasnip' },
|
||||
}
|
||||
}
|
||||
|
||||
lsp.set_preferences({
|
||||
sign_icons = { }
|
||||
})
|
||||
|
||||
lsp.setup_nvim_cmp({
|
||||
mapping = cmp_mappings
|
||||
})
|
||||
|
||||
lsp.on_attach(function(client, bufnr)
|
||||
local opts = {buffer = bufnr, remap = false}
|
||||
|
||||
if client.name == "eslint" then
|
||||
vim.cmd.LspStop('eslint')
|
||||
return
|
||||
end
|
||||
if client.name == "html" or client.name == "cssls" then
|
||||
capabilities = capabilities
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "<leader>vws", vim.lsp.buf.workspace_symbol, opts)
|
||||
vim.keymap.set("n", "<leader>vd", vim.diagnostic.open_float, opts)
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "<leader>vca", vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set("n", "<leader>vrr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "<leader>vrn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("i", "<C-h>", vim.lsp.buf.signature_help, opts)
|
||||
end)
|
||||
|
||||
lsp_config.lua_ls.setup {
|
||||
-- ... other configs
|
||||
settings = {
|
||||
Lua = {
|
||||
diagnostics = {
|
||||
globals = { 'vim' }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
lsp_config.racket_langserver.setup{}
|
||||
lsp.setup()
|
15
config/.config/nvim/after/plugin/telescope.lua
Executable file
15
config/.config/nvim/after/plugin/telescope.lua
Executable file
@ -0,0 +1,15 @@
|
||||
local builtin = require('telescope.builtin')
|
||||
local telescope = require('telescope')
|
||||
telescope.load_extension("workspaces")
|
||||
telescope.load_extension("recent_files")
|
||||
telescope.load_extension("telescope-tabs")
|
||||
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
|
||||
vim.keymap.set('n', '<leader>fF', builtin.git_files, {})
|
||||
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
|
||||
vim.keymap.set('n', '<leader>bb', builtin.buffers, {})
|
||||
vim.keymap.set('n', '<leader>hh', builtin.help_tags, {})
|
||||
vim.keymap.set('n', '<leader>cc', builtin.colorscheme, {})
|
||||
vim.keymap.set('n', '<leader>wo', ":Telescope workspaces<CR>", {})
|
||||
vim.api.nvim_set_keymap("n", "<leader>fr",
|
||||
[[<cmd>lua require('telescope').extensions.recent_files.pick()<CR>]],
|
||||
{noremap = true, silent = true})
|
22
config/.config/nvim/after/plugin/treesitter.lua
Executable file
22
config/.config/nvim/after/plugin/treesitter.lua
Executable file
@ -0,0 +1,22 @@
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
-- A list of parser names, or "all"
|
||||
ensure_installed = { "help", "java", "c", "lua" },
|
||||
|
||||
-- Install parsers synchronously (only applied to `ensure_installed`)
|
||||
sync_install = false,
|
||||
|
||||
-- Automatically install missing parsers when entering buffer
|
||||
-- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally
|
||||
auto_install = true,
|
||||
|
||||
highlight = {
|
||||
-- `false` will disable the whole extension
|
||||
enable = true,
|
||||
|
||||
-- Setting this to true will run `:h syntax` and tree-sitter at the same time.
|
||||
-- Set this to `true` if you depend on 'syntax' being enabled (like for indentation).
|
||||
-- Using this option may slow down your editor, and you may see some duplicate highlights.
|
||||
-- Instead of true it can also be a list of languages
|
||||
additional_vim_regex_highlighting = false,
|
||||
},
|
||||
}
|
2
config/.config/nvim/after/plugin/undotree.lua
Executable file
2
config/.config/nvim/after/plugin/undotree.lua
Executable file
@ -0,0 +1,2 @@
|
||||
vim.keymap.set("n", "<leader>u", vim.cmd.UndotreeToggle)
|
||||
|
1
config/.config/nvim/db_ui/connections.json
Normal file
1
config/.config/nvim/db_ui/connections.json
Normal file
@ -0,0 +1 @@
|
||||
[{"url": "sqlserver://chalupmc:MikeC00l@golem.csse.rose-hulman.edu/SodaBasechalupmc", "name": "SodaBasechalupmc"}, {"url": "sqlserver://chalupmc:MikeC00l@golem.csse.rose-hulman.edu/NWindchalupmc", "name": "NWindchalupmc"}]
|
97
config/.config/nvim/ftplugin/java.lua
Executable file
97
config/.config/nvim/ftplugin/java.lua
Executable file
@ -0,0 +1,97 @@
|
||||
-- See `:help vim.lsp.start_client` for an overview of the supported `config` options.
|
||||
|
||||
--local project_name = vim.fn.fnamemodify(vim.fn.getcwd(), ':p:h:t')
|
||||
--local workspace_dir = '/path/to/workspace-root/' .. project_name
|
||||
local workspace_dir = vim.fn.getcwd()
|
||||
local config = {
|
||||
-- The command that starts the language server
|
||||
-- See: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line
|
||||
cmd = {
|
||||
|
||||
-- 💀
|
||||
'jdtls', -- or '/path/to/java17_or_newer/bin/java'
|
||||
-- depends on if `java` is in your $PATH env variable and if it points to the right version.
|
||||
|
||||
-- '-Declipse.application=org.eclipse.jdt.ls.core.id1',
|
||||
-- '-Dosgi.bundles.defaultStartLevel=4',
|
||||
-- '-Declipse.product=org.eclipse.jdt.ls.core.product',
|
||||
-- '-Dlog.protocol=true',
|
||||
-- '-Dlog.level=ALL',
|
||||
-- '-Xms1g',
|
||||
-- '--add-modules=ALL-SYSTEM',
|
||||
-- '--add-opens', 'java.base/java.util=ALL-UNNAMED',
|
||||
-- '--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
||||
--
|
||||
-- -- 💀
|
||||
-- '-jar', '/usr/share/java/jdtls/plugins/org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar',
|
||||
-- -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^
|
||||
-- -- Must point to the Change this to
|
||||
-- -- eclipse.jdt.ls installation the actual version
|
||||
--
|
||||
--
|
||||
-- -- 💀
|
||||
-- '-configuration', '/usr/share/java/jdtls/config_linux',
|
||||
-- -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^
|
||||
-- -- Must point to the Change to one of `linux`, `win` or `mac`
|
||||
-- -- eclipse.jdt.ls installation Depending on your system.
|
||||
--
|
||||
--
|
||||
-- -- 💀
|
||||
-- -- See `data directory configuration` section in the README
|
||||
-- '-data', "/home/mikec/Documents/workspace"
|
||||
},
|
||||
|
||||
-- 💀
|
||||
-- This is the default if not provided, you can remove it. Or adjust as needed.
|
||||
-- One dedicated LSP server & client will be started per unique root_dir
|
||||
root_dir = require('jdtls.setup').find_root({'.git', 'mvnw', 'gradlew'}),
|
||||
|
||||
-- Here you can configure eclipse.jdt.ls specific settings
|
||||
-- See https://github.com/eclipse/eclipse.jdt.ls/wiki/Running-the-JAVA-LS-server-from-the-command-line#initialize-request
|
||||
-- for a list of options
|
||||
settings = {
|
||||
java = {
|
||||
}
|
||||
},
|
||||
|
||||
-- Language server `initializationOptions`
|
||||
-- You need to extend the `bundles` with paths to jar files
|
||||
-- if you want to use additional eclipse.jdt.ls plugins.
|
||||
--
|
||||
-- See https://github.com/mfussenegger/nvim-jdtls#java-debug-installation
|
||||
--
|
||||
-- If you don't plan on using the debugger or other eclipse.jdt.ls plugins you can remove this
|
||||
--init_options = {
|
||||
-- bundles = {
|
||||
-- vim.fn.glob("/home/mikec/.local/share/nvim/mason/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1)
|
||||
-- }
|
||||
--},
|
||||
}
|
||||
|
||||
-- This bundles definition is the same as in the previous section (java-debug installation)
|
||||
local bundles = {
|
||||
vim.fn.glob("/home/mikec/.local/share/nvim/mason/packages/java-debug-adapter/extension/server/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-*.jar", 1)
|
||||
};
|
||||
|
||||
-- This is the new part
|
||||
vim.list_extend(bundles, vim.split(vim.fn.glob("/path/to/microsoft/vscode-java-test/server/*.jar", 1), "\n"))
|
||||
config['init_options'] = {
|
||||
bundles = bundles;
|
||||
}
|
||||
|
||||
-- This starts a new client & server,
|
||||
-- or attaches to an existing client & server depending on the `root_dir`.
|
||||
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts)
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, opts)
|
||||
vim.keymap.set("n", "<leader>vws", vim.lsp.buf.workspace_symbol, opts)
|
||||
vim.keymap.set("n", "<leader>vd", vim.diagnostic.open_float, opts)
|
||||
vim.keymap.set("n", "[d", vim.diagnostic.goto_next, opts)
|
||||
vim.keymap.set("n", "]d", vim.diagnostic.goto_prev, opts)
|
||||
vim.keymap.set("n", "<leader>vca", vim.lsp.buf.code_action, opts)
|
||||
vim.keymap.set("n", "<leader>vrr", vim.lsp.buf.references, opts)
|
||||
vim.keymap.set("n", "<leader>vrn", vim.lsp.buf.rename, opts)
|
||||
vim.keymap.set("i", "<C-h>", vim.lsp.buf.signature_help, opts)
|
||||
vim.keymap.set("n", "<leader>i", function() require('jdtls').organize_imports() end, opts)
|
||||
|
||||
require('jdtls').start_or_attach(config)
|
1
config/.config/nvim/init.lua
Executable file
1
config/.config/nvim/init.lua
Executable file
@ -0,0 +1 @@
|
||||
require("config")
|
29
config/.config/nvim/lua/config/dadbod.lua
Normal file
29
config/.config/nvim/lua/config/dadbod.lua
Normal file
@ -0,0 +1,29 @@
|
||||
local M = {}
|
||||
|
||||
local function db_completion()
|
||||
require("cmp").setup.buffer { sources = { { name = "vim-dadbod-completion" } } }
|
||||
end
|
||||
|
||||
function M.setup()
|
||||
vim.g.db_ui_save_location = vim.fn.stdpath "config" .. require("plenary.path").path.sep .. "db_ui"
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = {
|
||||
"sql",
|
||||
},
|
||||
command = [[setlocal omnifunc=vim_dadbod_completion#omni]],
|
||||
})
|
||||
|
||||
vim.api.nvim_create_autocmd("FileType", {
|
||||
pattern = {
|
||||
"sql",
|
||||
"mysql",
|
||||
"plsql",
|
||||
},
|
||||
callback = function()
|
||||
vim.schedule(db_completion)
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
return M
|
3
config/.config/nvim/lua/config/init.lua
Executable file
3
config/.config/nvim/lua/config/init.lua
Executable file
@ -0,0 +1,3 @@
|
||||
require("config.remap")
|
||||
require("config.packer")
|
||||
require("config.set")
|
328
config/.config/nvim/lua/config/packer.lua
Executable file
328
config/.config/nvim/lua/config/packer.lua
Executable file
@ -0,0 +1,328 @@
|
||||
-- This file can be loaded by calling `lua require('plugins')` from your init.vim
|
||||
|
||||
-- Only required if you have packer configured as `opt`
|
||||
vim.cmd [[packadd packer.nvim]]
|
||||
|
||||
return require('packer').startup(function(use)
|
||||
-- Packer can manage itself
|
||||
use 'wbthomason/packer.nvim'
|
||||
|
||||
use {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
branch = '0.1.x',
|
||||
requires = { { 'nvim-lua/plenary.nvim' } }
|
||||
}
|
||||
|
||||
use {
|
||||
'LukasPietzschmann/telescope-tabs',
|
||||
requires = { 'nvim-telescope/telescope.nvim' },
|
||||
config = function()
|
||||
require'telescope-tabs'.setup{
|
||||
-- Your custom config :^)
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
use({
|
||||
'rose-pine/neovim',
|
||||
as = 'rose-pine',
|
||||
-- config = function()
|
||||
-- vim.cmd('colorscheme rose-pine')
|
||||
-- end
|
||||
})
|
||||
|
||||
use 'tanvirtin/monokai.nvim'
|
||||
|
||||
use 'arzg/vim-colors-xcode'
|
||||
|
||||
use 'shaunsingh/nord.nvim'
|
||||
|
||||
use 'kvrohit/mellow.nvim'
|
||||
|
||||
use 'Mofiqul/vscode.nvim'
|
||||
|
||||
use 'Th3Whit3Wolf/one-nvim'
|
||||
|
||||
use 'mhartington/oceanic-next'
|
||||
|
||||
use 'folke/tokyonight.nvim'
|
||||
|
||||
use 'sainnhe/gruvbox-material'
|
||||
|
||||
use { "ellisonleao/gruvbox.nvim" }
|
||||
|
||||
use 'sainnhe/everforest'
|
||||
|
||||
use 'lourenci/github-colors'
|
||||
|
||||
use 'navarasu/onedark.nvim'
|
||||
|
||||
use 'shaunsingh/moonlight.nvim'
|
||||
|
||||
use 'Mofiqul/dracula.nvim'
|
||||
|
||||
use 'kdheepak/monochrome.nvim'
|
||||
|
||||
use "savq/melange-nvim"
|
||||
|
||||
use { "catppuccin/nvim", as = "catppuccin" }
|
||||
|
||||
-- use 'RRethy/nvim-base16'
|
||||
|
||||
use ({ 'projekt0n/github-nvim-theme' })
|
||||
|
||||
use { 'Everblush/nvim', as = 'everblush' }
|
||||
|
||||
use "lewpoly/sherbet.nvim"
|
||||
|
||||
use {
|
||||
'nvim-treesitter/nvim-treesitter',
|
||||
run = ':TSUpdate',
|
||||
}
|
||||
|
||||
use {
|
||||
'numToStr/Comment.nvim',
|
||||
config = function()
|
||||
require('Comment').setup()
|
||||
end
|
||||
}
|
||||
|
||||
use 'nvim-treesitter/playground'
|
||||
|
||||
-- use 'mbbill/undotree'
|
||||
|
||||
use {
|
||||
'VonHeikemen/lsp-zero.nvim',
|
||||
requires = {
|
||||
-- LSP Support
|
||||
{ 'neovim/nvim-lspconfig' },
|
||||
{ 'williamboman/mason.nvim' },
|
||||
{ 'williamboman/mason-lspconfig.nvim' },
|
||||
|
||||
-- Autocompletion
|
||||
{ 'hrsh7th/nvim-cmp' },
|
||||
{ 'hrsh7th/cmp-buffer' },
|
||||
{ 'hrsh7th/cmp-path' },
|
||||
{ 'hrsh7th/cmp-nvim-lsp-signature-help' },
|
||||
{ 'saadparwaiz1/cmp_luasnip' },
|
||||
{ 'hrsh7th/cmp-nvim-lsp' },
|
||||
{ 'hrsh7th/cmp-nvim-lua' },
|
||||
|
||||
-- Snippets
|
||||
{ 'L3MON4D3/LuaSnip' },
|
||||
{ 'rafamadriz/friendly-snippets' },
|
||||
}
|
||||
}
|
||||
|
||||
use {
|
||||
'L3MON4D3/LuaSnip',
|
||||
--after = 'nvim-cmp',
|
||||
requires = { "rafamadriz/friendly-snippets" },
|
||||
config = function()
|
||||
--require('config.snippets')
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
end,
|
||||
run = "make install_jsregexp"
|
||||
}
|
||||
|
||||
use 'rafamadriz/friendly-snippets'
|
||||
|
||||
use {
|
||||
"folke/twilight.nvim",
|
||||
config = function()
|
||||
require("twilight").setup {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
use 'winston0410/cmd-parser.nvim'
|
||||
use {
|
||||
'winston0410/range-highlight.nvim',
|
||||
config = function() require("range-highlight").setup {} end
|
||||
}
|
||||
|
||||
use 'RRethy/vim-illuminate'
|
||||
|
||||
use 'mfussenegger/nvim-jdtls'
|
||||
|
||||
use {
|
||||
"samjwill/nvim-unception",
|
||||
setup = function()
|
||||
-- Optional settings go here!
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
"0oAstro/dim.lua",
|
||||
requires = { "nvim-treesitter/nvim-treesitter", "neovim/nvim-lspconfig" },
|
||||
config = function()
|
||||
require('dim').setup({})
|
||||
end
|
||||
}
|
||||
use 'mfussenegger/nvim-dap'
|
||||
|
||||
use { "rcarriga/nvim-dap-ui", requires = { "mfussenegger/nvim-dap" } }
|
||||
|
||||
use { 'stevearc/dressing.nvim' }
|
||||
|
||||
use {
|
||||
'krady21/compiler-explorer.nvim',
|
||||
config = function()
|
||||
require("compiler-explorer").setup({
|
||||
autocmd = {
|
||||
enable = true,
|
||||
hl = "Cursorline"
|
||||
}
|
||||
})
|
||||
end
|
||||
}
|
||||
|
||||
-- use 'ggandor/lightspeed.nvim'
|
||||
|
||||
use {
|
||||
'ggandor/leap.nvim',
|
||||
config = function()
|
||||
require('leap').add_default_mappings()
|
||||
end
|
||||
}
|
||||
use 'ollykel/v-vim'
|
||||
|
||||
use {
|
||||
'windwp/nvim-ts-autotag',
|
||||
config = function()
|
||||
require('nvim-ts-autotag').setup()
|
||||
end
|
||||
}
|
||||
|
||||
use 'jbyuki/nabla.nvim'
|
||||
|
||||
use {
|
||||
'ray-x/web-tools.nvim',
|
||||
config = function()
|
||||
require('web-tools').setup()
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
'natecraddock/workspaces.nvim',
|
||||
config = function()
|
||||
require('workspaces').setup()
|
||||
end
|
||||
}
|
||||
|
||||
use {"smartpde/telescope-recent-files"}
|
||||
|
||||
use 'uga-rosa/ccc.nvim'
|
||||
|
||||
use 'tveskag/nvim-blame-line'
|
||||
|
||||
use {
|
||||
'lewis6991/gitsigns.nvim',
|
||||
config = function()
|
||||
require('gitsigns').setup()
|
||||
end
|
||||
}
|
||||
|
||||
-- use 'Olical/conjure'
|
||||
-- use 'PaterJason/cmp-conjure'
|
||||
|
||||
use {
|
||||
'lukas-reineke/indent-blankline.nvim',
|
||||
config = function()
|
||||
require 'ibl'.setup{ scope = { enabled = false } }
|
||||
end,
|
||||
}
|
||||
|
||||
use 'jaawerth/fennel.vim'
|
||||
|
||||
use 'stefanos82/nelua.vim'
|
||||
|
||||
use 'leafo/moonscript-vim'
|
||||
|
||||
use 'teal-language/vim-teal'
|
||||
|
||||
use 'https://github.com/VaiN474/vim-etlua'
|
||||
|
||||
use 'folke/neodev.nvim'
|
||||
|
||||
use {
|
||||
"kylechui/nvim-surround",
|
||||
tag = "*", -- Use for stability; omit to use `main` branch for the latest features
|
||||
config = function()
|
||||
require("nvim-surround").setup({
|
||||
-- Configuration here, or leave empty to use defaults
|
||||
})
|
||||
end
|
||||
}
|
||||
|
||||
use {
|
||||
"utilyre/barbecue.nvim",
|
||||
tag = "*",
|
||||
requires = {
|
||||
"SmiteshP/nvim-navic",
|
||||
"nvim-tree/nvim-web-devicons", -- optional dependency
|
||||
},
|
||||
after = "nvim-web-devicons", -- keep this if you're using NvChad
|
||||
config = function()
|
||||
require("barbecue").setup()
|
||||
end,
|
||||
}
|
||||
|
||||
use {
|
||||
'nvim-lualine/lualine.nvim',
|
||||
requires = { 'nvim-tree/nvim-web-devicons', opt = true },
|
||||
config = function()
|
||||
local function lspactive()
|
||||
local names = {}
|
||||
for i, server in pairs(vim.lsp.get_active_clients({ bufnr = 0 })) do
|
||||
table.insert(names, server.name)
|
||||
end
|
||||
return " [" .. table.concat(names, " ") .. "]"
|
||||
end
|
||||
require('lualine').setup {
|
||||
options = {
|
||||
globalstatus = true,
|
||||
icons_enabled = false,
|
||||
section_separators = { left = '', right = '' },
|
||||
component_separators = { left = '', right = '' }
|
||||
},
|
||||
sections = {
|
||||
lualine_a = { { 'mode', separator = { left = '', right = '' } }, },
|
||||
lualine_b = {},
|
||||
lualine_c = {'filename'},
|
||||
lualine_x = {lspactive, { 'diagnostics', icons_enabled = true }, 'branch', 'diff'},
|
||||
lualine_y = {'encoding', 'fileformat', 'filetype'},
|
||||
lualine_z = {'location', { 'progress', separator = { left = '', right = '' } }, },
|
||||
},
|
||||
}
|
||||
end,
|
||||
}
|
||||
|
||||
use {
|
||||
'goolord/alpha-nvim',
|
||||
requires = { 'nvim-tree/nvim-web-devicons' },
|
||||
config = function ()
|
||||
require'alpha'.setup(require'alpha.themes.startify'.config)
|
||||
end
|
||||
}
|
||||
|
||||
use 'aklt/plantuml-syntax'
|
||||
|
||||
use {
|
||||
"tpope/vim-dadbod",
|
||||
opt = true,
|
||||
requires = {
|
||||
"kristijanhusak/vim-dadbod-ui",
|
||||
"kristijanhusak/vim-dadbod-completion",
|
||||
},
|
||||
config = function()
|
||||
require("config.dadbod").setup()
|
||||
end,
|
||||
cmd = { "DBUIToggle", "DBUI", "DBUIAddConnection", "DBUIFindBuffer", "DBUIRenameBuffer", "DBUILastQueryInfo" },
|
||||
}
|
||||
|
||||
use 'eandrju/cellular-automaton.nvim'
|
||||
end)
|
56
config/.config/nvim/lua/config/remap.lua
Executable file
56
config/.config/nvim/lua/config/remap.lua
Executable file
@ -0,0 +1,56 @@
|
||||
require('Comment').setup()
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = ","
|
||||
|
||||
vim.keymap.set("n", "<leader>op", vim.cmd.Ex)
|
||||
|
||||
vim.keymap.set("n", "<leader>lp", ":lua require(\"nabla\").popup()<CR>")
|
||||
vim.keymap.set("n", "<leader>ll", ":lua require(\"nabla\").toggle_virt()<CR>")
|
||||
|
||||
-- vim.keymap.set("n", "<C-x>", vim.cmd.nohlsearch)
|
||||
vim.keymap.set("n", "<leader>x", vim.cmd.bdelete)
|
||||
vim.keymap.set("n", "<leader>bd", ":bdelete!<CR>")
|
||||
vim.keymap.set("n", "<leader>w", function()
|
||||
vim.cmd.write();
|
||||
vim.cmd.bdelete();
|
||||
end)
|
||||
|
||||
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
|
||||
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
|
||||
|
||||
vim.keymap.set("n", "J", "mzJ'z")
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz")
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz")
|
||||
vim.keymap.set("n", "n", "nzzzv")
|
||||
vim.keymap.set("n", "N", "Nzzzv")
|
||||
|
||||
vim.keymap.set("n", "<leader>y", "\"+y")
|
||||
vim.keymap.set("v", "<leader>y", "\"+y")
|
||||
vim.keymap.set("n", "<leader>Y", "\"+Y")
|
||||
vim.keymap.set("n", "<leader>p", "\"+p")
|
||||
vim.keymap.set("v", "<leader>p", "\"+p")
|
||||
vim.keymap.set("n", "<leader>P", "\"+P")
|
||||
|
||||
vim.keymap.set("n", "<leader>f", function()
|
||||
vim.lsp.buf.format()
|
||||
end)
|
||||
|
||||
vim.keymap.set("n", "<leader>tw", function()
|
||||
vim.cmd.Twilight()
|
||||
end)
|
||||
|
||||
|
||||
vim.keymap.set("t", "<Esc><Esc>", "<C-\\><C-n>")
|
||||
|
||||
vim.keymap.set("n", "<leader>ec", ":e ~/.config/nvim<CR>")
|
||||
|
||||
vim.keymap.set("n", "<leader>bn", ":bnext<CR>")
|
||||
vim.keymap.set("n", "<leader>bp", ":bprevious<CR>")
|
||||
|
||||
vim.keymap.set("n", "<leader>tn", ":tabnext<CR>")
|
||||
vim.keymap.set("n", "<leader>tp", ":tabprevious<CR>")
|
||||
vim.keymap.set("n", "<leader>to", ":tabnew<CR>")
|
||||
vim.keymap.set("n", "<leader>td", ":tabclose<CR>")
|
||||
vim.keymap.set("n", "<leader>tt", function()
|
||||
require('telescope-tabs').list_tabs()
|
||||
end)
|
53
config/.config/nvim/lua/config/set.lua
Executable file
53
config/.config/nvim/lua/config/set.lua
Executable file
@ -0,0 +1,53 @@
|
||||
vim.opt.nu = true
|
||||
vim.opt.relativenumber = true
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.opt.showmode = false
|
||||
|
||||
vim.opt.smartindent = true
|
||||
|
||||
vim.opt.wrap = false
|
||||
|
||||
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.backup = false
|
||||
vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir"
|
||||
vim.opt.undofile = true
|
||||
|
||||
vim.opt.hlsearch = true
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
|
||||
vim.opt.scrolloff = 8
|
||||
vim.opt.signcolumn = "yes"
|
||||
vim.opt.isfname:append("@-@")
|
||||
|
||||
vim.opt.updatetime = 50
|
||||
|
||||
vim.opt.colorcolumn = "80"
|
||||
|
||||
vim.opt.splitright = true
|
||||
vim.opt.splitbelow = true
|
||||
|
||||
vim.g.mapleader = " "
|
||||
|
||||
vim.g.neovide_scale_factor = 1.0
|
||||
function ChangeScaleFactor(delta)
|
||||
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "<C-=>", function()
|
||||
ChangeScaleFactor(1.25)
|
||||
end)
|
||||
vim.keymap.set("n", "<C-->", function()
|
||||
ChangeScaleFactor(1 / 1.25)
|
||||
end)
|
||||
|
||||
vim.opt.guifont = { "Cascadia Code", ":h12" }
|
||||
|
||||
vim.g.netrw_keepdir = 0
|
660
config/.config/nvim/plugin/packer_compiled.lua
Executable file
660
config/.config/nvim/plugin/packer_compiled.lua
Executable file
@ -0,0 +1,660 @@
|
||||
-- Automatically generated packer.nvim plugin loader code
|
||||
|
||||
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
|
||||
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
|
||||
return
|
||||
end
|
||||
|
||||
vim.api.nvim_command('packadd packer.nvim')
|
||||
|
||||
local no_errors, error_msg = pcall(function()
|
||||
|
||||
_G._packer = _G._packer or {}
|
||||
_G._packer.inside_compile = true
|
||||
|
||||
local time
|
||||
local profile_info
|
||||
local should_profile = false
|
||||
if should_profile then
|
||||
local hrtime = vim.loop.hrtime
|
||||
profile_info = {}
|
||||
time = function(chunk, start)
|
||||
if start then
|
||||
profile_info[chunk] = hrtime()
|
||||
else
|
||||
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
|
||||
end
|
||||
end
|
||||
else
|
||||
time = function(chunk, start) end
|
||||
end
|
||||
|
||||
local function save_profiles(threshold)
|
||||
local sorted_times = {}
|
||||
for chunk_name, time_taken in pairs(profile_info) do
|
||||
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
|
||||
end
|
||||
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
|
||||
local results = {}
|
||||
for i, elem in ipairs(sorted_times) do
|
||||
if not threshold or threshold and elem[2] > threshold then
|
||||
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
|
||||
end
|
||||
end
|
||||
if threshold then
|
||||
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
|
||||
end
|
||||
|
||||
_G._packer.profile_output = results
|
||||
end
|
||||
|
||||
time([[Luarocks path setup]], true)
|
||||
local package_path_str = "/home/mikec/.cache/nvim/packer_hererocks/2.1.1723675123/share/lua/5.1/?.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1723675123/share/lua/5.1/?/init.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1723675123/lib/luarocks/rocks-5.1/?.lua;/home/mikec/.cache/nvim/packer_hererocks/2.1.1723675123/lib/luarocks/rocks-5.1/?/init.lua"
|
||||
local install_cpath_pattern = "/home/mikec/.cache/nvim/packer_hererocks/2.1.1723675123/lib/lua/5.1/?.so"
|
||||
if not string.find(package.path, package_path_str, 1, true) then
|
||||
package.path = package.path .. ';' .. package_path_str
|
||||
end
|
||||
|
||||
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
|
||||
package.cpath = package.cpath .. ';' .. install_cpath_pattern
|
||||
end
|
||||
|
||||
time([[Luarocks path setup]], false)
|
||||
time([[try_loadstring definition]], true)
|
||||
local function try_loadstring(s, component, name)
|
||||
local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
|
||||
if not success then
|
||||
vim.schedule(function()
|
||||
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
|
||||
end)
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
time([[try_loadstring definition]], false)
|
||||
time([[Defining packer_plugins]], true)
|
||||
_G.packer_plugins = {
|
||||
["Comment.nvim"] = {
|
||||
config = { "\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/Comment.nvim",
|
||||
url = "https://github.com/numToStr/Comment.nvim"
|
||||
},
|
||||
LuaSnip = {
|
||||
config = { "\27LJ\2\nM\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14lazy_load luasnip.loaders.from_vscode\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/LuaSnip",
|
||||
url = "https://github.com/L3MON4D3/LuaSnip"
|
||||
},
|
||||
["alpha-nvim"] = {
|
||||
config = { "\27LJ\2\n`\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\26alpha.themes.startify\nsetup\nalpha\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/alpha-nvim",
|
||||
url = "https://github.com/goolord/alpha-nvim"
|
||||
},
|
||||
["barbecue.nvim"] = {
|
||||
config = { "\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rbarbecue\frequire\0" },
|
||||
load_after = {},
|
||||
loaded = true,
|
||||
needs_bufread = false,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/barbecue.nvim",
|
||||
url = "https://github.com/utilyre/barbecue.nvim"
|
||||
},
|
||||
catppuccin = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/catppuccin",
|
||||
url = "https://github.com/catppuccin/nvim"
|
||||
},
|
||||
["ccc.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/ccc.nvim",
|
||||
url = "https://github.com/uga-rosa/ccc.nvim"
|
||||
},
|
||||
["cellular-automaton.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cellular-automaton.nvim",
|
||||
url = "https://github.com/eandrju/cellular-automaton.nvim"
|
||||
},
|
||||
["cmd-parser.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmd-parser.nvim",
|
||||
url = "https://github.com/winston0410/cmd-parser.nvim"
|
||||
},
|
||||
["cmp-buffer"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-buffer",
|
||||
url = "https://github.com/hrsh7th/cmp-buffer"
|
||||
},
|
||||
["cmp-nvim-lsp"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
|
||||
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
|
||||
},
|
||||
["cmp-nvim-lsp-signature-help"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help",
|
||||
url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help"
|
||||
},
|
||||
["cmp-nvim-lua"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
|
||||
url = "https://github.com/hrsh7th/cmp-nvim-lua"
|
||||
},
|
||||
["cmp-path"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp-path",
|
||||
url = "https://github.com/hrsh7th/cmp-path"
|
||||
},
|
||||
cmp_luasnip = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/cmp_luasnip",
|
||||
url = "https://github.com/saadparwaiz1/cmp_luasnip"
|
||||
},
|
||||
["compiler-explorer.nvim"] = {
|
||||
config = { "\27LJ\2\nx\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\fautocmd\1\0\1\fautocmd\0\1\0\2\ahl\15Cursorline\venable\2\nsetup\22compiler-explorer\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/compiler-explorer.nvim",
|
||||
url = "https://github.com/krady21/compiler-explorer.nvim"
|
||||
},
|
||||
["dim.lua"] = {
|
||||
config = { "\27LJ\2\n5\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\bdim\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dim.lua",
|
||||
url = "https://github.com/0oAstro/dim.lua"
|
||||
},
|
||||
["dracula.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dracula.nvim",
|
||||
url = "https://github.com/Mofiqul/dracula.nvim"
|
||||
},
|
||||
["dressing.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/dressing.nvim",
|
||||
url = "https://github.com/stevearc/dressing.nvim"
|
||||
},
|
||||
everblush = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/everblush",
|
||||
url = "https://github.com/Everblush/nvim"
|
||||
},
|
||||
everforest = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/everforest",
|
||||
url = "https://github.com/sainnhe/everforest"
|
||||
},
|
||||
["fennel.vim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/fennel.vim",
|
||||
url = "https://github.com/jaawerth/fennel.vim"
|
||||
},
|
||||
["friendly-snippets"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/friendly-snippets",
|
||||
url = "https://github.com/rafamadriz/friendly-snippets"
|
||||
},
|
||||
["github-colors"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/github-colors",
|
||||
url = "https://github.com/lourenci/github-colors"
|
||||
},
|
||||
["github-nvim-theme"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/github-nvim-theme",
|
||||
url = "https://github.com/projekt0n/github-nvim-theme"
|
||||
},
|
||||
["gitsigns.nvim"] = {
|
||||
config = { "\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gitsigns.nvim",
|
||||
url = "https://github.com/lewis6991/gitsigns.nvim"
|
||||
},
|
||||
["gruvbox-material"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gruvbox-material",
|
||||
url = "https://github.com/sainnhe/gruvbox-material"
|
||||
},
|
||||
["gruvbox.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/gruvbox.nvim",
|
||||
url = "https://github.com/ellisonleao/gruvbox.nvim"
|
||||
},
|
||||
["indent-blankline.nvim"] = {
|
||||
config = { "\27LJ\2\nY\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\nscope\1\0\1\nscope\0\1\0\1\fenabled\1\nsetup\bibl\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim",
|
||||
url = "https://github.com/lukas-reineke/indent-blankline.nvim"
|
||||
},
|
||||
["leap.nvim"] = {
|
||||
config = { "\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/leap.nvim",
|
||||
url = "https://github.com/ggandor/leap.nvim"
|
||||
},
|
||||
["lsp-zero.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/lsp-zero.nvim",
|
||||
url = "https://github.com/VonHeikemen/lsp-zero.nvim"
|
||||
},
|
||||
["lualine.nvim"] = {
|
||||
config = { "\27LJ\2\nº\1\0\0\n\0\f\0\0254\0\0\0006\1\0\0006\3\1\0009\3\2\0039\3\3\0035\5\4\0B\3\2\0A\1\0\4H\4\5€6\6\5\0009\6\6\6\18\b\0\0009\t\a\5B\6\3\1F\4\3\3R\4ù\127'\1\b\0006\2\5\0009\2\t\2\18\4\0\0'\5\n\0B\2\3\2'\3\v\0&\1\3\1L\1\2\0\6]\6 \vconcat\nï<EFBFBD>£ [\tname\vinsert\ntable\1\0\1\nbufnr\3\0\23get_active_clients\blsp\bvim\npairsÈ\5\1\0\b\0\29\0'3\0\0\0006\1\1\0'\3\2\0B\1\2\0029\1\3\0015\3\t\0005\4\4\0005\5\5\0=\5\6\0045\5\a\0=\5\b\4=\4\n\0035\4\14\0004\5\3\0005\6\v\0005\a\f\0=\a\r\6>\6\1\5=\5\15\0044\5\0\0=\5\16\0045\5\17\0=\5\18\0045\5\20\0>\0\1\0055\6\19\0>\6\2\5=\5\21\0045\5\22\0=\5\23\0045\5\24\0005\6\25\0005\a\26\0=\a\r\6>\6\2\5=\5\27\4=\4\28\3B\1\2\1K\0\1\0\rsections\14lualine_z\1\0\2\nright\bî‚´\tleft\b\1\2\1\0\rprogress\14separator\0\1\2\0\0\rlocation\14lualine_y\1\4\0\0\rencoding\15fileformat\rfiletype\14lualine_x\1\5\0\0\0\0\vbranch\tdiff\1\2\1\0\16diagnostics\18icons_enabled\2\14lualine_c\1\2\0\0\rfilename\14lualine_b\14lualine_a\1\0\6\14lualine_x\0\14lualine_z\0\14lualine_c\0\14lualine_b\0\14lualine_a\0\14lualine_y\0\14separator\1\0\2\nright\bî‚´\tleft\b\1\2\1\0\tmode\14separator\0\foptions\1\0\2\rsections\0\foptions\0\25component_separators\1\0\2\nright\5\tleft\5\23section_separators\1\0\2\nright\b\tleft\bî‚´\1\0\4\23section_separators\0\18icons_enabled\1\17globalstatus\2\25component_separators\0\nsetup\flualine\frequire\0\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/lualine.nvim",
|
||||
url = "https://github.com/nvim-lualine/lualine.nvim"
|
||||
},
|
||||
["mason-lspconfig.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
|
||||
url = "https://github.com/williamboman/mason-lspconfig.nvim"
|
||||
},
|
||||
["mason.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mason.nvim",
|
||||
url = "https://github.com/williamboman/mason.nvim"
|
||||
},
|
||||
["melange-nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/melange-nvim",
|
||||
url = "https://github.com/savq/melange-nvim"
|
||||
},
|
||||
["mellow.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/mellow.nvim",
|
||||
url = "https://github.com/kvrohit/mellow.nvim"
|
||||
},
|
||||
["monochrome.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/monochrome.nvim",
|
||||
url = "https://github.com/kdheepak/monochrome.nvim"
|
||||
},
|
||||
["monokai.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/monokai.nvim",
|
||||
url = "https://github.com/tanvirtin/monokai.nvim"
|
||||
},
|
||||
["moonlight.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/moonlight.nvim",
|
||||
url = "https://github.com/shaunsingh/moonlight.nvim"
|
||||
},
|
||||
["moonscript-vim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/moonscript-vim",
|
||||
url = "https://github.com/leafo/moonscript-vim"
|
||||
},
|
||||
["nabla.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nabla.nvim",
|
||||
url = "https://github.com/jbyuki/nabla.nvim"
|
||||
},
|
||||
["nelua.vim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nelua.vim",
|
||||
url = "https://github.com/stefanos82/nelua.vim"
|
||||
},
|
||||
["neodev.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/neodev.nvim",
|
||||
url = "https://github.com/folke/neodev.nvim"
|
||||
},
|
||||
["nord.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nord.nvim",
|
||||
url = "https://github.com/shaunsingh/nord.nvim"
|
||||
},
|
||||
["nvim-blame-line"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-blame-line",
|
||||
url = "https://github.com/tveskag/nvim-blame-line"
|
||||
},
|
||||
["nvim-cmp"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-cmp",
|
||||
url = "https://github.com/hrsh7th/nvim-cmp"
|
||||
},
|
||||
["nvim-dap"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-dap",
|
||||
url = "https://github.com/mfussenegger/nvim-dap"
|
||||
},
|
||||
["nvim-dap-ui"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-dap-ui",
|
||||
url = "https://github.com/rcarriga/nvim-dap-ui"
|
||||
},
|
||||
["nvim-jdtls"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-jdtls",
|
||||
url = "https://github.com/mfussenegger/nvim-jdtls"
|
||||
},
|
||||
["nvim-lspconfig"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
|
||||
url = "https://github.com/neovim/nvim-lspconfig"
|
||||
},
|
||||
["nvim-navic"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-navic",
|
||||
url = "https://github.com/SmiteshP/nvim-navic"
|
||||
},
|
||||
["nvim-surround"] = {
|
||||
config = { "\27LJ\2\n?\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18nvim-surround\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-surround",
|
||||
url = "https://github.com/kylechui/nvim-surround"
|
||||
},
|
||||
["nvim-treesitter"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
|
||||
url = "https://github.com/nvim-treesitter/nvim-treesitter"
|
||||
},
|
||||
["nvim-ts-autotag"] = {
|
||||
config = { "\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-ts-autotag",
|
||||
url = "https://github.com/windwp/nvim-ts-autotag"
|
||||
},
|
||||
["nvim-unception"] = {
|
||||
loaded = true,
|
||||
needs_bufread = false,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/nvim-unception",
|
||||
url = "https://github.com/samjwill/nvim-unception"
|
||||
},
|
||||
["nvim-web-devicons"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/nvim-web-devicons",
|
||||
url = "https://github.com/nvim-tree/nvim-web-devicons"
|
||||
},
|
||||
["oceanic-next"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/oceanic-next",
|
||||
url = "https://github.com/mhartington/oceanic-next"
|
||||
},
|
||||
["one-nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/one-nvim",
|
||||
url = "https://github.com/Th3Whit3Wolf/one-nvim"
|
||||
},
|
||||
["onedark.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/onedark.nvim",
|
||||
url = "https://github.com/navarasu/onedark.nvim"
|
||||
},
|
||||
["packer.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/packer.nvim",
|
||||
url = "https://github.com/wbthomason/packer.nvim"
|
||||
},
|
||||
["plantuml-syntax"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/plantuml-syntax",
|
||||
url = "https://github.com/aklt/plantuml-syntax"
|
||||
},
|
||||
playground = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/playground",
|
||||
url = "https://github.com/nvim-treesitter/playground"
|
||||
},
|
||||
["plenary.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/plenary.nvim",
|
||||
url = "https://github.com/nvim-lua/plenary.nvim"
|
||||
},
|
||||
["range-highlight.nvim"] = {
|
||||
config = { "\27LJ\2\nA\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\20range-highlight\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/range-highlight.nvim",
|
||||
url = "https://github.com/winston0410/range-highlight.nvim"
|
||||
},
|
||||
["rose-pine"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/rose-pine",
|
||||
url = "https://github.com/rose-pine/neovim"
|
||||
},
|
||||
["sherbet.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/sherbet.nvim",
|
||||
url = "https://github.com/lewpoly/sherbet.nvim"
|
||||
},
|
||||
["telescope-recent-files"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope-recent-files",
|
||||
url = "https://github.com/smartpde/telescope-recent-files"
|
||||
},
|
||||
["telescope-tabs"] = {
|
||||
config = { "\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19telescope-tabs\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope-tabs",
|
||||
url = "https://github.com/LukasPietzschmann/telescope-tabs"
|
||||
},
|
||||
["telescope.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/telescope.nvim",
|
||||
url = "https://github.com/nvim-telescope/telescope.nvim"
|
||||
},
|
||||
["tokyonight.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/tokyonight.nvim",
|
||||
url = "https://github.com/folke/tokyonight.nvim"
|
||||
},
|
||||
["twilight.nvim"] = {
|
||||
config = { "\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rtwilight\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/twilight.nvim",
|
||||
url = "https://github.com/folke/twilight.nvim"
|
||||
},
|
||||
["v-vim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/v-vim",
|
||||
url = "https://github.com/ollykel/v-vim"
|
||||
},
|
||||
["vim-colors-xcode"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-colors-xcode",
|
||||
url = "https://github.com/arzg/vim-colors-xcode"
|
||||
},
|
||||
["vim-dadbod"] = {
|
||||
after = { "vim-dadbod-ui", "vim-dadbod-completion" },
|
||||
commands = { "DBUIToggle", "DBUI", "DBUIAddConnection", "DBUIFindBuffer", "DBUIRenameBuffer", "DBUILastQueryInfo" },
|
||||
config = { "\27LJ\2\n;\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\18config.dadbod\frequire\0" },
|
||||
loaded = false,
|
||||
needs_bufread = false,
|
||||
only_cond = false,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod",
|
||||
url = "https://github.com/tpope/vim-dadbod"
|
||||
},
|
||||
["vim-dadbod-completion"] = {
|
||||
after_files = { "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion/after/plugin/vim_dadbod_completion.lua", "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion/after/plugin/vim_dadbod_completion.vim" },
|
||||
load_after = {
|
||||
["vim-dadbod"] = true
|
||||
},
|
||||
loaded = false,
|
||||
needs_bufread = false,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-completion",
|
||||
url = "https://github.com/kristijanhusak/vim-dadbod-completion"
|
||||
},
|
||||
["vim-dadbod-ui"] = {
|
||||
load_after = {
|
||||
["vim-dadbod"] = true
|
||||
},
|
||||
loaded = false,
|
||||
needs_bufread = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/opt/vim-dadbod-ui",
|
||||
url = "https://github.com/kristijanhusak/vim-dadbod-ui"
|
||||
},
|
||||
["vim-etlua"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-etlua",
|
||||
url = "https://github.com/VaiN474/vim-etlua"
|
||||
},
|
||||
["vim-illuminate"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-illuminate",
|
||||
url = "https://github.com/RRethy/vim-illuminate"
|
||||
},
|
||||
["vim-teal"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vim-teal",
|
||||
url = "https://github.com/teal-language/vim-teal"
|
||||
},
|
||||
["vscode.nvim"] = {
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/vscode.nvim",
|
||||
url = "https://github.com/Mofiqul/vscode.nvim"
|
||||
},
|
||||
["web-tools.nvim"] = {
|
||||
config = { "\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14web-tools\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/web-tools.nvim",
|
||||
url = "https://github.com/ray-x/web-tools.nvim"
|
||||
},
|
||||
["workspaces.nvim"] = {
|
||||
config = { "\27LJ\2\n8\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\15workspaces\frequire\0" },
|
||||
loaded = true,
|
||||
path = "/home/mikec/.local/share/nvim/site/pack/packer/start/workspaces.nvim",
|
||||
url = "https://github.com/natecraddock/workspaces.nvim"
|
||||
}
|
||||
}
|
||||
|
||||
time([[Defining packer_plugins]], false)
|
||||
-- Setup for: nvim-unception
|
||||
time([[Setup for nvim-unception]], true)
|
||||
try_loadstring("\27LJ\2\n\v\0\0\1\0\0\0\1K\0\1\0\0", "setup", "nvim-unception")
|
||||
time([[Setup for nvim-unception]], false)
|
||||
time([[packadd for nvim-unception]], true)
|
||||
vim.cmd [[packadd nvim-unception]]
|
||||
time([[packadd for nvim-unception]], false)
|
||||
-- Config for: LuaSnip
|
||||
time([[Config for LuaSnip]], true)
|
||||
try_loadstring("\27LJ\2\nM\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\14lazy_load luasnip.loaders.from_vscode\frequire\0", "config", "LuaSnip")
|
||||
time([[Config for LuaSnip]], false)
|
||||
-- Config for: twilight.nvim
|
||||
time([[Config for twilight.nvim]], true)
|
||||
try_loadstring("\27LJ\2\n:\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\rtwilight\frequire\0", "config", "twilight.nvim")
|
||||
time([[Config for twilight.nvim]], false)
|
||||
-- Config for: alpha-nvim
|
||||
time([[Config for alpha-nvim]], true)
|
||||
try_loadstring("\27LJ\2\n`\0\0\5\0\5\0\n6\0\0\0'\2\1\0B\0\2\0029\0\2\0006\2\0\0'\4\3\0B\2\2\0029\2\4\2B\0\2\1K\0\1\0\vconfig\26alpha.themes.startify\nsetup\nalpha\frequire\0", "config", "alpha-nvim")
|
||||
time([[Config for alpha-nvim]], false)
|
||||
-- Config for: nvim-ts-autotag
|
||||
time([[Config for nvim-ts-autotag]], true)
|
||||
try_loadstring("\27LJ\2\n=\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\20nvim-ts-autotag\frequire\0", "config", "nvim-ts-autotag")
|
||||
time([[Config for nvim-ts-autotag]], false)
|
||||
-- Config for: indent-blankline.nvim
|
||||
time([[Config for indent-blankline.nvim]], true)
|
||||
try_loadstring("\27LJ\2\nY\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\nscope\1\0\1\nscope\0\1\0\1\fenabled\1\nsetup\bibl\frequire\0", "config", "indent-blankline.nvim")
|
||||
time([[Config for indent-blankline.nvim]], false)
|
||||
-- Config for: web-tools.nvim
|
||||
time([[Config for web-tools.nvim]], true)
|
||||
try_loadstring("\27LJ\2\n7\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\14web-tools\frequire\0", "config", "web-tools.nvim")
|
||||
time([[Config for web-tools.nvim]], false)
|
||||
-- Config for: leap.nvim
|
||||
time([[Config for leap.nvim]], true)
|
||||
try_loadstring("\27LJ\2\nA\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\25add_default_mappings\tleap\frequire\0", "config", "leap.nvim")
|
||||
time([[Config for leap.nvim]], false)
|
||||
-- Config for: Comment.nvim
|
||||
time([[Config for Comment.nvim]], true)
|
||||
try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\fComment\frequire\0", "config", "Comment.nvim")
|
||||
time([[Config for Comment.nvim]], false)
|
||||
-- Config for: nvim-surround
|
||||
time([[Config for nvim-surround]], true)
|
||||
try_loadstring("\27LJ\2\n?\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\18nvim-surround\frequire\0", "config", "nvim-surround")
|
||||
time([[Config for nvim-surround]], false)
|
||||
-- Config for: workspaces.nvim
|
||||
time([[Config for workspaces.nvim]], true)
|
||||
try_loadstring("\27LJ\2\n8\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\15workspaces\frequire\0", "config", "workspaces.nvim")
|
||||
time([[Config for workspaces.nvim]], false)
|
||||
-- Config for: gitsigns.nvim
|
||||
time([[Config for gitsigns.nvim]], true)
|
||||
try_loadstring("\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rgitsigns\frequire\0", "config", "gitsigns.nvim")
|
||||
time([[Config for gitsigns.nvim]], false)
|
||||
-- Config for: compiler-explorer.nvim
|
||||
time([[Config for compiler-explorer.nvim]], true)
|
||||
try_loadstring("\27LJ\2\nx\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\2B\0\2\1K\0\1\0\fautocmd\1\0\1\fautocmd\0\1\0\2\ahl\15Cursorline\venable\2\nsetup\22compiler-explorer\frequire\0", "config", "compiler-explorer.nvim")
|
||||
time([[Config for compiler-explorer.nvim]], false)
|
||||
-- Config for: range-highlight.nvim
|
||||
time([[Config for range-highlight.nvim]], true)
|
||||
try_loadstring("\27LJ\2\nA\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\20range-highlight\frequire\0", "config", "range-highlight.nvim")
|
||||
time([[Config for range-highlight.nvim]], false)
|
||||
-- Config for: lualine.nvim
|
||||
time([[Config for lualine.nvim]], true)
|
||||
try_loadstring("\27LJ\2\nº\1\0\0\n\0\f\0\0254\0\0\0006\1\0\0006\3\1\0009\3\2\0039\3\3\0035\5\4\0B\3\2\0A\1\0\4H\4\5€6\6\5\0009\6\6\6\18\b\0\0009\t\a\5B\6\3\1F\4\3\3R\4ù\127'\1\b\0006\2\5\0009\2\t\2\18\4\0\0'\5\n\0B\2\3\2'\3\v\0&\1\3\1L\1\2\0\6]\6 \vconcat\nï<EFBFBD>£ [\tname\vinsert\ntable\1\0\1\nbufnr\3\0\23get_active_clients\blsp\bvim\npairsÈ\5\1\0\b\0\29\0'3\0\0\0006\1\1\0'\3\2\0B\1\2\0029\1\3\0015\3\t\0005\4\4\0005\5\5\0=\5\6\0045\5\a\0=\5\b\4=\4\n\0035\4\14\0004\5\3\0005\6\v\0005\a\f\0=\a\r\6>\6\1\5=\5\15\0044\5\0\0=\5\16\0045\5\17\0=\5\18\0045\5\20\0>\0\1\0055\6\19\0>\6\2\5=\5\21\0045\5\22\0=\5\23\0045\5\24\0005\6\25\0005\a\26\0=\a\r\6>\6\2\5=\5\27\4=\4\28\3B\1\2\1K\0\1\0\rsections\14lualine_z\1\0\2\nright\bî‚´\tleft\b\1\2\1\0\rprogress\14separator\0\1\2\0\0\rlocation\14lualine_y\1\4\0\0\rencoding\15fileformat\rfiletype\14lualine_x\1\5\0\0\0\0\vbranch\tdiff\1\2\1\0\16diagnostics\18icons_enabled\2\14lualine_c\1\2\0\0\rfilename\14lualine_b\14lualine_a\1\0\6\14lualine_x\0\14lualine_z\0\14lualine_c\0\14lualine_b\0\14lualine_a\0\14lualine_y\0\14separator\1\0\2\nright\bî‚´\tleft\b\1\2\1\0\tmode\14separator\0\foptions\1\0\2\rsections\0\foptions\0\25component_separators\1\0\2\nright\5\tleft\5\23section_separators\1\0\2\nright\b\tleft\bî‚´\1\0\4\23section_separators\0\18icons_enabled\1\17globalstatus\2\25component_separators\0\nsetup\flualine\frequire\0\0", "config", "lualine.nvim")
|
||||
time([[Config for lualine.nvim]], false)
|
||||
-- Config for: telescope-tabs
|
||||
time([[Config for telescope-tabs]], true)
|
||||
try_loadstring("\27LJ\2\n@\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\19telescope-tabs\frequire\0", "config", "telescope-tabs")
|
||||
time([[Config for telescope-tabs]], false)
|
||||
-- Config for: dim.lua
|
||||
time([[Config for dim.lua]], true)
|
||||
try_loadstring("\27LJ\2\n5\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\bdim\frequire\0", "config", "dim.lua")
|
||||
time([[Config for dim.lua]], false)
|
||||
-- Load plugins in order defined by `after`
|
||||
time([[Sequenced loading]], true)
|
||||
vim.cmd [[ packadd nvim-web-devicons ]]
|
||||
vim.cmd [[ packadd barbecue.nvim ]]
|
||||
|
||||
-- Config for: barbecue.nvim
|
||||
try_loadstring("\27LJ\2\n6\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\rbarbecue\frequire\0", "config", "barbecue.nvim")
|
||||
|
||||
time([[Sequenced loading]], false)
|
||||
|
||||
-- Command lazy-loads
|
||||
time([[Defining lazy-load commands]], true)
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUI', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUI', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUI ', 'cmdline')
|
||||
end})
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUIAddConnection', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIAddConnection', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUIAddConnection ', 'cmdline')
|
||||
end})
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUIFindBuffer', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIFindBuffer', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUIFindBuffer ', 'cmdline')
|
||||
end})
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUIRenameBuffer', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIRenameBuffer', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUIRenameBuffer ', 'cmdline')
|
||||
end})
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUILastQueryInfo', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUILastQueryInfo', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUILastQueryInfo ', 'cmdline')
|
||||
end})
|
||||
pcall(vim.api.nvim_create_user_command, 'DBUIToggle', function(cmdargs)
|
||||
require('packer.load')({'vim-dadbod'}, { cmd = 'DBUIToggle', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
|
||||
end,
|
||||
{nargs = '*', range = true, bang = true, complete = function()
|
||||
require('packer.load')({'vim-dadbod'}, {}, _G.packer_plugins)
|
||||
return vim.fn.getcompletion('DBUIToggle ', 'cmdline')
|
||||
end})
|
||||
time([[Defining lazy-load commands]], false)
|
||||
|
||||
|
||||
_G._packer.inside_compile = false
|
||||
if _G._packer.needs_bufread == true then
|
||||
vim.cmd("doautocmd BufRead")
|
||||
end
|
||||
_G._packer.needs_bufread = false
|
||||
|
||||
if should_profile then save_profiles() end
|
||||
|
||||
end)
|
||||
|
||||
if not no_errors then
|
||||
error_msg = error_msg:gsub('"', '\\"')
|
||||
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
|
||||
end
|
BIN
config/.config/qutebrowser/__pycache__/theme.cpython-312.pyc
Normal file
BIN
config/.config/qutebrowser/__pycache__/theme.cpython-312.pyc
Normal file
Binary file not shown.
32
config/.config/qutebrowser/autoconfig.yml
Normal file
32
config/.config/qutebrowser/autoconfig.yml
Normal file
@ -0,0 +1,32 @@
|
||||
# If a config.py file exists, this file is ignored unless it's explicitly loaded
|
||||
# via config.load_autoconfig(). For more information, see:
|
||||
# https://github.com/qutebrowser/qutebrowser/blob/main/doc/help/configuring.asciidoc#loading-autoconfigyml
|
||||
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
||||
# Instead, create a config.py - see :help for details.
|
||||
|
||||
config_version: 2
|
||||
settings:
|
||||
auto_save.session:
|
||||
global: false
|
||||
colors.webpage.preferred_color_scheme:
|
||||
global: dark
|
||||
content.autoplay:
|
||||
global: false
|
||||
content.blocking.enabled:
|
||||
global: true
|
||||
content.blocking.method:
|
||||
global: both
|
||||
content.register_protocol_handler:
|
||||
https://outlook.live.com?mailtouri=%25s: true
|
||||
https://outlook.office.com?mailtouri=%25s: true
|
||||
fonts.default_family:
|
||||
global: Cascadia Code
|
||||
fonts.default_size:
|
||||
global: 12pt
|
||||
url.default_page:
|
||||
global: searx.mchalupiak.com
|
||||
url.searchengines:
|
||||
global:
|
||||
DEFAULT: searx.mchalupiak.com/search?q={}
|
||||
url.start_pages:
|
||||
global: searx.mchalupiak.com
|
9
config/.config/qutebrowser/bookmarks/urls
Normal file
9
config/.config/qutebrowser/bookmarks/urls
Normal file
@ -0,0 +1,9 @@
|
||||
https://login.live.com/ppsecure/post.srf?cobrandid=90015&id=292841&contextid=A555F7E1FD2035C2&opid=F987D5C4DCBC41C3&bk=1686433292&uaid=cfb4ca8e9b7046538486c10a39745c6a&pid=0 Sign in to your Microsoft account
|
||||
https://login.live.com/ppsecure/post.srf?cobrandid=90015&id=292841&contextid=A555F7E1FD2035C2&opid=F987D5C4DCBC41C3&bk=1686433313&uaid=cfb4ca8e9b7046538486c10a39745c6a&pid=0 Sign in to your Microsoft account
|
||||
https://login.live.com/ppsecure/post.srf?cobrandid=90015&id=292841&contextid=A555F7E1FD2035C2&opid=F987D5C4DCBC41C3&bk=1686433318&uaid=cfb4ca8e9b7046538486c10a39745c6a&pid=0 Sign in to your Microsoft account
|
||||
https://login.live.com/ppsecure/post.srf?cobrandid=90015&id=292841&contextid=A555F7E1FD2035C2&opid=F987D5C4DCBC41C3&bk=1686433327&uaid=cfb4ca8e9b7046538486c10a39745c6a&pid=0 Sign in to your Microsoft account
|
||||
https://github.com/session Sign in to GitHub · GitHub
|
||||
https://www.amazon.com/ap/signin Amazon Sign-In
|
||||
https://blackhawk.cps.golf/onlineresweb/teetime/checkout?id=2390546 Black Hawk Online Booking Engine
|
||||
https://boardsource.xyz/cart Boardsource - MBK Low Pro Keycaps
|
||||
https://www.gouletpens.com/26032528/checkouts/1f056f22cfa3f632ef0ba6e960fa297e?previous_step=shipping_method&step=payment_method https://www.gouletpens.com/26032528/checkouts/1f056f22cfa3f632ef0ba6e960fa297e?previous_step=shipping_method&step=payment_method
|
2504
config/.config/qutebrowser/config.py
Normal file
2504
config/.config/qutebrowser/config.py
Normal file
File diff suppressed because it is too large
Load Diff
8
config/.config/qutebrowser/qsettings/QtProject.conf
Normal file
8
config/.config/qutebrowser/qsettings/QtProject.conf
Normal file
@ -0,0 +1,8 @@
|
||||
[FileDialog]
|
||||
history=file:///home/mikec/Downloads, file:///usr/share/fonts/TTF, file:///home/mikec, file:///home/mikec/Documents/College/Resume
|
||||
lastVisited=file:///home/mikec/Documents/College/Resume
|
||||
qtVersion=6.7.2
|
||||
shortcuts=file:, file:///home/mikec
|
||||
sidebarWidth=87
|
||||
treeViewHeader="@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1\xd1\0\0\0\x4\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\xf5\0\0\0\x1\0\0\0\0\0\0\0\x39\0\0\0\x1\0\0\0\0\0\0\0=\0\0\0\x1\0\0\0\0\0\0\0\x66\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\xff\xff\xff\xff\0\0\0\0)"
|
||||
viewMode=Detail
|
0
config/.config/qutebrowser/quickmarks
Normal file
0
config/.config/qutebrowser/quickmarks
Normal file
302
config/.config/qutebrowser/theme.py
Normal file
302
config/.config/qutebrowser/theme.py
Normal file
@ -0,0 +1,302 @@
|
||||
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
|
||||
# Scheme name: Gruvbox dark, hard
|
||||
# Scheme author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||
# Template author: theova
|
||||
# Commentary: Tinted Theming: (https://github.com/tinted-theming)
|
||||
|
||||
base00 = "#1d2021"
|
||||
base01 = "#3c3836"
|
||||
base02 = "#504945"
|
||||
base03 = "#665c54"
|
||||
base04 = "#bdae93"
|
||||
base05 = "#d5c4a1"
|
||||
base06 = "#ebdbb2"
|
||||
base07 = "#fbf1c7"
|
||||
base08 = "#fb4934"
|
||||
base09 = "#fe8019"
|
||||
base0A = "#fabd2f"
|
||||
base0B = "#b8bb26"
|
||||
base0C = "#8ec07c"
|
||||
base0D = "#83a598"
|
||||
base0E = "#d3869b"
|
||||
base0F = "#d65d0e"
|
||||
|
||||
# set qutebrowser colors
|
||||
|
||||
# Text color of the completion widget. May be a single color to use for
|
||||
# all columns or a list of three colors, one for each column.
|
||||
c.colors.completion.fg = base05
|
||||
|
||||
# Background color of the completion widget for odd rows.
|
||||
c.colors.completion.odd.bg = base01
|
||||
|
||||
# Background color of the completion widget for even rows.
|
||||
c.colors.completion.even.bg = base00
|
||||
|
||||
# Foreground color of completion widget category headers.
|
||||
c.colors.completion.category.fg = base0A
|
||||
|
||||
# Background color of the completion widget category headers.
|
||||
c.colors.completion.category.bg = base00
|
||||
|
||||
# Top border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.top = base00
|
||||
|
||||
# Bottom border color of the completion widget category headers.
|
||||
c.colors.completion.category.border.bottom = base00
|
||||
|
||||
# Foreground color of the selected completion item.
|
||||
c.colors.completion.item.selected.fg = base05
|
||||
|
||||
# Background color of the selected completion item.
|
||||
c.colors.completion.item.selected.bg = base02
|
||||
|
||||
# Top border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.top = base02
|
||||
|
||||
# Bottom border color of the selected completion item.
|
||||
c.colors.completion.item.selected.border.bottom = base02
|
||||
|
||||
# Foreground color of the matched text in the selected completion item.
|
||||
c.colors.completion.item.selected.match.fg = base0B
|
||||
|
||||
# Foreground color of the matched text in the completion.
|
||||
c.colors.completion.match.fg = base0B
|
||||
|
||||
# Color of the scrollbar handle in the completion view.
|
||||
c.colors.completion.scrollbar.fg = base05
|
||||
|
||||
# Color of the scrollbar in the completion view.
|
||||
c.colors.completion.scrollbar.bg = base00
|
||||
|
||||
# Background color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.bg = base01
|
||||
|
||||
# Foreground color of disabled items in the context menu.
|
||||
c.colors.contextmenu.disabled.fg = base04
|
||||
|
||||
# Background color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.bg = base00
|
||||
|
||||
# Foreground color of the context menu. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.menu.fg = base05
|
||||
|
||||
# Background color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.bg = base02
|
||||
|
||||
#Foreground color of the context menu’s selected item. If set to null, the Qt default is used.
|
||||
c.colors.contextmenu.selected.fg = base05
|
||||
|
||||
# Background color for the download bar.
|
||||
c.colors.downloads.bar.bg = base00
|
||||
|
||||
# Color gradient start for download text.
|
||||
c.colors.downloads.start.fg = base00
|
||||
|
||||
# Color gradient start for download backgrounds.
|
||||
c.colors.downloads.start.bg = base0D
|
||||
|
||||
# Color gradient end for download text.
|
||||
c.colors.downloads.stop.fg = base00
|
||||
|
||||
# Color gradient stop for download backgrounds.
|
||||
c.colors.downloads.stop.bg = base0C
|
||||
|
||||
# Foreground color for downloads with errors.
|
||||
c.colors.downloads.error.fg = base08
|
||||
|
||||
# Font color for hints.
|
||||
c.colors.hints.fg = base00
|
||||
|
||||
# Background color for hints. Note that you can use a `rgba(...)` value
|
||||
# for transparency.
|
||||
c.colors.hints.bg = base0A
|
||||
|
||||
# Font color for the matched part of hints.
|
||||
c.colors.hints.match.fg = base05
|
||||
|
||||
# Text color for the keyhint widget.
|
||||
c.colors.keyhint.fg = base05
|
||||
|
||||
# Highlight color for keys to complete the current keychain.
|
||||
c.colors.keyhint.suffix.fg = base05
|
||||
|
||||
# Background color of the keyhint widget.
|
||||
c.colors.keyhint.bg = base00
|
||||
|
||||
# Foreground color of an error message.
|
||||
c.colors.messages.error.fg = base00
|
||||
|
||||
# Background color of an error message.
|
||||
c.colors.messages.error.bg = base08
|
||||
|
||||
# Border color of an error message.
|
||||
c.colors.messages.error.border = base08
|
||||
|
||||
# Foreground color of a warning message.
|
||||
c.colors.messages.warning.fg = base00
|
||||
|
||||
# Background color of a warning message.
|
||||
c.colors.messages.warning.bg = base0E
|
||||
|
||||
# Border color of a warning message.
|
||||
c.colors.messages.warning.border = base0E
|
||||
|
||||
# Foreground color of an info message.
|
||||
c.colors.messages.info.fg = base05
|
||||
|
||||
# Background color of an info message.
|
||||
c.colors.messages.info.bg = base00
|
||||
|
||||
# Border color of an info message.
|
||||
c.colors.messages.info.border = base00
|
||||
|
||||
# Foreground color for prompts.
|
||||
c.colors.prompts.fg = base05
|
||||
|
||||
# Border used around UI elements in prompts.
|
||||
c.colors.prompts.border = base00
|
||||
|
||||
# Background color for prompts.
|
||||
c.colors.prompts.bg = base00
|
||||
|
||||
# Background color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.bg = base02
|
||||
|
||||
# Foreground color for the selected item in filename prompts.
|
||||
c.colors.prompts.selected.fg = base05
|
||||
|
||||
# Foreground color of the statusbar.
|
||||
c.colors.statusbar.normal.fg = base0B
|
||||
|
||||
# Background color of the statusbar.
|
||||
c.colors.statusbar.normal.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.fg = base00
|
||||
|
||||
# Background color of the statusbar in insert mode.
|
||||
c.colors.statusbar.insert.bg = base0D
|
||||
|
||||
# Foreground color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.fg = base00
|
||||
|
||||
# Background color of the statusbar in passthrough mode.
|
||||
c.colors.statusbar.passthrough.bg = base0C
|
||||
|
||||
# Foreground color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.fg = base00
|
||||
|
||||
# Background color of the statusbar in private browsing mode.
|
||||
c.colors.statusbar.private.bg = base01
|
||||
|
||||
# Foreground color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.fg = base05
|
||||
|
||||
# Background color of the statusbar in command mode.
|
||||
c.colors.statusbar.command.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.fg = base05
|
||||
|
||||
# Background color of the statusbar in private browsing + command mode.
|
||||
c.colors.statusbar.command.private.bg = base00
|
||||
|
||||
# Foreground color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode.
|
||||
c.colors.statusbar.caret.bg = base0E
|
||||
|
||||
# Foreground color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.fg = base00
|
||||
|
||||
# Background color of the statusbar in caret mode with a selection.
|
||||
c.colors.statusbar.caret.selection.bg = base0D
|
||||
|
||||
# Background color of the progress bar.
|
||||
c.colors.statusbar.progress.bg = base0D
|
||||
|
||||
# Default foreground color of the URL in the statusbar.
|
||||
c.colors.statusbar.url.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on error.
|
||||
c.colors.statusbar.url.error.fg = base08
|
||||
|
||||
# Foreground color of the URL in the statusbar for hovered links.
|
||||
c.colors.statusbar.url.hover.fg = base05
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (http).
|
||||
c.colors.statusbar.url.success.http.fg = base0C
|
||||
|
||||
# Foreground color of the URL in the statusbar on successful load
|
||||
# (https).
|
||||
c.colors.statusbar.url.success.https.fg = base0B
|
||||
|
||||
# Foreground color of the URL in the statusbar when there's a warning.
|
||||
c.colors.statusbar.url.warn.fg = base0E
|
||||
|
||||
# Background color of the tab bar.
|
||||
c.colors.tabs.bar.bg = base00
|
||||
|
||||
# Color gradient start for the tab indicator.
|
||||
c.colors.tabs.indicator.start = base0D
|
||||
|
||||
# Color gradient end for the tab indicator.
|
||||
c.colors.tabs.indicator.stop = base0C
|
||||
|
||||
# Color for the tab indicator on errors.
|
||||
c.colors.tabs.indicator.error = base08
|
||||
|
||||
# Foreground color of unselected odd tabs.
|
||||
c.colors.tabs.odd.fg = base05
|
||||
|
||||
# Background color of unselected odd tabs.
|
||||
c.colors.tabs.odd.bg = base01
|
||||
|
||||
# Foreground color of unselected even tabs.
|
||||
c.colors.tabs.even.fg = base05
|
||||
|
||||
# Background color of unselected even tabs.
|
||||
c.colors.tabs.even.bg = base00
|
||||
|
||||
# Background color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.bg = base0C
|
||||
|
||||
# Foreground color of pinned unselected even tabs.
|
||||
c.colors.tabs.pinned.even.fg = base07
|
||||
|
||||
# Background color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.bg = base0B
|
||||
|
||||
# Foreground color of pinned unselected odd tabs.
|
||||
c.colors.tabs.pinned.odd.fg = base07
|
||||
|
||||
# Background color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.bg = base02
|
||||
|
||||
# Foreground color of pinned selected even tabs.
|
||||
c.colors.tabs.pinned.selected.even.fg = base05
|
||||
|
||||
# Background color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of pinned selected odd tabs.
|
||||
c.colors.tabs.pinned.selected.odd.fg = base05
|
||||
|
||||
# Foreground color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.fg = base05
|
||||
|
||||
# Background color of selected odd tabs.
|
||||
c.colors.tabs.selected.odd.bg = base02
|
||||
|
||||
# Foreground color of selected even tabs.
|
||||
c.colors.tabs.selected.even.fg = base05
|
||||
|
||||
# Background color of selected even tabs.
|
||||
c.colors.tabs.selected.even.bg = base02
|
||||
|
||||
# Background color for webpages if unset (or empty to use the theme's
|
||||
# color).
|
||||
# c.colors.webpage.bg = base00
|
42
config/.config/tinted-theming/tinty/config.toml
Normal file
42
config/.config/tinted-theming/tinty/config.toml
Normal file
@ -0,0 +1,42 @@
|
||||
[[items]]
|
||||
path = "https://github.com/tinted-theming/tinted-shell"
|
||||
name = "base16-shell"
|
||||
themes-dir = "scripts"
|
||||
hook = ". %f"
|
||||
|
||||
[[items]]
|
||||
path = "https://github.com/tinted-theming/tinted-tmux"
|
||||
name = "tinted-tmux"
|
||||
# Check if tmux is in use and if it is, reload the config file
|
||||
hook = "test -n \"$TMUX\" && tmux source-file ~/.tmux.conf"
|
||||
themes-dir = "colors"
|
||||
|
||||
[[items]]
|
||||
path = "https://github.com/tinted-theming/tinted-fzf"
|
||||
name = "tinted-fzf"
|
||||
themes-dir = "sh"
|
||||
|
||||
[[items]]
|
||||
path = "https://github.com/tinted-theming/base16-qutebrowser"
|
||||
name = "tinted-qutebrowser"
|
||||
themes-dir = "themes/default"
|
||||
hook = "cp -f %f ~/.config/qutebrowser/theme.py"
|
||||
theme-file-extension = ".config.py"
|
||||
|
||||
[[items]]
|
||||
path = "https://github.com/HaoZeke/base16-zathura"
|
||||
name = "tinted-zathura"
|
||||
themes-dir = "build_schemes/colors"
|
||||
hook = "cat ~/.config/zathura/config > ~/.config/zathura/zathurarc && cat %f >> ~/.config/zathura/zathurarc"
|
||||
|
||||
[[items]]
|
||||
path = "https://github.com/tinted-theming/base16-xresources"
|
||||
name = "tinted-xresources"
|
||||
themes-dir = "xresources"
|
||||
hook = "cp -f %f ~/.theme.xresources"
|
||||
|
||||
#[[items]]
|
||||
#path = "https://github.com/kdrag0n/base16-kitty"
|
||||
#name = "tinted-kitty"
|
||||
#themes-dir = "colors"
|
||||
#hook = "cp -f %f ~/.config/kitty/theme.conf"
|
1
config/.config/zathura/config
Normal file
1
config/.config/zathura/config
Normal file
@ -0,0 +1 @@
|
||||
set font "Cascadia Code 12"
|
36
config/.config/zathura/zathurarc
Normal file
36
config/.config/zathura/zathurarc
Normal file
@ -0,0 +1,36 @@
|
||||
set font "Cascadia Code 12"
|
||||
# Base16 Gruvbox dark, hard
|
||||
# Author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||
|
||||
set default-bg "#1d2021"
|
||||
set default-fg "#3c3836"
|
||||
|
||||
set statusbar-fg "#bdae93"
|
||||
set statusbar-bg "#504945"
|
||||
|
||||
set inputbar-bg "#1d2021"
|
||||
set inputbar-fg "#fbf1c7"
|
||||
|
||||
set notification-bg "#1d2021"
|
||||
set notification-fg "#fbf1c7"
|
||||
|
||||
set notification-error-bg "#1d2021"
|
||||
set notification-error-fg "#fb4934"
|
||||
|
||||
set notification-warning-bg "#1d2021"
|
||||
set notification-warning-fg "#fb4934"
|
||||
|
||||
set highlight-color "#fabd2f"
|
||||
set highlight-active-color "#83a598"
|
||||
|
||||
set completion-bg "#3c3836"
|
||||
set completion-fg "#83a598"
|
||||
|
||||
set completion-highlight-fg "#fbf1c7"
|
||||
set completion-highlight-bg "#83a598"
|
||||
|
||||
set recolor-lightcolor "#1d2021"
|
||||
set recolor-darkcolor "#ebdbb2"
|
||||
|
||||
set recolor "false"
|
||||
set recolor-keephue "false"
|
24
config/.gitconfig
Normal file
24
config/.gitconfig
Normal file
@ -0,0 +1,24 @@
|
||||
[user]
|
||||
email = mikec@mchalupiak.com
|
||||
name = Michael Chalupiak
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
[core]
|
||||
editor = kak
|
||||
[init]
|
||||
defaultBranch = master
|
||||
[sendemail]
|
||||
smtpserver = mchalupiak.com
|
||||
smtpuser = mikec
|
||||
smtpencryption = tls
|
||||
smtpserverport = 587
|
||||
[core]
|
||||
packedGitLimit = 512m
|
||||
packedGitWindowSize = 512m
|
||||
[pack]
|
||||
deltaCacheSize = 2047m
|
||||
packSizeLimit = 2047m
|
||||
windowMemory = 2047m
|
BIN
config/.newsboat/cache.db
Normal file
BIN
config/.newsboat/cache.db
Normal file
Binary file not shown.
10
config/.profile
Normal file
10
config/.profile
Normal file
@ -0,0 +1,10 @@
|
||||
if [ "$XDG_SESSION_DESKTOP" = "sway" ] ; then
|
||||
# https://github.com/swaywm/sway/issues/595
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
export STUDIO_JDK=/usr/lib/jvm/java-11-openjdk/
|
||||
fi
|
||||
|
||||
|
||||
# Added by Toolbox App
|
||||
export PATH="$PATH:/home/mikec/.local/share/JetBrains/Toolbox/scripts"
|
||||
|
1
config/.scripts/add-project
Executable file
1
config/.scripts/add-project
Executable file
@ -0,0 +1 @@
|
||||
echo "$(pwd) $1" >> ~/.scripts/store/projects
|
21
config/.scripts/bar.sh
Executable file
21
config/.scripts/bar.sh
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
DATE=$(date +'%Y-%m-%d %I:%M:%S %p')
|
||||
# BAT=$(cat /sys/class/power_supply/BAT1/capacity)
|
||||
VOL=$(pactl get-sink-volume @DEFAULT_SINK@ | tr "," "\n" | grep \% | sed s/Volume\:// | sed 's/\%.*$//' | sed 's/^.*\///' | head -n1 | sed s/\ *//)
|
||||
VOL="${VOL}%"
|
||||
MUTED=$(pactl get-sink-mute @DEFAULT_SINK@ | cut -d\ -f2)
|
||||
# BRIGHT=$(brightnessctl | tr "\n" " " | cut -d\ -f9 | tr -d "()%")
|
||||
MEM=$(free -h | sed 's/[ ]\+/:/g' | cut -d\: -f4 | tr "\n" ":" | cut -d\: -f2)
|
||||
USER=$(id -u -n)
|
||||
HOST=$(cat /proc/sys/kernel/hostname)
|
||||
# LAYOUT=$(swaymsg -t get_inputs | jq -r '.[] | select( .type == "keyboard") .xkb_active_layout_name' | tr "\n" ":" | cut -d\: -f1 | cut -d\ -f2| tr -d "()")
|
||||
LAYOUT=$(setxkbmap -print -verbose 10 | grep layout | cut -d ":" -f 2 | tr -d " ")
|
||||
NETWORK_NAME=$(iwctl station wlan0 show | grep network | sed s/"Connected network"// | tr -d " ")
|
||||
IP=$(iwctl station wlan0 show | grep IPv4 | sed s/"IPv4 address"// | tr -d " ")
|
||||
|
||||
if [ $MUTED == 'yes' ]
|
||||
then
|
||||
VOL='muted'
|
||||
fi
|
||||
|
||||
echo ${MEM} \| ${USER}\@${HOST} \| KB\: ${LAYOUT} \| ${NETWORK_NAME}\@${IP} \| V: ${VOL} \| ${BRIGHT}% Bl \| ${BAT}\% B \| ${DATE}
|
1
config/.scripts/build.sh
Executable file
1
config/.scripts/build.sh
Executable file
@ -0,0 +1 @@
|
||||
/usr/lib/jvm/java-11-openjdk/bin/javac -cp ./ $*
|
1
config/.scripts/buildtest.sh
Executable file
1
config/.scripts/buildtest.sh
Executable file
@ -0,0 +1 @@
|
||||
/usr/lib/jvm/java-11-openjdk/bin/javac -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest/core.jar $*
|
18206
config/.scripts/cloc
Executable file
18206
config/.scripts/cloc
Executable file
File diff suppressed because it is too large
Load Diff
5
config/.scripts/cloc-git
Executable file
5
config/.scripts/cloc-git
Executable file
@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
git clone --depth 1 "$1" temp-linecount-repo &&
|
||||
printf "('temp-linecount-repo' will be deleted automatically)\n\n\n" &&
|
||||
cloc temp-linecount-repo &&
|
||||
rm -rf temp-linecount-repo
|
18
config/.scripts/dmenu_emoji
Executable file
18
config/.scripts/dmenu_emoji
Executable file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
# The famous "get a menu of emojis to copy" script.
|
||||
|
||||
# Get user selection via dmenu from emoji file.
|
||||
chosen=$(cut -d ';' -f1 ~/.scripts/store/* | dmenu -i -l 30 | sed "s/ .*//")
|
||||
|
||||
# Exit if none chosen.
|
||||
[ -z "$chosen" ] && exit
|
||||
|
||||
# If you run this command with an argument, it will automatically insert the
|
||||
# character. Otherwise, show a message that the emoji has been copied.
|
||||
if [ -n "$1" ]; then
|
||||
xdotool type "$chosen"
|
||||
else
|
||||
printf "%s" "$chosen" | xclip -selection clipboard
|
||||
notify-send "'$chosen' copied to clipboard." &
|
||||
fi
|
12
config/.scripts/enter-dev.sh
Executable file
12
config/.scripts/enter-dev.sh
Executable file
@ -0,0 +1,12 @@
|
||||
dir="$(cat ~/.scripts/store/projects | fzf | cut -d\ -f1)"
|
||||
if [ -z "$dir" ]; then
|
||||
return
|
||||
fi
|
||||
if [ -n "$(command -v tmux)" ] && [ -z "$TMUX" ]; then
|
||||
tmux new-session -d -c $dir
|
||||
# tmux send-keys -t 0 C-z kak Enter
|
||||
tmux attach
|
||||
else
|
||||
cd $dir
|
||||
kak
|
||||
fi
|
94
config/.scripts/fzf-ctags
Executable file
94
config/.scripts/fzf-ctags
Executable file
@ -0,0 +1,94 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
IFS=
|
||||
|
||||
# Allow ** glob and Bash extended globbing
|
||||
shopt -s globstar extglob nullglob
|
||||
|
||||
# Set up the template variable.
|
||||
helper_bin=fzf-ctags-helper
|
||||
lib_src=fzf-ctags-lib
|
||||
helper="%FZF_DIR%/bin/$helper_bin"
|
||||
lib="%FZF_DIR%/bin/$lib_src"
|
||||
|
||||
# Setup the colorization preview helper.
|
||||
if [[ $helper = %*%* ]]; then
|
||||
# Find the helper if run directly, without installing.
|
||||
help_dir=${0%/*}
|
||||
[[ $0 != /* ]] && help_dir=$PWD/$help_dir
|
||||
lib="$help_dir/$lib_src"
|
||||
helper=$help_dir/$helper_bin
|
||||
# Found? Try cat if not.
|
||||
[[ ! -f $helper ]] && helper=cat
|
||||
[[ ! -f $lib ]] && {
|
||||
#printf "Library fzf-ctags-lib not found, exiting.\n"
|
||||
exit 1
|
||||
}
|
||||
fi
|
||||
|
||||
# Load shared functions library.
|
||||
source "$lib"
|
||||
export FZF_CTAGS_LIB="$lib"
|
||||
|
||||
# Which mode? Symbol, or surrounding text?
|
||||
if [[ $1 == symbol-only ]]; then
|
||||
q=2
|
||||
elif [[ -z $1 || $1 = text ]]; then
|
||||
q=1
|
||||
fi
|
||||
|
||||
typeset tags tags_path ptags="/tmp/.TAGS.z-$$"
|
||||
get_tags && tags="$REPLY"
|
||||
|
||||
# Is there any TAGS file to read?
|
||||
if [[ -z $tags || ! -f $tags ]]; then
|
||||
#printf "No \e[38;5;208mTAGS\e[0m file found, exiting…\e[0m\n"
|
||||
#printf "(\`univeral ctags\` is recommended tool to generate one;\n"
|
||||
#printf "homepage: https://github.com/universal-ctags/ctags).\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tags_path="${tags%/TAGS}"
|
||||
# Sort out the symbol to open at.
|
||||
type &>/dev/null sed && sed=sed
|
||||
type &>/dev/null ged && sed=gsed
|
||||
|
||||
command $sed -r -n $'/^\x0c$/ { n; s/,[^,]*$//;s/^/\x02/; h; d;}; G; y/\\n/,/; p' "$tags" > "$ptags"
|
||||
|
||||
line="$(fzf --preview="printf '%s' {} |$helper" --delimiter '\177' --with-nth $q < <( $sed -r -e 's/^\s+//' \
|
||||
-e 's/[\x01\x02]/\x7f/g' $ptags ))"
|
||||
ret=$?
|
||||
|
||||
command rm -f $ptags
|
||||
|
||||
# Check if anything has been picked.
|
||||
if (( ret != 0 )) || [[ -z $line ]]; then
|
||||
printf "\e[38;5;208mNo symbol has been picked out, nothing to do…\e[0m\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Split the input.
|
||||
q=$(cut -d$'\x7f' -f2 <<< $line)
|
||||
nr=$(cut -d$'\x7f' -f3 <<< $line)
|
||||
nr=${nr%%,*}
|
||||
e=$(cut -d$'\x7f' -f4 <<< $line)
|
||||
|
||||
# Use the user's configured editor falling back to vim.
|
||||
ed="${VISUAL:-${EDITOR:-vim}}"
|
||||
type $ed &>/dev/null || ed=emacs
|
||||
type $ed &>/dev/null || ed=nano
|
||||
if ! type $ed &>/dev/null; then
|
||||
#printf "\e[38;5;208mNo supported editor found, exiting…\e[0m\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
#printf "\nPicked: \e[1;38;5;39m$q\e[0m, opening: \
|
||||
#\e[1;38;5;70m$ed\e[0m with the file: \e[1;38;5;140m$e\e[0m:\e[38;5;208m$nr\e[0m\n"
|
||||
|
||||
# Run editor on the selected file and line.
|
||||
# The one-time loop is to emphasize the final step.
|
||||
while
|
||||
( cd "$tags_path"; command "$ed" +"$nr" "$e"; )
|
||||
false
|
||||
do true; done
|
36
config/.scripts/fzf-ctags-helper
Executable file
36
config/.scripts/fzf-ctags-helper
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Set **/… globs.
|
||||
shopt -s globstar nullglob extglob
|
||||
|
||||
# Load the library of shared functions.
|
||||
source "$FZF_CTAGS_LIB"
|
||||
|
||||
# Prevent word split
|
||||
IFS=
|
||||
|
||||
# Read the line of input.
|
||||
builtin read -d '' -r q
|
||||
|
||||
# Split the input.
|
||||
p=$(cut -d$'\x7f' -f3 <<< $q)
|
||||
p=${p%%,*}
|
||||
e=$(cut -d$'\x7f' -f4 <<< $q)
|
||||
(( p --, p=p-LINES/2+4, p=p<0?0:p ))
|
||||
|
||||
# Preamble,
|
||||
printf "Showing \e[1;38;5;208m««\e[1;38;5;70m$e\e[0m:\e[1;38;5;33m$p\e[1;38;5;208m»»\e[0m\\n"
|
||||
eval "printf '—%.0s' {1..$COLUMNS}"
|
||||
printf "\n"
|
||||
|
||||
get_tags && pth=${REPLY%/TAGS} || pth=
|
||||
(
|
||||
[[ -n $pth ]] && builtin cd $pth
|
||||
if [[ -e $e ]]; then
|
||||
colorize "$p" "$e"
|
||||
else
|
||||
printf "File $e not found\n"
|
||||
fi
|
||||
)
|
||||
|
||||
#less +${p%,*} **/"$e"
|
51
config/.scripts/fzf-ctags-lib
Executable file
51
config/.scripts/fzf-ctags-lib
Executable file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/env bash
|
||||
get_tags() {
|
||||
local d pth
|
||||
|
||||
#PWD=`pwd`
|
||||
pth=`pwd`
|
||||
while true; do
|
||||
[[ -e $pth/TAGS || -z ${pth%/} ]] && break
|
||||
pth=${pth%/*}
|
||||
d+=/..
|
||||
done
|
||||
[[ -n ${pth#/} ]] && REPLY="$pth"/TAGS
|
||||
|
||||
# Explicit!ly testable.
|
||||
return $?
|
||||
}
|
||||
|
||||
colorize() {
|
||||
local line="$1" file="$2" lines="$(tput lines 2>/dev/null)"
|
||||
local sed tool opts end
|
||||
|
||||
# Lines to show.
|
||||
[[ -z $lines ]] && lines="$LINES"
|
||||
[[ -z $lines ]] && lines=10
|
||||
((end=line+lines))
|
||||
|
||||
# Find sed binary to use.
|
||||
if type sed &>/dev/null; then
|
||||
sed=sed
|
||||
elif type gsed &>/dev/null; then
|
||||
sed-gsed
|
||||
else
|
||||
sed=cat
|
||||
fi
|
||||
|
||||
# Find the tool to use. Prefer pygments for its speed.
|
||||
if type pygmentize &>/dev/null; then
|
||||
tool="$sed -e 1,${line}d $file | pygmentize -g | head -n $lines"
|
||||
opts= file=
|
||||
elif type pygmentize3 &>/dev/null; then
|
||||
tool="$sed -e 1,${line}d $file | pygmentize3 -g | head -n $lines"
|
||||
opts= file=
|
||||
elif type source-highlight &>/dev/null; then
|
||||
tool=source-highlight
|
||||
opts="--line-range=$line-$end -f esc -o STDOUT -i"
|
||||
else
|
||||
tool="head -n $end $file | tail -n $lines"
|
||||
opts= file=
|
||||
fi
|
||||
eval "$tool $opts $file"
|
||||
}
|
3
config/.scripts/gb.sh
Executable file
3
config/.scripts/gb.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/GB -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || mgba "$GAMES"
|
3
config/.scripts/gba.sh
Executable file
3
config/.scripts/gba.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/GBA -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || mgba "$GAMES"
|
3
config/.scripts/gbc.sh
Executable file
3
config/.scripts/gbc.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/GBC -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || mgba "$GAMES"
|
3
config/.scripts/genesis.sh
Executable file
3
config/.scripts/genesis.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/Genesis -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || blastem "$GAMES"
|
BIN
config/.scripts/get_local_path
Executable file
BIN
config/.scripts/get_local_path
Executable file
Binary file not shown.
17
config/.scripts/get_local_path.c
Normal file
17
config/.scripts/get_local_path.c
Normal file
@ -0,0 +1,17 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
if (argc != 2) {
|
||||
return -1;
|
||||
}
|
||||
bool rel = true;
|
||||
if (argv[1][1] == '/') {
|
||||
rel = false;
|
||||
}
|
||||
char* last = strrchr(argv[1], '/');
|
||||
*last = '\0';
|
||||
puts(argv[1]);
|
||||
return 0;
|
||||
}
|
421
config/.scripts/mutt_oauth2.py
Executable file
421
config/.scripts/mutt_oauth2.py
Executable file
@ -0,0 +1,421 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Mutt OAuth2 token management script, version 2020-08-07
|
||||
# Written against python 3.7.3, not tried with earlier python versions.
|
||||
#
|
||||
# Copyright (C) 2020 Alexander Perlis
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License as
|
||||
# published by the Free Software Foundation; either version 2 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
# 02110-1301, USA.
|
||||
'''Mutt OAuth2 token management'''
|
||||
|
||||
import sys
|
||||
import json
|
||||
import argparse
|
||||
import urllib.parse
|
||||
import urllib.request
|
||||
import imaplib
|
||||
import poplib
|
||||
import smtplib
|
||||
import base64
|
||||
import secrets
|
||||
import hashlib
|
||||
import time
|
||||
from datetime import timedelta, datetime
|
||||
from pathlib import Path
|
||||
import socket
|
||||
import http.server
|
||||
import subprocess
|
||||
import readline
|
||||
|
||||
# The token file must be encrypted because it contains multi-use bearer tokens
|
||||
# whose usage does not require additional verification. Specify whichever
|
||||
# encryption and decryption pipes you prefer. They should read from standard
|
||||
# input and write to standard output. The example values here invoke GPG,
|
||||
# although won't work until an appropriate identity appears in the first line.
|
||||
ENCRYPTION_PIPE = ['gpg', '--encrypt', '--recipient', 'mikecchalupiak@outlook.com']
|
||||
DECRYPTION_PIPE = ['gpg', '--decrypt']
|
||||
|
||||
registrations = {
|
||||
'google': {
|
||||
'authorize_endpoint': 'https://accounts.google.com/o/oauth2/auth',
|
||||
'devicecode_endpoint': 'https://oauth2.googleapis.com/device/code',
|
||||
'token_endpoint': 'https://accounts.google.com/o/oauth2/token',
|
||||
'redirect_uri': 'urn:ietf:wg:oauth:2.0:oob',
|
||||
'imap_endpoint': 'imap.gmail.com',
|
||||
'pop_endpoint': 'pop.gmail.com',
|
||||
'smtp_endpoint': 'smtp.gmail.com',
|
||||
'sasl_method': 'OAUTHBEARER',
|
||||
'scope': 'https://mail.google.com/',
|
||||
'client_id': '',
|
||||
'client_secret': '',
|
||||
},
|
||||
'microsoft': {
|
||||
'authorize_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize',
|
||||
'devicecode_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/devicecode',
|
||||
'token_endpoint': 'https://login.microsoftonline.com/common/oauth2/v2.0/token',
|
||||
'redirect_uri': 'https://login.microsoftonline.com/common/oauth2/nativeclient',
|
||||
'tenant': 'common',
|
||||
'imap_endpoint': 'outlook.office365.com',
|
||||
'pop_endpoint': 'outlook.office365.com',
|
||||
'smtp_endpoint': 'smtp.office365.com',
|
||||
'sasl_method': 'XOAUTH2',
|
||||
'scope': ('offline_access https://outlook.office.com/IMAP.AccessAsUser.All '
|
||||
'https://outlook.office.com/POP.AccessAsUser.All '
|
||||
'https://outlook.office.com/SMTP.Send'),
|
||||
'client_id': '9e5f94bc-e8a4-4e73-b8be-63364c29d753',
|
||||
'client_secret': '',
|
||||
},
|
||||
}
|
||||
|
||||
ap = argparse.ArgumentParser(epilog='''
|
||||
This script obtains and prints a valid OAuth2 access token. State is maintained in an
|
||||
encrypted TOKENFILE. Run with "--verbose --authorize" to get started or whenever all
|
||||
tokens have expired, optionally with "--authflow" to override the default authorization
|
||||
flow. To truly start over from scratch, first delete TOKENFILE. Use "--verbose --test"
|
||||
to test the IMAP/POP/SMTP endpoints.
|
||||
''')
|
||||
ap.add_argument('-v', '--verbose', action='store_true', help='increase verbosity')
|
||||
ap.add_argument('-d', '--debug', action='store_true', help='enable debug output')
|
||||
ap.add_argument('tokenfile', help='persistent token storage')
|
||||
ap.add_argument('-a', '--authorize', action='store_true', help='manually authorize new tokens')
|
||||
ap.add_argument('--authflow', help='authcode | localhostauthcode | devicecode')
|
||||
ap.add_argument('-t', '--test', action='store_true', help='test IMAP/POP/SMTP endpoints')
|
||||
args = ap.parse_args()
|
||||
|
||||
token = {}
|
||||
path = Path(args.tokenfile)
|
||||
if path.exists():
|
||||
if 0o777 & path.stat().st_mode != 0o600:
|
||||
sys.exit('Token file has unsafe mode. Suggest deleting and starting over.')
|
||||
try:
|
||||
sub = subprocess.run(DECRYPTION_PIPE, check=True, input=path.read_bytes(),
|
||||
capture_output=True)
|
||||
token = json.loads(sub.stdout)
|
||||
except subprocess.CalledProcessError:
|
||||
sys.exit('Difficulty decrypting token file. Is your decryption agent primed for '
|
||||
'non-interactive usage, or an appropriate environment variable such as '
|
||||
'GPG_TTY set to allow interactive agent usage from inside a pipe?')
|
||||
|
||||
|
||||
def writetokenfile():
|
||||
'''Writes global token dictionary into token file.'''
|
||||
if not path.exists():
|
||||
path.touch(mode=0o600)
|
||||
if 0o777 & path.stat().st_mode != 0o600:
|
||||
sys.exit('Token file has unsafe mode. Suggest deleting and starting over.')
|
||||
sub2 = subprocess.run(ENCRYPTION_PIPE, check=True, input=json.dumps(token).encode(),
|
||||
capture_output=True)
|
||||
path.write_bytes(sub2.stdout)
|
||||
|
||||
|
||||
if args.debug:
|
||||
print('Obtained from token file:', json.dumps(token))
|
||||
if not token:
|
||||
if not args.authorize:
|
||||
sys.exit('You must run script with "--authorize" at least once.')
|
||||
print('Available app and endpoint registrations:', *registrations)
|
||||
token['registration'] = input('OAuth2 registration: ')
|
||||
token['authflow'] = input('Preferred OAuth2 flow ("authcode" or "localhostauthcode" '
|
||||
'or "devicecode"): ')
|
||||
token['email'] = input('Account e-mail address: ')
|
||||
token['access_token'] = ''
|
||||
token['access_token_expiration'] = ''
|
||||
token['refresh_token'] = ''
|
||||
writetokenfile()
|
||||
|
||||
if token['registration'] not in registrations:
|
||||
sys.exit(f'ERROR: Unknown registration "{token["registration"]}". Delete token file '
|
||||
f'and start over.')
|
||||
registration = registrations[token['registration']]
|
||||
|
||||
authflow = token['authflow']
|
||||
if args.authflow:
|
||||
authflow = args.authflow
|
||||
|
||||
baseparams = {'client_id': registration['client_id']}
|
||||
# Microsoft uses 'tenant' but Google does not
|
||||
if 'tenant' in registration:
|
||||
baseparams['tenant'] = registration['tenant']
|
||||
|
||||
|
||||
def access_token_valid():
|
||||
'''Returns True when stored access token exists and is still valid at this time.'''
|
||||
token_exp = token['access_token_expiration']
|
||||
return token_exp and datetime.now() < datetime.fromisoformat(token_exp)
|
||||
|
||||
|
||||
def update_tokens(r):
|
||||
'''Takes a response dictionary, extracts tokens out of it, and updates token file.'''
|
||||
token['access_token'] = r['access_token']
|
||||
token['access_token_expiration'] = (datetime.now() +
|
||||
timedelta(seconds=int(r['expires_in']))).isoformat()
|
||||
if 'refresh_token' in r:
|
||||
token['refresh_token'] = r['refresh_token']
|
||||
writetokenfile()
|
||||
if args.verbose:
|
||||
print(f'NOTICE: Obtained new access token, expires {token["access_token_expiration"]}.')
|
||||
|
||||
|
||||
if args.authorize:
|
||||
p = baseparams.copy()
|
||||
p['scope'] = registration['scope']
|
||||
|
||||
if authflow in ('authcode', 'localhostauthcode'):
|
||||
verifier = secrets.token_urlsafe(90)
|
||||
challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest())[:-1]
|
||||
redirect_uri = registration['redirect_uri']
|
||||
listen_port = 0
|
||||
if authflow == 'localhostauthcode':
|
||||
# Find an available port to listen on
|
||||
s = socket.socket()
|
||||
s.bind(('127.0.0.1', 0))
|
||||
listen_port = s.getsockname()[1]
|
||||
s.close()
|
||||
redirect_uri = 'http://localhost:'+str(listen_port)+'/'
|
||||
# Probably should edit the port number into the actual redirect URL.
|
||||
|
||||
p.update({'login_hint': token['email'],
|
||||
'response_type': 'code',
|
||||
'redirect_uri': redirect_uri,
|
||||
'code_challenge': challenge,
|
||||
'code_challenge_method': 'S256'})
|
||||
print(registration["authorize_endpoint"] + '?' +
|
||||
urllib.parse.urlencode(p, quote_via=urllib.parse.quote))
|
||||
|
||||
authcode = ''
|
||||
if authflow == 'authcode':
|
||||
authcode = input('Visit displayed URL to retrieve authorization code. Enter '
|
||||
'code from server (might be in browser address bar): ')
|
||||
else:
|
||||
print('Visit displayed URL to authorize this application. Waiting...',
|
||||
end='', flush=True)
|
||||
|
||||
class MyHandler(http.server.BaseHTTPRequestHandler):
|
||||
'''Handles the browser query resulting from redirect to redirect_uri.'''
|
||||
|
||||
# pylint: disable=C0103
|
||||
def do_HEAD(self):
|
||||
'''Response to a HEAD requests.'''
|
||||
self.send_response(200)
|
||||
self.send_header('Content-type', 'text/html')
|
||||
self.end_headers()
|
||||
|
||||
def do_GET(self):
|
||||
'''For GET request, extract code parameter from URL.'''
|
||||
# pylint: disable=W0603
|
||||
global authcode
|
||||
querystring = urllib.parse.urlparse(self.path).query
|
||||
querydict = urllib.parse.parse_qs(querystring)
|
||||
if 'code' in querydict:
|
||||
authcode = querydict['code'][0]
|
||||
self.do_HEAD()
|
||||
self.wfile.write(b'<html><head><title>Authorizaton result</title></head>')
|
||||
self.wfile.write(b'<body><p>Authorization redirect completed. You may '
|
||||
b'close this window.</p></body></html>')
|
||||
with http.server.HTTPServer(('127.0.0.1', listen_port), MyHandler) as httpd:
|
||||
try:
|
||||
httpd.handle_request()
|
||||
except KeyboardInterrupt:
|
||||
pass
|
||||
|
||||
if not authcode:
|
||||
sys.exit('Did not obtain an authcode.')
|
||||
|
||||
for k in 'response_type', 'login_hint', 'code_challenge', 'code_challenge_method':
|
||||
del p[k]
|
||||
p.update({'grant_type': 'authorization_code',
|
||||
'code': authcode,
|
||||
'client_secret': registration['client_secret'],
|
||||
'code_verifier': verifier})
|
||||
print('Exchanging the authorization code for an access token')
|
||||
try:
|
||||
response = urllib.request.urlopen(registration['token_endpoint'],
|
||||
urllib.parse.urlencode(p).encode())
|
||||
except urllib.error.HTTPError as err:
|
||||
print(err.code, err.reason)
|
||||
response = err
|
||||
response = response.read()
|
||||
if args.debug:
|
||||
print(response)
|
||||
response = json.loads(response)
|
||||
if 'error' in response:
|
||||
print(response['error'])
|
||||
if 'error_description' in response:
|
||||
print(response['error_description'])
|
||||
sys.exit(1)
|
||||
|
||||
elif authflow == 'devicecode':
|
||||
try:
|
||||
response = urllib.request.urlopen(registration['devicecode_endpoint'],
|
||||
urllib.parse.urlencode(p).encode())
|
||||
except urllib.error.HTTPError as err:
|
||||
print(err.code, err.reason)
|
||||
response = err
|
||||
response = response.read()
|
||||
if args.debug:
|
||||
print(response)
|
||||
response = json.loads(response)
|
||||
if 'error' in response:
|
||||
print(response['error'])
|
||||
if 'error_description' in response:
|
||||
print(response['error_description'])
|
||||
sys.exit(1)
|
||||
print(response['message'])
|
||||
del p['scope']
|
||||
p.update({'grant_type': 'urn:ietf:params:oauth:grant-type:device_code',
|
||||
'client_secret': registration['client_secret'],
|
||||
'device_code': response['device_code']})
|
||||
interval = int(response['interval'])
|
||||
print('Polling...', end='', flush=True)
|
||||
while True:
|
||||
time.sleep(interval)
|
||||
print('.', end='', flush=True)
|
||||
try:
|
||||
response = urllib.request.urlopen(registration['token_endpoint'],
|
||||
urllib.parse.urlencode(p).encode())
|
||||
except urllib.error.HTTPError as err:
|
||||
# Not actually always an error, might just mean "keep trying..."
|
||||
response = err
|
||||
response = response.read()
|
||||
if args.debug:
|
||||
print(response)
|
||||
response = json.loads(response)
|
||||
if 'error' not in response:
|
||||
break
|
||||
if response['error'] == 'authorization_declined':
|
||||
print(' user declined authorization.')
|
||||
sys.exit(1)
|
||||
if response['error'] == 'expired_token':
|
||||
print(' too much time has elapsed.')
|
||||
sys.exit(1)
|
||||
if response['error'] != 'authorization_pending':
|
||||
print(response['error'])
|
||||
if 'error_description' in response:
|
||||
print(response['error_description'])
|
||||
sys.exit(1)
|
||||
print()
|
||||
|
||||
else:
|
||||
sys.exit(f'ERROR: Unknown OAuth2 flow "{token["authflow"]}. Delete token file and '
|
||||
f'start over.')
|
||||
|
||||
update_tokens(response)
|
||||
|
||||
|
||||
if not access_token_valid():
|
||||
if args.verbose:
|
||||
print('NOTICE: Invalid or expired access token; using refresh token '
|
||||
'to obtain new access token.')
|
||||
if not token['refresh_token']:
|
||||
sys.exit('ERROR: No refresh token. Run script with "--authorize".')
|
||||
p = baseparams.copy()
|
||||
p.update({'client_secret': registration['client_secret'],
|
||||
'refresh_token': token['refresh_token'],
|
||||
'grant_type': 'refresh_token'})
|
||||
try:
|
||||
response = urllib.request.urlopen(registration['token_endpoint'],
|
||||
urllib.parse.urlencode(p).encode())
|
||||
except urllib.error.HTTPError as err:
|
||||
print(err.code, err.reason)
|
||||
response = err
|
||||
response = response.read()
|
||||
if args.debug:
|
||||
print(response)
|
||||
response = json.loads(response)
|
||||
if 'error' in response:
|
||||
print(response['error'])
|
||||
if 'error_description' in response:
|
||||
print(response['error_description'])
|
||||
print('Perhaps refresh token invalid. Try running once with "--authorize"')
|
||||
sys.exit(1)
|
||||
update_tokens(response)
|
||||
|
||||
|
||||
if not access_token_valid():
|
||||
sys.exit('ERROR: No valid access token. This should not be able to happen.')
|
||||
|
||||
|
||||
if args.verbose:
|
||||
print('Access Token: ', end='')
|
||||
print(token['access_token'])
|
||||
|
||||
|
||||
def build_sasl_string(user, host, port, bearer_token):
|
||||
'''Build appropriate SASL string, which depends on cloud server's supported SASL method.'''
|
||||
if registration['sasl_method'] == 'OAUTHBEARER':
|
||||
return f'n,a={user},\1host={host}\1port={port}\1auth=Bearer {bearer_token}\1\1'
|
||||
if registration['sasl_method'] == 'XOAUTH2':
|
||||
return f'user={user}\1auth=Bearer {bearer_token}\1\1'
|
||||
sys.exit(f'Unknown SASL method {registration["sasl_method"]}.')
|
||||
|
||||
|
||||
if args.test:
|
||||
errors = False
|
||||
|
||||
imap_conn = imaplib.IMAP4_SSL(registration['imap_endpoint'])
|
||||
sasl_string = build_sasl_string(token['email'], registration['imap_endpoint'], 993,
|
||||
token['access_token'])
|
||||
if args.debug:
|
||||
imap_conn.debug = 4
|
||||
try:
|
||||
imap_conn.authenticate(registration['sasl_method'], lambda _: sasl_string.encode())
|
||||
# Microsoft has a bug wherein a mismatch between username and token can still report a
|
||||
# successful login... (Try a consumer login with the token from a work/school account.)
|
||||
# Fortunately subsequent commands fail with an error. Thus we follow AUTH with another
|
||||
# IMAP command before reporting success.
|
||||
imap_conn.list()
|
||||
if args.verbose:
|
||||
print('IMAP authentication succeeded')
|
||||
except imaplib.IMAP4.error as e:
|
||||
print('IMAP authentication FAILED (does your account allow IMAP?):', e)
|
||||
errors = True
|
||||
|
||||
pop_conn = poplib.POP3_SSL(registration['pop_endpoint'])
|
||||
sasl_string = build_sasl_string(token['email'], registration['pop_endpoint'], 995,
|
||||
token['access_token'])
|
||||
if args.debug:
|
||||
pop_conn.set_debuglevel(2)
|
||||
try:
|
||||
# poplib doesn't have an auth command taking an authenticator object
|
||||
# Microsoft requires a two-line SASL for POP
|
||||
# pylint: disable=W0212
|
||||
pop_conn._shortcmd('AUTH ' + registration['sasl_method'])
|
||||
pop_conn._shortcmd(base64.standard_b64encode(sasl_string.encode()).decode())
|
||||
if args.verbose:
|
||||
print('POP authentication succeeded')
|
||||
except poplib.error_proto as e:
|
||||
print('POP authentication FAILED (does your account allow POP?):', e.args[0].decode())
|
||||
errors = True
|
||||
|
||||
# SMTP_SSL would be simpler but Microsoft does not answer on port 465.
|
||||
smtp_conn = smtplib.SMTP(registration['smtp_endpoint'], 587)
|
||||
sasl_string = build_sasl_string(token['email'], registration['smtp_endpoint'], 587,
|
||||
token['access_token'])
|
||||
smtp_conn.ehlo('test')
|
||||
smtp_conn.starttls()
|
||||
smtp_conn.ehlo('test')
|
||||
if args.debug:
|
||||
smtp_conn.set_debuglevel(2)
|
||||
try:
|
||||
smtp_conn.auth(registration['sasl_method'], lambda _=None: sasl_string)
|
||||
if args.verbose:
|
||||
print('SMTP authentication succeeded')
|
||||
except smtplib.SMTPAuthenticationError as e:
|
||||
print('SMTP authentication FAILED:', e)
|
||||
errors = True
|
||||
|
||||
if errors:
|
||||
sys.exit(1)
|
3
config/.scripts/n64.sh
Executable file
3
config/.scripts/n64.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/N64 -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || mupen64plus "$GAMES"
|
3
config/.scripts/nes.sh
Executable file
3
config/.scripts/nes.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/NES/USA -iname "*.nes" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || fceux "$GAMES"
|
6
config/.scripts/open-note.sh
Executable file
6
config/.scripts/open-note.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
FILE=$(rg --no-heading -n . | fzf)
|
||||
FILEPATH=$(echo $FILE | sed 's/:.*//')
|
||||
NUMBER=$(echo $FILE | cut -d':' -f2)
|
||||
kak +$NUMBER $FILEPATH
|
6
config/.scripts/pws.sh
Executable file
6
config/.scripts/pws.sh
Executable file
@ -0,0 +1,6 @@
|
||||
(rg -uu --color=always --line-number --no-heading . > $1) & tail -n +1 -f $1 | \
|
||||
fzf-tmux --cycle -p 80%,90% < /dev/null \
|
||||
--disabled --ansi \
|
||||
--bind "change:reload:rg -uu --smart-case {q} $1 || :" \
|
||||
--bind "enter:become(echo {1} {2})" \
|
||||
--delimiter : ; pkill -P $$
|
5
config/.scripts/remove-project
Executable file
5
config/.scripts/remove-project
Executable file
@ -0,0 +1,5 @@
|
||||
proj="$(cat -n ~/.scripts/store/projects | fzf | cut -f 1 | tr -d ' ')"
|
||||
if [ -z "$proj" ]; then
|
||||
exit
|
||||
fi
|
||||
sed -i "$proj"d ~/.scripts/store/projects
|
8
config/.scripts/rfs.sh
Executable file
8
config/.scripts/rfs.sh
Executable file
@ -0,0 +1,8 @@
|
||||
rg -uu --color=always --line-number --no-heading --smart-case "${*:3}" "$1" | tr -d '\r' |
|
||||
fzf-tmux --cycle -p 80%,90% --ansi \
|
||||
--color "hl:-1:underline,hl+:-1:underline:reverse" \
|
||||
--delimiter : \
|
||||
--preview "bat --theme='base16-256' --color=always $1 --highlight-line {1}" \
|
||||
--bind "enter:become(echo \"$2\" '{1}')" \
|
||||
--preview-window 'right,55%,+{1}+3/3,~3' \
|
||||
|
8
config/.scripts/rfv.sh
Executable file
8
config/.scripts/rfv.sh
Executable file
@ -0,0 +1,8 @@
|
||||
rg --uu --color=always --line-number --no-heading --smart-case -H "${*:-}" | tr -d '\r' |
|
||||
fzf-tmux --cycle -p 80%,90% --ansi \
|
||||
--color "hl:-1:underline,hl+:-1:underline:reverse" \
|
||||
--delimiter : \
|
||||
--preview 'bat --theme="base16-256" --color=always {1} --highlight-line {2}' \
|
||||
--bind 'enter:become(echo "{1}" "{2}")' \
|
||||
--preview-window 'right,55%,+{2}+3/3,~3' \
|
||||
#--preview-window 'right,55%' \
|
8
config/.scripts/rfve.sh
Executable file
8
config/.scripts/rfve.sh
Executable file
@ -0,0 +1,8 @@
|
||||
rg --color=always --line-number --no-heading --smart-case "${*:-}" | tr -d '\r' |
|
||||
fzf-tmux --cycle -p 80%,90% --ansi +x -e\
|
||||
--color "hl:-1:underline,hl+:-1:underline:reverse" \
|
||||
--delimiter : \
|
||||
--preview 'bat --theme="base16-256" --color=always {1} --highlight-line {2}' \
|
||||
--bind 'enter:become(echo "{1}" "{2}")' \
|
||||
--preview-window 'right,55%,+{2}+3/3,~3' \
|
||||
#--preview-window 'right,55%' \
|
8
config/.scripts/rgfs.sh
Executable file
8
config/.scripts/rgfs.sh
Executable file
@ -0,0 +1,8 @@
|
||||
(RELOAD='reload:rg -uu --color=always --line-number --no-heading --smart-case {q} || :'
|
||||
fzf-tmux --cycle -p 80%,90% < /dev/null \
|
||||
--disabled --ansi \
|
||||
--bind "start:$RELOAD" --bind "change:$RELOAD" \
|
||||
--bind "enter:become(echo '{1}' '{2}')" \
|
||||
--delimiter : \
|
||||
--preview-window 'right,55%,+{2}+3/3,~3' \
|
||||
--preview "bat --theme='base16-256' --color=always {1} --highlight-line {2}")
|
8
config/.scripts/rgrs.sh
Executable file
8
config/.scripts/rgrs.sh
Executable file
@ -0,0 +1,8 @@
|
||||
(RELOAD="reload:rg -uu --color=always --pcre2 --line-number --no-heading --smart-case {q} $1|| :"
|
||||
fzf-tmux --cycle -p 80%,90% < /dev/null \
|
||||
--disabled --ansi \
|
||||
--bind "start:$RELOAD" --bind "change:$RELOAD" \
|
||||
--bind "enter:become(echo \"$2\" '{1}')" \
|
||||
--delimiter : \
|
||||
--preview-window 'right,55%,+{1}+3/3,~3' \
|
||||
--preview "bat --theme='base16-256' --color=always $1 --highlight-line {1}")
|
1
config/.scripts/run.sh
Executable file
1
config/.scripts/run.sh
Executable file
@ -0,0 +1 @@
|
||||
/usr/lib/jvm/java-11-openjdk/bin/java -cp ./ $*
|
1
config/.scripts/ryujinx.sh
Executable file
1
config/.scripts/ryujinx.sh
Executable file
@ -0,0 +1 @@
|
||||
/opt/ryujinx/Ryujinx.sh
|
3
config/.scripts/shutdown.sh
Executable file
3
config/.scripts/shutdown.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#! /bin/sh
|
||||
killall startup.sh
|
||||
killall xss-lock
|
3
config/.scripts/snes.sh
Executable file
3
config/.scripts/snes.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
GAMES=$(find /home/mikec/Documents/Games/ROMS/SNES/USA -iname "*.zip" | bemenu -i --fn "Cascadia Code 12")
|
||||
[ -z "$GAMES" ] || snes9x-gtk "$GAMES"
|
6
config/.scripts/startup.sh
Executable file
6
config/.scripts/startup.sh
Executable file
@ -0,0 +1,6 @@
|
||||
#! /bin/sh
|
||||
while true; do
|
||||
xsetroot -name "$(/home/mikec/.scripts/bar.sh)"
|
||||
sleep 1
|
||||
done &
|
||||
xss-lock -- slock &
|
1630
config/.scripts/store/emoji.txt
Normal file
1630
config/.scripts/store/emoji.txt
Normal file
File diff suppressed because it is too large
Load Diff
1456
config/.scripts/store/font-awesome.txt
Normal file
1456
config/.scripts/store/font-awesome.txt
Normal file
File diff suppressed because it is too large
Load Diff
3
config/.scripts/store/projects
Executable file
3
config/.scripts/store/projects
Executable file
@ -0,0 +1,3 @@
|
||||
/home/mikec
|
||||
/home/mikec/Documents/Projects/crafting_interpreters
|
||||
/home/mikec/Documents/Projects/crafting_interpreters/jlox
|
470
config/.scripts/styli.sh
Executable file
470
config/.scripts/styli.sh
Executable file
@ -0,0 +1,470 @@
|
||||
#!/usr/bin/env bash
|
||||
link="https://source.unsplash.com/random/"
|
||||
|
||||
if [ -z ${XDG_CONFIG_HOME+x} ]; then
|
||||
XDG_CONFIG_HOME="${HOME}/.config"
|
||||
fi
|
||||
if [ -z ${XDG_HOME+x} ]; then
|
||||
XDG_HOME="${HOME}"
|
||||
fi
|
||||
confdir="${XDG_CONFIG_HOME}/styli.sh"
|
||||
if [ ! -d "${confdir}" ]; then
|
||||
mkdir -p "${confdir}"
|
||||
fi
|
||||
cachedir="${XDG_HOME}/Pictures/wallpapers"
|
||||
if [ ! -d "${cachedir}" ]; then
|
||||
mkdir -p "${cachedir}"
|
||||
fi
|
||||
|
||||
wallpaper="${cachedir}/wallpaper.jpg"
|
||||
wallpath=""
|
||||
die() {
|
||||
printf "ERR: %s\n" "$1" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# https://github.com/egeesin/alacritty-color-export
|
||||
alacritty_change() {
|
||||
DEFAULT_MACOS_CONFIG="$HOME"/.config/alacritty/alacritty.yml
|
||||
|
||||
# Wal generates a shell script that defines color0..color15
|
||||
SRC="$HOME"/.cache/wal/colors.sh
|
||||
|
||||
[ -e "$SRC" ] || die "Wal colors not found, exiting script. Have you executed Wal before?"
|
||||
printf "Colors found, source ready.\n"
|
||||
|
||||
READLINK=$( command -v greadlink || command -v readlink )
|
||||
|
||||
# Get config file
|
||||
if [ -n "$1" ]; then
|
||||
[ -e "$1" ] || die "Selected config doesn't exist, exiting script."
|
||||
printf "Config found, destination ready.\n"
|
||||
CFG=$1
|
||||
[ -L "$1" ] && {
|
||||
printf "Following symlink to config...\n"
|
||||
CFG=$($READLINK -f "$1")
|
||||
}
|
||||
else
|
||||
# Default config path in Mac systems
|
||||
[ -e "$DEFAULT_MACOS_CONFIG" ] || die "Alacritty config not found, exiting script."
|
||||
|
||||
CFG="$DEFAULT_MACOS_CONFIG"
|
||||
[ -L "$DEFAULT_MACOS_CONFIG" ] && {
|
||||
printf "Following symlink to config...\n"
|
||||
CFG=$($READLINK -f "$DEFAULT_MACOS_CONFIG")
|
||||
}
|
||||
fi
|
||||
|
||||
# Get hex colors from Wal cache
|
||||
# No need for shellcheck to check this, it comes from pywal
|
||||
# shellcheck disable=SC1090
|
||||
. "$SRC"
|
||||
|
||||
# Create temp file for sed results
|
||||
tempfile=$(mktemp)
|
||||
trap 'rm $tempfile' INT TERM EXIT
|
||||
|
||||
# Delete existing color declarations generated by this script
|
||||
# If begin comment exists
|
||||
if grep -q '^# BEGIN ACE' "$CFG"; then
|
||||
# And if end comment exists
|
||||
if grep -q '^# END ACE' "$CFG"; then
|
||||
# Delete contents of the block
|
||||
printf "Existing generated colors found, replacing new colors...\n"
|
||||
sed '/^# BEGIN ACE/,/^# END ACE/ {
|
||||
/^# BEGIN ACE/! { /^# END ACE/!d; }
|
||||
}' "$CFG" > "$tempfile" \
|
||||
&& cat "$tempfile" > "$CFG"
|
||||
# If no end comment, don't do anything
|
||||
else
|
||||
die "No '# END ACE' comment found, please ensure it is present."
|
||||
fi
|
||||
# If no begin comment found
|
||||
else
|
||||
# Don't do anything and notify user if there's an end comment in the file
|
||||
! grep -q '^# END ACE' "$CFG" || die "Found '# END ACE' comment, but no '# BEGIN ACE' comment found. Please ensure it is present."
|
||||
printf "There's no existing 'generated' colors, adding comments...\n";
|
||||
printf '# BEGIN ACE\n# END ACE' >> "$CFG";
|
||||
fi
|
||||
|
||||
# Write new color definitions
|
||||
# We know $colorX is unset, we set it by sourcing above
|
||||
# shellcheck disable=SC2154
|
||||
{ sed "/^# BEGIN ACE/ r /dev/stdin" "$CFG" > "$tempfile" <<EOP
|
||||
colors:
|
||||
primary:
|
||||
background: '$color0'
|
||||
foreground: '$color7'
|
||||
cursor:
|
||||
text: '$color0'
|
||||
cursor: '$color7'
|
||||
normal:
|
||||
black: '$color0'
|
||||
red: '$color1'
|
||||
green: '$color2'
|
||||
yellow: '$color3'
|
||||
blue: '$color4'
|
||||
magenta: '$color5'
|
||||
cyan: '$color6'
|
||||
white: '$color7'
|
||||
bright:
|
||||
black: '$color8'
|
||||
red: '$color9'
|
||||
green: '$color10'
|
||||
yellow: '$color11'
|
||||
blue: '$color12'
|
||||
magenta: '$color13'
|
||||
cyan: '$color14'
|
||||
white: '$color15'
|
||||
EOP
|
||||
} && cat "$tempfile" > "$CFG" \
|
||||
&& rm "$tempfile"
|
||||
trap - INT TERM EXIT
|
||||
printf "'%s' exported to '%s'\n" "$SRC" "$CFG"
|
||||
}
|
||||
|
||||
reddit(){
|
||||
useragent="thevinter"
|
||||
timeout=60
|
||||
|
||||
sort=$2
|
||||
top_time=$3
|
||||
if [ -z $sort ]; then
|
||||
sort="hot"
|
||||
fi
|
||||
|
||||
if [ -z $top_time ]; then
|
||||
top_time=""
|
||||
fi
|
||||
|
||||
if [ ! -z $1 ]; then
|
||||
sub=$1
|
||||
else
|
||||
if [ ! -f "${confdir}/subreddits" ]; then
|
||||
echo "Please install the subreddits file in ${confdir}"
|
||||
exit 2
|
||||
fi
|
||||
readarray subreddits < "${confdir}/subreddits"
|
||||
a=${#subreddits[@]}
|
||||
b=$(($RANDOM % $a))
|
||||
sub=${subreddits[$b]}
|
||||
sub="$(echo -e "${sub}" | tr -d '[:space:]')"
|
||||
fi
|
||||
|
||||
url="https://www.reddit.com/r/$sub/$sort/.json?raw_json=1&t=$top_time"
|
||||
content=`wget -T $timeout -U "$useragent" -q -O - $url`
|
||||
urls=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.preview.images[0].source.url')
|
||||
names=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.title')
|
||||
ids=$(echo -n "$content"| jq -r '.data.children[]|select(.data.post_hint|test("image")?) | .data.id')
|
||||
arrURLS=($urls)
|
||||
arrNAMES=($names)
|
||||
arrIDS=($ids)
|
||||
wait # prevent spawning too many processes
|
||||
size=${#arrURLS[@]}
|
||||
if [ $size -eq 0 ]; then
|
||||
echo The current subreddit is not valid.
|
||||
exit 1
|
||||
fi
|
||||
idx=$(($RANDOM % $size))
|
||||
target_url=${arrURLS[$idx]}
|
||||
target_name=${arrNAMES[$idx]}
|
||||
target_id=${arrIDS[$idx]}
|
||||
ext=`echo -n "${target_url##*.}"|cut -d '?' -f 1`
|
||||
newname=`echo $target_name | sed "s/^\///;s/\// /g"`_"$subreddit"_$target_id.$ext
|
||||
wget -T $timeout -U "$useragent" --no-check-certificate -q -P down -O ${wallpaper} $target_url &>/dev/null
|
||||
}
|
||||
|
||||
unsplash() {
|
||||
local search="${search// /_}"
|
||||
if [ ! -z $height ] || [ ! -z $width ]; then
|
||||
link="${link}${width}x${height}";
|
||||
else
|
||||
link="${link}1920x1080";
|
||||
fi
|
||||
|
||||
if [ ! -z $search ]; then
|
||||
link="${link}/?${search}"
|
||||
fi
|
||||
|
||||
wget -q -O ${wallpaper} $link
|
||||
}
|
||||
|
||||
deviantart(){
|
||||
client_id=16531
|
||||
client_secret=68c00f3d0ceab95b0fac638b33a3368e
|
||||
payload="grant_type=client_credentials&client_id=${client_id}&client_secret=${client_secret}"
|
||||
access_token=`curl --silent -d $payload https://www.deviantart.com/oauth2/token | jq -r '.access_token'`
|
||||
if [ ! -z $1 ]; then
|
||||
artist=$1
|
||||
url="https://www.deviantart.com/api/v1/oauth2/gallery/?username=${artist}&mode=popular&limit=24"
|
||||
elif [ ! -z $search ]; then
|
||||
[[ "$search" =~ ^(tag:)(.*)$ ]] && tag=${BASH_REMATCH[2]}
|
||||
if [ ! -z $tag ]; then
|
||||
url="https://www.deviantart.com/api/v1/oauth2/browse/tags?tag=$tag&offset=${RANDOM:0:2}&limit=24"
|
||||
else
|
||||
url="https://www.deviantart.com/api/v1/oauth2/browse/popular?q=$search&limit=24&timerange=1month"
|
||||
fi
|
||||
else
|
||||
#url="https://www.deviantart.com/api/v1/oauth2/browse/hot?limit=24&offset=${offset}"
|
||||
topics=( "adoptables" "artisan-crafts" "anthro" "comics" "drawings-and-paintings" "fan-art" "poetry" "stock-images" "sculpture" "science-fiction" "traditional-art" "street-photography" "street-art" "pixel-art" "wallpaper" "digital-art" "photo-manipulation" "science-fiction" "fractal" "game-art" "fantasy" "3d" "drawings-and-paintings" "game-art" )
|
||||
rand=$[$RANDOM % ${#topics[@]}]
|
||||
url="https://www.deviantart.com/api/v1/oauth2/browse/topic?limit=24&topic=${topics[$rand]}"
|
||||
fi
|
||||
content=`curl --silent -H "Authorization: Bearer ${access_token}" -H "Accept: application/json" -H "Content-Type: application/json" $url`
|
||||
urls=$(echo -n $content | jq -r '.results[].content.src')
|
||||
arrURLS=($urls)
|
||||
size=${#arrURLS[@]}
|
||||
idx=$(($RANDOM % $size))
|
||||
target_url=${arrURLS[$idx]}
|
||||
wget --no-check-certificate -q -P down -O ${wallpaper} $target_url &>/dev/null
|
||||
}
|
||||
|
||||
usage(){
|
||||
echo "Usage: styli.sh [-s | --search <string>]
|
||||
[-h | --height <height>]
|
||||
[-w | --width <width>]
|
||||
[-b | --fehbg <feh bg opt>]
|
||||
[-c | --fehopt <feh opt>]
|
||||
[-a | --artist <deviant artist>]
|
||||
[-r | --subreddit <subreddit>]
|
||||
[-l | --link <source>]
|
||||
[-p | --termcolor]
|
||||
[-d | --directory]
|
||||
[-k | --kde]
|
||||
[-x | --xfce]
|
||||
[-g | --gnome]
|
||||
[-m | --monitors <monitor count (nitrogen)>]
|
||||
[-n | --nitrogen]
|
||||
"
|
||||
exit 2
|
||||
}
|
||||
|
||||
type_check() {
|
||||
mime_types=("image/bmp" "image/jpeg" "image/gif" "image/png" "image/heic")
|
||||
isType=false
|
||||
|
||||
for requiredType in "${mime_types[@]}"
|
||||
do
|
||||
if [ $dir ]; then
|
||||
imageType=$(file --mime-type "$HOME/Pictures/wallpaper_dump/${wallpaper}" | sed 's/.*image/image/')
|
||||
echo $imageType
|
||||
if [ "$requiredType" = "$imageType" ]; then
|
||||
isType=true
|
||||
break
|
||||
fi
|
||||
else
|
||||
imageType=$(file --mime-type ${wallpaper} | awk '{print $2}')
|
||||
if [ "$requiredType" = "$imageType" ]; then
|
||||
isType=true
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $isType = false ]; then
|
||||
echo "MIME-Type missmatch. Downloaded file is not an image!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
select_random_wallpaper () {
|
||||
wallpaper=$(ls $HOME/Pictures/wallpaper_dump | shuf -n 1)
|
||||
}
|
||||
|
||||
pywal_cmd() {
|
||||
|
||||
if [ $pywal -eq 1 ]; then
|
||||
wal -c
|
||||
wal -i ${wallpaper} -n -q
|
||||
if [ $TERM = alacritty ]; then
|
||||
alacritty_change
|
||||
fi
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
sway_cmd() {
|
||||
mode="fill"
|
||||
if [ ! -z $dir ]; then
|
||||
cp "$HOME/Pictures/wallpaper_dump/${wallpaper}" "$HOME/Pictures/wallpapers/wallpaper"
|
||||
swaymsg output "*" bg "$HOME/Pictures/wallpaper_dump/${wallpaper}" "${mode}"
|
||||
else
|
||||
swaymsg output "*" bg "${wallpaper}" "${mode}"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
nitrogen_cmd() {
|
||||
for ((monitor=0; monitor < $monitors; monitor++))
|
||||
do
|
||||
local nitrogen=(nitrogen --save --head=${monitor})
|
||||
|
||||
if [ ! -z $bgtype ]; then
|
||||
if [ $bgtype == 'bg-center' ]; then
|
||||
nitrogen+=(--set-centered)
|
||||
fi
|
||||
if [ $bgtype == 'bg-fill' ]; then
|
||||
nitrogen+=(--set-zoom-fill)
|
||||
fi
|
||||
if [ $bgtype == 'bg-max' ]; then
|
||||
nitrogen+=(--set-zoom)
|
||||
fi
|
||||
if [ $bgtype == 'bg-scale' ]; then
|
||||
nitrogen+=(--set-scaled)
|
||||
fi
|
||||
if [ $bgtype == 'bg-tile' ]; then
|
||||
nitrogen+=(--set-tiled)
|
||||
fi
|
||||
else
|
||||
nitrogen+=(--set-scaled)
|
||||
fi
|
||||
|
||||
if [ ! -z $custom ]; then
|
||||
nitrogen+=($custom)
|
||||
fi
|
||||
|
||||
nitrogen+=(${wallpaper})
|
||||
|
||||
"${nitrogen[@]}"
|
||||
done
|
||||
}
|
||||
|
||||
kde_cmd() {
|
||||
if [ ! -z $dir ]; then
|
||||
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "var allDesktops = desktops();print (allDesktops);for (i=0;i<allDesktops.length;i++) {d = allDesktops[i];d.wallpaperPlugin = \"org.kde.image\";d.currentConfigGroup = Array(\"Wallpaper\", \"org.kde.image\", \"General\");d.writeConfig(\"Image\", \"file:$HOME/Pictures/wallpaper_dump/${wallpaper}\")}"
|
||||
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "var allDesktops = desktops();print (allDesktops);for (i=0;i<allDesktops.length;i++) {d = allDesktops[i];d.wallpaperPlugin = \"org.kde.image\";d.currentConfigGroup = Array(\"Wallpaper\", \"org.kde.image\", \"General\");d.writeConfig(\"Image\", \"file:$HOME/Pictures/wallpaper_dump/${wallpaper}\")}"
|
||||
else
|
||||
cp ${wallpaper} "${cachedir}/tmp.jpg"
|
||||
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "var allDesktops = desktops();print (allDesktops);for (i=0;i<allDesktops.length;i++) {d = allDesktops[i];d.wallpaperPlugin = \"org.kde.image\";d.currentConfigGroup = Array(\"Wallpaper\", \"org.kde.image\", \"General\");d.writeConfig(\"Image\", \"file:${cachedir}/tmp.jpg\")}"
|
||||
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "var allDesktops = desktops();print (allDesktops);for (i=0;i<allDesktops.length;i++) {d = allDesktops[i];d.wallpaperPlugin = \"org.kde.image\";d.currentConfigGroup = Array(\"Wallpaper\", \"org.kde.image\", \"General\");d.writeConfig(\"Image\", \"file:${wallpaper}\")}"
|
||||
rm "${cachedir}/tmp.jpg"
|
||||
fi
|
||||
}
|
||||
|
||||
xfce_cmd() {
|
||||
connectedOutputs=$(xrandr | grep " connected" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
|
||||
activeOutput=$(xrandr | grep -e " connected [^(]" | sed -e "s/\([A-Z0-9]\+\) connected.*/\1/")
|
||||
connected=$(echo $connectedOutputs | wc -w)
|
||||
|
||||
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s ~/Pictures/1.jpeg
|
||||
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitorLVDS1/workspace0/last-image -n -t string -s ~/Pictures/1.jpeg
|
||||
|
||||
for i in $(xfconf-query -c xfce4-desktop -p /backdrop -l|egrep -e "screen.*/monitor.*image-path$" -e "screen.*/monitor.*/last-image$"); do
|
||||
xfconf-query -c xfce4-desktop -p $i -n -t string -s ${wallpaper}
|
||||
xfconf-query -c xfce4-desktop -p $i -s ${wallpaper}
|
||||
done
|
||||
}
|
||||
|
||||
gnome_cmd() {
|
||||
if [ ! -z $dir ]; then
|
||||
gsettings set org.gnome.desktop.background picture-uri "file://$HOME/Pictures/wallpaper_dump/${wallpaper}"
|
||||
gsettings set org.gnome.desktop.background picture-uri-dark "file://$HOME/Pictures/wallpaper_dump/${wallpaper}"
|
||||
else
|
||||
gsettings set org.gnome.desktop.background picture-uri "file://${wallpaper}"
|
||||
gsettings set org.gnome.desktop.background picture-uri-dark "file://${wallpaper}"
|
||||
fi
|
||||
}
|
||||
|
||||
feh_cmd() {
|
||||
local feh=(feh)
|
||||
if [ ! -z $bgtype ]; then
|
||||
if [ $bgtype == 'bg-center' ]; then
|
||||
feh+=(--bg-center)
|
||||
fi
|
||||
if [ $bgtype == 'bg-fill' ]; then
|
||||
feh+=(--bg-fill)
|
||||
fi
|
||||
if [ $bgtype == 'bg-max' ]; then
|
||||
feh+=(--bg-max)
|
||||
fi
|
||||
if [ $bgtype == 'bg-scale' ]; then
|
||||
feh+=(--bg-scale)
|
||||
fi
|
||||
if [ $bgtype == 'bg-tile' ]; then
|
||||
feh+=(--bg-tile)
|
||||
fi
|
||||
else
|
||||
feh+=(--bg-scale)
|
||||
fi
|
||||
|
||||
if [ ! -z $custom ]; then
|
||||
feh+=($custom)
|
||||
fi
|
||||
|
||||
if [ ! -z $dir ]; then
|
||||
cp "$HOME/Pictures/wallpaper_dump/${wallpaper}" "$HOME/Pictures/wallpapers/wallpaper"
|
||||
feh+=("$HOME/Pictures/wallpaper_dump/${wallpaper}")
|
||||
else
|
||||
feh+=(${wallpaper})
|
||||
fi
|
||||
|
||||
"${feh[@]}"
|
||||
}
|
||||
|
||||
pywal=0
|
||||
kde=false
|
||||
xfce=false
|
||||
gnome=false
|
||||
nitrogen=false
|
||||
sway=false
|
||||
monitors=1
|
||||
|
||||
PARSED_ARGUMENTS=$(getopt -a -n $0 -o h:w:s:l:b:r:a:c:d:m:pknxgy --long search:,height:,width:,fehbg:,fehopt:,artist:,subreddit:,directory:,monitors:,termcolor:,kde,nitrogen,xfce,gnome,sway -- "$@")
|
||||
|
||||
VALID_ARGUMENTS=$?
|
||||
if [ "$VALID_ARGUMENTS" != "0" ]; then
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
while :
|
||||
do
|
||||
case "${1}" in
|
||||
-b | --fehbg) bgtype=${2} ; shift 2 ;;
|
||||
-s | --search) search=${2} ; shift 2 ;;
|
||||
-h | --height) height=${2} ; shift 2 ;;
|
||||
-w | --width) width=${2} ; shift 2 ;;
|
||||
-l | --link) link=${2} ; shift 2 ;;
|
||||
-r | --subreddit) sub=${2} ; shift 2 ;;
|
||||
-a | --artist) artist=${2} ; shift 2 ;;
|
||||
-c | --fehopt) custom=${2} ; shift 2 ;;
|
||||
-m | --monitors) monitors=${2} ; shift 2 ;;
|
||||
-n | --nitrogen) nitrogen=true ; shift ;;
|
||||
-d | --directory) dir=${2} ; shift 2 ;;
|
||||
-p | --termcolor) pywal=1 ; shift ;;
|
||||
-k | --kde) kde=true ; shift ;;
|
||||
-x | --xfce) xfce=true ; shift ;;
|
||||
-g | --gnome) gnome=true ; shift ;;
|
||||
-y | --sway) sway=true ; shift ;;
|
||||
-- | '') shift; break ;;
|
||||
*) echo "Unexpected option: $1 - this should not happen." ; usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! -z $dir ]; then
|
||||
select_random_wallpaper
|
||||
elif [ $link = "reddit" ] || [ ! -z $sub ]; then
|
||||
reddit "$sub"
|
||||
elif [ $link = "deviantart" ] || [ ! -z $artist ]; then
|
||||
deviantart "$artist"
|
||||
else
|
||||
unsplash
|
||||
fi
|
||||
echo $dir
|
||||
type_check
|
||||
|
||||
if [ $kde = true ]; then
|
||||
kde_cmd
|
||||
elif [ $xfce = true ]; then
|
||||
xfce_cmd
|
||||
elif [ $gnome = true ]; then
|
||||
gnome_cmd
|
||||
elif [ $nitrogen = true ]; then
|
||||
nitrogen_cmd
|
||||
elif [ $sway = true ]; then
|
||||
sway_cmd
|
||||
else
|
||||
feh_cmd
|
||||
fi
|
||||
|
||||
|
||||
pywal_cmd
|
1
config/.scripts/test.sh
Executable file
1
config/.scripts/test.sh
Executable file
@ -0,0 +1 @@
|
||||
/usr/lib/jvm/java-11-openjdk/bin/java -cp .:/usr/share/java/junit.jar:/usr/share/java/hamcrest/core.jar org.junit.runner.JUnitCore $*
|
2
config/.scripts/zigcc
Executable file
2
config/.scripts/zigcc
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
zig cc $@
|
46
config/.theme.xresources
Normal file
46
config/.theme.xresources
Normal file
@ -0,0 +1,46 @@
|
||||
! Base16 Gruvbox dark, hard
|
||||
! Scheme author: Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
|
||||
! Template author: Tinted Theming (https://github.com/tinted-theming)
|
||||
|
||||
#define base00 #1d2021
|
||||
#define base01 #3c3836
|
||||
#define base02 #504945
|
||||
#define base03 #665c54
|
||||
#define base04 #bdae93
|
||||
#define base05 #d5c4a1
|
||||
#define base06 #ebdbb2
|
||||
#define base07 #fbf1c7
|
||||
#define base08 #fb4934
|
||||
#define base09 #fe8019
|
||||
#define base0A #fabd2f
|
||||
#define base0B #b8bb26
|
||||
#define base0C #8ec07c
|
||||
#define base0D #83a598
|
||||
#define base0E #d3869b
|
||||
#define base0F #d65d0e
|
||||
|
||||
*foreground: base05
|
||||
#ifdef background_opacity
|
||||
*background: [background_opacity]base00
|
||||
#else
|
||||
*background: base00
|
||||
#endif
|
||||
*cursorColor: base05
|
||||
|
||||
*color0: base00
|
||||
*color1: base08
|
||||
*color2: base0B
|
||||
*color3: base0A
|
||||
*color4: base0D
|
||||
*color5: base0E
|
||||
*color6: base0C
|
||||
*color7: base05
|
||||
|
||||
*color8: base03
|
||||
*color9: base09
|
||||
*color10: base01
|
||||
*color11: base02
|
||||
*color12: base04
|
||||
*color13: base06
|
||||
*color14: base0F
|
||||
*color15: base07
|
21
config/.tmux.conf
Normal file
21
config/.tmux.conf
Normal file
@ -0,0 +1,21 @@
|
||||
# List of plugins
|
||||
#set -g @plugin 'tmux-plugins/tpm'
|
||||
#set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
#set -g @plugin 'arcticicestudio/nord-tmux'
|
||||
set -g default-terminal "xterm-256color"
|
||||
set -ga terminal-overrides ",xterm*:Tc"
|
||||
set -g mouse on
|
||||
# Changes prefix key to control a instead of control b
|
||||
unbind C-b
|
||||
set-option -g prefix C-a
|
||||
set -sg escape-time 25
|
||||
setw -g mode-keys vi
|
||||
bind b choose-tree
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'git@github.com:user/plugin'
|
||||
# set -g @plugin 'git@bitbucket.com:user/plugin'
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
#run '~/.tmux/plugins/tpm/tpm'
|
||||
run-shell "tmux source-file ~/.local/share/tinted-theming/tinty/repos/tinted-tmux/colors/base16-$BASE16_THEME.conf"
|
3
config/.xinitrc
Executable file
3
config/.xinitrc
Executable file
@ -0,0 +1,3 @@
|
||||
xrdb -merge ~/.Xresources
|
||||
/home/mikec/.scripts/startup.sh
|
||||
exec dwm
|
7
config/.xprofile
Normal file
7
config/.xprofile
Normal file
@ -0,0 +1,7 @@
|
||||
export PATH="${PATH}:$HOME/.scripts:~/.local/share/gem/ruby/3.0.0/bin"
|
||||
#export GDK_SCALE=2
|
||||
#export GDK_DPI_SCALE=0.5
|
||||
#sxhkd -c $HOME/.config/berry/sxhkdrc &
|
||||
# xrandr --output DisplayPort-0 --rate 165
|
||||
autorandr -c
|
||||
$HOME/.fehbg
|
Loading…
Reference in New Issue
Block a user