15

Siggo: A terminal GUI for signal-CLI, written in Go

 4 years ago
source link: https://github.com/derricw/siggo
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

siggo

A terminal gui for signal-cli, written in Go.

FVbiYvN.jpg!web

Dependencies

siggo uses the dbus daemon feature of signal-cli, so libunixsocket-java (Debian) or libmatthew-unix-java (AUR) is required.

Install signal-cli and put it somewhere safe in your path. You will need to follow its instructions to either link or register your device. The siggo link <phonenumber> subcommand has been added to make linking more user-friendly, but has not been tested sufficiently. Be sure to prefix with + and country code (for example +12345678901 ).

When setup is finished, you should be able to run without error:

signal-cli -u +<yourphonenumber> receive --json

You are now ready to use siggo .

Security

siggo shells out to signal-cli , so if that worries you, don't use it, for now. I have lofty goals of eventually replacing this with libsignal .

Build

make build

Run

bin/siggo

Keybinds

  • j - Scroll Down
  • k - Scroll Up
  • J - Next Contact
  • K - Previous Contact
  • i - Insert Mode
    • CTRL+L - Clear input field
  • I - Compose (opens $EDITOR and lets you make a fancy message)
  • y - Yank Mode
    yy
    yl
    
  • o - Open Mode
    oo
    ol
    
  • ESC - Normal Mode
  • CTRL+Q - Quit ( CTRL+C should also work)

Configuration

See the configuration README here .

Message History

Message saving is an opt-in feature.

If you enable it, conversations are stored in plain text in ~/.siggo/conversations .

Delete them like this:

rm ~/.siggo/conversations/*

Development

Honestly the code is a hot mess right now, and I don't recommend trying to contribute yet. But I will absolutely take a PR if you want to throw one at me.

If you save the output of signal-cli like so:

signal-cli -u +<yourphonenumber> receive --json > example_messages.json

You can then run siggo using it as mock input. This is useful for development and testing.

bin/siggo -m example_messages.json

This way you can test without sending yourself messages.

Similar Projects / Inspiration

Roadmap

Here is a list of things that are currently broken.

  • Send read receipts for incoming messages ( signal-cli limitation, but might be fixed soon)

Here is a list of features I'd like to add soonish.

  • Better Attachments Support
    • Sending attachments
    • Opening attachments (besides the most recent)
  • gui configuration
    • colors and border styles
  • let user re-sort contact list (for example alphabetically)
  • command to go to next contact with message waiting
  • command to go to contact with fuzzy matching
  • groups support
  • use dbus to send instead of signal-cli, to avoid having to spin up the JVM (might also fix the read receipt issue)
  • there is still some data that i'm dropping on the floor
  • wouldn't tests be neat?

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK