Γεια σας συνάδελφοι!
Θέλω να μοιραστώ τη λύση μου στο πρόβλημα που αναφέρεται στον τίτλο. Εμπνεύστηκα να γράψω το άρθρο από έναν συνάδελφο. , ο οποίος δεν ήταν τεμπέλης και μου πρόσφερε μια μερική (για μένα) λύση στο πρόβλημα. Έφτιαξα το δικό μου «δεκανίκι» που με βοήθησε. Το μοιράζομαι μαζί σας.
Περιγραφή του προβλήματος
Использовал Ubuntu 18.04 для работы и в последнее время заметил, что при переключении раскладки по alt+shift в таких приложениях, как Visual Studio Code, Skype, Slack и прочих, которые созданы с помощью Electron возникает следующая проблема: фокус с поля ввода, переходит к верхней панели окна (меню). По иным причинам переехал в Fedora + KDE и понял, что проблема никуда не делась. В поисках решения нашёл замечательную статью Πολλές ευχαριστίες στον φίλο μου. , ο οποίος περιέγραψε λεπτομερώς το πρόβλημα και μοιράστηκε τη λύση του. Αλλά η μέθοδος που αναφέρεται στο άρθρο έκλεισε το πρόβλημα με μία μόνο εφαρμογή, δηλαδή το Skype. Ήταν επίσης κρίσιμο για μένα να καταλάβω τον κώδικα Visual Studio, επειδή η σύνταξη μηνυμάτων με μενού μεταπήδησης είναι ενοχλητική, αλλά όχι τόσο αν ασχολείστε με την ανάπτυξη. Επιπλέον, ένας συνάδελφος πρότεινε μια λύση στην οποία το μενού της εφαρμογής εξαφανίζεται εντελώς και δεν θα ήθελα πραγματικά να χάσω το μενού στον κώδικα VS.
Προσπάθησα να καταλάβω τι συνέβαινε
Έτσι, αποφάσισα να αφιερώσω χρόνο για να καταλάβω τι συνέβαινε. Θα περιγράψω εν συντομία την πορεία που ακολούθησα, ίσως κάποιος πιο έμπειρος σε αυτό το θέμα μπορεί να βοηθήσει να εξηγήσει τις δυσκολίες που αντιμετώπισα.
Άνοιξα τον κώδικα του Visual Studio και άρχισα να πατάω διαφορετικούς συνδυασμούς Alt+<%something%>, παρακολουθώντας την αντίδραση της εφαρμογής. Σχεδόν σε όλες τις περιπτώσεις, όλοι οι συνδυασμοί εκτός από το Alt+Shift λειτούργησαν χωρίς να χάσουν την εστίαση. Φαινόταν ότι κάποιος έτρωγε το πατημένο Shift που ακολούθησε το παρατεταμένο Alt και η εφαρμογή νόμιζε ότι πάτησα Alt, μετά δεν πάτησα τίποτα, άφησε το Alt και με χαρά έριξε την εστίασή μου στο μενού της, κάτι που της φαινόταν αρκετά λογικό.
Άνοιξα τις ρυθμίσεις εναλλαγής διάταξης πληκτρολογίου (ξέρετε, αυτή τη μεγάλη λίστα με τα πλαίσια ελέγχου και κάθε είδους ρυθμίσεις για πλήκτρα) και όρισα την εναλλαγή διάταξης στο κουμπί Alt, χωρίς επιπλέον κλικ.

