Git Product home page Git Product logo

abaddon's People

Contributors

4hg avatar 9xn avatar altoids1 avatar asnelling avatar dragontamer8740 avatar dyxel avatar fwankil avatar jkozera avatar knightmurloc avatar mesabytes avatar nexadn avatar ouwou avatar ryze312 avatar themorc avatar trnxdev avatar uninsane avatar zirixcz avatar

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

abaddon's Issues

Channel tabs

channel tabs are like the things at the top of the browser. this issue is for me to keep track of stuff because i am bad at remembering things, and maybe if someone comes along they can chime in.

this is what they look like right now (ugly). it uses libhandy but it will be an optional dependency

abaddon_EtTtynIbd7

stuff:

  • basic tab stuff
  • go back and forward/history
  • shortcuts and stuff (ctrl+1, ctrl+2, ctrl+tab, etc) (probably not because shortcuts are irritating to implement, and tab is basically impossible)
  • add icon for dms
  • remove tabs when the channel is deleted or becomes otherwise unaccessable
  • fix open tab when there arent any open channels to begin with
  • tabs dont respect mute state
  • ensure threads behave properly
  • make it not look gross

You can't hide channels/categories.

You can't hide channels. in the official client you would do this by muting them and then setting it to hide muted channels. i find this approch a little stupid because i think it would be nicer to have the ability to mute OR hide channels.

Crash on channel view

If I click on a DM or a guild channel abaddon crashes.

I am on arch linux.
I installed the abaddon-git AUR package and my system is up to date

here is the output

neo@fukushima ~
λ abaddon
sending {"d":{"capabilities":61,"client_state":{"guild_hashes":{},"highest_last_message_id":"0","read_state_version":0,"user_guild_settings_version":-1},"compress":false,"presence":{"activities":[],"afk":false,"since":0,"status":"online"},"properties":{"browser":"","browser_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36","browser_version":"67.0.3396.87","client_build_number":82826,"client_event_source":null,"device":"Chrome","os":"Windows","os_version":"10","referrer":"","referrer_current":"","referring_domain":"","referring_domain_current":"","release_channel":"stable","system_locale":"en-US"},"token":"[REDACTED]"},"op":2}
sending {"d":null,"op":1}
Unknown event SESSIONS_REPLACE
GET /channels/662673667809083452/messages?limit=50
sending {"d":{"activities":true,"channels":{"662673667809083452":[[0,99],[100,199]]},"guild_id":"638020853107523604","typing":true},"op":14}
/usr/bin/abaddon: line 3:  7808 Segmentation fault      (core dumped) ./abaddon
neo@fukushima ~ 6s
λ abaddon
sending {"d":null,"op":1}
sending {"d":{"capabilities":61,"client_state":{"guild_hashes":{},"highest_last_message_id":"0","read_state_version":0,"user_guild_settings_version":-1},"compress":false,"presence":{"activities":[],"afk":false,"since":0,"status":"online"},"properties":{"browser":"","browser_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36","browser_version":"67.0.3396.87","client_build_number":82826,"client_event_source":null,"device":"Chrome","os":"Windows","os_version":"10","referrer":"","referrer_current":"","referring_domain":"","referring_domain_current":"","release_channel":"stable","system_locale":"en-US"},"token":"[REDACTED]"},"op":2}
/usr/include/c++/10.2.0/optional:448: constexpr const _Tp& std::_Optional_base_impl<_Tp, _Dp>::_M_get() const [with _Tp = Snowflake; _Dp = std::_Optional_base<Snowflake, true, true>]: Assertion 'this->_M_is_engaged()' failed.
/usr/bin/abaddon: line 3:  7843 Aborted                 (core dumped) ./abaddon

The first one is the guild channel, second is the DM.
If there is a need for more information, just ask.

I hope I didn't just leak my token

Support for specifying config file and resource directory

First of all: nice work!
I just found out about abaddon and it looks very nice.

However, while trying to package it properly, I noticed a two major problems:

  • The config file is hard-coded to $(pwd)/abaddon.ini.
  • When executing abaddon, one must execute it with the directories css and res pointing to the respective source directories (or rather having their contents).

While the current approce surely is comfortable for a developer, it makes packaging the software hard, as a system-wide installation can not allow config or resource files to sit in /usr/bin, where the executable has to sit (at the very least, config files must not sit there as they need to be writable by the user who executes the binary). My current solution is this tiny wrapper script, that does the job, but is not a suitable solution, but rather a workaround:

#!/bin/sh
set -e

