Default laptop key set to capslock. Keys that can be set to fenrir key or script key selectable via checkbox.

This commit is contained in:
Storm Dragon committed 2026-10-29 18:01:42 -04:00
1 parent 47f18fdd28
commit 15e04aa8f8
47 files changed
+1560 -351

No files matched your search

+37 -13
View File
@@ -38,7 +38,7 @@ func TestSettingsFormCoversSchemaAndReturnsIsolatedDraft(t *testing.T) {
t.Fatal(got)
}
values := session.Values()
if len(values) != 55 {
if len(values) != 64 {
t.Fatal("missing settings or buttons", len(values))
}
unchanged, err := Settings(session, base)
@@ -147,24 +147,48 @@ func TestCapitalCheckboxesRoundTripIndependently(t *testing.T) {
}
}
func TestInvalidSettingsEntriesDoNotSubmit(t *testing.T) {
for _, field := range []string{"devices", "layout"} {
session, err := New_session(config.Defaults(), []string{"keyboard"})
func TestInvalidDeviceEntryDoesNotSubmit(t *testing.T) {
session, err := New_session(config.Defaults(), []string{"keyboard"})
if err != nil {
t.Fatal(err)
}
session.Handle(interaction.Key{Name: "tab"})
session.Handle(interaction.Key{Ctrl: true, Text: "a"})
session.Handle(interaction.Key{Text: "invalid value"})
if _, err := Settings(session, config.Defaults()); err == nil {
t.Fatal("invalid devices accepted")
}
}
func TestKeyboardLayoutComboBox(t *testing.T) {
for _, saved := range []string{"desktop", "laptop", "/tmp/custom.toml"} {
base := config.Defaults()
base.Keyboard.Layout = saved
session, err := New_session(base, []string{"keyboard"})
if err != nil {
t.Fatal(err)
}
control := session.Values()["keyboard.layout"]
if control.Kind != interaction.ComboBox || control.Choices[0].ID != "desktop" || control.Choices[1].ID != "laptop" || control.Choices[control.Selected].ID != saved {
t.Fatal(control)
}
session.Handle(interaction.Key{Name: "tab"})
session.Handle(interaction.Key{Name: "tab"})
if field == "layout" {
session.Handle(interaction.Key{Name: "tab"})
}
session.Handle(interaction.Key{Ctrl: true, Text: "a"})
value := "invalid value"
if field == "layout" {
value = "old.conf"
session.Handle(interaction.Key{Text: "old.conf"})
draft, err := Settings(session, base)
if err != nil || draft.Keyboard.Layout != saved {
t.Fatal(draft.Keyboard.Layout, err)
}
session.Handle(interaction.Key{Text: value})
if _, err := Settings(session, config.Defaults()); err == nil {
t.Fatal("invalid field accepted", field)
if saved == "desktop" {
session.Handle(interaction.Key{Name: "down"})
draft, err = Settings(session, base)
if err != nil || draft.Keyboard.Layout != "laptop" {
t.Fatal(draft.Keyboard.Layout, err)
}
if base.Keyboard.Layout != "desktop" {
t.Fatal("draft changed original settings")
}
}
}
}