Então, decidi parar o impossível e extrair partes do Unity para o Fluxbox. Em vez disso, há muito mais solução de fluxbox, na verdade confiando no setxkbmap. Com referência a esta resposta de troca de pilha unix Eu fiz uma configuração de submenu semelhante para sérvio (latim) e alemão em um teclado dos EUA.
Em .fluxbox / menu,
[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[submenu] (keyboards)
[exec] (us) {setxkbmap us}
[exec] (de) {setxkbmap de qwerty}
[exec] (rs) {setxkbmap rs latinunicodeyz}
[end]
o snippet anterior configura três itens correspondentes a diferentes layouts de teclado.
Para tornar as coisas mais flexíveis, também adicionei atalhos de teclado em .fluxbox / keys,
Mod4 Shift 1 :Exec chkb.sh us
Mod4 Shift 2 :Exec chkb.sh rs latinunicodeyz
Mod4 Shift 3 :Exec chkb.sh de qwerty
em que chkb.sh é um script com o seguinte conteúdo
#!/bin/bash
langsel="$1"
varant="$2"
setxkbmap "$1" "$2"
xmodmap "/home/user/.Xmodmap"
Como sou usuário do Emacs, prefiro vincular a funcionalidade Caps Lock à Ctrl (e Ctrl ao Caps Lock), e sempre que altero o layout do teclado, preciso repetir o processo de vinculação relendo a definição .Xmodmap. Isso é melhor se empacotado em um script, do que chamado diretamente pela diretiva: Exec.
Talvez alguém ainda tenha uma solução diferente ...