Tere kolleegid!
Tahan jagada oma lahendust pealkirjas märgitud probleemile. Selle artikli kirjutamiseks inspireeris mind kolleeg
Probleemi kirjeldus
Kasutasin tööks Ubuntu 18.04 ja märkasin hiljuti, et kui vahetan paigutusi alt+shift abil sellistes rakendustes nagu Visual Studio Code, Skype, Slack jt, mis loodi Electroni abil, ilmneb järgmine probleem: fookus sisestusväljalt läheb üles akna paneel (menüü). Muudel põhjustel kolisin Fedora + KDE-sse ja mõistsin, et probleem pole kadunud. Lahendust otsides leidsin suurepärase artikli
Püüdis aru saada, mis viga
Seega otsustasin võtta aega, et aru saada, mis toimub. Nüüd kirjeldan lühidalt teed, mille läbisin, võib-olla aitab keegi, kes on selles küsimuses teadlikum, selgitada raskusi, millega kokku puutusin.
Avasin Visual Studio Code ja hakkasin vajutama erinevaid Alt+<%something%> kombinatsioone, et näha, kuidas rakendus reageerib. Peaaegu kõigil juhtudel töötasid kõik kombinatsioonid peale Alt+Shift fookust kaotamata. Tundus, et keegi sõi vajutatud Shift klahvi, mis järgnes peale Alt all hoidmist ja rakendus arvas, et ma vajutasin Alt, siis ei vajutanud midagi, vabastas Alt ja see viskas mu fookuse rõõmsalt oma menüüsse, mis tundus üsna loogiline. seda.
Avasin klaviatuuripaigutuse vahetamise sätted (teate küll, see pikk loend, kus on linnukesed ja kõikvõimalikud klahvide sätted) ja panin selle paigutust vahetama Alt nupuga, ilma lisaklõpsudeta.
Pärast seda lakkas akende vahetamiseks Alt+Tab töötamast. Ainult Tab töötas, see tähendab, et keegi “sõi” mu Alti uuesti. Ei jäänud küsimusi, kes see “keegi” on, aga mul polnud õrna aimugi, mida temaga teha saaks.
Aga kuna probleem tuli kuidagi lahendada, siis tuli meelde lahendus:
- Seadetes keelake kiirklahv klaviatuuripaigutuse vahetamiseks (tühjendage kõik märkeruudud jaotises Lülitu teisele paigutusele);
- Looge oma kiirklahv, mis muudaks minu jaoks paigutust
Lahenduse kirjeldus
Esmalt installime programmi, mis võimaldab Xbindkeysi klahvidele käske määrata. Kahjuks ei võimaldanud standardtööriistad ilusa liidese kaudu kiirklahvi luua kombinatsioonile nagu Alt+Shift. Saab teha Alt+S, Alt+1, Alt+Shift+Y jne puhul. jne, kuid see ei sobi meie ülesandeks.
sudo dnf install xbindkeysrc
Lisateavet selle kohta leiate aadressilt
Järgmisena loome programmi jaoks näidisseadete faili. Näidis on üsna lühike, mõne käsuga, just see, mida vajate sellega töötamiseks:
xbindkeys -d > ~/.xbindkeysrc
Nagu näete failis olevast näitest, peame märkima kiirklahvi, mida soovime kasutada, ja käsu, mida tuleks täita. Näeb lihtne välja.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Kiirklahvina saate kasutada inimloetavat kirjutamist või kasutada klahvikoode. Minu jaoks töötas see ainult koodidega, kuid keegi ei keela teil natuke katsetada.
Koodide saamiseks peate kasutama käsku:
xbindkeys -k
Avaneb väike "X" aken. Klahve tuleb vajutada ainult siis, kui fookus on sellel aknal! Ainult sel juhul näete terminalis midagi sellist:
[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
Minu puhul näeb klahvikombinatsioon Alt + Shift välja selline:
m:0x8 + c:50
Nüüd peame veenduma, et kui klõpsate sellel kombinatsioonil, lülitub paigutus. Paigutuse määramiseks leidsin ainult ühe töötava käsu:
setxkbmap ru
setxkbmap us
Nagu näitest näha, saab see lubada ainult üht või teist küljendust, nii et peale skripti kirjutamise ei tulnud mulle midagi pähe.
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
Nüüd, kui failid .xbindkeysrc ja layout.sh asuvad samas kataloogis, näeb faili .xbindkeysrc lõppvaade välja järgmine:
# 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
Pärast seda rakendame muudatused:
xbindkeys -p
Ja saate kontrollida. Ärge unustage standardsetes seadetes keelata kõiki paigutuste vahetamise valikuid.
Summaarne
Kolleegid, ma loodan, et see artikkel aitab kellelgi tüütust probleemist kiiresti vabaneda. Mina isiklikult veetsin terve oma vaba päeva, püüdes probleemi kuidagi välja mõelda ja lahendada, et see mind tööajal enam ei segaks. Kirjutasin selle artikli, et säästa kellegi aega ja närve. Paljud teist kasutavad paigutuse vahetamiseks alternatiivset meetodit ega saa aru, milles probleem on. Mulle isiklikult meeldib vahetada Alt+Shift. Ja nii ma tahan, et see toimiks. Kui jagate minu arvamust ja seisate selle probleemiga silmitsi, peaks see artikkel teid aitama.
Allikas: www.habr.com