citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

commit 9fbb26274325009246de0921db7e16509edbe4d5
parent 8112c40220cdb3bb0f6da4d5b1a4a655defcbe36
Author: William Casarin <jb55@jb55.com>
Date:   Wed, 15 Nov 2023 16:06:48 -0800

quiver updates

Diffstat:
Mbin/fuzz-notmuch-am | 2+-
Mbin/fuzz-notmuch-gam | 4++--
Mbin/fuzz-trello-sprint | 24++----------------------
Mbin/git-author-stats | 2+-
Mbin/nannypay | 2++
Mbin/notmuch-gam | 2+-
Mbin/relayer | 2+-
Mdotfiles/.bashrc | 15++++++++++-----
Mdotfiles/.config/neomutt/neomuttrc | 6++++--
Mdotfiles/.config/nvim/init.vim | 2++
Mdotfiles/.config/qutebrowser/autoconfig.yml | 4++--
Mdotfiles/.config/qutebrowser/config.py | 2++
Mdotfiles/.gitconfig | 14+++++++++++---
Mdotfiles/.mail_aliases | 5+++--
Mdotfiles/.notmuch-config | 3++-
Mdotfiles/.xmonad/xmonad.hs | 6+++---
Mdotfiles/commands | 11+++++++++--
Mdotfiles/rssfeeds | 2++
Mnix-config/environment/default.nix | 5+++--
Mnix-config/machines/monad/networking/default.nix | 21++++++++++++---------
Mnix-config/machines/quiver/default.nix | 2++
Mnix-config/nixpkgs/config.nix | 17+++++++++--------
Mnix-config/services/desktop/default.nix | 4++--
23 files changed, 88 insertions(+), 69 deletions(-)

