diff --git a/desktop/.config/fontconfig/fonts.conf b/desktop/.config/fontconfig/fonts.conf
index 97c38de..3dc933d 100644
--- a/desktop/.config/fontconfig/fonts.conf
+++ b/desktop/.config/fontconfig/fonts.conf
@@ -11,7 +11,7 @@
monospace
- Iosevka
+ Iosevka Nerd Font
fantasy
diff --git a/multimedia/.config/mpv/mpv.conf b/multimedia/.config/mpv/mpv.conf
index 2bb8cf4..d928d32 100644
--- a/multimedia/.config/mpv/mpv.conf
+++ b/multimedia/.config/mpv/mpv.conf
@@ -35,8 +35,8 @@ screenshot-tag-colorspace=yes
osc=no
osd-bar=no
-osd-font='Iosevka Mono'
-osd-font-size=16
+osd-font='Iosevka Nerd Font'
+osd-font-size=15
### Subtitles
diff --git a/nvim/.config/nvim/lua/maps.lua b/nvim/.config/nvim/lua/maps.lua
index 5b43433..06d0b24 100644
--- a/nvim/.config/nvim/lua/maps.lua
+++ b/nvim/.config/nvim/lua/maps.lua
@@ -178,12 +178,13 @@ vim.g.nv_fzf_binds = {
map.n.nore['n'] = ':NV'
map.n.nore['N'] = ':NV!'
--- Mostly dealing with Prose writing from here on out
-- Format current Paragraph (esp useful in prose writing)
map.n.nore.silent['q'] = 'gqap'
map.x.nore.silent['q'] = 'gq'
map.n.nore.silent['Q'] = 'vapJgqap'
+map.n.silent['mp'] = 'MarkdownPreviewToggle'
+
-- FORMAT code with
-- PLUGIN: formatter.nvim
map.n.nore.silent['f'] = ':FormatLock'
@@ -248,21 +249,22 @@ map.n.nore['ww'] = [[:lua require 'zettelkasten'.index_open() ]]
-- create a lazygit window, set up in toggleterm settings
map.n.nore['G'] = ':Lazygit'
--- PLUGIN: slime and ipython-cell
--- send line / region, not adhering to cells
-map.n['cs'] = 'SlimeLineSend'
-map.x['cs'] = 'SlimeRegionSend'
--- send complete script to repl / benchmark execution
-map.n.nore['cr'] = ':IPythonCellRun'
-map.n.nore['cR'] = ':IPythonCellRunTime'
--- send current cell / send and go to next
-map.n.nore['cc'] = ':IPythonCellExecuteCellVerbose'
-map.n.nore['C'] = ':IPythonCellExecuteCellVerboseJump'
--- clear ipython repl
-map.n.nore['cl'] = ':IPythonCellClear'
--- jump to previous/ next cell
-map.n.nore[']c'] = ':IPythonCellNextCell'
-map.n.nore['[c'] = ':IPythonCellPrevCell'
+-- PLUGIN: magma-nvim
+-- Operate jupyter notebooks from within vim
+map.n.nore.silent['rr'] = ':MagmaEvaluateLine'
+map.n.nore.silent['R'] = '?^```{jV/```k:MagmaEvaluateVisual'
+map.x.nore.silent['r'] = ':MagmaEvaluateVisual'
+map.n.nore.expr.silent['r'] = "nvim_exec('MagmaEvaluateOperator', v:true)"
+map.n.nore.silent['re'] = ':MagmaReevaluateCell'
+map.n.nore.silent['ro'] = ':MagmaShowOutput'
+map.n.nore.silent['rq'] = ':noautocmd :MagmaEnterOutput'
+map.n.nore.silent['rc'] = ':MagmaDelete'
+map.n.nore.silent['rd'] = ':MagmaInterrupt'
+
+map.n.nore.silent['rO'] = ':lua vim.g.magma_automatically_open_output = not(vim.g.magma_automatically_open_output)'
+-- jump to beginning of previous/ next cell code
+map.n.nore[']r'] = '/^```{}:nohl'
+map.n.nore['[r'] = '?^```n}:nohl'
-- insert cell header above/below
map.n.nore['cO'] = ':IPythonCellInsertAbovea'
map.n.nore['co'] = ':IPythonCellInsertBelowa'
diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua
index 868ce6e..028aa7d 100644
--- a/nvim/.config/nvim/lua/plugins.lua
+++ b/nvim/.config/nvim/lua/plugins.lua
@@ -1,7 +1,7 @@
local ensure_packer = function()
local fn = vim.fn
local install_path = fn.stdpath('data') ..
- '/site/pack/packer/start/packer.nvim'
+ '/site/pack/packer/start/packer.nvim'
if fn.empty(fn.glob(install_path)) > 0 then
fn.system({
'git', 'clone', '--depth', '1',
@@ -16,11 +16,11 @@ end
local packer_bootstrap = ensure_packer()
-- Compile on plugin edits
-vim.api.nvim_create_autocmd({"BufWritePost"}, {
+vim.api.nvim_create_autocmd({ "BufWritePost" }, {
pattern = "plugins.lua",
command = "PackerCompile",
desc = "Compile plugins after editing plugin list",
- group = vim.api.nvim_create_augroup('compilepackages', {clear = true})
+ group = vim.api.nvim_create_augroup('compilepackages', { clear = true })
})
local use = require("packer").use
@@ -42,7 +42,7 @@ require("packer").startup(function()
use 'vifm/vifm.vim' -- integrate file manager
use {
'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter
- requires = {'nvim-lua/plenary.nvim'},
+ requires = { 'nvim-lua/plenary.nvim' },
tag = 'release',
config = function() require('plug._gitsigns') end,
event = "BufRead"
@@ -98,52 +98,42 @@ require("packer").startup(function()
-- statusline
use {
'nvim-lualine/lualine.nvim',
- requires = {'kyazdani42/nvim-web-devicons', opt = true},
+ requires = { 'kyazdani42/nvim-web-devicons', opt = true },
config = function() require('plug._lualine') end
}
-- writing
- use {'vim-pandoc/vim-pandoc-syntax'}
- use {'vim-pandoc/vim-pandoc'}
- use {'vim-pandoc/vim-criticmarkup'}
+ use { 'vim-pandoc/vim-pandoc-syntax' }
+ use { 'vim-pandoc/vim-pandoc' }
+ use { 'vim-pandoc/vim-criticmarkup' }
use {
"quarto-dev/quarto-vim",
- requires = {{"vim-pandoc/vim-pandoc-syntax"}},
- ft = {"quarto"}
+ requires = { { "vim-pandoc/vim-pandoc-syntax" } },
+ ft = { "quarto" }
}
use 'micarmst/vim-spellsync' -- personal dict improvements for git sync
- use {'folke/zen-mode.nvim', config = require('zen-mode').setup()} -- provide distraction free writing
+ use { 'folke/zen-mode.nvim', config = require('zen-mode').setup() } -- provide distraction free writing
use 'folke/twilight.nvim' -- provide even distraction free-er writing (lowlight paragraphs)
use 'alok/notational-fzf-vim' -- quickly search through the wiki
+ use({
+ "iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files
+ run = function() vim.fn["mkdp#util#install"]() end
+ })
-- languages
- use {'euclidianAce/BetterLua.vim', ft = 'lua'} -- better syntax highlighting for lua
+ use { 'euclidianAce/BetterLua.vim', ft = 'lua' } -- better syntax highlighting for lua
use 'aliou/bats.vim' -- enable syntax for bats shell-code testing library
-- REPL work
use {
- 'jpalardy/vim-slime', -- send arbitrary code chunks to REPLs
+ 'WhiteBlackGoose/magma-nvim-goose',
+ run = ":UpdateRemotePlugins",
config = function()
- vim.g.slime_target = 'tmux'
- vim.g.slime_paste_file = vim.fn.tempname()
- vim.g.slime_default_config = {
- socket_name = "default",
- target_pane = "{last}"
- }
- vim.g.slime_python_ipython = 1
- vim.g.slime_no_mappings = 1
- end
- }
- use {
- 'hanschen/vim-ipython-cell', -- send code 'cells' to REPL
- ft = "python",
- config = function()
- vim.g.ipython_cell_highlight_cells_ft = {'python'}
- vim.g.ipython_cell_insert_tag = "## Cell"
+ vim.g.magma_image_provider = "kitty"
+ vim.g.magma_automatically_open_output = false
end
}
- --
-- nvim plugs
use {
'echasnovski/mini.nvim',
@@ -173,19 +163,19 @@ require("packer").startup(function()
use {
"nvim-telescope/telescope.nvim",
requires = {
- {"nvim-lua/popup.nvim"}, {"nvim-lua/plenary.nvim"},
- {"nvim-telescope/telescope-fzf-native.nvim", run = 'make'}
+ { "nvim-lua/popup.nvim" }, { "nvim-lua/plenary.nvim" },
+ { "nvim-telescope/telescope-fzf-native.nvim", run = 'make' }
},
config = function() require('plug._telescope') end
}
use {
'protex/better-digraphs.nvim',
- requires = {{"nvim-telescope/telescope.nvim"}}
+ requires = { { "nvim-telescope/telescope.nvim" } }
}
-- snippeting
- use {"hrsh7th/vim-vsnip", event = "InsertEnter"} -- snippet engine
- use {"rafamadriz/friendly-snippets", event = "InsertEnter"} -- many snippets
+ use { "hrsh7th/vim-vsnip", event = "InsertEnter" } -- snippet engine
+ use { "rafamadriz/friendly-snippets", event = "InsertEnter" } -- many snippets
-- treesitter
use {
@@ -198,7 +188,7 @@ require("packer").startup(function()
use {
'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches
config = function()
- require'nvim-treesitter.configs'.setup {
+ require 'nvim-treesitter.configs'.setup {
textsubjects = {
enable = true,
keymaps = {
@@ -225,7 +215,7 @@ require("packer").startup(function()
use 'ray-x/lsp_signature.nvim'
use {
'ray-x/navigator.lua',
- requires = {'ray-x/guihua.lua', run = 'cd lua/fzy && make'},
+ requires = { 'ray-x/guihua.lua', run = 'cd lua/fzy && make' },
config = function() require('plug._lsp') end
}
-- and completion
@@ -241,7 +231,7 @@ require("packer").startup(function()
}
use {
'aspeddro/cmp-pandoc.nvim',
- requires = {'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim'}
+ requires = { 'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim' }
}
require('plug._cmp')
diff --git a/sh/.config/sh/alias.d/ssh-agent-autoconfiguration.sh b/sh/.config/sh/alias.d/ssh-agent-autoconfiguration.sh
index 65ce649..934497e 100644
--- a/sh/.config/sh/alias.d/ssh-agent-autoconfiguration.sh
+++ b/sh/.config/sh/alias.d/ssh-agent-autoconfiguration.sh
@@ -1,214 +1,5 @@
-#!/bin/bash
+#!/usr/bin/env bash
-## Integration at the Bottom
-
-# Copyright (C) 2011 by Wayne Walker
-#
-# Released under one of the versions of the MIT License.
-#
-# Copyright (C) 2011 by Wayne Walker
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-# THE SOFTWARE.
-
-_LIVE_AGENT_LIST=""
-declare -a _LIVE_AGENT_SOCK_LIST
-_LIVE_AGENT_SOCK_LIST=()
-
-_debug_print() {
- if [[ $_DEBUG -gt 0 ]]; then
- printf "%s\n" "$1"
- fi
-}
-
-find_all_ssh_agent_sockets() {
- _SSH_AGENT_SOCKETS=$(find /tmp/ -type s -name agent.\* 2>/dev/null | grep '/tmp/ssh-.*/agent.*')
- _debug_print "$_SSH_AGENT_SOCKETS"
-}
-
-find_all_gpg_agent_sockets() {
- _GPG_AGENT_SOCKETS=$(find /tmp/ -type s -name S.gpg-agent.ssh 2>/dev/null | grep '/tmp/gpg-.*/S.gpg-agent.ssh')
- _debug_print "$_GPG_AGENT_SOCKETS"
-}
-
-find_all_gnome_keyring_agent_sockets() {
- _GNOME_KEYRING_AGENT_SOCKETS=$(find /tmp/ -type s -name "ssh" 2>/dev/null | grep '/tmp/keyring-.*/ssh$')
- _debug_print "$_GNOME_KEYRING_AGENT_SOCKETS"
-}
-
-find_all_osx_keychain_agent_sockets() {
- [[ -n "$TMPDIR" ]] || TMPDIR=/tmp
- _OSX_KEYCHAIN_AGENT_SOCKETS=$(find $TMPDIR/ -type s -regex '.*/ssh-.*/agent..*$' 2>/dev/null)
- _debug_print "$_OSX_KEYCHAIN_AGENT_SOCKETS"
-}
-
-test_agent_socket() {
- local SOCKET=$1
- SSH_AUTH_SOCK=$SOCKET ssh-add -l 2>/dev/null >/dev/null
- result=$?
-
- _debug_print $result
-
- if [[ $result -eq 0 ]]; then
- # contactible and has keys loaded
- _KEY_COUNT=$(SSH_AUTH_SOCK=$SOCKET ssh-add -l | wc -l | tr -d ' ')
- fi
-
- if [[ $result -eq 1 ]]; then
- # contactible butno keys loaded
- _KEY_COUNT=0
- fi
-
- if [ $result -eq 0 ] || [ $result -eq 1 ]; then
- if [[ -n "$_LIVE_AGENT_LIST" ]]; then
- _LIVE_AGENT_LIST="${_LIVE_AGENT_LIST} ${SOCKET}:$_KEY_COUNT"
- else
- _LIVE_AGENT_LIST="${SOCKET}:$_KEY_COUNT"
- fi
- return 0
- fi
-
- return 1
-}
-
-find_live_gnome_keyring_agents() {
- for i in $_GNOME_KEYRING_AGENT_SOCKETS; do
- test_agent_socket "$i"
- done
-}
-
-find_live_osx_keychain_agents() {
- for i in $_OSX_KEYCHAIN_AGENT_SOCKETS; do
- test_agent_socket "$i"
- done
-}
-
-find_live_gpg_agents() {
- for i in $_GPG_AGENT_SOCKETS; do
- test_agent_socket "$i"
- done
-}
-
-find_live_ssh_agents() {
- for i in $_SSH_AGENT_SOCKETS; do
- test_agent_socket "$i"
- done
-}
-
-function fingerprints() {
- local file="$1"
- while read -r l; do
- [[ -n $l && ${l###} == "$l" ]] && ssh-keygen -l -f /dev/stdin <<<"$l"
- done <"$file"
-}
-
-find_all_agent_sockets() {
- _SHOW_IDENTITY=0
- if [ "$1" = "-i" ]; then
- _SHOW_IDENTITY=1
- fi
- _LIVE_AGENT_LIST=
- find_all_ssh_agent_sockets
- find_all_gpg_agent_sockets
- find_all_gnome_keyring_agent_sockets
- find_all_osx_keychain_agent_sockets
- find_live_ssh_agents
- find_live_gpg_agents
- find_live_gnome_keyring_agents
- find_live_osx_keychain_agents
- _debug_print "$_LIVE_AGENT_LIST"
- _LIVE_AGENT_LIST=$(echo "$_LIVE_AGENT_LIST" | tr ' ' '\n' | sort -n -t: -k 2 -k 1 | uniq)
- _LIVE_AGENT_SOCK_LIST=()
- _debug_print "SORTED: $_LIVE_AGENT_LIST"
- if [[ $_SHOW_IDENTITY -gt 0 ]]; then
- i=0
- for a in $_LIVE_AGENT_LIST; do
- sock=${a/:*/}
- _LIVE_AGENT_SOCK_LIST[$i]=$sock
- # technically we could have multiple keys forwarded
- # But I haven't seen anyone do it
- akeys=$(SSH_AUTH_SOCK=$sock ssh-add -l)
- fingerprint=$(echo "${akeys}" | awk '{print $2}')
- if [ -e ~/.ssh/authorized_keys ]; then
- authorized_entry=$(fingerprints ~/.ssh/authorized_keys | grep "$fingerprint")
- fi
- comment=$(echo "${authorized_entry}" | awk '{print $3,$4,$5,$6,$7}')
- printf "export SSH_AUTH_SOCK=%s \t#%i) \t%s\n" "$sock" $((i + 1)) "$comment"
- i=$((i + 1))
- done
- else
- printf "%s\n" "$_LIVE_AGENT_LIST" | sed -e 's/ /\n/g' | sort -n -t: -k 2 -k 1
- fi
-}
-
-set_ssh_agent_socket() {
- if [ "$1" = "-c" ] || [ "$1" = "--choose" ]; then
- find_all_agent_sockets -i
-
- if [ -z "$_LIVE_AGENT_LIST" ]; then
- echo "No agents found"
- return 1
- fi
-
- echo -n "Choose (1-${#_LIVE_AGENT_SOCK_LIST[@]})? "
- read -r choice
- if [ -n "$choice" ]; then
- n=$((choice - 1))
- if [ -z "${_LIVE_AGENT_SOCK_LIST[$n]}" ]; then
- echo "Invalid choice"
- return 1
- fi
- echo "Setting export SSH_AUTH_SOCK=${_LIVE_AGENT_SOCK_LIST[$n]}"
- export SSH_AUTH_SOCK=${_LIVE_AGENT_SOCK_LIST[$n]}
- fi
- else
- # Choose the first available
- SOCK=$(find_all_agent_sockets | tail -n 1 | awk -F: '{print $1}')
- if [ -z "$SOCK" ]; then
- return 1
- fi
- export SSH_AUTH_SOCK=$SOCK
- fi
-
- # set agent pid
- if [ -n "$SSH_AUTH_SOCK" ]; then
- export SSH_AGENT_PID=$(($(echo "$SSH_AUTH_SOCK" | cut -d. -f2) + 1))
- fi
-
- return 0
-}
-
-ssh-find-agent() {
- if [ "$1" = "-c" ] || [ "$1" = "--choose" ]; then
- set_ssh_agent_socket -c
- return $?
- elif [ "$1" = "-a" ] || [ "$1" = "--auto" ]; then
- set_ssh_agent_socket
- return $?
- else
- find_all_agent_sockets -i
- return 0
- fi
-}
-
-# Automatically add ssh-agent to any new ssh connection
-ssh-find-agent -a
-if [ -z "$SSH_AUTH_SOCK" ]; then
- eval "$(ssh-agent)" >/dev/null
- ssh-add -l >/dev/null || alias ssh='ssh-add -l >/dev/null || ssh-add && unalias ssh; ssh'
-fi
+SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+export SSH_AUTH_SOCK
+gpgconf --launch gpg-agent
diff --git a/sh/.config/sh/env b/sh/.config/sh/env
index 0bebb0e..0d65e9e 100644
--- a/sh/.config/sh/env
+++ b/sh/.config/sh/env
@@ -39,7 +39,7 @@ export FILEREADER="zathura"
export FILEMANAGER="vifm"
## gopath
-export GOPATH="$HOME/projects/gopath/"
+export GOPATH="$HOME/.cache/gopath"
export PATH="$PATH:$GOPATH/bin"
## LANG LOCALE UTF-8
diff --git a/terminal/.config/wezterm/wezterm.lua b/terminal/.config/wezterm/wezterm.lua
index 24905df..525036c 100644
--- a/terminal/.config/wezterm/wezterm.lua
+++ b/terminal/.config/wezterm/wezterm.lua
@@ -64,12 +64,12 @@ return {
tab_bar_at_bottom = true,
window_padding = { left = 0, right = 0, top = 0, bottom = 0 },
- color_scheme = "Nord (base16)",
+ color_scheme = "Railscasts (base16)",
-- default_prog = {"nu"},
scrollback_lines = 10000,
- font = wezterm.font('Iosevka'),
+ font = wezterm.font('Iosevka Nerd Font'),
line_height = 1.0,
leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1500 },