kuechenstation is a text mode client for the XMMS2 daemon. Unlike other text mode clients it’s not command line based, but features all you would expect from a graphical client:
-
scrolling title
-
playlist editor
-
medialib browser
For a changelog see debian/changelog in the source distribution.
1. Usage
kuechenstation splits the terminal screen in 3 regions:
+-----------------+ | scrolling title | +-----------------+ | | | multi window | | | +-----------------+ | status line | +-----------------+
Only the multi window changes its behaviour/appearance (thus the name multi window). Let’s call them modes: Several modes are available at the moment (see below). You can change to a mode using the Fn-keys:
-
Status Mode (F1)
-
Playlist Mode (F2)
-
Medialib Mode (F3)
-
Stream Mode (F4)
-
Podcast Mode (F5) (disabled by default)
-
Playlist List Mode (F6) (disabled by default)
-
Logging Mode (F10)
-
Track Info Mode (this is entered in a different way: press i when the cursor is over a track in playlist or medialib mode)
In all modes the following key bindings are active unless stated otherwise below under modes.
key binding | action |
---|---|
p,space,. |
toggle play pause |
+,- or */"/" |
volume up/down |
Right/Left-arrow |
seek +/- 5secs |
Shift + Right/Left-arrow |
seek +/- 1min |
n/b, >/< |
jump to next/prev song |
q, Q |
quit kuechenstation |
2. Configuration
kuechenstation’s configuration file is stored in: $HOME/.config/xmms2/clients/kuechenstation.conf.
## default configuration for kuechenstation [general] ## the file to log to # logfile = /dev/null ## the encoding used for curses output ## see http://kuechenstation.sourceforge.net/README.html for more information #encoding = UTF-8 ## the default colors (foreground background) ## can be overwritten (see below) colors = white black ## the default attribute to indicate the cursor in list or tree windows cursor attr = reverse [scrollingtitle] ## the path to the figlet binary figlet path = /usr/bin/figlet ## the figlet font used ## use figlist(6) to list available fonts figlet font = standard attr = reverse # colors = red blue [statusline] attr = reverse ## multi windows [log] ## the key to switch to this multi window ## can be a string starting with 'KEY_' to define a curses key constant or a ## single character access key = KEY_F10 [statusinfo] ## use this to define the multi window that is shown on startup first = true access key = KEY_F1 # colors = red blue [playlist] access key = KEY_F2 ## playlist colors and attributes # colors = yellow blue # cursor attr = underline playing attr = bold [trackinfo] # colors = black white [medialib] access key = KEY_F3 # cursor attr = blink [streams] access key = KEY_F4 #[podcasts] # access key = KEY_F5 ## the urls of the podcasts to listen to, separated by commas (',') # channels = http://www.ndr.de/podcastlink/satirischer_wochenrueckblick.xml,http://www.ndr.de/podcastlink/ndrinfo_streitkraefteundstrategien.xml #[playlistslist] #access key = KEY_F6
The configuration is organised in one general section, which contains values for the encoding to be used to display multi-byte strings, a section for status line and scrolling title and a section for each multi window mode you want to use.
Note
|
In previous versions (<= 0.3-3) the encoding for output of non-ASCII characters had to be specified. In newer versions the encoding will be taken from the locale information if a configuration value is not available. So the encoding option is optional and somewhat deprecated/unnecessary. |
option name | description |
---|---|
general section |
|
colors |
A space-separated tuple of the default foreground and background colors. Available colors are the default curses colors (see below). |
cursor attr |
The default curses text attribute used for the cursor position in multi window modes. |
scrollingtitle section |
|
figlet path |
The path to the figlet binary. Detected by which(1) during the first kuechenstation run. |
figlet font |
The figlet font used for the scrolling title. Use figlist(6) for a list of the available fonts. |
multi window sections |
|
access key |
The key which moves the focus to this multi window mode. |
playlist section |
|
playing attr |
The curses attribute to mark the song currently played back. |
podcast section |
|
channels |
Comma separated list with podcast urls. |
option name | description |
---|---|
general section |
|
encoding |
The encoding used to display all strings (e.g. Latin-1, UTF-8). |
logfile |
A path to a log file |
xmms path |
The path to the xmms socket |
multi window sections |
|
first |
Set this to true for the multi window kuechenstation should start with. |
colors |
The colors for this multi window. |
cursor attr |
The default curses text attribute used for the cursor position in this multi window. |
-
black
-
white
-
blue
-
red
-
green
-
yellow
-
cyan
-
magenta
-
transparent
-
reverse
-
bold
-
underline
-
blink
3. Modes
Available modes are:
-
Status Mode (F1)
-
Playlist Mode (F2)
-
Medialib Mode (F3)
-
Stream Mode (F4)
-
Podcast Mode (F5) (disabled by default)
-
Playlist List Mode (F6) (disabled by default)
-
Logging Mode (F10)
-
Track Info Mode (this is entered in a different way: press i when the cursor is over a track in playlist or medialib mode)
A table with the mode specific key bindings is at the end of each section.
3.1. Status Mode
In this mode the previous track and the next two tracks are displayed in addition to more verbose information for the current track.
key binding | action |
---|---|
r |
refresh displayed data |
g |
increase rating of current track |
b |
decrease rating of current track |
3.2. Playlist Mode
This mode is intended to control playback and to view and edit the current playlist. The key bindings are inspired by mplayer, vim and readline/emacs. It shows the current playlist. The currently played song is indicated by bold letters and the cursor positon by inverted colors (e.g. black on white). To (re-)move more than one track you can mark them by pressing space.
key binding | action |
---|---|
enter |
jump to track and start playing |
j/k, Up-/Down-arrows |
move cursor up/down |
PageUp/PageDown |
move cursor up/down on page |
End |
move cursor to the end of the list |
Home |
move cursor to the track currently played |
i |
open Track Info Mode for track under cursor |
space |
(un-)mark item |
J/K |
move item(s) up/down |
x |
remove item(s) |
X, Ctrl-U |
remove all items from the cursor to the top including the item under the cursor |
D, Ctrl-K |
remove all items from the cursor to the bottom including the item under the cursor |
y |
yank the currently selected tracks to the copy buffer |
p |
paste the contents of the copy buffer after the cursor |
P |
paste the contents of the copy buffer before the cursor |
If no playlist items are marked the move/remove/yank is performed on the track under the cursor.
3.3. Medialib Mode
In this mode XMMS2’s medialib can be searched via collections. Tracks/albums can be appended to the current playlist and items can be removed from the medialib. For a table of the available key bindings have a look at the end of this section.
In this mode the first line of the multi window is an input field for the medialib query. When the query line is active the ">>" is displayed in inverted colors and the cursor is shown and you can input your query. At the moment no complex line editing functions are implemented: The cursor is always at the end of the line, backspace will delete the last character. Enter starts the query.
The query syntax is simple:
field:value [; field2:value2 ...]
Where field is a collection field (e.g. "artist" or "title" or "url") or "list"/"coll" to search for tracks in the specified play lists/collections. When using ":" as field-value separator the medialib is queried for all tracks having the given value string somewhere. Using "=" as separator queries for exact matches (but still case insensitive). If multiple ";"- separated field-value pairs are given, the search conditions are boolean anded.
The field string can be abbreviated:
a |
⇒ |
artist |
al |
⇒ |
album |
t |
⇒ |
title |
tr |
⇒ |
tracknr |
g |
⇒ |
genre |
u |
⇒ |
url |
i |
⇒ |
id |
l |
⇒ |
list |
c |
⇒ |
coll |
query string | description |
---|---|
id: |
search for all items in the media lib |
a:adio |
search for all items with "adio" in the artist’s name (e.g. Radiohead) |
a:adio ; al:ain |
search for all items with "adio" in the artist’s name and "ain" in the album’s title (e.g. Radiohead’s In Rainbows) |
If a query was successful, the results will be shown sorted in a tree. The first nodes are the artists' names (spaces are stripped and the name is lower case to take care of badly tagged files). The second is the album name:
+-> artist 1 | | | +-> album 1 | | | | | +-> track 1 | | +-> track 2 | | ... | | | +-> album 2 | ... | +-> artist 2 ...
The tree can be navigated by the cursor keys and by h,j),k,l as known from Vim. To switch the focus between input line and the tree view use Tab. To add tracks or whole albums to the end of your current play list use a.
key binding | action in input line | action in tree view |
---|---|---|
enter |
start a query |
open/close tree node |
cursor arrows |
— |
navigate tree |
h,j,k,l |
||
backspace |
delete last character |
go to parent node/close current node |
i |
— |
open Track Info Mode for track under cursor |
x |
— |
remove item (track or album) from media library |
a |
— |
add current item (track or album) to play list |
A |
— |
clear the playlist and add current item (track or album) to play list |
y |
— |
yank the track/album to the copy buffer |
Home,End |
— |
go to the first/last node of the tree |
3.4. Stream Mode
This shows all medialib entries with urls not starting with file:// or smb://. This is useful for web radios where the artist and title tags in the medialib keep changing. Use enter or a to add the current entry to the play list or y to yank a stream to the copy buffer.
key binding | action |
---|---|
Enter, a |
add to play list |
y |
yank to the copy buffer |
i |
open Track Info Mode |
3.5. Podcast Mode
This mode allows you to listen to podcasts with XMMS2. You’ll need the feedparser Python module for this. To add a podcast URL it must be added in the configuration file (by default under $HOME/.config/xmms2/clients/kuechenstation.conf). To add multiple URLs seperate them by ,.
[podcasts] channels = http://first.podcast/feed.xml,http://second.podcast/feed2.xml
The podcasts are fetched when the mode is entered the first time. The entries are displayed in a tree. a adds the current entry’s URL to the play list.
key binding | action |
---|---|
enter |
open/close tree node |
cursor arrows, h,j,k,l |
navigate tree |
backspace |
go to parent node/close current node |
r |
refresh the podcasts |
a |
add current item to play list |
A |
add all items of current podcast to play list |
t |
add items frome the current podcast that were published at the same day as the current item. If a channel node is marked the newest items of this channel are added. (Mnemonic: today) |
3.6. Playlist List Mode
Lists all playlist saved in xmms2.
key binding | action |
---|---|
j/k, Up-/Down-arrows |
move cursor up/down |
a, Enter |
replace active playlist with the one under the cursor |
3.7. Logging Mode
Displays a list with the last log messages. No special key bindings are available.
3.8. Track Info Mode
This mode simply shows several informations for a media lib item. Any key exits and you’ll be returned to the previous view.