Changement de langue de mise en page sans mode / sans état avec verrouillage des majuscules (18.04 LTS Bionic Beaver)

12

Cela a été demandé un nombre incalculable de fois, je vais donc essayer d'être bref.

J'ai deux mises en page d'entrée , ukrainien et anglais, et je veux:

  • à utiliser Caps Lockpour une commutation rapide;
  • aucun retard n'est imposé, je suis un typer rapide;
  • pas d' erreurs de mode :
    • (n'importe quel nombre) CapsLockdéfinit l'anglais,
    • (n'importe quel nombre) ShiftCapsLockdéfinit l'ukrainien;
  • voir la disposition actuelle dans le widget standard.

J'ai déjà essayé trois (!) GUI pour configurer cela, les paramètres Gnome, le gnome-tweak-tool, le  dconf-editor/ gsettings. Rien ne fonctionne. Tweaksse bloque au hasard.

Assez de devoirs faits

Je l'ai demandé moi-même il y a 4 ans pour 14.04 LTS. Depuis lors, ce popup UI est apparu et tout s'est cassé. Je peux maintenant facilement configurer la bascule avec état CapsLock , mais même dans ce cas, cela va avec ce retard irritant. Fondamentalement inutilisable lorsque j'ai besoin de changer de langue 4 à 5 fois par phrase.

Ce fil suggère l' caps:noneoption XKB comme solution de contournement de bogue. J'ai essayé cela, à la fois avec gsettingsCLI et dconf-editor, et en combinaison avec l' grp:shift_caps_switchoption XKB. Pas de dé. Quelque chose l'emporte sur ces principales fonctionnalités XKB comme il semble.

Ce fil offre l' caps:menuoption XKB comme un hack pour pouvoir se lier CapsLockdans Gnome Settings→ Périphériques → Clavier. Cela fonctionne un peu, mais A) il donne une commutation cyclique / avec état; B) Je dois attendre un délai d'attente décent à chaque commutateur.

Ce fil me demande exactement ce dont j'ai besoin, mais il est sans réponse et encore pire: fermé en double de deux autres questions (???) aucune d'entre elles n'est la même, et aucune ne me donne une solution de travail. Qu'est-ce qui ne va pas avec vous?

Il y a une autre correspondance exacte - hélas, sans réponse aussi!


Recherché: solution propre

ulidtko
la source
1
Qu'en est-il de la réputation au lieu de $ pour une prime, disons +50 points de réputation?
karel
@karel Je ne vois rien de mal à cela, mais les questions "fraîches" ne sont pas éligibles à la prime de représentant sur stackexchange. Une prime peut être commencée sur une question deux jours après que la question a été posée ; veuillez annuler le vote.
ulidtko
Je n'ai pas downvote. Tout ce que j'ai fait a été commenté.
karel
D'accord. Néanmoins, j'ai à la fois offert et gagné des primes de réputation spécifiquement sur AskUbuntu. Cette question va en avoir une aussi, quand il sera temps.
ulidtko
1
@ulidtko Je vais essayer de faire un pic gnome-tweaks-tool. Je ne promets pas si je peux creuser quoi que ce soit et j'aurai besoin d'un certain temps, car je suis occupé récemment, mais je posterai une réponse si je déterre quelque chose en rapport avec gnome-tweak-tool. N'hésitez pas à me laisser un commentaire ici ou à me contacter par d'autres moyens
Sergiy Kolodyazhnyy

Réponses:

5

Dans Ubuntu 18.04, par défaut, il y a une option pour choisir Caps_Locket Shift+ Caps_Lockpour obtenir le comportement que nous recherchons, est dans gnome-tweaks. Mais cela ne fonctionne pas et n'a pas pu comprendre pourquoi.

entrez la description de l'image ici

J'ai réussi à obtenir ce comportement par la solution de contournement ci-dessous.

Voir ce lien pour une vidéo de 20 secondes. https://imgur.com/QNdrVqa

vérifiez d'abord les commandes ci-dessous dans le terminal si elles changent la langue d'entrée.

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

et

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

eh bien, ils fonctionnent.

entrez la description de l'image ici

nous devons lier ces commandes aux pressions de touches Caps_Locket Shift+Caps_Lock

peut y parvenir avec xbindkeyssi xbindkeys n'est pas encore installé, installez-le parsudo apt install xbindkeys

  1. créer un fichier .xbindkeysrcdans le dossier $ HOME
    touch ~/.xbindkeysrc
  2. pour connaître le keycode / id quel que soit son nom,
    exécutez xbindkeys --keyune fois que la boîte blanche apparaît, appuyez sur le Caps_Lockbouton, faites-le pour le Shiftbouton également et copiez les keycodes / ids comme indiqué ci-dessous

entrez la description de l'image ici

  1. cette étape est facultative. Désactivez le verrouillage des majuscules. Voir ci-dessous gif. Si le verrouillage des majuscules n'est pas désactivé .. lorsque vous appuyez plusieurs fois sur la touche, il bascule pendant que vous essayez de changer la langue. Je l'ai désactivé. mais cela dépend de votre intérêt.

entrez la description de l'image ici

  1. Ouvrez le fichier .xbindkeysrc
    gedit ~/.xbindkeysrcet modifiez le fichier comme ci-dessous en fonction des résultats des étapes ci-dessus

Modifiez les valeurs dans le contenu ci-dessous en fonction des résultats obtenus à l'étape 2 ci-dessus. Contenu:

"gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()""
m:0x10 + c:66

"gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()""
Shift+Mod2 + Shift_L+m:0x10 + c:66
  1. Enregistrez le fichier, fermez et redémarrez.
PRATAP
la source
2
OMG ça a marché! Je n'avais même pas besoin de me déconnecter, même sans redémarrage ( xbindkeys --poll-rc). J'ai également laissé l' grp:shift_caps_switchoption XKB activée - ce qui a changé la façon dont mes codes clés sont imprimés ( m:0x0 + c:66 ISO_First_Group& m:0x1 + c:66 Shift + ISO_First_Group); aucun problème de cela. Même la LED du clavier brille! Travail incroyable, vous auriez dû recevoir cette prime. (Les auteurs de gnome-tweaks, quels qu'ils soient, obtiennent un froncement de sourcils grincheux de ma part et des autres.)
ulidtko
5

Il existe un rapport de bogue auquel vous pouvez vous abonner:

Le rapport de bogue se lit comme suit:

Le panneau du clavier possède des options de commutation d'entrée, mais il ne permet pas d'utiliser les majuscules comme commutateur de langue.

Étapes à reproduire:

  1. Clavier gnome-control-center
  2. Faites défiler jusqu'à la section «Saisie»
  3. Cliquez sur Passer à la source d'entrée suivante
  4. Casquettes de presse

Résultat attendu: La touche de verrouillage des majuscules est acceptée comme touche de commutation Résultats réels: La touche de majuscules est ignorée dans la fenêtre de sélection.

PS Il en va de même pour «Passer à la source d'entrée précédente» et la combinaison de touches Maj-Maj.

Solutions de contournement de bogues

Le bug est actuellement sur la "Wishlist". Ces solutions de contournement sont proposées:

Solution de contournement 1

Trouvé une solution de contournement pour ce bogue:

  1. Installer dconf-editor (sudo apt-get installer dconf-editor)
  2. Accédez à / org / gnome / desktop / wm / keybindings /
  3. Sélectionnez l'interrupteur-source d'entrée, désactivez "Utiliser la valeur par défaut" et définissez "Valeur personnalisée" sur ['Caps_Lock']
  4. (Facultatif) Vous pouvez également modifier la valeur de switch-input-source-backward en quelque chose comme ['Caps_Lock'] (encore une fois, désactiver "Utiliser la valeur par défaut")

Solution de contournement 2

Une autre façon de procéder: 1. Installez GNOME Tweaks (gnome-tweak-tool) 2. Ouvrez l'application Tweaks 3. Basculez vers le panneau Clavier et souris 4. Cliquez sur Options de mise en page supplémentaires 5. Utilisez la section "Basculement vers une autre mise en page"

Abonnez-vous au rapport de bogue

Je recommanderais de vous abonner au rapport de bogue et d'ajouter vos propres expériences. Plus il y a de personnes qui souscrivent au rapport de bogue, plus vite la solution arrive (généralement).

WinEunuuchs2Unix
la source
La solution de contournement 1 ne convient pas à mes besoins, elle donne une commutation cyclique , ce qui n'est pas ce que je veux. La solution de contournement 2 (Gnome-Tweaks) a été jugée et battue à mort; Je peux le faire planter, mais je ne peux pas le faire fonctionner. Merci pour (encore un autre) lien.
ulidtko
J'ai voté pour votre question afin, espérons-le, d'attirer davantage l'attention. La publication de tous vos essais et erreurs sur le rapport de bogue peut être utile.
WinEunuuchs2Unix