Përshëndetje kolegë!
Unë dua të ndaj zgjidhjen time për problemin që tregohet në titull. Unë u frymëzova për të shkruar këtë artikull nga një koleg , i cili nuk ishte dembel dhe ofroi një zgjidhje të pjesshme (për mua) për problemin. Unë bëra "patericën" time e cila më ndihmoi. Po ndaj me ju.
Përshkrimi i problemit
Përdorur Ubuntu Kam përdorur versionin 18.04 për punë dhe kohët e fundit vura re se kur ndërroj paraqitjen duke përdorur Alt+Shift në aplikacione si Visual Studio Code, Skype, Slack dhe të tjera të ndërtuara me Electron, ndodh problemi i mëposhtëm: fokusi zhvendoset nga fusha e futjes në panelin e sipërm të dritares (menunë). Për arsye të tjera, kalova në Fedora + KDE dhe kuptova se problemi vazhdonte. Ndërsa kërkoja një zgjidhje, gjeta këtë artikull të shkëlqyer. . Shumë faleminderit shoku , i cili foli në detaje për problemin dhe ndau metodën e tij për zgjidhjen e tij. Por metoda e treguar në artikull e zgjidhi problemin vetëm me një aplikacion, domethënë Skype. Për mua, ishte gjithashtu kritike për të kuptuar Visual Studio Code, sepse shkrimi i mesazheve me një menu kërcyese, megjithëse i bezdisshëm, nuk është aq shumë nëse jeni i përfshirë në zhvillim. Plus, një koleg sugjeroi një zgjidhje në të cilën menyja e aplikacionit zhduket plotësisht dhe nuk do të doja ta humbisja menynë në VS Code.
U përpoq të kuptonte se çfarë nuk shkonte
Kështu që vendosa të gjej kohë për të kuptuar se çfarë po ndodhte. Tani do të përshkruaj shkurtimisht rrugën që kam marrë, ndoshta dikush më i ditur në këtë çështje do të ndihmojë në shpjegimin e vështirësive që kam hasur.
Hapa Visual Studio Code dhe fillova të godas kombinime të ndryshme Alt+<%something%> për të parë se si u përgjigj aplikacioni. Pothuajse në të gjitha rastet, të gjitha kombinimet përveç Alt+Shift funksionuan pa humbur fokusin. Dukej sikur dikush po hante Shiftin e shtypur, i cili pasoi pasi mbaja Alt-in, dhe aplikacioni mendoi se unë shtypa Alt, më pas nuk shtypa asgjë, lëshoi Alt dhe me gëzim hodhi fokusin tim në menunë e tij, gjë që dukej mjaft e logjikshme për të. atë.
Hapa cilësimet për ndërrimin e paraqitjeve të tastierës (e dini, kjo listë e gjatë me kutitë e kontrollit dhe të gjitha llojet e cilësimeve për çelësat) dhe e vendosa që të ndërrojë paraqitjet duke përdorur butonin Alt, pa asnjë klik shtesë.

Pas kësaj, Alt+Tab për të ndërruar dritaret ndaloi së punuari. Vetëm Tab funksionoi, domethënë dikush "hëngri" përsëri Alt-in tim. Nuk kishte pyetje se kush ishte ky "dikush", por nuk e kisha idenë se çfarë mund të bëhej me të.
Por meqenëse problemi duhej të zgjidhej disi, atëherë një zgjidhje erdhi në mendje:
- Në cilësimet, çaktivizoni tastin e nxehtë për ndërrimin e paraqitjeve të tastierës (zgjidhni të gjitha kutitë e kontrollit në seksionin Kalo në një paraqitje tjetër);
- Krijoni çelësin tuaj të nxehtë që do të ndryshonte paraqitjen për mua
Përshkrimi i zgjidhjes
Së pari, le të instalojmë një program që ju lejon të caktoni komanda për çelësat Xbindkeys. Fatkeqësisht, mjetet standarde nuk më lejuan të krijoj një çelës kyç për një kombinim si Alt+Shift përmes një ndërfaqe të bukur. Mund të bëhet për Alt+S, Alt+1, Alt+shift+Y, etj. etj., por kjo nuk është e përshtatshme për detyrën tonë.
sudo dnf install xbindkeysrc Më shumë detaje rreth tij janë në dispozicion në
Më pas, ne do të krijojmë një skedar të cilësimeve mostër për programin. Mostra është mjaft e shkurtër, me disa komanda, vetëm ajo që ju nevojitet për të kuptuar se si të punoni me të:
xbindkeys -d > ~/.xbindkeysrcSiç mund ta shihni nga shembulli në skedar, ne duhet të tregojmë çelësin e nxehtë që duam të përdorim dhe komandën që duhet të ekzekutohet. Duket e thjeshtë.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Si një çelës kyç, mund të përdorni shkrime të lexueshme nga njeriu ose të përdorni kode kyçe. Mua më ka funksionuar vetëm me kode, por askush nuk të ndalon të eksperimentosh pak.
Për të marrë kodet, duhet të përdorni komandën:
xbindkeys -kDo të hapet një dritare e vogël "X". Ju duhet vetëm të shtypni tastet kur fokusi është në këtë dritare! Vetëm në këtë rast do të shihni diçka të tillë në 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
Në rastin tim, kombinimi i tastit Alt+Shift duket si ky:
m:0x8 + c:50Tani duhet të sigurohemi që kur klikoni në këtë kombinim, faqosja ndryshon. Gjeta vetëm një komandë pune për të specifikuar paraqitjen:
setxkbmap ru
setxkbmap us
Siç mund ta shihni nga shembulli, ai mund të mundësojë vetëm një ose një paraqitje tjetër, kështu që asgjë nuk më erdhi në mendje përveç shkrimit të një skenari.
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
Tani, nëse skedarët .xbindkeysrc dhe layout.sh ndodhen në të njëjtën direktori, atëherë pamja përfundimtare e skedarit .xbindkeysrc duket si kjo:
# 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
Pas kësaj ne aplikojmë ndryshimet:
xbindkeys -p
Dhe mund të kontrolloni. Mos harroni të çaktivizoni çdo opsion për ndërrimin e paraqitjeve në cilësimet standarde.
Total
Kolegë, shpresoj se ky artikull mund të ndihmojë dikë të heqë qafe shpejt një problem të bezdisshëm. Personalisht, e kalova gjithë ditën time të pushimit duke u përpjekur ta kuptoja dhe ta zgjidhja problemin disi, në mënyrë që të mos shpërqehesha më prej tij gjatë orarit të punës. E shkrova këtë artikull për të kursyer kohë dhe nerva dikujt. Shumë prej jush përdorin një metodë alternative të ndërrimit të paraqitjeve dhe nuk e kuptojnë se cili është problemi. Unë personalisht më pëlqen të kaloj me Alt+Shift. Dhe kështu dua të funksionojë. Nëse ndani mendimin tim dhe jeni përballur me këtë problem, ky artikull duhet t'ju ndihmojë.
Burimi: www.habr.com
