--- a/.hgsub Tue Mar 25 14:16:24 2025 -0400
+++ b/.hgsub Wed Aug 27 16:14:19 2025 -0400
@@ -2,6 +2,7 @@
mercurial/templates = [hg]ssh://hg.stevelosh.com/repos/mercurial-cli-templates
vim/bundle/abolish = [git]https://github.com/tpope/vim-abolish
vim/bundle/ack = [git]https://github.com/mileszs/ack.vim
+vim/bundle/ansible = [git]https://github.com/pearofducks/ansible-vim
vim/bundle/badwolf = [hg]ssh://hg.stevelosh.com/repos/badwolf/
vim/bundle/boxdraw = [git]https://github.com/gyim/vim-boxdraw
vim/bundle/clam = [hg]ssh://hg.stevelosh.com/repos/clam.vim/
--- a/.hgsubstate Tue Mar 25 14:16:24 2025 -0400
+++ b/.hgsubstate Wed Aug 27 16:14:19 2025 -0400
@@ -2,7 +2,8 @@
1fc4a9fbead7e0acc4c828b346f3be2658ec3df9 mercurial/templates
dcbfe065297d31823561ba787f51056c147aa682 vim/bundle/abolish
36e40f9ec91bdbf6f1adf408522a73a6925c3042 vim/bundle/ack
-6185ce07bdc162a5f3555ff9ddcba661c0f031b2 vim/bundle/badwolf
+3329367d2e5f90d203c8d340c53fa83c60a1ad41 vim/bundle/ansible
+a93aaf7f4247858f5e483dc98001a878a5233761 vim/bundle/badwolf
b7f789f305b1c5b0b4623585e0f10adb417f2966 vim/bundle/boxdraw
b542a7bc4d9bc5da8fb12e110fe7975131fb57a4 vim/bundle/clam
e87cd90dc09c2a203e13af9704bd0ef79303d755 vim/bundle/commentary
@@ -19,7 +20,7 @@
964c66fa22500ae7375114342d212d7fe15da341 vim/bundle/neoformat
9310f91476a94ee9c2f3a587171893743a343e26 vim/bundle/nerdtree
47f6d8508757559fcfa8f49cd93cd5c86ce847f0 vim/bundle/nextflow-vim
-f68f7745fe92429d1fa080a8a7d6d6075be9f752 vim/bundle/nvim-r
+eb97bf7c88480b9f00b6765c09c3886550ed8d43 vim/bundle/nvim-r
989d1c046bbe36f7d71878636dbe6af8ea3f4f86 vim/bundle/paredit
1a436f7d875b4ec630da081b041c73264235c7e7 vim/bundle/pgsql
d241974f40e8d206f9970e51fb0069951862ba35 vim/bundle/python-mode
@@ -39,5 +40,5 @@
b393ba65386d47664421e1f8b246a87a6e8b218c vim/bundle/ultisnips
e9d7ff3eb4a369f0cb2069c8f77ae68796bca308 vim/bundle/vim-go
9df79e15bf035d1cfb32c11fffed38dd7b6a0501 vim/bundle/vimtex
-ce5710a1afe5787ec3e9a60445e21016d0802e7f vim/bundle/vlime
+eee93632fee3b680fe992008b723b0802bb94a60 vim/bundle/vlime
6876fe38b33732cb124d415ffc4156f16da5e118 vim/bundle/windowswap
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/battery Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+function check_battery {
+ # TODO make this less shit
+ BATT="$1"
+ echo "$BATT"
+ cat "$BATT"/type
+
+ if test -e "$BATT"/online; then
+ echo -n "Online: "
+ cat "$BATT"/online
+ fi
+
+ if test -e "$BATT"/capacity; then
+ echo -n "Capacity (%): "
+ cat "$BATT"/capacity
+ fi
+
+ echo
+}
+
+for b in /sys/class/power_supply/*; do
+ check_battery "$b"
+done
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/bht Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+ffplay -v 0 -nodisp -autoexit ~/bin/bht.mp3
--- a/bin/bootstrap.sh Tue Mar 25 14:16:24 2025 -0400
+++ b/bin/bootstrap.sh Wed Aug 27 16:14:19 2025 -0400
@@ -13,6 +13,7 @@
mkdir -p ~/.config/fish
mkdir -p ~/.config/nvim
mkdir -p ~/.config/htop
+mkdir -p ~/.config/mpd
mkdir -p ~/src/hg
mkdir -p ~/src/virtualenvs
mkdir -p ~/bin
@@ -46,8 +47,10 @@
ensure_link "src/dotfiles/gitignore" ".gitignore"
ensure_link "src/dotfiles/gnuplot" ".gnuplot"
ensure_link "src/dotfiles/hgignore" ".hgignore"
+ensure_link "src/dotfiles/htoprc" ".config/htop/htoprc"
ensure_link "src/dotfiles/lisprc" ".lisprc"
ensure_link "src/dotfiles/lispwords" ".lispwords"
+ensure_link "src/dotfiles/mpd.conf" ".config/mpd/mpd.conf"
ensure_link "src/dotfiles/mutt" ".mutt"
ensure_link "src/dotfiles/mutt/mailcap" ".mailcap"
ensure_link "src/dotfiles/mutt/muttrc" ".muttrc"
@@ -56,15 +59,14 @@
ensure_link "src/dotfiles/sbclrc" ".sbclrc"
ensure_link "src/dotfiles/shellcheckrc" ".shellcheckrc"
ensure_link "src/dotfiles/sqliterc" ".sqliterc"
+ensure_link "src/dotfiles/stumpwm/local-share-stumpwm" ".local/share/stumpwm"
ensure_link "src/dotfiles/stumpwm/stumpwmrc" ".stumpwmrc"
-ensure_link "src/dotfiles/stumpwm/local-share-stumpwm" ".local/share/stumpwm"
ensure_link "src/dotfiles/vim" ".vim"
ensure_link "src/dotfiles/vim/vimrc" ".vimrc"
ensure_link "src/dotfiles/vim/vimrc-minimal" ".vimrc-minimal"
+ensure_link "src/dotfiles/w3m-config" ".w3m/config"
ensure_link "src/dotfiles/w3m-keymap" ".w3m/keymap"
-ensure_link "src/dotfiles/w3m-config" ".w3m/config"
ensure_link "src/dotfiles/xbindkeysrc" ".xbindkeysrc"
ensure_link "src/dotfiles/xsessionrc" ".xsessionrc"
-ensure_link "src/dotfiles/htoprc" ".config/htop/htoprc"
echo done
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/hg-clone-llp Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+repo="$1"
+
+h clone hsl://"$repo" "$repo"
+cd "$repo"
+llp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/minimap2-index Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,33 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+# minimap2-index \
+# /nfs/turbo/boylelab/slosh/reference-genomes/hg38_no_alt/seq/GCA_000001405.15_GRCh38_no_alt_analysis_set.fna \
+# map-ont/ \
+# -x map-ont
+reference="$1"
+shift
+output_dir="$1"
+shift
+
+# remaining opts are e.g. -x ont
+
+minimap="/nfs/turbo/boylelab/slosh/software/minimap2-2.30_x64-linux/minimap2"
+
+mkdir -p "$output_dir"
+
+{
+ echo Minimap version: "$("$minimap" --version)"
+
+ echo Indexing command: " "
+ echo \
+ "$minimap" -t 8 -d "$output_dir/index.mmi" "$reference" "$@"
+
+ echo
+ echo Output:
+ "$minimap" -t 8 -d "$output_dir/index.mmi" "$reference" "$@"
+} >> "$output_dir"/README.txt 2>&1
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/sb Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -e
+
+sbcl --eval '(ql:quickload :losh :silent t)' --eval '(in-package :losh-user)' "$@"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/um-pass Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+echo Retrieving password, press yubikey... > /dev/tty
+pass show umich.edu/slosh | head -1 | tr -d '\n'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bootstrap.markdown Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,175 @@
+# Bootstrapping a New Machine
+
+Notes for myself for the next time I set up a new laptop or whatever.
+
+First, back up everything if necessary:
+
+* Faster on wired ethernet.
+* Don't forget password-store!
+* Don't forget hidden dotfiles!
+
+Install Debian. Partition everything, install nothing.
+
+Goal is now to get the dotfiles repo onto the machine and have everything
+required to run `bootstrap.sh`.
+
+Boot into a command line as root (no `sudo` yet):
+
+ apt install sudo
+ usermod -a -G sudo sjl
+ usermod -a -G netdev sjl
+
+Allow non-free packages:
+
+ vim /etc/apt/sources.list
+
+ edit to add non-free to lines, e.g.:
+ deb http://http.us.debian.org/debian bookworm main contrib non-free
+
+ apt update
+
+Install first round of stuff:
+
+ apt install \
+ nmtui sudo make
+ curl wget network-manager
+ fish rlwrap
+ mercurial git
+ xcape
+ pulseaudio alsa-utils
+ libzstd-dev libx11-dev libxft-dev
+ build-essential autoconf pkg-config
+ bzip2 udisks2 lm-sensors htop
+ fonts-ubuntu w3m atool psmisc
+ suckless-tools trash-cli
+ dunst neovim python3-dulwich
+ silversearcher-ag
+ irssi
+
+TODO: `xautolock` is no longer in the Debian repos. Figure out how to get it.
+
+TODO: Need to disable networkd, remove interface from `/etc/interfaces` and
+restart `NetworkManager` to get that in place.
+
+Set up `.ssh` and keys.
+
+Bootstrap lisp:
+
+ sudo apt install sbcl
+ git clone https://github.com/sbcl/sbcl
+ git checkout sbcl-2.3.6
+ SBCL_MAKE_JOBS=-j8 SBCL_MAKE_PARALLEL=8 sh make.sh --with-core-compression
+ sudo sh install.sh
+ sudo apt remove sbcl
+
+ curl -O https://beta.quicklisp.org/quicklisp.lisp
+ sbcl --load quicklisp.lisp
+ (quicklisp-quickstart:install :path "/home/sjl/.quicklisp/")
+
+ TODO CCL and others
+
+Get dotfiles:
+
+ hg clone ssh://hsl/repos/dotfiles
+ cd dotfiles
+ ./bin/bootstrap.sh
+
+ TODO build hg from scratch to get hg-git working maybe
+ TODO bootstrap script might fuck up the fish config because shit's already created, thanks a lot fish
+
+ git clone https://github.com/sjl/z-fish
+
+`chsh` to `/usr/bin/fish`
+
+Clone repos:
+
+ hg clone hsl://adopt adopt
+ cd adopt
+ llp
+ cd ..
+
+ others:
+
+ 1am
+ adopt
+ beast
+ bobbin
+ boots
+ cacl
+ chancery
+ cl-d-api
+ cl-digraph
+ cl-losh
+ cl-netpbm
+ cl-pcg
+ conserve
+ d
+ dbvolve
+ docs.stevelosh.com
+ friendly-find
+ jarl
+ peat
+ t
+
+ …etc etc
+
+
+Build st:
+
+ git clone https://github.com/sjl/st
+
+Get a desktop environment up and running:
+
+ sudo apt install xinit xdm
+
+ git clone https://github.com/stumpwm/stumpwm
+
+ (ql:quickload "clx")
+ (ql:quickload "cl-ppcre")
+ (ql:quickload "alexandria")
+ (ql:quickload "xembed")
+
+ ./autogen.sh
+ ./configure
+ make
+ sudo make install
+
+ cd ~/.stumpwm.d/
+ git clone https://github.com/sjl/stumpwm-contrib modules
+ cd modules
+ git co sjl
+
+Set up `pass`:
+
+ git clone sjl@redacted:password-store .password-store
+ sudo apt install pass scdaemon pinentry-gtk2
+ gpg -a --export 5D... > public-key.txt
+ copy over
+ gpg --import < public-key.txt
+
+Pulseaudio crap:
+
+ sudo apt install pulseaudio alsa-utils
+ pulseaudio --start
+ alsamixer
+ (m to unmute, up/down to change vol)
+
+Set up Firefox:
+
+ wget 'https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=en-US'
+ aunpack fi…
+ mv firefox /opt/
+ cd /opt/
+ chown -R root:root firefox
+ ln -s /opt/firefox/firefox /usr/local/bin/firefox
+ sudo apt install libgtk-3-0 libdbus-glib-1-2
+ finish the rest of this garbage https://wiki.debian.org/Firefox#Hardware_Video_Acceleration
+
+VLC (installs the world, sigh):
+
+ sudo apt install vlc
+ View > Docked Playlist to unbreak the playlist
+
+UM VPN:
+
+ TODO
--- a/fish/config.fish Tue Mar 25 14:16:24 2025 -0400
+++ b/fish/config.fish Wed Aug 27 16:14:19 2025 -0400
@@ -115,6 +115,7 @@
prepend_to_path "$HOME/src/hg"
prepend_to_path "$HOME/bin"
prepend_to_path "$HOME/.go/bin"
+prepend_to_path "$HOME/bin/jdk-21.0.2/bin"
set BROWSER open
@@ -125,6 +126,8 @@
set -g -x PAGER 'less -iX'
# set -g -x _JAVA_OPTIONS "-Djava.awt.headless=true"
+set -g -x JAVA_HOME "$HOME/bin/jdk-21.0.2/"
+
set -g -x GPG_TTY (tty)
# Less Colors for Man Pages
--- a/htoprc Tue Mar 25 14:16:24 2025 -0400
+++ b/htoprc Wed Aug 27 16:14:19 2025 -0400
@@ -3,7 +3,7 @@
htop_version=3.2.2
config_reader_min_version=3
fields=0 48 17 18 39 2 46 47 49 1
-hide_kernel_threads=1
+hide_kernel_threads=0
hide_userland_threads=1
hide_running_in_container=0
shadow_other_users=0
@@ -39,14 +39,14 @@
column_meters_1=RightCPUs2 Tasks LoadAverage Uptime
column_meter_modes_1=1 2 2 2
tree_view=1
-sort_key=39
+sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=1
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_RESIDENT STATE PERCENT_CPU PERCENT_MEM TIME Command
-.sort_key=M_RESIDENT
+.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view=1
.tree_view_always_by_pid=1
--- a/lisp/build-binary.sh Tue Mar 25 14:16:24 2025 -0400
+++ b/lisp/build-binary.sh Wed Aug 27 16:14:19 2025 -0400
@@ -9,6 +9,6 @@
sbcl --load "$LISP" \
--eval "(sb-ext:save-lisp-and-die \"$NAME\"
:executable t
- :compression nil
+ :compression t
:save-runtime-options t
:toplevel '$NAME:toplevel)"
--- a/lispwords Tue Mar 25 14:16:24 2025 -0400
+++ b/lispwords Wed Aug 27 16:14:19 2025 -0400
@@ -92,6 +92,7 @@
(1 multiple-value-bind*)
(1 do-repeat do-range do-irange do-ring-buffer do-vector do-file do-hash-set)
(1 timing profile-when)
+(1 recase)
; qtools
(1 qtenumcase)
@@ -145,6 +146,7 @@
; boots
(1 event-case)
+(2 canvas)
; parsnip
(1 let!)
Binary file man/index.db has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remote/bin/arblogs Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+sudo journalctl -fu arb_sequencing_worker "$@" \
+ | batchcolor '(ERROR|WARNING|INFO|[0-9]{8}_[0-9]{4}_[-A-Z0-9]+_[A-Z0-9]+_[a-z0-9]{8}|Checking for.* in )' \
+ | cut -d ' ' -f 6-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remote/bin/bclogs Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+sudo journalctl -fu arb_basecalling_worker "$@" \
+ | batchcolor '(ERROR|WARNING|INFO|[0-9]{8}_[0-9]{4}_[-A-Z0-9]+_[A-Z0-9]+_[a-z0-9]{8}|Checking for.* in )' \
+ | cut -d ' ' -f 6-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remote/bin/minimap2-index Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,1 @@
+../../bin/minimap2-index
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remote/bin/potential-to-bed Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+cut -f 1-4,8- | awk -F'\t' -v OFS='\t' '{print $1, $2, $3, $4 " " $5}'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/remote/bin/run-igv Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+
+set -euo pipefail
+
+module load openjdk
+~/src/igv/build/IGV-dist/igv.sh
--- a/stumpwm/applications.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/applications.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -6,6 +6,9 @@
(defcommand spotify () ()
(run-or-raise "spotify" '(:class "Spotify")))
+(defcommand zoom-meeting () ()
+ (run-or-raise "echom 'No meeting running.'" '(:class "zoom" :title "Meeting")))
+
(defcommand files () ()
(run-shell-command "open $HOME"))
--- a/stumpwm/bioinf.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/bioinf.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -42,6 +42,28 @@
(defcommand kmerize (k) ((:integer "k: "))
(pbcopy (kmerized-string k (pbpaste))))
+(defun reverse-complement (seq)
+ (nreverse (map 'string (lambda (base)
+ (case base
+ (#\A #\T)
+ (#\C #\G)
+ (#\G #\C)
+ (#\T #\A)
+ (#\N #\N)
+ (#\a #\t)
+ (#\c #\g)
+ (#\g #\c)
+ (#\t #\a)
+ (#\n #\n)
+ (t #\?)))
+ seq)))
+
+(defcommand revcomp () ()
+ (pbcopy (reverse-complement (pbpaste))))
+
+(defcommand rev () ()
+ (pbcopy (reverse (pbpaste))))
+
#; Scratch --------------------------------------------------------------------
--- a/stumpwm/brightness.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/brightness.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -9,9 +9,7 @@
(defun set-brightness (value)
(run-and-echo-shell-command
(hostcase
- ((:gro :juss) (format nil "xrandr --output ~A --brightness ~D"
- (hostcase ((:gro :juss) "eDP"))
- (/ value 100.0)))
+ ((:gro :juss) (format nil "light -S ~D" value))
(t (message "Not sure how to set brightness on this machine.")))))
(defun rotate-brightness (delta)
--- a/stumpwm/igv.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/igv.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -84,7 +84,8 @@
(clear-read-selections%))
(defcommand igv/select-reads () ()
- (select-reads%))
+ (select-reads%)
+ (group% :selected))
(defcommand igv/goto () ()
(goto%))
--- a/stumpwm/key-mapping.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/key-mapping.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -30,7 +30,7 @@
("H-SunPageDown" "st-font-down")
("H-z" "fullscreen")
("H-Z" "end-zoom")
- ("S-H-F1" "igv")
+ ("C-S-F1" "bht")
("H-F4" "switch-yubikeys")
("H-\\" "pass-personal")
("H-|" "generate-password")
@@ -39,6 +39,7 @@
("H-b" "browser")
("H-O" "spotify")
("H-o" "files")
+ ("H-t" "zoom-meeting")
("H-P" "papers")
("F26" "prev")
("S-F26" "next")
@@ -107,8 +108,13 @@
("H-n" "next-in-frame")
("H-p" "prev-in-frame")
("H-N" "pull-hidden-next")
- ("H-," "pull-from-windowlist"))
+
+ ("H-," "pull-from-windowlist")
+ ("H-less" "title")
+ ("H-." "ggo")
+ ("H-greater" "grename")
+ )
(define-top-keys ;; splitting
("H-s" "sane-vsplit")
@@ -123,7 +129,8 @@
("H-Delete" "gkill"))
(define-top-keys ;; naming
- ("H-'" "title"))
+ ("H-'" "title")
+ ("H-\"" "grename"))
(define-top-keys ;; sound
("H-F1" "mute")
--- a/stumpwm/miscellaneous.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/miscellaneous.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -95,3 +95,18 @@
(when-let-window (win "^Zoom Meeting.*")
(kill-window win)
(message "Killed meeting")))
+
+
+(defcommand ggo () ()
+ (let* ((current-screen (current-screen))
+ (current-group (stumpwm::screen-current-group current-screen))
+ (all-groups (sort (copy-seq (screen-groups current-screen)) #'< :key #'group-number))
+ (groups (mapcar (lambda (group)
+ (list (format nil "~2D~A~A"
+ (group-number group)
+ (if (eql current-group group) #\* #\space)
+ (group-name group))
+ group))
+ all-groups))
+ (selected (select-from-menu current-screen groups)))
+ (when selected (stumpwm::switch-to-group (second selected)))))
--- a/stumpwm/sound.lisp Tue Mar 25 14:16:24 2025 -0400
+++ b/stumpwm/sound.lisp Wed Aug 27 16:14:19 2025 -0400
@@ -30,6 +30,10 @@
(declare (ignore ml))
(format nil "~D%" (volume)))
+(defcommand bht () ()
+ (run-shell-command (format nil "amixer -q sset Master 50%; bht; amixer -q sset Master ~D%" (volume)))
+ (volume/uncache))
+
(add-screen-mode-line-formatter #\V #'volume-modeline)
#; Scratch --------------------------------------------------------------------
--- a/vim/custom-dictionary.utf-8.add Tue Mar 25 14:16:24 2025 -0400
+++ b/vim/custom-dictionary.utf-8.add Wed Aug 27 16:14:19 2025 -0400
@@ -561,3 +561,10 @@
reparse
venv
env
+concat
+Beszel
+basecallers
+untar
+unclustered
+helicase
+reauthenticate
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/ultisnips-bullshit/htmldjango.snippets Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,47 @@
+extends html
+
+snippet % "Tag" i
+{% ${1:tag} %}
+ $0
+{% end %}
+endsnippet
+
+snippet { "Var" i
+{{ $1 }}$0
+endsnippet
+
+snippet include "include" b
+{% include "${1:foo.html}" %}
+endsnippet
+
+snippet includewith "include with" b
+{% include "${1:foo.html}" with ${2:var}=${3:val} ${4:only }%}
+endsnippet
+
+snippet with "With" b
+{% with ${1:var}=${2:val} %}
+ $0
+{% end %}
+endsnippet
+
+snippet for "For" b
+{% for ${1:var} in ${2:val} %}
+ $0
+{% endfor %}
+endsnippet
+
+snippet if "If" b
+{% if ${1:cond} %}
+ $0
+{% endif %}
+endsnippet
+
+snippet else "Else" b
+{% else %}
+ $0
+endsnippet
+
+snippet elif "Elif" b
+{% elif ${1:cond} %}
+ $0
+endsnippet
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vim/ultisnips-bullshit/python.snippets Wed Aug 27 16:14:19 2025 -0400
@@ -0,0 +1,27 @@
+snippet #! "#!" b
+#!/usr/bin/env python3
+endsnippet
+
+snippet ifmain "if main" b
+if __name__ == '__main__':
+ ${1:pass}
+endsnippet
+
+snippet p "print()" b
+print($1)
+endsnippet
+
+snippet i "if" b
+if ${1:cond}:
+ ${2:pass}
+endsnippet
+
+snippet ei "elif" b
+elif ${1:cond}:
+ ${2:pass}
+endsnippet
+
+snippet e "else" b
+else:
+ ${1:pass}
+endsnippet
--- a/vim/vimrc Tue Mar 25 14:16:24 2025 -0400
+++ b/vim/vimrc Wed Aug 27 16:14:19 2025 -0400
@@ -720,6 +720,9 @@
au BufNewFile,BufRead dashboard.py normal! zR
au BufNewFile,BufRead local_settings.py normal! zR
+ au BufNewFile,BufRead *.htmldjango setlocal filetype=htmldjango
+ au BufNewFile,BufRead *.htmldjango.hx setlocal filetype=htmldjango
+
au BufNewFile,BufRead admin.py setlocal filetype=python.django
au BufNewFile,BufRead urls.py setlocal filetype=python.django
au BufNewFile,BufRead models.py setlocal filetype=python.django
@@ -957,6 +960,10 @@
au BufNewFile,BufRead *.dram setlocal filetype=htmldjango
au FileType html,jinja,htmldjango,gohtmltmpl setlocal foldmethod=manual
+ au FileType html,jinja,htmldjango,gohtmltmpl setlocal foldmethod=manual
+
+ au FileType html,jinja,htmldjango,gohtmltmp inoremap <silent> <C-c> </<C-X><C-O><C-X><esc>a
+ au FileType html,jinja,htmldjango,gohtmltmp inoremap <c-cr> <cr><esc>O
augroup END
" }}}
@@ -1601,6 +1608,7 @@
let g:gundo_preview_bottom = 1
let g:gundo_tree_statusline = "Gundo"
let g:gundo_preview_statusline = "Gundo Preview"
+let g:gundo_prefer_python3 = 1
" }}}
" HTML5 {{{