app: add F1 self-deafen toggle and bold TX indicator
This commit is contained in:
@@ -11,9 +11,10 @@ tuimble --host mumble.example.com --user myname
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `q` | Quit |
|
||||
| `F1` | Toggle self-deafen |
|
||||
| `F4` | Push-to-talk (configurable) |
|
||||
| `Enter` | Send message |
|
||||
| `q` | Quit |
|
||||
| `Ctrl+C` | Quit |
|
||||
|
||||
## Push-to-Talk Modes
|
||||
|
||||
@@ -53,6 +53,7 @@ class StatusBar(Static):
|
||||
|
||||
ptt_active = reactive(False)
|
||||
connected = reactive(False)
|
||||
self_deaf = reactive(False)
|
||||
server_info = reactive("")
|
||||
|
||||
def render(self) -> str:
|
||||
@@ -67,17 +68,20 @@ class StatusBar(Static):
|
||||
|
||||
if self.ptt_active:
|
||||
ptt_sym = "[#e0af68]\u25cf[/]"
|
||||
ptt_full = f"{ptt_sym} TX"
|
||||
ptt_full = f"{ptt_sym} [bold]TX[/bold]"
|
||||
else:
|
||||
ptt_sym = "[#565f89]\u25cb[/]"
|
||||
ptt_full = f"{ptt_sym} idle"
|
||||
|
||||
deaf_sym = "[#f7768e]\u2298[/]" if self.self_deaf else ""
|
||||
deaf_full = "[#f7768e]\u2298[/] deaf" if self.self_deaf else ""
|
||||
|
||||
if w < 40:
|
||||
return f" {conn_sym} {ptt_sym}"
|
||||
return f" {conn_sym} {deaf_sym}{ptt_sym}"
|
||||
if w < 60:
|
||||
return f" {conn_full} {ptt_full}"
|
||||
return f" {conn_full} {deaf_full}{' ' if deaf_full else ''}{ptt_full}"
|
||||
info = f" [dim]{self.server_info}[/]" if self.server_info else ""
|
||||
return f" {conn_full} {ptt_full}{info}"
|
||||
return f" {conn_full} {deaf_full}{' ' if deaf_full else ''}{ptt_full}{info}"
|
||||
|
||||
|
||||
class ChannelTree(Static):
|
||||
@@ -238,6 +242,7 @@ class TuimbleApp(App):
|
||||
"""
|
||||
|
||||
BINDINGS = [
|
||||
("f1", "toggle_deaf", "Deafen"),
|
||||
("q", "quit", "Quit"),
|
||||
("ctrl+c", "quit", "Quit"),
|
||||
]
|
||||
@@ -406,6 +411,21 @@ class TuimbleApp(App):
|
||||
tree = self.query_one("#sidebar", ChannelTree)
|
||||
tree.set_state(channels, users_by_channel)
|
||||
|
||||
# -- deafen --------------------------------------------------------------
|
||||
|
||||
def action_toggle_deaf(self) -> None:
|
||||
"""Toggle self-deafen."""
|
||||
deafened = not self._audio.deafened
|
||||
self._audio.deafened = deafened
|
||||
self._client.set_self_deaf(deafened)
|
||||
status = self.query_one("#status", StatusBar)
|
||||
status.self_deaf = deafened
|
||||
chatlog = self.query_one("#chatlog", ChatLog)
|
||||
if deafened:
|
||||
chatlog.write("[#f7768e]\u2298 deafened[/]")
|
||||
else:
|
||||
chatlog.write("[#9ece6a]\u2713 undeafened[/]")
|
||||
|
||||
# -- PTT -----------------------------------------------------------------
|
||||
|
||||
def on_key(self, event: events.Key) -> None:
|
||||
|
||||
Reference in New Issue
Block a user