Μετά από αυτό, το Alt+Tab σταμάτησε να λειτουργεί για την εναλλαγή παραθύρων. Μόνο το Tab λειτουργούσε, πράγμα που σήμαινε ότι κάποιος "έτρωγε" ξανά το Alt μου. Δεν υπήρχαν ερωτήματα σχετικά με το ποιος ήταν αυτός ο "κάποιος", αλλά δεν έχω ιδέα τι μπορεί να γίνει με αυτόν.
Αλλά επειδή το πρόβλημα έπρεπε να λυθεί με κάποιο τρόπο, τότε μου ήρθε στο μυαλό μια λύση:
- Στις ρυθμίσεις, απενεργοποιήστε το πλήκτρο πρόσβασης για την εναλλαγή της διάταξης πληκτρολογίου (καταργήστε την επιλογή όλων των πλαισίων ελέγχου στην ενότητα Μετάβαση σε άλλη διάταξη).
- Δημιουργήστε το δικό μου πλήκτρο πρόσβασης που θα αλλάζει τη διάταξή μου
Περιγραφή της λύσης
Αρχικά, ας εγκαταστήσουμε ένα πρόγραμμα που σας επιτρέπει να αντιστοιχίζετε εντολές στα πλήκτρα Xbindkeys. Δυστυχώς, τα τυπικά εργαλεία δεν μου επέτρεψαν να δημιουργήσω ένα πλήκτρο πρόσβασης για έναν συνδυασμό όπως Alt+Shift μέσω μιας όμορφης διεπαφής. Μπορείτε να το κάνετε για Alt+S, Alt+1, Alt+shift+Y, κ.λπ., κ.λπ., αλλά αυτό δεν είναι κατάλληλο για την εργασία μας.
sudo dnf install xbindkeysrc Περισσότερες λεπτομέρειες σχετικά με αυτό μπορείτε να βρείτε στο
Στη συνέχεια, θα δημιουργήσουμε ένα δείγμα αρχείου ρυθμίσεων για το πρόγραμμα. Το δείγμα είναι αρκετά σύντομο, με μερικές εντολές, ακριβώς ό,τι χρειάζεστε για να καταλάβετε πώς να εργαστείτε με αυτό:
xbindkeys -d > ~/.xbindkeysrcΌπως μπορείτε να δείτε από το παράδειγμα στο αρχείο, πρέπει να καθορίσουμε το πλήκτρο πρόσβασης που θέλουμε να χρησιμοποιήσουμε και την εντολή που θα εκτελεστεί. Φαίνεται απλό.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Μπορείτε να χρησιμοποιήσετε ορθογραφικά λάθη ή κωδικούς πλήκτρων ως πλήκτρα πρόσβασης. Μόνο οι κωδικοί λειτούργησαν για μένα, αλλά κανείς δεν σας απαγορεύει να πειραματιστείτε λίγο.
Για να λάβετε κωδικούς, πρέπει να χρησιμοποιήσετε την εντολή:
xbindkeys -kΘα ανοίξει ένα μικρό παράθυρο με το σύμβολο "X". Πρέπει να πατάτε πλήκτρα μόνο όταν εστιάζετε σε αυτό το παράθυρο! Μόνο σε αυτήν την περίπτωση θα δείτε κάτι σαν αυτό στο τερματικό:
[podkmax@localhost ~]$ xbindkeys -k
Press combination of keys or/and click under the window.
You can use one of the two lines after "NoCommand"
in $HOME/.xbindkeysrc to bind a key.
"(Scheme function)"
m:0x4 + c:39
Control + s
Στην περίπτωσή μου, ο συνδυασμός πλήκτρων για το Alt+Shift μοιάζει με αυτό:
m:0x8 + c:50Τώρα πρέπει να το κάνουμε έτσι ώστε όταν κάνετε κλικ σε αυτόν τον συνδυασμό, η διάταξη να αλλάζει. Βρήκα μόνο μία εντολή που λειτουργεί για να καθορίσω τη διάταξη:
setxkbmap ru
setxkbmap us
Όπως μπορείτε να δείτε από το παράδειγμα, μπορεί να ενεργοποιήσει μόνο μία ή την άλλη διάταξη, οπότε δεν μου ήρθε στο μυαλό τίποτα άλλο εκτός από τη σύνταξη ενός σεναρίου.
vim ~/layout.sh
#!/bin/bash
LAYOUT=$(setxkbmap -print | awk -F + '/xkb_symbols/ {print $2}')
if [ "$LAYOUT" == "ru" ]
then `/usr/bin/setxkbmap us`
else `/usr/bin/setxkbmap ru`
fi
Τώρα, αν τα αρχεία .xbindkeysrc και layout.sh βρίσκονται στον ίδιο κατάλογο, η τελική εμφάνιση του αρχείου .xbindkeysrc μοιάζει με αυτό:
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
# specify a mouse button
"xterm"
control + b:2
#А вот то, что добавил я
"./layout.sh"
m:0x8 + c:50
Μετά από αυτό εφαρμόζουμε τις αλλαγές:
xbindkeys -p
Και μπορείτε να το ελέγξετε. Μην ξεχάσετε να απενεργοποιήσετε τυχόν επιλογές εναλλαγής διάταξης στις προεπιλεγμένες ρυθμίσεις.
Σύνολο
Συνάδελφοι, ελπίζω ότι αυτό το άρθρο θα βοηθήσει κάποιον να απαλλαγεί γρήγορα από ένα ενοχλητικό πρόβλημα. Προσωπικά, πέρασα όλη μου την ημέρα προσπαθώντας να καταλάβω και να λύσω το πρόβλημα με κάποιο τρόπο, ώστε να μην αποσπάται η προσοχή μου από αυτό κατά τη διάρκεια των ωρών εργασίας. Έγραψα αυτό το άρθρο για να γλιτώσω χρόνο και νεύρα σε κάποιον. Πολλοί από εσάς χρησιμοποιείτε έναν εναλλακτικό τρόπο για να αλλάξετε τη διάταξη και δεν καταλαβαίνετε ποιο είναι το πρόβλημα. Προσωπικά, μου αρέσει να αλλάζω χρησιμοποιώντας Alt + Shift. Και θέλω να λειτουργεί ακριβώς έτσι. Αν συμμερίζεστε τη γνώμη μου και έχετε αντιμετωπίσει αυτό το πρόβλημα, αυτό το άρθρο θα σας βοηθήσει.
Πηγή: www.habr.com
