Pagsulbad sa problema sa pagbalhin gamit ang alt+shift sa Linux, sa mga aplikasyon sa Electron

Hello mga kauban!

Gusto nakong ipaambit ang akong solusyon sa problema nga gipakita sa ulohan. Nadasig ko sa pagsulat niini nga artikulo sa usa ka kauban brnovk, nga dili tapolan ug mitanyag ug partial (para kanako) nga solusyon sa problema. Naghimo ko sa akong kaugalingon nga "saklay" nga nakatabang kanako. Naa koy gi share nimo.

Deskripsiyon sa problema

Gigamit nako ang Ubuntu 18.04 alang sa trabaho ug bag-o lang nakamatikod nga kung ang pagbalhin sa mga layout gamit ang alt + shift sa mga aplikasyon sama sa Visual Studio Code, Skype, Slack ug uban pa nga gihimo gamit ang Electron, ang mosunod nga problema mahitabo: ang focus gikan sa input field moadto sa taas. panel sa bintana (menu). Alang sa ubang mga rason, mibalhin ko sa Fedora + KDE ug nakaamgo nga ang problema wala mawala. Samtang nangitag solusyon, nakakita kog nindot nga artikulo Giunsa pag-ayo ang Skype sa imong kaugalingon. Daghang salamat kauban brnovk, kinsa nagsulti sa detalye bahin sa problema ug mipaambit sa iyang pamaagi sa pagsulbad niini. Apan ang pamaagi nga gipakita sa artikulo nagsulbad sa problema sa usa lamang ka aplikasyon, nga mao ang Skype. Alang kanako, hinungdanon usab nga masabtan ang Visual Studio Code, tungod kay ang pagsulat sa mga mensahe nga adunay paglukso nga menu, bisan kung makalagot, dili kaayo kung naapil ka sa pag-uswag. Dugang pa, gisugyot sa usa ka kauban ang usa ka solusyon diin ang menu sa aplikasyon nawala sa hingpit, ug dili gyud nako gusto nga mawala ang menu sa VS Code.

Naningkamot nga masabtan kung unsa ang sayup

Busa, nakahukom ko nga mogahin og panahon aron mahibal-an kung unsa ang nahitabo. Karon akong ihulagway sa daklit ang dalan nga akong giagian, tingali usa ka tawo nga mas batid niini nga butang makatabang sa pagpatin-aw sa mga kalisdanan nga akong nasugatan.

Giablihan nako ang Visual Studio Code ug gisugdan ang pag-igo sa lainlaing Alt+<%something%> nga mga kombinasyon aron makita kung giunsa pagtubag ang aplikasyon. Sa hapit tanan nga mga kaso, ang tanan nga mga kombinasyon gawas sa Alt + Shift nagtrabaho nga wala mawala ang pokus. Morag adunay mikaon sa gipiit nga Shift, nga misunod human gipugngan ang Alt, ug ang aplikasyon naghunahuna nga akong gipugos ang Alt, unya wala mopindot bisan unsa, gibuhian ang Alt ug malipayong gilabay niini ang akong focus ngadto sa menu niini, nga morag makataronganon sa kini.

Giablihan nako ang mga setting alang sa pagbalhin sa mga layout sa keyboard (nahibal-an nimo, kini nga taas nga lista nga adunay mga checkbox ug tanan nga mga lahi sa mga setting alang sa mga yawe) ug gitakda kini aron ibalhin ang mga layout gamit ang Alt button, nga wala’y dugang nga mga pag-klik.

Pagsulbad sa problema sa pagbalhin gamit ang alt+shift sa Linux, sa mga aplikasyon sa Electron

Pagkahuman niana, ang Alt + Tab aron mabalhin ang mga bintana mihunong sa pagtrabaho. Si Tab ra ang nagtrabaho, nga mao, adunay "mikaon" sa akong Alt pag-usab. Wala’y nahabilin nga mga pangutana bahin sa kung kinsa kini nga "usa ka tawo", apan wala ako nahibal-an kung unsa ang mahimo kaniya.

Apan tungod kay ang problema kinahanglan nga masulbad sa usa ka paagi, unya usa ka solusyon ang misantop sa hunahuna:

  1. Sa mga setting, i-disable ang hotkey para sa pagbalhin sa mga layout sa keyboard (uncheck ang tanang checkbox sa seksyon sa Switch to another layout);
  2. Paghimo sa imong kaugalingon nga hotkey nga magbalhin sa layout alang kanako

Deskripsyon sa solusyon

Una, mag-install kita og programa nga magtugot kanimo sa pag-assign sa mga command sa Xbindkeys nga mga yawe. Ikasubo, ang standard nga mga himan wala magtugot kanako sa paghimo og usa ka hotkey alang sa kombinasyon sama sa Alt+Shift pinaagi sa usa ka nindot nga interface. Mahimo para sa Alt+S, Alt+1, Alt+shift+Y, etc. ug uban pa, apan dili kini angay sa among buluhaton.

sudo dnf install xbindkeysrc

Dugang detalye bahin niini anaa sa ArchWiki
Sunod, maghimo kami usa ka sample setting file alang sa programa. Ang sample mubo ra, nga adunay pipila ka mga sugo, kung unsa ang kinahanglan nimo aron mahibal-an kung giunsa kini pagtrabaho:

xbindkeys -d > ~/.xbindkeysrc

Sama sa imong makita gikan sa panig-ingnan sa file, kinahanglan namon nga ipakita ang hotkey nga gusto namon gamiton ug ang mando nga kinahanglan ipatuman. Murag simple.


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

Isip usa ka hotkey, mahimo nimong gamiton ang pagsulat nga mabasa sa tawo o mogamit mga yawe nga code. Kini nagtrabaho alang kanako lamang sa mga code, apan walay usa nga nagdili kanimo sa pag-eksperimento og gamay.

Aron makuha ang mga code kinahanglan nimo gamiton ang mando:

xbindkeys -k

Usa ka gamay nga "X" nga bintana ang moabli. Kinahanglan ra nimo nga ipadayon ang mga yawe kung ang focus naa sa kini nga bintana! Niini lamang nga kaso makita nimo ang usa ka butang nga sama niini sa 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

Sa akong kaso, ang kombinasyon sa Alt + Shift key ingon niini:

m:0x8 + c:50

Karon kinahanglan namong siguroon nga kung imong i-klik kini nga kombinasyon, ang layout mobalhin. Nakit-an ra nako ang usa ka working command aron matino ang layout:


setxkbmap ru
setxkbmap us

Sama sa imong makita gikan sa panig-ingnan, mahimo ra kini makahimo sa usa o lain nga layout, mao nga wala’y nahunahuna sa akong hunahuna gawas sa pagsulat sa usa ka 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

Karon, kung ang .xbindkeysrc ug layout.sh nga mga file nahimutang sa parehas nga direktoryo, nan ang katapusan nga pagtan-aw sa .xbindkeysrc file ingon niini:


# 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

Human niana atong gamiton ang mga pagbag-o:


xbindkeys -p

Ug mahimo nimong susihon. Ayaw kalimti ang pag-disable sa bisan unsang mga kapilian sa pagbalhin sa mga layout sa standard nga mga setting.

Ang resulta

Mga kauban, nanghinaut ko nga kini nga artikulo makatabang sa usa ka tawo nga dali nga mawala ang usa ka makalagot nga problema. Sa personal, gigugol nako ang akong tibuok adlaw nga walay trabaho sa pagsulay sa paghunahuna ug pagsulbad sa problema sa bisan unsang paagi, aron dili na ako mabalda niini sa oras sa pagtrabaho. Gisulat ko kini nga artikulo aron makatipig oras ug nerbiyos sa usa ka tawo. Daghan kaninyo ang naggamit ug alternatibong paagi sa pagbalhin sa mga layout ug wala makasabot kon unsa ang problema. Ako personal nga ganahan nga mobalhin gamit ang Alt+Shift. Ug kana ang gusto nako nga kini molihok. Kung gipaambit nimo ang akong opinyon ug nag-atubang sa kini nga problema, kini nga artikulo makatabang kanimo.

Source: www.habr.com

Idugang sa usa ka comment