A personal build of the TUI matrix client including image-pasting and notifications for all rooms
Go to file
2019-06-18 17:31:55 +03:00
config Unbreak things 2019-06-15 01:11:54 +03:00
deb/DEBIAN Add debian packaging and some build scripts 2018-05-03 10:03:25 +03:00
debug DOn't print debug init to log file when not logging to file 2019-04-27 15:44:01 +03:00
interface Add initial support for rendering replies 2019-06-17 13:46:02 +03:00
lib Fix go 1.11 and go get compatibility 2019-05-12 17:34:47 +03:00
matrix Cache canonical alias in room list so tab completing wouldn't load state from disk 2019-06-18 17:31:55 +03:00
scripts Update CI script and tcell 2019-01-12 00:35:42 +02:00
ui Add initial support for rendering replies 2019-06-17 13:46:02 +03:00
.codeclimate.yml Add .codeclimate.yml 2018-04-19 11:33:59 +03:00
.editorconfig Update README and other files 2018-03-20 23:49:37 +02:00
.gh-deployer.yaml Update CI script and tcell 2019-01-12 00:35:42 +02:00
.gitignore Unbreak more things 2019-06-15 17:04:08 +03:00
.travis.yml Fix Travis CI Go version 2019-04-10 02:19:27 +03:00
chat-preview.png Update preview image 2018-05-24 10:34:31 +03:00
go.mod Wrap events in custom struct to add gomuks-specific fields 2019-06-17 12:27:31 +03:00
go.sum Wrap events in custom struct to add gomuks-specific fields 2019-06-17 12:27:31 +03:00
gomuks.go Unbreak more things 2019-06-15 17:04:08 +03:00
LICENSE Update license and sort imports 2019-01-23 00:26:51 +02:00
main.go Add partial deadlock detection in debug mode 2019-04-27 15:02:52 +03:00
README.md Update README.md (#98) 2019-06-15 01:05:21 +03:00

gomuks

Languages License Release Build Status Maintainability Coverage

Chat Preview

A terminal Matrix client written in Go using mautrix and mauview.

Basic usage is possible, but expect bugs and missing features.

Discussion

Matrix room: #gomuks:maunium.net

Installation

Once the client becomes actually usable, I'll start making GitHub releases with precompiled executables. For now, you can either download a CI build from dl.maunium.net/programs/gomuks or compile from source:

  1. Install Go 1.12 or higher
  2. Clone the repo: git clone https://github.com/tulir/gomuks.git && cd gomuks
  3. Build: go build

Simply pull changes (git pull) and run go build again to update.

Developing

Set DEBUG=1 to enable partial deadlock detection and to write panics to stdout instead of a file.

To build and run with race detection, use go install -race and set GORACE='history_size=7 log_path=/tmp/gomuks/race.log' when starting gomuks, then check /tmp/gomuks/race.log.<pid>. Note that race detection will use a lot of extra resources.

For debugging, use tail -f /tmp/gomuks/debug.log and write to it using the methods in the maunium.net/go/gomuks/debug package:

package foo

import (
	"maunium.net/go/gomuks/debug"
)

func Foo() {
	debug.Print("WHY ISN'T IT WORKING?!?!?")
	debug.PrintStack()
}

Usage

  • switch rooms - Ctrl + ↑ Ctrl + ↓ Alt + ↑ Alt + ↓
  • scroll chat (line) -
  • scroll chat (page) - PgUp PgDown
  • jump to room - Alt + Enter, then Tab and Enter to navigate and select room

Commands

  • /help - View command list
  • /me <text> - Send an emote
  • /quit - Close gomuks
  • /clearcache - Clear room state and close gomuks
  • /leave - Leave the current room
  • /create <room name> - Create a new Matrix room.
  • /join <room> - Join the room with the given room ID or alias
  • /toggle <rooms/users/baremessages/images/typingnotif> - Change user preferences
  • /logout - Log out, clear caches and go back to the login view
  • /send <room id> <event type> <content> - Send a custom event
  • /setstate <room id> <event type> <state key/-> <content> - Change room state
  • /msend <event type> <content> - Send a custom event to the current room
  • /msetstate <event type> <state key/-> <content> - Change room state in the current room