Giter Club home page Giter Club logo

nheko's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nheko's Issues

Make available in Homebrew?

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

System:

  • Installation method: Homebrew
  • Operating System: macOS

Cannot invite users to new room

  • Nheko version: 0.6.3 Darwin
  • Installation method: Built from sources
  • Operating System: Mac OS X 10.13.6

Actual behavior

No notification shown for the invited user.

Expected behavior

User should receive a notification.

Steps to reproduce

Create room, invite a user from the same domain.

NOTE: User invited to direct chat correctly receives the invitation.

libolm.so.2: cannot open shared object file

System:

  • Nheko version: Latest in AUR
  • Installation method: AUR
  • Operating System: Arch

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

Generate Avatars for Users Similarly to GitHub

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.

Why does nheko-reborn download boost 1.68 when readme says 1.66 or greater

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'

General UI Improvements

These should get broken out into their own issues at some point. Just keeping a running log of the things I encounter.

Notifications

Notifications aren't cleared when room is read

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 missing user avatar and other display issues

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.

Style

Link Text Not Controlled by QSS styles

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.

General Style Issues

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.

nheko seems to choke on replies

System:

  • Nheko version: 0.6.3
  • Installation method: AppImage
  • Operating System: Arch Linux
  • Desktop Environment: Gnome Shell (3.30.2)

Actual behavior

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.

Expected behavior

No error in logs.

At registration screen, reCAPTCHA is always tried even if not in registration flows

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.

Formatted messages are displayed literally

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:

  1. One
  2. Two

What is displayed is this:

Test list:
<ol>
<li>One</li>
<li>Two</li>
></ol>

Screenshot on the README page is missing

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.

Nheko doesn't open in antergos (qt5ct issues?)

System:

  • Nheko version: I have the nheko version from aur.
  • Installation method: AUR
  • Operating System: Antergos
  • Desktop Environment: i3wm

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

Exception when running on MacOS

System:

  • Nheko version: 0.6.3
  • Installation method: dmg
  • Operating System: macos

Actual behavior

After running for more than an hour, I see a segfault:

Logs

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

Thumbnail information is missing

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.

Suggestion: don't share message inputs between chat pages

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.

Memory Corruption

Nheko or mtxclient suffers for memory corruption issues that manifest as display artifacts in text messages. May also cause crashes.

Handle matrix.to room(event) links

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.

missing translation strings

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

Add Per-Room Notification Preferences

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 is not accessible when it is initiated by other user

System:

  • Nheko version: 0.6.3-0c53a87 | Linux
  • Installation method: build
  • Operating System: Arch
  • Qt version: 5.12.1
  • C++ compiler: gcc 8.2.1
  • Desktop Environment: KDE

Actual behavior

New chat entry appears in left sidebar, although it's not clickable and this remains even after reboot.

Expected behavior

New chats should be accessible at any circumstances.

Steps to reproduce

Two instances of matrix clients, riot (R), nheko(N).

R user invites N to 1:1 chat.

At registration screen, silent failure if a URL is used for Home Server value

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.

Initial Sync loop

[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

Emoji widget lacks visual feedback for user

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.

Building dependencies fails

When building with dependencies mtxclient fails to build.

System:

  • Nheko version: 6ab12b2 and a671bd6
  • Installation method: local build
  • Operating System: Debian Stretch
  • Qt version: 5.7.1
  • C++ compiler: GCC 6.3
  • Desktop Environment: KDE Plasma 5.8.6

Actual behavior

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

Expected behavior

Nheko and all its dependencies compile.

Steps to reproduce

git clone https://github.com/Nheko-Reborn/nheko.git && cd nheko && cmake -Hdeps -B.deps && cmake --build .deps 

Logs

https://pastebin.com/ZxNHS1Uq

One time key error message can cause the nheko login screen to become very wide

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.

Close chat when pressing esc. Start nheko with closed chat.

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)

Community Support

It would be nice if nheko supported the community feature, aka groups whenever possible.

SSL-related crash in some cases

Windows client crashes if user named with non latin symbols

From @nihirash on October 8, 2018 19:45

System:

  • Nheko version: nheko-v0.6.2
  • Installation method: official installer
  • System: Win 10

Actual behavior

Crashes on start

Expected behavior

Runs correctly

Steps to reproduce

Just use username with non latin symbols. For example "Обычный пользователь"

Logs

Doesn't created. Crashed on trying to create file.

Copied from original issue: mujx/nheko#459

Memory leak when switching between chats.

System:

  • Nheko 0.6.1
  • Installation method: Main repository
  • Operating System: Debian Testing
  • Desktop Environment: Gnome Shell (Wayland)

Actual behavior

Switching between chats constantly eats memory.

Expected behavior

Not eating memory.

Steps to reproduce

Switch between two chats for a while.

Implement Proper Replies

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

System:

  • Nheko version: 0.6.3-0c53a87 | Linux
  • Installation method: build
  • Operating System: Arch
  • Qt version: 5.12.1
  • C++ compiler: gcc 8.2.1
  • Desktop Environment: KDE

Actual behavior

Message input background is overriding border of text area when typing multiline text

Expected behavior

Border line should always be visible

Steps to reproduce

Type 3+ lines message
buggedtextinput

File upload - size limited

  • Nheko version: 0.6.3 Darwin
  • Installation method: DMG from Github and local build (same error)
  • Operating System: Mac OS X 10.13.6
  • Qt version: I don't know
  • C++ compiler: I don't know

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++).

proxy setup

please enable configuring a SOCKS proxy so nheko's connections can be proxied through Tor using a local Tor daemon.

Initial Sync loop

[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

Publish nheko on flathub

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.

Unable to compile, having json.hpp

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

nheko-reborn-cmake-build-deps.txt

Linkify room aliases

In Riot, clicking on a room alias like #dotnet:half-shot.uk allows you to join the room

Message searching [feature]

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 EOL info

System:

  • Nheko version: 0.6.2
  • Installation method: flatpak
  • Operating System: ubuntu
  • Desktop Environment: plasma

Actual behavior

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

Expected behavior

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?).

Steps to reproduce

flatpak install flathub io.github.mujx.Nheko

Logs

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.