Masaüstü kilitliyken tuş işlevlerine nasıl izin verilir


20

Masaüstünüz kilitliyken klavyenin ses tuşlarının çalışmaya devam etmesine izin vermek mümkün mü? Şu anda, varsayılan davranış, masaüstünün kilidi açılana kadar tüm özel fonksiyon tuşlarını devre dışı bırakır. Bilgisayarımı müzik çalar olarak kullanmayı ve doğrudan konsola girmediğimde kilitli kalmasını seviyorum, ancak bir şarkı çok sesliyse insanların ses seviyesini kontrol etmelerine izin vermek istiyorum.


1! Bunun bir yan etkisinin (eğer mümkünse), daha önce merak ettiğim bir şey olan uyku ekranını tekrar uyandırmamak olduğuna bahse girerim.
David Oneill

1
Ben de bu işlevselliğe sahip olmak istiyorum. Sadece ses seviyesi için değil, müzik kontrol tuşları için de (oynat, duraklat; sonraki; önceki).
jPlatte

Bir kenara, yükseltme yaparken ekranımı en düşük ayara getirdim. Yüklemenin yarısında geri açamadım. İlginç bir deneyim için
Will Richardson

Medya anahtarlarının bir çeşit sahte LIRC cihazı haline getirilip getirilmediğini merak ediyorum, uzaktan kumanda gibi davranıyor ... En azından kavramsal olarak mantıklı, değil mi?
taneli

Yanıtlar:


9

Biraz utanç verici bir eklenti var, ancak mevcut bir çözüm bulunmadığından ve görev göreceli olarak daha ileri göründüğü için sorunu çözmek için basit bir Python arka plan programı yazdım . Sistem genelinde anahtar basımlarını yakalamak için python-xlib API'sini kullanır ve sonra özel kabuk komutlarını çalıştırır. Temel bir Debian / Ubuntu kurulumunu varsayar, ancak muhtemelen birkaç tweaks ile birçok Linux sisteminde çalışacaktır.

Benim durumumda, ses seviyesi açma / azaltma tuşları 122/123 koduyla eşleşir, böylece yalnızca masaüstü kilitlendiğinde ses seviyesini düşürmek veya arttırmak için ilgili komutlar şunlardır:

gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` -10%'
gnome-screensaver-command -q | grep "is active" && bash -c '/usr/bin/pactl -- set-sink-volume `pacmd list-sinks | grep -P -o "(?<=\* index: )[0-9]+"` +10%'

Kuşkusuz, bu biraz ayrıntılı. İkinci adım, aktif ses arabirimini birkaç sisteme sahip sistemlerde bulmaktır (örneğin, dizüstü bilgisayarımda bir Master ve Kulaklık arabirimi vardır, bu komutların her ikisinin de kontrol etmesini sağlar).

Düzenleme: Bu artık Ubuntu 16'dan itibaren çalışmaz. Ekran kilitlendiğinde X işlevlerinin tümü terminalden bile devre dışı kalır.


1
Bu çalışmayı 18.04 Ubuntu'da aldım. Ben gnome-screesaver kullanmıyorum ama ondan sonra, hiçbir sorunum çünkü askubuntu.com/a/890802/627247gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true" dayalı "kilitli test" değiştirmek zorunda kaldı .
Fabian N.

Ubuntu 16.04'te de çalıştığını onaylayabilirim. Karışıklığı önlemek için, Fabian N. tarafından belirtilen "kilitli test" gnome-screensaver-command -q | grep "is active", freekey.py'nin 160-165 satırlarındaki veya doğrudan yapılandırma dosyasındaki önerileriyle değiştirilmesi anlamına gelir .
Pierre Thalamy,

sistemimde 171 gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -ioP "true" && bash -c 'rhythmbox-client --next'ritim kutusundaki bir sonraki şarkı için mükemmel çalışıyor. Hala önceki ve diğer kontroller üzerinde çalışıyorum ama oraya ulaşacak.
John Hamilton
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.