# Discordo Plus A fork of [discordo](https://github.com/ayn2op/discordo) — a lightweight Discord terminal client — with image viewing and save support. ## Changes from upstream - **Image viewer**: Opens image attachments (jpeg, png, webp, gif) in a configurable viewer (`imv` by default) instead of the browser - **Save image**: `S` keybind saves the selected message's image attachment to a configurable directory - **Attachment URL fix**: Links no longer break due to bad newline handling - **Tooltip**: `o open` appears in the bottom help bar when a message has attachments or URLs ## Building on Arch Linux ### Requirements ```bash sudo pacman -S go imv wl-clipboard ``` - `go` — Go compiler (1.22+) - `imv` — lightweight image viewer (Wayland + X11, supports jpeg/png/webp/gif) - `wl-clipboard` — clipboard support on Wayland (skip if using X11) ### Build and install ```bash git clone https://gogs.altsol.dev/claude/discordo-plus.git cd discordo-plus go build -o discordo-plus . sudo install -Dm755 discordo-plus /usr/local/bin/discordo-plus ``` ### Run ```bash discordo-plus ``` On first launch, enter your Discord token or scan the QR code to log in. ## Configuration Config file location: `~/.config/discordo/config.toml` The default config is used if no file exists. See [the default config](./internal/config/config.toml) for all options. ### Image-related settings ```toml # External image viewer (must accept a file path as first argument) # Set to "default" to use xdg-open image_viewer = "imv" # Directory for saved images (supports ~/, empty = current directory) image_save_dir = "~/Pictures/discordo" [keybinds.messages_list] # Open attachments/links from selected message open = "o" # Save image attachment from selected message save_image = "S" ``` ### Notes - If `imv` installs as `imv-x11` or `imv-wayland` without a plain `imv` binary, create a symlink: ```bash sudo ln -s /usr/bin/imv-wayland /usr/local/bin/imv ``` - Alternative viewers: `feh`, `sxiv`, `nsxiv` — set via `image_viewer` in config (note: `feh` lacks WebP support) ## Usage ### Token (UI, recommended) 1. Run the `discordo` executable with no arguments. 2. Enter your token and click on the "Login" button to save it. ### Token (environment variable) Set the value of the `DISCORDO_TOKEN` environment variable to the authentication token to log in with. ```sh DISCORDO_TOKEN="OTI2MDU5NTQxNDE2Nzc5ODA2.Yc2KKA.2iZ-5JxgxG-9Ub8GHzBSn-NJjNg" discordo ``` ### QR (UI) 1. Run the `discordo` executable with no arguments. 2. Click on the "Login with QR" button. 3. Follow the instructions in the QR Login screen. ## Configuration The configuration file allows you to configure and customize the behavior, keybindings, and theme of the application. - Unix: `$XDG_CONFIG_HOME/discordo/config.toml` or `$HOME/.config/discordo/config.toml` - Darwin: `$HOME/Library/Application Support/discordo/config.toml` - Windows: `%AppData%/discordo/config.toml` Discordo uses the default configuration if a configuration file is not found in the aforementioned path; however, the default configuration file is not written to the path. [The default configuration can be found here](./internal/config/config.toml). > [!IMPORTANT] > Automated user accounts or "self-bots" are against Discord's Terms of Service. I am not responsible for any loss caused by using "self-bots" or Discordo. ## License Copyright (C) 2025-present ayn2op This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the [LICENSE](./LICENSE) file for the full license text.