Add saved GIF picker and docs
All checks were successful
Release App / release-app (push) Successful in 46s

This commit is contained in:
2026-04-26 12:50:18 +03:00
parent 1d74c41657
commit c6e2a43e4b
9 changed files with 569 additions and 44 deletions

View File

@@ -7,7 +7,10 @@ A minimal Telegram terminal client built with `ncurses` and TDLib.
- interactive login flow inside the TUI
- chat list in the left pane
- message view in the right pane
- send plain text messages
- keyboard-first text compose, reply, edit, forward, and delete flows
- attachment browser and inline media preview
- clipboard image sending with `>paste` / `>clip`
- saved GIF picker backed by Telegram saved animations
- scroll chats and message history with the keyboard
## Requirements
@@ -50,11 +53,12 @@ Or start the app without env vars and enter them interactively when prompted.
When entered in the TUI, the app now stores `api_id` and `api_hash` in
`~/.local/share/telegram-tui/config.json` and reuses them on later launches.
Clipboard image sending via `>paste` or `>clip` requires an external clipboard tool:
- `wl-clipboard` on Wayland or KDE Plasma Wayland
- `xclip` on X11
Clipboard image sending via `>paste` or `>clip` supports:
- raw clipboard images via `wl-clipboard` on Wayland or KDE Plasma Wayland
- raw clipboard images via `xclip` on X11
- KDE Klipper clipboard entries that point to a local image file via `qdbus`/`qdbus6`
Klipper by itself is not a supported image backend for this feature.
Klipper by itself is still not a raw image backend for this feature.
To use Telegram test servers instead of production:
@@ -100,7 +104,33 @@ as `v1.8.63`. Then update `TDLIB_RELEASE_TAG` in
- `Tab`: switch focus between chats and messages
- `Enter`: open the selected chat
- `i`: start composing a message
- `a`: prepare a reply to the latest message
- `g`: open the saved GIF picker for the current account
- `m`: open the attachments browser for the current chat
- `o`: open the selected attachment from the message pane
- `PgUp` / `PgDn`: scroll the current message view
- `r`: reload chats or history
- `Esc`: cancel current input
- `q`: quit
## Compose Commands
While composing, these commands are available:
- `>r <msg> [text]`: prepare a reply to a message reference
- `>e <msg> <text>`: edit one of your messages
- `>f <msg...>`: forward one or more messages
- `>d <msg...>`: delete one or more of your messages
- `>paste [caption]` or `>clip [caption]`: send an image from the clipboard
Message references can be a visible message number such as `12`, a raw Telegram message id,
or a range/list such as `3,5,8-10` where supported.
## Saved GIF Picker
Press `g` in an open chat to fetch saved animations from the account and open the picker.
Use `Up` / `Down` to move, `r` to refresh, and `Enter` to send the selected GIF.
If the GIF file is already cached locally, the picker renders a static preview frame using the
same preview backend as other media. For image previews, install one of `chafa`, `kitten`, or
`img2sixel`; for video/GIF thumbnail extraction, install `ffmpegthumbnailer` or `ffmpeg`.