Configure: $ ./configure.sh
Build & install: $ make install
Uninstall: $ make uninstall
Default install locations for binary and man pages are
/usr/local/{bin,man}
. To tweak, edit relevant variables in
Makefile
.
vitunes is developed on OpenBSD, and makes use of a few
OpenBSD-specific things such as
err(3)/warn(3)
,
fparseln(3)
,
strlcat(3)/strlcpy(3)
,
and
strtonum(3)
.
Most of these are picked-up during the build on Linux & Mac OS X
and will be added if needed. See the file config.h
.
Key | Scope | Action |
---|---|---|
<ENTER> | Library | Load currently selected playlist for viewing & switch focus to playlist window |
<ENTER> | Playlist | Begin playback of currently selected song |
<TAB> | Library | Switch focus to playlist window |
<TAB> | Playlist | Switch focus to library window |
s | Global | stop playback |
z | Global | pause/unpause playback |
^p | Global | same as above |
nb / nf | Global | Seek backwards/forwards n * 10 seconds in currently playing song |
n[ / n] | Global | same as above |
nB / nF | Global | Seek backwards/forwards n * 1 minute(s) in currently playing song |
n{ / n} | Global | same as above |
m | Playlist | Show/hide the filename & meta-info for the currently selected file. |
ntregister | Global | Execute the nth next command in the toggle list associated with
register register. See the man page documentation for the :toggle command. |
nTregister | Global | Execute the nth previous command in the toggle list associated with
register register. See the man page documentation for the :toggle command. |
/ | Global | Get query from user and search forwards in current window
for first playlist/file that matches the query. The structure of the query
specified is identical to that of the :filter command
below. See that for more info.
Note: In the Library window, only the playlist name is matched against. |
? | Global | Get query from user and search backwards in current window
for first playlist/file that matches the query. The structure of the query
specified is identical to that of the :filter command
below. See that for more info.
Note: In the Library window, only the playlist name is matched against. |
n | Global | Jump to the next row in the current window matching the
last provided query. If the last query made was done using
'/ ', then this search is forwards, otherwise
it is backwards.
|
N | Global | Jump to the next row in the current window matching the
last provided query. If the last query made was done using
'/ ', then this search is backwards,
otherwise it is forwards.
|
nyy | Playlist | Yank the next n rows into the copy buffer |
yG | Playlist | Yank the rest of the current playlist into the copy buffer |
*y* | Library |
Currently can't yank at all in library window.
Note: I don't really see a way of doing this in an intuitive way, so it will probably never be added. |
ndd | Playlist | Delete the next n rows and copy them into the copy buffer |
dG | Playlist | Delete the rest of the files in the current playlist after copying them into the copy buffer |
dd | Library | Delete the currently selected playlist
Note: Currently, no n can be applied to this in the library window. I simply do not want to be able to delete all of my playlists accidentally. |
p | Playlist | Paste the contents of the copy buffer after the currently selected row. |
P | Playlist | Paste the contents of the copy buffer before the currently selected row. |
p | Library | Paste the contents of the copy buffer at the end the currently selected playlist. |
P | Library | Paste the contents of the copy buffer at the beginning the currently selected playlist. |
u | Playlist | Un-do the previous cut/paste to the currently viewed playlist. |
^r | Playlist | Re-do the previously undone cut/paste to the currently viewed playlist. |
: | Global | Enter command mode. See vitunes(1) for list of all commands. |
!cmd | Global | Exit curses-mode and execute external command cmd |
^l | Global | Erase and redraw display |
nj | Global | Move current row down n * 1 lines |
n<KEY_DOWN> | Global | Move current row down n * 1 lines |
nk | Global | Move current row up n * 1 lines |
n<KEY_UP> | Global | Move current row up n * 1 lines |
n- | Global | Move current row up n * 1 lines |
nh | Global | Horizontally scroll left n * 1 columns |
n<KEY_LEFT> | Global | Horizontally scroll left n * 1 columns |
n<BACKSPACE> | Global | Horizontally scroll left n * 1 columns |
nl | Global | Horizontally scroll right n * 1 columns |
n<KEY_RIGHT> | Global | Horizontally scroll right n * 1 columns |
n' ' | Global | Horizontally scroll right n * 1 columns
Note: that's a space. |
$ | Global | Scroll all the way to the right |
'^' | Global | Scroll all the way to the left
Note: that's a carrot, not a "CONTROL+" |
0 | Global | Scroll all the way to the left |
n^e | Global | Scroll screen down n * 1 line(s) |
n^y | Global | Scroll screen up n * 1 line(s) |
n^u | Global | Scroll screen up n * 1 half page(s) |
n^d | Global | Scroll screen down n * 1 half page(s) |
n^b | Global | Scroll screen up n * 1 full page(s) |
n<PAGE_UP> | Global | Scroll screen up n * 1 full page(s) |
n^f | Global | Scroll screen down n * 1 full page(s) |
n<PAGE_DOWN> | Global | Scroll screen down n * 1 full page(s) |
G | Global | Goto last row |
nG | Global | Goto row n |
n% | Global | Goto the row n% through the total number of rows |
nH | Global | Goto the nth row from the top of current page |
M | Global | Goto the middle row of the current page |
nL | Global | Goto the nth row from the bottom of current page |
-c command
option, allowing vitunes to be
controlled remotely.
PREFIX
) appropriately.
LDFLAGS
variable in the Makefile to
include -lncursesw
rather than
-lncurses
.DEFAULT_PLAYER_PATH
variable in config.h
, or simply run vitunes
with the -m
flag and a proper path to
mplayer
.
mandoc vitunes.1 | less
”),
but did after installation (with
“man vitunes
”).
mplayer
(less skipping), undo/redo
support, :map
to create custom keybindings, more
color-able stuff, support for the comment-field of media files, and
cleaner syntax for all commands are all in the works.
vitunes -e help COMMAND
have been
made more complete. The man page is now the sole source of
documentation (although the complete list of keybindings will remain
here on the website, maintained, at least for now).
:reload db
command within vitunes).
~/.vitunes/
directory. If you have your
database/playlists stored elsewhere, just backup those.
-d
, -p
, and -f
flags
as described in the man page.
$ rm ~/.vitunes/vitunes.db $ vitunes -e init $ vitunes -e add /path/to/music/ ...
add_urls.sh
.
fork()'d
mplayer child will
fork()
an instance of itself whenever it plays an internet
radio stream (or similar) to handle the buffering. As such, vitunes needs
to wait for this ‘grandchild’ instance of mplayer to exit
before quitting.
$TERM
environment variable.
Specifically, it's set to something that does not support this particular
feature. See the documentation for your OS & terminal emulator (e.g.
xterm/rxvt/etc.) for what this should be set to. Note that
“xterm-color
” almost always has limitations (see
here
for more information).
$TERM
variable, when using
xterm
, should always be set to xterm-xfree86
.
After 4.7, just leave your $TERM
variable alone.
VT100
(or
similar) or if you have 1,000,000,000,000+ songs in your library,
then yes. Otherwise, no. This is mostly likely a misconfigured
$TERM
environment variable. See the previous FAQ entry.