Ngatasi masalah karo ngoper nggunakake alt+shift ing Linux, ing aplikasi Electron

Halo rekan kerja!

Aku pengin nuduhake solusi kanggo masalah sing dituduhake ing judhul. Aku iki inspirasi kanggo nulis artikel iki dening kolega brnovk, 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

Aku nggunakake Ubuntu 18.04 kanggo kerja lan bubar ngerteni manawa nalika ngalih tata letak nggunakake alt + shift ing aplikasi kayata Visual Studio Code, Skype, Slack lan liya-liyane sing digawe nggunakake Electron, masalah ing ngisor iki kedadeyan: fokus saka kolom input menyang ndhuwur. panel jendela (menu). Kanggo alasan liyane, aku pindhah menyang Fedora + KDE lan ngerti yen masalah kasebut durung ilang. Nalika nggoleki solusi, aku nemokake artikel sing apik banget Cara ndandani Skype dhewe. Matur nuwun sanget sobat brnovk, 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.

Ngatasi masalah karo ngoper nggunakake alt+shift ing Linux, ing aplikasi Electron

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:

  1. Ing setelan, mateni hotkey kanggo ngalih tata letak keyboard (busak centhang kabeh kothak ing Ngalih menyang bagean tata letak liyane);
  2. 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 ArchWiki
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 > ~/.xbindkeysrc

Nalika 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 -k

Jendhela "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:50

Saiki 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

Add a comment