diff --git a/bash/.bashrc b/bash/.bashrc index eaf1355..7a3cbc9 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -42,3 +42,5 @@ export LC_ALL=en_US.UTF-8 eval "$(direnv hook bash)" eval "$(starship init bash)" export PATH="/home/minhradz/.cargo/bin;/home/minhradz/.local/bin;/home/minhradz/go/bin;/home/minhradz/.cabal/bin:$PATH" + +[ -f "/home/minhradz/.ghcup/env" ] && source "/home/minhradz/.ghcup/env" diff --git a/doom-emacs/.doom.d/config.el b/doom-emacs/.doom.d/config.el index 600f79a..0538777 100644 --- a/doom-emacs/.doom.d/config.el +++ b/doom-emacs/.doom.d/config.el @@ -7,7 +7,7 @@ ;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; clients, file templates and snippets. (setq user-full-name "minhtrannhat" - user-mail-address "minhtrannhat2001@gmail.com") + user-mail-address "minhtrannhat@minhtrannhat.com") ;; Doom exposes five (optional) variables for controlling fonts in Doom. Here ;; are the three important ones: @@ -25,11 +25,14 @@ (setq doom-emoji-fallback-font-families nil) (setq doom-symbol-fallback-font-families nil) +(add-hook 'prog-mode-hook #'pixel-scroll-mode) +(add-hook 'text-mode-hook #'pixel-scroll-mode) + (setq fancy-splash-image "/home/minhradz/.doom.d/marivector.png") (defun synchronize-theme () -(let* ((light-theme 'doom-gruvbox-light) - (dark-theme 'doom-gruvbox) +(let* ((light-theme 'doom-nord-light) + (dark-theme 'doom-nord) (start-time-light-theme 6) (end-time-light-theme 16) (hour (string-to-number (substring (current-time-string) 11 13))) @@ -81,6 +84,13 @@ ;; (global-tree-sitter-mode) ;; (add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode)) +(global-tree-sitter-mode) +(add-hook 'tree-sitter-after-on-hook #'tree-sitter-hl-mode) + +(require 'elcord) +(elcord-mode) +(setq elcord-use-major-mode-as-main-icon 't) + ;; gpg (setq epg-pinentry-mode 'loopback) @@ -89,6 +99,8 @@ ;; org org (setq +latex-viewers '(zathura)) +;; auto render latex in org mode +(add-hook 'org-mode-hook 'org-fragtog-mode) ;; fish fish (setq vterm-shell 'fish) @@ -163,18 +175,6 @@ :desc "Search org-roam with consult-ripgrep" "n r F" #'org-roam-rg-search) -;; Function for inserting node into Org Roam -(defun org-roam-node-insert-immediate (arg &rest args) - (interactive "P") - (let ((args (cons arg args)) - (org-roam-capture-templates (list (append (car org-roam-capture-templates) - '(:immediate-finish t))))) - (apply #'org-roam-node-insert args))) - -(map! :leader - :desc "Insert node immediately" - "n r I" #'org-roam-node-insert-immediate) - (setq avy-all-windows 't) ;; Disables lsp-signature-auto-activate @@ -208,9 +208,7 @@ (blamer-face ((t :foreground "#7a88cf" :background nil :height 110 - :italic t))) - :config - (global-blamer-mode 1)) + :italic t)))) ;; elfeed the rss reader (after! elfeed @@ -265,3 +263,29 @@ ((daily today remove-match) (800 1200 1600 2000) "......" "----------------"))) + +;; Clojure stuffs +(setq clojure-indent-style :always-align) + +(defun delete-file-and-buffer () + "Kill the current buffer and deletes the file it is visiting." + (interactive) + (let ((filename (buffer-file-name))) + (if filename + (if (y-or-n-p (concat "Do you really want to delete file " filename " ?")) + (progn + (delete-file filename) + (message "Deleted file %s." filename) + (kill-buffer))) + (message "Not a file visiting buffer!")))) + +;; email stuffs +;; Each path is relative to the path of the maildir you passed to mu +(set-email-account! "minhtrannhat.com" + '((mu4e-sent-folder . "/minhtrannhat@minhtrannhat.com/Sent") + (mu4e-drafts-folder . "/minhtrannhat@minhtrannhat.com/Drafts") + (mu4e-trash-folder . "/minhtrannhat@minhtrannhat.com/Trash") + (mu4e-refile-folder . "/minhtrannhat@minhtrannhat.com/All Mail") + (smtpmail-smtp-user . "minhtrannhat@minhtrannhat.com") + (mu4e-compose-signature . "---\nMinh Tran")) + t) diff --git a/doom-emacs/.doom.d/custom.el b/doom-emacs/.doom.d/custom.el new file mode 100644 index 0000000..ac7a61f --- /dev/null +++ b/doom-emacs/.doom.d/custom.el @@ -0,0 +1,17 @@ +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(elcord-display-buffer-details t) + '(git-gutter:update-interval 0.02) + '(smtpmail-smtp-server "mail.minhtrannhat.com") + '(smtpmail-smtp-service 587) + '(warning-suppress-types '((org-element-cache)))) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(blamer-face ((t :foreground "#7a88cf" :background nil :height 110 :italic t))) + '(ts-fold-replacement-face ((t (:foreground nil :box nil :inherit font-lock-comment-face :weight light))))) diff --git a/doom-emacs/.doom.d/init.el b/doom-emacs/.doom.d/init.el index 41c89bd..1faf1ac 100644 --- a/doom-emacs/.doom.d/init.el +++ b/doom-emacs/.doom.d/init.el @@ -31,7 +31,7 @@ indent-guides ; highlighted indent columns ligatures ; ligatures and symbols to make your code pretty again ;;minimap ; show a map of the code on the side - modeline ; snazzy, Atom-inspired modeline, plus API + (modeline +light) ; snazzy, Atom-inspired modeline, plus API ;;nav-flash ; blink cursor line after big motions ;;neotree ; a project drawer, like NERDTree for vim ophints ; highlight the region an operation acts on @@ -75,6 +75,7 @@ :tools ;;ansible ;;debugger ; FIXME stepping through code, to help you add bugs + tree-sitter direnv (docker +lsp) ;;editorconfig ; let someone else argue about tabs vs spaces @@ -100,7 +101,7 @@ ;;agda ; types of types of types of types... ;;beancount ; mind the GAAP (cc +lsp) ; C > C++ == 1 - clojure ; java with a lisp + (clojure +lsp) ; java with a lisp common-lisp ; if you've seen one lisp, you've seen them all ;;coq ; proofs-as-programs ;;crystal ; ruby at the speed of c @@ -158,9 +159,9 @@ ;;terra ; Earth and Moon in alignment for performance. (web +lsp) ; the tubes yaml ; JSON, but readable - ;;zig ; C, but simpler + zig ; C, but simpler :email - ;;(mu4e +gmail +org) + (mu4e +org) ;;notmuch ;;(wanderlust +gmail) :app diff --git a/doom-emacs/.doom.d/packages.el b/doom-emacs/.doom.d/packages.el index 58a9602..b6b0617 100644 --- a/doom-emacs/.doom.d/packages.el +++ b/doom-emacs/.doom.d/packages.el @@ -48,12 +48,10 @@ ;(unpin! pinned-package another-pinned-package) ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;(unpin! t) -;;(package! elcord) -(package! tree-sitter) -(package! tree-sitter-langs) +(package! elcord) (unpin! org-roam) (package! websocket) (package! org-roam-ui :recipe (:host github :repo "org-roam/org-roam-ui" :files ("*.el" "out"))) (package! magit-delta) (package! blamer :recipe (:host github :repo "artawower/blamer.el")) -(package! org-gtd) +(package! org-fragtog) diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish index 8479e33..0a8a67a 100644 --- a/fish/.config/fish/config.fish +++ b/fish/.config/fish/config.fish @@ -2,8 +2,6 @@ set fish_greeting fish_vi_key_bindings set fish_bind_mode insert -theme_gruvbox dark hard - alias rm 'rm -i' alias nnn 'nnn -e' alias icat 'kitty +kitten icat' @@ -37,7 +35,7 @@ set -gx LC_ALL en_US.UTF-8 set -gx _JAVA_AWT_WM_NONREPARENTING 1 -set -x PATH /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin /home/minhradz/.local/share/gem/ruby/3.0.0/bin $PATH +set -x PATH /home/minhradz/.ghcup/bin/ /usr/libexec /usr/local/bin /home/minhradz/.cargo/bin /home/minhradz/.local/bin /home/minhradz/go/bin /home/minhradz/.cabal/bin /home/minhradz/.local/share/gem/ruby/3.0.0/bin $PATH starship init fish | source diff --git a/fish/.config/fish/fish_variables b/fish/.config/fish/fish_variables index 554e984..67e70dd 100644 --- a/fish/.config/fish/fish_variables +++ b/fish/.config/fish/fish_variables @@ -2,18 +2,18 @@ # VERSION: 3.0 SETUVAR --export GTK_IM_MODULE:ibus SETUVAR --export QT_IM_MODULE:ibus -SETUVAR --export SSH_AGENT_PID:1050 -SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXF1IpnD/agent\x2e1049 +SETUVAR --export SSH_AGENT_PID:1167 +SETUVAR --export SSH_AUTH_SOCK:/tmp/ssh\x2dXXXXXXZc9gOi/agent\x2e1166 SETUVAR --export XMODIFIERS:\x40im\x3dibus SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:93a1a1 -SETUVAR fish_color_cancel:\x2dr -SETUVAR fish_color_command:586e75 -SETUVAR fish_color_comment:93a1a1 +SETUVAR fish_color_autosuggestion:4c566a +SETUVAR fish_color_cancel:\x2d\x2dreverse +SETUVAR fish_color_command:81a1c1 +SETUVAR fish_color_comment:434c5e SETUVAR fish_color_cwd:green SETUVAR fish_color_cwd_root:red -SETUVAR fish_color_end:268bd2 -SETUVAR fish_color_error:dc322f +SETUVAR fish_color_end:88c0d0 +SETUVAR fish_color_error:ebcb8b SETUVAR fish_color_escape:00a6b2 SETUVAR fish_color_history_current:\x2d\x2dbold SETUVAR fish_color_host:normal @@ -21,17 +21,17 @@ SETUVAR fish_color_host_remote:yellow SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue SETUVAR fish_color_normal:normal SETUVAR fish_color_operator:00a6b2 -SETUVAR fish_color_param:657b83 -SETUVAR fish_color_quote:839496 -SETUVAR fish_color_redirection:6c71c4 -SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dwhite +SETUVAR fish_color_param:eceff4 +SETUVAR fish_color_quote:a3be8c +SETUVAR fish_color_redirection:b48ead +SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack SETUVAR fish_color_status:red SETUVAR fish_color_user:brgreen SETUVAR fish_color_valid_path:\x2d\x2dunderline SETUVAR fish_key_bindings:fish_vi_key_bindings -SETUVAR fish_pager_color_completion:green +SETUVAR fish_pager_color_completion:normal SETUVAR fish_pager_color_description:B3A06D -SETUVAR fish_pager_color_prefix:cyan\x1e\x2d\x2dunderline +SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan -SETUVAR fish_pager_color_selected_background:\x2dr +SETUVAR fish_pager_color_selected_background:\x2d\x2dbackground\x3dbrblack diff --git a/fish/.config/fish/functions/__bass.py b/fish/.config/fish/functions/__bass.py new file mode 100755 index 0000000..3fe17fc --- /dev/null +++ b/fish/.config/fish/functions/__bass.py @@ -0,0 +1,138 @@ +""" +To be used with a companion fish function like this: + + function refish + set -l _x (python /tmp/bass.py source ~/.nvm/nvim.sh ';' nvm use iojs); source $_x; and rm -f $_x + end + +""" + +from __future__ import print_function + +import json +import os +import signal +import subprocess +import sys +import traceback + + +BASH = 'bash' + +FISH_READONLY = [ + 'PWD', 'SHLVL', 'history', 'pipestatus', 'status', 'version', + 'FISH_VERSION', 'fish_pid', 'hostname', '_', 'fish_private_mode' +] + +IGNORED = [ + 'PS1', 'XPC_SERVICE_NAME' +] + +def ignored(name): + if name == 'PWD': # this is read only, but has special handling + return False + # ignore other read only variables + if name in FISH_READONLY: + return True + if name in IGNORED or name.startswith("BASH_FUNC"): + return True + return False + +def escape(string): + # use json.dumps to reliably escape quotes and backslashes + return json.dumps(string).replace(r'$', r'\$') + +def escape_identifier(word): + return escape(word.replace('?', '\\?')) + +def comment(string): + return '\n'.join(['# ' + line for line in string.split('\n')]) + +def gen_script(): + # Use the following instead of /usr/bin/env to read environment so we can + # deal with multi-line environment variables (and other odd cases). + env_reader = "%s -c 'import os,json; print(json.dumps({k:v for k,v in os.environ.items()}))'" % (sys.executable) + args = [BASH, '-c', env_reader] + output = subprocess.check_output(args, universal_newlines=True) + old_env = output.strip() + + pipe_r, pipe_w = os.pipe() + if sys.version_info >= (3, 4): + os.set_inheritable(pipe_w, True) + command = 'eval $1 && ({}; alias) >&{}'.format( + env_reader, + pipe_w + ) + args = [BASH, '-c', command, 'bass', ' '.join(sys.argv[1:])] + p = subprocess.Popen(args, universal_newlines=True, close_fds=False) + os.close(pipe_w) + with os.fdopen(pipe_r) as f: + new_env = f.readline() + alias_str = f.read() + if p.wait() != 0: + raise subprocess.CalledProcessError( + returncode=p.returncode, + cmd=' '.join(sys.argv[1:]), + output=new_env + alias_str + ) + new_env = new_env.strip() + + old_env = json.loads(old_env) + new_env = json.loads(new_env) + + script_lines = [] + + for k, v in new_env.items(): + if ignored(k): + continue + v1 = old_env.get(k) + if not v1: + script_lines.append(comment('adding %s=%s' % (k, v))) + elif v1 != v: + script_lines.append(comment('updating %s=%s -> %s' % (k, v1, v))) + # process special variables + if k == 'PWD': + script_lines.append('cd %s' % escape(v)) + continue + else: + continue + if k == 'PATH': + value = ' '.join([escape(directory) + for directory in v.split(':')]) + else: + value = escape(v) + script_lines.append('set -g -x %s %s' % (k, value)) + + for var in set(old_env.keys()) - set(new_env.keys()): + script_lines.append(comment('removing %s' % var)) + script_lines.append('set -e %s' % var) + + script = '\n'.join(script_lines) + + alias_lines = [] + for line in alias_str.splitlines(): + _, rest = line.split(None, 1) + k, v = rest.split("=", 1) + alias_lines.append("alias " + escape_identifier(k) + "=" + v) + alias = '\n'.join(alias_lines) + + return script + '\n' + alias + +script_file = os.fdopen(3, 'w') + +if not sys.argv[1:]: + print('__bass_usage', file=script_file, end='') + sys.exit(0) + +try: + script = gen_script() +except subprocess.CalledProcessError as e: + sys.exit(e.returncode) +except Exception: + print('Bass internal error!', file=sys.stderr) + raise # traceback will output to stderr +except KeyboardInterrupt: + signal.signal(signal.SIGINT, signal.SIG_DFL) + os.kill(os.getpid(), signal.SIGINT) +else: + script_file.write(script) diff --git a/fish/.config/fish/functions/bass.fish b/fish/.config/fish/functions/bass.fish new file mode 100755 index 0000000..2b3af16 --- /dev/null +++ b/fish/.config/fish/functions/bass.fish @@ -0,0 +1,29 @@ +function bass + set -l bash_args $argv + set -l bass_debug + if test "$bash_args[1]_" = '-d_' + set bass_debug true + set -e bash_args[1] + end + + set -l script_file (mktemp) + if command -v python3 >/dev/null 2>&1 + command python3 -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file + else + command python -sS (dirname (status -f))/__bass.py $bash_args 3>$script_file + end + set -l bass_status $status + if test $bass_status -ne 0 + return $bass_status + end + + if test -n "$bass_debug" + cat $script_file + end + source $script_file + command rm $script_file +end + +function __bass_usage + echo "Usage: bass [-d] " +end diff --git a/fish/.config/fish/functions/load_nvm.fish b/fish/.config/fish/functions/load_nvm.fish new file mode 100644 index 0000000..55ed127 --- /dev/null +++ b/fish/.config/fish/functions/load_nvm.fish @@ -0,0 +1,16 @@ +function load_nvm --on-variable="PWD" + set -l default_node_version (nvm version default) + set -l node_version (nvm version) + set -l nvmrc_path (nvm_find_nvmrc) + if test -n "$nvmrc_path" + set -l nvmrc_node_version (nvm version (cat $nvmrc_path)) + if test "$nvmrc_node_version" = "N/A" + nvm install (cat $nvmrc_path) + else if test "$nvmrc_node_version" != "$node_version" + nvm use $nvmrc_node_version + end + else if test "$node_version" != "$default_node_version" + echo "Reverting to default Node version" + nvm use default + end +end diff --git a/fish/.config/fish/functions/nvm.fish b/fish/.config/fish/functions/nvm.fish new file mode 100644 index 0000000..5761a36 --- /dev/null +++ b/fish/.config/fish/functions/nvm.fish @@ -0,0 +1,3 @@ +function nvm + bass source ~/.nvm/nvm.sh --no-use ';' nvm $argv +end diff --git a/fish/.config/fish/functions/nvm_find_nvmrc.fish b/fish/.config/fish/functions/nvm_find_nvmrc.fish new file mode 100644 index 0000000..d7af2c7 --- /dev/null +++ b/fish/.config/fish/functions/nvm_find_nvmrc.fish @@ -0,0 +1,3 @@ +function nvm_find_nvmrc + bass source ~/.nvm/nvm.sh --no-use ';' nvm_find_nvmrc +end diff --git a/git/.gitconfig b/git/.gitconfig index 77381f4..b689474 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -1,7 +1,7 @@ [pull] rebase = false [user] - email = minhtrannhat@tutanota.com + email = minhtrannhat@minhtrannhat.com name = minhtrannhat signingkey = 894C6A5801E01CA9 [commit] @@ -9,9 +9,10 @@ [init] defaultBranch = master [gpg] - program = /usr/bin/gpg + program = /usr/bin/gpg2 [pager] diff = delta + blame = delta log = delta reflog = delta show = delta @@ -19,7 +20,7 @@ [delta] side-by-side = true line-numbers = true - syntax-theme = gruvbox-dark + syntax-theme = Nord navigate = true [interactive] diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf index 66afd5e..5a597a4 100644 --- a/kitty/.config/kitty/kitty.conf +++ b/kitty/.config/kitty/kitty.conf @@ -46,4 +46,4 @@ map ctrl+right neighboring_window right map ctrl+up neighboring_window up map ctrl+down neighboring_window down -include gruvbox_light.conf +include nord.conf diff --git a/kitty/.config/kitty/nord.conf b/kitty/.config/kitty/nord.conf new file mode 100644 index 0000000..1151312 --- /dev/null +++ b/kitty/.config/kitty/nord.conf @@ -0,0 +1,34 @@ +# Nord Colorscheme for Kitty +# Based on: +# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192 +# - https://github.com/arcticicestudio/nord-hyper +foreground #D8DEE9 +background #2E3440 +selection_foreground #000000 +selection_background #FFFACD +url_color #0087BD +cursor #81A1C1 +# black +color0 #3B4252 +color8 #4C566A +# red +color1 #BF616A +color9 #BF616A +# green +color2 #A3BE8C +color10 #A3BE8C +# yellow +color3 #EBCB8B +color11 #EBCB8B +# blue +color4 #81A1C1 +color12 #81A1C1 +# magenta +color5 #B48EAD +color13 #B48EAD +# cyan +color6 #88C0D0 +color14 #8FBCBB +# white +color7 #E5E9F0 +color15 #ECEFF4 diff --git a/lvim/.config/lvim/config.lua b/lvim/.config/lvim/config.lua index 4bb99bd..e43c5dd 100644 --- a/lvim/.config/lvim/config.lua +++ b/lvim/.config/lvim/config.lua @@ -9,16 +9,21 @@ lvim.builtin.alpha.active = true lvim.builtin.terminal.active = true lvim.builtin.autopairs.active = true lvim.builtin.gitsigns.active = true -lvim.builtin.notify.active = true +lvim.builtin.notify.active = false lvim.builtin.dap.active = true lvim.builtin.nvimtree.side = "left" -lvim.builtin.nvimtree.show_icons.git = 1 lvim.builtin.terminal.shell = "/bin/fish" vim.termguicolors = true vim.background = "dark" -lvim.colorscheme = "gruvbox" +vim.g.nord_contrast = true +vim.g.nord_borders = true +vim.g.nord_disable_background = false +vim.g.nord_italic = true +vim.termguicolors = true +lvim.colorscheme = "nord" +vim.api.nvim_set_var("Hexokinase_highlighters", { "backgroundfull" }) lvim.builtin.treesitter.ensure_installed = {} lvim.builtin.treesitter.ignore_install = { "" } @@ -28,82 +33,133 @@ local formatters = require("lvim.lsp.null-ls.formatters") local linters = require("lvim.lsp.null-ls.linters") formatters.setup({ - { - exe = "black", - filetypes = { "python" }, - args = { "--quiet", "--fast", "-" }, - }, - { - exe = "clang_format", - filetypes = { "c", "cpp" }, - }, - { - exe = "rustfmt", - filetype = { "rust" }, - }, - { exe = "prettier" }, - { exe = "gofmt", filetypes = { "go" } }, - { exe = "eslint_d" }, - { exe = "stylua", filetypes = { "lua" } }, - { exe = "brittany", filetypes = { "haskell" } }, + { + exe = "black", + filetypes = { "python" }, + args = { "--quiet", "--fast", "-" }, + }, + { + exe = "clang_format", + filetypes = { "c", "cpp" }, + }, + { + exe = "rustfmt", + filetype = { "rust" }, + }, + { exe = "prettier" }, + { exe = "gofmt", filetypes = { "go" } }, + { exe = "eslint_d" }, + { exe = "stylua", filetypes = { "lua" } }, + { exe = "brittany", filetypes = { "haskell" } }, }) linters.setup({ - { exe = "flake8" }, + { exe = "flake8" }, }) -- Additional Plugins lvim.plugins = { - { "ellisonleao/gruvbox.nvim" }, - { - "ray-x/lsp_signature.nvim", - config = function() - require("lsp_signature").on_attach() - end, - event = "InsertEnter", - }, - { "machakann/vim-sandwich" }, - { "tpope/vim-fugitive" }, - { - "lewis6991/spellsitter.nvim", - config = function() - require("spellsitter").setup() - end, - }, - { "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" }, - { "ellisonleao/glow.nvim" }, + { "shaunsingh/nord.nvim" }, + { + "ray-x/lsp_signature.nvim", + config = function() + require("lsp_signature").on_attach() + end, + event = "InsertEnter", + }, + { "machakann/vim-sandwich" }, + { "tpope/vim-fugitive" }, + { + "lewis6991/spellsitter.nvim", + config = function() + require("spellsitter").setup() + end, + }, + { "ggandor/lightspeed.nvim", requires = { "tpope/vim-repeat" }, event = "InsertEnter" }, + { "ellisonleao/glow.nvim" }, + { "andweeb/presence.nvim" }, + { + "RRethy/vim-hexokinase", + run = "cd ~/.local/share/lunarvim/site/pack/packer/start/vim-hexokinase && make hexokinase", + }, + { + "m-demare/hlargs.nvim", + config = function() + require("hlargs").setup() + end, + }, + { + "aserowy/tmux.nvim", + config = function() + require("tmux").setup({ + copy_sync = { + enable = false, + }, + navigation = { + enable_default_keybindings = true, + }, + resize = { + enable_default_keybindings = true, + }, + }) + end, + }, } +-- The setup config table shows all available config options with their default values: +require("presence"):setup({ + -- General options + auto_update = true, -- Update activity based on autocmd events (if `false`, map or manually execute `:lua package.loaded.presence:update()`) + neovim_image_text = "The One True Text Editor", -- Text displayed when hovered over the Neovim image + main_image = "file", -- Main image display (either "neovim" or "file") + client_id = "793271441293967371", -- Use your own Discord application client id (not recommended) + log_level = nil, -- Log messages at or above this level (one of the following: "debug", "info", "warn", "error") + debounce_timeout = 10, -- Number of seconds to debounce events (or calls to `:lua package.loaded.presence:update(, true)`) + enable_line_number = false, -- Displays the current line number instead of the current project + blacklist = {}, -- A list of strings or Lua patterns that disable Rich Presence if the current file name, path, or workspace matches + buttons = true, -- Configure Rich Presence button(s), either a boolean to enable/disable, a static table (`{{ label = "