Ҳалли мушкилот бо гузариш бо истифодаи alt+shift дар Linux, дар барномаҳои Electron

Салом ҳамкорон!

Ман мехоҳам ҳалли худро дар бораи мушкилоте, ки дар сарлавҳа нишон дода шудааст, мубодила кунам. Ман ба навиштани ин мақола аз як ҳамкор илҳом гирифтам брновк, ки танбал набуда, халли кисман (барои ман) масъаларо пешниход кардааст. Ман худам «асғола» сохтам, ки ба ман кӯмак кард. Ман бо шумо мубодила мекунам.

Тавсифи мушкилот

Ман Ubuntu 18.04-ро барои кор истифода бурдам ва ба наздикӣ мушоҳида кардам, ки ҳангоми иваз кардани тарҳҳо бо истифодаи alt+shift дар замимаҳо ба монанди Visual Studio Code, Skype, Slack ва дигарон, ки бо истифода аз Electron сохта шудаанд, мушкилоти зерин ба миён меояд: фокус аз майдони вуруд ба боло меравад. панели тиреза (меню). Бо сабабҳои дигар, ман ба Fedora + KDE гузаштам ва фаҳмидам, ки мушкилот ҳал нашудааст. Ҳангоми ҷустуҷӯи роҳи ҳалли масъала ман як мақолаи олиҷаноб ёфтам Чӣ тавр Skype-ро худатон ислоҳ кунед. Ташаккури зиёд рафик брновк, ки дар бораи масъала муфассал сухан ронд ва усули халли он-ро накл кард. Аммо усули дар мақола зикршуда мушкилотро танҳо бо як барнома, яъне Skype ҳал кард. Барои ман фаҳмидани Visual Studio Code низ муҳим буд, зеро навиштани паёмҳо бо менюи ҷаҳиш, ҳарчанд озори, он қадар зиёд нест, агар шумо дар таҳия машғул бошед. Ғайр аз он, як ҳамкасб як роҳи ҳалли онро пешниҳод кард, ки дар он менюи барнома комилан нопадид мешавад ва ман аслан намехоҳам менюро дар VS Code гум кунам.

Кӯшиш кард, ки фаҳмад, ки чӣ нодуруст аст

Ҳамин тавр, ман қарор додам, ки вақт ҷудо кунам, то бифаҳмам, ки чӣ рӯй дода истодааст. Ҳоло ман ба таври мухтасар роҳи пешгирифтаамро тавсиф мекунам, шояд касе дар ин масъала огоҳтар бошад, мушкилиҳоеро, ки ба ман дучор шудаам, шарҳ диҳад.

Ман Visual Studio Code-ро кушодам ва ба задани комбинатсияҳои гуногуни Alt+<%somethy%> шурӯъ кардам, то бубинам, ки барнома чӣ гуна посух дод. Тақрибан дар ҳама ҳолатҳо, ҳама комбинатсияҳо ба истиснои Alt+Shift бе гум кардани фокус кор мекарданд. Ба назар чунин менамуд, ки касе Shift-и пахшшударо мехӯрд, ки пас аз пахш кардани тугмаи Alt иҷро мешуд ва барнома фикр мекард, ки ман Alt-ро пахш кардам, баъд чизеро пахш накардаам, Alt-ро раҳо кард ва он бо шодмонӣ диққати маро ба менюи худ партофт, ки ба назари ман комилан мантиқӣ менамуд. он.

Ман танзимотҳоро барои иваз кардани тарҳҳои клавиатура кушодам (шумо медонед, ин рӯйхати дароз бо қуттиҳои қайд ва ҳама гуна танзимот барои калидҳо) ва онро барои иваз кардани тарҳҳо бо истифода аз тугмаи Alt бидуни кликҳои иловагӣ муқаррар кардам.

Ҳалли мушкилот бо гузариш бо истифодаи alt+shift дар Linux, дар барномаҳои Electron

Пас аз он, Alt+Tab барои иваз кардани тирезаҳо кор қатъ кард. Факат Таб кор кард, яъне касе боз Alt-и маро «хурд». Саволе намонд, ки ин «касе» кист, вале ман намедонистам, ки бо ӯ чӣ кор кардан мумкин аст.

Аммо азбаски мушкилотро бо ягон роҳ ҳал кардан лозим буд, пас роҳи ҳалли он ба хотир омад:

  1. Дар танзимот, тугмаи зудро барои иваз кардани тарҳҳои клавиатура ғайрифаъол кунед (ҳамаи қуттиҳои қайдро дар бахши Гузариш ба тарҳбандии дигар интихоб кунед);
  2. Тугмаи гарми шахсии худро эҷод кунед, ки тарҳро барои ман иваз кунад

Тавсифи ҳалли

Аввалан, биёед барномаеро насб кунем, ки ба шумо имкон медиҳад фармонҳоро ба калидҳои Xbindkeys таъин кунед. Мутаассифона, асбобҳои стандартӣ ба ман имкон надоданд, ки тавассути интерфейси зебо барои комбинатсияи монанди Alt+Shift калиди гарм эҷод кунам. Барои Alt+S, Alt+1, Alt+shift+Y ва ғайра иҷро кардан мумкин аст. ва гайра, вале ин ба вазифаи мо мувофик нест.

sudo dnf install xbindkeysrc

Тафсилоти бештар дар бораи он дастрас аст АрхВики
Баъдан, мо як файли танзимоти намунавиро барои барнома эҷод мекунем. Намуна хеле кӯтоҳ аст, бо чанд фармон, танҳо он чизест, ки ба шумо барои фаҳмидани он ки чӣ тавр бо он кор кардан лозим аст:

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

Ҳамчун тугмачаи hotkey, шумо метавонед навиштанро, ки ба одамон хондан мумкин аст, истифода баред ё рамзҳои калидиро истифода баред. Он барои ман танҳо бо рамзҳо кор мекард, аммо ҳеҷ кас шуморо манъ намекунад, ки каме озмоиш кунед.

Барои гирифтани рамзҳо шумо бояд фармонро истифода баред:

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 иваз кунам. Ва ҳамин тавр ман мехоҳам, ки он кор кунад. Агар шумо фикри манро мубодила кунед ва бо ин мушкилот рӯ ба рӯ шавед, ин мақола бояд ба шумо кӯмак кунад.

Манбаъ: will.com

Илова Эзоҳ