.github/workflows | ||
.readme | ||
ci | ||
cmake | ||
components | ||
css | ||
dialogs | ||
discord | ||
res | ||
thirdparty | ||
windows | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
abaddon.cpp | ||
abaddon.hpp | ||
CMakeLists.txt | ||
emojis.cpp | ||
emojis.hpp | ||
filecache.cpp | ||
filecache.hpp | ||
http.cpp | ||
http.hpp | ||
imgmanager.cpp | ||
imgmanager.hpp | ||
MurmurHash3.cpp | ||
MurmurHash3.h | ||
README.md | ||
settings.cpp | ||
settings.hpp | ||
util.cpp | ||
util.hpp |
Screenshots
Building:
Windows:
git clone https://github.com/uowuo/abaddon && cd abaddon
vcpkg install gtkmm:x64-windows nlohmann-json:x64-windows ixwebsocket:x64-windows zlib:x64-windows simpleini:x64-windows sqlite3:x64-windows openssl:x64-windows curl:x64-windows
mkdir build && cd build
cmake -G"Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE=c:\path\to\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DVCPKG_TARGET_TRIPLET=x64-windows ..
- Build with Visual Studio
Or, do steps 1 and 2, and open CMakeLists.txt in Visual Studio if vcpkg integrate install
was run
Mac:
git clone https://github.com/uowuo/abaddon && cd abaddon
brew install gtkmm3 nlohmann-json
mkdir build && cd build
cmake ..
make
Linux:
- Install dependencies:
libgtkmm-3.0-dev
,libcurl4-gnutls-dev
, and nlohmann-json git clone https://github.com/uowuo/abaddon && cd abaddon
mkdir build && cd build
cmake ..
make
Downloads (from CI):
- Windows: here
- MacOS: here unsigned, unpackaged, requires gtkmm3 (e.g. from homebrew)
- Linux: here unpackaged (for now), requires gtkmm3. built on Ubuntu 18.04 + gcc9
Make sure you start from the directory where css
and res
are
Dependencies:
TODO:
- Voice support
- Unread indicators
- User status
- Nicknames
- Server/user management
- A bunch of other stuff
Styling
CSS selectors
.channel-list - Container of the channel list
.channel-row - All rows within the channel container
.channel-row-channel - Only rows containing a channel
.channel-row-category - Only rows containing a category
.channel-row-guild - Only rows containing a guild
.channel-row-label - All labels within the channel container
.nsfw - Applied to channel row label's and their container for NSFW channels
.messages - Container of user messages
.message-container - The container which holds a user's messages
.message-container-author - The author label for a message container
.message-container-timestamp - The timestamp label for a message container
.message-container-extra - Label containing BOT/Webhook
.message-text - The text of a user message
.message-attachment-box - Contains attachment info
.message-reply - Container for the replied-to message in a reply (these elements will also have .message-text set)
.reaction-box - Contains a reaction image and the count
.reacted - Additional class for reaction-box when the user has reacted with a particular reaction
.reaction-count - Contains the count for reaction
.completer - Container for the message completer
.completer-entry - Container for a single entry in the completer
.completer-entry-label - Contains the label for an entry in the completer
.completer-entry-image - Contains the image for an entry in the completer
.embed - Container for a message embed
.embed-author - The author of an embed
.embed-title - The title of an embed
.embed-description - The description of an embed
.embed-field-title - The title of an embed field
.embed-field-value - The value of an embed field
.embed-footer - The footer of an embed
.members - Container of the member list
.members-row - All rows within the members container
.members-row-label - All labels in the members container
.members-row-member - Rows containing a member
.members-row-role - Rows containing a role
.members-row-avatar - Contains the avatar for a row in the member list
Settings
Settings are configured (for now) by editing abaddon.ini
This listing is organized by section.
For example, memory_db would be set by adding memory_db = true
under the line [discord]
discord
- memory_db (true or false, default false) - if true, Discord data will be kept in memory as opposed to on disk
- token (string) - Discord token used to login, this can be set from the menu
- prefetch (true or false, default false) - if true, new messages will cause the avatar and image attachments to be automatically downloaded
http
- user_agent (string) - sets the user-agent to use in HTTP requests to the Discord API (not including media/images)
- concurrent (int, default 10) - how many images can be concurrently retrieved
gui
- member_list_discriminator (true or false, default true) - show user discriminators in the member list
- emojis (true or false, default true) - resolve unicode and custom emojis to images. this needs to be false to allow GTK to render emojis by itself
- css (string) - path to the main CSS file
- animations (true or false, default true) - use animated images where available (e.g. server icons, emojis, avatars). false means static images will be used
misc
- linkcolor (string) - color to use for links in messages