NHEKO(1)
๐ธ NAME ๐ธ
hey bestie, welcome to NHEKO(1), straight out of the General Commands Manual ๐
nheko โ Desktop client for Matrix using Qt and C++17 โจ
๐ SYNOPSIS ๐
nheko [OPTIONS]
๐ DESCRIPTION ๐
okay so the whole motivation behind this project? it's to give you a native desktop app for Matrix that feels more like a mainstream chat app (Element, Telegram etc) and less like an IRC client. periodt. ๐ฆ
โจ OPTIONS โจ
-h,--helpโ shows you the help for the commandline options ๐ซถ--help-allโ same vibe but it also includes the Qt specific options ๐-v,--versionโ spills the version info ๐--debugโ literally just an alias for--log-level trace๐-l,--log-level <level>โ sets the global log level, or a comma-separated list of<component>=<level>pairs, or both. for example, if you wanna set the default log level towarnbut turn logging off for theuicomponent, you passwarn,ui=off.- levels:
tracedebuginfowarningerrorcriticaloff - components:
cryptodbmtxnetqmlui - you can also set log levels in the
NHEKO_LOG_LEVELenvironment variable, same syntax, no cap. but this command line option overrides it. ๐
- levels:
-L,--log-type <type>โ sets the log output type. a comma-separated list is allowed, she's flexible like that. the default isfile,stderr.- types:
filestderrnone - the log type can also live in the
NHEKO_LOG_TYPEenvironment variable, and again this command line option overrides it.
- types:
-p <profile>,--profile <profile>โ makes a unique profile, which lets you log into several accounts at the same time and start multiple instances of nheko. usedefaultto start with the default profile ๐-C,--compactโ lets the database shrink, because LMDB databases don't automatically shrink when data is deleted (rude of them honestly). it might also possibly allow some recovery on database corruption ๐ค
๐ง FAQ ๐ง
How do I add stickers and custom emojis?
okay so stickers and custom emojis are organized in image packs ๐ฆ there's one user image pack that only your account has access to, and there are room image packs that everyone in the room they're defined in can access. and get this โ you can activate a room image pack globally to use it in any room. slay.
to manage image packs in nheko, go to the room settings and enter the Sticker & Emote Settings. you'll see the Private pack (that's your user image pack) and you can edit it right there. the Shortcode is the unique identifier you use to select the image with, and the Body is the alternate text that shows up on clients that don't support images (like the alt tag in HTML images, iykyk).
if you have the necessary permissions you can create new room packs with the button at the bottom of the image pack list ๐ they're the same as the user pack except you can create as many as you want and everyone in the room can use them. pro tip from the manpage itself: 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. it's giving autocomplete but make it cute โจ
@โ opens the username completer ๐#โ opens the room completer ๐:โ opens the emoji picker. Unicode emoji get 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 the next room with activity ๐ฅ
Timeline/Messaging
PgUp/PgDnโ scroll the timeline per page ๐Alt-Up/Alt-Downโ reply to a message ๐ฌUp/Downโ edit a message โ๏ธCtrl-Eโ edit the message currently selected as replyAlt-Fโ forward the message currently selected as replyCtrl-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 lineShift-Enterโ insert a line breakEnterโ submit the message ๐
๐ COMMANDS ๐
commands only work when they're used at the beginning of text. no sneaking them in mid-sentence bestie.
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 with2 spacesor 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.reasonis optional ๐ชโจ/knock <roomname> [reason]โ ask to join a room.reasonis optional ๐ช๐/part,/leave [reason]โ leave the current room.reasonis optional ๐/invite <username> [reason]โ invite a user into the current room.reasonis optional ๐/kick <username> [reason]โ kick a user from the current room.reasonis optional. you can alternatively kick the user you're replying to by leaving out theusername๐ฅพ/ban <username> [reason]โ ban a user from the current room.reasonis optional. you can alternatively ban the user you're replying to by leaving out theusernameโ/unban <username> [reason]โ unban a user.reasonis optional. you can alternatively unban the user you're replying to by leaving out theusername๐/redact <username> [reason]โ redacts all visible messages of the specified user. heads up: you will run into rate limits quickly ๐/redact <eventid> [reason]โ redacts a specific event. you can alternatively redact the event you're replying to by specifying neither aneventidnorusername/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 ๐ซถ
Invite permission management
/blockinvites <username>|<roomid>|<servername>|allโ block all invites either by default ("all") or from a specific user or server or to a specific room ๐ซ/allowinvites <username>|<roomid>|<servername>|allโ allow all invites either by default ("all") or from a specific user or server or to a specific room โ
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>โaddresscan be one of:<event ID>โ jumps to the 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>~~like this~~||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. we wanna hear it, fr fr ๐
and that's the whole page bestie โจ this was nheko 0.12.1, dated 2022-01-27, and it lives in the NHEKO(1) manual. go forth and chat, you're the main character now ๐๐
๐ฆ where this page comes from
- fedora 43: nheko 0.12.1-16.fc43 ยท GPL-3.0-or-later
- fedora 43: nheko 0.12.1-6.fc43 ยท GPL-3.0-or-later
- fedora 44: nheko 0.12.1-15.fc44 ยท GPL-3.0-or-later
- fedora 44: nheko 0.12.1-23.fc44 ยท GPL-3.0-or-later
- nixos 26.05: nheko 0.12.1
- nixpkgs unstable: nheko 0.12.1
- opensuse-leap 16.0: nheko 0.12.1-bp160.1.2 ยท Apache-2.0 AND GPL-3.0-or-later AND CC-BY-4.0
- opensuse-leap 16.0: nheko 0.12.1-bp160.1.2 ยท Apache-2.0 AND GPL-3.0-or-later AND CC-BY-4.0
- opensuse-leap 16.0: nheko 0.12.1-bp160.1.2 ยท Apache-2.0 AND GPL-3.0-or-later AND CC-BY-4.0
- opensuse-leap 16.0: nheko 0.12.1-bp160.1.2 ยท Apache-2.0 AND GPL-3.0-or-later AND CC-BY-4.0
- ubuntu questing: nheko 0.12.1+~0.10.1+~1.0.0+~0.3.1-2
- ubuntu resolute: nheko 0.12.1+~0.10.1+~1.0.0+~0.3.1-4ubuntu3 ยท GPL-3.0-or-later
- ubuntu stonking: nheko 0.12.1-1+ds+~0.10.1+ds+~1.0.0+ds+~0.3.2+ds-1build4 ยท GPL-3.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms