Löser problemet med att vÀxla med alt+shift i Linux, i elektronapplikationer

HallÄ kollegor!

Jag skulle vilja dela med mig av min lösning pÄ problemet som anges i rubriken. Jag inspirerades att skriva den hÀr artikeln av en kollega brnovk, som inte var lat och erbjöd en delvis (för mig) lösning pÄ problemet. Jag gjorde min egen "krycka" som hjÀlpte mig. Jag delar med mig till dig.

Beskrivning av problemet

Begagnad Ubuntu Jag har anvÀnt 18.04 i jobbet och har nyligen mÀrkt att nÀr jag byter layout med Alt+Shift i applikationer som Visual Studio Code, Skype, Slack och andra byggda med Electron, uppstÄr följande problem: fokus flyttas frÄn inmatningsfÀltet till den övre fönsterpanelen (menyn). Av andra anledningar bytte jag till Fedora + KDE och insÄg att problemet kvarstod. NÀr jag sökte efter en lösning hittade jag den hÀr utmÀrkta artikeln. Fixa Skype med dina egna hÀnder. Tack sÄ mycket kamrat brnovk, som berÀttade utförligt om problemet och delade med sig av sitt sÀtt att lösa det. Men metoden som anges i artikeln löste problemet med endast en applikation, nÀmligen Skype. Det var ocksÄ avgörande för mig att förstÄ Visual Studio Code, eftersom det Àr irriterande att skriva meddelanden med en hoppande meny, men inte sÄ mycket om man arbetar med utveckling. Dessutom föreslog en kollega en lösning dÀr programmenyn försvinner helt, och jag skulle egentligen inte vilja förlora menyn i VS Code.

Jag försökte förstÄ vad som pÄgick

SÄ jag bestÀmde mig för att ta mig tid att lista ut vad som hÀnde. Nu ska jag kortfattat beskriva den vÀg jag tog, kanske nÄgon mer kunnig i denna frÄga kan hjÀlpa till att förklara de svÄrigheter jag stötte pÄ.

Jag öppnade Visual Studio Code och började trycka pÄ olika Alt+<%something%>-kombinationer och tittade pÄ programmets reagera. I nÀstan alla fall fungerade alla kombinationer utom Alt+Shift utan att tappa fokus. Det verkade som om nÄgon Ät upp den nedtryckta Shift-tangenten som följde efter att ha hÄllit nere Alt, och appen trodde att jag hade tryckt pÄ Alt, tryckte sedan inte pÄ nÄgot, slÀppte Alt och kastade glatt mitt fokus till sin meny, vilket verkade ganska logiskt för den.

Jag öppnade instÀllningarna för tangentbordslayoutvÀxling (du vet, den dÀr lÄnga listan med kryssrutor och alla möjliga instÀllningar för tangenter) och stÀllde in layoutvÀxlingen pÄ Alt-knappen, utan nÄgra ytterligare klick.

Löser problemet med att vÀxla med alt+shift i Linux, i elektronapplikationer

Efter detta slutade Alt+Tab att fungera för att vĂ€xla mellan fönster. Endast Tab fungerade, vilket innebar att nĂ„gon "Ă„t" min Alt igen. Det fanns inga kvar nĂ„gra frĂ„gor om vem den hĂ€r ”nĂ„gon” var, men jag hade ingen aning om vad man kunde göra med honom.

Men eftersom problemet mÄste lösas pÄ nÄgot sÀtt, kom en lösning i Ätanke:

  1. I instÀllningarna, inaktivera snabbtangenten för att byta tangentbordslayout (avmarkera alla kryssrutor i avsnittet VÀxla till en annan layout);
  2. Skapa min egen snabbtangent som skulle Àndra min layout

Beskrivning av lösningen

Först installerar vi ett program som lÄter dig tilldela kommandon till Xbindkeys-nycklar. TyvÀrr tillÀt inte standardverktygen mig att skapa en snabbtangent för en kombination som Alt+Shift genom ett vackert grÀnssnitt. Kan göras för Alt+S, Alt+1, Alt+shift+Y, etc. etc., men detta Àr inte lÀmpligt för vÄr uppgift.

sudo dnf install xbindkeysrc

Mer information om det finns pÄ ArchWiki
NÀsta steg Àr att skapa en exempelfil med instÀllningar för programmet. Exemplet Àr ganska kort, med nÄgra fÄ kommandon, precis vad du behöver för att lista ut hur du arbetar med det:

xbindkeys -d > ~/.xbindkeysrc

Som du kan se av exemplet i filen mÄste vi ange vilket snabbtangent vi vill anvÀnda och vilket kommando som ska köras. Det ser enkelt ut.


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

Du kan anvÀnda lÀsbara stavnings- eller tangentkoder som snabbtangent. Det fungerade bara för mig med koder, men ingen hindrar dig frÄn att experimentera lite.

För att fÄ koder behöver du anvÀnda kommandot:

xbindkeys -k

Ett litet "X"-fönster öppnas. Du fÄr bara trycka pÄ tangenterna nÀr fokus Àr pÄ det hÀr fönstret! Endast i det hÀr fallet kommer du att se nÄgot liknande detta i terminalen:


[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

I mitt fall ser tangentkombinationen för Alt+Shift ut sÄ hÀr:

m:0x8 + c:50

Nu mÄste vi göra det sÄ att layouten vÀxlar nÀr du trycker pÄ den hÀr kombinationen. Jag hittade bara ett fungerande kommando för att ange layouten:


setxkbmap ru
setxkbmap us

Som ni kan se i exemplet kan den bara aktivera en eller annan layout, sÄ inget annat Àn att skriva ett manus kom jag att tÀnka pÄ.


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

Om filerna .xbindkeysrc och layout.sh finns i samma katalog ser .xbindkeysrc-filens slutliga utseende ut sÄ hÀr:


# 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

Efter detta tillÀmpar vi Àndringarna:


xbindkeys -p

Och du kan kolla. Glöm inte att inaktivera alla alternativ för layoutvÀxling i standardinstÀllningarna.

Totalt

Kollegor, jag hoppas att den hÀr artikeln kommer att hjÀlpa nÄgon att snabbt bli av med ett irriterande problem. Personligen tillbringade jag hela min lediga dag med att försöka lista ut och lösa problemet pÄ nÄgot sÀtt, sÄ att jag inte skulle bli distraherad av det lÀngre under arbetstid. Jag skrev den hÀr artikeln för att spara tid och nerver Ät nÄgon. MÄnga av er anvÀnder ett alternativt sÀtt att byta layout och förstÄr inte vad problemet Àr. Personligen gillar jag att vÀxla med Alt+Shift. Och jag vill att det ska fungera precis sÄ. Om du delar min Äsikt och har stött pÄ det hÀr problemet, borde den hÀr artikeln hjÀlpa dig.

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster