mirror of https://github.com/Nheko-Reborn/nheko
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.pull/855/head
parent
926c7a89ad
commit
3e8734dbd5
@ -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() |
@ -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>. |
Loading…
Reference in new issue