summaryrefslogtreecommitdiffstats
path: root/man/nheko.1.adoc
blob: ff316308b3cef18021739715bfc408915afbc179 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
= nheko(1)
:doctype:       manpage
:Date:          2022-01-27
: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*::
Alias for _--log-level trace_.

*-l*, *--log-level* _<level>_::
Set the global log level, or a comma-separated list of _<component>=<level>_
pairs, or both. For example, to set the default log level to _warn_ but
disable logging for the _ui_ component, pass _warn,ui=off_.
+
levels: _trace_ _debug_ _info_ _warning_ _error_ _critical_ _off_
+
components: _crypto_ _db_ _mtx_ _net_ _qml_ _ui_
+
Log levels can also be set in the NHEKO_LOG_LEVEL environment variable, using
the same syntax. It will be overridden by this command line option.

*-L*, *--log-type* _<type>_::
Set the log output type. A comma-separated list is allowed. The default is _file,stderr_.
+
types: _file_ _stderr_ _none_
+
The log type can also be set in the NHEKO_LOG_TYPE environment variable,
which will be overridden by this command line option.

*-p* _<profile>_, *--profile* _<profile>_::
Creates a unique profile, which allows you to log into several accounts at the
same time and start multiple instances of nheko. Use _default_ to start with the
default profile.

*-C*, *--compact*::
Allows shrinking the database, since LMDB databases don't automatically shrink
when data is deleted. Possibly allows some recovery on database corruption.

== FAQ

=== How do I add stickers and custom emojis?

Stickers and custom emojis are organized in image packs. There is one user image
pack that only your account has access to and there are room image packs that
are accessible by everyone in the room they are defined in. You can activate a
room image pack globally to use it in any room.

To manage image packs in nheko, go to the room settings and enter the Sticker &
Emote Settings. You will see the Private pack (your user image pack) and can
edit it there. The Shortcode is a unique identifier you use to select the image
with and the Body is the alternate text that is displayed on clients that don't
support images (like the alt tag in HTML images).

If you have the necessary permissions you can create new room packs with the
button at the bottom of the image pack list. They are the same as the user pack
but you can create as many as you want and everyone in the room can use them. It
might be a good idea to create an extra room just for your image packs to make
sharing easier.

== COMPLETERS

Completers spawn a popup with completion candidates when you type them in
the input line.

*@*::
Open username completer.

*#*::
Open room completer.

*:*::
Open the emoji picker. Unicode emoji are inserted directly. Custom emoji will
insert the HTML code for them into the input line. You can configure custom
emoji in the room settings.

== KEYBOARD SHORTCUTS

=== Room list

*Ctrl-Up/Ctrl-Down*::
Navigate within the room list.

*Ctrl-W*::
Close the currently open room.

*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

Commands only work when they are used at the beginning of text.

=== 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.

*/cmark* _<message>_::
Disables most of our extensions to cmark (CommonMark), including the
newline-in-input = newline-in-output behaviour, strikethrough and spoilers. You
may still force newlines with 2 spaces or a backslash before the line ending or
insert HTML elements.

*/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>_ _[reason]_::
Join a room. _reason_ is optional.

*/knock* _<roomname>_ _[reason]_::
Ask to join a room. _reason_ is optional.

*/part*, */leave* _[reason]_::
Leave the current room. _reason_ is optional.

*/invite* _<username>_ _[reason]_::
Invite a user into the current room. _reason_ is optional.

*/kick* _<username>_ _[reason]_::
Kick a user from the current room. _reason_ is optional.

*/ban* _<username>_ _[reason]_::
Ban a user from the current room. _reason_ is optional.

*/unban* _<username>_ _[reason]_::
Unban a user. _reason_ is optional.

*/redact* _<username>_ _[reason]_::
Redacts all visible messages of the specified user. You will run into rate limits quickly.

*/redact* _<eventid>_ _[reason]_::
Redacts a specific event.

*/roomnick* _<roomname>_::
Change your nickname in a single room.

*/glitch* _<message>_::
Applies a glitch effect to the given _message_. Beware that this will break mentions, HTML, and some Markdown in your message.

*/gradualglitch* _<message>_::
Applies a progressively more severe glitch effect to the _message_. Again, this will break mentions, HTML, and some Markdown.

=== Emoticons

*/shrug* _[message]_::
Inserts `¯\_(ツ)_/¯` followed by an optional _message_.

*/fliptable*::
Inserts `(╯°□°)╯︵ ┻━┻`

*/unfliptable*::
Inserts `┯━┯╭( º _ º╭)`

*/sovietflip*::
Inserts `ノ┬─┬ノ ︵ ( \\o°o)\\`

=== User management

*/ignore* _<username>_::
Ignore a user, invites from them are also rejected.

*/unignore* _<username>_::
Stops ignoring a user.

=== 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.

*/reset-state*::
Fetches all the state events in the current room again; 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>_;;
    Jumps to event with the specified ID and highlights it.

    _<message index>_;;
    Jumps 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.

== MARKDOWN EXTENSIONS

*newline (+\n+)*::
A single newline will be turned into `<br>` instead of a space.

*+~~text~~+*::
Make text strikethrough. HTML putput: `<del>text</del>`

*`||spoiler warning|text||`*::
Hide text and set an optional spoiler warning. Note that Nheko does not display
the spoiler warning currently. HTML output:
`<span data-mx-spoiler="spoiler">text</span>`

== ENVIRONMENT

*NHEKO_ALLOW_QML_DISK_CACHE*::
Nheko by default disables the qml disk cache to prevent crashes. This allows
you to reenable it at your own risk.

== 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>.