login-app: Able to change keymap
This commit is contained in:
parent
3055d4d02a
commit
77acf55271
4 changed files with 50 additions and 1 deletions
42
pkg/login-app/cmd/dialog-settings.go
Normal file
42
pkg/login-app/cmd/dialog-settings.go
Normal 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
|
||||
}
|
||||
Reference in a new issue