mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-25 20:48:52 +03:00
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.
This commit is contained in:
parent
926c7a89ad
commit
3e8734dbd5
5 changed files with 255 additions and 1 deletions
|
@ -16,7 +16,7 @@ build-gcc9:
|
||||||
- apt-get install -y software-properties-common
|
- apt-get install -y software-properties-common
|
||||||
- add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
- add-apt-repository ppa:ubuntu-toolchain-r/test -y
|
||||||
- add-apt-repository ppa:beineri/opt-qt-5.15.2-focal -y
|
- add-apt-repository ppa:beineri/opt-qt-5.15.2-focal -y
|
||||||
- apt-get update && apt-get -y install --no-install-recommends build-essential ninja-build qt${QT_PKG}{base,declarative,tools,multimedia,script,quickcontrols2,svg} liblmdb-dev libgl1-mesa-dev libssl-dev git ccache pkg-config libsecret-1-dev cmake
|
- apt-get update && apt-get -y install --no-install-recommends build-essential ninja-build qt${QT_PKG}{base,declarative,tools,multimedia,script,quickcontrols2,svg} liblmdb-dev libgl1-mesa-dev libssl-dev git ccache pkg-config libsecret-1-dev cmake asciidoc xsltproc
|
||||||
# need recommended deps for wget
|
# need recommended deps for wget
|
||||||
- apt-get -y install wget
|
- apt-get -y install wget
|
||||||
- /usr/sbin/update-ccache-symlinks
|
- /usr/sbin/update-ccache-symlinks
|
||||||
|
|
|
@ -5,6 +5,11 @@ option(CI_BUILD "Set when building in CI. Enables -Werror where possible" OFF)
|
||||||
option(ASAN "Compile with address sanitizers" OFF)
|
option(ASAN "Compile with address sanitizers" OFF)
|
||||||
option(QML_DEBUGGING "Enable qml debugging" OFF)
|
option(QML_DEBUGGING "Enable qml debugging" OFF)
|
||||||
option(COMPILE_QML "Compile Qml. It will make Nheko faster, but you will need to recompile it, when you update Qt." OFF)
|
option(COMPILE_QML "Compile Qml. It will make Nheko faster, but you will need to recompile it, when you update Qt." OFF)
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
option(MAN "Build man page" ON)
|
||||||
|
else()
|
||||||
|
option(MAN "Build man page" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
set(
|
set(
|
||||||
CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/toolchain.cmake"
|
CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_LIST_DIR}/toolchain.cmake"
|
||||||
|
@ -739,6 +744,10 @@ if(NOT MSVC AND NOT HAIKU)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(MAN)
|
||||||
|
add_subdirectory(man)
|
||||||
|
endif()
|
||||||
|
|
||||||
set_target_properties(nheko PROPERTIES CMAKE_SKIP_INSTALL_RPATH TRUE)
|
set_target_properties(nheko PROPERTIES CMAKE_SKIP_INSTALL_RPATH TRUE)
|
||||||
|
|
||||||
if(UNIX AND NOT APPLE)
|
if(UNIX AND NOT APPLE)
|
||||||
|
|
|
@ -199,6 +199,7 @@ modules:
|
||||||
- -DCMAKE_BUILD_TYPE=Release
|
- -DCMAKE_BUILD_TYPE=Release
|
||||||
- -DLMDBXX_INCLUDE_DIR=.deps/lmdbxx
|
- -DLMDBXX_INCLUDE_DIR=.deps/lmdbxx
|
||||||
- -DCOMPILE_QML=ON
|
- -DCOMPILE_QML=ON
|
||||||
|
- -DMAN=OFF
|
||||||
buildsystem: cmake-ninja
|
buildsystem: cmake-ninja
|
||||||
name: nheko
|
name: nheko
|
||||||
sources:
|
sources:
|
||||||
|
|
48
man/CMakeLists.txt
Normal file
48
man/CMakeLists.txt
Normal file
|
@ -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()
|
196
man/nheko.1.adoc.in
Normal file
196
man/nheko.1.adoc.in
Normal file
|
@ -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 a new issue