/gurk-rs

Signal Messenger client for terminal

Primary LanguageRustGNU Affero General Public License v3.0AGPL-3.0

gurk 🥒

CI chat

Signal Messenger client for terminal.

screenshot

Installation

Pre-compiled binary

Download a pre-compiled binary from Releases for following targets:

  • x86-64 Linux GNU
  • x86-64 Linux musl
  • aarch64 Linux GNU
  • aarch64 Linux musl (>= v0.2.4 only)
  • x86-64 Darwin
  • aarch64 Darwin

From source (using cargo)

cargo install --git https://github.com/boxdot/gurk-rs gurk

Arch Linux

Packaged in the AUR: gurk-git and gurk-bin

Nix/NixOS

Either per user:

$ nix-env --install gurk-rs

or system-wide:

environment.systemPackages = with pkgs; [ gurk-rs ];

Usage

Run

gurk

On the first run, it will open a QR code in your favorite image viewer, such that you can link the client as a new device. This will also create a configuration file at the default config location. For the configuration directives, see src/config.rs.

Note: The binary cannot be published on crates.io, because it depends on several official Signal libraries that are not available on crates.io.

Chat

chat-qr

Features

  • Store data in the db from presage's Manager instead of a JSON file.
  • Encrypt the storage by default.
  • Notifications over dbus or similar.
  • Scrolling of messages.
  • Reply functionality to a single message.
  • Mouse navigation (works for channels, missing for the messages list).
  • Search of messages/chats. Add quick switch between chats by name.
  • Multiline messages; the Enter key sends the message, Alt+Enter switches modes.
  • Viewing/sending of attachments.
  • Support for blocked contacts/groups.
  • Reactions with emojis.
  • Open URL in selected message.

Key bindings

  • App navigation
    • f1 Toggle help panel.
  • Message input
    • tab Send emoji from input line as reaction on selected message.
    • alt+enter Switch between multi-line and singl-line input modes.
    • alt+left, alt+right Jump to previous/next word.
    • ctrl+w / ctrl+backspace / alt+backspace Delete last word.
    • enter when input box empty in single-line mode Open URL from selected message.
    • enter otherwise Send message.
  • Multi-line message input
    • enter New line
    • ctrl+j / Up Previous line
    • ctrl+k / Down Next line
  • Cursor
    • alt+f / alt+Right / ctrl+Right Move forward one word.
    • alt+b / alt+Left / ctrl+Left Move backward one word.
    • ctrl+a / Home Move cursor to the beginning of the line.
    • ctrl+e / End Move cursor the the end of the line.
  • Message/channel selection
    • Esc Reset message selection.
    • alt+Up / alt+k / PgUp Select previous message.
    • alt+Down / alt+j / PgDown Select next message.
    • ctrl+j / Up Select previous channel.
    • ctrl+k / Down Select next channel.
    • ctrl+p Open / close channel selection popup.
  • Clipboard
    • alt+y Copy selected message to clipboard.

License

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this document by you, as defined in the AGPL-3.0-only license, shall be licensed as above, without any additional terms or conditions.