diff options
author | Digital <digidev@digitalville.de> | 2018-06-30 22:26:40 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-06-30 23:26:40 +0300 |
commit | bf84fc09b216bd4669d9a0ed9bba30209f0cb7a8 (patch) | |
tree | 12712d67ad64e9632e3321a3ab9f30f12dffb9ca | |
parent | c3f30a160f68cd120b99adc6505f1ff073407c55 (diff) |
Add option to disable typing notifications (#63)
-rw-r--r-- | README.md | 16 | ||||
-rw-r--r-- | config/config.go | 9 | ||||
-rw-r--r-- | ui/command-processor.go | 2 | ||||
-rw-r--r-- | ui/commands.go | 17 | ||||
-rw-r--r-- | ui/view-main.go | 10 |
5 files changed, 32 insertions, 22 deletions
@@ -32,9 +32,13 @@ or compile from source: - jump to room - `Alt + Enter`, then `Tab` and `Enter` to navigate and select room ### Commands -* `/quit` - Close gomuks -* `/logout` - Log out, clear caches and go back to the login view -* `/clearcache` - Clear room state cache and close gomuks -* `/leave` - Leave the current room -* `/join <room>` - Join the room with the given room ID or alias -* `/panic` - Trigger a test panic +* `help` - Is a known command +* `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 diff --git a/config/config.go b/config/config.go index 09e7f0d..8431c9b 100644 --- a/config/config.go +++ b/config/config.go @@ -37,10 +37,11 @@ type AuthCache struct { } type UserPreferences struct { - HideUserList bool `yaml:"hide_user_list"` - HideRoomList bool `yaml:"hide_room_list"` - BareMessageView bool `yaml:"bare_message_view"` - DisableImages bool `yaml:"disable_images"` + HideUserList bool `yaml:"hide_user_list"` + HideRoomList bool `yaml:"hide_room_list"` + BareMessageView bool `yaml:"bare_message_view"` + DisableImages bool `yaml:"disable_images"` + DisableTypingNotifs bool `yaml:"disable_typing_notifs"` } // Config contains the main config of gomuks. diff --git a/ui/command-processor.go b/ui/command-processor.go index 0f38c57..eb24f19 100644 --- a/ui/command-processor.go +++ b/ui/command-processor.go @@ -88,7 +88,7 @@ func NewCommandProcessor(parent *MainView) *CommandProcessor { "clearcache": cmdClearCache, "leave": cmdLeave, "join": cmdJoin, - "uitoggle": cmdUIToggle, + "toggle": cmdToggle, "logout": cmdLogout, "sendevent": cmdSendEvent, "setstate": cmdSetState, diff --git a/ui/commands.go b/ui/commands.go index bbe082d..60ab1f1 100644 --- a/ui/commands.go +++ b/ui/commands.go @@ -18,10 +18,10 @@ package ui import ( "encoding/json" - "maunium.net/go/gomuks/debug" - "strings" "fmt" "github.com/lucasb-eyer/go-colorful" + "maunium.net/go/gomuks/debug" + "strings" "unicode" ) @@ -74,7 +74,7 @@ func cmdRainbow(cmd *Command) { html.WriteRune(char) continue } - color := rainbow.GetInterpolatedColorFor(float64(i)/float64(len(text))).Hex() + color := rainbow.GetInterpolatedColorFor(float64(i) / float64(len(text))).Hex() fmt.Fprintf(&html, "<font color=\"%s\">%c</font>", color, char) } tempMessage := cmd.Room.NewTempMessage("m.text", html.String()) @@ -182,9 +182,9 @@ func cmdSetState(cmd *Command) { } } -func cmdUIToggle(cmd *Command) { +func cmdToggle(cmd *Command) { if len(cmd.Args) == 0 { - cmd.Reply("Usage: /uitoggle <rooms/users/baremessages/images>") + cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif>") return } switch cmd.Args[0] { @@ -196,11 +196,14 @@ func cmdUIToggle(cmd *Command) { cmd.Config.Preferences.BareMessageView = !cmd.Config.Preferences.BareMessageView case "images": cmd.Config.Preferences.DisableImages = !cmd.Config.Preferences.DisableImages + case "typingnotif": + cmd.Config.Preferences.DisableTypingNotifs = !cmd.Config.Preferences.DisableTypingNotifs default: - cmd.Reply("Usage: /uitoggle <rooms/users/baremessages/images>") + cmd.Reply("Usage: /toggle <rooms/users/baremessages/images/typingnotif>") return } - cmd.UI.Render() + // is there a reason this is called twice? + // cmd.UI.Render() cmd.UI.Render() go cmd.Matrix.SendPreferencesToMatrix() } diff --git a/ui/view-main.go b/ui/view-main.go index fe2db76..40a6dcd 100644 --- a/ui/view-main.go +++ b/ui/view-main.go @@ -102,10 +102,12 @@ func (view *MainView) MarkRead(roomView *RoomView) { } func (view *MainView) InputChanged(roomView *RoomView, text string) { - if len(text) == 0 { - go view.matrix.SendTyping(roomView.Room.ID, false) - } else if text[0] != '/' { - go view.matrix.SendTyping(roomView.Room.ID, true) + if !roomView.config.Preferences.DisableTypingNotifs { + if len(text) == 0 { + go view.matrix.SendTyping(roomView.Room.ID, false) + } else if text[0] != '/' { + go view.matrix.SendTyping(roomView.Room.ID, true) + } } } |