nheko
该项目的动机是为Matrix提供一个原生桌面应用程序,让用户感觉更像主流聊天应用(Element、Telegram等),而不是IRC客户端。
快速安装链接
稳定版
其他选项和详细信息请参见安装部分。
不稳定版
翻译
帮助我们进行翻译,让尽可能多的人能够使用nheko!
关于端到端加密的说明
当前实现基本稳定,但从未经过审核。如果您依赖它来保证安全,我们无法做出任何保证。
功能
目前缺少聊天应用程序应有的大多数功能,但我们正在接近一个功能更完整的客户端。 具体支持以下功能:
- 端到端加密。
- VoIP通话(语音和视频,支持因平台而异)。
- 用户注册。
- 创建、加入和离开聊天室。
- 发送和接收邀请。
- 发送和接收文件和表情符号(图片、音频和文件消息的内联小部件)。
- 自定义贴纸和表情符号。
- 回复文本、图片和其他媒体(并实际将它们呈现为内联小部件)。
- 输入通知。
- 用户名自动完成。
- 消息和提及通知。
- 撤回消息。
- 已读回执。
- 在线状态和状态消息(如果在服务器端启用)。
- 基本社区支持。
- 聊天室切换器(ctrl-K)。
- 浅色、深色和系统主题。
- 创建单独的配置文件(仅命令行,使用
-p name
)。 - D-Bus API,允许与第三方插件集成(不支持Windows或macOS)。
安装
发布版本
Linux(Flatpak)、macOS(磁盘映像)和Windows(x64 msix或appinstaller)的发布版本可在GitHub releases中找到。 Windows上的appinstaller将定期检查我们的服务器以获取更新。msix不会。
软件仓库
Arch Linux
sudo pacman -Syu nheko
开发版本可在AUR中获得:
yay -S nheko-git # 或您喜欢的安装AUR软件包的方式
Nheko需要一个密钥服务器才能运行,因此如果您的桌面环境没有提供,您需要安装和配置诸如KDE Wallet或GNOME Keyring之类的服务。
Debian(10及以上)/ Ubuntu(18.04及以上)
sudo apt install nheko
Fedora
sudo dnf install nheko
Gentoo Linux
sudo eselect repository enable guru
sudo emaint sync -r guru
sudo emerge -a nheko
如果您使用Gnome Keyring或KeepassXC作为密钥守护程序,请确保在dev-libs/qtkeychain
上启用了keyring
useflag。
Mageia(9及以上)
sudo urpmi nheko
Nix(os)
# 命令式:(不推荐)
nix-env -iA nixpkgs.nheko
# 在临时 shell 中:(推荐如果你只想尝试而不想完全安装)
nix-shell -p nheko --run nheko
# 注意:上面的命令会同时安装和运行 Nheko。
# 如果不想立即运行,只需删除末尾的 `--run nheko`。
或者,通过以下方式之一将其添加到你的配置中:(推荐长期安装)
**系统范围:**
```nix
environment.systemPackages = with pkgs; [
# ...
nheko
# ...
];
特定用户:
users.users.<user>.packages = with pkgs; [
# ...
nheko
# ...
];
通过 home-manager
:
programs.nheko.enable = true;
Alpine Linux(和 postmarketOS)
确保你已启用 edge
的测试仓库。注意,postmarketOS 不需要这一步。
sudo apk add nheko
openSUSE
注意:这些说明仅在 Tumbleweed 上测试过。
首先,安装 nheko:
sudo zypper addrepo https://download.opensuse.org/repositories/network:messaging:matrix/openSUSE_Tumbleweed/network:messaging:matrix.repo
sudo zypper ref
sudo zypper in nheko
如果你想添加 jdenticon 支持:
sudo zypper install qt-jdenticon
Flatpak
flatpak install flathub im.nheko.Nheko
Guix
guix install nheko
Steam Deck
通过桌面模式中的 Discover
应用安装 nheko(这会安装 flatpak)。要使其在游戏模式下也能工作,你需要创建一个启动 kwalletd 然后启动 nheko 的包装脚本。你可以创建 /home/deck/nheko.sh
文件,内容如下,然后将此脚本作为"非 Steam 游戏"添加到 Steam 中。
#!/bin/sh
kwalletd6&
flatpak run --env=XDG_CURRENT_DESKTOP=KDE --env=KDE_SESSION_VERSION=5 --branch=stable --arch=x86_64 --command=im.nheko.Nheko --file-forwarding im.nheko.Nheko @@u @@
macOS(10.14 及以上)
使用 homebrew:
brew install --cask nheko
Windows
使用 Chocolatey:
choco install nheko-reborn
D-Bus 插件
nheko 不提供任何 D-Bus 插件的二进制文件。但是,我们提供以下已知插件列表:
常见问题
问: 为什么我在 Windows 上无法播放视频?
答: 你可能缺少所需的视频编解码器,下载 K-Lite Codec Pack。
问: nheko 支持哪些命令?
答: 请参阅 https://github.com/Nheko-Reborn/nheko/wiki/Commands
问: nheko 是否支持端到端加密(E2EE)?
答: 是的,请参阅功能列表
问: 我可以测试最新的开发版本吗?
答: 查看每日构建 https://matrix-static.neko.dev/room/!TshDrgpBNBDmfDeEGN:neko.dev/
问: 如何添加贴纸和自定义表情?
答: 贴纸和自定义表情被组织在图像包中。有一个只有你的账户可以访问的用户图像包,还有房间图像包,房间内的每个人都可以访问。你可以全局激活房间图像包以在任何房间中使用它。
要在 nheko 中管理图像包,请进入房间设置并进入贴纸和表情设置。你会看到私人包(你的用户图像包)并可以在那里编辑它。短代码是用于选择图像的唯一标识符,正文是在不支持图像的客户端上显示的替代文本(类似于 HTML 图像的 alt 标签)。
如果你有必要的权限,可以使用图像包列表底部的按钮创建新的房间包。它们与用户包相同,但你可以创建任意多个,房间里的每个人都可以使用它们。创建一个专门用于图像包的额外房间可能是个好主意,以便于共享。
问: 我看不到某些图像类型!
答: Nheko 使用 Qt 的图像插件来渲染图像。你可能需要安装额外的软件包来显示某些图像类型,如 webp。通常这些软件包被称为 qt6-image-formats-plugins
、qt6-imageformats
或类似名称。KDE 有类似的插件,可以进一步扩展支持的图像类型。
构建要求
- Qt6(6.5或更高版本)。用于Qml中的重叠悬停处理器。
- CMake 3.15或更高版本。(较低版本可能可用,但可能会导致boost链接问题)
- mtxclient
- coeurl
- LMDB
- lmdb++(0.9.14版本太旧)
- cmark 0.29或更高版本。
- libolm
- spdlog(1.8.1版本太旧)
- fmt
- GStreamer 1.20.0或更高版本(可选,需要VoIP支持。传递
-DVOIP=OFF
以禁用)。- 安装gstreamer核心库以及gst-plugins-base、gst-plugins-good和gst-plugins-bad通常就足够了。 但qmlgl插件通常是单独打包的。具体的插件要求如下:
- 语音通话支持:dtls、opus、rtpmanager、srtp、webrtc
- 视频通话支持(可选):compositor、opengl、qmlgl、rtp、vpx
- libnice
- XCB、XCB-EWMH:用于X11上的屏幕共享支持和设置窗口角色。可以通过
-DSCREENSHARE_X11=OFF
禁用。 - qtkeychain(至少需要0.12版本以获得proper Gnome Keychain支持。捆绑版本需要libsecret,除非你传递
-DLIBSECRET_SUPPORT=OFF
。) - KDSingleApplication(1.0或更高版本,支持Qt6)
- 支持C++ 20的编译器:
- Clang 16(CI中只测试了clazy 16)
- GCC 11.3(在Gitlab CI上测试)
- MSVC 19.13(在AppVeyor上测试)
如果你的发行版中的版本太旧,Nheko可以自动使用大多数这些库的捆绑版本。
要使用它们,你可以通过传递-DHUNTER_ENABLED=ON
来启用hunter集成。
通过传递-DBUILD_SHARED_LIBS=OFF
来静态链接这些依赖项可能是明智的。
你可以通过传递各种-DUSE_BUNDLED_*
标志来选择要使用的捆绑依赖项。默认情况下,如果你启用hunter,所有依赖项都会被捆绑。(OpenSSL是个例外,默认情况下始终禁用。)
如果你遇到构建问题,并且在没有hunter的情况下尝试链接mtxclient
库,请确保使用了CMakeList.txt
中提到的库版本(提交)。有时我们不得不在mtxclient
中进行破坏性更改,在这段时间内,两个仓库的master分支可能不兼容。
当前的捆绑标志包括:
- USE_BUNDLED_SPDLOG
- USE_BUNDLED_OLM
- USE_BUNDLED_GTEST
- USE_BUNDLED_CMARK
- USE_BUNDLED_JSON
- USE_BUNDLED_OPENSSL
- USE_BUNDLED_MTXCLIENT
- USE_BUNDLED_LMDB
- USE_BUNDLED_LMDBXX
- USE_BUNDLED_COEURL
- USE_BUNDLED_LIBCURL
- USE_BUNDLED_LIBEVENT
- USE_BUNDLED_KDSINGLEAPPLICATION
关于捆绑的OpenSSL的注意事项:你需要明确启用它,如果启用,它默认不会使用你的系统证书目录。你需要在运行时使用SSL_CERT_FILE变量来覆盖它。不过在Windows上,它仍然会使用你的系统证书,因为它是从系统存储而不是OpenSSL目录加载它们。
Linux(Appimage)
如果你不想安装任何外部依赖项,可以使用docker在本地生成AppImage。不过这种方法维护得不太好...
make docker-app-image
Arch Linux
sudo pacman -S qt6-base \
qt6-tools \
qt6-multimedia \
qt6-svg \
cmake \
gcc \
fontconfig \
lmdb \
cmark \
boost \
qtkeychain-qt6
Debian 13 [测试版/Sid](Nheko QT6版本)
截至2024年2月,从git master分支获取的Nheko需要QT 6.5,而Trixie只有6.4.2,所以你必须启用Debian的实验性仓库来安装更新的QT6。将来可能不需要这样做,第二组构建要求中的-t experimental
可以移除。
# 安装构建依赖
sudo apt install -y cmake asciidoc-base libevent-dev libspdlog-dev libre2-dev liblmdb++-dev libcurl4-openssl-dev libssl-dev libolm-dev libcmark-dev nlohmann-json3-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev libkdsingleapplication-qt6-dev
sudo apt install -y -t experimental qt6-base-dev qt6-tools-dev qt6-svg-dev qt6-multimedia-dev qt6-declarative-dev qtkeychain-qt6-dev qt6-base-private-dev qt6-declarative-private-dev
# 从github克隆nheko仓库
sudo apt install -y git
git clone https://github.com/Nheko-Reborn/nheko && cd nheko
# 构建
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DUSE_BUNDLED_COEURL=1 -DUSE_BUNDLED_MTXCLIENT=1 -DUSE_BUNDLED_LMDBXX=1
cmake --build build
Debian 11-12 / Ubuntu 22.04(Nheko QT5 11.3 发布版本)
构建要求 + 运行时需要的 qml 模块(您可能不需要全部,但根据报告,以下似乎可以工作):
sudo apt install --no-install-recommends g++ cmake make zlib1g-dev libssl-dev libolm-dev liblmdb-dev libcmark-dev nlohmann-json3-dev libspdlog-dev libevent-dev libcurl4-openssl-dev libre2-dev libxcb-ewmh-dev asciidoc-base \
qt{base,declarative,tools,multimedia,quickcontrols2-}5-dev libqt6svg5-dev qt6keychain-dev qml-module-qt{gstreamer,multimedia,quick-extras,-labs-settings,-labs-platform,graphicaleffects,quick-controls2,quick-particles2} \
libgstreamer1.0-dev libgstreamer-plugins-{base,bad}1.0-dev qtgstreamer-plugins-qt6 libnice-dev ninja-build
lmdb++-dev 版本过旧,所以必须使用捆绑的 lmdbxx。
debian bullseye 中的 libspdlog-dev 版本过旧(未经回溯),因此需要使用 hunter 来使用捆绑的 spdlog。
debian bullseye 的建议标志:-DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF
debian bookworm 的建议标志:-DUSE_BUNDLED_COEURL=1 -DUSE_BUNDLED_MTXCLIENT=1 -DUSE_BUNDLED_LMDBXX=1
Fedora
sudo dnf builddep nheko # 注意,一些较新的包可能未被捕获
Gentoo Linux
sudo emerge -a ">=dev-qt/qtgui-5.15.0" media-libs/fontconfig dev-libs/qtkeychain
Guix
guix environment nheko
macOS(Xcode 10.2 或更高版本)
brew update
brew install qt6 lmdb cmake llvm spdlog boost cmark libolm qtkeychain
Windows
-
安装 Visual Studio 2022 的"桌面开发"和"使用 C++ 的 Linux 开发"(用于 CMake 集成)工作负载。
-
下载最新的 Qt for Windows 安装程序并安装到某个位置。 确保至少为 Qt 5.15 安装
MSVC 2022 64-bit
工具集。 -
如果您没有安装 openssl,您需要安装 perl 来构建它(例如 Strawberry Perl)。
构建
现在我们可以构建 nheko:
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build
要使用捆绑的依赖项,您可以使用 hunter,例如:
cmake -S. -Bbuild -DHUNTER_ENABLED=ON -DBUILD_SHARED_LIBS=OFF -DUSE_BUNDLED_OPENSSL=OFF
cmake --build build --config Release
根据需要调整 USE_BUNDLED_*。
如果构建失败并出现以下错误
Could not find a package configuration file provided by "Qt6Widgets" with
any of the following names:
Qt6WidgetsConfig.cmake
qt6widgets-config.cmake
您可能需要向 cmake 传递 -DCMAKE_PREFIX_PATH
以指向您的 qt6 安装位置。
例如在 macOS 上
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$(brew --prefix qt6)
cmake --build build
nheko
二进制文件将位于 build
目录中。
Windows
安装所有依赖项后,您需要编辑 CMakeSettings.json
以便在 Visual Studio 中加载和编译 nheko。
您需要填写 Qt6_DIR
的路径。
Qt6 目录应指向 lib\cmake\Qt6
目录。
路径示例:
C:\\Qt\\6.5.2\\msvc2017_64\\lib\\cmake\\Qt6
您还应该通过将 HUNTER_ENABLED
设置为 ON
和 BUILD_SHARED_LIBS
设置为 OFF
来启用 hunter。
现在右键单击 nheko 源目录的根目录,选择"在 Visual Studio 中打开"。
您可以在顶部工具栏中选择 Release 和 Debug 构建类型。
成功生成 CMake 后,您可以选择 nheko.exe
作为运行目标。
现在在 CMake 菜单中选择"生成所有"或按 F7
编译可执行文件。
要能够运行应用程序,最后一步是在 nheko 二进制文件旁安装所需的 Qt 依赖项。
启动"Qt x.xx.x 64-bit for Desktop (MSVC 2017)"命令提示符并运行 windeployqt
。
cd <path-to-nheko>\build-vc\Release\Release
windeployqt nheko.exe
最终的二进制文件将位于 Release 构建的 build-vc\Release\Release
目录中,
Debug 构建则位于 build-vc\Debug\Debug
目录中。
同时,从 build/cmark-build/src/Release
(或 Debug)复制相应的 cmark.dll 到二进制目录。
贡献
请参阅 CONTRIBUTING。
使用 D-Bus API
目前,D-Bus API 没有文档,如果您想使用它,请在 #nheko:nheko.im 寻求支持。
界面截图
这里有一些界面截图,让您对 UI 有所了解,但可能会发生变化。