Përshëndetje, kolegë!
Dua të ndaj zgjidhjen time për problemin e përmendur në titull. Shkrimi i artikujve është frymëzuar nga një kolegu. , i cili nuk u lodh dhe ofroi një zgjidhje të pjesshme (për mua). Krijova një 'patch' që më ndihmoi. Po e ndaj me ju.
Përshkrimi i problemit
Përdorja Ubuntu 18.04 për punë dhe së fundmi vura re se kur kaloj nga një klaviaturë në tjetrën përmes alt+shift në aplikacione si Visual Studio Code, Skype, Slack dhe të tjera, të krijuara me Electron, lind problemi në vazhdim: fokusi nga fusha e hyrjes kalon te paneli i sipërm të dritares (menyja). Për disa arsye kalova në Fedora + KDE dhe kuptova se problemi nuk kishte ikur. Në kërkim të një zgjidhjeje gjeta një artikull të shkëlqyer. . Falenderoj shumë shokun , i cili shpjegoi me detaje problemin dhe ndau mënyrën e tij të zgjidhjes. Por mënyra e përshkruar në artikull zgjidhte problemin vetëm me një aplikacion, konkretisht Skype. Për mua ishte gjithashtu kritik të kuptoja se si të punoja me Visual Studio Code, sepse të shkruaja mesazhe me një menu që shkonte lart është paksa irrituese, por jo aq sa kur jam angazhuar në zhvillim. Për më tepër, kolegu ofroi një zgjidhje, në të cilën menyja e aplikacionit zhduket plotësisht, dhe unë nuk do të doja të humbisja menunë në VS Code.
Përpiqesha të kuptoja çfarë ndodhte
Pra, vendosa të dedikoj kohë dhe të kuptoj çfarë ndodhte. Tani do ta përshkruaj shkurtimisht se cila ishte rruga ime, ndoshta ndonjë këndvështrim më i ditur në këtë çështje do të ndihmojë të sqarojë vështirësitë me të cilat u përballa.
Hapëm Visual Studio Code dhe fillova të shtypja kombinime të ndryshme Alt+, duke vërejtur reagimin e aplikacionit. Në pothuajse të gjitha rastet, të gjitha kombinimet përveç Alt+Shift vepruan pa humbje fokusi. U duk sikur dikush po hante Shift-in e shtypur, që ndjekur nga mbajtja e Alt-it, dhe aplikacioni mendonte se unë kisha shtypur Alt-in, pastaj nuk kisha shtypur asgjë, lëviza Alt-in dhe ai gëzohej për ta hedhur fokusin tim në menunë e tij, të cilën e konsideronte logjike.
Hapëm cilësimet e kalimit të klaviaturës (e dini atë listën e gjatë me kutitë e shënimit dhe cilësimet e ndryshme për çelësat) dhe vendosa kalimin e klaviaturës përmes çelësit Alt, pa ndonjë shtypje shtesë.

Pas këtij, Alt+Tab për kalimin e dritareve nuk funksionoi më. Veproi vetëm Tab, pra dikush përsëri kishte "ngrënë" Alt-in tim. Kush është ky "dikush" nuk kishte pyetje, por për atë që mund të bëj me të nuk kam asnjë ide.
Por pasi duhej të zgjidhja problemin ndonjëherë, më erdhi në mendje një zgjidhje:
- Të çaktivizohet shkurtesa për kalimin e disponueshmërisë së tastierës (të hiqen të gjitha markat në seksionin Kaloni në një tjetër disponueshmëri);
- Të krijohet shkurtesa ime, e cila do të ndërronte disponueshmërinë
Përshkrimi i zgjidhjes
Për fillim, do të instalojmë programin, i cili lejon të caktojmë komanda për taste Xbindkeys. Fatkeqësisht, mjetet standarde nuk më lejuan të krijoj një shkurtesë për kombinime si Alt+Shift në një ndërfaqe të bukur. Mund të bëj për Alt+S, Alt+1, Alt+shift+Y etj., por për detyrën tonë kjo nuk është e përshtatshme.
sudo dnf install xbindkeysrc Më shumë për të mund të lexoni në
Më pas do të krijojmë një shembull të skedarit të konfigurimit për programin. Shembulli është mjaft i shkurtër, me disa komanda siç duhet për t'u njohur se si funksionon:
xbindkeys -d > ~/.xbindkeysrcSiç duket nga shembulli që ndodhet në skedar, duhet të tregojmë 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 për njeriun ose të përdorim kodet e tasteve. Më ka funksionuar vetëm me kodet, por askush nuk e pengon të eksperimentoni pak.
Për të marrë kodet, duhet të përdorim komandën:
xbindkeys -kNjë dritare e vogël "X" do të hapet. Duhet të shtypni taste vetëm nëse është në fokus kjo dritare! Vetëm në këtë rast do të shihni diçka të tillë në terminal:
[podkmax@localhost ~]$ xbindkeys -k
Shtypni kombinimin e tasteve ose/edhe klikoni nën dritare.
Mund të përdorni një nga dy linjat pas "NoCommand"
in $HOME/.xbindkeysrc për të lidhur një tast.
"(Funksioni i skemës)"
m:0x4 + c:39
Kontroll + s
Në rastin tim, kombinimi për taste Alt+Shift duket kështu:
m:0x8 + c:50Tani duhet të bëjmë që kur të shtypet ky kombinim, të ndodhi konkretisht kalimi i disponueshmërisë. Kam gjetur vetëm një komandë funksionale për caktimin e disponueshmërisë:
setxkbmap ru
setxkbmap us
Siç duket nga shembulli, ajo di vetëm të aktivizojë një disponueshmëri ose tjetrën, ndaj nuk me erdhi në mendje asgjë tjetër përveç se shkruarja e një skripti.
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 tani, nëse skedarët .xbindkeysrc dhe layout.sh ndodhen në të njëjtin direktorium, 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 ndryshimin e vendosjes në cilësimet standarde.
Përfundimi
Të dashur kolegë, shpresoj se ky artikull do t'i ndihmojë dikujt që të shkëputet shpejt nga ky problem të bezdisshëm. Personalish, kalova tërë fundjavën time për të hetuar dhe zgjidhur këtë problem, për të mos u shqetësuar më gjatë në kohën e punës. E shkrova këtë artikull për të kursyer kohën dhe nervat e dikujt. Shumë prej jush përdorin një mënyrë alternative për të kaluar përmes vendosjes dhe nuk e kuptoni se cili është problemi. Mua më pëlqen të kaloj me Alt+Shift. Dhe dua që ta bëj pikërisht kështu. Nëse ndiheni si unë dhe keni hasur në këtë problem, ky artikull duhet t'ju ndihmojë.
Burimi: habr.com
