Linux-da, Electron-da tətbiqlərdə alt + shift ilə keçid probleminin həlli

Salam həmkarlar!

Başlıqda qeyd olunan problemin həllini paylaşmaq istəyirəm. Bir həmkardan ilham alaraq məqalə yazmaq brnovk, çox tənbəl deyil və problemin qismən (mənim üçün) həllini təklif edən. Mənə kömək edən “dəyənək”imi düzəltdim. Sizinlə paylaşıram.

Problemin təsviri

Mən iş üçün Ubuntu 18.04-dən istifadə edirdim və bu yaxınlarda gördüm ki, Visual Studio Code, Skype, Slack və Electron ilə yaradılan digər proqramlarda alt + shift ilə sxemi dəyişdirərkən aşağıdakı problem yaranır: giriş sahəsindən diqqət gedir. pəncərənin yuxarı çubuğuna (menyu). Digər səbəblərə görə Fedora + KDE-yə keçdim və problemin aradan qalxmadığını başa düşdüm. Həll axtarışında gözəl bir məqalə tapdım Öz əlinizlə Skype təmiri. Çox sağol yoldaş brnovkproblem barədə ətraflı danışıb və onun həlli yolunu bölüşüb. Ancaq məqalədə göstərilən üsul problemi yalnız bir proqramla, yəni Skype ilə bağladı. Visual Studio Code ilə məşğul olmaq mənim üçün çox vacib idi, çünki atlama menyusu ilə mesaj yazmaq zəhlətökəndir, amma inkişaf edirsinizsə, o qədər də deyil. Üstəlik, bir həmkarım tətbiq menyusunun tamamilə yox olduğu bir həll təklif etdi və mən VS Kodunda menyunu itirmək istəməzdim.

Nə baş verdiyini anlamağa çalışdı

Beləliklə, nə baş verdiyini anlamaq üçün vaxt ayırmağa qərar verdim. İndi hansı yolla getdiyimi qısaca təsvir edəcəyəm, bəlkə bu məsələdə daha fərasətli birisi qarşılaşdığım çətinlikləri aydınlaşdırmağa kömək edəcəkdir.

Mən Visual Studio Kodunu açdım və tətbiqin necə reaksiya verdiyinə baxaraq Alt+<%something%> müxtəlif kombinasiyalarını basmağa başladım. Demək olar ki, bütün hallarda, Alt + Shift istisna olmaqla, bütün birləşmələr diqqəti itirmədən işləmişdir. Görünürdü ki, kimsə Alt düyməsini basıb saxladıqdan sonra basılan Shift-i yeyir və proqram hesab edir ki, mən Alt-a basdım, sonra heç nəyə basmadım, Alt-ı buraxdım və o, sevinclə diqqətimi öz menyusuna atdı, bu da məntiqli görünürdü. Ona.

Klaviatura düzümünün dəyişdirilməsi parametrlərini (bilirsiniz, qeyd qutuları və düymələr üçün hər cür parametrləri olan bu uzun siyahı) açdım və klaviatura düzümünü heç bir əlavə klik olmadan Alt düyməsinə keçirdim.

Linux-da, Electron-da tətbiqlərdə alt + shift ilə keçid probleminin həlli

Bundan sonra Alt+Tab pəncərələri dəyişdirmək üçün işləməyi dayandırdı. Yalnız Tab işlədi, yəni kimsə mənim Altımı yenidən “yedi”. Bu "kimsə" kim idi, artıq sual vermir, amma onunla nə edilə biləcəyini bilmirəm.

Ancaq problem heç olmasa bir şəkildə həll edilməli olduğu üçün həll yolu ağlıma gəldi:

  1. Parametrlərdə, klaviatura düzümlərini dəyişdirmək üçün isti düyməni söndürün (Başqa düzənə keçid bölməsindəki bütün onay qutularını silin);
  2. Planımı dəyişdirəcək öz isti düymənizi yaradın

Həll təsviri

Əvvəlcə Xbindkeys-ə əmrlər təyin etməyə imkan verən proqramı quraşdıraq. Təəssüf ki, adi alətlər gözəl interfeys vasitəsilə Alt + Shift növünün birləşməsi üçün isti düymə yaratmağa imkan vermədi. Alt+S, Alt+1, Alt+shift+Y və s. üçün edilə bilər. və s., lakin bu bizim vəzifəmizə uyğun deyil.

sudo dnf install xbindkeysrc

Haqqında ətraflı məlumat var ArchWiki
Sonra proqram üçün nümunə parametrlər faylı yaradaq. Nümunə kifayət qədər qısadır, onunla necə işləməyinizi anlamaq üçün sizə lazım olan bir neçə əmr var:

xbindkeys -d > ~/.xbindkeysrc

Faylda olan nümunədən də göründüyü kimi, istifadə etmək istədiyimiz qısa düyməni və yerinə yetirilməli olan əmri göstərməliyik. Sadə görünür.


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

İsti düymə kimi siz insan tərəfindən oxuna bilən orfoqrafiyadan istifadə edə və ya açar kodlarından istifadə edə bilərsiniz. Bu, mənim üçün yalnız kodlarla işlədi, amma heç kim sizə bir az sınaq keçirməyi qadağan etmir.

Kodları əldə etmək üçün əmrdən istifadə etməlisiniz:

xbindkeys -k

Kiçik bir "X" pəncərəsi açılacaq. Bu pəncərəyə fokuslanarkən yalnız düymələri sıxmaq lazımdır! Yalnız bu halda terminalda belə bir şey görəcəksiniz:


[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

Mənim vəziyyətimdə Alt + Shift düymələri üçün kombinasiya belə görünür:

m:0x8 + c:50

İndi əmin olmalısınız ki, bu kombinasiyaya kliklədiyiniz zaman tərtibat dəyişdirilir. Düzəni təyin etmək üçün yalnız bir iş əmri tapdım:


setxkbmap ru
setxkbmap us

Nümunədən göründüyü kimi, o, yalnız bu və ya digər tərtibatı aça bilir, ona görə də ağlıma ssenari yazmaqdan başqa heç nə gəlmədi.


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

İndi .xbindkeysrc və layout.sh faylları eyni kataloqdadırsa, .xbindkeysrc faylının son forması belə görünü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

Bundan sonra dəyişiklikləri tətbiq edin:


xbindkeys -p

Və yoxlaya bilərsiniz. Standart parametrlərdə layoutların dəyişdirilməsi üçün hər hansı seçimləri söndürməyi unutmayın.

Ümumi

Həmkarlar, ümid edirəm ki, bu məqalə kiməsə zəhlətökən problemdən tez qurtulmağa kömək edə bilər. Şəxsən mən bütün istirahət günümü birtəhər problemi başa düşmək və həll etmək üçün sərf etdim ki, iş vaxtı bundan sonra fikrim yayınmasın. Bu yazını kiminsə vaxtına və əsəblərinə qənaət etmək üçün yazdım. Bir çoxunuz planları dəyişmək üçün alternativ yoldan istifadə edirsiniz və problemin nə olduğunu başa düşmürsünüz. Mən şəxsən Alt+Shift ilə keçidi xoşlayıram. Və bunun belə işləməsini istəyirəm. Fikrimi bölüşsəniz və bu problemlə qarşılaşırsınızsa, bu məqalə sizə kömək etməlidir.

Mənbə: www.habr.com

Добавить комментарий