Sveiki kolēģi!
Es vēlos dalīties ar savu virsrakstā norādītās problēmas risinājumu. Uzrakstīt šo rakstu mani iedvesmoja kolēģe
Problēmas apraksts
Es izmantoju Ubuntu 18.04 darbam un nesen pamanīju, ka, pārslēdzot izkārtojumus, izmantojot alt+shift tādās lietojumprogrammās kā Visual Studio Code, Skype, Slack un citās, kas tika izveidotas, izmantojot Electron, rodas šāda problēma: fokuss no ievades lauka pāriet uz augšu loga panelis (izvēlne). Citu iemeslu dēļ es pārgāju uz Fedora + KDE un sapratu, ka problēma nav pazudusi. Meklējot risinājumu, atradu brīnišķīgu rakstu
Mēģināja saprast, kas par vainu
Tāpēc es nolēmu veltīt laiku, lai noskaidrotu, kas notiek. Tagad es īsi aprakstīšu ceļu, kuru gāju, iespējams, kāds šajā jautājumā zinošāks palīdzēs izskaidrot grūtības, ar kurām es saskāros.
Es atvēru Visual Studio Code un sāku izmantot dažādas Alt+<%something%> kombinācijas, lai redzētu, kā lietojumprogramma reaģē. Gandrīz visos gadījumos visas kombinācijas, izņemot Alt+Shift, darbojās, nezaudējot fokusu. Likās, ka kāds ēd nospiesto Shift, kas sekoja pēc Alt turēšanas, un aplikācija domāja, ka es nospiedu Alt, tad neko nenospiedu, atlaidu Alt un tas priecīgi iemeta manu fokusu savā izvēlnē, kas šķita diezgan loģiski. to.
Es atvēru tastatūras izkārtojumu pārslēgšanas iestatījumus (ziniet, šis garais saraksts ar izvēles rūtiņām un visādiem taustiņu iestatījumiem) un iestatīju, lai tas pārslēgtu izkārtojumus, izmantojot taustiņu Alt, bez papildu klikšķiem.
Pēc tam Alt+Tab, lai pārslēgtu logus, pārstāja darboties. Nostrādāja tikai Tab, tas ir, kāds atkal “apēda” manu Alt. Nebija jautājumu par to, kas ir šis “kāds”, bet man nebija ne jausmas, ko ar viņu varētu darīt.
Bet tā kā problēma bija kaut kā jārisina, tad prātā ienāca risinājums:
- Iestatījumos atspējojiet karsto taustiņu tastatūras izkārtojumu pārslēgšanai (noņemiet atzīmi no visām izvēles rūtiņām sadaļā Pārslēgt uz citu izkārtojumu);
- Izveidojiet savu karsto taustiņu, kas mainītu izkārtojumu manā vietā
Risinājuma apraksts
Vispirms instalēsim programmu, kas ļauj piešķirt komandas Xbindkeys taustiņiem. Diemžēl standarta rīki neļāva man izveidot karsto taustiņu kombinācijai, piemēram, Alt+Shift, izmantojot skaistu interfeisu. To var izdarīt ar Alt+S, Alt+1, Alt+shift+Y utt. utt., bet tas nav piemērots mūsu uzdevumam.
sudo dnf install xbindkeysrc
Sīkāka informācija par to ir pieejama vietnē
Tālāk mēs izveidosim programmas iestatījumu faila paraugu. Paraugs ir diezgan īss, ar dažām komandām, tieši tas, kas jums nepieciešams, lai izdomātu, kā ar to strādāt:
xbindkeys -d > ~/.xbindkeysrc
Kā redzat no faila piemēra, mums ir jānorāda karstais taustiņš, kuru vēlamies izmantot, un komanda, kas jāizpilda. Izskatās vienkārši.
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
"xterm"
c:41 + m:0x4
Kā karsto taustiņu varat izmantot cilvēkiem lasāmu rakstīšanu vai taustiņu kodus. Man tas strādāja tikai ar kodiem, bet neviens neliedz jums nedaudz eksperimentēt.
Lai iegūtu kodus, jums jāizmanto komanda:
xbindkeys -k
Tiks atvērts neliels "X" logs. Taustiņi ir jānospiež tikai tad, kad fokuss ir uz šo logu! Tikai šajā gadījumā terminālī redzēsit kaut ko līdzīgu:
[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
Manā gadījumā Alt+Shift taustiņu kombinācija izskatās šādi:
m:0x8 + c:50
Tagad mums ir jāpārliecinās, ka, noklikšķinot uz šīs kombinācijas, izkārtojums tiek pārslēgts. Es atradu tikai vienu darba komandu, lai norādītu izkārtojumu:
setxkbmap ru
setxkbmap us
Kā redzams no piemēra, tas var iespējot tikai vienu vai otru izkārtojumu, tāpēc man nekas cits neienāca prātā, kā tikai skripta rakstīšana.
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
Tagad, ja faili .xbindkeysrc un layout.sh atrodas vienā direktorijā, .xbindkeysrc faila galīgais skats izskatās šādi:
# 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
Pēc tam mēs piemērojam izmaiņas:
xbindkeys -p
Un jūs varat pārbaudīt. Neaizmirstiet standarta iestatījumos atspējot visas izkārtojuma pārslēgšanas iespējas.
Kopsavilkums
Kolēģi, es ceru, ka šis raksts kādam var palīdzēt ātri atbrīvoties no kaitinošas problēmas. Es personīgi visu savu brīvo dienu pavadīju, mēģinot kaut kā izdomāt un atrisināt problēmu, lai darba laikā mani tā vairs nenovērstu. Es uzrakstīju šo rakstu, lai ietaupītu kādam laiku un nervus. Daudzi no jums izmanto alternatīvu izkārtojumu pārslēgšanas metodi un nesaprot, kāda ir problēma. Man personīgi patīk pārslēgties ar Alt+Shift. Un tā es vēlos, lai tas darbotos. Ja piekrītat manam viedoklim un saskaraties ar šo problēmu, šim rakstam vajadzētu jums palīdzēt.
Avots: www.habr.com