From c348b80b9f84aa7920401961aa5e645854acb02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Mon, 11 Mar 2024 14:09:12 +0100 Subject: [PATCH 01/12] Dynamic finding of note workspaces --- nvim/lua/plugins/obsidian.lua | 64 +++++++++++++---------------------- 1 file changed, 24 insertions(+), 40 deletions(-) diff --git a/nvim/lua/plugins/obsidian.lua b/nvim/lua/plugins/obsidian.lua index 7cd2ec2..01dba0e 100644 --- a/nvim/lua/plugins/obsidian.lua +++ b/nvim/lua/plugins/obsidian.lua @@ -17,45 +17,31 @@ return { version = "*", -- recommended, use latest release instead of latest commit lazy = false, dependencies = { "nvim-lua/plenary.nvim" }, + config = function(_, opts) + local notes_path = (os.getenv "HOME") .. "/Workspace/Notes" + local scan = require("plenary.scandir").scan_dir(notes_path, {add_dirs = true, depth = 1 }) + for _, v in ipairs(scan) do + local subdir = v:match("([^/]+)$") + if vim.fn.isdirectory(notes_path .. "/" .. subdir .. "/.obsidian") == 1 then + table.insert(opts.workspaces, { + name = subdir, + path = notes_path .. "/" .. subdir, + overrides = { + daily_notes = { + folder = "Daily", + }, + }, + }) + end + end + require("obsidian").setup(opts) + end, opts = { - workspaces = { - { - name = "Lumentis", - path = "~/Workspace/Notes/Lumentis", - }, - { - name = "Lumentis-Players", - path = "~/Workspace/Notes/Lumentis-Players", - }, - { - name = "Personal", - path = "~/Workspace/Notes/Personal", - overrides = { - daily_notes = { - folder = "Daily", - }, - }, - }, - { - name = "PhD", - path = "~/Workspace/Notes/PhD", - overrides = { - daily_notes = { - folder = "Daily", - }, - }, - }, - { - name = "DnD", - path = "~/Workspace/Notes/DnD", - override = { - daily_notes = { - folder = ".", - }, - }, - }, - }, + workspaces = {}, note_id_func = function(title) return title end, + daily_notes = { + folder = "." + }, disable_frontmatter = true, ui = { hl_groups = { @@ -63,6 +49,7 @@ return { } } }, + keys = { {"", handle_enter, ft = "markdown" }, {"", "ObsidianLink", ft = "markdown", mode = "v"}, @@ -75,7 +62,4 @@ return { {"ju", "ObsidianTomorrow"}, {"", ":set nohlsearch/\\[[^\\[\\]]*\\]([^()]*):let @/ = \"\":set hlsearch", ft = "markdown", silent = true }, }, - config = function (_, opts) - require("obsidian").setup(opts) - end } From 8f70e5e8a182002a89cc377d015253a59fa00b9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Mon, 11 Mar 2024 14:11:17 +0100 Subject: [PATCH 02/12] Only load obsidian if we have at least one workspace --- nvim/lua/plugins/obsidian.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvim/lua/plugins/obsidian.lua b/nvim/lua/plugins/obsidian.lua index 01dba0e..350596e 100644 --- a/nvim/lua/plugins/obsidian.lua +++ b/nvim/lua/plugins/obsidian.lua @@ -20,8 +20,10 @@ return { config = function(_, opts) local notes_path = (os.getenv "HOME") .. "/Workspace/Notes" local scan = require("plenary.scandir").scan_dir(notes_path, {add_dirs = true, depth = 1 }) + local found = false for _, v in ipairs(scan) do local subdir = v:match("([^/]+)$") + found = true if vim.fn.isdirectory(notes_path .. "/" .. subdir .. "/.obsidian") == 1 then table.insert(opts.workspaces, { name = subdir, @@ -34,7 +36,9 @@ return { }) end end - require("obsidian").setup(opts) + if found then + require("obsidian").setup(opts) + end end, opts = { workspaces = {}, From 94594a1b5f26963b5d117960856811dc0d629bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Thu, 14 Mar 2024 22:15:02 +0100 Subject: [PATCH 03/12] Fold external editor --- nvim/lua/settings.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvim/lua/settings.lua b/nvim/lua/settings.lua index 07cf794..5ba0dc4 100644 --- a/nvim/lua/settings.lua +++ b/nvim/lua/settings.lua @@ -39,6 +39,9 @@ vim.g.rooter_silent_chdir = 1 vim.opt.shada = "!,'2000,f1,<50,s10,h" vim.o.updatetime = 250 vim.opt.conceallevel = 2 +vim.opt.foldmethod = "expr" +vim.opt.foldlevel = 0 +vim.opt.foldexpr = "getline(v:lnum)=~'^X-ExtEditorR'?1:0" -- Vimtex vim.g.tex_flavor = 'latex' From ae25757f6592b2a21590e63812bc11b60dcf0703 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 14:04:06 +0100 Subject: [PATCH 04/12] Work on fixing dotfiles install on Ubuntu --- install.sh | 2 +- nvim/lua/plugins/nvim-cmp.lua | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/install.sh b/install.sh index ff0cd9f..29bf5f2 100755 --- a/install.sh +++ b/install.sh @@ -37,7 +37,7 @@ fi ################################################# if $NVIM; then - dependencies="neovim git unzip fzf cmake gcc make curl wget ripgrep npm" + dependencies="neovim git unzip fzf cmake gcc make curl wget ripgrep" if [[ $OS == "NAME=\"Arch Linux\"" ]]; then $SUDO pacman -Sy --needed --noconfirm $dependencies npm go fd dotnet-sdk elif [[ $OS == "NAME=\"Ubuntu\"" ]]; then diff --git a/nvim/lua/plugins/nvim-cmp.lua b/nvim/lua/plugins/nvim-cmp.lua index b78d389..82479b4 100644 --- a/nvim/lua/plugins/nvim-cmp.lua +++ b/nvim/lua/plugins/nvim-cmp.lua @@ -250,6 +250,7 @@ return { }, } + local filetypes = { "bibtex", "gitcommit", "markdown", "org", "tex", "restructuredtext", "rsweave", "latex", "quarto", "rmd", "context", "html", "xhtml", "typst", "mail" } require('lspconfig').ltex.setup { capabilities = capabilities, on_attach = function(_, _) @@ -260,11 +261,11 @@ return { end, settings = { ltex = { - enabled = { "bibtex", "gitcommit", "markdown", "org", "tex", "restructuredtext", "rsweave", "latex", "quarto", "rmd", "context", "html", "xhtml", "typst" }, + enabled = filetypes, language = "en-GB" }, }, - filetypes = { "bib", "gitcommit", "markdown", "org", "plaintex", "rst", "rnoweb", "tex", "pandoc", "quarto", "rmd", "context", "html", "xhtml" , "typst"} + filetypes = filetypes } vim.diagnostic.config({ From 90bb7dcaec60e790838c11fa14116768ef2c17d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 14:21:04 +0100 Subject: [PATCH 05/12] Install dotnet --- install.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 29bf5f2..498b954 100755 --- a/install.sh +++ b/install.sh @@ -45,8 +45,12 @@ if $NVIM; then $SUDO apt install -y software-properties-common $SUDO add-apt-repository ppa:neovim-ppa/unstable -y $SUDO curl -sL https://deb.nodesource.com/setup_21.x | $SUDO bash - + declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi) + wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb + $SUDO dpkg -i packages-microsoft-prod.deb + rm packages-microsoft-prod.deb $SUDO apt update - $SUDO apt install -y $dependencies python3-venv nodejs golang fd-find + $SUDO apt install -y $dependencies python3-venv python3-pip nodejs golang fd-find cargo dotnet-sdk-8.0 fi ln -s "$PWD"/nvim "$XDG_CONFIG_HOME"/nvim From eaa8ca1b9b6bb8e8a4fd35abf110bdaed33bb0bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 14:50:09 +0100 Subject: [PATCH 06/12] Install csharp and typst --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 498b954..ef85822 100755 --- a/install.sh +++ b/install.sh @@ -56,7 +56,7 @@ if $NVIM; then ln -s "$PWD"/nvim "$XDG_CONFIG_HOME"/nvim ln -s "$PWD"/clang/.clang-tidy "$HOME"/.clang-tidy nvim --headless "+Lazy! sync" +qa - nvim --headless "+MasonInstall bash-language-server pyright typescript-language-server rust-analyzer clangd cmake-language-server css-lsp dockerfile-language-server emmet-ls gopls html-lsp jdtls json-lsp ltex-ls lua-language-server ruff-lsp rustfmt rustywind texlab vetur-vls vim-language-server yaml-language-server" +qa + nvim --headless "+MasonInstall bash-language-server pyright typescript-language-server rust-analyzer clangd cmake-language-server css-lsp dockerfile-language-server emmet-ls gopls html-lsp jdtls json-lsp ltex-ls lua-language-server ruff-lsp rustfmt rustywind texlab vetur-vls vim-language-server yaml-language-server csharp_ls typst_lsp" +qa fi From afe7b22bcb5b4081e44e63767154521791499bf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 15:05:17 +0100 Subject: [PATCH 07/12] Install csharp and typst --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index ef85822..d790020 100755 --- a/install.sh +++ b/install.sh @@ -56,7 +56,7 @@ if $NVIM; then ln -s "$PWD"/nvim "$XDG_CONFIG_HOME"/nvim ln -s "$PWD"/clang/.clang-tidy "$HOME"/.clang-tidy nvim --headless "+Lazy! sync" +qa - nvim --headless "+MasonInstall bash-language-server pyright typescript-language-server rust-analyzer clangd cmake-language-server css-lsp dockerfile-language-server emmet-ls gopls html-lsp jdtls json-lsp ltex-ls lua-language-server ruff-lsp rustfmt rustywind texlab vetur-vls vim-language-server yaml-language-server csharp_ls typst_lsp" +qa + nvim --headless "+MasonInstall bash-language-server pyright typescript-language-server rust-analyzer clangd cmake-language-server css-lsp dockerfile-language-server emmet-ls gopls html-lsp jdtls json-lsp ltex-ls lua-language-server ruff-lsp rustfmt rustywind texlab vetur-vls vim-language-server yaml-language-server csharp-language-server typst-lsp" +qa fi From 3cc931c619def4a5dd119795380a0fbedc7005b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 16:39:07 +0100 Subject: [PATCH 08/12] Check if notes path exists --- nvim/lua/plugins/obsidian.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvim/lua/plugins/obsidian.lua b/nvim/lua/plugins/obsidian.lua index 350596e..428f866 100644 --- a/nvim/lua/plugins/obsidian.lua +++ b/nvim/lua/plugins/obsidian.lua @@ -19,6 +19,9 @@ return { dependencies = { "nvim-lua/plenary.nvim" }, config = function(_, opts) local notes_path = (os.getenv "HOME") .. "/Workspace/Notes" + if vim.fn.isdirectory(notes_path) == 0 then + return + end local scan = require("plenary.scandir").scan_dir(notes_path, {add_dirs = true, depth = 1 }) local found = false for _, v in ipairs(scan) do From ac464fc6a8e0b2928a452b6a62ebf9d9288b16e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 17:59:23 +0100 Subject: [PATCH 09/12] Set alias to fd if it does not exist --- zsh/.zshrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zsh/.zshrc b/zsh/.zshrc index 07b5d12..3ec4c86 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -181,6 +181,9 @@ if [[ "$TERM" == (Eterm*|alacritty*|aterm*|gnome*|konsole*|kterm*|putty*|rxvt*|s fi # Aliases +if command -v fdfind &> /dev/null; then + alias fd="fdfind" +fi alias ls="ls --color=auto" alias gdb='gdb -q' alias ll='ls -lhat' From 3b81d0104fcac8b95be9661ed26882e9c590ca43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 18:18:13 +0100 Subject: [PATCH 10/12] Move server scripts here --- scripts/cronic | 47 +++++++++++++++++++++++++++++++++++++++++++ scripts/disk_check.sh | 15 ++++++++++++++ zsh/.zshrc | 7 +++---- 3 files changed, 65 insertions(+), 4 deletions(-) create mode 100755 scripts/cronic create mode 100755 scripts/disk_check.sh diff --git a/scripts/cronic b/scripts/cronic new file mode 100755 index 0000000..3467641 --- /dev/null +++ b/scripts/cronic @@ -0,0 +1,47 @@ +#!/bin/bash + +# Cronic v3 - cron job report wrapper +# Copyright 2007-2016 Chuck Houpt. No rights reserved, whatsoever. +# Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +set -eu + +TMP=$(mktemp -d) +OUT=$TMP/cronic.out +ERR=$TMP/cronic.err +TRACE=$TMP/cronic.trace + +set +e +"$@" >$OUT 2>$TRACE +RESULT=$? +set -e + +PATTERN="^${PS4:0:1}\\+${PS4:1}" +if grep -aq "$PATTERN" $TRACE +then + ! grep -av "$PATTERN" $TRACE > $ERR +else + ERR=$TRACE +fi + +if [ $RESULT -ne 0 ] + then + echo "Cronic detected failure or error output for the command:" + echo "$@" + echo + echo "RESULT CODE: $RESULT" + echo + echo "ERROR OUTPUT:" + cat "$ERR" + echo + echo "STANDARD OUTPUT:" + cat "$OUT" + if [ $TRACE != $ERR ] + then + echo + echo "TRACE-ERROR OUTPUT:" + cat "$TRACE" + fi +fi + +rm -rf "$TMP" diff --git a/scripts/disk_check.sh b/scripts/disk_check.sh new file mode 100755 index 0000000..c2ca6d7 --- /dev/null +++ b/scripts/disk_check.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +REPORT_EMAIL=email@thomasave.be + +ZPOOL_STATUS=`zpool status -x` +if [ "$ZPOOL_STATUS" = "all pools are healthy" -o "$ZPOOL_STATUS" = "no pools available" ] +then + echo -n 0 > /var/db/zpool.status +else + if [ `cat /var/db/zpool.status` -eq 0 ] + then + zpool status | mail -s "ZPOOL NOT HEALTHY" $REPORT_EMAIL + echo -n 1 > /var/db/zpool.status + fi +fi diff --git a/zsh/.zshrc b/zsh/.zshrc index 3ec4c86..a966ce0 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -90,12 +90,11 @@ function zvm_after_init() { # Use FZY instead of FZF for ctrl-t function find_files() { zle -I - # Check if ~/Containers exists + PATHS=$(fd -H . ~/Workspace -t d -d 5) if [ -d ~/Containers ]; then - BUFFER=cd "$(fd -H . ~/Workspace ~/Containers -t d | fzy -l 20)" - else - BUFFER=cd "$(fd -H . ~/Workspace -t d | fzy -l 20)" + PATHS="$PATHS $(fd -H . ~/Containers -t d -d 2)" fi + BUFFER=cd "$(echo $PATHS | fzy -l 20)" zle accept-line clear } From 6d11fedfb95b992c846d5fe23721c6dcf61b325f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 18:34:07 +0100 Subject: [PATCH 11/12] Tweak search paths --- zsh/.zshrc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index a966ce0..b0ee51f 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -90,9 +90,17 @@ function zvm_after_init() { # Use FZY instead of FZF for ctrl-t function find_files() { zle -I - PATHS=$(fd -H . ~/Workspace -t d -d 5) + PATHS=$(fd -H . /home/server/Workspace -t d -d 5) if [ -d ~/Containers ]; then - PATHS="$PATHS $(fd -H . ~/Containers -t d -d 2)" + PATHS="$PATHS\n$(fd -H . ~/Containers -t d -d 2)" + fi + if [ -d /RAID/10/Shared\ Storage/ ]; then + PATHS="$PATHS\n/RAID/10/Shared Storage/Thomas" + PATHS="$PATHS\n$(fd -H . /RAID/10/Shared\ Storage -t d -d 2)" + fi + if [ -d /RAID/10/Private\ Storage/Thomas ]; then + PATHS="$PATHS\n/RAID/10/Private Storage/Thomas" + PATHS="$PATHS\n$(fd -H . /RAID/10/Private\ Storage/Thomas -t d -d 1)" fi BUFFER=cd "$(echo $PATHS | fzy -l 20)" zle accept-line From 0fa8640c8fae918f2f23564a1f5559bfc976420a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Fri, 15 Mar 2024 18:48:32 +0100 Subject: [PATCH 12/12] Add s --- zsh/.zshrc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index b0ee51f..e4364b5 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -176,6 +176,10 @@ function o () { xdg-open "$1" &! } +function s() { + ssh server@mallorea -t "cd \"$(pwd)\" ; zsh --login" +} + if [ "$SSH_CLIENT" ] then source_port=$(echo $SSH_CLIENT | awk '{ print $2 }') @@ -202,8 +206,8 @@ alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts" alias xbindkeys="xbindkeys -f $XDG_CONFIG_HOME/xbindkeys/config" alias python=python3 alias r=". ranger" -alias cpr=rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 -alias mvr=rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 --remove-source-files +alias cpr="rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1" +alias mvr="rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 --remove-source-files" alias rg="rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'" alias ag="rg -i --colors 'match:bg:yellow' --colors 'match:fg:black' --colors 'match:style:nobold' --colors 'path:fg:green' --colors 'path:style:bold' --colors 'line:fg:yellow' --colors 'line:style:bold'" alias push="git add -A && git commit -m '`date`' && git push"