Linux'ta Electron uygulamalarında alt+shift kullanarak geçiş yapma sorununu çözme

Merhaba meslektaşları!

Başlıkta belirttiğim soruna çözümümü paylaşmak istiyorum. Bu makaleyi bir meslektaşımdan yazmam için ilham aldım brnovktembel değildi ve soruna (benim için) kısmi bir çözüm önerdi. Bana yardımcı olan kendi “koltuk değneğimi” yaptım. sizlerle paylaşıyorum.

Sorunun açıklaması

İş için Ubuntu 18.04 kullandım ve yakın zamanda Visual Studio Code, Skype, Slack ve Electron kullanılarak oluşturulan diğer uygulamalarda alt+shift kullanarak düzenleri değiştirirken aşağıdaki sorunun ortaya çıktığını fark ettim: giriş alanından odak en üste gidiyor pencere paneli (menü). Başka nedenlerden dolayı Fedora + KDE'ye geçtim ve sorunun çözülmediğini fark ettim. Çözüm ararken harika bir makale buldum Skype'ı kendiniz nasıl düzeltebilirsiniz?. Çok teşekkürler yoldaş brnovkSorun hakkında ayrıntılı olarak konuşan ve çözüm yöntemini paylaşan Dr. Ancak makalede belirtilen yöntem sorunu yalnızca tek bir uygulamayla yani Skype ile çözdü. Benim için Visual Studio Kodunu anlamak da kritik öneme sahipti, çünkü atlama menüsüyle mesaj yazmak can sıkıcı olsa da, geliştirmeyle ilgileniyorsanız o kadar da önemli değil. Ayrıca bir meslektaşım, uygulama menüsünün tamamen kaybolacağı bir çözüm önerdi ve VS Code'daki menüyü gerçekten kaybetmek istemem.

Neyin yanlış olduğunu anlamaya çalıştım

Bu yüzden neler olduğunu anlamak için zaman ayırmaya karar verdim. Şimdi izlediğim yolu kısaca anlatacağım, belki bu konuda daha bilgili biri karşılaştığım zorlukları açıklamaya yardımcı olabilir.

Uygulamanın nasıl tepki verdiğini görmek için Visual Studio Code'u açtım ve farklı Alt+<%something%> kombinasyonlarına basmaya başladım. Neredeyse tüm durumlarda Alt+Shift dışındaki tüm kombinasyonlar odağı kaybetmeden çalıştı. Sanki birisi Shift tuşunu yiyormuş gibi görünüyordu, Alt tuşunu basılı tuttuktan sonra uygulama Alt tuşuna bastığımı düşündü, sonra hiçbir şeye basmadım, Alt'ı serbest bıraktı ve odak noktamı sevinçle kendi menüsüne yönlendirdi ki bu da oldukça mantıklı görünüyordu. BT.

Klavye düzenlerini değiştirme ayarlarını açtım (biliyorsunuz, onay kutularının ve tuşlar için her türlü ayarın bulunduğu bu uzun liste) ve herhangi bir ek tıklama olmadan Alt düğmesini kullanarak düzenleri değiştirecek şekilde ayarladım.

Linux'ta Electron uygulamalarında alt+shift kullanarak geçiş yapma sorununu çözme

Bundan sonra, pencereleri değiştirmek için Alt + Tab çalışmayı durdurdu. Yalnızca Tab işe yaradı, yani birisi Alt'ımı tekrar "yedi". Bu "birinin" kim olduğuna dair hiçbir soru kalmamıştı ama onunla ne yapılabileceğine dair hiçbir fikrim yoktu.

Ancak sorunun bir şekilde çözülmesi gerektiği için aklıma bir çözüm geldi:

  1. Ayarlarda, klavye düzenlerini değiştirmek için kısayol tuşunu devre dışı bırakın (Başka bir düzene geç bölümündeki tüm onay kutularının işaretini kaldırın);
  2. Benim için düzeni değiştirecek kendi kısayol tuşunu oluştur

Çözümün açıklaması

Öncelikle Xbindkeys tuşlarına komut atamanızı sağlayan bir program yükleyelim. Ne yazık ki standart araçlar, güzel bir arayüz aracılığıyla Alt+Shift gibi bir kombinasyon için kısayol tuşu oluşturmama izin vermedi. Alt+S, Alt+1, Alt+shift+Y vb. için yapılabilir. vb. ama bu bizim görevimize uygun değil.

sudo dnf install xbindkeysrc

Bununla ilgili daha fazla ayrıntı şu adreste mevcuttur: ArchWiki
Daha sonra program için örnek bir ayarlar dosyası oluşturacağız. Örnek oldukça kısa, birkaç komutla birlikte, onunla nasıl çalışacağınızı anlamanız için gerekenler:

xbindkeys -d > ~/.xbindkeysrc

Dosyadaki örnekten de görebileceğiniz gibi kullanmak istediğimiz kısayol tuşunu ve çalıştırılması gereken komutu belirtmemiz gerekiyor. Basit görünüyor.


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

Kısayol tuşu olarak insanların okuyabileceği yazıları veya tuş kodlarını kullanabilirsiniz. Benim için sadece kodlarla işe yaradı ama kimse biraz denemenizi yasaklamadı.

Kodları almak için şu komutu kullanmanız gerekir:

xbindkeys -k

Küçük bir “X” penceresi açılacaktır. Odak bu penceredeyken tuşlara basmanız yeterlidir! Sadece bu durumda terminalde buna benzer bir şey göreceksiniz:


[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

Benim durumumda Alt+Shift tuş kombinasyonu şuna benzer:

m:0x8 + c:50

Şimdi bu kombinasyona tıkladığınızda düzenin değişeceğinden emin olmamız gerekiyor. Düzeni belirtmek için yalnızca bir çalışma komutu buldum:


setxkbmap ru
setxkbmap us

Örnekte de görebileceğiniz gibi, yalnızca şu veya bu düzeni etkinleştirebiliyor, bu yüzden senaryo yazmaktan başka bir şey aklıma gelmedi.


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

Şimdi, .xbindkeysrc ve order.sh dosyaları aynı dizinde bulunuyorsa, .xbindkeysrc dosyasının son görünümü şu şekilde görünür:


# 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

Bundan sonra değişiklikleri uyguluyoruz:


xbindkeys -p

Ve kontrol edebilirsiniz. Standart ayarlarda düzenleri değiştirmeye yönelik tüm seçenekleri devre dışı bırakmayı unutmayın.

sonuç

Meslektaşlarım, umarım bu makale birisinin can sıkıcı bir sorundan hızla kurtulmasına yardımcı olabilir. Kişisel olarak tüm günümü sorunu bir şekilde çözmeye ve çözmeye çalışarak geçirdim, böylece çalışma saatleri sırasında artık dikkatim dağılmasın. Bu makaleyi birilerinin zamandan ve sinirlerinden tasarruf etmesi için yazdım. Birçoğunuz düzenleri değiştirmek için alternatif bir yöntem kullanıyorsunuz ve sorunun ne olduğunu anlamıyorsunuz. Ben şahsen Alt+Shift ile geçiş yapmayı seviyorum. Ben de bu şekilde çalışmasını istiyorum. Benim fikrimi paylaşıyorsanız ve bu sorunla karşı karşıyaysanız bu makale size yardımcı olacaktır.

Kaynak: habr.com

Yorum ekle