Big update, moving more to offline methods - dotfiles - These are my dotfiles. There are many like it, but these are mine.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 25463d2dbeeda2afa48cbae76848cf4a43413692
 (DIR) parent a2bd958517467ee9ecab79fa22ff098d86e8015d
 (HTM) Author: Jay Scott <me@jay.scot>
       Date:   Fri, 16 Sep 2022 20:05:26 +0100
       
       Big update, moving more to offline methods
       
       Diffstat:
         M .gitignore                          |       5 +++++
         A bin/fdm_parse_feeds                 |      24 ++++++++++++++++++++++++
         M bin/link_handler.sh                 |       2 +-
         A bin/offline.sh                      |      10 ++++++++++
         D bin/old/fdm_parse_feeds             |      15 ---------------
         D bin/old/update_feeds                |      20 --------------------
         A bin/update_feeds                    |      20 ++++++++++++++++++++
         M bin/yt_dl.sh                        |      28 +++++++++++++++++++---------
         M bootstrap.sh                        |       4 ++--
         A castgetrc                           |      16 ++++++++++++++++
         M crontab                             |       3 +--
         A fdm/config                          |      54 +++++++++++++++++++++++++++++++
         D isync/mbsyncrc                      |      25 -------------------------
         M mutt/muttrc                         |      25 ++++++++++++++++++++-----
         M newsboat/urls                       |       2 +-
         M pkg/archlinux                       |       6 +++++-
         D pkg/voidlinux.txt                   |     587 -------------------------------
         M senpai/senpai.scfg                  |       5 +++++
         A sfeed/sfeedrc                       |      30 ++++++++++++++++++++++++++++++
         M sway/config                         |      20 ++++++++++++--------
         M vimrc                               |       3 +++
         M waybar/config                       |      13 ++-----------
       
       22 files changed, 230 insertions(+), 687 deletions(-)
       ---
 (DIR) diff --git a/.gitignore b/.gitignore
       @@ -11,6 +11,11 @@ qutebrowser/autoconfig.yml
        qutebrowser/bookmarks
        qutebrowser/quickmarks
        
       +# sfeeds
       +sfeed/feeds
       +sfeed/mbox
       +sfeed/fdm.cache
       +
        # misc
        *.swp
        
 (DIR) diff --git a/bin/fdm_parse_feeds b/bin/fdm_parse_feeds
       @@ -0,0 +1,24 @@
       +#!/bin/sh
       +#
       +# reads text from stdin containing a url. The url is then parsed
       +# by rdrview, https://github.com/eafer/rdrview, and the url content
       +# returned appending to the end of the original text.
       +#
       +# I use this with sfeed and fdm to download feed contents without the
       +# need of a browser.
       +
       +data=$(cat)
       +
       +url=$(echo "$data" | grep -o -E 'https?://[^"]+|gemini://[^"]+')
       +uri_lower="$(printf "%s" "$url" | tr '[:upper:]' '[:lower:]')"
       +
       +case "$uri_lower" in
       +'gemini:'*)
       +        content=$(gemget -o - "$url")
       +        ;;
       +'http'*)
       +        content=$(rdrview -H "$url" | lynx -stdin --dump -force_html)
       +        ;;
       +esac
       +
       +printf "%s\n\n%s" "$data" "$content"
 (DIR) diff --git a/bin/link_handler.sh b/bin/link_handler.sh
       @@ -1,6 +1,6 @@
        #!/bin/sh
        
       -launcher="setsid -f foot"
       +launcher="setsid -f foot -d none"
        
        # apps
        player="mpv --really-quiet --no-terminal"
 (DIR) diff --git a/bin/offline.sh b/bin/offline.sh
       @@ -0,0 +1,10 @@
       +#!/bin/sh
       +
       +# youtube videos
       +yt_dl
       +
       +# podcasts
       +castget -p
       +
       +# rss feeds (http/gemini) download
       +# update_feeds
 (DIR) diff --git a/bin/old/fdm_parse_feeds b/bin/old/fdm_parse_feeds
       @@ -1,15 +0,0 @@
       -#!/bin/sh
       -#
       -# reads text from stdin containing a url. The url is then parsed
       -# by rdrview, https://github.com/eafer/rdrview, and the url content
       -# returned appending to the end of the original text.
       -#
       -# I use this with sfeed and fdm to download feed contents without the
       -# need of a browser.
       -
       -data=$(cat);
       -
       -url=$(echo "$data" | grep -o -E 'https?://[^"]+')
       -content=$(rdrview -H "$url" | lynx -stdin --dump)
       -
       -printf "%s\n\n%s" "$data" "$content"
 (DIR) diff --git a/bin/old/update_feeds b/bin/old/update_feeds
       @@ -1,20 +0,0 @@
       -#!/bin/sh
       -#
       -# wrapper for managing my feed process.
       -#   - update new feeds
       -#   - generate mbox of feeds
       -#   - parse feeds with fdm and push to Maildir format.
       -
       -sfeedroot="$HOME/.config/sfeed"
       -feedsdir="${sfeedroot}/feeds"
       -fdmconfig="$HOME/.config/fdm/config"
       -
       -if ! test -r "${fdmconfig}"; then
       -        echo "fdm configuration file \"${fdmconfig}\" does not exist or is not readable." >&2
       -        exit 1
       -fi
       -
       -/usr/local/bin/sfeed_update
       -
       -sfeed_mbox "${feedsdir}"/* > ~/.config/sfeed/mbox
       -fdm -f "${fdmconfig}" -afeeds fetch
 (DIR) diff --git a/bin/update_feeds b/bin/update_feeds
       @@ -0,0 +1,20 @@
       +#!/bin/sh
       +#
       +# wrapper for managing my feed process.
       +#   - update new feeds
       +#   - generate mbox of feeds
       +#   - parse feeds with fdm and push to Maildir format.
       +
       +sfeedroot="$HOME/.config/sfeed"
       +feedsdir="${sfeedroot}/feeds"
       +fdmconfig="$HOME/.config/fdm/config"
       +
       +if ! test -r "${fdmconfig}"; then
       +        echo "fdm configuration file \"${fdmconfig}\" does not exist or is not readable." >&2
       +        exit 1
       +fi
       +
       +/usr/local/bin/sfeed_update "${sfeedroot}/sfeedrc"
       +
       +sfeed_mbox "${feedsdir}"/* >~/.config/sfeed/mbox
       +fdm -f "${fdmconfig}" -afeeds fetch
 (DIR) diff --git a/bin/yt_dl.sh b/bin/yt_dl.sh
       @@ -5,17 +5,19 @@
        # etc.
        
        # user config
       -savepath="${HOME}/media/youtube"
       -cfgdir="${HOME}/.config/yt_dl"
       +savepath="/data/media/videos"
       +cfgdir="${HOME}/.cache/yt_dl"
        
        # youtube-dl related settings
       -yt="youtube-dl"
       +yt="yt-dlp"
        dlflags="-q --restrict-filenames --download-archive"
        idflags="--flat-playlist --get-id"
        
        main() {
       +
       +        mkdir -p "${cfgdir}"
       +
                $1 "mre_steve" "https://www.youtube.com/playlist?list=UU2I6Et1JkidnnbWgJFiMeHA"
       -        $1 "lukesmith" "https://www.youtube.com/playlist?list=UU2eYFnH61tmytImy1mTYvhA"
                $1 "harald_baldr" "https://www.youtube.com/playlist?list=UUKr68ZJ4vv6VloNdnS2hjhA"
                $1 "dale_philip" "https://www.youtube.com/playlist?list=UUKygRpISlqs5TufcT3JtRng"
                $1 "simon_wilson" "https://www.youtube.com/playlist?list=UUQCrKxBj5Id79syQEsY2Qxg"
       @@ -24,15 +26,23 @@ main() {
                $1 "brodie_robertson" "https://www.youtube.com/playlist?list=UUld68syR8Wi-GY_n4CaoJGA"
                $1 "pppeter" "https://www.youtube.com/playlist?list=UUnHEz9DZ6EAof1-DaQGD_Xw"
                $1 "bald_and_bankrupt" "https://www.youtube.com/playlist?list=UUxDZs_ltFFvn0FDHT6kmoXA"
       -        $1 "heel_vs_babyface" "https://www.youtube.com/playlist?list=UU_zmPqauxanOAGszXfdipEA"
                $1 "vagrant_holiday" "https://www.youtube.com/playlist?list=UUgNqlRGqHdxNRPR6ycynWhw"
                $1 "chris_ramsay" "https://www.youtube.com/playlist?list=UUrPUg54jUy1T_wII9jgdRbg"
                $1 "hatedone" "https://www.youtube.com/playlist?list=UUjr2bPAyPV7t35MvcgT3W8Q"
                $1 "c90adventures" "https://www.youtube.com/playlist?list=UUVqpNG1R72i21jh-nAxEk4A"
                $1 "abroad_in_japan" "https://www.youtube.com/playlist?list=UUHL9bfHTxCMi-7vfxQ-AYtg"
                $1 "mental_outlaw" "https://www.youtube.com/playlist?list=UU7YOGHUfC1Tb6E4pudI9STA"
       -        $1 "daily_bald" "https://www.youtube.com/playlist?list=UUB2GbNXOsy3VBksSD58NvhQ"
       -        $1 "dan_sheekoz" "https://www.youtube.com/playlist?list=UUZpOAIs1gWV76SEuzfGgG8w"
       +        $1 "rwxrob" "https://www.youtube.com/playlist?list=UUs2Kaw3Soa63cJq3H0VA7og"
       +        $1 "quin69" "https://www.youtube.com/playlist?list=UUpNBjjE8y8eFPhDU4YzYmKA"
       +        $1 "clawd00d" "https://www.youtube.com/playlist?list=UUdQ3VoDGjjl3NsfB3V0mPng"
       +        $1 "serpentza" "https://www.youtube.com/playlist?list=UUl7mAGnY4jh4Ps8rhhh8XZg"
       +        $1 "preach_gaming" "https://www.youtube.com/playlist?list=UUXJL3ST-O0J3nqzQyPJtpNg"
       +        $1 "indigo_traveller" "https://www.youtube.com/playlist?list=UUXulruMI7BHj3kGyosNa0jA"
       +        $1 "sidenote" "https://www.youtube.com/playlist?list=UURvWwMPr2SmSG7rXXzeEUdA"
       +        $1 "dave_snider" "https://www.youtube.com/playlist?list=UU7uO9V1Frl_wPd9d1qOm_RQ"
       +        $1 "bright_sun_films" "https://www.youtube.com/playlist?list=UU5k3Kc0avyDJ2nG9Kxm9JmQ"
       +        $1 "tuxfoo" "https://www.youtube.com/playlist?list=UUWpoyqSBIXtylRLFgP3PFfg"
       +        $1 "system_crafters" "https://www.youtube.com/playlist?list=UUAiiOTio8Yu69c3XnR7nQBQ"
        }
        
        get_video() {
       @@ -46,13 +56,13 @@ get_video() {
                flock -n 9 || exit 1
        
                echo "$1 downloading videos"
       -        $yt "${dlflags}" "${arcfile}" "$2" -o "${saveloc}/%(playlist_index)s_%(title)s.%(ext)s"
       +        $yt ${dlflags} "${arcfile}" "$2" -o "${saveloc}/%(playlist_index)s_%(title)s.%(ext)s"
                rm "${lockfile}"
        }
        
        get_ids() {
                echo "$1 downloading ids"
       -        $yt "${idflags}" "${2}" | sed 's/.*/youtube &/' >"${cfgdir}/${1}"
       +        $yt ${idflags} "${2}" | sed 's/.*/youtube &/' >"${cfgdir}/${1}"
        }
        
        case $1 in
 (DIR) diff --git a/bootstrap.sh b/bootstrap.sh
       @@ -2,9 +2,9 @@
        
        DOTFILES=$(pwd)
        
       -FILES='bashrc profile vimrc'
       +FILES='bashrc profile vimrc castgetrc'
        ROOT='bin'
       -CONFIG='dunst foot git mpd mutt ncmpcpp newsboat qutebrowser senpai sway waybar'
       +CONFIG='dunst fdm foot git mpd mutt ncmpcpp qutebrowser sfeed senpai sway waybar'
        AUR='paru'
        
        link() {
 (DIR) diff --git a/castgetrc b/castgetrc
       @@ -0,0 +1,16 @@
       +[*]
       +spool=/data/media/podcasts
       +
       +[2600]
       +url=https://www.2600.com/oth-broadband.xml
       +spool=/data/media/podcasts/offthehook
       +
       +[tilde-town]
       +url=https://tilde.town/~dozens/podcast/rss.xml
       +spool=/data/media/podcasts/tilde-town
       +filename=%(date)-%(title).mp3
       +
       +[ask-noah]
       +url=https://feeds.fireside.fm/asknoah/rss
       +spool=/data/media/podcasts/ask-noah
       +filename=%(date)-%(title).mp3
 (DIR) diff --git a/crontab b/crontab
       @@ -1,8 +1,7 @@
        PATH="$PATH:/usr/local/bin:/usr/bin"
        PASSWORD_STORE_DIR="/home/jay/.config/pass"
        
       -*/30 * * * * newsboat -x reload
       -*/10 * * * * mbsync -a -c /home/jay/.config/isync/mbsyncrc
       +*/10 * * * * fdm -f ~/.config/fdm/config fetch
        
        # backups
        0 11 * * * /home/jay/bin/backup.sh
 (DIR) diff --git a/fdm/config b/fdm/config
       @@ -0,0 +1,54 @@
       +
       +# commands
       +$imap_pass        = $(pass tech/mailbox.org | head -n1)
       +
       +# macros.
       +$path                = "%h/.mail"
       +$feedcache        = "%h/.mail/fdm.cache"
       +$feeddir        = "%h/.mail/feeds/"
       +$strurl                = "(http[s]?://.*)"
       +
       +# options
       +set unmatched-mail keep
       +set no-received
       +cache "${feedcache}"
       +
       +# accounts
       +account "feeds" disabled mbox "%[home]/.config/sfeed/mbox"
       +account "personal" imaps
       +        server "imap.mailbox.org"
       +        port 993
       +        user "me@jay.scot"
       +        pass "${imap_pass}"
       +
       +# mailing lists
       +action        "freebsd-announce" maildir "${path}/freebsd.announce"
       +action        "freebsd-current" maildir "${path}/freebsd.current"
       +action        "freebsd-questions" maildir "${path}/freebsd.questions"
       +
       +# feeds
       +action "feedtag" tag "msgid" value "%1"
       +action "feedget" rewrite "%h/.config/bin/fdm_parse_feeds"
       +action "feedsave" {
       +        maildir "${feeddir}%1"
       +        add-to-cache "${feedcache}" key "%[msgid]"
       +        keep
       +}
       +
       +# freebsd
       +match "^List-Id:.*freebsd-.*\\.freebsd\\.org" in headers {
       +        match "^List-Id:.*announce" in headers action "freebsd-announce"
       +        match "^List-Id:.*current" in headers action "freebsd-current"
       +        match "^List-Id:.*questions" in headers action "freebsd-questions"
       +}
       +
       +# sfeeds
       +match account "feeds" {
       +        match case "^Message-ID: (.*)" in headers action "feedtag" continue
       +        match matched and in-cache "${feedcache}" key "%[msgid]" action keep
       +        match $strurl action "feedget" continue
       +        match case "^X-Feedname: (.*)" in headers action "feedsave"
       +}
       +
       +# match all mail and deliver using the 'inbox' action.
       +match all action "inbox"
 (DIR) diff --git a/isync/mbsyncrc b/isync/mbsyncrc
       @@ -1,25 +0,0 @@
       -Create Both
       -Expunge Both
       -Remove Both
       -Sync All
       -SyncState *
       -
       -IMAPAccount jay
       -Host imap.mailbox.org
       -User me@jay.scot
       -PassCmd "pass tech/mailbox.org | head -n1"
       -SSLType IMAPS
       -CertificateFile /etc/ssl/certs/ca-certificates.crt
       -
       -IMAPStore jay-remote
       -Account jay
       -
       -MaildirStore jay-local
       -SubFolders Verbatim
       -Path ~/mail/jay/
       -Inbox ~/mail/jay/Inbox
       -
       -Channel jay
       -Far :jay-remote:
       -Near :jay-local:
       -Patterns *
 (DIR) diff --git a/mutt/muttrc b/mutt/muttrc
       @@ -38,7 +38,7 @@ unset wait_key
        unset allow_8bit
        
        # paths
       -set folder           = ~/mail
       +set folder           = ~/.mail
        set header_cache     = ~/.config/mutt/cache/headers
        set message_cachedir = ~/.config/mutt/cache/bodies
        set mailcap_path     = ~/.config/mutt/mailcap
       @@ -52,7 +52,22 @@ set record      = "+jay/Sent"
        # polling/sidebar
        mailboxes =jay/Inbox =jay/detecting =jay/house
        
       -# contact addresses
       +# feeds
       +mailboxes +feeds/archlinux
       +mailboxes +feeds/codemadness
       +mailboxes +feeds/drewdevault
       +mailboxes +feeds/gamingonlinux
       +mailboxes +feeds/linuxtorrents
       +mailboxes +feeds/newsboat
       +mailboxes +feeds/qutebrowser
       +mailboxes +feeds/rdrview
       +mailboxes +feeds/seeshyjo
       +mailboxes +feeds/tildenews
       +mailboxes +feeds/tomasino
       +mailboxes +feeds/tvtorrents
       +mailboxes +feeds/unixsheikh
       +mailboxes +feeds/uninformativ
       +
        set sort_alias = alias
        set reverse_alias = yes
        source $alias_file
       @@ -62,7 +77,7 @@ bind index gg first-entry
        bind index G last-entry
        bind index <space> collapse-thread
        macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
       -macro index o "<shell-escape>mbsync -a -c \"$XDG_CONFIG_HOME\"/isync/mbsyncrc<enter>" "run isync to sync all mail"
       +macro index o "<shell-escape>fdm -f ~/.config/fdm/config fetch<enter>" "run isync to sync all mail"
        macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
        macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
        
       @@ -74,9 +89,9 @@ set pager_context        = 1
        set index_format        = '%Z | %{%b %d %Y} | %-15.15F | %s'
        
        # sidebar
       -set mail_check_stats = yes
       +set mail_check_stats         = yes
        set sidebar_visible         = yes
       -set sidebar_width         = 15
       +set sidebar_width         = 20
        set sidebar_short_path         = yes
        set sidebar_folder_indent = yes
        set sidebar_format = "%B%* [%N]"
 (DIR) diff --git a/newsboat/urls b/newsboat/urls
       @@ -58,11 +58,11 @@ https://odysee.com/$/rss/@thelinuxcast:4 "!" "~Linux Cast" youtube
        https://odysee.com/$/rss/@SystemCrafters:e "!" "~System Crafters" youtube
        https://odysee.com/$/rss/@tuxfoo:e "!" "~Tuxfoo" youtube
        https://odysee.com/$/rss/@hexdsl:7 "!" "~HexDSL" youtube
       +https://odysee.com/$/rss/@brightsunfilms:5 "!" "~Bright Sun Films" youtube
        
        # YOUTUBE
        https://www.youtube.com/feeds/videos.xml?channel_id=UC2I6Et1JkidnnbWgJFiMeHA "!" youtube # Steve1989MREInfo
        https://www.youtube.com/feeds/videos.xml?channel_id=UC7uO9V1Frl_wPd9d1qOm_RQ "!" youtube # Dave Snider
       -https://www.youtube.com/feeds/videos.xml?channel_id=UC5k3Kc0avyDJ2nG9Kxm9JmQ "!" youtube # Bright Sun Films
        https://www.youtube.com/feeds/videos.xml?channel_id=UCKr68ZJ4vv6VloNdnS2hjhA "!" youtube # Harald Baldr
        https://www.youtube.com/feeds/videos.xml?channel_id=UCKygRpISlqs5TufcT3JtRng "!" youtube # Dale Philip
        https://www.youtube.com/feeds/videos.xml?channel_id=UCQCrKxBj5Id79syQEsY2Qxg "!" youtube # Simon Wilson
 (DIR) diff --git a/pkg/archlinux b/pkg/archlinux
       @@ -15,13 +15,16 @@ bluez-utils
        borg
        brave-bin
        campdown
       +castget
        checkbashisms
        chrony
       +clipman
        cronie
        dhcpcd
        dunst
        efibootmgr
        fakeroot
       +fdm
        feh
        firefox
        flex
       @@ -47,7 +50,6 @@ iwd
        jq
        jre-openjdk-headless
        keepass
       -kiln-git
        lf-bin
        lib32-alsa-lib
        lib32-alsa-plugins
       @@ -71,6 +73,7 @@ lib32-v4l-utils
        lib32-vulkan-icd-loader
        lib32-vulkan-radeon
        libcurl-gnutls
       +librewolf-bin
        libtool
        libva-mesa-driver
        libxft
       @@ -87,6 +90,7 @@ mpv
        mutt
        ncmpcpp
        newsboat
       +notmuch
        ntfs-3g
        ntp
        ocl-icd
 (DIR) diff --git a/pkg/voidlinux.txt b/pkg/voidlinux.txt
       @@ -1,587 +0,0 @@
       -NetworkManager
       -SDL2
       -acl
       -acpid
       -adwaita-icon-theme
       -alsa-lib
       -alsa-plugins-pulseaudio
       -alsa-utils
       -apulse
       -at-spi2-atk
       -at-spi2-core
       -atk
       -atkmm
       -attr
       -avahi-libs
       -base-files
       -base-system
       -bash
       -bash-completion
       -binutils
       -binutils-doc
       -bluez
       -btrfs-progs
       -bzip2
       -bzip2-devel
       -c-ares
       -ca-certificates
       -cairo
       -cairomm
       -celt
       -cmus
       -cmus-pulseaudio
       -coreutils
       -cpio
       -cronie
       -cryptsetup
       -curl
       -cyrus-sasl
       -cyrus-sasl-modules
       -dash
       -dbus
       -dbus-libs
       -dbus-x11
       -dejavu-fonts-ttf
       -desktop-file-utils
       -device-mapper
       -dhcpcd
       -diffutils
       -dnssec-anchors
       -dosfstools
       -double-conversion
       -dracut
       -e2fsprogs
       -e2fsprogs-libs
       -efibootmgr
       -encodings
       -ethtool
       -eudev
       -eudev-libudev
       -exfat-utils
       -expat
       -expat-devel
       -f2fs-tools
       -file
       -findutils
       -font-adobe-100dpi
       -font-adobe-75dpi
       -font-adobe-utopia-100dpi
       -font-adobe-utopia-75dpi
       -font-adobe-utopia-type1
       -font-alias
       -font-bh-100dpi
       -font-bh-75dpi
       -font-bh-lucidatypewriter-100dpi
       -font-bh-lucidatypewriter-75dpi
       -font-bh-ttf
       -font-bh-type1
       -font-bitstream-100dpi
       -font-bitstream-75dpi
       -font-bitstream-type1
       -font-cursor-misc
       -font-daewoo-misc
       -font-dec-misc
       -font-hack-ttf
       -font-ibm-type1
       -font-isas-misc
       -font-jis-misc
       -font-misc-misc
       -font-mutt-misc
       -font-util
       -fontconfig
       -fontconfig-devel
       -freetype
       -freetype-devel
       -fribidi
       -fuse
       -fuse-exfat
       -gawk
       -gcc
       -gdbm
       -gdk-pixbuf
       -git
       -glib
       -glibc
       -glibc-devel
       -glibc-locales
       -glibmm
       -glslang
       -gmp
       -gnupg2
       -gnutls
       -graphite
       -grep
       -grub
       -grub-i386-efi
       -grub-x86_64-efi
       -gstreamer1
       -gtk+3
       -gtk-update-icon-cache
       -gtkmm
       -gzip
       -hicolor-icon-theme
       -htop
       -hwids
       -iana-etc
       -iceauth
       -icu-libs
       -iproute2
       -iptables
       -iputils
       -ipw2100-firmware
       -ipw2200-firmware
       -iw
       -jansson
       -json-c
       -kbd
       -kbd-data
       -kernel-libc-headers
       -kmod
       -kpartx
       -lame
       -lcms2
       -less
       -libICE
       -libSM
       -libX11
       -libX11-devel
       -libXScrnSaver
       -libXau
       -libXau-devel
       -libXaw
       -libXcomposite
       -libXcursor
       -libXdamage
       -libXdmcp
       -libXdmcp-devel
       -libXext
       -libXext-devel
       -libXfixes
       -libXfont2
       -libXfontcache
       -libXft
       -libXft-devel
       -libXi
       -libXinerama
       -libXinerama-devel
       -libXmu
       -libXpm
       -libXrandr
       -libXrender
       -libXrender-devel
       -libXt
       -libXtst
       -libXv
       -libXvMC
       -libXxf86misc
       -libXxf86vm
       -libaio
       -libaom
       -libarchive
       -libargon2
       -libass
       -libassuan
       -libasyncns
       -libavcodec
       -libavdevice
       -libavfilter
       -libavformat
       -libavresample
       -libavutil
       -libblkid
       -libbluray
       -libbs2b
       -libcanberra
       -libcanberra-gtk3
       -libcap
       -libcap-ng
       -libcap-progs
       -libcddb
       -libcdio
       -libcdio-paranoia
       -libcolord
       -libcppunit
       -libcrypto46
       -libcryptsetup
       -libcups
       -libcurl
       -libdatrie
       -libdav1d4
       -libdb
       -libdiscid
       -libdmx
       -libdrm
       -libdvdcss
       -libdvdnav
       -libdvdread
       -libedit
       -libefivar
       -libelf
       -libelogind
       -libepoxy
       -libev
       -libevdev
       -libevent
       -libfdisk
       -libffi
       -libfftw
       -libflac
       -libfontenc
       -libfreeglut
       -libgbm
       -libgcc
       -libgcc-devel
       -libgcrypt
       -libglapi
       -libglvnd
       -libgomp
       -libgpg-error
       -libgpgme
       -libgsasl
       -libgudev
       -libgusb
       -libharfbuzz
       -libical
       -libidn
       -libidn2
       -libinput
       -libjack
       -libjbig2dec
       -libjpeg-turbo
       -libkmod
       -libksba
       -libldap
       -libldns
       -libllvm10
       -libltdl
       -liblz4
       -liblzma
       -libmad
       -libmagic
       -libmcpp
       -libmm-glib
       -libmnl
       -libmodplug
       -libmount
       -libndp
       -libnetfilter_conntrack
       -libnfnetlink
       -libnftnl
       -libnl3
       -libnm
       -libogg
       -libopenjpeg2
       -libpcap
       -libpciaccess
       -libpcre
       -libpcre2
       -libplacebo
       -libpng
       -libpng-devel
       -libpostproc
       -libpsl
       -libpulseaudio
       -libreadline8
       -libressl
       -librsvg
       -librtmp
       -librubberband
       -libsamplerate
       -libsasl
       -libsensors
       -libsigc++
       -libsmartcols
       -libsndfile
       -libsndio
       -libsodium
       -libsoxr
       -libspeex
       -libssh2
       -libssl48
       -libssp
       -libssp-devel
       -libstdc++
       -libstdc++-devel
       -libswresample
       -libswscale
       -libtasn1
       -libtdb
       -libthai
       -libtheora
       -libtls20
       -libtorrent
       -libunbound
       -libunistring
       -libunwind
       -libusb
       -libutempter
       -libuuid
       -libuuid-devel
       -libva
       -libvamp-plugin-sdk
       -libvdpau
       -libvidstab
       -libvorbis
       -libvpx6
       -libwacom
       -libwebp
       -libxatracker
       -libxbps
       -libxcb
       -libxcb-devel
       -libxkbcommon
       -libxkbcommon-x11
       -libxkbfile
       -libxml2
       -libxshmfence
       -libxslt
       -libxxHash
       -libyaml
       -libzstd
       -linux
       -linux-firmware-amd
       -linux-firmware-intel
       -linux-firmware-network
       -linux-firmware-nvidia
       -linux5.8
       -lua52
       -lua53
       -lvm2
       -lzo
       -make
       -man-pages
       -mcpp
       -mdadm
       -mdocml
       -mesa
       -mesa-dri
       -mime-types
       -minizip
       -mit-krb5-libs
       -mkfontscale
       -mobile-broadband-provider-info
       -mozjs60
       -mpv
       -msmtp
       -mtdev
       -mupdf
       -mutt
       -ncurses
       -ncurses-base
       -ncurses-libs
       -nettle
       -newsboat
       -newt
       -nghttp2
       -npth
       -nspr
       -nss
       -ntfs-3g
       -ntp
       -nvi
       -ocl-icd
       -oclock
       -offlineimap
       -oniguruma
       -openresolv
       -openssh
       -opus
       -orc
       -os-prober
       -p11-kit
       -pam
       -pam-base
       -pam-libs
       -pango
       -pangomm
       -pass
       -patch
       -pavucontrol
       -pciutils
       -perl
       -perl-Authen-SASL
       -perl-Convert-BinHex
       -perl-IO-Socket-SSL
       -perl-IO-stringy
       -perl-MIME-tools
       -perl-MailTools
       -perl-Net-SMTP-SSL
       -perl-Net-SSLeay
       -perl-TimeDate
       -perl-URI
       -pinentry
       -pixman
       -pkg-config
       -polkit
       -popt
       -procps-ng
       -pulseaudio
       -pulsemixer
       -python
       -python-rfc6555
       -python-selectors2
       -python-six
       -python3
       -python3-Jinja2
       -python3-MarkupSafe
       -python3-PyQt5
       -python3-PyQt5-opengl
       -python3-PyQt5-quick
       -python3-PyQt5-sql
       -python3-PyQt5-webchannel
       -python3-PyQt5-webengine
       -python3-Pygments
       -python3-attrs
       -python3-lxml
       -python3-pyPEG2
       -python3-setuptools
       -python3-sip-PyQt5
       -python3-yaml
       -qt5-core
       -qt5-dbus
       -qt5-declarative
       -qt5-gui
       -qt5-location
       -qt5-network
       -qt5-opengl
       -qt5-plugin-sqlite
       -qt5-printsupport
       -qt5-serialport
       -qt5-sql
       -qt5-test
       -qt5-webchannel
       -qt5-webengine
       -qt5-widgets
       -qt5-xml
       -qutebrowser
       -rclone
       -re2
       -rofi
       -rsync
       -rtkit
       -rtorrent
       -run-parts
       -runit
       -runit-void
       -sbc
       -sed
       -sessreg
       -setxkbmap
       -shaderc
       -shadow
       -shared-mime-info
       -slang
       -smproxy
       -snappy
       -speexdsp
       -sqlite
       -st-terminfo
       -startup-notification
       -stfl
       -sudo
       -tar
       -thin-provisioning-tools
       -tiff
       -topgrade
       -traceroute
       -transset
       -tree
       -tslib
       -tuxc
       -tzdata
       -usbutils
       -util-linux
       -util-linux-libs
       -v4l-utils
       -vim
       -vim-common
       -void-artwork
       -void-repo-multilib
       -vulkan-loader
       -wayland
       -webrtc-audio-processing
       -wget
       -which
       -wifi-firmware
       -wpa_supplicant
       -x11perf
       -x264
       -x265
       -xauth
       -xbacklight
       -xbps
       -xbps-triggers
       -xcalc
       -xcb-proto
       -xcb-util
       -xcb-util-image
       -xcb-util-keysyms
       -xcb-util-renderutil
       -xcb-util-wm
       -xcb-util-xrm
       -xclip
       -xclipboard
       -xclock
       -xcmsdb
       -xconsole
       -xcursorgen
       -xdpyinfo
       -xev
       -xeyes
       -xf86-input-evdev
       -xf86-input-libinput
       -xf86-input-synaptics
       -xf86-input-vmmouse
       -xf86-input-wacom
       -xf86-video-amdgpu
       -xf86-video-ati
       -xf86-video-dummy
       -xf86-video-fbdev
       -xf86-video-intel
       -xf86-video-nouveau
       -xf86-video-vesa
       -xf86-video-vmware
       -xfontsel
       -xfsprogs
       -xgamma
       -xhost
       -xinit
       -xinput
       -xkbcomp
       -xkbevd
       -xkbutils
       -xkeyboard-config
       -xkill
       -xload
       -xlogo
       -xlsatoms
       -xlsclients
       -xmessage
       -xmlrpc-c
       -xmodmap
       -xorg
       -xorg-apps
       -xorg-fonts
       -xorg-input-drivers
       -xorg-server
       -xorg-video-drivers
       -xorgproto
       -xpr
       -xprop
       -xrandr
       -xrdb
       -xrefresh
       -xset
       -xsetroot
       -xterm
       -xtrans
       -xvidcore
       -xvinfo
       -xwd
       -xwininfo
       -xwud
       -xxd
       -youtube-dl
       -zd1211-firmware
       -zlib
       -zlib-devel
 (DIR) diff --git a/senpai/senpai.scfg b/senpai/senpai.scfg
       @@ -2,3 +2,8 @@ address chat.sr.ht
        nickname jayscott
        password-cmd pass tech/chat.sr.ht
        typings false
       +
       +colors {
       +    prompt 2 # green
       +    unread 1 # red
       +}
 (DIR) diff --git a/sfeed/sfeedrc b/sfeed/sfeedrc
       @@ -0,0 +1,30 @@
       +sfeedpath="$HOME/.config/sfeed/feeds"
       +
       +fetch() {
       +        case "$2" in
       +        *.gmi | 'gemini:'*)
       +                gemget -o - "$2"
       +                ;;
       +        *)
       +                curl "$2" 2>/dev/null
       +                ;;
       +        esac
       +}
       +
       +feeds() {
       +        # feed <name> <feedurl> [basesiteurl] [encoding]
       +        feed 'tildenews' 'https://tilde.news/newest.rss'
       +        feed 'tomasino' 'gemini://tilde.team/~tomasino/atom.xml'
       +        feed 'tvtorrents' 'https://showrss.info/other/all.rss'
       +        feed 'linuxtorrents' 'http://feed.rutracker.cc/atom/f/1992.atom'
       +        feed 'gamingonlinux' 'https://www.gamingonlinux.com/article_rss.php'
       +        feed 'archlinux' 'https://archlinux.org/feeds/news/'
       +        feed 'qutebrowser' 'https://blog.qutebrowser.org/feeds/all.atom.xml'
       +        feed 'newsboat' 'https://newsboat.org/news.atom'
       +        feed 'rdrview' 'https://github.com/eafer/rdrview/commits/master.atom'
       +        feed 'codemadness' 'https://codemadness.org/atom.xml'
       +        feed 'drewdevault' 'https://drewdevault.com/blog/index.xml'
       +        feed 'seeshyjo' 'http://joeyh.name/blog/index.rss'
       +        feed 'unixsheikh' 'https://unixsheikh.com/feed.rss'
       +        feed 'uninformativ' 'https://www.uninformativ.de/blog/feeds/en.atom'
       +}
 (DIR) diff --git a/sway/config b/sway/config
       @@ -5,24 +5,26 @@ set $down j
        set $up k
        set $right l
        
       -# Apps
       -set $term foot
       +# apps
       +set $term foot -d none -T ""
        set $browser qutebrowser
        set $menu bemenu-run -p '> ' -b --tb '#000000' --tf '#ffffff' --hf '#444444'
        set $vol pamixer
        
       -# Autostart
       +# autostart
        exec wlsunset -l 57.6495 -L 3.318
        exec mpd
        exec dunst
       +exec wl-paste -t text --watch clipman store --no-persist
        
       -# Misc
       +# apperance
        default_border none
       -xwayland enable
       -font pango: Hack:style=Regular 10
       -gaps outer 2
       -gaps inner 5
       +default_floating_border none
       +workspace_layout tabbed
       +font pango: Hack:style=Regular 3
        
       +# misc
       +xwayland enable
        
        # Keyboard layout
        input * {
       @@ -45,6 +47,7 @@ bindsym $mod+d exec $vol -d 5
        bindsym $mod+c kill
        bindsym $mod+Shift+c reload
        bindsym $mod+Shift+q exec swaymsg exit
       +bindsym $mod+b exec killall -SIGUSR1 waybar
        
        # Move your focus around
        bindsym $mod+$left focus left
       @@ -71,5 +74,6 @@ bindsym $mod+Shift+4 move container to workspace number 4
        
        bindsym $mod+e layout toggle split
        bindsym $mod+m fullscreen
       +bindsym $mod+w layout tabbed
        
        include /etc/sway/config.d/*
 (DIR) diff --git a/vimrc b/vimrc
       @@ -114,3 +114,6 @@ augroup END
        map <leader>t :setl comments=fn\:\\|<CR>:setl formatoptions=tcorjq1l<CR>gqip
        
        au BufRead ~/.cache/mutt* set tw=72
       +
       +map <F7> :N<CR>
       +map <F8> :n<CR>
 (DIR) diff --git a/waybar/config b/waybar/config
       @@ -11,7 +11,6 @@
                        "custom/left-arrow-dark",
                        "custom/mail",
                        "custom/newsboat",
       -                "custom/vpn",
                        "pulseaudio",
                        "tray",
                        "clock"
       @@ -55,7 +54,7 @@
                "custom/mail": {
                            "format": "",
                        "return-type": "json",
       -                    "interval": 60,
       +                    "interval": 120,
                        "exec": "$HOME/.config/waybar/waybar_mail.sh",
                        "on-click": "foot mutt",
                },
       @@ -63,19 +62,11 @@
                "custom/newsboat": {
                            "format": "",
                        "return-type": "json",
       -                    "interval": 60,
       +                    "interval": 360,
                        "exec": "$HOME/.config/waybar/waybar_newsboat.sh",
                        "on-click": "foot newsboat",
                },
        
       -        "custom/vpn": {
       -                "format": "",
       -                "exec": "echo '{\"class\": \"connected\"}'",
       -                "exec-if": "test -d /proc/sys/net/ipv4/conf/wg-mullvad",
       -                "return-type": "json",
       -                "interval": 5
       -        },
       -
                "tray": {
                        "icon-size": 15
                }