Ubuntu DWM usando o bipe como aviso de bateria

2

Editar - Para os interessados, resolvi o problema e esclareci alguns dos códigos em meus scripts no segundo post abaixo

Estou executando um pequeno script em .xinitrc que pesquisa o acpi para obter informações sobre a bateria. Se estiver abaixo de um certo bipe, então o nível é chamado de aviso.

No entanto, parece que o bipe não é audível, a menos que eu tenha tocado outro áudio antes de chamá-lo. É por isso que estou chamando o mpv para tocar uma pequena faixa mp3 ao iniciar o x. É como se minha placa de som não estivesse ativada na inicialização até eu tocar algo com áudio.

Meu problema atual é que ele também desliga depois de dormir até que eu reproduza áudio.

Abaixo está meu script .xinitrc. Estou usando o alsamixer e executando uma instalação mínima de 16.04 com o DWM como meu gerenciador de janelas. Beep é instalado a partir do apt.

Eu realmente aprecio uma solução para fazer o bipe audível o tempo todo - isso pode se traduzir em manter minha placa de som ativa após um despertar da hibernação. Obrigado por qualquer ajuda que você possa oferecer.

Mateus

.xinitrc

xbacklight = 50 &

setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape' 

amixer -q sset Master 75% &
amixer -q sset Beep 35% &

slstatus -d &
nm-applet &
./suckless/clipmenu/clipmenud &

modprobe pcspkr &
while true; do
    ./suckless/batt_warn
    sleep 15s
done &

mpv ./suckless/start.mp3 &
exec dwm

batt_warn

#!/bin/bash
BATT=$( acpi -b | sed 's/.*[charging|unknown], \([0-9]*\)%.*//gi' )
STATUS=$( acpi -b | sed 's/.*: \([a-zA-Z]*\),.*//gi' )
if ([ $BATT -le 5 ] && [ $STATUS == 'Discharging' ]); then
    beep && sleep 0.05
    beep && sleep 0.05
    beep && sleep 0.05
fi
    
por matthew cooper 03.12.2017 / 11:59

1 resposta

2

Olá a todos Eu pensei que deveria postar minha solução, pois esse é um problema que muitos provavelmente enfrentarão ao usar um WM como o dwm.

Eu encontrei uma solução que reproduz um mp3 curto em segundo plano na inicialização, assim como a retomada do sono. Isso parece ter funcionado perfeitamente

Eu também aproveitei o script de currículo para remapear minhas chaves personalizadas como estas são perdidas após o sono.

Sinta-se à vontade para me passar se alguém precisar de ajuda no futuro.
----------------------------------------------- ------------------

.xinitrc

Modprobe precisava ativar o bipe do sistema que está na lista negra do Ubuntu.

Nota:
init é o meu script de inicialização executável a ser chamado no startx de .xinitrc e a partir do 99Wake.sh

Nota:
batt_warn é meu script executável para verificar a bateria

slstatus -d &
nm-applet &
./suckless/clipmenu/clipmenud &

./suckless/init &

modprobe pcspkr &
while true; do
    ./suckless/batt_warn
    sleep 15s
done &

exec dwm

init

Define as maiúsculas como esc, se pressionadas, e como ctrl, se usadas como líder
Define retroiluminação e volume razoáveis Usa mpv para tocar short mp3 clip start.mp3

#!/bin/bash
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape' 

xbacklight = 50 &
amixer -q sset Master 75% &
amixer -q sset Beep 35% &

cd ~ && mpv suckless/start.mp3 &

batt_warn
Enquetes bateria usando acpi e toca bipe se abaixo de 5% e descarregando

#!/bin/bash
BATT=$( acpi -b | sed 's/.*[charging|unknown], \([0-9]*\)%.*//gi' )
STATUS=$( acpi -b | sed 's/.*: \([a-zA-Z]*\),.*//gi' )
if ([ $BATT -le 5 ] && [ $STATUS == 'Discharging' ]); then
    beep && sleep 0.05
    beep && sleep 0.05
    beep && sleep 0.05
fi

99Wake.sh

Este arquivo foi feito executável com chmod + x
E movido para o diretório /usr/lib/pm-utils/sleep.d \ Os scripts neste diretório são executados no currículo. Aqui estou chamando init novamente.

Nota: Como eu estou armazenando o script no meu diretório de usuários locais eu tive que adicionar a linha de sudo, mas isso foi feito para .xinitrc e 99wake.sh poderia compartilhar o mesmo arquivo init em vez de duplicar.

#!/bin/bash
case "" in
thaw|resume)
sudo -u matthew env DISPLAY=:0 zenity --info --text "do stuff on resume"
./home/matthew/suckless/init
;;
esac
    
por matthew cooper 04.12.2017 / 15:21