Pilim zayıfladığında nasıl özel bir ses çalabilirim?


13

Pilim zayıfladığında bilgisayarımın özel bir ses dosyası çalmasını istiyorum (% 10 diyelim). Bunu nasıl yapabilirim? Teşekkürler

Yanıtlar:


7

Sadece kendi işimi yapılandırmak için bu sayfadaki tavsiyeyi kullandığım için cevap vermek istedim crontab -e.

Lubuntu (güvenilir) çalıştırıyorum ve yukarıdaki benim için işe yaramadı, ama biraz tweaking ile yaptı. Deneyim seviyem, temel komut dosyalarını ve komutları nispeten okuyabildiğim, ancak bunları linux distolarında sıfırdan yazabildiğimden. Bahsettiğim için, birlikte çalışan bir akü alarmı toparlayabilirsem, bunu okuyan birçoğunuzun da yapabilmesi gerekir!

SO .... senaryo ve temel bir açıklama ....

Glutanimate ve Scott Goodgame'in yukarıdaki mesajlarına göre (teşekkürler çocuklar!), Temelde aşağıdakileri yaptım:

Mppg123 almak ve ses çalabilmek için:

sudo apt-get install acpi mpg123

Komutu yazmak için açılacak dosya:

crontab -e

Dosyanın sonuna girmek için komut:

*/1 * * * * if [ `acpi -b | awk ' { print ( $(NF-2)-0)}'`  -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi

Yukarıdakilerin açıklaması

Başlangıçta yıldız işaretleri

Beş yıldız, komutların çalıştırılma sıklığını temsil eder.

  • İlk yıldız = Dakika: 0-59
  • İkinci yıldız = Saat: 0-23
  • Üçüncü yıldız = Ay Günü: 0 - 31
  • Dördüncü yıldız = Ay: 0-12
  • Beşinci yıldız = Haftanın Günü: 0-6 (0 Pazar anlamına gelir)

*/1 * * * *

"bunu her dakika çalıştır" anlamına gelir.

EĞER / THEN / FI:

IF [ stuff inside these brackets ] ; THEN do something ; FI

Çoğunuz, sanırım, IF / THEN ifadelerine çok aşinasınız. Sondaki FI, IF ifadesini sonuçlandırır

Sesi çalma:

mpg123 /home/andy/Alarm.mp3

bu sadece ana dizinimde bulunan mpg123adlı dosyayı çalmak için kullanılır .Alarm.mp3/home/andy/

Çıkış pil bilgisi:

acpi -b

bu sadece pil durumunu verir. Dizüstü bilgisayarımda aşağıdaki gibi sonuçlar verir:

Battery 0: Discharging, 74%, 02:35:18 remaining

Borudan awk komutuna

 | awk ' { print ( $(NF-2)-0)}'`  -lt "15"

Tamam, bu yüzden yukarıdaki pil durumunun çıkışını boruya bağlıyoruz ve yukarıdaki örnekte '% 74' olan uçtan uca ikinci değeri (NF-2) yazdırıyoruz . Ancak, 'yüzde' -0 değerini kaldırmamız gerekiyor . Mevcut değeri 15 -lt "15" değeri ile karşılaştırmak istiyoruz . Yani onu basit İngilizce olarak özetlemek gerekirse,

Pilin değeri% 15 SONRA DAHA AZ ise bir ses dosyası çalın

Biraz daldırdığımı takdir ediyorum ve belki de açıklamam geliştirilebilir, ancak umarım bir başkası pil için nasıl alarm ekleyeceğini ve dizüstü bilgisayarlarının aniden kapanmasını önleyecek bir şeylere yardımcı olacaktır!

İyi şanslar!


DÜZENLE

Tamam ... yani dizüstü bilgisayarım şarj olurken,

acpi -b

dır-dir:

Battery 0: Charging, 35%, 01:04:08 until charged

oysa pil ile

Battery 0: Discharging, 36%, 01:22:36 remaining

bu yüzden başlangıçta belirtilen parametreyi kullanarak

print ( $(NF-2)-0)

farklı sonuçlar verir, çünkü unutmayın, NF değeri biti, çıkışın sonundan geriye doğru kaç öğe görüntüleneceğini belirtir, bu nedenle pilin çıkışı

Battery 0: Discharging, 36%, 01:22:36 remaining

$(NF-2) şarjı dizüstü bilgisayar varken '% 36',

Battery 0: Charging, 35%, 01:04:08 until charged

$(NF-2) '00: 50: 12 'çıkışı, yani şarj edilene kadar kalan süre.

-0Sonra $(NF-2)minuses değerdir ve bu sayede bir yüzde değeri sıfır -036 'için "'36% şey gibi değiştirir. Çıkış değeri yukarıdaki gibi '01: 04: 08 'zaman çıkışı gibi sayısal olmayan olarak algılanırsa, değer -0' 0 'olur. Böylece sorunumu görebilirsiniz - dizüstü bilgisayarım şarj olduğunda, çıkış değeri her zaman '0'dır. Çıkış değeri 15'ten düşük olduğunda bir alarm çalmak istediğim için, şarj olduğunda her dakikada bir çalan bir alarm alarmına dönüşür!

awkKomutun çıktısını biraz daha okudum ve sonunda ikinci değeri okumasına gerek yoktu, çıkışın başından başlayıp ileri atlayabilirim. Bu, pil durumumun parametre sayısı açısından şarjda mı yoksa pilde mi olduğu ile aynı şekilde başladığı için çok daha iyidir, yani başlangıçtan dördüncü parametre her zaman yüzde olarak şarj değeridir.

SO ... dördüncü değeri okumak için, komut

awk ' { print ($(NF-2)-0)}'

için

awk ' { print ($4)-0}'

ya da tüm ihtişamıyla:

*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'`  -lt "15" ] ; then mpg123 /home/andy/Alarm.mp3 ; fi

