3ebfb87da2
Using the "image" package from the standard library the images loaded by gomuks now scale to one third the size of the text area. The image data contains both hight and width while the scaling uses only width the option to scale by hight is possible if passed into `CalculateBuffer()`. `ansimage.NewScaledFromReader()` now takes the new variable based off the size of the buffers' width. This may resolve issue #92 |
||
---|---|---|
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