Linux жүйесінде, Electron қолданбаларында alt+shift көмегімен ауысу мәселесін шешу

Сәлем әріптестер!

Мен тақырыпта көрсетілген мәселенің шешімімен бөліскім келеді. Маған бұл мақаланы жазуға бір әріптесім түрткі болды брновк, ол жалқау емес және мәселені ішінара (мен үшін) шешуді ұсынды. Мен өзіме көмектескен «балдақты» жасадым. Сіздермен бөлісіп жатырмын.

Мәселенің сипаттамасы

Мен Ubuntu 18.04 нұсқасын жұмыс үшін қолдандым және жақында Electron көмегімен жасалған Visual Studio Code, Skype, Slack және басқалар сияқты қолданбаларда alt+shift көмегімен орналасуларды ауыстырған кезде келесі мәселе туындайтынын байқадым: енгізу өрісіндегі фокус жоғарғы жағына өтеді. терезенің панелі (мәзір). Басқа себептермен мен Fedora + KDE-ге көштім және мәселе шешілмегенін түсіндім. Шешімін іздеп жүріп, мен тамаша мақала таптым Skype-ты өзіңіз қалай түзетуге болады. Көп рахмет жолдас брновк, мәселеге кеңінен тоқталып, оны шешудің әдіс-тәсілдерімен бөлісті. Бірақ мақалада көрсетілген әдіс мәселені тек бір қолданбамен, атап айтқанда Skype арқылы шешті. Мен үшін Visual Studio кодын түсіну өте маңызды болды, өйткені секіру мәзірімен хабарламаларды жазу, бірақ әзірлеуге қатысатын болсаңыз, тітіркендіргіш емес. Сонымен қатар, әріптес қолданба мәзірі толығымен жойылатын шешімді ұсынды, мен VS кодындағы мәзірді жоғалтқым келмейді.

Ненің дұрыс емес екенін түсінуге тырысты

Сондықтан мен не болып жатқанын анықтауға уақыт бөлуді шештім. Енді мен өзімнің жүріп өткен жолымды қысқаша сипаттаймын, мүмкін бұл мәселеде көбірек білетін біреу мен кездескен қиындықтарды түсіндіруге көмектеседі.

Мен Visual Studio кодын ашып, қолданбаның қалай жауап бергенін көру үшін әртүрлі Alt+<%something%> комбинацияларын баса бастадым. Барлық дерлік жағдайларда Alt+Shift пернелерінен басқа барлық комбинациялар фокусты жоғалтпай жұмыс істеді. Біреу Alt пернесін басып тұрғаннан кейін басылған Shift пернесін жеп жатқан сияқты болды, ал қолданба мен Alt пернесін басып, содан кейін ештеңені баспадым, Alt пернесін босатып жіберді деп ойлады және ол менің назарымды өз мәзіріне қуана аударды, бұл өте қисынды болып көрінді. ол.

Мен пернетақта орналасуларын ауыстыру параметрлерін аштым (сіздер білесіздер, бұл ұзын тізім құсбелгілері бар және пернелердің барлық параметрлері бар) және оны ешқандай қосымша басусыз Alt түймешігін пайдаланып орналасуларды ауыстыруға орнаттым.

Linux жүйесінде, Electron қолданбаларында alt+shift көмегімен ауысу мәселесін шешу

Осыдан кейін терезелерді ауыстыру үшін Alt+Tab жұмысын тоқтатты. Тек Tab жұмыс істеді, яғни біреу менің Alt-ты қайтадан «жеп қойды». Бұл «біреу» кім екендігі туралы сұрақтар қалмады, бірақ мен онымен не істеуге болатынын білмедім.

Бірақ мәселені қандай да бір жолмен шешу керек болғандықтан, шешім ойға келді:

  1. Параметрлерде пернетақта орналасуын ауыстыруға арналған жылдам пернені өшіріңіз (Басқа орналасуға ауысу бөліміндегі барлық құсбелгілерді алып тастаңыз);
  2. Мен үшін орналасуды ауыстыратын өзіңіздің жылдам пернені жасаңыз

Шешімнің сипаттамасы

Алдымен, Xbindkeys пернелеріне пәрмендерді тағайындауға мүмкіндік беретін бағдарламаны орнатайық. Өкінішке орай, стандартты құралдар маған әдемі интерфейс арқылы Alt+Shift сияқты комбинация үшін жылдам пернені жасауға мүмкіндік бермеді. Alt+S, Alt+1, Alt+shift+Y, т.б. үшін жасауға болады. т.б., бірақ бұл біздің тапсырмамызға сәйкес келмейді.

sudo dnf install xbindkeysrc

Ол туралы толығырақ мына жерден алуға болады ArchWiki
Әрі қарай, біз бағдарлама үшін үлгі параметрлер файлын жасаймыз. Үлгі өте қысқа, бірнеше пәрмендері бар, онымен қалай жұмыс істеу керектігін анықтау үшін не қажет:

xbindkeys -d > ~/.xbindkeysrc

Файлдағы мысалдан көріп отырғанымыздай, біз пайдаланғымыз келетін жылдам пернені және орындалуы керек пәрменді көрсетуіміз керек. Қарапайым көрінеді.


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

Жылдам перне ретінде сіз адам оқи алатын жазуды пайдалана аласыз немесе кілт кодтарын пайдалана аласыз. Бұл мен үшін тек кодтармен жұмыс істеді, бірақ ешкім сізге аздап тәжірибе жасауға тыйым салмайды.

Кодтарды алу үшін келесі пәрменді пайдалану керек:

xbindkeys -k

Кішкентай «X» терезесі ашылады. Фокус осы терезеде болғанда ғана пернелерді басу керек! Тек осы жағдайда сіз терминалда келесідей нәрсені көресіз:


[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

Менің жағдайда Alt+Shift пернелер тіркесімі келесідей көрінеді:

m:0x8 + c:50

Енді осы комбинацияны басқан кезде орналасу ауысатынына көз жеткізуіміз керек. Мен орналасуды көрсету үшін бір ғана жұмыс пәрменін таптым:


setxkbmap ru
setxkbmap us

Мысалдан көріп отырғаныңыздай, ол тек бір немесе басқа орналасуды қоса алады, сондықтан сценарий жазудан басқа ештеңе ойыма келмеді.


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

Енді, .xbindkeysrc және layout.sh файлдары бір каталогта орналасса, .xbindkeysrc файлының соңғы көрінісі келесідей болады:


# 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

Осыдан кейін біз өзгертулерді қолданамыз:


xbindkeys -p

Ал сіз тексере аласыз. Стандартты параметрлерде орналасуларды ауыстырудың кез келген опцияларын өшіруді ұмытпаңыз.

Нәтиже

Әріптестер, бұл мақала біреуге тітіркендіргіш мәселеден тез арылуға көмектеседі деп үміттенемін. Өз басым демалыс уақытымды жұмыс уақытында бұдан былай алаңдатпау үшін мәселені қалай болса да анықтауға және шешуге жұмсадым. Мен бұл мақаланы біреудің уақытын және жүйкесін үнемдеу үшін жаздым. Сіздердің көпшілігіңіз макеттерді ауыстырудың балама әдісін пайдаланасыз және мәселенің не екенін түсінбейсіз. Мен Alt+Shift пернелерімен ауысқанды ұнатамын. Мен оның осылай жұмыс істегенін қалаймын. Егер сіз менің пікіріммен бөліссеңіз және осы мәселеге тап болсаңыз, бұл мақала сізге көмектесуі керек.

Ақпарат көзі: www.habr.com

пікір қалдыру