aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2020-10-26 13:24:46 +0100
committerPřemysl Eric Janouch <p@janouch.name>2020-11-05 01:47:06 +0100
commit70ff29e3d5e7d4f9f3edbe416d8718c7bafc674d (patch)
treef2adad30a9fcff02cfa1d0e504f2ab70f217cc4d
parentba122b767286cfd1a26f7f3f5390339fd020a3a8 (diff)
downloadnncmpp-70ff29e3d5e7d4f9f3edbe416d8718c7bafc674d.tar.gz
nncmpp-70ff29e3d5e7d4f9f3edbe416d8718c7bafc674d.tar.xz
nncmpp-70ff29e3d5e7d4f9f3edbe416d8718c7bafc674d.zip
Add a real manual page
Closes #3
-rw-r--r--CMakeLists.txt16
-rw-r--r--README.adoc42
-rw-r--r--nncmpp.adoc87
3 files changed, 104 insertions, 41 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c52334d..1eaac55 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,19 +70,21 @@ 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 program help
-find_program (HELP2MAN_EXECUTABLE help2man)
-if (NOT HELP2MAN_EXECUTABLE)
- message (FATAL_ERROR "help2man not found")
+# Generate documentation from text markup
+find_program (ASCIIDOCTOR_EXECUTABLE asciidoctor)
+if (NOT ASCIIDOCTOR_EXECUTABLE)
+ message (FATAL_ERROR "asciidoctor 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 ${HELP2MAN_EXECUTABLE} -N
- "${PROJECT_BINARY_DIR}/${page}" -o ${page_output}
- DEPENDS ${page}
+ COMMAND ${ASCIIDOCTOR_EXECUTABLE} -b manpage
+ -a release-version=${PROJECT_VERSION}
+ "${PROJECT_SOURCE_DIR}/${page}.adoc"
+ -o "${page_output}"
+ DEPENDS ${page}.adoc
COMMENT "Generating man page for ${page}" VERBATIM)
endforeach ()
diff --git a/README.adoc b/README.adoc
index 9b588d0..ce6e8b3 100644
--- a/README.adoc
+++ b/README.adoc
@@ -22,9 +22,14 @@ 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.
-Building and Running
---------------------
-Build dependencies: CMake, pkg-config, help2man, liberty (included),
+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),
termo (included) +
Runtime dependencies: ncursesw, libunistring, cURL
@@ -43,37 +48,6 @@ 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
diff --git a/nncmpp.adoc b/nncmpp.adoc
new file mode 100644
index 0000000..fd4f888
--- /dev/null
+++ b/nncmpp.adoc
@@ -0,0 +1,87 @@
+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)