43 lines
957 B
Go
43 lines
957 B
Go
|
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
|
||
|
}
|