Compare commits
No commits in common. "0335443b2241e6e3db8d3ac09df9018d7a96414f" and "f4999a63a54d726a4c4e0bca45b740b310c9d941" have entirely different histories.
0335443b22
...
f4999a63a5
@ -1,5 +1,5 @@
|
||||
cmake_minimum_required (VERSION 3.0)
|
||||
project (nncmpp VERSION 1.0.0 LANGUAGES C)
|
||||
project (nncmpp VERSION 0.9.0 LANGUAGES C)
|
||||
|
||||
# Moar warnings
|
||||
if ("${CMAKE_C_COMPILER_ID}" MATCHES "GNU" OR CMAKE_COMPILER_IS_GNUCC)
|
||||
@ -68,23 +68,20 @@ add_threads (${PROJECT_NAME})
|
||||
include (GNUInstallDirs)
|
||||
install (TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install (FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
install (DIRECTORY contrib DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME})
|
||||
|
||||
# Generate documentation from text markup
|
||||
find_program (ASCIIDOCTOR_EXECUTABLE asciidoctor)
|
||||
if (NOT ASCIIDOCTOR_EXECUTABLE)
|
||||
message (FATAL_ERROR "asciidoctor not found")
|
||||
# Generate documentation from program help
|
||||
find_program (HELP2MAN_EXECUTABLE help2man)
|
||||
if (NOT HELP2MAN_EXECUTABLE)
|
||||
message (FATAL_ERROR "help2man not found")
|
||||
endif ()
|
||||
|
||||
foreach (page ${PROJECT_NAME})
|
||||
set (page_output "${PROJECT_BINARY_DIR}/${page}.1")
|
||||
list (APPEND project_MAN_PAGES "${page_output}")
|
||||
add_custom_command (OUTPUT ${page_output}
|
||||
COMMAND ${ASCIIDOCTOR_EXECUTABLE} -b manpage
|
||||
-a release-version=${PROJECT_VERSION}
|
||||
"${PROJECT_SOURCE_DIR}/${page}.adoc"
|
||||
-o "${page_output}"
|
||||
DEPENDS ${page}.adoc
|
||||
COMMAND ${HELP2MAN_EXECUTABLE} -N
|
||||
"${PROJECT_BINARY_DIR}/${page}" -o ${page_output}
|
||||
DEPENDS ${page}
|
||||
COMMENT "Generating man page for ${page}" VERBATIM)
|
||||
endforeach ()
|
||||
|
||||
|
22
NEWS
22
NEWS
@ -1,25 +1,3 @@
|
||||
1.0.0 (2020-11-05)
|
||||
|
||||
* Coming with a real manual page instead of a help2man-generated stub
|
||||
|
||||
* Added a mode to poll MPD for the elapsed time, enabled by default,
|
||||
fixing two cases of improper tracking
|
||||
|
||||
* Started showing song duration in the library
|
||||
|
||||
* Added C-PgUp/PgDown and C-Left/Right bindings to iterate tabs
|
||||
|
||||
* Added VIM-like C-y and C-e bindings for scrolling
|
||||
|
||||
* Added Windows Explorer-like M-Up binding to go up a directory
|
||||
|
||||
* Worked around a cURL bug crashing the application
|
||||
|
||||
* Fixed handling of direct SHOUTcast streams
|
||||
|
||||
* Miscellaneous little fixes
|
||||
|
||||
|
||||
0.9.0 (2018-11-02)
|
||||
|
||||
* Initial release
|
||||
|
42
README.adoc
42
README.adoc
@ -22,14 +22,9 @@ Packages
|
||||
Regular releases are sporadic. git master should be stable enough. You can get
|
||||
a package with the latest development version from Archlinux's AUR.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
See the link:nncmpp.adoc[man page] for information about usage.
|
||||
The rest of this README will concern itself with externalities.
|
||||
|
||||
Building
|
||||
--------
|
||||
Build dependencies: CMake, pkg-config, asciidoctor, liberty (included),
|
||||
Building and Running
|
||||
--------------------
|
||||
Build dependencies: CMake, pkg-config, help2man, liberty (included),
|
||||
termo (included) +
|
||||
Runtime dependencies: ncursesw, libunistring, cURL
|
||||
|
||||
@ -48,6 +43,37 @@ Or you can try telling CMake to make a package for you. For Debian it is:
|
||||
$ cpack -G DEB
|
||||
# dpkg -i nncmpp-*.deb
|
||||
|
||||
Having the program installed, create a configuration file and run it.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
Create _~/.config/nncmpp/nncmpp.conf_ with contents like the following:
|
||||
|
||||
....
|
||||
settings = {
|
||||
address = "localhost:6600"
|
||||
password = "<your password>"
|
||||
root = "~/Music"
|
||||
}
|
||||
colors = {
|
||||
normal = ""
|
||||
highlight = "bold"
|
||||
elapsed = "reverse"
|
||||
remains = "ul"
|
||||
tab_bar = "reverse"
|
||||
tab_active = "ul"
|
||||
even = ""
|
||||
odd = ""
|
||||
selection = "reverse"
|
||||
multiselect = "-1 6"
|
||||
scrollbar = ""
|
||||
}
|
||||
streams = {
|
||||
"dnbradio.com" = "http://www.dnbradio.com/hi.m3u"
|
||||
"BassDrive.com" = "http://bassdrive.com/v2/streams/BassDrive.pls"
|
||||
}
|
||||
....
|
||||
|
||||
Terminal caveats
|
||||
----------------
|
||||
This application aspires to be as close to a GUI as possible. It expects you
|
||||
|
87
nncmpp.adoc
87
nncmpp.adoc
@ -1,87 +0,0 @@
|
||||
nncmpp(1)
|
||||
=========
|
||||
:doctype: manpage
|
||||
:manmanual: nncmpp Manual
|
||||
:mansource: nncmpp {release-version}
|
||||
|
||||
Name
|
||||
----
|
||||
nncmpp - terminal-based MPD client
|
||||
|
||||
Synopsis
|
||||
--------
|
||||
*nncmpp* [_OPTION_]...
|
||||
|
||||
Description
|
||||
-----------
|
||||
*nncmpp* is a terminal-based GUI-like MPD client. On start up it will welcome
|
||||
you with an overview of all key bindings and the actions they're assigned to.
|
||||
Individual tabs can be switched to either using the mouse or by pressing *M-1*
|
||||
through *M-9*, corresponding to the order they appear in.
|
||||
|
||||
Options
|
||||
-------
|
||||
*-d*, *--debug*::
|
||||
Adds a "Debug" tab showing all MPD communication and other information
|
||||
that help debug various issues.
|
||||
|
||||
*-h*, *--help*::
|
||||
Display a help message and exit.
|
||||
|
||||
*-V*, *--version*::
|
||||
Output version information and exit.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
Unless you run MPD on a remote machine, on an unusual port, or protected by
|
||||
a password, the client doesn't need a configuration file to work. It is,
|
||||
however, likely that you'll want to customize the looks or add some streams.
|
||||
You can start off with the following snippet:
|
||||
|
||||
....
|
||||
settings = {
|
||||
address = "localhost:6600"
|
||||
password = "<your password>"
|
||||
root = "~/Music"
|
||||
}
|
||||
colors = {
|
||||
normal = ""
|
||||
highlight = "bold"
|
||||
elapsed = "reverse"
|
||||
remains = "ul"
|
||||
tab_bar = "reverse"
|
||||
tab_active = "ul"
|
||||
even = ""
|
||||
odd = ""
|
||||
selection = "reverse"
|
||||
multiselect = "-1 6"
|
||||
scrollbar = ""
|
||||
}
|
||||
streams = {
|
||||
"dnbradio.com" = "http://www.dnbradio.com/hi.m3u"
|
||||
"BassDrive.com" = "http://bassdrive.com/v2/streams/BassDrive.pls"
|
||||
}
|
||||
....
|
||||
|
||||
Terminal attributes are accepted in a format similar to that of *git-config*(1),
|
||||
only named colours aren't supported. The distribution contains example colour
|
||||
schemes in the _contrib_ directory.
|
||||
|
||||
// TODO: it seems like liberty should contain an includable snippet about
|
||||
// the format, which could form a part of nncmpp.conf(5).
|
||||
|
||||
Files
|
||||
-----
|
||||
*nncmpp* follows the XDG Base Directory Specification.
|
||||
|
||||
_~/.config/nncmpp/nncmpp.conf_::
|
||||
The configuration file.
|
||||
|
||||
Reporting bugs
|
||||
--------------
|
||||
Use https://git.janouch.name/p/nncmpp to report bugs, request features,
|
||||
or submit pull requests.
|
||||
|
||||
See also
|
||||
--------
|
||||
*mpd*(1)
|
4
nncmpp.c
4
nncmpp.c
@ -741,8 +741,6 @@ static struct config_schema g_config_settings[] =
|
||||
{ .name = "password",
|
||||
.comment = "Password to use for MPD authentication",
|
||||
.type = CONFIG_ITEM_STRING },
|
||||
|
||||
// NOTE: this is unused--in theory we could allow manual metadata adjustment
|
||||
{ .name = "root",
|
||||
.comment = "Where all the files MPD is playing are located",
|
||||
.type = CONFIG_ITEM_STRING },
|
||||
@ -4030,7 +4028,7 @@ main (int argc, char *argv[])
|
||||
};
|
||||
|
||||
struct opt_handler oh =
|
||||
opt_handler_make (argc, argv, opts, NULL, "Terminal-based MPD client.");
|
||||
opt_handler_make (argc, argv, opts, NULL, "MPD client.");
|
||||
|
||||
int c;
|
||||
while ((c = opt_handler_get (&oh)) != -1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user