Përshëndetje, kolegë!
Dua të ndaj zgjidhjen time për problemin e përmendur në titull. Artikulli është frymëzuar nga një koleg , i cili nuk u lodh dhe ofroi një zgjidhje pjesore (për mua). Kam bërë një 'hack' timin që më ndihmoi. Po e ndaj me ju.
Përshkrimi i problemit
Kam përdorur Ubuntu 18.04 për punë dhe së fundmi kam vënë re se kur kalojmë në një skemë tjetër me alt+shift në aplikacione si Visual Studio Code, Skype, Slack dhe të tjerë, që janë krijuar me Electron, ndodh ky problem: fokusi nga fusha e hyrjes kalon në panelin e sipërm të dritares (menunë). Për shkak të disa arsyeve, kalova në Fedora + KDE dhe kuptova se problemi nuk kishte ikur. Në kërkim të një zgjidhjeje, gjej një artikull të shkëlqyer . Falenderime të mëdha shokut , i cili ndan detajet për problem dhe ndan mënyrën e tij për ta zgjidhur. Por mënyra e përmendur në artikull trajtonte vetëm një aplikacion, pikërisht Skype. Për mua ishte gjithashtu e rëndësishme të kuptoja Visual Studio Code, sepse të shkruash mesazhe me një menu që lëviz është irrituese, por jo aq shumë nëse je duke zhvilluar. Përveç kësaj, një koleg propozoi një zgjidhje në të cilën menuja e aplikacionit zhduket plotësisht, dhe mua nuk më pëlqen shumë ta humbas menunë në VS Code.
Përpiqesha të kuptoja se çfarë po ndodhte
Pra, vendosa të ndaja kohë dhe të kuptoja se çfarë po ndodhte. Tani do të përshkruaj në përmbledhje se cila ishte rruga që ndoqa, ndoshta dikush më i njohur në këtë çështje do të ndihmojë në shpjegimin e vështirësive me të cilat u përballa.
Hapa hapur Visual Studio Code dhe fillova të shtypja kombinime të ndryshme Alt+, duke e parë reagimin e aplikacionit. Pothuajse në të gjitha rastet, të gjitha kombinimet, përveç Alt+Shift, funksiononin pa humbje fokusi. Kisha përshtypjen se dikush po ia merrte Shift-in e shtypur pas mbajtjes së Alt dhe aplikacioni mendonte se unë shtypa Alt, pastaj nuk shtypa asgjë, e lirë Alt dhe ai me gëzim e këndonte fokusi im në menynë e tij, që i dukej krejt logjik.
Hapa cilësimet për ndërrimin e shLocations të tastierës (e dini, ai listë e gjatë me kutiza kontrolli dhe të gjitha llojet e cilësimeve për çelësat) dhe vendosa të ndryshoj ndërrimin e shLocations të tastierës me çelësin Alt, pa ndonjë shtypje të mëtejshme.

Pas kësaj, Alt+Tab ndaloi funksionimin për ndërrimin e dritareve. Funksiononte vetëm Tab, domethënë, dikush përsëri po 'e grishtë' Alt-in tim. Kush është ky 'diku' nuk kishte më pyetje, por çfarë mund të bëj me të nuk kam asnjë ide.
Por, për shkak se duhej të zgjidhja problemin ndonjëherë, në atë moment më lindi një zgjidhje:
- Në cilësime, çaktivizoni çelësin e shkurtoreve për ndërrimin e shLocations të tastierës (hoqi të gjitha kutizat në seksionin Përdor një layout tjetër);
- Krijoni një shkurtesë që do të ndërronte gjuhën e tastierës
Përshkrimi i zgjidhjes
Së pari, do të instalojmë programin që lejon caktimin e komandave për çelësat Xbindkeys. Fatkeqësisht, mjetet standarde nuk më lejuan të krijoj një shkurtesë për kombinime si Alt+Shift përmes një ndërfaqeje të bukur. Mund të krijoni për Alt+S, Alt+1, Alt+shift+Y etj., por për qëllimin tonë, kjo nuk është e përshtatshme.
sudo dnf install xbindkeysrc Më shumë detaje rreth tij mund të gjenden në
Pastaj do të krijojmë një shembull skedari konfigurimi për programin. Shembulli është mjaft i shkurtër, me disa komanda që janë pikërisht ajo që na nevojitet për të kuptuar si funksionon:
xbindkeys -d > ~/.xbindkeysrcSiç mund të shihet nga shembulli në skedarin, na nevojitet të shënojmë shkurtesën 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 shkurtesë mund të përdorim një shkrim të kuptueshëm ose mund të përdorim kodet e çelësave. Më ka funksionuar vetëm me kode, por askush nuk ndalon të eksperimentoni disi.
Për të marrë kodet, nevojitet të përdorim komandën:
xbindkeys -kDo të hapet një dritare e vogël "X". Duhet të shtypni çelësat vetëm kur është fokusuar në këtë dritare! Vetëm kështu do të shihni në terminal diçka të tillë:
[podkmax@localhost ~]$ xbindkeys -k
Shtypni kombinimin e çelësave ose klikoni nën dritare.
Mund të përdorni një nga dy rreshtat pas "NoCommand"
në $HOME/.xbindkeysrc për të lidhur një çelës.
"(Funksioni i skemës)"
m:0x4 + c:39
Kontroll + s
Në rastin tim, kombinimi për çelësat Alt+Shift duket kështu:
m:0x8 + c:50Tani duhet të bëj që me shtypjen e kësaj kombinimi, të ndodhte pikërisht kalimi i disposicionit. Kam gjetur vetëm një komandë funksionale për të përcaktuar disposicionin:
setxkbmap ru
setxkbmap us
Siç duket nga shembulli, ajo di vetëm të aktivizojë një disposicion ose tjetrin, kështu që nuk m’u erdh ndonjë gjë tjetër në mendje përveç se të shkruaj një skript.
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 direktor, pamja përfundimtare e skedarit .xbindkeysrc duket kështu:
# 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, aplikoni ndryshimet:
xbindkeys -p
Dhe mund të kontrolloni. Mos harroni të çaktivizoni çdo opsion për kalimin e disposicionit në cilësimet e zakonshme.
Përfundimi
Të dashur kolegë, shpresoj që ky artikull do t'ju ndihmojë të zgjidhni shpejt një problem që ju ngacmon. Personalisht, kam kaluar të gjithë fundjavën për të kuptuar dhe zgjidhur problemin në një mënyrë që të mos më shqetësojë më gjatë në kohën e punës. Shkrova këtë artikull me qëllim që t'i kursej dikujt kohën dhe nervat. Shumë prej jush përdorin një mënyrë alternative për të ndryshuar gjuhën dhe nuk e kuptojnë se çfarë problemi ka. Mua më pëlqen të kaloj përmes Alt+Shift dhe dua që të funksionojë vetëm kështu. Nëse e ndani mendimin tim dhe jeni përballur me këtë problem, ky artikull duhet t'ju ndihmojë.
Burimi: habr.com
