From b6689da485cf3cca0d9084b86fbe2dc295a930e3 Mon Sep 17 00:00:00 2001 From: Jacob Bohanon Date: Fri, 5 Apr 2024 07:41:23 -0400 Subject: [PATCH] obsidian plugin, mygvm enhancements --- .gitconfig | 12 +++++++++ init.sh | 3 ++- mygvm/README.md | 7 +++++ mygvm/modules_to_install | 3 +++ {zsh => mygvm}/mygvm | 21 +++++++++++++++ nvim/lua/plugins/init.lua | 3 +++ nvim/lua/plugins/obsidian.lua | 14 ++++++++++ nvim/lua/sets.lua | 51 ++++++++++++++++++----------------- zsh/.zshrc | 8 +++++- 9 files changed, 96 insertions(+), 26 deletions(-) create mode 100644 mygvm/README.md create mode 100644 mygvm/modules_to_install rename {zsh => mygvm}/mygvm (84%) create mode 100644 nvim/lua/plugins/obsidian.lua diff --git a/.gitconfig b/.gitconfig index f88283c..a1f81a0 100644 --- a/.gitconfig +++ b/.gitconfig @@ -16,3 +16,15 @@ format = ssh [commit] gpgsign = true +[diff] + tool = nvimdiff +[difftool] + prompt = false +[difftool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$REMOTE\"" +[merge] + tool = nvimdiff +[mergetool] + prompt = true +[mergetool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c 'wincmd w' -c 'wincmd J'" diff --git a/init.sh b/init.sh index 7eb2b76..47c4d43 100755 --- a/init.sh +++ b/init.sh @@ -38,6 +38,7 @@ ln -s $HOME/.dotfiles/zsh/ $HOME/.config/zsh ln -s $HOME/.dotfiles/nvim/ $HOME/.config/nvim ln -s $HOME/.dotfiles/tmux/ $HOME/.config/tmux ln -s $HOME/.dotfiles/zellij/ $HOME/.config/zellij +ln -s $HOME/.dotfiles/mygvm/ $HOME/.config/mygvm ln -s $HOME/.config/nvim/init.vim $HOME/.vimrc mv $HOME/.zshrc $HOME/.zshrc.bak && ln -s $HOME/.config/zsh/.zshrc $HOME/.zshrc @@ -50,7 +51,7 @@ curl -sS https://starship.rs/install.sh | sh # Install mygvm mkdir $HOME/go mkdir -p $HOME/.go/downloads -sudo ln -s $HOME/.dotfiles/zsh/mygvm /usr/local/bin/mygvm +sudo ln -s $HOME/.dotfiles/mygvm/mygvm /usr/local/bin/mygvm # Install Go mygvm install go1.22.0 diff --git a/mygvm/README.md b/mygvm/README.md new file mode 100644 index 0000000..36cb833 --- /dev/null +++ b/mygvm/README.md @@ -0,0 +1,7 @@ +### My GVM +This tool was written to share a single `GOPATH` despite multiple different Go versions, which require their own `GOROOT`. + +It will find and install latest minor or explicit patch versions. + +Due to `GOBIN` switching around, a list of modules can be specified to install. These should be located at +`$HOME/.config/mygvm/modules_to_install` separated by newlines diff --git a/mygvm/modules_to_install b/mygvm/modules_to_install new file mode 100644 index 0000000..c64b768 --- /dev/null +++ b/mygvm/modules_to_install @@ -0,0 +1,3 @@ +github.com/tilt-dev/ctlptl/cmd/ctlptl@latest +sigs.k8s.io/kind@v0.22.0 +github.com/derailed/k9s@v0.27.3 diff --git a/zsh/mygvm b/mygvm/mygvm similarity index 84% rename from zsh/mygvm rename to mygvm/mygvm index b6e93ca..17d0fe5 100755 --- a/zsh/mygvm +++ b/mygvm/mygvm @@ -23,6 +23,8 @@ install_version() { mv go/ ../$1 check_exists $1 link_version $1 + + install_modules } link_version() { @@ -102,6 +104,22 @@ prompt_install() { fi } +install_modules() { + fname="$HOME/.config/mygvm/modules_to_install" + echo "attempting to install nvim required binaries and modules at $fname" + [[ ! -f $fname ]] && echo "no modules file at $fname" && return + + while IFS= read -r line; do + if [[ "$line" != "" ]]; then + echo "running go install $line" + go install $line + fi + done < "$HOME/.config/mygvm/modules_to_install" + + [[ $(which nvim) ]] && nvim --headless +GoInstallBinaries +q + echo "" +} + mkdir -p "$HOME/.go/downloads" current_link=$(basename $(readlink $HOME/.go/go)) uname_m=$(uname -m) @@ -136,6 +154,9 @@ elif [[ $1 == 'use' ]]; then else prompt_install $2 fi + install_modules +elif [[ $1 == 'modules' ]]; then + install_modules elif [[ $exists == 'true' ]]; then link_version $1 else diff --git a/nvim/lua/plugins/init.lua b/nvim/lua/plugins/init.lua index d19f02f..e19abf9 100644 --- a/nvim/lua/plugins/init.lua +++ b/nvim/lua/plugins/init.lua @@ -58,6 +58,8 @@ Plug 'tpope/vim-dispatch' Plug 'jamestthompson3/nvim-remote-containers' +Plug 'epwalsh/obsidian.nvim' + vim.call('plug#end') require("plugins/airline") @@ -67,3 +69,4 @@ require("plugins/telescope") require("plugins/treesitter") require("plugins/nvim-cmp") require("plugins/vim-go") +require("plugins/obsidian") diff --git a/nvim/lua/plugins/obsidian.lua b/nvim/lua/plugins/obsidian.lua new file mode 100644 index 0000000..def3630 --- /dev/null +++ b/nvim/lua/plugins/obsidian.lua @@ -0,0 +1,14 @@ +require("obsidian").setup({ + workspaces = { + { + name = "work", + path = "$HOME/Documents/obsidian/work" + }, + }, + daily_notes = { + folder = "daily", + date_format = "%Y-%m-%d", + template = "daily/daily-template.md", + }, + new_notes_location = "notes_subdir", +}) diff --git a/nvim/lua/sets.lua b/nvim/lua/sets.lua index 338ff34..9cc1019 100644 --- a/nvim/lua/sets.lua +++ b/nvim/lua/sets.lua @@ -1,29 +1,32 @@ -vim.api.nvim_win_set_option(0, 'number', true) -vim.api.nvim_win_set_option(0, 'relativenumber', true) -vim.api.nvim_win_set_option(0, 'wrap', false) +vim.api.nvim_set_option_value('number', true, {win=0}) +vim.api.nvim_set_option_value('relativenumber', true, {win=0}) +vim.api.nvim_set_option_value('wrap', false, {win=0}) -vim.api.nvim_set_option('tabstop', 4) -vim.api.nvim_set_option('softtabstop', 4) -vim.api.nvim_set_option('shiftwidth', 4) -vim.api.nvim_set_option('expandtab', true) -vim.api.nvim_set_option('smartindent', true) -vim.api.nvim_set_option('termguicolors', true) -vim.api.nvim_set_option('scrolloff', 8) -vim.api.nvim_set_option('colorcolumn', "80,120") -vim.api.nvim_set_option('signcolumn', 'yes') -vim.api.nvim_set_option('cmdheight', 2) -vim.api.nvim_set_option('title', false) +vim.api.nvim_set_option_value('tabstop', 4, {}) +vim.api.nvim_set_option_value('softtabstop', 4, {}) +vim.api.nvim_set_option_value('shiftwidth', 4, {}) +vim.api.nvim_set_option_value('expandtab', true, {}) +vim.api.nvim_set_option_value('smartindent', true, {}) +vim.api.nvim_set_option_value('termguicolors', true, {}) +vim.api.nvim_set_option_value('scrolloff', 8, {}) +vim.api.nvim_set_option_value('colorcolumn', "80,120", {}) +vim.api.nvim_set_option_value('signcolumn', 'yes', {}) +vim.api.nvim_set_option_value('cmdheight', 2, {}) +vim.api.nvim_set_option_value('title', false, {}) -vim.api.nvim_set_option('hlsearch', false) -vim.api.nvim_set_option('incsearch', true) -vim.api.nvim_set_option('hidden', true) -vim.api.nvim_set_option('errorbells', false) -vim.api.nvim_set_option('updatetime', 50) +vim.api.nvim_set_option_value('hlsearch', false, {}) +vim.api.nvim_set_option_value('incsearch', true, {}) +vim.api.nvim_set_option_value('hidden', true, {}) +vim.api.nvim_set_option_value('errorbells', false, {}) +vim.api.nvim_set_option_value('updatetime', 50, {}) -vim.api.nvim_set_option('swapfile', false) -vim.api.nvim_set_option('backup', false) -vim.api.nvim_set_option('undofile', true) -vim.api.nvim_set_option('undodir', vim.fn.expand('~')..'/.vim/undodir') +vim.api.nvim_set_option_value('swapfile', false, {}) +vim.api.nvim_set_option_value('backup', false, {}) +vim.api.nvim_set_option_value('undofile', true, {}) +vim.api.nvim_set_option_value('undodir', vim.fn.expand('~')..'/.vim/undodir', {}) -- Completion config -vim.api.nvim_set_option('completeopt', 'menu,menuone,noselect,noinsert,preview') +vim.api.nvim_set_option_value('completeopt', 'menu,menuone,noselect,noinsert,preview', {}) + +-- Required for obsidian.nvim +vim.api.nvim_set_option_value('conceallevel', 1, {}) diff --git a/zsh/.zshrc b/zsh/.zshrc index 516ac33..a2e0edb 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -1,4 +1,9 @@ export EDITOR=nvim + +# Set homebrew before my own path mods so brew binaries (specifically go) +# don't override my expected tooling +eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" + # If you come from bash you might have to change your $PATH. export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:/opt/local/bin:$PATH @@ -34,6 +39,8 @@ alias kci='git commit --allow-empty --message "kick CI" && git push' alias cddf='cd $HOME/.dotfiles' alias nvdf='cddf && nvim $HOME/.dotfiles/README.md' alias cdjb='cd $HOME/src/github.com/jbohanon' +alias cdo='cd $HOME/Documents/obsidian/work' +alias nvo='cdo && nvim .' if [[ $(uname) == Linux ]]; then alias pbcopy='xsel --clipboard --input' @@ -56,4 +63,3 @@ export TERM=xterm-256color export STARSHIP_CONFIG=~/.config/zsh/starship.toml eval "$(starship init zsh)" -