Բարև գործընկերներ:
Ես ուզում եմ կիսվել վերնագրում նշված խնդրի իմ լուծումով։ Այս հոդվածը գրելու համար ինձ ոգեշնչել է գործընկերը
Խնդրի նկարագրությունը
Ես օգտագործել եմ Ubuntu 18.04-ը աշխատանքի համար և վերջերս նկատեցի, որ երբ փոխում եմ դասավորությունները alt+shift հավելվածներում, ինչպիսիք են Visual Studio Code-ը, Skype-ը, Slack-ը և այլն, որոնք ստեղծվել են Electron-ի միջոցով, առաջանում է հետևյալ խնդիրը. մուտքագրման դաշտից կենտրոնացումը գնում է վերև պատուհանի վահանակ (մենյու): Այլ պատճառներով ես տեղափոխվեցի Fedora + KDE և հասկացա, որ խնդիրը չի վերացել: Լուծում փնտրելիս գտա մի հրաշալի հոդված
Փորձեց հասկանալ, թե ինչն է սխալ
Այսպիսով, ես որոշեցի ժամանակ տրամադրել՝ պարզելու, թե ինչ է կատարվում: Հիմա ես համառոտ նկարագրեմ իմ անցած ճանապարհը, գուցե այս հարցում ավելի բանիմաց մեկը օգնի բացատրել իմ հանդիպած դժվարությունները:
Ես բացեցի Visual Studio Code-ը և սկսեցի հարվածել տարբեր Alt+<%something%> կոմբինացիաներին՝ տեսնելու, թե ինչպես է դիմումը արձագանքում: Գրեթե բոլոր դեպքերում բոլոր կոմբինացիաները, բացի Alt+Shift-ից, աշխատել են առանց կենտրոնացումը կորցնելու: Թվում էր, թե ինչ-որ մեկը ուտում էր սեղմված Shift-ը, որը հետևեց Alt-ը սեղմելուց հետո, և հավելվածը մտածեց, որ ես սեղմեցի Alt-ը, հետո ոչինչ չսեղմեցի, բաց թողեց Alt-ը և այն ուրախությամբ իմ ուշադրությունը գցեց իր մենյուի մեջ, ինչը միանգամայն տրամաբանական էր թվում: այն.
Ես բացեցի ստեղնաշարի դասավորությունները փոխելու կարգավորումները (գիտեք, այս երկար ցուցակը վանդակներով և ստեղների բոլոր տեսակի կարգավորումներով) և դրեցի այն, որ փոխի դասավորությունները՝ օգտագործելով Alt կոճակը, առանց լրացուցիչ սեղմումների:
Դրանից հետո Alt+Tab-ը պատուհանները փոխելու համար դադարեց աշխատել: Աշխատեց միայն Tab-ը, այսինքն՝ ինչ-որ մեկը նորից «կերավ» իմ Alt-ը։ Հարցեր չմնացին, թե ով է այդ «ինչ-որ մեկը», բայց ես պատկերացում չունեի, թե ինչ կարելի է անել նրա հետ։
Բայց քանի որ խնդիրը պետք է ինչ-որ կերպ լուծվեր, այդ դեպքում մի լուծում եկավ մտքիս.
- Կարգավորումներում անջատեք ստեղնաշարի դասավորությունները փոխելու համար տաք ստեղնը (անջատեք բոլոր վանդակները Անցնել այլ դասավորության բաժնում);
- Ստեղծեք ձեր սեփական տաք ստեղնը, որն ինձ համար կփոխի դասավորությունը
Լուծման նկարագրությունը
Նախ, եկեք տեղադրենք մի ծրագիր, որը թույլ է տալիս հրամաններ նշանակել 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
Որպես թեժ ստեղն՝ դուք կարող եք օգտագործել մարդու կողմից ընթեռնելի գրություն կամ օգտագործել հիմնական կոդեր: Ինձ մոտ միայն կոդերով է ստացվել, բայց ոչ ոք քեզ չի արգելում մի քիչ փորձարկել։
Կոդերը ստանալու համար անհրաժեշտ է օգտագործել հրամանը.
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-ով: Եվ ես ուզում եմ, որ այդպես աշխատի: Եթե կիսում եք իմ կարծիքը և բախվում եք այս խնդրին, ապա այս հոդվածը պետք է օգնի ձեզ:
Source: www.habr.com