diff --git a/bin/fuzz-notmuch-am b/bin/fuzz-notmuch-am @@ -1,4 +1,4 @@ #!/usr/bin/env bash set -eou pipefail -echo notmuch am to:nixpkgs-dev +echo notmuch am query:patches diff --git a/bin/fuzz-notmuch-gam b/bin/fuzz-notmuch-gam @@ -1,5 +1,5 @@ #!/usr/bin/env bash -#set -eou pipefail +set -eo pipefail #slug="" slug=${1:-$(github-project-slug)} if [ $slug != "" ] @@ -14,4 +14,4 @@ fzf --no-sort -m | cutt -f2 | xargs -I{} printf 'thread:{}\n') -echo "notmuch show $thread | mail-prpatch" +echo "notmuch show $thread | mail-prpatch | $(git config core.pager)" diff --git a/bin/fuzz-trello-sprint b/bin/fuzz-trello-sprint @@ -2,30 +2,10 @@ set -eo pipefail -board=${TRELLO_BOARD:-Sprint} - -all=$(cat <<\EOS -/^[^*]/ { - list="" - for(i=6;i<=NF;i++) { - list = list" "$i - } -} - -/^\*/ { - print list " " $0 -} -EOS -) - -stripansi() { - sed 's/\x1b\[[0-9;]*m//g' -} - -card=$(trello show-cards -b $board | stripansi | awk "$all" | fuzzer "$1") +card=$(trello-cards | fuzzer "$1") #list=$(trello show-lists -b $board | grep ID | fuzzer "$1" | sed -En 's,^([^(]+) \(ID:.*,\1,p') #card=$(trello show-cards -b $board -l "$list" | grep '^\*' | fzf) -card_id=$(sed -En 's,.*\* ([^ ]+).*,\1,p' <<<"$card") +card_id=$(trello-card-id <<<"$card") card_name=$(cut -d- -f 2- <<<"$card") list=$(cut -d\* -f1 <<<"$card") echo "trello card-details $card_id | less --quit-if-one-screen # $list > $card_name" diff --git a/bin/git-author-stats b/bin/git-author-stats @@ -22,7 +22,7 @@ fi (printf $'name\tadded\tremoved\tcommits\n'; -git log --numstat --pretty=$'%aN' "$@" \ +git log --numstat --pretty=$'%aN <%aE>' "$@" \ | awk -F$'\t' "$script" \ | sort --field-separator=$'\t' -k${ASTATS_SORT_COLUMN:-2} -g${REVERSE} ) > /tmp/git-author-stats diff --git a/bin/nannypay b/bin/nannypay @@ -7,6 +7,8 @@ if [ -z "$NANNY" ]; then exit 1 fi +pay=20 + if [ -z $pay ]; then printf "unknown pay for %s\n" "$NANNY" exit 1 diff --git a/bin/notmuch-gam b/bin/notmuch-gam @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -eou pipefail -cmd=$(fuzz-notmuch-gam) +cmd=$(fuzz-notmuch-gam "$@") $cmd diff --git a/bin/relayer b/bin/relayer @@ -6,7 +6,7 @@ printf "using post '%s'\n" "$POST" >&2 for relay in $(cat ~/dotfiles/relays) do - <<<"$POST" jq -c '["EVENT", .]' | websocat "$relay" & + <<<"$POST" websocat "$relay" & done wait diff --git a/dotfiles/.bashrc b/dotfiles/.bashrc @@ -23,15 +23,18 @@ export PS0='\033[0m' #export PS1='$(printf "\x01\033[30;1m\x02%3.*s\x01\033[0m\x02> " $? $?)' # don't put duplicate lines in the history. See bash(1) for more options -export HISTSIZE=50000 #export HISTCONTROL=ignoredups # ... and ignore same sucessive entries. export HISTCONTROL=ignoreboth +export HISTSIZE=50000 # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize +# OMG +shopt -s histappend + DIRCOLORS="$HOME/.dircolors" UNDISTRACT="$HOME/dotfiles/bash-undistract-me/undistract-me.sh" @@ -93,7 +96,7 @@ md () { mandown README* } -function run_fuzzer() { +function f() { eval "$(fuzz-run-command "$@")" } @@ -111,7 +114,7 @@ alias e="edit -n" alias emacs="env TERM=xterm-256color emacs" alias feh="feh --conversion-timeout 2" alias fixssh="source $HOME/bin/fixssh" -alias f=run_fuzzer +#alias f=run_fuzzer alias fzf="fzf --exact" alias g=git alias githist="git reflog show | grep '}: commit' | nl | sort -nr | nl | sort -nr | cut --fields=1,3 | sed s/commit://g | sed -e 's/HEAD*@{[0-9]*}://g'" @@ -305,10 +308,12 @@ bind '"\C-x\C-e": shell-expand-line' bind '"\C-x\C-r": redraw-current-line' bind '"\C-x^": history-expand-line' -bind '"\C-f": "\C-x\C-addi`fuzz-run-command`\C-x\C-e\C-x^\C-x\C-a$a\C-x\C-r"' +bind '"\C-f": "`fuzz-run-command`\C-x\C-e"' bind -m vi-command '"\C-f": "i\C-f"' -bind '"\C-g": "\C-x\C-addi`fuzz-run-command sh`\C-x\C-e\C-x^\C-x\C-a$a\C-x\C-r"' +bind '"\C-g": "`fuzz-run-command sh`\C-x\C-e"' bind -m vi-command '"\C-h": "i\C-h"' +bind '"\C-e": "!!\C-x\C-e"' +bind -m vi-command '"\C-e": "i\C-e"' bind '"\C-l":clear-screen' diff --git a/dotfiles/.config/neomutt/neomuttrc b/dotfiles/.config/neomutt/neomuttrc @@ -3,13 +3,14 @@ set nm_default_uri="notmuch:///home/jb55/mail/personal" set sendmail="/home/jb55/bin/sendmail" set virtual_spoolfile=yes set folder="/home/jb55/mail/personal" +set beep=no set wait_key=no set pager_stop=yes set from="jb55@jb55.com" set pipe_decode=yes set pipe_split=no set envelope_from=yes -set mime_forward=no +set mime_forward=yes unset markers set text_flowed @@ -31,6 +32,7 @@ virtual-mailboxes \ "damus-issues" "notmuch://?query=query:damusi" \ "damus-all-issues" "notmuch://?query=query:damus-all-issues" \ "damus-all-issues-no-elsat" "notmuch://?query=query:damus-all-issues-no-elsat" \ + "patches" "notmuch://?query=query:patches" \ "damus-issues-no-elsat" "notmuch://?query=query:damusinoelsat" macro index,pager a "<modify-labels>-unread -inbox<enter> @@ -43,7 +45,7 @@ macro index \\\\ "<vfolder-from-query>" "Search mailbox" macro pager p "|delta --paging always<enter>" macro pager d "<next-page>" macro pager u "<previous-page>" -macro pager c "|cols|less<enter>" +#macro pager c "|cols|less<enter>" macro pager t "|collapse|less<enter>" macro attach h "|w3m -dump -T text/html | less<enter>" "View text/html with w3m" #macro pager P "|grep patch$ | xargs curl -sL | delta --paging always<enter>" diff --git a/dotfiles/.config/nvim/init.vim b/dotfiles/.config/nvim/init.vim @@ -1,6 +1,8 @@ inoremap <Esc> <Nop> inoremap <special> fd <Esc> +execute pathogen#infect() + set tabstop=8 set shiftwidth=8 set ai diff --git a/dotfiles/.config/qutebrowser/autoconfig.yml b/dotfiles/.config/qutebrowser/autoconfig.yml @@ -6,5 +6,5 @@ config_version: 2 settings: - content.notifications.enabled: - https://www.tiktok.com: false + colors.webpage.darkmode.enabled: + global: false diff --git a/dotfiles/.config/qutebrowser/config.py b/dotfiles/.config/qutebrowser/config.py @@ -83,6 +83,8 @@ config.set('downloads.position', 'bottom') config.set('tabs.select_on_remove', 'last-used') config.set('url.default_page', 'about:blank') +#config.set('colors.webpage.darkmode.enabled', True) +config.set('colors.webpage.preferred_color_scheme', 'dark') config.set('url.searchengines', { diff --git a/dotfiles/.gitconfig b/dotfiles/.gitconfig @@ -6,11 +6,14 @@ diff = auto status = auto [core] + abbrev = 12 excludesfile = /Users/jb55/.gitignore_global editor = edit - pager = delta --max-line-length=4096 --file-style=box --paging=always + pager = delta --paging=always [sendemail] smtpServer=/home/jb55/bin/sendmail + aliasesFile= /home/jb55/.mail_aliases + aliasFileType=mutt [url "git@github.com:"] insteadOf = gh: [url "git@git.sr.ht:~"] @@ -34,6 +37,7 @@ [alias] s = show a = add + amw = am --whitespace=fix ap = add -p b = branch au = add -u @@ -76,11 +80,14 @@ tg = log --date-order --tags --simplify-by-decoration --pretty=format:'%ai %h %d' try = merge --no-commit --no-ff co = checkout + chp = cherry-pick sw = switch - fixes = !git --no-pager show -s --pretty='format:Fixes: %h (\"%s\")\n' + fixes = !git --no-pager show -s --pretty=fixes pushall = !git remote | parallel -L1 -I R git push R master [rebase] autosquash = true +[pretty] + fixes = Fixes: %h (\"%s\") [diff] colorMoved = dimmed-zebra colorMovedWs = allow-indentation-change @@ -94,7 +101,6 @@ [magit] hideCampaign = true [nostr] - relays = wss://relay.damus.io wss://nos.lol wss://nostr.wine [github] user = jb55 [grep] @@ -103,3 +109,5 @@ helper = !gh auth git-credential [init] defaultBranch = master +[nostr] + relays = wss://relay.damus.io wss://nos.lol wss://nostr.wine diff --git a/dotfiles/.mail_aliases b/dotfiles/.mail_aliases @@ -4,8 +4,9 @@ alias matt Matt Richards <matt.richards@steamoji.com> alias mikhail Mikhail Baiman <mikhail.baiman@steamoji.com> alias alex Alex Chunn <alex.chunn@steamoji.com> alias jesse Jesse Brydle <jesse.brydle@steamoji.com> -alias v Vanessa Gray <vanessagray31@gmail.com> +alias v Vanessa Gray <vanessa@damus.io> alias steam William Casarin <will.casarin@steamoji.com> alias rusty Rusty Russell <rusty@rustcorp.com.au> +alias thomas Thomas Mathews <thomas.c.mathews@gmail.com> -alias managers Kitsilano <kitsilano@steamoji.com>, Kerrisdale <kerrisdale@steamoji.com>, West Vancouver <westvancouver@steamoji.com> +alias managers Kitsilano <kitsilano@steamoji.com>, Kerrisdale <kerrisdale@steamoji.com>, West Vancouver <westvancouver@steamoji.com>, Redmond <redmond@steamoji.com> diff --git a/dotfiles/.notmuch-config b/dotfiles/.notmuch-config @@ -12,7 +12,7 @@ # [database] -path=/Users/jb55/mail/personal +path=/home/jb55/mail/personal # User configuration # @@ -115,6 +115,7 @@ list=tag:list and not tag:github and tag:inbox and not tag:busy notmuch=tag:notmuch and tag:inbox today=date:today and tag:inbox work=tag:inbox and tag:work +patches=subject:PATCH and tag:inbox and (to:jb55@jb55.com or to:patches@damus.io) damusp=(subject:PR or subject:PATCH) and subject:damus and tag:inbox damusi=subject:Issue and subject:damus-io and tag:inbox damus-all-issues=subject:Issue and subject:damus-io diff --git a/dotfiles/.xmonad/xmonad.hs b/dotfiles/.xmonad/xmonad.hs @@ -9,7 +9,7 @@ import Data.Ratio import Data.IORef import Data.List -import Data.Default (def) +--import Data.Default (def) import Control.Monad (when) import System.IO.Unsafe (unsafePerformIO) import System.Posix.Files (readSymbolicLink) @@ -35,7 +35,7 @@ import XMonad.Layout.NoBorders import XMonad.Layout.ResizableTile import XMonad.Layout.ResizeScreen import XMonad.Layout.Spacing -import XMonad.Layout.Spiral +import XMonad.Layout.Spiral as S import XMonad.Layout.Tabbed import XMonad.Layout.ToggleLayouts (ToggleLayout(ToggleLayout)) import XMonad.Prompt @@ -152,7 +152,7 @@ baseLayout = let tall = ResizableTall 1 (3/100) (1/2) [] in - Mirror tall -- ||| otherstuff + Mirror tall ||| S.spiral (4/3) --S.spiralWithDir S.South S.CW (4/3) layout theme = smartBorders diff --git a/dotfiles/commands b/dotfiles/commands @@ -1,3 +1,5 @@ +ans app > note scratch echo scratch-note +ane app > note edit fuzz-note-edit aci app > cal > interactive echo pcal interactive acl app > cal > list echo pcal list afb app > feeds > blogs fuzz-rss "grep @blog" @@ -25,6 +27,7 @@ dsg docs->stripe->go fuzzdoc ~/docs/stripe/go-v72.txt '^type ' dgt docs->go->testing fuzzdoc ~/docs/godoc/testing.txt '^func ' ecc edit vdirsyncer config echo edit ~/.config/vdirsyncer/config ec edit commands fuzz-edit-scripts +ebc edit build command echo edit .buildcmd ed edit default.nix echo edit default.nix es edit shell.nix echo edit shell.nix eFc edit fuzz command fuzz-edit-command @@ -40,6 +43,7 @@ gb git branches echo git bvr G gemini gemmark ghi github issues fuzz-gh-issue-list ghp github prf fuzz-gh-pr-list +gcp github cherry-pick echo git cherry-pick gpm git mlap echo git mlap h run history fuzz-run-hist jt jump tag fuzz-jump-tag @@ -50,7 +54,8 @@ ng notmuch github patch fuzz-notmuch-gam nat notmuch archive fuzz-notmuch-archive nm notmuch muchsync echo muchsync charon m mutt echo neomutt -mp mutt prs echo neomutt -f damus-prs +mP mutt prs echo neomutt -f damus-prs +mp mutt patches echo neomutt -f patches mi mutt issues echo neomutt -f damus-issues min mutt issues noelsat echo neomutt -f damus-issues-no-elsat mai mutt all issues echo neomutt -f damus-all-issues @@ -61,6 +66,7 @@ nT email today echo f nt query:today nt notmuch threads fuzz-notmuch-threads of open file fuzz-open-file olf open last files fuzz-last-files open +pr cd project root echo cd \"$(project-root)\" pc cat project file fuzz-cat-file pf edit project file fuzz-edit-file ps edit project skeletons fuzz-edit-file --dir ~/dotfiles/skeletons @@ -78,7 +84,6 @@ sp search project fuzz-search-files ss search project file fuzz-search-file st search TODOs fuzz-search-files TODO vim edit vim config echo edit ~/.config/nvim/init.vim -wn work notes echo edit /home/jb55/projects/steamoji/doc/$(ls -1pt /home/jb55/projects/steamoji/doc | grep -v / | head -n1) wsg work service gql fuzzedit schema '^' wsm work service mutations fuzzedit mutation '^func ' wsq work service queries fuzzedit query '^func ' @@ -89,4 +94,6 @@ wti work trello inprogress fuzz-trello-sprint "^In Progress " wtr work trello refresh echo trello refresh wts work trello sprint fuzz-trello-sprint wtt work trello todo fuzz-trello-sprint "^Todo " +wn work notes echo edit /home/jb55/projects/steamoji/doc/$(ls -1pt /home/jb55/projects/steamoji/doc | grep -v / | head -n1) +wm work mail echo neomutt -f \"notmuch://?query=query:work\" z fz echo fz diff --git a/dotfiles/rssfeeds b/dotfiles/rssfeeds @@ -41,3 +41,5 @@ scott-aaronson @blog @physics https://scottaaronson.blog/?feed=rss2 dietterich-labs @yt https://www.youtube.com/feeds/videos.xml?channel_id=UCd02pSRrecAVFOPjB-bfv-Q allen-farrington @blog https://medium.com/feed/@allenfarrington woit @blog https://www.math.columbia.edu/~woit/wordpress/?feed=rss2 +stabilityai @blog @ai https://stability.ai/blog?format=rss +algorithmic-bridge @blog @ai https://thealgorithmicbridge.substack.com/feed diff --git a/nix-config/environment/default.nix b/nix-config/environment/default.nix @@ -9,7 +9,6 @@ let jb55pkgs = import <jb55pkgs> { inherit pkgs; }; }) {}; myPackages = with jb55pkgs; [ rsslink - nostril bcalc btcs csv-delim @@ -35,9 +34,11 @@ let jb55pkgs = import <jb55pkgs> { inherit pkgs; }; tut python3Packages.num2words - #python3Packages.howdoi + python3Packages.howdoi tree + xsv datefmt + nostril nncp asciinema aspell diff --git a/nix-config/machines/monad/networking/default.nix b/nix-config/machines/monad/networking/default.nix @@ -99,19 +99,22 @@ in { publicKey = "vIh3IQgP92OhHaC9XBiJVDLlrs3GVcR6hlXaapjTiA0="; # phone allowedIPs = [ "10.100.0.3/32" ]; } - { publicKey = "Dp8Df75X8Kh9gd33e+CWyyhOvT4mT0X9ToPwBUEBU1k="; # macos - allowedIPs = [ "10.100.0.4/32" ]; - } - { publicKey = "N4bIpjNL/IzV59y5KWHiR54n0rAKYcr3/BkVLzCmBBA="; # old-mac - allowedIPs = [ "10.100.0.5/32" ]; - } - { publicKey = "Ynuism5cSJYUrMF/gWZti8W+PztLufaB/3mQlXV6HyY="; # vanessa-phone - allowedIPs = [ "10.100.0.6/32" ]; - } + #{ publicKey = "Dp8Df75X8Kh9gd33e+CWyyhOvT4mT0X9ToPwBUEBU1k="; # macos + # allowedIPs = [ "10.100.0.4/32" ]; + #} + #{ publicKey = "N4bIpjNL/IzV59y5KWHiR54n0rAKYcr3/BkVLzCmBBA="; # old-mac + # allowedIPs = [ "10.100.0.5/32" ]; + #} + #{ publicKey = "Ynuism5cSJYUrMF/gWZti8W+PztLufaB/3mQlXV6HyY="; # vanessa-phone + # allowedIPs = [ "10.100.0.6/32" ]; + #} { publicKey = "BklL4dTL8WK3xnmM899Hr50/UlXaLYhJQWllj2p4ZEg="; # charon allowedIPs = [ "10.100.0.7/32" ]; endpoint = "45.79.91.128:51820"; } + { publicKey = "fj35gCObJ+uP/8tDpYsAD+b2XuSpa82umL/8LscIHwQ="; # pixel + allowedIPs = [ "10.100.0.9/32" ]; + } { publicKey = "oYTNuXPl5GQsz53cL55MO9MfI61DyZBrBDy9ZFBpDWU="; # cross (air) allowedIPs = [ "10.100.0.8/32" ]; } diff --git a/nix-config/machines/quiver/default.nix b/nix-config/machines/quiver/default.nix @@ -17,6 +17,8 @@ extra: documentation.nixos.enable = false; + programs.adb.enable = true; + boot.kernelPackages = pkgs.linuxPackages_latest; boot.extraModprobeConfig = '' diff --git a/nix-config/nixpkgs/config.nix b/nix-config/nixpkgs/config.nix @@ -11,6 +11,7 @@ let #monstercatPkgs = import <monstercatpkgs> { inherit pkgs; }; in { allowUnfree = true; allowUnfreeRedistributable = true; + android_sdk.accept_license = true; allowBroken = false; checkMeta = true; zathura.useMupdf = true; @@ -54,14 +55,14 @@ in { # }; #}; - dunst = pkgs.lib.overrideDerivation super.dunst (attrs: { - src = pkgs.fetchFromGitHub { - owner = "jb55"; - repo = "dunst"; - rev = "138edff170e4e4a2bf6891bd634c4ec215d4b7ef"; - sha256 = "1pf3v4mrcd0cfhvm9fk9nwvgj5dy6qlbs0mhlcyx26cbqxd62brp"; - }; - }); + #dunst = pkgs.lib.overrideDerivation super.dunst (attrs: { + # src = pkgs.fetchFromGitHub { + # owner = "jb55"; + # repo = "dunst"; + # rev = "138edff170e4e4a2bf6891bd634c4ec215d4b7ef"; + # sha256 = "1pf3v4mrcd0cfhvm9fk9nwvgj5dy6qlbs0mhlcyx26cbqxd62brp"; + # }; + #}); #lastpass-cli = super.lastpass-cli.override { guiSupport = true; }; diff --git a/nix-config/services/desktop/default.nix b/nix-config/services/desktop/default.nix @@ -56,7 +56,7 @@ in services.redshift = { enable = if extra.is-minimal then false else true; temperature.day = 5500; - temperature.night = 4300; + temperature.night = 3800; brightness = { day = "1.0"; @@ -190,7 +190,7 @@ in wantedBy = [ "graphical-session.target" ]; after = [ "graphical-session.target" ]; serviceConfig.ExecStart = "${pkgs.libnotify}/bin/notify-send -u critical standup"; - startAt = "Mon..Fri *-*-* 8:58:00"; + startAt = "Mon..Fri *-*-* 15:58:00"; }; systemd.user.services.urxvtd = {