nheko-reborn / nheko Goto Github PK
View Code? Open in Web Editor NEWDesktop client for Matrix using Qt and C++20.
Home Page: https://nheko-reborn.github.io/
License: GNU General Public License v3.0
Desktop client for Matrix using Qt and C++20.
Home Page: https://nheko-reborn.github.io/
License: GNU General Public License v3.0
It would be convenient if Nheko Reborn were available on macOS through Homebrew as well as MacPorts. Right now only the old Nheko client is available as a Homebrew cask.
If you want to do this, to qualify for inclusion in Homebrew core, your GitHub repo needs to be the root of its own fork tree, instead of a fork of mujx/nheko
. Since the upstream mujx/nheko
project is defunct, and changes to this repo are never going to make it back there, that seems like the "Right Thing" to do, anyway. To do this, you need to contact GitHub support and ask them to make your repo a "canonical" repo that is no longer a fork of mujx/nheko
.
In the meantime, to show how this would work, I've created a nheko-reborn
cask in my apjanke/personal
custom tap. To use it:
brew tap apjanke/personal
brew cask install nheko-reborn
No notification shown for the invited user.
User should receive a notification.
Create room, invite a user from the same domain.
NOTE: User invited to direct chat correctly receives the invitation.
When trying to open nheko, I get the following error:
/usr/bin/nheko: error while loading shared libraries: libolm.so.2: cannot open shared object file: No such file or directory
Libolm got updated recently:
Name : libolm
Version : 3.0.0-1
Rather than taking the first letter of the display name and using that to create a simple avatar for users that don't have one, do something like what GitHub does instead. Each avatar is unique for the entire username rather than just defaulting to the first letter of their display name.
Riot like keyboard shortcuts would be nice. Maybe some more for other use cases. Thanks.
In Debian, boost-defaults are 1.67 for buster as e.g.
$ apt-cache policy libboost-dev
libboost-dev:
Installed: 1.67.0.1
Candidate: 1.67.0.1
Version table:
*** 1.67.0.1 990
990 http://cdn-fastly.deb.debian.org/debian buster/main amd64 Packages
500 http://cdn-fastly.deb.debian.org/debian unstable/main amd64 Packages
100 /var/lib/dpkg/status
But when I tried with building nheko-reborn it downloaded 1.68, I have no clue why. Please either update your instructions to say 1.68 is needed or don't download the new version if it's happy with 1.67.
$ cmake --build .deps
Scanning dependencies of target Boost
[ 2%] Creating directories for 'Boost'
[ 4%] Performing download step (download, verify and extract) for 'Boost'
-- Downloading...
dst='/home/shirish/games/nheko-reborn/.deps/build/downloads/boost/boost_1_68_0.tar.bz2'
timeout='none'
-- Using src='https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.bz2'
-- [download 0% complete]
-- [download 1% complete]
-- [download 2% complete]
-- [download 3% complete]
-- [download 4% complete]
-- [download 5% complete]
-- [download 6% complete]
-- [download 7% complete]
-- [download 8% complete]
-- [download 9% complete]
-- [download 10% complete]
-- [download 11% complete]
-- [download 12% complete]
-- [download 13% complete]
-- [download 14% complete]
-- [download 15% complete]
-- [download 16% complete]
-- [download 17% complete]
-- [download 18% complete]
-- [download 19% complete]
-- [download 20% complete]
-- [download 21% complete]
-- [download 22% complete]
-- [download 23% complete]
-- [download 24% complete]
-- [download 25% complete]
-- [download 26% complete]
-- [download 27% complete]
-- [download 28% complete]
-- [download 29% complete]
-- [download 30% complete]
-- [download 31% complete]
-- [download 32% complete]
-- [download 33% complete]
-- [download 34% complete]
-- [download 35% complete]
-- [download 36% complete]
-- [download 37% complete]
-- [download 38% complete]
-- [download 39% complete]
-- [download 40% complete]
-- [download 41% complete]
-- [download 42% complete]
-- [download 43% complete]
-- [download 44% complete]
-- [download 45% complete]
-- [download 46% complete]
-- [download 47% complete]
-- [download 48% complete]
-- [download 49% complete]
-- [download 50% complete]
-- [download 51% complete]
-- [download 52% complete]
-- [download 53% complete]
-- [download 54% complete]
-- [download 55% complete]
-- [download 56% complete]
-- [download 57% complete]
-- [download 58% complete]
-- [download 59% complete]
-- [download 60% complete]
-- [download 61% complete]
-- [download 62% complete]
-- [download 63% complete]
-- [download 64% complete]
-- [download 65% complete]
-- [download 66% complete]
-- [download 67% complete]
-- [download 68% complete]
-- [download 69% complete]
-- [download 70% complete]
-- [download 71% complete]
-- [download 72% complete]
-- [download 73% complete]
-- [download 74% complete]
-- [download 75% complete]
-- [download 76% complete]
-- [download 77% complete]
-- [download 78% complete]
-- [download 79% complete]
-- [download 80% complete]
-- [download 81% complete]
-- [download 82% complete]
-- [download 83% complete]
-- [download 84% complete]
-- [download 85% complete]
-- [download 86% complete]
-- [download 87% complete]
-- [download 88% complete]
-- [download 89% complete]
-- [download 90% complete]
-- [download 91% complete]
-- [download 92% complete]
-- [download 93% complete]
-- [download 94% complete]
-- [download 95% complete]
-- [download 96% complete]
-- [download 97% complete]
-- [download 98% complete]
-- [download 99% complete]
-- [download 100% complete]
-- verifying file...
file='/home/shirish/games/nheko-reborn/.deps/build/downloads/boost/boost_1_68_0.tar.bz2'
-- Downloading... done
-- extracting...
src='/home/shirish/games/nheko-reborn/.deps/build/downloads/boost/boost_1_68_0.tar.bz2'
dst='/home/shirish/games/nheko-reborn/.deps/build/boost'
-- extracting... [tar xfz]
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
[ 6%] No patch step for 'Boost'
[ 8%] No update step for 'Boost'
[ 10%] Performing configure step for 'Boost'
Building Boost.Build engine with toolset gcc... tools/build/src/engine/bin.linuxx86_64/b2
Unicode/ICU support for Boost.Regex?... /usr
Generating Boost.Build configuration in project-config.jam...
Bootstrapping is done. To build, run:
./b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
./b2 --help
- Getting started guide:
http://www.boost.org/more/getting_started/unix-variants.html
- Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
[ 12%] Performing build step for 'Boost'
Performing configuration checks
- default address-model : 64-bit
- default architecture : x86
Building the Boost C++ Libraries.
- symlinks supported : yes
- zlib : yes
- bzip2 : no
- lzma : no
- has_icu builds : yes
- lockfree boost::atomic_flag : yes
Component configuration:
- atomic : building
- chrono : building
- container : not building
- context : not building
- contract : not building
- coroutine : not building
- date_time : building
- exception : not building
- fiber : not building
- filesystem : not building
- graph : not building
- graph_parallel : not building
- iostreams : building
- locale : not building
- log : not building
- math : not building
- mpi : not building
- program_options : not building
- python : not building
- random : building
- regex : building
- serialization : not building
- signals : not building
- stacktrace : not building
- system : building
- test : not building
- thread : building
- timer : not building
- type_erasure : not building
- wave : not building
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/home/shirish/games/nheko-reborn/.deps/build/boost
The following directory should be added to linker library paths:
/home/shirish/games/nheko-reborn/.deps/build/boost/stage/lib
[ 14%] Performing install step for 'Boost'
Performing configuration checks
- default address-model : 64-bit (cached)
- default architecture : x86 (cached)
- symlinks supported : yes (cached)
- zlib : yes
- bzip2 : no
- lzma : no
- has_icu builds : yes
- lockfree boost::atomic_flag : yes
- zlib : yes
- bzip2 : no
- lzma : no
Component configuration:
- atomic : building
- chrono : building
- container : not building
- context : not building
- contract : not building
- coroutine : not building
- date_time : building
- exception : not building
- fiber : not building
- filesystem : not building
- graph : not building
- graph_parallel : not building
- iostreams : building
- locale : not building
- log : not building
- math : not building
- mpi : not building
- program_options : not building
- python : not building
- random : building
- regex : building
- serialization : not building
- signals : not building
- stacktrace : not building
- system : building
- test : not building
- thread : building
- timer : not building
- type_erasure : not building
- wave : not building
[ 16%] Completed 'Boost'
Riot currently does it, but if I try with Nheko, it simply just copies their username.
These should get broken out into their own issues at some point. Just keeping a running log of the things I encounter.
Expected behavior is that notifications will be removed by the notification manager when the messages in question are actually read. Currently, they stick around. Even worse, they stick around after nheko has been closed.
Notifications currently have a large empty section where the user avatar should be. Additionally, the formatting of the text itself does not do a good job of differentiating between the author and message contents themselves.
Currently, link text is hard-coded in the Utils.cpp class. This prevents it from being tweaked in the stylesheets and also means that adding a new style sheet will result in unexpected behavior (should additional themes ever be implemented). This should be moved to the stylesheet and code updated to read from the stylesheet.
Spacing is off in places, font isn't taken fully advantage of to differentiate different sections of the UI. Some things feel cramped. Other things aren't quite centered. This covers basic tweaking of various things.
Here's what nheko logs when stumbling upon a reply:
error while parsing xml "Expected ';', but got '='." "<html><blockquote><a href=\"https://matrix.to/#/!FyQrGcOoVamcLcvdob:matrix.org/$15487838774263HIAkp:amorgan.xyz?via=matrix.org&via=disroot.org&via=saces.de\">In reply to</a> * <a href=\"https://matrix.to/#/@andrewm:amorgan.xyz\">@andrewm:amorgan.xyz</a><br></br>bumps to 1.10</blockquote>should just bump to 1.11 and switch to modules :3</html>"
Not sure whether it chokes on every reply it encounters, but every occurrence of this error is about a reply. It doesn't prevent the reply itself to show up in nheko's UI.
No error in logs.
Avatar background isn't refreshed when the theme changes (until a restart). This causes the avatar to display the incorrect background color
If the Homeserver returns a 401 with the following body for POST /_matrix/client/r0/register
:
{
"session": "704e6a8b-d10a-4b64-92a3-d2b76e5005c1",
"flows": [
{
"stages": [
"m.login.password"
]
}
]
}
then the client will prompt for reCAPTCHA, even tho it's not provided by the Homeserver.
Following discussing in the Matrix room, it seems like m.login/password
is simply not supported. Context is here.
Copied from mujx/nheko#457
Actual behavior
Formatted message is displayed literally.
Expected behavior
Formatting applied with the markup hidden.
Steps to reproduce
Send message with the following content:
Test list:
What is displayed is this:
Test list:
<ol>
<li>One</li>
<li>Two</li>
></ol>
This is just a notice to let you know that the image you used for the screenshot on the README.md file is missing so there isn't a screenshot available at the moment for prospective users.
Ever since I made some updates, nheko stopped working. Here is the output of "nheko:":
nheko
qt5ct: using qt5ct plugin
(nheko:16326): Gtk-WARNING **: 14:36:45.686: Unable to locate theme engine in module_path: "adwaita",
(nheko:16326): Gtk-WARNING **: 14:36:45.688: Unable to locate theme engine in module_path: "adwaita",
qt5ct: D-Bus system tray: no
qt5ct: custom style sheet is disabled
[1] 16326 abort (core dumped) nheko
After running for more than an hour, I see a segfault:
Process: nheko [13088]
Path: /Applications/Nheko.app/Contents/MacOS/./nheko
Identifier: com.github.mujx.nheko
Version: 0.6.3 (0.6.3)
Code Type: X86-64 (Native)
Parent Process: bash [12119]
Responsible: nheko [13088]
User ID: 501
Date/Time: 2019-02-11 15:23:22.254 +0000
OS Version: Mac OS X 10.14 (18A391)
Report Version: 12
Anonymous UUID: E9E65648-ABB3-1C16-990C-021560FE24F3
Sleep/Wake UUID: 6AC43F4B-54CA-4943-A159-A8F7A5BE33AD
Time Awake Since Boot: 3100000 seconds
Time Since Wake: 21000 seconds
System Integrity Protection: enabled
Crashed Thread: 4
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [13088]
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff5e50dc2a mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff5e50e174 mach_msg + 60
2 com.apple.SkyLight 0x00007fff572a4d30 CGSWindowSynchronizeBacking + 174
3 com.apple.SkyLight 0x00007fff5733a2b5 SLSDeviceLock + 39
4 com.apple.AppKit 0x00007fff2eaa6cc8 lock_device + 64
5 com.apple.AppKit 0x00007fff2e9cf9ff __NSCGSWindowBackingStoreMark__block_invoke + 1097
6 com.apple.AppKit 0x00007fff2e9ce739 NSCGSTransactionRunPreCommitActionsForOrder_ + 269
7 com.apple.AppKit 0x00007fff2e9ce619 NSCGSTransactionRunPreCommitActions_ + 31
8 com.apple.AppKit 0x00007fff2e9ce5ee __39+[_NSCGSTransaction currentTransaction]_block_invoke + 34
9 com.apple.QuartzCore 0x00007fff3c2c11d3 CA::Transaction::run_commit_handlers(CATransactionPhase) + 49
10 com.apple.QuartzCore 0x00007fff3c2c1aa5 CA::Context::commit_transaction(CA::Transaction*) + 1949
11 com.apple.QuartzCore 0x00007fff3c2c0d20 CA::Transaction::commit() + 576
12 com.apple.QuartzCore 0x00007fff3c2c0a2c CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 66
13 com.apple.CoreFoundation 0x00007fff3139e95d __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
14 com.apple.CoreFoundation 0x00007fff3139e892 __CFRunLoopDoObservers + 452
15 com.apple.CoreFoundation 0x00007fff3133fd20 CFRunLoopRunSpecific + 523
16 com.apple.HIToolbox 0x00007fff305d9895 RunCurrentEventLoopInMode + 293
17 com.apple.HIToolbox 0x00007fff305d95cb ReceiveNextEventCommon + 618
18 com.apple.HIToolbox 0x00007fff305d9348 _BlockUntilNextEventMatchingListInModeWithFilter + 64
19 com.apple.AppKit 0x00007fff2e89695b _DPSNextEvent + 997
20 com.apple.AppKit 0x00007fff2e8956fa -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1362
21 com.apple.AppKit 0x00007fff2e88f75d -[NSApplication run] + 699
22 libqcocoa.dylib 0x0000000115610c7d 0x1155e4000 + 183421
23 org.qt-project.QtCore 0x0000000110f4e35e QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 398
24 org.qt-project.QtCore 0x0000000110f52ee1 QCoreApplication::exec() + 369
25 com.github.mujx.nheko 0x000000010f43ca14 main + 3092
26 libdyld.dylib 0x00007fff5e3d5085 start + 1
Thread 1:
0 libsystem_kernel.dylib 0x00007fff5e510872 __psynch_mutexwait + 10
1 libsystem_pthread.dylib 0x00007fff5e5c7da0 _pthread_mutex_firstfit_lock_wait + 96
2 libsystem_pthread.dylib 0x00007fff5e5c54c7 _pthread_mutex_firstfit_lock_slow + 226
3 libc++.1.dylib 0x00007fff5baa7b29 std::__1::mutex::lock() + 9
4 com.github.mujx.nheko 0x000000010f3efc7c 0x10f28e000 + 1449084
5 com.github.mujx.nheko 0x000000010f3eeb35 0x10f28e000 + 1444661
6 com.github.mujx.nheko 0x000000010f358902 0x10f28e000 + 829698
7 com.github.mujx.nheko 0x000000010f37e7aa 0x10f28e000 + 985002
8 com.github.mujx.nheko 0x000000010f49da1c 0x10f28e000 + 2161180
9 com.github.mujx.nheko 0x000000010f49a8a7 0x10f28e000 + 2148519
10 com.github.mujx.nheko 0x000000010f49a5a4 0x10f28e000 + 2147748
11 com.github.mujx.nheko 0x000000010f4d8cad mtx::http::Session::on_request_complete() + 93
12 com.github.mujx.nheko 0x000000010f508582 0x10f28e000 + 2598274
13 com.github.mujx.nheko 0x000000010f509712 0x10f28e000 + 2602770
14 com.github.mujx.nheko 0x000000010f50e19b 0x10f28e000 + 2621851
15 com.github.mujx.nheko 0x000000010f50dd71 boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>, boost::asio::ssl::detail::read_op<boost::asio::mutable_buffer>, boost::beast::http::detail::read_some_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::read_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::parser_is_done, std::__1::__bind<void (mtx::http::Session::*)(boost::system::error_code const&, unsigned long), std::__1::shared_ptr<mtx::http::Session>, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> > > > >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) + 465
16 com.github.mujx.nheko 0x000000010f469bd4 0x10f28e000 + 1948628
17 com.github.mujx.nheko 0x000000010f46970a 0x10f28e000 + 1947402
18 com.github.mujx.nheko 0x000000010f469565 0x10f28e000 + 1946981
19 libboost_thread-mt.dylib 0x000000010fd4a26c 0x10fd47000 + 12908
20 libsystem_pthread.dylib 0x00007fff5e5c733d _pthread_body + 126
21 libsystem_pthread.dylib 0x00007fff5e5ca2a7 _pthread_start + 70
22 libsystem_pthread.dylib 0x00007fff5e5c6425 thread_start + 13
Thread 2:
0 libsystem_kernel.dylib 0x00007fff5e5111b2 __psynch_cvwait + 10
1 libsystem_pthread.dylib 0x00007fff5e5ca5cb _pthread_cond_wait + 724
2 com.github.mujx.nheko 0x000000010f469a6a 0x10f28e000 + 1948266
3 com.github.mujx.nheko 0x000000010f46970a 0x10f28e000 + 1947402
4 com.github.mujx.nheko 0x000000010f469565 0x10f28e000 + 1946981
5 libboost_thread-mt.dylib 0x000000010fd4a26c 0x10fd47000 + 12908
6 libsystem_pthread.dylib 0x00007fff5e5c733d _pthread_body + 126
7 libsystem_pthread.dylib 0x00007fff5e5ca2a7 _pthread_start + 70
8 libsystem_pthread.dylib 0x00007fff5e5c6425 thread_start + 13
Thread 3:
0 libsystem_kernel.dylib 0x00007fff5e511aa6 __write_nocancel + 10
1 libsystem_c.dylib 0x00007fff5e463920 _swrite + 87
2 libsystem_c.dylib 0x00007fff5e45c4e3 __sflush + 87
3 libsystem_c.dylib 0x00007fff5e45ec0f __sfvwrite + 798
4 libsystem_c.dylib 0x00007fff5e45eeed fwrite + 136
5 com.github.mujx.nheko 0x000000010f3f7a46 0x10f28e000 + 1481286
6 com.github.mujx.nheko 0x000000010f3eeb35 0x10f28e000 + 1444661
7 com.github.mujx.nheko 0x000000010f358902 0x10f28e000 + 829698
8 com.github.mujx.nheko 0x000000010f37e7aa 0x10f28e000 + 985002
9 com.github.mujx.nheko 0x000000010f49da1c 0x10f28e000 + 2161180
10 com.github.mujx.nheko 0x000000010f49a8a7 0x10f28e000 + 2148519
11 com.github.mujx.nheko 0x000000010f49a5a4 0x10f28e000 + 2147748
12 com.github.mujx.nheko 0x000000010f4d8cad mtx::http::Session::on_request_complete() + 93
13 com.github.mujx.nheko 0x000000010f508582 0x10f28e000 + 2598274
14 com.github.mujx.nheko 0x000000010f509712 0x10f28e000 + 2602770
15 com.github.mujx.nheko 0x000000010f50e19b 0x10f28e000 + 2621851
16 com.github.mujx.nheko 0x000000010f50dd71 boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>, boost::asio::ssl::detail::read_op<boost::asio::mutable_buffer>, boost::beast::http::detail::read_some_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::read_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::parser_is_done, std::__1::__bind<void (mtx::http::Session::*)(boost::system::error_code const&, unsigned long), std::__1::shared_ptr<mtx::http::Session>, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> > > > >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) + 465
17 com.github.mujx.nheko 0x000000010f469bd4 0x10f28e000 + 1948628
18 com.github.mujx.nheko 0x000000010f46970a 0x10f28e000 + 1947402
19 com.github.mujx.nheko 0x000000010f469565 0x10f28e000 + 1946981
20 libboost_thread-mt.dylib 0x000000010fd4a26c 0x10fd47000 + 12908
21 libsystem_pthread.dylib 0x00007fff5e5c733d _pthread_body + 126
22 libsystem_pthread.dylib 0x00007fff5e5ca2a7 _pthread_start + 70
23 libsystem_pthread.dylib 0x00007fff5e5c6425 thread_start + 13
Thread 4 Crashed:
0 libssl.1.0.0.dylib 0x000000010ff2e2ac 0x10ff1b000 + 78508
1 libssl.1.0.0.dylib 0x000000010ff2e1ff ssl3_setup_read_buffer + 114
2 libssl.1.0.0.dylib 0x000000010ff2c42b ssl3_read_bytes + 73
3 libssl.1.0.0.dylib 0x000000010ff2990e 0x10ff1b000 + 59662
4 com.github.mujx.nheko 0x000000010f4e1343 0x10f28e000 + 2437955
5 com.github.mujx.nheko 0x000000010f50d467 0x10f28e000 + 2618471
6 com.github.mujx.nheko 0x000000010f50e19b 0x10f28e000 + 2621851
7 com.github.mujx.nheko 0x000000010f50dd71 boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>, boost::asio::ssl::detail::read_op<boost::asio::mutable_buffer>, boost::beast::http::detail::read_some_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::read_op<boost::asio::ssl::stream<boost::asio::basic_stream_socket<boost::asio::ip::tcp> >, boost::beast::basic_flat_buffer<std::__1::allocator<char> >, false, boost::beast::http::parser<false, boost::beast::http::basic_string_body<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<char> >, boost::beast::http::detail::parser_is_done, std::__1::__bind<void (mtx::http::Session::*)(boost::system::error_code const&, unsigned long), std::__1::shared_ptr<mtx::http::Session>, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&> > > > >::do_complete(void*, boost::asio::detail::scheduler_operation*, boost::system::error_code const&, unsigned long) + 465
8 com.github.mujx.nheko 0x000000010f469bd4 0x10f28e000 + 1948628
9 com.github.mujx.nheko 0x000000010f46970a 0x10f28e000 + 1947402
10 com.github.mujx.nheko 0x000000010f469565 0x10f28e000 + 1946981
11 libboost_thread-mt.dylib 0x000000010fd4a26c 0x10fd47000 + 12908
12 libsystem_pthread.dylib 0x00007fff5e5c733d _pthread_body + 126
13 libsystem_pthread.dylib 0x00007fff5e5ca2a7 _pthread_start + 70
14 libsystem_pthread.dylib 0x00007fff5e5c6425 thread_start + 13
nheko doesn't generate a thumbnail when sending an image message.
This seems to be a problem on riot where the image is not displayed in the timeline.
This is the JSON content of such a message:
"content": {
"body": "test.png",
"info": {
"h": <height>,
"mimetype": "image/png",
"size": <size>,
"thumbnail_info": {
"h": 0,
"mimetype": "",
"size": 0,
"w": 0
},
"thumbnail_url": "",
"w": <width>
},
"msgtype": "m.image",
"url": "mxc://example.com/<hash>"
},
Since mtxclient has a get_thumbnail function I think the issue is simply nheko not using it when sending a message. I haven't figured out how to fix this yet. Maybe someone else can.
Wouldn't it be better to clean up text in text input after switch to other channel? Makes no logic to implicitly share textbox contents between different rooms.
This, or even saving state per room, would be better, wouldn't it?
Thinking about this in context of replies implementation, AFAIK you can't reply with referenced message into another channel, so this should be prevented in UI. Doing so at least for plain messages would be a good start.
Nheko or mtxclient suffers for memory corruption issues that manifest as display artifacts in text messages. May also cause crashes.
I'd love to see .well-known support to autofill the homeserver address. Right now if I enter @aaron:raim.ist, it autofills raim.ist which is a good guess but isn't actually where my server is.
Spec: https://matrix.org/docs/spec/client_server/r0.4.0.html#well-known-uri
it's the Matrix, you know.
In TextLabel::handleLinkActivation we currently special case matrix.to URLs, so we can open the user profile. This should be extended to handle room links, so clicking on In reply to
would navigate to that message instead of opening in a browser.
Specification of matrix.to links.
Room links can be either a link to a room or a link to a specific event (which comes after the / after the room id).
So we would first have to check, if we already joined the room. If not, we should probably allow joining the room if joining is possible without an invitation. If we have already joined (or we can peek?), we should show the room.
Additionally, if the link contains an event and we can see that event in the room, we should scroll the view to that specific event and maybe highlight it.
The hard part of this is probably handling unjoined rooms and scrolling to the correct position. I think scrolling is the important part, as it makes seeing the context of a reply much easier.
the following strings seem to be missing in the translation files in resources/langs/:
in the room creation dialog, the labels of the drop-down menus for "Room Visibility" and "Room Preset" as well as the "Cancel" and "Create room" buttons are missing.
btw:
the capitalization of "Create room" - shouldn't that read "Create Room", in line with the rest of the strings there?
and shouldn't there be colons after "Topic", "Direct Chat", "Room Preset", etc.?
What exactly do you mean by "Home Server"? Can't find any info about it anywhere.
No error shows up when I do try to sign up.
Allow users to specify which rooms they receive notifications for, and which situations they get notifications in. For example, only notify when the user is mentioned, or notify when the text contains some matching text, etc.
New chat entry appears in left sidebar, although it's not clickable and this remains even after reboot.
New chats should be accessible at any circumstances.
Two instances of matrix clients, riot (R), nheko(N).
R user invites N to 1:1 chat.
If a URL is used for "Home Server" on the register page, nothing happens in the GUI upon clicking "Register".
The console shows the following:
[net] [warning] failed to register: status_code (-1472400592)
If the hostname without https://
or http://
is used instead, it works. It would be good if the textfield label was clearer on the expect value, or handle URL protocol scheme gracefully.
[2019-02-11 10:43:16.041] [db] [error] failed to save state after initial sync: mdb_dbi_open: MDB_DBS_FULL: Environment maxdbs limit reached
[2019-02-11 10:43:16.041] [net] [info] trying initial sync
It would be nice to see background for hovered emoji, as well as provide some feedback when it is actually inserted into text (e.g. blink animation in background).
Currently emoji widget looks dull enough.
When building with dependencies mtxclient fails to build.
Running the commands from the readme:
cmake -Hdeps -B.deps
cmake --build .deps
The second command fails with
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp: In function ‘std::__cxx11::string mtx::crypto::base642bin(const string&)’:
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp:611:42: error: ‘sodium_base64_VARIANT_ORIGINAL’ was not declared in this scope
sodium_base64_VARIANT_ORIGINAL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp:611:72: error: ‘sodium_base642bin’ was not declared in this scope
sodium_base64_VARIANT_ORIGINAL);
^
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp: In function ‘std::__cxx11::string mtx::crypto::bin2base64(const string&)’:
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp:626:63: error: ‘sodium_base64_VARIANT_ORIGINAL’ was not declared in this scope
create_buffer(sodium_base64_encoded_len(bin.size(), sodium_base64_VARIANT_ORIGINAL));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp:626:93: error: ‘sodium_base64_encoded_len’ was not declared in this scope
create_buffer(sodium_base64_encoded_len(bin.size(), sodium_base64_VARIANT_ORIGINAL));
^
/.../nheko/.deps/build/mtxclient/lib/crypto/client.cpp:632:57: error: ‘sodium_bin2base64’ was not declared in this scope
sodium_base64_VARIANT_ORIGINAL);
^
CMakeFiles/matrix_client.dir/build.make:110: recipe for target 'CMakeFiles/matrix_client.dir/lib/crypto/client.cpp.o' failed
Nheko and all its dependencies compile.
git clone https://github.com/Nheko-Reborn/nheko.git && cd nheko && cmake -Hdeps -B.deps && cmake --build .deps
TDLR: I think there should be a forced text wrapping width for error messages on the login screen.
Long version:
If a startup error shown in nheko's login screen happens to be quite long, it will cause the width of window to expand far beyond the width of the monitor. In my case, nheko was showing a message concerning being unable to upload one time keys. The message looked like this but all on one line. I have redacted portions of it with R
and r
, but have tried to maintain same text length:
Failed to setup encryption keys. Server response: One time key signed_curve25519:AAAAAQ already exists. Old key: {"key":"RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR","signatures":{"RRRRRRRRRRRRRRRRRRRRR":{"ed25519:rrrrrrrrrr":"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"}}}; new key: {'key': 'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr', 'signatures': {'rrrrrrrrrrrrrrrrrrrrr': {'ed25519:rrrrrrrrrr': 'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'}}} 400
In terms of how I was able to reproduce this message in the first place, I believe it may have happened because, with a previous version of nheko, I attempted but failed to login in (due to the sync loop issue #19). I more recently tried a new version to see if that problem is fixed, and this is when i encountered this issue.
Perhaps, with the older version of nheko that had the sync issue, it got part way through the login process such that certain aspects of the key management were finished, but some other parts of it were unfinished, resulting in this error the next time I started nheko.
Sometimes I want to keep nheko's window open without marking anything as read. It would be nice if nheko did not open any chat at startup (or category change) and closed any open one when pressing esc (like when pressing the "home" button on riot desktop/web it got deleted :( ).
edit: the home button was removed from riot (now element), but you can get a similar effect by pressing the communities button. telegram desktop does this well (press esc)
Font size and font family stay the same
Change font size or font family in settings
It would be nice if nheko supported the community feature, aka groups whenever possible.
Some thread dumps during the issue:
https://ocean.joedonofry.com/_matrix/media/v1/download/matrix.org/OCbolWTrxhFzyjKBxcMUURWl
https://ocean.joedonofry.com/_matrix/media/v1/download/matrix.org/ylDUzVbqdciaUMdmxwvgSbPa
https://ocean.joedonofry.com/_matrix/media/v1/download/matrix.org/yGDqVLUaBrKFknBCJVXbCosm
Additional context for the issues:
https://matrix.to/#/!evAqkPHZuPHIGeenhi:ocean.joedonofry.com/$1553636226466434ctUaC:matrix.org?via=ocean.joedonofry.com&via=matrix.org&via=ralith.com
From @nihirash on October 8, 2018 19:45
Crashes on start
Runs correctly
Just use username with non latin symbols. For example "Обычный пользователь"
Doesn't created. Crashed on trying to create file.
Copied from original issue: mujx/nheko#459
Switching between chats constantly eats memory.
Not eating memory.
Switch between two chats for a while.
There's currently no way in nheko to reply to a specific message (like in Riot, for instance). Users should have the ability (perhaps via right-clicking on a message) to quote or reply to that specific message
Message input background is overriding border of text area when typing multiline text
Border line should always be visible
There was an issue missing for E2EE. I believef fully-featured E2EE clients is what is missing in the matrix-verse.
Do you plan to tackle E2EE @redsky17?
I use my own installation of Synapse (domain bimp.fr).
Using Nheko I cannot upload files larger than 1MB approximately ("Failed to upload image. Please try again").
There is no problem to upload files even larger than this using Riot (the same server, the same room, the same account).
Nothing in logs (how can I increase the debug level?)
I think that it is a problem of timeout too short, but I cannot find a place where i can increase it.
I can build Nheko from sources using provided CMake files and instructions from GitHub, so I can do more tests, but I cannot debug (no working IDE for Qt/C++).
please enable configuring a SOCKS proxy so nheko's connections can be proxied through Tor using a local Tor daemon.
Support them per:
https://matrix.org/docs/spec/client_server/unstable.html#encrypted-files
[2019-02-11 10:43:16.041] [db] [error] failed to save state after initial sync: mdb_dbi_open: MDB_DBS_FULL: Environment maxdbs limit reached
[2019-02-11 10:43:16.041] [net] [info] trying initial sync
It would be awesome if nheko was published on flathub. It is the only proper matrix client that supports E2EE, everyone should be able to easily use it.
Nheko's key import/export was originally implemented prior to the specification for key format existing. As such, the format nheko currently uses does not adhere to the specification.
See specification here:
https://matrix.org/docs/spec/client_server/unstable.html#key-export-format
This issue primarily requires updates to mtxclient, rather than nheko itself. As such, the primary tracking of the progress of this issue will be done via mtxclient#2.
The first part went smoothly
https://paste.debian.net/1067980/
The second part is where it gives out ... the last lines are -
-- Build files have been written to: /home/shirish/games/nheko-reborn/.deps/build/mtxclient
[ 95%] Performing build step for 'MatrixClient'
Scanning dependencies of target matrix_client
[ 2%] Building CXX object CMakeFiles/matrix_client.dir/lib/http/client.cpp.o
In file included from /home/shirish/games/nheko-reborn/.deps/build/mtxclient/lib/http/client.cpp:5:
/home/shirish/games/nheko-reborn/.deps/build/mtxclient/include/mtxclient/http/client.hpp:15:10: fatal error: json.hpp: No such file or directory
#include <json.hpp>
^~~~~~~~~~
compilation terminated.
make[5]: *** [CMakeFiles/matrix_client.dir/build.make:63: CMakeFiles/matrix_client.dir/lib/http/client.cpp.o] Error 1
make[4]: *** [CMakeFiles/Makefile2:73: CMakeFiles/matrix_client.dir/all] Error 2
make[3]: *** [Makefile:130: all] Error 2
make[2]: *** [CMakeFiles/MatrixClient.dir/build.make:114: MatrixClient-prefix/src/MatrixClient-stamp/MatrixClient-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:73: CMakeFiles/MatrixClient.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
In Riot, clicking on a room alias like #dotnet:half-shot.uk allows you to join the room
Here's the old package build. I tried to do it myself, replacing the url's, but my build failed due to some qt5 error.
Message searching would be really great. I think lack of search is the one thing that causes me to still have to open up Riot frequently, which is a real bummer.
$ flatpak install flathub io.github.mujx.Nheko
produces the following info right at the end:
Info: io.github.mujx.Nheko is end-of-life, with reason: This application is no longer maintained.
Changes complete.
The app does still run fine.
Although admittedly I also don't really know what causes an EOL info like that.
Not have it say the app is EOL. Or not advertise flatpak as a viable installation option. Or make sure the flatpak gets updated on release (I am guessing that would possibly be why it says its EOL?).
flatpak install flathub io.github.mujx.Nheko
$ flatpak install flathub io.github.mujx.Nheko
Looking for matches…
io.github.mujx.Nheko permissions:
ipc network pulseaudio wayland
x11 dri file access [1] dbus access [2]
[1] home, xdg-config/kdeglobals:ro, xdg-run/dconf, ~/.config/dconf:ro
[2] com.canonical.AppMenu.Registrar, com.canonical.AppMenu.Registrar.*,
org.freedesktop.Notifications, org.kde.StatusNotifierWatcher
ID Arch Branch Op Remote Download
1. [✓] org.freedesktop.Platform.GL.nvidia-390-116 x86_64 1.4 u flathub 47,1 MB / 47,6 MB
2. [✓] org.freedesktop.Platform.GL.nvidia-390-77 x86_64 1.4 u flathub 47,3 MB / 47,8 MB
3. [✓] io.github.mujx.Nheko x86_64 stable i flathub 3,0 MB / 3,0 MB
Info: io.github.mujx.Nheko is end-of-life, with reason: This application is no longer maintained.
Changes complete.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.