# HG changeset patch # User Steve Losh # Date 1756325659 14400 # Node ID 2e41ef790dc8a22fd6b9596ed3a185d69e353b27 # Parent 69edbcc7ba7bc3e4eeac0bd1dc12ba382c3680c9 More diff -r 69edbcc7ba7b -r 2e41ef790dc8 .hgsub --- 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/ diff -r 69edbcc7ba7b -r 2e41ef790dc8 .hgsubstate --- 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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/battery --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/bht --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/bootstrap.sh --- 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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/hg-clone-llp --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/minimap2-index --- /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 + + + diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/sb --- /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)' "$@" diff -r 69edbcc7ba7b -r 2e41ef790dc8 bin/um-pass --- /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' diff -r 69edbcc7ba7b -r 2e41ef790dc8 bootstrap.markdown --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 fish/config.fish --- 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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 htoprc --- 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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 lisp/build-binary.sh --- 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)" diff -r 69edbcc7ba7b -r 2e41ef790dc8 lispwords --- 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!) diff -r 69edbcc7ba7b -r 2e41ef790dc8 man/index.db Binary file man/index.db has changed diff -r 69edbcc7ba7b -r 2e41ef790dc8 remote/bin/arblogs --- /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- diff -r 69edbcc7ba7b -r 2e41ef790dc8 remote/bin/bclogs --- /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- diff -r 69edbcc7ba7b -r 2e41ef790dc8 remote/bin/minimap2-index --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 remote/bin/potential-to-bed --- /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}' diff -r 69edbcc7ba7b -r 2e41ef790dc8 remote/bin/run-igv --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/applications.lisp --- 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")) diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/bioinf.lisp --- 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 -------------------------------------------------------------------- diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/brightness.lisp --- 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) diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/igv.lisp --- 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%)) diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/key-mapping.lisp --- 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") diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/miscellaneous.lisp --- 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))))) diff -r 69edbcc7ba7b -r 2e41ef790dc8 stumpwm/sound.lisp --- 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 -------------------------------------------------------------------- diff -r 69edbcc7ba7b -r 2e41ef790dc8 vim/custom-dictionary.utf-8.add --- 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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 vim/ultisnips-bullshit/htmldjango.snippets --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 vim/ultisnips-bullshit/python.snippets --- /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 diff -r 69edbcc7ba7b -r 2e41ef790dc8 vim/vimrc --- 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 a + au FileType html,jinja,htmldjango,gohtmltmp inoremap 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 {{{