Add mnemonic mute controls

This commit is contained in:
Storm Dragon
2026-09-05 00:57:37 -04:00
parent ef19a558d2
commit 97fcde7e96
13 changed files with 232 additions and 17 deletions
+1
View File
@@ -22,4 +22,5 @@ type Hotkeys struct {
AdminMenu *uiterm.Key
NoiseSuppressionToggle *uiterm.Key
AGCToggle *uiterm.Key
SelfMuteToggle *uiterm.Key
}
+9 -4
View File
@@ -94,11 +94,11 @@ func (c *Config) LoadConfig() {
var jc exportableConfig
jc = exportableConfig{}
jc.Hotkeys = &Hotkeys{
Talk: key(uiterm.KeyF1),
Talk: key(uiterm.KeyCtrlT),
VolumeDown: key(uiterm.KeyArrowLeft),
VolumeUp: key(uiterm.KeyArrowRight),
VolumeReset: key(uiterm.KeyBackspace),
MuteToggle: key(uiterm.KeyF7), // Added mute toggle hotkey
MuteToggle: key(uiterm.KeyM),
RecordToggle: key(uiterm.KeyCtrlR),
Exit: key(uiterm.KeyCtrlQ),
ToggleTimestamps: key(uiterm.KeyF3),
@@ -111,6 +111,7 @@ func (c *Config) LoadConfig() {
AdminMenu: key(uiterm.KeyF10),
NoiseSuppressionToggle: key(uiterm.KeyF9),
AGCToggle: key(uiterm.KeyF12),
SelfMuteToggle: key(uiterm.KeyAltM),
}
if fileExists(c.fn) {
var data []byte
@@ -181,11 +182,11 @@ func (c *Config) ensureHotkeys() {
c.config.Hotkeys = &Hotkeys{}
}
defaults := Hotkeys{
Talk: key(uiterm.KeyF1),
Talk: key(uiterm.KeyCtrlT),
VolumeDown: key(uiterm.KeyArrowLeft),
VolumeUp: key(uiterm.KeyArrowRight),
VolumeReset: key(uiterm.KeyBackspace),
MuteToggle: key(uiterm.KeyF7),
MuteToggle: key(uiterm.KeyM),
RecordToggle: key(uiterm.KeyCtrlR),
Exit: key(uiterm.KeyCtrlQ),
ToggleTimestamps: key(uiterm.KeyF3),
@@ -198,6 +199,7 @@ func (c *Config) ensureHotkeys() {
AdminMenu: key(uiterm.KeyF10),
NoiseSuppressionToggle: key(uiterm.KeyF9),
AGCToggle: key(uiterm.KeyF12),
SelfMuteToggle: key(uiterm.KeyAltM),
}
hotkeys := c.config.Hotkeys
if hotkeys.Talk == nil {
@@ -251,6 +253,9 @@ func (c *Config) ensureHotkeys() {
if hotkeys.AGCToggle == nil {
hotkeys.AGCToggle = defaults.AGCToggle
}
if hotkeys.SelfMuteToggle == nil {
hotkeys.SelfMuteToggle = defaults.SelfMuteToggle
}
}
func (c *Config) findServer(address string) *server {
+7 -3
View File
@@ -87,9 +87,12 @@ func TestNewHotkeyDefaults(t *testing.T) {
got *uiterm.Key
want uiterm.Key
}{
{name: "talk", got: hotkeys.Talk, want: uiterm.KeyCtrlT},
{name: "volume down", got: hotkeys.VolumeDown, want: uiterm.KeyArrowLeft},
{name: "volume up", got: hotkeys.VolumeUp, want: uiterm.KeyArrowRight},
{name: "volume reset", got: hotkeys.VolumeReset, want: uiterm.KeyBackspace},
{name: "tree mute", got: hotkeys.MuteToggle, want: uiterm.KeyM},
{name: "self mute", got: hotkeys.SelfMuteToggle, want: uiterm.KeyAltM},
{name: "actions menu", got: hotkeys.AdminMenu, want: uiterm.KeyF10},
{name: "exit", got: hotkeys.Exit, want: uiterm.KeyCtrlQ},
}
@@ -102,14 +105,15 @@ func TestNewHotkeyDefaults(t *testing.T) {
func TestExplicitLegacyHotkeysRemainConfigured(t *testing.T) {
configPath := filepath.Join(t.TempDir(), "barnard.toml")
data := []byte("[hotkeys]\nvolumedown = \"f5\"\nvolumeup = \"f6\"\nvolumereset = \"f8\"\nadminmenu = \"f11\"\nexit = \"f10\"\n")
data := []byte("[hotkeys]\ntalk = \"f1\"\nvolumedown = \"f5\"\nvolumeup = \"f6\"\nvolumereset = \"f8\"\nmutetoggle = \"f7\"\nadminmenu = \"f11\"\nexit = \"f10\"\n")
if err := os.WriteFile(configPath, data, 0600); err != nil {
t.Fatal(err)
}
hotkeys := NewConfig(&configPath).GetHotkeys()
if *hotkeys.VolumeDown != uiterm.KeyF5 || *hotkeys.VolumeUp != uiterm.KeyF6 ||
*hotkeys.VolumeReset != uiterm.KeyF8 || *hotkeys.AdminMenu != uiterm.KeyF11 ||
if *hotkeys.Talk != uiterm.KeyF1 || *hotkeys.VolumeDown != uiterm.KeyF5 ||
*hotkeys.VolumeUp != uiterm.KeyF6 || *hotkeys.VolumeReset != uiterm.KeyF8 ||
*hotkeys.MuteToggle != uiterm.KeyF7 || *hotkeys.AdminMenu != uiterm.KeyF11 ||
*hotkeys.Exit != uiterm.KeyF10 {
t.Fatalf("explicit legacy hotkeys were replaced: %+v", hotkeys)
}