Signal Messenger client for terminal
Signal Messenger client for terminal.
Download a pre-compiled binary from Releases.
Or, if you have cargo-binstall:
cargo binstall --git https://github.com/boxdot/gurk-rs gurk
cargo)Prerequisites:
protoc compilerperlcargo install --git https://github.com/boxdot/gurk-rs gurk
pacman -S gurk
(as root)
gurkyay -S gurk
gurk-gitEither per user:
$ nix-env --install gurk-rs
or system-wide:
environment.systemPackages = with pkgs; [ gurk-rs ];
pkg install net-im/gurk-rs
cd /usr/ports/net-im/gurk-rs
make install clean
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.
f1 Toggle help panel.ctrl+c Quit.tab Send emoji from input line as reaction on selected message.alt+enter Switch between multi-line and single-line input modes.alt+left, alt+right Jump to previous/next word.ctrl+w / ctrl+backspace / alt+backspace Delete last word.ctrl+u Delete to the start of the line.enter when input box empty in single-line mode Open URL from selected message.enter otherwise Send message.enter New linectrl+j / Up Previous linectrl+k / Down Next linealt+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.esc Reset message selection or close channel selection popup.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.alt+m Toggle mute for the selected channel (silences notifications; muted channels are marked with [M]).alt+y Copy selected message to clipboard.esc Close help panel.ctrl+j / Up / PgUp Previous linectrl+k / Down / PgDown Next linefile:///path/to/file Upload File "file" at path "/path/to/"file://clip Upload Content of Clipboard-c, --config <PATH> Path to config file
--data-dir <PATH> Path to data directory
GURK_CONFIG
Path to config file (same as --config)
GURK_DATA_DIR
Path to data directory (same as --data-dir)
XDG_CONFIG_HOME
Base directory for config files (works on all platforms)
XDG_DATA_HOME
Base directory for data files (works on all platforms)
If no config path is specified, gurk searches these locations in order:
$XDG_CONFIG_HOME/gurk/gurk.toml (if XDG_CONFIG_HOME is set)$XDG_CONFIG_HOME/gurk.toml (if XDG_CONFIG_HOME is set)~/Library/Application Support on macOS, ~/.config on Linux)$HOME/.gurk.tomlThe data directory (for messages, Signal database, attachments) is determined by:
--data-dir CLI option or GURK_DATA_DIR env vardata_dir setting in config file$XDG_DATA_HOME/gurk (if XDG_DATA_HOME is set)~/Library/Application Support/gurk on macOS)The default keybindings can be overwritten at startup by configuring
keybindings in gurk.toml using the format keybindings.<mode>.<keycombination> = "<command>". Valid commands are anywhere, normal, message_selected,
channel_modal, multiline, and help. Valid key combination specifiers are e.g. left, alt-j, ctrl-f, backspace, pagedown. The default keybindings can be disabled by
setting default_keybindings = false. An empty command removes an existing
binding if it exists in the given mode. Configuration troubleshooted by running
RUST_LOG=gurk=trace,presage=trace,libsignal=trace gurk --verbose and examining the resulting gurk.log.
help
quit
toggle_channel_modal
toggle_multiline
react
scroll help up|down entry
move_text previous|next character|word|line
select_channel previous|next
select_channel_modal previous|next
select_message previous|next entry
kill_line
kill_whole_line
kill_backward_line
kill_word
copy_message selected
beginning_of_line
end_of_line
delete_character previous|next
edit_message
delete_message
open_url
open_file
toggle_mute_channel
default_keybindings = true
[keybindings.anywhere]
ctrl-c = ""
ctrl-q = "quit"
[keybindings.normal]
ctrl-j = ""
ctrl-k = "kill_line"
ctrl-n = "select_channel next"
ctrl-p = "select_channel previous"
alt-c = "toggle_channel_modal"
up = "select_message previous entry"
down = "select_message next entry"
[keybindings.channel_modal]
ctrl-j = ""
ctrl-k = ""
ctrl-n = "select_channel_modal next"
ctrl-p = "select_channel_modal previous"
[keybindings.message_selected]
alt-y = ""
alt-w = "copy_message selected"
ctrl-t = "react :thumbsup:"
ctrl-h = "react ❤️"
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.
No open issues yet, or sync has not completed.