Umarım birisine yardım eder! İyi şanslar ve okuduğunuz için teşekkürler!


İLAVE DÜZENLEME

Tamam, biraz daha fazla alay ettim ve ayrıca alarmı çalmadan önce ses seviyesini nasıl% 100'e ayarlayacağımı ve sesini açtım - çünkü yüzleşelim, duyamazsanız bir pil alarmının anlamı nedir? Sesi düşük mü yoksa sessiz mi ayarladınız ?!

Her neyse, ihtiyacınız olan komut:

*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'`  -lt "15" ] ; then pactl set-sink-volume 0 100% && pactl set-sink-mute 0 0 && mpg123 /home/andy/Alarm.mp3 ; fi

gördüğünüz gibi, yaptığım tek şey komut dizesini eklemek

pactl set-sink-volume 0 100% && pactl set-sink-mute 0 0 &&

( &&sadece birden fazla komutu birbirine bağlar)

Yine, iyi şanslar!

SON DÜZENLEME

Tamam, yani ... bir final (umarım!) Düzenleme ... görünüşe göre, yüzde işareti cron görevlerini çalıştırırken özel bir işarettir. Bu nedenle, \her birinin önüne bir ters eğik çizgi ( ) koyarak yüzde işaretinden 'kaçmanız' %gerekir, böylece kabuk tarafından (yanlış) yorumlanmaz.

Temel olarak değiştirin

100%

ile

100\%

Bu nedenle, gerçekten ihtiyacınız olan komut:

*/1 * * * * if [ `acpi -b | awk ' { print ($4)-0}'`  -lt "15" ] ; then pactl set-sink-volume 0 100\% && pactl set-sink-mute 0 0 && mpg123 /home/andy/Alarm.mp3 ; fi

vay benim için olduğu gibi sizin için sıralar umut !! (Sonuçta!)


Bu harika bir açıklama! Ne yazık ki, şarj olurken her dakika bir ses çalar.
OpnSrcFan

5

Her 5/10 dakikada bir pil durumunu kontrol edecek bir cron işi ayarlayabilirsiniz ve ardından pil yüzdesine bağlı olarak biraz ses çalacaktır.

Sesi çalmak için kullanabilirsiniz

mpg123 filename.mp3

Yüklemek için

sudo apt-get install mpg123

Komut satırından pil durumunu almak için bu komutu kullanabilirsiniz

upower -i /org/freedesktop/UPower/devices/battery_BAT0

kullanarak greptam bilgileri aşağıdaki gibi ayıklayabilirsiniz

upower -i /org/freedesktop/UPower/devices/battery_BAT0| grep -E "state|to\ full|percentage"

Artık tüm bunları bir kabuk komut dosyasına (ve ifpil durumunun% 10'dan düşük olup olmadığını kontrol etmek için bir koşul) koyabilir ve sadece bu kabuk komut dosyasının cron işine yol verebilirsiniz.

böylece her 5 dakikada bir (Bu aralığı değiştirebilirsiniz) pil durumunuz kontrol edilir ve pil% 10'dan düşükse, sağlanan ses dosyanız çalınır!

Bu yardımcı olur umarım!


3
Bu doğru, sadece harika insanlar mpg123 kullanıyor :)
Scott Goodgame

3

Bunu yapmanın kolay bir yolu, crontab'ınıza basit bir kontrol eklemektir (cron, işleri arka planda düzenli, kullanıcı tanımlı bir temelde çalıştırmak için bir sistemdir.)

Pil durumunu okuyabilmek için önce bir komut satırı mp3 çalar ve acpi yüklemeniz gerekir.

Bir terminalden paketleri kurmak için aşağıdakileri çalıştırın.

sudo apt-get install acpi mpg123

Ardından, hala terminaldeyken, crontab -eaşağıdakileri yazın ve dosyanın sonuna girin. Kullanıcıyı kullanıcı adınızla ve .mp3 dosyasını ana dizininizdeki dosya adınız olarak değiştirmeniz yeterlidir.

*5 * * * * if [ `acpi |awk '{print substr($NF, 0, length($NF)-1)}'`  -lt "10" ] ; then mpg123 /home/user/SuperCoolSound.mp3   ;fi

Kaydetmek için Control-O (harf) ve Enter tuşuna basın. Çıkmak için Control-x tuşlarına basın

Okumak isteyebileceğiniz ekstra şeyler ...

Ubuntu Cron

Ubuntu Sehayat Rehberi


Burada işe yaramadı: if ~ eğer [ acpi |awk '{print substr($NF, 0, length($NF)-1)}' -lt "10"]; sonra aplay /home/felipelalli/Music/siren.wav; fi [: tamsayı ifadesi bekleniyor: remainin ac ~ acpi Pil 0: Boşalma, 9%, 00:17:56 kaldı
Felipe

2

Aslında Andy Pyne'nin cevabını kullandım ama benim için işe yaramadı. Cron kodu yürüttü, ancak sesi çalmadı. Sonunda çözümü buldum ve paylaşıyorum:

Adım 1: MP3'ü yükleyin

sudo apt-get install acpi mpg123

Adım 2: Aşağıdaki komutu kaydedin~/bin/battery_alert

#!/bin/bash
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if [ `acpi -b | awk ' { print ($3)}'`  == "Discharging," ] ; then
    # Discharging
    # Monitor for low battery
    if [ `acpi -b | awk ' { print ($4)-0}'`  -le "15" ] ; then
        pactl set-sink-volume 0 75\% && pactl set-sink-mute 0 0 && mpg123 /home/user/battery_low.mp3 ;
    fi
else
    # Charging
    if [ `acpi -b | awk ' { print ($4)-0}'`  -eq "100" ] ; then
        # Fully charged
        pactl set-sink-volume 0 75\% && pactl set-sink-mute 0 0 && mpg123 /home/user/battery_full.mp3 ;
    fi
fi

Dizüstü bilgisayar boşalıyorsa ve şarj% 15'ten az veya eşitse, bu komut dosyası battery_low.mp3 oynatır. (AC gücü bağlıysa, sizi uyarmaz). Bu kod, ücret% 100 ise sizi uyarır. Tam şarjlı durum için uyarı istemiyorsanız, diğer kısmı bu koddan kaldırın.

Adım 3: Aşağıdaki komutu kullanarak dosyayı yürütülebilir yapın.

chmod +x ~/bin/battery_alert

Adım 4: opend by crontrab -ekomutunun sonuna aşağıdaki komutu ekleyerek cron kullanarak bu dosyayı yürütün .

*/5 * * * * /home/user/bin/battery_alert

(Bu komuttan sonra boş bir satır almayı unutmayın)

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.