diff options
author | tastytea <tastytea@tastytea.de> | 2021-12-22 22:34:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-22 21:34:07 +0000 |
commit | 3e8734dbd5614359b3de8e950c4f07d4802704db (patch) | |
tree | dee4f707f7d23d4b414e85191dd911a7c030a005 /man | |
parent | 926c7a89adc206e1e6f4e4f76e9d6340e3a91b7b (diff) |
Add man page (#851)
This adds a man page which lists command line options, key bindings and
commands. A new CMake option `MAN` is added, enabled by default on
`UNIX` but not `APPLE`.
The man pages are generated with either `a2x` (from asciidoc) or
`asciidoctor`. If both are not found, a fatal error is signaled.
Diffstat (limited to 'man')
-rw-r--r-- | man/CMakeLists.txt | 48 | ||||
-rw-r--r-- | man/nheko.1.adoc.in | 196 |
2 files changed, 244 insertions, 0 deletions
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt new file mode 100644 index 00000000..aadeb15b --- /dev/null +++ b/man/CMakeLists.txt @@ -0,0 +1,48 @@ +# Uses either a2x from asciidoc or asciidoctor to compile the man page. + +include(GNUInstallDirs) + +configure_file("${PROJECT_NAME}.1.adoc.in" "${PROJECT_NAME}.1.adoc" @ONLY) + +find_program (ASCIIDOC_COMPILER a2x) +if (NOT ASCIIDOC_COMPILER) + find_program (ASCIIDOCTOR_COMPILER asciidoctor) + if(NOT ASCIIDOCTOR_COMPILER) + message(FATAL_ERROR + "Could not find asciidoc (a2x) or asciidoctor. " + "Man page generation not possible.") + endif() +endif() + +if(ASCIIDOC_COMPILER) + message(STATUS "Using asciidoc compiler at ${ASCIIDOC_COMPILER}") + + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + DEPENDS "${PROJECT_NAME}.1.adoc" + COMMAND "${ASCIIDOC_COMPILER}" + ARGS + "--doctype=manpage" + "--format=manpage" + "--no-xmllint" + "${PROJECT_NAME}.1.adoc") +endif() + +if(ASCIIDOCTOR_COMPILER) + message(STATUS "Using asciidoctor compiler at ${ASCIIDOCTOR_COMPILER}") + + add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + DEPENDS "${PROJECT_NAME}.1.adoc" + COMMAND "${ASCIIDOCTOR_COMPILER}" + ARGS "--backend=manpage" "--doctype=manpage" "${PROJECT_NAME}.1.adoc") +endif() + +if(ASCIIDOC_COMPILER OR ASCIIDOCTOR_COMPILER) + add_custom_target(man ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1") + + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.1 + DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) +endif() diff --git a/man/nheko.1.adoc.in b/man/nheko.1.adoc.in new file mode 100644 index 00000000..399908a4 --- /dev/null +++ b/man/nheko.1.adoc.in @@ -0,0 +1,196 @@ += nheko(1) +:doctype: manpage +:Date: 2021-12-22 +:Revision: @PROJECT_VERSION@ +:man source: nheko +:man manual: General Commands Manual + +== NAME + +nheko - Desktop client for Matrix using Qt and C++17 + +== SYNOPSIS + +*nheko* [_OPTIONS_] + +== DESCRIPTION + +The motivation behind the project is to provide a native desktop app for Matrix +that feels more like a mainstream chat app (Element, Telegram etc) and less like +an IRC client. + +== OPTIONS + +*-h*, *--help*:: +Displays help on commandline options. + +*--help-all*:: +Displays help including Qt specific options. + +*-v*, *--version*:: +Displays version information. + +*--debug*:: +Enables debug output. + +*-p*, *--profile*:: +Creates a unique profile, which allows you to log into several accounts at the +same time and start multiple instances of nheko. + +== Keyboard shortcuts + +=== Room list + +*Ctrl-Up/Ctrl-Down*:: +Navigate within the room list. + +*Ctrl-K*:: +Search and select rooms from the room list. + +*Alt-A*, *Ctrl-Shift-A*:: +Select next room with activity. + +=== Timeline/Messaging + +*PgUp/PgDn*:: +Scroll timeline per page. + +*Alt-Up/Alt-Down*:: +Reply to a message. + +*Up/Down*:: +Edit a message. + +*Ctrl-E*:: +Edit message currently selected as reply. + +*Alt-F*:: +Forward message currently selected as reply. + +*Ctrl-P/Ctrl-N*:: +Reenter previous/next message. + +*Ctrl-U*:: +Delete everything in the input line. + +*Ctrl-Left/Ctrl-Right*:: +Jump one word left/right in the input line. + +*Shift-Enter*:: +Insert line break. + +*Enter*:: +Submit message. + +== Commands + +=== Custom messages + +*/me* _<message>_:: +Send a message as an emote, where your username is prefixed. + +*/react* _<text>_:: +Send a message as a reaction when you’re replying to a message. + +*/md* _<message>_:: +Force Markdown when sending the current message. + +*/plain* _<message>_:: +Force plain text when sending the current message. + +*/rainbow* _<message>_:: +Send a message in rainbow colors. + +*/rainbowme* _<message>_:: +Send a message as a rainbow-colored emote, where your username is prefixed. + +*/notice* _<message>_:: +Send a message as a notice. + +*/rainbownotice* _<notice>_:: +Send a message as a rainbow-colored notice. + +=== Room management + +*/join* _<roomname>_:: +Join a room. + +*/part*, */leave*:: +Leave the current room. + +*/invite* _<username>_:: +Invite a user into the current room. + +*/kick* _<username>_:: +Kick a user from the current room. + +*/ban* _<username>_:: +Ban a user from the current room. + +*/unban* _<username>_:: +Unban a user. + +*/roomnick* _<roomname>_:: +Change your nickname in a single room. + +=== Emoticons + +*/shrug*:: +Inserts `¯\_(ツ)_/¯` + +*/fliptable*:: +Inserts `(╯°□°)╯︵ ┻━┻` + +*/unfliptable*:: +Inserts `┯━┯╭( º _ º╭)` + +*/sovietflip*:: +Inserts `ノ┬─┬ノ ︵ ( \\o°o)\\` + +=== Advanced + +*/clear-timeline*:: +Removes all but the most recent messages from the currently rendered timeline +and then refetches it from the server; can be used to fix some cache issues. + +*/rotate-megolm-session*:: +Rotates the encryption key used to send encrypted messages in a room. + +*/goto* _<address>_:: + +_address_ can be one of: + + _<event ID>_;; + Jumpd to event with the specified ID and highlights it. + + _<message index>_;; + Jumpd to the message with the specified index and highlights it. + + _<Matrix URI>_;; + Handles Matrix URI as if you clicked on it. + +*/converttodm*:: +Converts a room to a direct conversation. + +*/converttoroom*:: +Converts a direct conversation to a normal room. + +== FILES + +*Configuration file*:: +`${XDG_CONFIG_HOME:-~/.config}/nheko/nheko.conf` + +*Log file*:: +`${XDG_CACHE_HOME:-~/.cache}/nheko/nheko/nheko.log` + +*Database*:: +`${XDG_DATA_HOME:-~/.local/share}/nheko/nheko/*/data.mdb` + +*Media cache*:: +`${XDG_CACHE_HOME:-~/.cache}/nheko/nheko/media_cache` + + +== REPORTING BUGS + +Please report issues on our bug tracker at +<https://github.com/Nheko-Reborn/nheko/issues>. |