shithub: zuke


clone: git:// gits://
push: hjgit://
patches to: sigrid on 9gridchan, or

Last commit

07bfc253 – Sigrid – 2021-05-17T14:39:15-04:00
a history? are you kidding me...


# zuke



A music player for Plan 9.


With some stuff one expects from a music player:

 * gapless playback
 * seeking
 * playlists
 * good metadata support
 * basic livestreams (ie IceCast) support

## 2020/03/04

The module music decoder of choice is now [audio/moddec, a port of
DUMB](`).  Please install it if you want to
continue playing those mods.

## 2020/12/22

New playlist format.  Zuke still will load old format and you can
convert to the new one like so:

	audio/zuke -G <old.plist >new.plist

## Text-based alternative

Behold, a music player in rc, with keyboard control, plumbing, and a
playlist that can be live-edited(!), by umbraticus:

## Installing

Install [libtags]( first.

Clone the repo, do `mk install`.

Zuke comes with two programs.  One is `audio/zuke`, which is the player
itself.  The other one is `audio/mkplist`, it's used to make playlists
that are then fed to `audio/zuke`'s stdin:

	audio/mkplist /n/somefs/dir /n/otherfs/file.mp3 > $home/music.plist
	audio/zuke < $home/music.plist

Of course, one can combine these steps into one:

	audio/mkplist /n/music | audio/zuke

## Plumbing

Plumbing music files and playlists is supported via "audio" port.  New
files can't be added to the current playlist just yet.

	type	is	text
	data	matches	'.+\.(mp3|MP3|ogg|OGG|flac|FLAC|wav|WAV|au|AU|mid|MID|mus|MUS|m3u|M3U|pls|PLS|it|IT|plist)$'
	arg	isfile	$0
	plumb	to	audio
	plumb	start	window -scroll play $file

To disable plumbing, execute before launching zuke:

	bind /dev/null /mnt/plumb/audio

To remote control zuke, you can emulate pressing keys through plumber

	plumb -d audio 'key >' # will skip to the next song

## Formats

The ones supported with stock 9front: mp3, ogg/vorbis, flac, wav.

To play opus, visit [this](

To play music mods, install [audio/moddec](

To play m4a, install [AAC decoder]( and

## Theme

To change the default theme install
[picker]( and run it using right mouse
button menu in zuke.  `snarf all` and save it to a file, then point to
that file using an environment variable (you can put it into


## Columns to display

Zuke has an optional argument `-c` that specifies which columns to
display, the default is `-c AatD`.

	A  artist
	a  album
	b  file basename
	t  title
	D  duration
	d  date
	T  track number
	p  full file path

With `-s` zuke will start in shuffled mode.

## Hot keys

	-    volume down
	+ =  volume up

	left/right                  seek backwards/forward (10 seconds step)
	, .                         seek backwards/forward (one minute step)
	up down pgup pgdn home end  move within the playlist
	o i                         move to the currently playing track
	enter                       play the selected track

	> b         skip next
	< z         skip prev
	v           stop
	p c space   pause/resume
	s           toggle shuffle
	q/del       quit

	/  search forward
	?  search backwards
	n  repeat search forward
	N  repeat search backwards

## Mouse

	left   - select a track
	right  - menu
	middle - play the track under the pointer