A personal build of the TUI matrix client including image-pasting and notifications for all rooms
Go to file
Jaron Swab fcd44fe63f Users can now create a new room directly in Gomuks
Added the ability to create a room from within gomuks using the now
`/create` command. This comman takes the room name followed by the
alias. Room name may contain spaces but the alias may not as per the
Matrix alias conventions.

Also update `/help` to include the new command.
2019-06-13 21:14:32 -04:00
config Fix tests 2019-04-10 02:47:47 +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 Use already parsed events for replies if possible 2019-04-10 21:06:19 +03:00
lib Fix go 1.11 and go get compatibility 2019-05-12 17:34:47 +03:00
matrix Users can now create a new room directly in Gomuks 2019-06-13 21:14:32 -04:00
scripts Update CI script and tcell 2019-01-12 00:35:42 +02:00
ui Users can now create a new room directly in Gomuks 2019-06-13 21:14:32 -04: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 Add .tmp to .gitignore 2018-05-15 19:59:17 +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 Fix go 1.11 and go get compatibility 2019-05-12 17:34:47 +03:00
go.sum Fix go 1.11 and go get compatibility 2019-05-12 17:34:47 +03:00
gomuks.go Use XDG config and cache home 2019-04-06 10:57:24 +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 2019-04-27 15:44:11 +03:00

gomuks

Languages License Release Build Status Maintainability Coverage

Chat Preview

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

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
  • /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