Cinnamon / Linux / Xorg'da Scroll Lock tuşu neden devre dışı?


13

Yakın zamanda, Scroll Lock tuşunun arka ışığı değiştirmek için kullanıldığı şekilde tasarlanmış arkadan aydınlatmalı bir klavye satın aldım. Scroll Lock tuşuna basıldığında Tarçın'ın düzgün yanıt vermediğini çabucak buldum. Başlangıçta, klavye arka ışığının DOA olduğunu düşündüm çünkü her şey kutudan çıktı. Yeniden başlattıktan sonra Xorg'u başlatmadan önce Kaydırma Kilidi tuşunu kullanarak arka ışığı başarıyla değiştirebildiğimi fark ettim. Daha sonra, Xorg'u (ve sonuç olarak tarçın_session'ı) başlattıktan sonra, bu işlev bir kez daha çalışmayı bıraktı.

Xorg'u başlattıktan sonra arka ışığın çalışmasını sağlamak için xset led named "Scroll Lock"bu işlevi etkinleştirmek ve devre dışı bırakmak için a: yayınlamak zorunda kaldım .

Biraz araştırma xevyaptıktan sonra, başladıktan sonra terminale dökülen önemli olay bilgisini veren bir programla karşılaştım . Scroll Lock tuşuna bastıktan sonra terminal şu ​​bilgilerle dolduruldu:

KeyPress olayı, seri 34, sentetik NO, pencere 0x2c00001, kök 0x2df, alt 0x0, zaman 2609824, (410,0), kök: (1724,142), durum 0x0, anahtar kodu 78 (tuş takımı 0xff14, Scroll_Lock), aynı_ekran EVET, XLookupString 0 bayt verir: XmbLookupString 0 bayt verir: XFilterEvent döndürür: False

KeyRelease olayı, seri 37, sentetik NO, pencere 0x2c00001, kök 0x2df, alt 0x0, zaman 2609912, (410,0), kök: (1724,142), durum 0x0, anahtar kodu 78 (tuş takımı 0xff14, Scroll_Lock), aynı_ekran EVET, XLookupString 0 bayt verir:

Yani kilit olayın çekirdeğe gönderildiğini biliyorum.

Ayrıca, ilginç bir şekilde, terminalde (hala Xorg veya Tarçın'ı başlatmadan önce) ve Scroll Lock'u kullanırken garip davranışlar gözlemledim. Yani, bu noktada arka ışığım beklendiği gibi değişiyordu, ancak Kaydırma Kilidi etkinleştirildiğinde yazdığım hiçbir şey ekrana yazılmadı. Scroll Lock'u devre dışı bıraktıktan sonra, yazdığım her şey daha önce arabelleğe alınmış gibi hemen terminale atıldı.

tl; dr Scroll Lock ve Xorg ile olan anlaşma nedir?


Bu sorunu çözme şansınız var mı?
Mart'ta Pykler

Yanıtlar:


10

Tarçın'ı bilmiyorum, ancak Scroll Lock tuşunuzu etkinleştirmeniz mümkün olmalıdır.

İlk olarak, yedek bir klavye değiştirici yuvasına sahip olup olmadığınızı görmemiz gerekiyor. Çalıştırmak:

xmodmap -pm

Bu, mevcut değiştirici kurulumunuzun bir listesini yazdırır. Umarım, bu satırlardan birinde listelenen anahtar yoktur; genellikle bu olacak mod3. Durumun böyle olduğunu varsayarsak, Scroll Lock özelliğini şu komutla etkinleştirebilirsiniz:

xmodmap -e "add mod3 = Scroll_Lock"

Scroll Lock LED'iniz artık Scroll Lock tuşlarının basılmasına yanıt vermelidir.

Bu işe yararsa, muhtemelen X'in her başladığında bunu otomatik olarak yapmasını istersiniz. Bunu yapmanın çeşitli yolları vardır: kullanıcı bazında yapılabilir, ancak böyle bir şey için küresel olarak ayarlanmasının mantıklı olduğunu düşünüyorum.

Ama bunu kendimden önce hiç yapmadım, bu yüzden daha fazla ayrıntı vermeden önce test etmeliyim. :)

TAMAM. Bu modmap'ı global olarak etkinleştirmeye çalıştığım yöntem KDE'de benim için çalışmıyor. :( Ama ana dizinimde etkinleştirmek iyi görünüyor.

.XmodmapAna dizininizde şu satırı içeren bir dosya oluşturun :

add mod3 = Scroll_Lock

Bunu yapmanın en kolay yolu:

cd ~
echo >.Xmodmap "add mod3 = Scroll_Lock"

Şimdi X'i yeniden başlatın (oturumu kapatın ve tekrar oturum açın). Umarım, Kaydırma Kilidi anahtarınız çalışır. Değilse, lütfen bana bildirin.


.Xmodmap yapılandırması Ubuntu 16.04 / Unity'de benim için çalışmadı, ancak Pykler'in cevabındaki kalıcı çözüm çalıştı :)
Nebel54

7

Uzun bir geceden sonra birçok yarım pişmiş çözümle kalıcı bir yol buldum.

# backup your symbols file
sudo cp /usr/share/X11/xkb/symbols/us{,.distribution} 

Bölüme aşağıdaki satırı ekleyin xkb_symbols "basic" {. bu ikinci satır orada değilse endişelenmeyin, sadece bazı diller için vardır ve sistemimizde bizim için orada değildi.

...
    modifier_map Mod3   { Scroll_Lock }; <==<< Add this line

    include "level3(ralt_switch)" <==<< before this line
};

Diller arasında geçiş yaparsanız, diğer düzenlerinizde de aynısını yapmanız gerekebilir

Ayrıca, xkb düzenlerinin yaşadığı bir önbellek var. Yeni klavye sembol dosya (lar) ını kontrol etmek için X sunucunuzu yeniden başlatmadan önce temizlemeniz gerekir.

sudo rm -f /var/lib/xkb/*

Bu güzel ama sadece benim için askubuntu.com/a/1067921/274298 belirtilen bahsetme değişiklik ve xkboptions değişiklik ile birlikte çalıştı .
peschü

2

Gibi Scroll Lockaktif (adlandırılmış zaman klavye kısayolları ile müdahale edebilir F12, Ctrl+ Spacebeklendiği gibi çalışma olmaz), ben eşleştirmek için karar Scroll Lockmanuel başlatmak için anahtar xsetbir önceki devlet ilişkin LED durumunu geçiş.

Şu adla yürütülebilir bir komut dosyası oluşturdum toggle_keyb_led.sh:

xset q | awk '/LED/{ if ($10 ~ "00000000") print "led"; else print "-led" }' | xargs xset

Bu xset q, satırı eşleştirerek çıktısını ayrıştırır LED mask.

Not 1 : Sizin için çalışmazsa, lütfen xset -led; xset q | grep 'LED'geçerli maske değerinin ne olduğunu doğrulayın .

Not 2 : Bazı kullanıcıların xset led 3ışığı etkinleştirmek için çalışması gerekir . Bu durumda, lütfen yukarıdaki komut dosyasını yeniden yazın.


Ardından, Masaüstü Ortamınızı kullanarak (burada Tarçın ile birlikte) kullanarak bu komut dosyasını Özel Kısayol olarak başlatabilirsiniz:

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.