SetActiveMapName sets the current ActiveKeyMap by name from those defined in AvailKeyMaps, calling Update on the map prior to setting it to ensure that it is a valid, complete map
(mapnm MapName)
| 128 | // defined in AvailKeyMaps, calling Update on the map prior to setting it to |
| 129 | // ensure that it is a valid, complete map |
| 130 | func SetActiveMapName(mapnm MapName) { |
| 131 | km, _, ok := AvailableMaps.MapByName(mapnm) |
| 132 | if ok { |
| 133 | SetActiveMap(km, mapnm) |
| 134 | } else { |
| 135 | slog.Error("keymap.SetActiveKeyMapName: key map named not found, using default", "requested", mapnm, "default", DefaultMap) |
| 136 | km, _, ok = AvailableMaps.MapByName(DefaultMap) |
| 137 | if ok { |
| 138 | SetActiveMap(km, DefaultMap) |
| 139 | } else { |
| 140 | avail := make([]string, len(AvailableMaps)) |
| 141 | for i, km := range AvailableMaps { |
| 142 | avail[i] = km.Name |
| 143 | } |
| 144 | slog.Error("keymap.SetActiveKeyMapName: DefaultKeyMap not found either; trying first one", "default", DefaultMap, "available", avail) |
| 145 | if len(AvailableMaps) > 0 { |
| 146 | nkm := AvailableMaps[0] |
| 147 | SetActiveMap(&nkm.Map, MapName(nkm.Name)) |
| 148 | } |
| 149 | } |
| 150 | } |
| 151 | } |
| 152 | |
| 153 | // Of converts the given [key.Chord] into a keyboard function. |
| 154 | func Of(chord key.Chord) Functions { |