Salom hamkasblar!
Sarlavhada ko'rsatilgan muammoga yechimimni baham ko'rmoqchiman. Ushbu maqolani yozishga hamkasbim ilhom berdi
Muammoning tavsifi
Men ish uchun Ubuntu 18.04 dan foydalanardim va yaqinda Electron yordamida yaratilgan Visual Studio Code, Skype, Slack va boshqalar kabi ilovalarda alt+shift yordamida maketlarni almashtirishda quyidagi muammo yuzaga kelganini payqadim: kirish maydonidan fokus yuqoriga o‘tadi. oyna paneli (menyu). Boshqa sabablarga ko'ra, men Fedora + KDE-ga ko'chib o'tdim va muammo hal qilinmaganini angladim. Yechim izlab, ajoyib maqola topdim
Nima noto'g'ri ekanligini tushunishga harakat qildi
Shunday qilib, nima bo'layotganini tushunish uchun vaqt ajratishga qaror qildim. Endi men bosib o'tgan yo'lni qisqacha tasvirlab beraman, ehtimol bu masalada ko'proq bilimdon kimdir men duch kelgan qiyinchiliklarni tushuntirishga yordam beradi.
Men Visual Studio Code-ni ochdim va dastur qanday javob berishini ko'rish uchun turli xil Alt+<%something%> kombinatsiyalarini bosishni boshladim. Deyarli barcha holatlarda, Alt+Shift-dan tashqari barcha kombinatsiyalar diqqatni yo'qotmasdan ishladi. Kimdir Shift tugmachasini bosganga o'xshardi, bu esa Alt tugmachasini bosib ushlab turgandan so'ng, dastur men Alt-ni bosdim, keyin hech narsani bosmadi, deb o'yladi, Alt-ni qo'yib yubordi va u quvonch bilan diqqatimni o'z menyusiga qaratdi, bu juda mantiqiy tuyuldi. bu.
Men klaviatura tartibini almashtirish sozlamalarini ochdim (bilasizmi, belgilash katakchalari va tugmalar uchun barcha turdagi sozlamalar bilan bu uzun ro'yxat) va uni hech qanday qo'shimcha bosishlarsiz Alt tugmasi yordamida tartiblarni almashtirish uchun o'rnatdim.
Shundan so'ng, oynalarni almashtirish uchun Alt + Tab tugmalari ishlashni to'xtatdi. Faqat Tab ishladi, ya'ni kimdir mening Altimni yana "yeydi". Bu "kimdir" kimligi haqida hech qanday savol qolmadi, lekin men u bilan nima qilish mumkinligini bilmasdim.
Ammo muammoni qandaydir tarzda hal qilish kerak bo'lganligi sababli, yechim aqlga keldi:
- Sozlamalarda klaviatura tartibini almashtirish uchun tezkor tugmani o'chirib qo'ying (Boshqa tartibga o'tish bo'limidagi barcha belgilash katakchalarini olib tashlang);
- Men uchun tartibni o'zgartiradigan o'zingizning tezkor tugmachangizni yarating
Yechim tavsifi
Birinchidan, Xbindkeys tugmachalariga buyruqlar belgilash imkonini beruvchi dasturni o'rnatamiz. Afsuski, standart vositalar chiroyli interfeys orqali Alt+Shift kabi kombinatsiya uchun tezkor tugmani yaratishga imkon bermadi. Alt+S, Alt+1, Alt+shift+Y va boshqalar uchun bajarilishi mumkin. va hokazo, lekin bu bizning vazifamiz uchun mos emas.
sudo dnf install xbindkeysrc
Bu haqda batafsil ma'lumotni quyidagi manzilda topishingiz mumkin
Keyinchalik, dastur uchun namuna sozlamalari faylini yaratamiz. Namuna juda qisqa, bir nechta buyruqlar bilan, u bilan qanday ishlashni tushunish uchun nima kerak:
xbindkeys -d > ~/.xbindkeysrc
Fayldagi misoldan ko'rinib turibdiki, biz foydalanmoqchi bo'lgan tezkor tugmani va bajarilishi kerak bo'lgan buyruqni ko'rsatishimiz kerak. Oddiy ko'rinadi.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Tezkor tugma sifatida siz odam o'qiy oladigan yozuvdan foydalanishingiz yoki kalit kodlaridan foydalanishingiz mumkin. Bu men uchun faqat kodlar bilan ishladi, lekin hech kim sizga ozgina tajriba qilishni taqiqlamaydi.
Kodlarni olish uchun buyruqni ishlatishingiz kerak:
xbindkeys -k
Kichik "X" oynasi ochiladi. Siz faqat ushbu oynada diqqat markazida bo'lganingizda tugmachalarni bosishingiz kerak! Faqat bu holatda siz terminalda shunga o'xshash narsani ko'rasiz:
[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
Mening holatimda, Alt + Shift tugmalar birikmasi quyidagicha ko'rinadi:
m:0x8 + c:50
Endi biz ushbu kombinatsiyani bosganingizda tartib o'zgarishiga ishonch hosil qilishimiz kerak. Tartibni belgilash uchun faqat bitta ishchi buyruq topdim:
setxkbmap ru
setxkbmap us
Misoldan ko'rinib turibdiki, u faqat u yoki bu tartibni yoqishi mumkin, shuning uchun skript yozishdan boshqa hech narsa xayolimga kelmadi.
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
Endi, agar .xbindkeysrc va layout.sh fayllari bitta katalogda joylashgan bo'lsa, .xbindkeysrc faylining yakuniy ko'rinishi quyidagicha ko'rinadi:
# 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
Shundan so'ng biz o'zgarishlarni qo'llaymiz:
xbindkeys -p
Va tekshirishingiz mumkin. Standart sozlamalarda tartiblarni almashtirish uchun har qanday variantlarni o'chirishni unutmang.
Xulosa
Hamkasblar, umid qilamanki, ushbu maqola kimgadir zerikarli muammodan tezda xalos bo'lishga yordam beradi. Shaxsan men butun dam olish kunimni ish vaqtida chalg‘itmaslik uchun muammoni qandaydir yo‘l bilan aniqlash va hal qilish uchun o‘tkazdim. Men bu maqolani birovning vaqtini va asabini tejash uchun yozdim. Ko'pchiligingiz sxemalarni almashtirishning muqobil usulidan foydalanasiz va muammo nimada ekanligini tushunmaysiz. Shaxsan men Alt+Shift bilan almashishni yoqtiraman. Va men uning ishlashini xohlayman. Agar siz mening fikrimni baham ko'rsangiz va ushbu muammoga duch kelsangiz, ushbu maqola sizga yordam berishi kerak.
Manba: www.habr.com