ABADDON_CONFIG_DIR="${HOME}/.config/abaddon"
ABADDON_RES_DIR="/usr/share/abaddon"
ABADDON_BIN="/usr/share/abaddon/abaddon"

mkdir -p "${ABADDON_CONFIG_DIR}"
cd "${ABADDON_CONFIG_DIR}"
ln -sf "${ABADDON_RES_DIR}"/css
ln -sf "${ABADDON_RES_DIR}"/res
exec "${ABADDON_BIN}"

The easiest solution would probably be to just take compile-time parameters (e.g. via a config.h.in and CMake's configure_file) to specify default locations for resource directories or implementing a fallback to /usr/share/abaddon (which is probably the resource directory appropriate for most Linux distributions).

For a config file, one might implement a mechanism to first check for a config file in pwd and then fall back to e.g. ~/.config/abaddon.ini or ~/.config/abaddon/abaddon.ini.

To support multiple configuration files, one might also allow passing the config file location via an environment variable or command-line parameter (the latter one is probably the easier to implement). The same goes for the resource directory, but it's rather unnecessary for that one, as one should always use the resources which are packaged together with the installed binary.

Crash when opening direct messages

It seems I am experiencing the same issue described #26. Whenever I open anything under direct messages, abaddon crashes. I am using Arch Linux with everything fully updated. I installed abaddon using the 'abaddon-git' AUR package.
Here is the output:

sending {"d":null,"op":1}
sending {"d":{"capabilities":125,"client_state":{"guild_hashes":{},"highest_last_message_id":"0","read_state_version":0,"user_guild_settings_version":-1},"compress":false,"presence":{"activities":[],"afk":false,"since":0,"status":"online"},"properties":{"browser":"Chrome","browser_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36","browser_version":"67.0.3396.87","client_build_number":91734,"client_event_source":null,"device":"","os":"Windows","os_version":"10","referrer":"","referrer_current":"","referring_domain":"","referring_domain_current":"","release_channel":"stable","system_locale":"en-US"},"token":"<SECRET>"},"op":2}
/usr/include/c++/11.1.0/optional:447: constexpr const _Tp& std::_Optional_base_impl<_Tp, _Dp>::_M_get() const [with _Tp = Snowflake; _Dp = std::_Optional_base<Snowflake, true, true>]: Assertion 'this->_M_is_engaged()' failed.
/usr/bin/abaddon: line 3: 2057528 Aborted (core dumped) ./abaddon

To get this output, I just launched abaddon from the command line and clicked on a DM.

Missing Markdown

Code markdown seems to be unimplemented, with and without syntax highlighting.
Abaddon:
image
Discord:
image

Hypertext too (here combined with code markdown). That's an embed only feature tho:
Abaddon:
image

Discord:
image

EDIT: Hadn't even noticed, but it seems like pretty much no markdown is supported. Thought those two were outliers.

Failed to save token in settings file

Hi, I am on ArchLinux with the newest version of abaddon installed using the "abbadon-git" package. When I close abbadon, I get this message "failed to save settings KeyFile: Failed to create file “./abaddon.ini.91VJE1”: Permission denied". The symptom of this is that I am unable to set my token from the UI.

The Discord cache could not be created!

I'm running Arch Linux with abaddon installed from the AUR and from git. When running the abaddon binary, I get the error "The Discord cache could not be created!'

White theme?

Hi! I edited css file to make theme white, but one thing missing - default nickname color is white, so i can't see it in white background.
1

This code didn't help. =(

.message-container-author text {
    color: @text_color;
}

Broken include paths when building without submodules

Me again :D

I've tried extracting the vendored dependencies and I had luck extracting IXWebsocket.
However, when I tried using an external SimpleIni, I got these compiler errors:

$ LANG=c ninja
[1/65] Building CXX object CMakeFiles/abaddon.dir/abaddon.cpp.o
FAILED: CMakeFiles/abaddon.dir/abaddon.cpp.o 
/usr/bin/c++  -I/usr/include/simpleini -I. -I/usr/include/gtkmm-3.0 -I/usr/lib64/gtkmm-3.0/include -I/usr/include/gdkmm-3.0 -I/usr/lib64/gdkmm-3.0/include -I/usr/include/gtk-3.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/lib64/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib64/pangomm-1.4/include -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/cairomm-1.0 -I/usr/lib64/cairomm-1.0/include -I/usr/include/atkmm-1.6 -I/usr/lib64/atkmm-1.6/include -I/usr/include/atk-1.0 -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include -O3 -DNDEBUG -std=gnu++17 -MD -MT CMakeFiles/abaddon.dir/abaddon.cpp.o -MF CMakeFiles/abaddon.dir/abaddon.cpp.o.d -o CMakeFiles/abaddon.dir/abaddon.cpp.o -c ../abaddon.cpp
In file included from ../abaddon.cpp:13:
../dialogs/verificationgate.hpp:4:10: fatal error: ../../discord/objects.hpp: No such file or directory
    4 | #include "../../discord/objects.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

What is interesting is that a file in .../dialogs wants to include a file in .../discord, but has ../../discord in its #include statement.

This only happens if the build configuration is patched not to use the submodules. The relevant change is:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 82d405f..d0e775e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,7 +23,8 @@ if (NOT IXWEBSOCKET_LIBRARY)
        include_directories(IXWEBSOCKET_INCLUDE_DIRS)
 endif()
 
-include_directories(thirdparty/simpleini)
+#include_directories(thirdparty/simpleini)
+include_directories("/usr/include/simpleini")
 
 if(MINGW OR WIN32)
        link_libraries(ws2_32)

Thus, include_directories(thirdparty/simpleini) not only makes the submodule files available in the build, but is also a requirement for building files unrelated to simpleini.

The workaround is simple – just add a random directory two levels below the repository root to the include path.
The fix, however, involves adjusting a bunch of files which I haven't identified yet. I just noticed – upon trying to fix .../dialogs/verificationgate.hpp – that there are multiple occurences.

I recommend just adding ${CMAKE_CURRENT_SOURCE_DIR} and make all include statements of project files (not vendored dependencies!) relative to the repository root. This avoids the hassle of figuring out what ../discord/xyz.hpp and similar mean when reading through the source code, creates a uniform look of all #include statements (thus improving the code style as well!) and – of course – avoids errors with messed up include paths like above very unlikely, if not impossible.

So, it is not a bug in the way this software is usually built, but should still be considered. Vendoring dependencies – while comfortable for software developers – is not very welcome to some distro maintainers as it introduces the problem that not only the package maintainers, but also the software developers have to keep an eye on software releases (and thus potential security fixes!) for the vendored dependencies. After all, keeping an application with network access secure and up to date is very important.

Failing to compile on Debian Linux

I've installed libgtkmm-3.0-dev, libcurl4-gnutls-dev, and nlohmann-json and git clone --recurse-submodules="subprojects" https://github.com/uowuo/abaddon && cd abaddon mkdir build && cd build && cmake .. && make gives me:

[100%] Linking CXX executable abaddon
/bin/ld: /usr/local/lib/libixwebsocket.a(IXGzipCodec.cpp.o): in function `ix::gzipCompress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
IXGzipCodec.cpp:(.text+0x1e): undefined reference to `libdeflate_alloc_compressor'
/bin/ld: IXGzipCodec.cpp:(.text+0x55): undefined reference to `libdeflate_gzip_compress_bound'
/bin/ld: IXGzipCodec.cpp:(.text+0xa0): undefined reference to `libdeflate_gzip_compress'
/bin/ld: IXGzipCodec.cpp:(.text+0xb0): undefined reference to `libdeflate_free_compressor'
/bin/ld: /usr/local/lib/libixwebsocket.a(IXGzipCodec.cpp.o): in function `ix::gzipDecompress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
IXGzipCodec.cpp:(.text+0x1a8): undefined reference to `libdeflate_alloc_decompressor'
/bin/ld: IXGzipCodec.cpp:(.text+0x237): undefined reference to `libdeflate_gzip_decompress'
/bin/ld: IXGzipCodec.cpp:(.text+0x246): undefined reference to `libdeflate_free_decompressor'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/abaddon.dir/build.make:1225: abaddon] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/abaddon.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

Seems like ixwebsocket has trouble finding libdeflate. I've tried adding -ldeflate in various parts of the code but it hasn't helped.

Blank window on sway window manager

swappy-20220204-131425

I am using Arch Linux with Sway, and the interface is blank. I am nearly certain that this is me not using the software correctly.

Please tell me if I need to add anything, I am not used to making issues on github.

figure out fonts

fonts are super finicky because gtk is lame, at least on windows
also affects reactions ending in variation selectors

Personal Issue when running make on macOS

I'm getting an error saying
/usr/local/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: 'hb.h' file not found
But I already have harfbuzz installed. What's wrong?

Discord cache could not be created/database disk image is malformed

Hi! I'm having an issue trying to launch the application. Since I'm running Arch, I installed the it through the AUR, but whenever I try to open the app I get an error, "The Discord cache could not be created!" When I launch it from a terminal it also gives me "failed to clear database: database disk image is malformed"
So glad to see this project though!!

unread indicators

these are pretty important but i don't know of a good way to display an unread indicator in the UI. having something floating on the right like the stock client seems to be pretty difficult in GTK given the current layout (mainly because of the GtkPaned)

Add a license

Please provide a license that would make the project legal to use and redistribute. Of course, the best if it would comply the Open Source Definition by OSI and Free Software Definition by FSF. That will make it possible to add abaddon to most linux distros.

Crash on DM scroll

This seems to be similar to the issue I had in #37. When I scroll up to the point that new messages need to be fetched, abaddon crashes. Just like #37, it only happens on Arch Linux with the AUR packages and not when I compile the program myself.
Output:

sending {"d":null,"op":1}
sending {"d":{"capabilities":125,"client_state":{"guild_hashes":{},"highest_last_message_id":"0","read_state_version":0,"user_guild_settings_version":-1},"compress":false,"presence":{"activities":[],"afk":false,"since":0,"status":"online"},"properties":{"browser":"Chrome","browser_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36","browser_version":"67.0.3396.87","client_build_number":91734,"client_event_source":null,"device":"","os":"Windows","os_version":"10","referrer":"","referrer_current":"","referring_domain":"","referring_domain_current":"","release_channel":"stable","system_locale":"en-US"},"token":"<TOKEN>"},"op":2}
Unknown event SESSIONS_REPLACE
GET /channels/302289852991537154/messages?limit=50
GET /channels/302289852991537154/messages?limit=50&before=879868259954987068
/usr/include/c++/11.1.0/optional:440: constexpr _Tp& std::_Optional_base_impl<_Tp, _Dp>::_M_get() [with _Tp = Snowflake; _Dp = std::_Optional_base<Snowflake, true, true>]: Assertion 'this->_M_is_engaged()' failed.
/usr/bin/abaddon: line 3: 121519 Aborted (core dumped) ./abaddon

Add reactions

I know that you can view and add reactions already displayed, but is it possible to add reactions of your own?

Crash on sending messages

if click [enter] in dm with no text yours app crash
the same if you spam in dm's multiple times like.
a
a
a
b
b
b
...
And using discord token in this discord wrapper , orginal one log me off

Keybindings support

Support for keybindings with the ability to customize them would be nice.

Show unread server and channels

In the official Discord client, there's a white dot on the server list for any server with messages you haven't read yet, and the specific channels are boldened in white. So, is it possible to do that here?

Channel-list and Members containers size

Channel-list and Members containers don't resize automatically after window resizing. This makes abaddon annoying to use in tiling window managers.
Editing css didn't help and throws an error, when using "width".

image
image
image

"Connect" grayed out on Manjaro Linux

I pasted my token in the set token dialogue and the Connect option in the menu stayed grayed out. After restarting Abaddon, the token shows up in ~/.config/abaddon/abaddon.ini, but the Connect option is still grayed out.

Request: Make releases

So I've been using abaddon for quite some time now and I still like it.

However, I find it hard to follow changes in the software and–since I had to package the software myself–I have trouble following what changes might require an adjustment of the build system (e.g. #29, which removes the need for me to create a wrapper script as a workaround) and–more importantly–when there are notable changes that might require me to update the software, since I don't get notified about updates without following all the commits that happen on master.

Thus, I propose creating releases, e.g. whenever there are notable changes or when some time has gone by without a new release, but new commits (features, bugfixes, changes) have been added to master since the last release. This makes maintenance downstream much easier, since distro maintainers just have to wait for new releases (in GitHub, this is as easy as enabling notifications for new releases) and users don't have to watch for new commits to decide when to re-build their package to get the latest version (which even is a bit counter-intuitive, from a user's perspective).

For development, planning releases with sets of issues to resolve is also a good way to organize in which order issues shall be resolved (e.g. bugfixes for the next patch-level bump, non-breaking changes for the next minor-level bump, breaking changes for the next major-level bump).

Support for saving the application state

It's a bit annoying that every time I start abaddon, I have to re-open the chats I had opened last time and collapse categories I had collapsed last time.

Thus, I'd really love to see abaddon cache some parts of the application state across application startups. This could e.g. be just done in a file inside ~/.cache/. I honestly don't know where most applications save such a state, but the cache directory is definitely not the wrong place, although settings might get lost when the cache gets cleared (which some people do manually, if the cache directory becomes too big).

issue when running cmake .. on macos

CMake Error at CMakeLists.txt:21 (add_subdirectory):
The source directory

/Users/atg/abaddon/subprojects/ixwebsocket

does not contain a CMakeLists.txt file.

Images cant be "enlarged" in the client.

every time you click on an image, it opens in the browser. in the official client, it opens a bigger view of the picture. i like it better that way but maybe still have the option to make it behave the other way.

Compilation issue on Arch linux

I'm trying to compile on arch and I just keep getting this issue:

usr/bin/ld: /usr/local/lib/libixwebsocket.a(IXSocketOpenSSL.cpp.o): undefined reference to symbol 'SSL_load_client_CA_file@@OPENSSL_1_1_0'
/usr/bin/ld: /usr/lib/libssl.so.1.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/abaddon.dir/build.make:1206: abaddon] Error 1
make[2]: Leaving directory '/home/andrew/programs/abaddon-git/src/build'
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/abaddon.dir/all] Error 2
make[1]: Leaving directory '/home/andrew/programs/abaddon-git/src/build'
make: *** [Makefile:91: all] Error 2
make: Leaving directory '/home/andrew/programs/abaddon-git/src/build'_

I tried cloning directly from the repository, and also tried the arch AUR package for abaddon

Auto-scroll / Middle Click Scroll

It will be really good if there is a feature to be able to Auto-scroll / Middle Click Scroll just like on the official Discord Windows Client. If you’re not sure what what Auto-scroll / Middle Click Scroll is, you can check it out by just using Firefox.

image

Firefox has a feature called “Use auto-scrolling” when enabled, when you middle click on a page you will be able to scroll instead of pasting text ( in Linux case ) or do nothing ( in macOS case ).

Frequent disconnects with no automatic reconnect, suggest auto-reconnect with exp. backoff

So, running abaddon for a few days now, I've noticed that sometimes the gateway connection gets closed. While this is a normal side-effect of having connections over the Internet, this gets annoying if I manually have to re-connect every time this happens. And, unfortunately, this sometimes happens several times in a few hours (which is a bit too much for my very stable network connection, but I think this is just the Discord server initiating a disconnect rather than the transport networks' effects).

I suggest automatic reconnects with something like an exponential backoff in case the disconnects happen more frequently. Ideal would be to have a behavior similar to the Discord web application, but since we don't know for sure how that one behaves, we can just assume the behavior. And usually, exponential backoff is a good tradeoff between having fast reconnects when it's possible (i.e. when the disconnects happen for a minor reason, like getting a new IPv4 address) and not flooding the network/server with reconnection attempts when the network/server doesn't allow a reconnect. This could be implemented in the hope that it doesn't make the Discord server suspicious of us having a custom client and still allowing fast automatic reconnects where applicable.

GTK4 port?

Running latest vcpkg, but apparently abaddon is based upon <GTK4 and <libsigc++3. Latest vcpkg pulls GTK4 and libsigc++3. I was able to modify the libsigc++ conflicts since it's a simple syntactic change fixable with a bunch of find replace operations (https://www.murrayc.com/permalink/2016/03/17/libsigc-stdfunction-style-syntax/), but as I tried to implement GTK4 style menu items I gave up.

If you don't have plans, what git version of vcpkg are you running so I can downgrade to the correct packages? Ttrying to compile this on x86/i686.

JSON exception on v0.1.3

When I click "Connect" button, abaddon do not connect and prints the following messages to stderr:

javi@Victor ~/P/a/a/build ((v0.1.3))> ./abaddon
error handling message (opcode 0): [json.exception.type_error.302] type must be number, but is null
Unknown event VOICE_STATE_UPDATE
Unknown event CHANNEL_UNREAD_UPDATE
Unknown event VOICE_STATE_UPDATE
Unknown event VOICE_STATE_UPDATE
Unknown event VOICE_STATE_UPDATE
Unknown event VOICE_STATE_UPDATE
Unknown event VOICE_STATE_UPDATE
Unknown event VOICE_STATE_UPDATE

It seems to only happen with version 0.1.3.

Tell if I can do anything to provide you more information about the error.

Thank you for all your work!

Mobile/Portrait Display Support

There is currently no functional discord app for pinephone, this app would be the perfect fit.

After some testing I've found that the app runs amazingly and the only real change thats needed for smooth pinephone support is collapsing the channel/member areas when the window is low width.

The only other issue I've found on pinephone is sometimes when I try to tap on channels to select them it will try to select the text instead of swap to the channel.

format timestamps

right now its an ISO 8601 timestamp which is gross and unreadable

Discord

Do you have a discord server where we can ask for help or support?

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.