{
"FSharp.useSdkScripts": true,
"editor.fontFamily": "'Iosevka','Iosevka Fixed SS09 Extended', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
- "workbench.colorTheme": "Nord",
+ "workbench.colorTheme": "Zenburn",
"vscode-neovim.neovimExecutablePaths.linux": "/usr/local/bin/nvim",
"workbench.startupEditor": "newUntitledFile",
"todo-tree.tree.showScanModeButton": false,
[Added Associations]
application/illustrator=gimp.desktop;
application/octet-stream=gvim.desktop;
-application/pdf=zathura-pdf-poppler.desktop;mupdf.desktop;
+application/pdf=gvim.desktop;zathura-pdf-poppler.desktop;mupdf.desktop;
application/x-extension-htm=chromium.desktop;userapp-Firefox-FY7R00.desktop;
application/x-extension-html=chromium.desktop;userapp-Firefox-FY7R00.desktop;
application/x-extension-shtml=chromium.desktop;userapp-Firefox-FY7R00.desktop;
audio/x-m4a=vlc.desktop;mpv.desktop;
image/bmp=sxiv.desktop;
image/gif=sxiv.desktop;
-image/jpeg=sxiv.desktop;feh.desktop;
+image/jpeg=eom.desktop;sxiv.desktop;feh.desktop;
image/png=sxiv.desktop;
image/tiff=sxiv.desktop;
inode/symlink=caja.desktop;
application/xml=gvim.desktop;
x-scheme-handler/tonsite=org.telegram.desktop.desktop;
text/markdown=gvim.desktop;
+application/vnd.ms-htmlhelp=org.kde.okular.desktop;
+image/x-xcf=gimp.desktop;
[Default Applications]
application/illustrator=gimp.desktop
audio/x-wav=mpv.desktop
image/bmp=eom.desktop
image/gif=eom.desktop
-image/jpeg=feh.desktop
+image/jpeg=eom.desktop
image/png=eom.desktop
image/tiff=eom.desktop
inode/directory=pcmanfm.desktop
application/xml=gvim.desktop
x-scheme-handler/tonsite=org.telegram.desktop.desktop
text/markdown=gvim.desktop
+image/x-xcf=gimp.desktop
-// vim:ft=jsonc:
+// vim:ft=json5 : softtabstop=4 : shiftwidth=4:
{
+ // "coc.preferences.semanticTokensHighlights": false,
// "coc.preferences.formatOnSaveFiletypes": ["sql"],
// "formatter.sql": {
// "command": "prettier",
"command": "sql-language-server",
"args": ["up", "--method", "node-ipc"],
"filetypes": ["sql", "sqlite"]
- }
- },
-
- "markdownlint.config": {
- // Allow mixed usage of both styles of heading indicators.
- // (i.e. leading hashes (###) for level 3+ after
- // dashes (---) and equals (===) for levels 2 and 1, respectively).
- // Ref:
- // - https://github.com/fannheyward/coc-markdownlint
- // - https://github.com/DavidAnson/markdownlint/blob/main/doc/md003.md
- // - https://github.com/DavidAnson/markdownlint/blob/3561fc3f38b05b3c55f44e371c2cd9bda194598a/doc/md003.md
- "MD003": { "style": "setext_with_atx" },
+ },
- // Allow different list item markers (-, +, *) in unordered lists, as
- // long as each level uses the same one.
- // Ref: https://github.com/DavidAnson/markdownlint/blob/main/doc/md004.md
- "MD004": { "style": "sublist" },
+ // LaTex
+ "digestif": {
+ "command": "digestif",
+ "filetypes": ["tex", "plaintex", "context"]
+ },
+ // "latex": {
+ // "command": "/home/xand/.cargo/bin/texlab",
+ // "filetypes": ["tex", "bib", "plaintex", "context"]
+ // },
- // Allow duplicate headings with different parents.
- // Ref: https://github.com/DavidAnson/markdownlint/blob/main/doc/md024.md
- "MD024": { "siblings_only": true }
+ "golang": {
+ "command": "gopls",
+ "rootPatterns": ["go.mod"],
+ "filetypes": ["go"]
+ },
+ "prisma": {
+ "command": "prisma-language-server",
+ "args": ["--stdio"],
+ "filetypes": ["prisma"],
+ "rootPatterns": ["schema.prisma", "prisma/schema.prisma", ".git"],
+ "trace.server": "verbose"
+ }
},
+ // "markdownlint.config": {
+ // // Allow mixed usage of both styles of heading indicators.
+ // // (i.e. leading hashes (###) for level 3+ after
+ // // dashes (---) and equals (===) for levels 2 and 1, respectively).
+ // // Ref:
+ // // - https://github.com/fannheyward/coc-markdownlint
+ // // - https://github.com/DavidAnson/markdownlint/blob/main/doc/md003.md
+ // // - https://github.com/DavidAnson/markdownlint/blob/3561fc3f38b05b3c55f44e371c2cd9bda194598a/doc/md003.md
+ // "MD003": { "style": "setext_with_atx" },
+ //
+ // // Allow different list item markers (-, +, *) in unordered lists, as
+ // // long as each level uses the same one.
+ // // Ref: https://github.com/DavidAnson/markdownlint/blob/main/doc/md004.md
+ // "MD004": { "style": "sublist" },
+ //
+ // // Allow duplicate headings with different parents.
+ // // Ref: https://github.com/DavidAnson/markdownlint/blob/main/doc/md024.md
+ // "MD024": { "siblings_only": true }
+ // },
+
// FIXME These rust-analyzer settings do not seem to work. Why?
// Ref: https://github.com/fannheyward/coc-rust-analyzer
// "rust-analyzer.inlayHints.typeHints.enable": false,
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
+Plug 'prisma/vim-prisma' " Syntax for Prisma. The ORM thing used in Nosh repo.
Plug 'z0mbix/vim-shfmt', { 'for': 'sh' }
Plug 'dense-analysis/ale' " Syntastic's spiritual succesor
Plug 'preservim/nerdtree'
"Plug 'nvim-tree/nvim-web-devicons' " Needs patched fonts: https://www.nerdfonts.com/
-Plug 'phha/zenburn.nvim'
+" Plug 'phha/zenburn.nvim'
+Plug 'hexbloom/zenburn.nvim', {'branch': 'semantic-highlight-support'}
+" Plug 'zenbones-theme/zenbones.nvim'
Plug 'itchyny/lightline.vim'
Plug 'numToStr/Comment.nvim'
Plug 'rust-lang/rust.vim'
-Plug 'neoclide/coc.nvim', {'branch': 'release'}
+" Plug 'neoclide/coc.nvim', {'branch': 'release'}
+" Plug 'neoclide/coc.nvim', {'commit': '1baa8dcb09ee427573aba665807e3f757659f98b'}
+Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'npm ci'}
" Plug 'neovim/nvim-lspconfig'
+" BEGIN codecompanion
+" https://codecompanion.olimorris.dev/installation.html
+Plug 'nvim-lua/plenary.nvim', {'branch': 'master'}
+Plug 'nvim-treesitter/nvim-treesitter'
+Plug 'olimorris/codecompanion.nvim'
+" END codecompanion
+
" Plug 'hrsh7th/cmp-nvim-lsp', {'branch': 'main'}
" Plug 'hrsh7th/cmp-buffer', {'branch': 'main'}
" Plug 'hrsh7th/cmp-path', {'branch': 'main'}
" Plug 'simrat39/rust-tools.nvim'
-Plug 'simrat39/symbols-outline.nvim'
+"" Uses deprecated calls and has been archived by the maintainer:
+"" https://github.com/simrat39/symbols-outline.nvim
+"" Also not really better than CocOutline.
+" Plug 'simrat39/symbols-outline.nvim'
" Typst stuff:
Plug 'kaarmu/typst.vim'
call plug#end()
" END Vim-Plug
+" lua require("symbols-outline").setup()
+"" luafile ~/.config/nvim/setup-symbols-outline.lua
+
lua require('Comment').setup()
" luafile ~/.config/nvim/setup-rust-tools.lua
"luafile ~/.config/nvim/setup-lsp-rust-jonhoo.lua
source ~/.config/nvim/setup-coc.vim
-lua require("symbols-outline").setup()
-" luafile ~/.config/nvim/setup-symbols-outline.lua
+" lua require('codecompanion').setup()
+luafile ~/.config/nvim/setup-codecompanion.lua
" NERDTree
let NERDTreeShowLineNumbers=1
set mouse=a " To scroll Coc tooltips. https://github.com/neoclide/coc.nvim/issues/1405
set spellfile=~/.vim/spell/en.utf-8.add
set spelllang=en,ru,la
+set nohidden " No hidden buffers, please.
" lightline
set laststatus=2
"==============================================================================
" C
-autocmd FileType c set noexpandtab | set shiftwidth=8 | set tabstop=8 | set softtabstop=8
+autocmd FileType c set noexpandtab | set shiftwidth=8 | set softtabstop=8
" TypeScript
-autocmd FileType typescript set noexpandtab | set shiftwidth=8 | set tabstop=8 | set softtabstop=8
+" TODO Why did I ever want to not expand tabs for TS?
+" autocmd FileType typescript set noexpandtab | set shiftwidth=8 | set softtabstop=8
" R
-autocmd FileType r set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType r set softtabstop=2 | set shiftwidth=2
" Python
autocmd FileType python set omnifunc=pythoncomplete#Complete
" Markdown
"autocmd FileType markdown set spell
-autocmd FileType markdown set expandtab | set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType markdown set expandtab | set softtabstop=2 | set shiftwidth=2
" HTML
autocmd FileType html set spell
" MediaWiki
autocmd FileType mediawiki set spell
-autocmd FileType mediawiki set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType mediawiki set set softtabstop=2 | set shiftwidth=2
" Tiger
autocmd BufNewFile,BufRead *.tig set filetype=tiger
" Mathematica
autocmd BufNewFile,BufRead *.m set filetype=mma
autocmd BufNewFile,BufRead *.mt set filetype=mma
-autocmd FileType mma set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType mma set softtabstop=2 | set shiftwidth=2
" F#
-autocmd FileType fsharp set tabstop=4 | set softtabstop=4 | set shiftwidth=4
+autocmd FileType fsharp set softtabstop=4 | set shiftwidth=4
" twtxt.txt
autocmd BufNewFile,BufRead twtxt.txt set filetype=conf | set noexpandtab
" Scheme
-autocmd FileType scheme set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType scheme set softtabstop=2 | set shiftwidth=2
" Racket
autocmd FileType racket setlocal equalprg=scmindent.rkt
" Erlang
"autocmd FileType erlang setlocal equalprg=erlfmt
-autocmd FileType erlang set tabstop=4 | set softtabstop=4 | set shiftwidth=4
+autocmd FileType erlang set softtabstop=4 | set shiftwidth=4
+
+" Django templates
+autocmd FileType htmldjango set softtabstop=4 | set shiftwidth=4 | set expandtab
" -----------------------------------------------------------------------------
" TypeScript
" -----------------------------------------------------------------------------
" OCaml
" -----------------------------------------------------------------------------
-autocmd FileType ocaml set tabstop=2 | set softtabstop=2 | set shiftwidth=2
+autocmd FileType ocaml set softtabstop=2 | set shiftwidth=2
#
-music_directory "~/arc/aud"
+music_directory "/mnt/arc/aud"
playlist_directory "~/var/lib/mpd/playlists"
db_file "~/var/lib/mpd/tag_cache"
log_file "~/var/log/mpd/mpd.log"
# ------------------------
# Screenshot
# ------------------------
-"scrot --freeze --select 'screen--%Y-%m-%d--%H-%M-%S.png' -e 'mv $f ~/arc/img/Screenshots/'"
+"scrot --freeze --select 'screen--%Y-%m-%d--%H-%M-%S.png' -e 'mv $f /mnt/arc/img/screenshots/'"
Print
-"scrot --select 'screen--%Y-%m-%d--%H-%M-%S.png' -e 'mv $f ~/arc/img/Screenshots/'"
+"scrot --select 'screen--%Y-%m-%d--%H-%M-%S.png' -e 'mv $f /mnt/arc/img/screenshots/'"
Shift + Print
+"scrot 'screen--%Y-%m-%d--%H-%M-%S.png' -e 'mv $f /mnt/arc/img/screenshots/'"
+ Mod4 + Print
+
# Screencast
"st -c screencast -e ~/bin/screencast"
Control + Print
"cd ~/doc/drafts && gvim $(draft ~/doc/drafts/adhoc)"
Mod4 + d
-"cd ~/doc/notes/job-search-2024 && gvim README.md"
- Mod4 + j
"cd ~/doc/notes && notes_prepend && gvim -c NERDTreeFind notes.md"
Mod4 + n + Shift
"cd ~/doc/notes && gvim $(draft ~/doc/notes/adhoc)"
# File browser
-"pcmanfm"
+"pcmanfm 2>> ~/var/log/pcmanfm.log"
Mod4 + f
# Weather
-#! /bin/sh
+#! /bin/bash
set -e
# 1. not using killall;
# 2. using "command" (or "cmd") instead of "comm".
ps -eo pid,command | awk '$2 ~ "^xbindkeys" {print $1}' | xargs -I% kill %
-xbindkeys -n #-v
+# xbindkeys -n -v
+xbindkeys -n \
+2> >(
+ while read -r line
+ do
+ notify-send -u low 'xbindkeys' "$line"
+ done
+)
-#! /bin/sh
+#! /bin/bash
set -e
+debug() {
+ local -r fmt=$1
+ local -a arg=("${@:2}")
+ local -r str=$(printf "$fmt" $arg)
+
+ printf '[debug] %s\n' "$str"
+}
+
+subject='screensaver launch'
# XXX mate-settings-daemon, on which we rely on for hidpi settings, starts
# mate-screensaver and interferes with our start.
-pkill mate-screensave || true
+debug 'Starting killing loop'
+while ! pkill mate-screensave
+do
+ debug 'Failed to kill'
+ notify-send -u low "$subject" 'Failed to kill mate-screensaver'
+ sleep 1
+done
+debug 'Killed. Starting new.'
+notify-send -u low "$subject" 'Killed mate-screensaver. Starting xscreensaver'
xscreensaver
#! /bin/sh
-mpd_current_file >> "$HOME"/mpd_favs
+mpd_tag 'fav'
README='README.md'
-name=$(echo "$@" | sed 's/\s\+/-/g');
+name=$(echo "$@" | sed -E 's/[[:space:]]+/-/g');
timestamp=$(date +'%F--%H-%M-%S');
directory="$HOME/x/$timestamp--$name";
mkdir -p "$directory";
}
links() {
- local -r file="$HOME"/arc/doc/links/"$(date +%F)"
+ local -r file="$DIR_ARCHIVE"/doc/links/"$(date +%F)"
case "$1" in
'') "$EDITOR" "$file";;
links_aggregate_md() {
printf 'Daily Links\n'
printf '%s\n' "$(bar 78 '=')"
- find ~/arc/doc/links -maxdepth 1 -mindepth 1 -type f \
+ find "$DIR_ARCHIVE"/doc/links -maxdepth 1 -mindepth 1 -type f \
| sort -r \
| while read -r file_path; do
printf '\n'
## search howtos
## howto : unit -> string
howto() {
- cat "$(find ~/arc/doc/HOWTOs -mindepth 1 -maxdepth 1 | sort | fzf)"
+ local -r file=$(find "$DIR_ARCHIVE"/doc/HOWTOs -mindepth 1 -maxdepth 1 | sort | fzf)
+ cat "$file"
}
_yt() {
export VISUAL=$EDITOR
### DIRs ###
-export DIR_GITHUB="${HOME}/arc/sw/src/repos/remote/github.com"
-export DIR_AUDIO="${HOME}/arc/aud"
-export DIR_VIDEO="${HOME}/arc/vid"
+export DIR_ARCHIVE="/mnt/arc"
+export DIR_GITHUB="${DIR_ARCHIVE}/sw/src/repos/remote/github.com"
+export DIR_AUDIO="${DIR_ARCHIVE}/aud"
+export DIR_VIDEO="${DIR_ARCHIVE}/vid"
export DIR_YOUTUBE_VIDEO="${DIR_VIDEO}/web/youtube.com"
export DIR_YOUTUBE_AUDIO="${DIR_AUDIO}/youtube.com"
export DIR_NOTES="$HOME/doc/notes"
export DIR_LOG="$HOME/var/log"
export DIR_LOG_MPD="$DIR_LOG/mpd"
export DIR_NQ="$HOME/var/run/nq"
-export DIR_WALLPAPERS="$HOME/arc/img/Wallpapers"
+export DIR_WALLPAPERS="${DIR_ARCHIVE}/img/Wallpapers"
export DIR_TODO="$HOME/doc/TODO"
# ensure all DIRs exist:
# JetBrains Toolbox
export PATH="$PATH":"$HOME"/.local/share/JetBrains/Toolbox/scripts
+# Alloy
+export PATH=/opt/alloy/bin:"$PATH"
+
+# Windsurf
+export PATH=/opt/Windsurf/bin:"$PATH"
+
# personal
export PATH=$HOME/bin:$HOME/.local/bin:/snap/bin:/sbin:/usr/sbin:"$PATH"