Misc changes including changes to newsraft, senpai - dotfiles - These are my dotfiles. There are many like it, but these are mine.
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 6220e289ad8e38863e3a7d2c42576ff0d865bfe2
 (DIR) parent 3d5e193eadca503c9e6d6a5f03ae91f674e1985a
 (HTM) Author: Jay Scott <me@jay.scot>
       Date:   Sat, 25 Nov 2023 12:58:03 +0000
       
       Misc changes including changes to newsraft, senpai
       
       Diffstat:
         M .gitignore                          |       1 +
         M X11/xinitrc                         |       3 ++-
         M bin/dwmstatus.sh                    |       2 +-
         M bootstrap.sh                        |       2 +-
         M newsraft/config                     |       2 +-
         M newsraft/feeds                      |      31 +++++++++----------------------
         D senpai/hightlight                   |       6 ------
         D senpai/senpai.scfg                  |       9 ---------
         M suckless/dmenu/Makefile             |       2 +-
         M suckless/dmenu/config.h             |       6 +++---
         M suckless/dwm/config.h               |      10 ++++------
         A suckless/slstatus/Makefile          |      35 +++++++++++++++++++++++++++++++
         A suckless/slstatus/config.h          |      71 +++++++++++++++++++++++++++++++
       
       13 files changed, 129 insertions(+), 51 deletions(-)
       ---
 (DIR) diff --git a/.gitignore b/.gitignore
       @@ -27,3 +27,4 @@ mutt/aliases
        suckless/dwm/src
        suckless/dmenu/src
        suckless/herbe/src
       +suckless/slstatus/src
 (DIR) diff --git a/X11/xinitrc b/X11/xinitrc
       @@ -9,5 +9,6 @@ if [ -z "$XDG_RUNTIME_DIR" ]; then
                export XDG_RUNTIME_DIR=/tmp/runtime/jay
        fi
        
       -~/bin/dwmstatus.sh &
       +slstatus &
       +xrandr --output HDMI-A-0 --auto --output DisplayPort-0 --auto --right-of HDMI-A-0 &
        exec dwm
 (DIR) diff --git a/bin/dwmstatus.sh b/bin/dwmstatus.sh
       @@ -12,7 +12,7 @@ while true; do
                        vstatus="Off"
                fi
        
       -        xsetroot -name " VPN: $vstatus | VOL: $vol | $localtime | "
       +        xsetroot -name " VPN: $vstatus | VOL: $vol | $localtime |"
        
                sleep 10
        done
 (DIR) diff --git a/bootstrap.sh b/bootstrap.sh
       @@ -4,7 +4,7 @@ DOTFILES=$(pwd)
        
        FILES='bashrc profile vimrc'
        ROOT='bin'
       -CONFIG='alacritty git isync lynx mutt newsraft qutebrowser senpai X11'
       +CONFIG='alacritty git isync lynx mutt newsraft qutebrowser X11'
        
        link() {
                for f in $FILES; do ln -sfn "$DOTFILES/$f" "$HOME/.$f"; done
 (DIR) diff --git a/newsraft/config b/newsraft/config
       @@ -1,6 +1,6 @@
        # settings
        set open-in-browser-command /home/jay/bin/link_handler.sh "%l"
       -#set send-user-agent-header false
       +set send-user-agent-header false
        set clean-database-on-startup  true
        
        # key bindings
 (DIR) diff --git a/newsraft/feeds b/newsraft/feeds
       @@ -2,15 +2,7 @@
        https://tilde.news/newest.rss "Tilde News"
        https://lwn.net/headlines/rss "LWN"
        https://rss.slashdot.org/Slashdot/slashdotMain "Slashdot"
       -
       -@ MISC
       -https://old.reddit.com/r/dumbphones/.rss "R Dumbphones"
       -https://old.reddit.com/r/aberdeen/.rss "R Aberdeen"
       -https://old.reddit.com/r/preppers/.rss "R Preppers"
       -https://old.reddit.com/r/preppersuk/.rss "R Preppers UK"
       -https://old.reddit.com/r/ukbike/.rss "R UKBike"
       -https://old.reddit.com/r/nosurf/.rss "R NoSurf"
       -https://old.reddit.com/r/shortwave/.rss "R Shortwave"
       +https://archlinux.org/feeds/news/ "Arch Linux"
        
        @ OUTDOORS
        https://bushcraftuk.com/community/forums/-/index.rss
       @@ -22,11 +14,12 @@ http://feed.rutracker.cc/atom/f/1992.atom "RU Tracker"
        @ GAMING
        https://www.gamingonlinux.com/article_rss.php "Gaming On Linux"
        
       -@ APPS
       -https://blog.qutebrowser.org/feeds/all.atom.xml "Qutebrowser"
       -https://newsboat.org/news.atom "Newsboat"
       -https://git.sr.ht/~taiite/senpai/log/master/rss.xml "Senpai"
       -https://github.com/mlj/castget/commits.atom "Castget"
       +#@ GEMINI
       +-#"exec:gemget tilde.team/~tomasino/atom.xml --output -" "~tomasino@tilde.team"
       +-#"exec:gemget capsule.usebox.net/gemlog/atom.xml --output -" "~Juans Gemlog"
       +-#"exec:gemget foobucket.xyz/gemlog/atom.xml --output -" "~Foobucket Gemlog"
       +-#"exec:gemget midnight.pub/feed.xml --output -" "~Midnight Pub"
       +-#"exec:gemget gemini://warmedal.se/~antenna/atom.xml --output -" "~Antenna"
        
        @ PEOPLE
        https://codemadness.org/atom.xml "CodeMadness"
       @@ -35,13 +28,6 @@ http://joeyh.name/blog/index.rss "Joey H"
        https://unixsheikh.com/feed.rss "Unix Sheikh"
        https://www.uninformativ.de/blog/feeds/en.atom "Uninformativ"
        
       -# GEMINI
       -#"exec:gemget tilde.team/~tomasino/atom.xml --output -" "~tomasino@tilde.team"
       -#"exec:gemget capsule.usebox.net/gemlog/atom.xml --output -" "~Juans Gemlog"
       -#"exec:gemget foobucket.xyz/gemlog/atom.xml --output -" "~Foobucket Gemlog"
       -#"exec:gemget midnight.pub/feed.xml --output -" "~Midnight Pub"
       -#"exec:gemget gemini://warmedal.se/~antenna/atom.xml --output -" "~Antenna"
       -
        @ ODYSEE
        https://odysee.com/$/rss/@AlphaNerd:8 "Mental Outlaws"
        https://odysee.com/$/rss/@DistroTube:2 "DistroTube"
       @@ -57,7 +43,6 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC2I6Et1JkidnnbWgJFiMeHA # S
        https://www.youtube.com/feeds/videos.xml?channel_id=UC7uO9V1Frl_wPd9d1qOm_RQ # Dave Snider
        https://www.youtube.com/feeds/videos.xml?channel_id=UC5k3Kc0avyDJ2nG9Kxm9JmQ # Bright Sun Films
        https://www.youtube.com/feeds/videos.xml?channel_id=UCKr68ZJ4vv6VloNdnS2hjhA # Harald Baldr
       -#https://www.youtube.com/feeds/videos.xml?channel_id=UCKygRpISlqs5TufcT3JtRng # Dale Philip
        https://www.youtube.com/feeds/videos.xml?channel_id=UCQCrKxBj5Id79syQEsY2Qxg # Simon Wilson
        https://www.youtube.com/feeds/videos.xml?channel_id=UCRvWwMPr2SmSG7rXXzeEUdA # SideNote
        https://www.youtube.com/feeds/videos.xml?channel_id=UCVqpNG1R72i21jh-nAxEk4A # c90adventures
       @@ -97,3 +82,5 @@ https://www.youtube.com/feeds/videos.xml?channel_id=UC67TJP9i84zbCi2h1aaSO6Q # R
        https://www.youtube.com/feeds/videos.xml?channel_id=UChY9Cgv-iyPDvf1Bkyx20OQ # My Mate Vince
        https://www.youtube.com/feeds/videos.xml?channel_id=UC0ODgv3ciGtjIWuOF6CLM5g # Bonnie Lad Adventures
        https://www.youtube.com/feeds/videos.xml?channel_id=UCfpCQ89W9wjkHc8J_6eTbBg # The Outdoor Boys
       +https://www.youtube.com/feeds/videos.xml?channel_id=UCcjx6m03fZwtRBFn1Cf7kKQ # Zac Aslop
       +https://www.youtube.com/feeds/videos.xml?channel_id=UChCb0JDznvNHOuw9U5P99Gg # Daily Preach
 (DIR) diff --git a/senpai/hightlight b/senpai/hightlight
       @@ -1,6 +0,0 @@
       -#!/bin/sh
       -escape() {
       -        printf "%s" "$1" | sed 's#\\#\\\\#g'
       -}
       -
       -notify-send "[$BUFFER] $SENDER" "$(escape "$MESSAGE")"
 (DIR) diff --git a/senpai/senpai.scfg b/senpai/senpai.scfg
       @@ -1,9 +0,0 @@
       -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/suckless/dmenu/Makefile b/suckless/dmenu/Makefile
       @@ -11,7 +11,7 @@ clean: reset
                        git -C "${SRC_DIR}" clean -f; \
                fi
        
       -$(SRC_DIR): clone reset
       +$(SRC_DIR): clone reset patch
                @cp config.h $@
                $(MAKE) -C "${SRC_DIR}" -s
        
 (DIR) diff --git a/suckless/dmenu/config.h b/suckless/dmenu/config.h
       @@ -5,9 +5,9 @@ static const char *fonts[] = {
        static int centered = 1;
        static const char *prompt      = "run ยป";
        static const char *colors[SchemeLast][2] = {
       -        [SchemeNorm] = { "#ffd7af", "#222222" },
       -        [SchemeSel] = { "#eeeeee", "#008000" },
       -        [SchemeOut] = { "#000000", "#00ffff" },
       +        [SchemeNorm] = { "#ebdbb2", "#282828" },
       +        [SchemeSel] = { "#ebdbb2", "#98971a" },
       +        [SchemeOut] = { "#ebdbb2", "#8ec07c" },
        };
        
        static unsigned int lines = 0;
 (DIR) diff --git a/suckless/dwm/config.h b/suckless/dwm/config.h
       @@ -1,7 +1,7 @@
        /* See LICENSE file for copyright and license details. */
        
        /* appearance */
       -static const unsigned int borderpx  = 2;
       +static const unsigned int borderpx  = 3;
        static const unsigned int snap      = 32;
        static const int lockfullscreen            = 1;
        static const int showbar            = 1;
       @@ -15,7 +15,7 @@ static const int showsystray        = 1;
        static const char *fonts[]          = { "Hack:size=10" };
        static const char dmenufont[]       = "Hack:size=10";
        static const char col_gray1[]       = "#222222";
       -static const char col_gray2[]       = "#444444";
       +static const char col_gray2[]       = "#98971A";
        static const char col_gray3[]       = "#bbbbbb";
        static const char col_gray4[]       = "#eeeeee";
        static const char col_cyan[]        = "#222222";
       @@ -50,9 +50,9 @@ static const int nmaster     = 1;
        static const int resizehints = 0;
        
        static const Layout layouts[] = {
       -        { ">M>",      centeredfloatingmaster },
       -        { "[]=",      tile },
                { "TTT",      bstack },
       +        { "[]=",      tile },
       +        { ">M>",      centeredfloatingmaster },
                { "><>",      NULL },
        };
        
       @@ -70,7 +70,6 @@ static char dmenumon[2] = "0";
        static const char *dmenucmd[] = { "dmenu_run", NULL };
        static const char *termcmd[]  = { "alacritty", NULL };
        static const char *webcmd[]  = { "librewolf", NULL };
       -static const char *ytcmd[]  = { "ytfzf", "-D", NULL };
        static const char *gamecmd[]  = { "/home/jay/bin/game_select.sh", NULL };
        static const char *volup[] = { "pamixer", "-i", "5", NULL };
        static const char *voldown[] = { "pamixer", "-d", "5", NULL };
       @@ -81,7 +80,6 @@ static Key keys[] = {
                { MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
                { MODKEY,                       XK_space,  spawn,          {.v = termcmd } },
                { MODKEY,                       XK_f,      spawn,          {.v = webcmd } },
       -        { MODKEY,                       XK_y,      spawn,          {.v = ytcmd } },
                { MODKEY,                       XK_g,      spawn,          {.v = gamecmd } },
                { MODKEY,                       XK_u,      spawn,          {.v = volup } },
                { MODKEY,                       XK_d,      spawn,          {.v = voldown } },
 (DIR) diff --git a/suckless/slstatus/Makefile b/suckless/slstatus/Makefile
       @@ -0,0 +1,35 @@
       +REPOSITORY = git://git.suckless.org/slstatus
       +SRC_DIR = src
       +PINNED_REVISION = HEAD
       +
       +all: $(SRC_DIR)
       +
       +clean: reset
       +        @if test -d $(SRC_DIR); then \
       +                cd $(SRC_DIR); \
       +                $(MAKE) -s clean; \
       +                git clean -f; \
       +        fi
       +
       +$(SRC_DIR): clone reset
       +        @cp config.h $@
       +        @cd $@ && $(MAKE) -s
       +
       +reset:
       +        @if [ -n "$(strip $(PINNED_REVISION))" ]; then \
       +                cd $(SRC_DIR) && git reset --hard $(PINNED_REVISION); \
       +        fi
       +
       +clone:
       +        @if ! test -d $(SRC_DIR); then \
       +                git clone $(REPOSITORY) $(SRC_DIR); \
       +        fi
       +
       +update: clean
       +        @cd $(SRC_DIR) && git pull
       +
       +install:
       +        $(MAKE) -C "${SRC_DIR}" -s install
       +
       +
       +.PHONY: all clean update install reset clone
 (DIR) diff --git a/suckless/slstatus/config.h b/suckless/slstatus/config.h
       @@ -0,0 +1,71 @@
       +/* See LICENSE file for copyright and license details. */
       +
       +/* interval between updates (in ms) */
       +const unsigned int interval = 1000;
       +
       +/* text to show if no value can be retrieved */
       +static const char unknown_str[] = "n/a";
       +
       +/* maximum output string length */
       +#define MAXLEN 2048
       +
       +/*
       + * function            description                     argument (example)
       + *
       + * battery_perc        battery percentage              battery name (BAT0)
       + *                                                     NULL on OpenBSD/FreeBSD
       + * battery_remaining   battery remaining HH:MM         battery name (BAT0)
       + *                                                     NULL on OpenBSD/FreeBSD
       + * battery_state       battery charging state          battery name (BAT0)
       + *                                                     NULL on OpenBSD/FreeBSD
       + * cat                 read arbitrary file             path
       + * cpu_freq            cpu frequency in MHz            NULL
       + * cpu_perc            cpu usage in percent            NULL
       + * datetime            date and time                   format string (%F %T)
       + * disk_free           free disk space in GB           mountpoint path (/)
       + * disk_perc           disk usage in percent           mountpoint path (/)
       + * disk_total          total disk space in GB          mountpoint path (/)
       + * disk_used           used disk space in GB           mountpoint path (/)
       + * entropy             available entropy               NULL
       + * gid                 GID of current user             NULL
       + * hostname            hostname                        NULL
       + * ipv4                IPv4 address                    interface name (eth0)
       + * ipv6                IPv6 address                    interface name (eth0)
       + * kernel_release      `uname -r`                      NULL
       + * keyboard_indicators caps/num lock indicators        format string (c?n?)
       + *                                                     see keyboard_indicators.c
       + * keymap              layout (variant) of current     NULL
       + *                     keymap
       + * load_avg            load average                    NULL
       + * netspeed_rx         receive network speed           interface name (wlan0)
       + * netspeed_tx         transfer network speed          interface name (wlan0)
       + * num_files           number of files in a directory  path
       + *                                                     (/home/foo/Inbox/cur)
       + * ram_free            free memory in GB               NULL
       + * ram_perc            memory usage in percent         NULL
       + * ram_total           total memory size in GB         NULL
       + * ram_used            used memory in GB               NULL
       + * run_command         custom shell command            command (echo foo)
       + * swap_free           free swap in GB                 NULL
       + * swap_perc           swap usage in percent           NULL
       + * swap_total          total swap size in GB           NULL
       + * swap_used           used swap in GB                 NULL
       + * temp                temperature in degree celsius   sensor file
       + *                                                     (/sys/class/thermal/...)
       + *                                                     NULL on OpenBSD
       + *                                                     thermal zone on FreeBSD
       + *                                                     (tz0, tz1, etc.)
       + * uid                 UID of current user             NULL
       + * uptime              system uptime                   NULL
       + * username            username of current user        NULL
       + * vol_perc            OSS/ALSA volume in percent      mixer file (/dev/mixer)
       + *                                                     NULL on OpenBSD/FreeBSD
       + * wifi_essid          WiFi ESSID                      interface name (wlan0)
       + * wifi_perc           WiFi signal in percent          interface name (wlan0)
       + */
       +static const struct arg args[] = {
       +        /* function format          argument */
       +        { run_command, "VPN:%4s | ", "if [ `mullvad status|grep Disconnected` ]; then echo 'Off';else echo 'On'; fi" },
       +        { run_command, "VOL:%4s | ", "pactl list sinks | tr ' ' '\n' | grep -m1 '%'" },
       +        { datetime, "%s",            "%T" },
       +};