fcd44fe63f
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. |
||
---|---|---|
config | ||
deb/DEBIAN | ||
debug | ||
interface | ||
lib | ||
matrix | ||
scripts | ||
ui | ||
.codeclimate.yml | ||
.editorconfig | ||
.gh-deployer.yaml | ||
.gitignore | ||
.travis.yml | ||
chat-preview.png | ||
go.mod | ||
go.sum | ||
gomuks.go | ||
LICENSE | ||
main.go | ||
README.md |
gomuks
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:
- Install Go 1.12 or higher
- Clone the repo:
git clone https://github.com/tulir/gomuks.git && cd gomuks
- 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
, thenTab
andEnter
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