Hello rakan sekerja!
Saya ingin berkongsi penyelesaian saya kepada masalah yang dinyatakan dalam tajuk. Saya terinspirasi untuk menulis artikel ini oleh seorang rakan sekerja. , yang bersusah payah menawarkan penyelesaian separa (bagi saya) kepada masalah ini. Saya telah mencipta "penipu" saya sendiri yang membantu saya. Saya berkongsikannya dengan anda.
Penerangan masalah
Использовал Ubuntu 18.04 для работы и в последнее время заметил, что при переключении раскладки по alt+shift в таких приложениях, как Visual Studio Code, Skype, Slack и прочих, которые созданы с помощью Electron возникает следующая проблема: фокус с поля ввода, переходит к верхней панели окна (меню). По иным причинам переехал в Fedora + KDE и понял, что проблема никуда не делась. В поисках решения нашёл замечательную статью Terima kasih banyak-banyak, rakan seperjuangan. , yang menerangkan masalah tersebut secara terperinci dan berkongsi penyelesaiannya. Walau bagaimanapun, penyelesaian yang diterangkan dalam artikel itu hanya berfungsi dengan satu aplikasi, iaitu Skype. Ia juga penting bagi saya untuk memahami Visual Studio Code, kerana walaupun pemesejan dengan menu lompat adalah menjengkelkan, ia tidaklah begitu teruk jika anda sedang membangunkannya. Tambahan pula, seorang rakan sekerja mencadangkan penyelesaian yang menjadikan menu aplikasi hilang sepenuhnya, dan saya benar-benar tidak mahu kehilangan menu dalam VS Code.
Aku cuba memahami apa yang sedang berlaku.
Jadi, saya memutuskan untuk meluangkan masa untuk mengetahui apa yang sedang berlaku. Saya akan menerangkan secara ringkas jalan yang saya ambil; mungkin seseorang yang lebih arif dalam bidang ini boleh membantu menjelaskan kesukaran yang saya hadapi.
Saya membuka Visual Studio Code dan mula menekan pelbagai kombinasi Alt+<%something%>, memerhatikan tindak balas aplikasi. Dalam hampir setiap kes, semua kombinasi kecuali Alt+Shift berfungsi tanpa hilang fokus. Rasanya seperti ada sesuatu yang memakan kekunci Shift yang saya tekan selepas menahan Alt, dan aplikasi itu menyangka saya telah menekan Alt, kemudian tidak menekan apa-apa, melepaskan Alt, dan ia dengan senang hati mengalihkan fokus saya ke menunya, yang kelihatan sangat logik baginya.
Saya membuka tetapan penukaran susun atur papan kekunci (anda tahu, senarai panjang dengan kotak pilihan dan pelbagai tetapan untuk kekunci) dan menetapkan penukaran susun atur kepada kekunci Alt, tanpa sebarang tekanan tambahan.

Selepas itu, Alt+Tab berhenti berfungsi untuk menukar tetingkap. Hanya Tab yang berfungsi, bermakna seseorang sedang "memakan" kekunci Alt saya sekali lagi. Tiada lagi persoalan siapa "seseorang" ini, tetapi saya tidak tahu apa yang perlu dilakukan dengannya.
Tetapi memandangkan masalah itu perlu diselesaikan, maka satu penyelesaian terlintas di fikiran:
- Dalam tetapan, lumpuhkan kekunci pintas untuk menukar susun atur papan kekunci (nyahtanda semua kotak pilihan dalam bahagian Tukar ke susun atur lain);
- Cipta kekunci pintas saya sendiri yang akan menukar susun atur saya
Penerangan tentang penyelesaian
Pertama sekali, mari kita pasang Xbindkeys, sebuah program yang membolehkan anda menetapkan arahan kepada kekunci. Malangnya, alat terbina dalam tidak membenarkan saya mencipta kekunci pintas untuk kombinasi seperti Alt+Shift menggunakan antara mukanya yang menarik. Anda boleh menciptanya untuk Alt+S, Alt+1, Alt+shift+Y, dan sebagainya, tetapi itu tidak sesuai untuk tujuan kita.
sudo dnf install xbindkeysrc Butiran lanjut mengenainya boleh didapati di
Seterusnya, mari kita cipta fail tetapan contoh untuk program ini. Ia agak pendek, dengan hanya beberapa arahan, itulah yang anda perlu fahami cara menggunakannya:
xbindkeys -d > ~/.xbindkeysrcSeperti yang anda dapat lihat daripada contoh dalam fail tersebut, kita perlu menentukan kekunci pintas yang ingin kita gunakan dan arahan yang perlu dilaksanakan. Ia kelihatan mudah.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Anda boleh menggunakan kod ejaan atau kod kunci yang boleh dibaca manusia sebagai kekunci pintas. Kod kunci adalah satu-satunya perkara yang berkesan untuk saya, tetapi sila cuba sedikit.
Untuk mendapatkan kod, anda perlu menggunakan arahan:
xbindkeys -kTetingkap kecil "X" akan terbuka. Anda hanya perlu menekan kekunci apabila tetingkap ini difokuskan! Hanya selepas itu anda akan melihat sesuatu seperti ini di terminal:
[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
Dalam kes saya, kombinasi kekunci Alt + Shift kelihatan seperti ini:
m:0x8 + c:50Sekarang saya perlu menjadikannya supaya menekan kombinasi ini sebenarnya menukar susun atur papan kekunci. Saya hanya menemui satu arahan yang berfungsi untuk menentukan susun atur:
setxkbmap ru
setxkbmap us
Seperti yang anda dapat lihat daripada contoh tersebut, ia hanya boleh mendayakan satu atau susun atur yang lain, jadi tiada apa-apa selain menulis skrip yang terlintas di fikiran saya.
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
Sekarang, jika fail .xbindkeysrc dan layout.sh terletak dalam direktori yang sama, penampilan terakhir fail .xbindkeysrc kelihatan seperti ini:
# 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
Selepas ini kami menggunakan perubahan:
xbindkeys -p
Dan anda boleh semak. Jangan lupa untuk melumpuhkan sebarang pilihan penukaran susun atur dalam tetapan lalai.
Jumlah
Rakan-rakan sekerja, saya harap artikel ini dapat membantu seseorang menyelesaikan masalah yang menyusahkan dengan cepat. Secara peribadi, saya menghabiskan seluruh hujung minggu saya cuba memikirkan dan menyelesaikan masalah tersebut supaya saya tidak perlu risau lagi semasa waktu bekerja. Saya menulis artikel ini untuk menjimatkan masa dan kekecewaan seseorang. Ramai di antara anda menggunakan cara alternatif untuk menukar susun atur papan kekunci dan tidak memahami masalahnya. Secara peribadi, saya lebih suka Alt+Shift, dan saya mahu ia berfungsi seperti itu. Jika anda berkongsi pendapat saya dan mengalami masalah ini, artikel ini sepatutnya dapat membantu anda.
Sumber: www.habr.com
