Halo rekan kerja!
Aku pengin nuduhake solusi kanggo masalah sing dituduhake ing judhul. Aku iki inspirasi kanggo nulis artikel iki dening kolega , sing ora kesed lan menehi solusi parsial (kanggo aku) kanggo masalah kasebut. Aku nggawe "kruk" dhewe sing mbantu aku. Aku nuduhake karo sampeyan.
Katrangan masalah
Использовал Ubuntu 18.04 для работы и в последнее время заметил, что при переключении раскладки по alt+shift в таких приложениях, как Visual Studio Code, Skype, Slack и прочих, которые созданы с помощью Electron возникает следующая проблема: фокус с поля ввода, переходит к верхней панели окна (меню). По иным причинам переехал в Fedora + KDE и понял, что проблема никуда не делась. В поисках решения нашёл замечательную статью . Matur nuwun sanget sobat , sing ngomong kanthi rinci babagan masalah kasebut lan nuduhake cara kanggo ngrampungake. Nanging cara sing dituduhake ing artikel kasebut ngrampungake masalah kanthi mung siji aplikasi, yaiku Skype. Kanggo kula, iku uga kritis kanggo ngerti Visual Studio Code, amarga nulis pesen karo menu mlumpat, sanajan ngganggu, ora dadi luwih yen sampeyan melu pembangunan. Kajaba iku, kolega ngusulake solusi sing menu aplikasi ilang, lan aku ora pengin ilang menu ing Kode VS.
Nyoba kanggo mangerteni apa salah
Dadi, aku mutusake njupuk wektu kanggo ngerteni apa sing kedadeyan. Saiki aku bakal njlèntrèhaké kanthi ringkes dalan sing daklakoni, mbok menawa ana wong sing luwih ngerti babagan iki bakal mbantu njlèntrèhaké kesulitan sing daktemoni.
Aku mbukak Visual Studio Code lan miwiti mencet kombinasi Alt+<%something%> beda kanggo ndeleng carane aplikasi nanggapi. Ing meh kabeh kasus, kabeh kombinasi kajaba Alt + Shift makarya tanpa kelangan fokus. Kayane ana sing mangan Shift sing dipencet, sing banjur sawise nahan Alt, lan aplikasi kasebut mikir yen aku menet Alt, banjur ora menet apa-apa, ngeculake Alt lan kanthi bungah mbuwang fokusku menyang menu, sing katon cukup logis. iku.
Aku mbukak setelan kanggo ngoper tata keyboard (sampeyan ngerti, iki dhaftar dawa karo kothak centhang lan kabeh limo setelan kanggo tombol) lan nyetel kanggo ngalih tata nggunakake tombol Alt, tanpa klik tambahan.

Sawise iku, Alt+Tab kanggo ngalih windows mandheg. Mung Tab makarya, sing, wong "mangan" Alt sandi maneh. Ora ana pitakonan babagan sapa "wong" iki, nanging aku ora ngerti apa sing bisa ditindakake karo dheweke.
Nanging amarga masalah kasebut kudu dirampungake, mula ana solusi:
- Ing setelan, mateni hotkey kanggo ngalih tata letak keyboard (busak centhang kabeh kothak ing Ngalih menyang bagean tata letak liyane);
- Nggawe hotkey dhewe sing bakal ngalih tata letak kanggo kula
Katrangan saka solusi
Pisanan, ayo nginstal program sing ngidini sampeyan nemtokake printah menyang tombol Xbindkeys. Sayange, alat standar ora ngidini aku nggawe hotkey kanggo kombinasi kaya Alt + Shift liwat antarmuka sing apik. Bisa ditindakake kanggo Alt+S, Alt+1, Alt+shift+Y, lsp. etc., nanging iki ora cocok kanggo tugas kita.
sudo dnf install xbindkeysrc Rincian liyane babagan kasedhiya ing
Sabanjure, kita bakal nggawe file setelan sampel kanggo program kasebut. Sampel kasebut cukup cendhak, kanthi sawetara prentah, mung sampeyan kudu ngerti carane nggarap:
xbindkeys -d > ~/.xbindkeysrcNalika sampeyan bisa ndeleng saka conto ing file, kita kudu nunjukaké hotkey sing arep digunakake lan printah sing kudu kaleksanan. Katon prasaja.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Minangka hotkey, sampeyan bisa nggunakake tulisan sing bisa diwaca manungsa utawa nggunakake kode kunci. Iku bisa kanggo kula mung karo kode, nanging ora ana sing nglarang sampeyan kanggo eksprimen sethitik.
Kanggo njaluk kode sampeyan kudu nggunakake printah:
xbindkeys -kJendhela "X" cilik bakal mbukak. Sampeyan mung perlu menet tombol nalika fokus ing jendhela iki! Mung ing kasus iki sampeyan bakal weruh kaya iki ing 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
Ing kasusku, kombinasi tombol Alt + Shift katon kaya iki:
m:0x8 + c:50Saiki kita kudu nggawe manawa nalika sampeyan ngeklik kombinasi iki, tata letak bakal ganti. Aku nemokake mung siji printah sing bisa digunakake kanggo nemtokake tata letak:
setxkbmap ru
setxkbmap us
Nalika sampeyan bisa ndeleng saka conto, iku mung bisa ngaktifake siji utawa liyane tata letak, supaya ora ana ing pikiranku kajaba nulis script.
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
Saiki, yen file .xbindkeysrc lan layout.sh ana ing direktori sing padha, mula tampilan pungkasan file .xbindkeysrc katon kaya iki:
# 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
Sawisé iku, kita nggunakake owah-owahan:
xbindkeys -p
Lan sampeyan bisa mriksa. Aja lali mateni opsi kanggo ngoper tata letak ing setelan standar.
Asile
Kanca-kanca, muga-muga artikel iki bisa mbantu wong kanthi cepet nyingkirake masalah sing ngganggu. Secara pribadi, aku ngentekake sedina muput kanggo nyoba ngerteni lan ngrampungake masalah kasebut, supaya aku ora keganggu maneh sajrone jam kerja. Aku nulis artikel iki kanggo ngirit wektu lan saraf wong. Akeh sing nggunakake cara alternatif kanggo ngganti tata letak lan ora ngerti apa masalahe. Aku wong seneng ngalih karo Alt + Shift. Lan kaya ngono aku pengin bisa. Yen sampeyan nuduhake pendapatku lan ngadhepi masalah iki, artikel iki kudu mbantu sampeyan.
Source: www.habr.com
