risingthumb.xyz | Agora Zines | Webring | achtung | github | itch | site map

risingthumb.xyz databases considered harmful

My Music Listening Setup #

Desktop PC #

My music listening setup on my PC is using cmus, in combination with a few scripts so that it can talk to my window manager, allowing me some global keybinds for looping songs, forwarding to the next song, or going back to the previous song and pausing and playing music.

MusicListenignSetup.png

Mobile and Syncing library #

This music is then synchronised over to my phone using syncthing. With syncthing, I can then listen to my music using an app called foobar2000. I use foobar2000 in combination with a skin named darkx that allows me to easily set it up to loop one song.

Metadata #

As both of these music players rely on metadata for setting them up, I used to use stag, however I have recently written my own metadata tool named ctag that is a little more helpful and less... prone to crashing.

Assorted script tidbits for using cmus #

If you're a layman, this is probably where things stop being as interesting to you.

As cmus has to be kept open and alive in a terminal session somewhere, I use tmux for this purpose. Once it has been opened, cmus-remote can then talk to it, which is what I use to talk to cmus in these scripts.

st -e tmux_start cmus

And the equivalent tmux_start script

#!/bin/sh
case "$1" in
	"cmus")
		tmux has-session -t cmus 2>gt;/dev/null
		if [ $? != 0 ]; then
			tmux new-session -d -s cmus \; \
				send-keys 'cmus --listen 0.0.0.0' C-m\;
		fi
		tmux attach-session -t cmus

	;;
# Other cases have been snipped
esac

A DWM Blocks status bar script for displaying currently playing music information:

#!/bin/sh

extraicon=""

if [[ "$(cmus-remote --server 0.0.0.0 -Q | grep "set repeat_current")" == "set repeat_current true" ]]; then
	extraicon=" "
fi
icon=""
if [[ "$(cmus-remote --server 0.0.0.0 -Q | grep "status")" == "status playing" ]]; then
	icon="  "
elif [[ "$(cmus-remote --server 0.0.0.0 -Q | grep "status")" == "status paused" ]]; then
	icon="  "
fi
artist=""
artist=`cmus-remote --server 0.0.0.0 -Q |
		grep --text '^tag artist' |
		sed '/^tag artistsort/d' |
		awk '{gsub("tag artist ", "");print}'`
title="";
title=`cmus-remote --server 0.0.0.0 -Q  |
		grep --text '^tag title' |
		sed -e 's/tag title //' |
		awk '{gsub("tag title ", "");print}'`
split=""
if [[ "$artist" != "" && "$title" != "" ]]; then
	split=" - ";
fi
echo "$icon$extraicon$artist$split$title";

case $BLOCK_BUTTON in
	1)pausemusic; pkill -RTMIN+11 dwmblocks;;
	2)notify-send " Music module" "\- Shows music ,  if muted.
- Left Click to pause/unpause.
- Right Click to open music list.
- Scroll to change track.";;
	3)$TERMINAL -e tmux_start cmus;;
        4)cmus-remote --server 0.0.0.0 -n; pkill -RTMIN+11 dwmblocks;;
        5)cmus-remote --server 0.0.0.0 -r; pkill -RTMIN+11 dwmblocks;;
esac;

Some minor snippets from my dwm config.h file... #

For going backwards 10s.

cmus-remote --server 0.0.0.0 -k -10;

For going forwards 10s

cmus-remote --server 0.0.0.0 -k +10;

For going back a song

cmus-remote --server 0.0.0.0 -r

For going to the start of a song

cmus-remote --server 0.0.0.0 -k 0

For going to the next song

cmus-remote --server 0.0.0.0 -n

For toggling whether it should be repeating the current song

cmus-remote --server 0.0.0.0 -C 'toggle repeat_current'

Published on 2026/02/26

Articles from blogs I follow around the net

Movies: Capricorn One (1978)

When the first manned flight to Mars is deemed unsafe and scrubbed on the launch pad, anxious authorities must scramble to save face and retain their funding - and so an unthinkable plot to fake the mission is hatched. Great sci-fi movie of the 70s, it’s p…

via andrei.xyz April 7, 2026

A Sonnet for Easter Dawn

The Lord is Risen! He is risen indeed Alleluia! Heres is an extra ‘fifteenth’ sonnet for Easter Morning, which I dedicate to my friend Mary who asked me to write it, and to the memory of her husband Gavin. May … Continue reading →

via Malcolm Guite April 5, 2026

HARD LIGHT (20 PAGES), PAGE 6

HARD LIGHT (20 PAGES) PAGE 6. FEAR NOT, WE ARE QUICKLY APPROACHING THE CONCLUSION OF OUR PARADE OF TELEVISIONS. THIS PAGE COMPRISES FOUR TOTAL PANELS ARRANGED IN THREE EQUALLY-SIZED TIERS. THE FIRST TIER CONTAINS TWO TELEVISION SETS, WHILE THE FINAL TWO T…

via I'm not really Stanley Lieber. April 4, 2026

Generated by openring