Rezoud pwoblèm chanjman an avèk alt+shift nan Linux, nan aplikasyon elektwon

Bonjou kòlèg yo!

Mwen vle pataje solisyon mwen an nan pwoblèm ki endike nan tit la. Mwen te enspire pou ekri atik sa a pa yon kòlèg brnovk, ki moun ki pa t 'parese epi yo ofri yon solisyon pasyèl (pou mwen) nan pwoblèm nan. Mwen te fè pwòp mwen "beki" ki te ede m '. Mwen pataje avèk ou.

Deskripsyon nan pwoblèm nan

Использовал Ubuntu 18.04 для работы и в последнее время заметил, что при переключении раскладки по alt+shift в таких приложениях, как Visual Studio Code, Skype, Slack и прочих, которые созданы с помощью Electron возникает следующая проблема: фокус с поля ввода, переходит к верхней панели окна (меню). По иным причинам переехал в Fedora + KDE и понял, что проблема никуда не делась. В поисках решения нашёл замечательную статью Ki jan yo ranje Skype tèt ou. Mèsi anpil kanmarad brnovk, ki te pale an detay sou pwoblèm nan epi pataje metòd li pou rezoud li. Men, metòd ki endike nan atik la rezoud pwoblèm nan ak yon sèl aplikasyon, sètadi Skype. Pou mwen, li te kritik tou pou konprann Visual Studio Code, paske ekri mesaj ak yon meni sote, byenke anmèdan, se pa tèlman si ou patisipe nan devlopman. Anplis de sa, yon kòlèg sijere yon solisyon kote meni aplikasyon an disparèt nèt, epi mwen pa ta reyèlman vle pèdi meni an nan VS Code.

Eseye konprann sa ki mal

Kidonk, mwen deside pran tan pou m konnen sa k ap pase. Koulye a, mwen pral yon ti tan dekri chemen mwen te pran, petèt yon moun ki gen plis konesans nan zafè sa a pral ede eksplike difikilte mwen te rankontre.

Mwen louvri Kòd Visual Studio epi mwen te kòmanse frape diferan Alt + <%yon bagay%> konbinezon yo wè ki jan aplikasyon an reponn. Nan prèske tout ka yo, tout konbinezon eksepte Alt + Shift te travay san yo pa pèdi konsantre. Li te sanble tankou yon moun te manje Shift la bourade, ki te swiv apre yo fin kenbe Alt, ak aplikasyon an te panse ke mwen peze Alt, Lè sa a, pa t 'ap peze anyen, lage Alt ak kè kontan jete konsantre mwen nan meni li a, ki te sanble byen lojik pou li.

Mwen louvri anviwònman yo pou chanje layout klavye (ou konnen, lis long sa a ak kaz ak tout kalite anviwònman pou kle) epi mete li pou chanje layouts lè l sèvi avèk bouton Alt la, san okenn klik adisyonèl.

Rezoud pwoblèm chanjman an avèk alt+shift nan Linux, nan aplikasyon elektwon

Apre sa, Alt + Tab pou chanje fenèt yo sispann travay. Sèlman Tab te travay, se sa ki, yon moun "manje" Alt mwen an ankò. Pa te gen okenn kesyon ki rete sou kiyès "yon moun" sa a te, men mwen pa te gen okenn lide ki sa yo ta ka fè avè l '.

Men, depi pwoblèm nan te dwe rezoud yon jan kanmenm, Lè sa a, yon solisyon te vin nan tèt ou:

  1. Nan anviwònman yo, enfim hotkey la pou chanje layout klavye (dezakche tout kaz nan Chanje nan yon lòt seksyon Layout);
  2. Kreye pwòp ou a ki ta chanje layout a pou mwen

Deskripsyon solisyon an

Premyèman, ann enstale yon pwogram ki pèmèt ou bay kòmandman kle Xbindkeys yo. Malerezman, zouti estanda pa t 'pèmèt m' kreye yon hotkey pou yon konbinezon tankou Alt + Shift atravè yon koòdone bèl. Ka fè pou Alt + S, Alt + 1, Alt + Shift + Y, elatriye. elatriye, men sa a pa apwopriye pou travay nou an.

sudo dnf install xbindkeysrc

Plis detay sou li disponib nan ArchWiki
Apre sa, nou pral kreye yon echantiyon dosye anviwònman pou pwogram nan. Echantiyon an se byen kout, ak kèk kòmandman, jis sa ou bezwen konnen ki jan yo travay avèk li:

xbindkeys -d > ~/.xbindkeysrc

Kòm ou ka wè nan egzanp lan nan dosye a, nou bezwen endike hotkey ke nou vle itilize ak kòmandman an ki ta dwe egzekite. Sanble senp.


# Examples of commands:
"xbindkeys_show"
  control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
  c:41 + m:0x4

Kòm yon hotkey, ou ka itilize ekriti moun lizib oswa itilize kòd kle. Li te travay pou mwen sèlman ak kòd, men pesonn pa entèdi ou fè eksperyans yon ti kras.

Pou jwenn kòd yo ou bezwen sèvi ak kòmandman an:

xbindkeys -k

Yon ti fenèt "X" ap louvri. Ou sèlman bezwen peze kle lè konsantre sou fenèt sa a! Se sèlman nan ka sa a ou pral wè yon bagay tankou sa a nan tèminal la:


[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

Nan ka mwen an, konbinezon kle Alt + Shift sanble sa a:

m:0x8 + c:50

Koulye a, nou bezwen asire w ke lè ou klike sou konbinezon sa a, Layout yo chanje. Mwen te jwenn yon sèl kòmand k ap travay pou presize layout la:


setxkbmap ru
setxkbmap us

Kòm ou ka wè nan egzanp lan, li ka sèlman pèmèt youn oswa yon lòt Layout, kidonk pa gen anyen ki te vin nan tèt mwen lòt pase ekri yon 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

Koulye a, si dosye yo .xbindkeysrc ak layout.sh yo sitiye nan menm anyè a, Lè sa a, gade final la nan .xbindkeysrc dosye a sanble tankou sa a:


# 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

Apre sa nou aplike chanjman sa yo:


xbindkeys -p

Epi ou ka tcheke. Pa bliye enfim nenpòt opsyon pou chanje layouts nan paramèt estanda yo.

Total

Kòlèg, mwen espere ke atik sa a ka ede yon moun byen vit debarase m de yon pwoblèm anmèdan. Pèsonèlman, mwen te pase tout jounen mwen an konje ap eseye kalkile ak rezoud pwoblèm nan yon jan kanmenm, pou mwen pa ta distrè pa li ankò pandan lè travay. Mwen te ekri atik sa a pou konsève pou yon moun tan ak nè. Anpil nan nou sèvi ak yon metòd altènatif pou chanje kouman epi yo pa konprann ki pwoblèm nan. Mwen pèsonèlman renmen chanje ak Alt + Shift. Epi se konsa mwen vle li travay. Si ou pataje opinyon mwen epi ou fè fas ak pwoblèm sa a, atik sa a ta dwe ede ou.

Sous: www.habr.com

Achte hosting serye pou sit ki gen pwoteksyon DDoS, sèvè VPS VDS 🔥 Achte yon hébergement sit entènèt serye ak pwoteksyon DDoS, sèvè VPS VDS | ProHoster