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 , 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. . Tack sÄ mycket kamrat , 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.

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:
- I instÀllningarna, inaktivera snabbtangenten för att byta tangentbordslayout (avmarkera alla kryssrutor i avsnittet VÀxla till en annan layout);
- 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Ä
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 > ~/.xbindkeysrcSom 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 -kEtt 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:50Nu 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
