#1 Le 28/11/2019, à 12:44
- Arbiel
[Résolu] Modification de l'agencement du clavier en ligne de commande
Bonjour
[Édit] Voir en #12 comment modifier temporairement la disposition du clavier par ligne de commande
J'ai écrit un script qui demande la saisie de mots en grec polytonique. Pour cette saisie, je suis obligé de basculer à la main sur la disposition de clavier appropriée. Cette disposition de clavier est incluse dans le fichier /usr/share/X11/xkb/symbols/fr (en réalité, j'ai créé un nouveau fichier dans mon espace personnel et je le monte sur le fichier /usr/share/X11/xkb/symbols/fr dans /etc/fstab)
// début ucg "Grec (polytonique, bépo façon Dvorak)" créé le 02/11/19 13:54:07 -- ne pas supprimer cette ligne qui marque le début du clavier
partial alphanumeric_keys alternate_group
xkb_symbols "gr1" {
name[Group1] = "Grec (polytonique, bépo façon Dvorak)";
include "level3(lalt_switch)"
include "level3(ralt_switch)"
…
…
};
// fin ucg "Grec (polytonique, bépo façon Dvorak)" -- ne pas supprimer cette ligne qui marque la fin du clavier
J'aimerais pouvoir effectuer cette basculement dans le script lui-même et revenir après la saisie à ma disposition bépo, par la commande appropriée, qui me semble être
setxkbmap
La lecture de la page de manuel ne m'a pas permis de comprendre comment l'utiliser.
Merci d'avance à quiconque pourra me mettre sur la voie.
Arbiel
Dernière modification par Arbiel (Le 02/12/2019, à 09:33)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#2 Le 29/11/2019, à 16:04
- bruno
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Bonjour,
Pour passer le clavier en fr variante bépo :
setxkbmap -layout fr -variant bepo
Pour passer en fr variante oss :
setxkbmap -layout fr -variant oss
En grec variante polytonic
setxkbmap -layout gr -variant polytonic
#3 Le 29/11/2019, à 21:20
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Merci bruno.
Effectivement, à la suite de ta réponse, j'ai relu la page de manuel, dont j'avais mal interprété l'option "-layout", alors que l'explication pour "-variant" aurait dû me mettre sur la voie
…
-variant name
Specifies which variant of the keyboard layout should be used
to determine the components which make up the keyboard descrip‐
tion. The -variant option may only be used once. Multiple vari‐
ants can be specified as a comma-separated list and will be
matched with the layouts specified with -layout.
…
puisqu'il y est fait mention de "keyboard layout".
Et la lecture du ficher evdev.xml aurait également pu me permettre de trouver tout seul la solution.
Pendant que j'y suis, sais-tu comment je peux obtenir les valeurs courantes de -layout et de -variant pour y revenir après les avoir modifiées ?
Arbiel
Dernière modification par Arbiel (Le 29/11/2019, à 22:30)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#4 Le 29/11/2019, à 22:51
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Je viens de m'apercevoir que la modification du clavier par setxkbmap inhibe les effets du contrôle qui permet le choix du clavier. J'ai réactivé ce contrôle en fermant puis réouvrant ma session.
Sais-tu comment faire par ligne de commande, ou comment restreindre l'effet de setxkbmap à un processus plutôt qu'à l'intégralité de la session ?
Arbiel
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#5 Le 30/11/2019, à 11:47
- maxire
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Salut,
Tu peux utiliser Xephyr en serveur X embarqué dans ta session X réelle, exemple :
Xephyr :100 &
env display=:100 commande de lancement de ta session graphique en grec dans laquelle tu intègres la commande setxkbmap qui va bien
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#6 Le 30/11/2019, à 11:59
- maxire
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Pendant que j'y suis, sais-tu comment je peux obtenir les valeurs courantes de -layout et de -variant pour y revenir après les avoir modifiées ?
setxkbmap -query
C'est dans la page man !
Dernière modification par maxire (Le 30/11/2019, à 14:38)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#7 Le 30/11/2019, à 18:05
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Bonsoir maxire
J'avais passé la commande avant de demander de l'aide. Elle ne permet pas de savoir quelle disposition du clavier est actuellement active.
[Édit] ce que j'ai rayé ci-dessus est faux : la disposition active est celle qui est énumérée en tête, à savoir, ici fr bepo
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr,fr,fr
variant: bepo,gr1,oss
options: compose:menu
remi@remi-Vostro-3550:~$
En l'occurrence, ma disposition présente est fr bépo.
fr gr1 est ma disposition grecque polytonique, façon Dvorak, cad tout à fait personnelle, que j'ai insérée dans le fichier fr (je ne sais plus pourquoi)
fr oss, je ne sais pas ce que c'est car je n'ai activé par le contrôle des claviers que bépo et gr1.
Par ailleurs, j'ai inséré cette commande dans mon script pour y prendre dans les deux premières positions les symboles de mes claviers (fr bepo, fr gr1) au cas oǜ, dans le futur, je serais conduit à changer le contenu des fichiers. Je me suis retrouvé avec une seule valeur à savoir
rules: evdev
model: pc105
layout: fr
variant: bepo
options: compose:menu
Peut-être avais-je auparavant exécuté la commande setxkbmap. C'est peut-être là que réside le problème de l'inhibition du contrôle.
Arbiel
Dernière modification par Arbiel (Le 30/11/2019, à 21:51)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#8 Le 30/11/2019, à 18:29
- maxire
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Salut,
layout: fr,fr,fr
variant: bepo,gr1,oss
3 x fr + bepo,gr1 et oss donc 3 variantes actives en même temps, je ne suis pas certain que cela soit normal, tu as peut-être cassé quelque chose.
Ce que j'ai sous Mate :
[frankenstein@frankenstein ~]$ setxkbmap -query
rules: evdev
model: logitech_base
layout: fr
variant: oss_latin9
options: kpdl:commaoss
[frankenstein@frankenstein ~]$
Tu peux tester l'utilisation de Xephyr, je l'ai testé sous Mate comme ceci :
Xephyr :100 &
env DISPLAY=:100 mate-terminal &
Dans la session de terminal ouverte dans la fenêtre Xephyr :
[frankenstein@frankenstein ~]$ setxkbmap -layout ....
J'ai alors une carte clavier différente de la session d'accueil dans la session Xephyr.
Tu devrais pouvoir te débrouiller avec cela.
Dernière modification par maxire (Le 30/11/2019, à 18:29)
Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail
Hors ligne
#9 Le 30/11/2019, à 21:25
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
J'ai fait quelques essais, sur la base d'informations que je n'avais pas essayé de comprendre, à savoir que plusieurs claviers (layout ?) peuvent être énumérés dans le paramètre -layout, et plusieurs variantes (variant ?) dans -variant
…
-layout name
Specifies the name of the layout used to determine the compo‐
nents which make up the keyboard description. The -layout
option may only be used once. Multiple layouts can be specified
as a comma-separated list.
…
-variant name
Specifies which variant of the keyboard layout should be used
to determine the components which make up the keyboard descrip‐
tion. The -variant option may only be used once. Multiple vari‐
ants can be specified as a comma-separated list and will be
matched with the layouts specified with -layout.
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr,fr,fr
variant: bepo,gr1,oss
options: compose:menu
remi@remi-Vostro-3550:~$ setxkbmap -layout fr -variant bepo
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr
variant: bepo
options: compose:menu
remi@remi-Vostro-3550:~$ setxkbmap -layout fr -variant bepo,gr1
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr
variant: bepo,gr1
options: compose:menu
Arrivé à ce point, je me trouve en clavier azerty et non en clavier bépo. Mais l'information "will be matched with the layouts specified with -layout" implique qu'il doit y avoir autant de valeurs "layout" que de valeurs "variant" (to match = égaler)
Je poursuis alors avec
remi@remi-Vostro-3550:~$ setxkbmap -layout fr,fr -variant bepo,gr1
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr,fr
variant: bepo,gr1
options: compose:menu
et là, je suis à nouveau en bépo. Ensuite
remi@remi-Vostro-3550:~$ setxkbmap -layout fr,fr -variant gr1,bepo
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr,fr
variant: gr1,bepo
options: compose:menu
et là, je suis bien en clavier grec polytonique. Pour revenir à bépo, et y voir plus clair en ajoutant -verbose
remi@remi-Vostro-3550:~$ setxkbmap -layout fr,fr -variant bepo,gr1 -verbose 10
Setting verbose level to 10
locale is C
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: fr,fr
variant: bepo,gr1
options: compose:menu
Trying to build keymap using the following components:
keycodes: evdev+aliases(azerty)
types: complete
compat: complete
symbols: pc+fr(bepo)+fr(gr1):2+inet(evdev)+compose(menu)
geometry: pc(pc105)
remi@remi-Vostro-3550:~$ setxkbmap -layout fr,fr -variant gr1,bepo -verbose 10
Setting verbose level to 10
locale is C
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: fr,fr
variant: gr1,bepo
options: compose:menu
Trying to build keymap using the following components:
keycodes: evdev+aliases(azerty)
types: complete
compat: complete
symbols: pc+fr(gr1)+fr(bepo):2+inet(evdev)+compose(menu)
geometry: pc(pc105)
remi@remi-Vostro-3550:~$ setxkbmap -layout fr,fr -variant bepo,gr1
remi@remi-Vostro-3550:~$ setxkbmap -query
rules: evdev
model: pc105
layout: fr,fr
variant: bepo,gr1
options: compose:menu
Il reste encore quelques points à élucider ;
1) pourquoi la commande "setxkbmap -layout fr -variant bepo,gr1" active-t-elle le clavier azerty, que je n'ai pas conservé dans le menu de l'interface graphique, alors que "setxkbmap -layout fr -variant bepo" fonctionne comme prévu
2) pourquoi l'interface graphique ne fonctionne-t-elle plus après l'exécution de setxkbmap, sauf à ce que je me sois trompé dans l'interprétation de mes tests ? est-ce la conséquence de "ignoring X server" ?
Arbiel
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#10 Le 30/11/2019, à 21:30
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
remi@remi-Vostro-3550:~$ alias σετχκϐμαπ="setxkbmap -layout fr,fr -variant bepo,gr1 -verbose 10"
remi@remi-Vostro-3550:~$ σετχκϐμαπ
Setting verbose level to 10
locale is C
Warning! Multiple definitions of keyboard layout
Using command line, ignoring X server
Warning! Multiple definitions of layout variant
Using command line, ignoring X server
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: fr,fr
variant: bepo,gr1
options: compose:menu
Trying to build keymap using the following components:
keycodes: evdev+aliases(azerty)
types: complete
compat: complete
symbols: pc+fr(bepo)+fr(gr1):2+inet(evdev)+compose(menu)
geometry: pc(pc105)
remi@remi-Vostro-3550:~$
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#11 Le 01/12/2019, à 00:05
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Mes derniers tests montrent que
a) "setxkbmap -layout … -variant …" modifie l'ordre dans lequel sont affichées les dispositions de clavier par "setxkbmap -query" et active la première d'entre elles, mais ne modifie par l'ordre dans lequel les dispositions sont classées dans l'interface graphique
b) l'interface graphique active la disposition choisie par l'utilisateur, sans impact sur la réponse donnée par "setxkbmap -query" ; on ne peut donc pas déduire la disposition active par l'analyse de la réponse de cette commande
c) l'interface graphique active la disposition choisie par l'utilisateur dans la mesure où la disposition affichée en tête par "setxkbmap -query" correspond à la disposition classée en tête dans l'interface graphique;
d) l'ordre dans lequel "setxkbmap -query" affiche les dispositions du clavier est modifié lorsque l'utilisateur modifie l'ordre de présentation des dispositions par l'interface graphique.
Je n'ai pas su lire l'ordre des dispositions dans l'interface graphique.
tout ceci n'est pas très clair. Je vais y revenir plus tard.
Arbiel
Dernière modification par Arbiel (Le 01/12/2019, à 11:11)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne
#12 Le 02/12/2019, à 09:25
- Arbiel
Re : [Résolu] Modification de l'agencement du clavier en ligne de commande
Incohérence dans la gestion des dispositions de clavier
Les dispositions de clavier (constitution de la liste, activation d'une disposition) sont gérées par une interface graphique et par ligne de commande. Ces deux outils ne sont pas correctement intégrés (dans Ubuntu 18.04)
Par ligne de commande (setxkbmap), il est possible de définir la liste des dispositions:
setxkbmap -layout c1,c2,c3 -variant v1,v2,v3
Après exécution de cette commande, la disposition active devient la variante v1 de la disposition c1.
Mais le résultat de cette commande n'est pas répercutée vers l'interface graphique qui devient alors inutilisable. En particulier, les variantes v2 de la disposition c2 et v3 de c3 ne sont plus accessibles. La disposition du clavier reste "bloquée" sur la variant v1 de c1.
Pour modifier de façon temporaire la disposition du clavier, il faut alors, avant l'exécution de «setxkbmap», mémoriser la situation courante pour y revenir ensuite.
declare -gA clavier
for v in layout variant; do clavier[${v}]="$(setxkbmap -query | grep ${v} | cut -d ":" -f 2 | tr -d [:space:] )"; done;
setxkbmap -layout y -variant z
execution_code_avec_saisie_clavieryz
setxkbmap -layout "${clavier[layout]}" -variant "${clavier[variant]}"
Enfin, si la disposition initiale n'était pas c1/v1, mais par exemple c2/v2 et que l'on veuille y revenir, il faut d'abord, par l'interface graphique, activer c1/v1, pour revenir ensuite à c2/v2, ou toute autre disposition.
Arbiel
Dernière modification par Arbiel (Le 02/12/2019, à 09:42)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne