login-app: Able to change keymap

This commit is contained in:
nemunaire 2023-02-20 18:58:13 +01:00
commit 77acf55271
4 changed files with 50 additions and 1 deletions

View file

@ -0,0 +1,42 @@
package main
import (
"os/exec"
"github.com/rivo/tview"
)
var LastKeymap = 0
func goToSettings(app *tview.Application) {
var form *tview.Form
form = tview.NewForm().
AddDropDown("Keymap", []string{"QWERTY us", "AZERTY fr", "BÉPO", "Colemak us"}, LastKeymap, nil).
AddButton(" Save config ", func() {
if kbmap, _ := form.GetFormItemByLabel("Keymap").(*tview.DropDown).GetCurrentOption(); LastKeymap != kbmap {
file := "/usr/share/keymaps/xkb/"
switch kbmap {
case 1:
file += "fr.map.gz"
case 2:
file += "fr-bepo.map.gz"
case 3:
file += "us-colemak.map.gz"
default:
file += "us.map.gz"
}
exec.Command("/usr/bin/loadkeys", file).Run()
LastKeymap = kbmap
}
askLogin(app)
})
form.GetFormItemByLabel("Keymap").(*tview.DropDown).SetFieldWidth(25)
form.SetBorder(true).SetTitle(" SRS Adlin - Settings ")
app.SetRoot(modal(form, 25, 7), true)
app.SetFocus(form)
return
}