
Muito foi escrito sobre como obter o som do bipe dos lançamentos do Ubuntu ao longo dos anos. Exemplo:consertando o bipe
Minhas necessidades são um pouco diferentes porque não quero garantir que os bipes da placa de som estejam funcionando. Em vez disso, quero bipes do alto-falante do PC, do tipo produzido pelo alto-falante embutido original, porque acredito que eles produzirão menos carga da CPU. Confirmei que meu computador possui alto-falante desconectando os alto-falantes externos e desligando o Ubuntu. Em algum momento do processo de desligamento e reinicialização, um bipe é ouvido mesmo que os alto-falantes externos não tenham energia.
Eu tentei o seguinte:
Em /etc/modprobe.d/blacklist.conf
, transforme estas linhas em comentários:
#blacklist snd_pcsp
#blacklist pcspkr
Em.bashrc
/usr/bin/xset b on
/usr/bin/xset b 100
Habilite no terminal gnome: Editar > Preferências de perfil > Geral > Terminal Bell
Certifique-se de que não haja seleções de "silenciar" em: Sistema > Preferências > Som > várias guias (desmarque todas elas).
Selecione "Ativar sons de janelas e botões" em: Sistema > Prefs > Som > Efeitos sonoros
Em gconf-editor
desktop > gnome > sound, marque as três caixas de seleção de som.
Em gconf-editor
aplicativos > metacity > geral marque a audible bell
caixa de seleção.
Ainda não recebo nenhum sinal sonoro do alto-falante do PC quando envio o código 7 para o console por meio do meu programa Java ou uso
echo -e '\a'
ou equivalente
echo -e "\a"
na linha de comando do bash. (A opção -e significa ativar a interpretação da sequência de escape.) O que mais devo tentar?
AtualizarComo meu objetivo é minimizar a carga da CPU, aqui está uma comparação dos tempos decorridos. Cada teste é para 100.000 iterações. Cada variante foi realizada três vezes, portanto três resultados são apresentados para cada uma.
printwriter.format("%c", 7);
// 1.3 seconds, 1.5 seconds, 1.5 seconds
Toolkit.getDefaultToolkit().beep();
// 0.8 seconds, 0.3 seconds, 0.5 seconds
try { Runtime.getRuntime().exec("beep"); } catch (IOException e) { }
// 10.3 seconds, 16.3 seconds, 11.4 seconds
Essas execuções foram feitas dentro do Eclipse, então multiplique por algum valor menor que 1 para execução independente. Infelizmente, o bipe do Toolkit é silencioso no meu computador, assim como o código 7. O utilitário de bipe funciona, mas tem o maior custo.
Responder1
No meu sistema Oneiric, tive que fazer o seguinte para que o XBell/XkbBell funcionasse novamente:
- Carregue o módulo
pcspkr
(como você já fez via/etc/modprobe.d/blacklist.conf
) - Remova o pacote
pulseaudio-module-x11
(que parece absorver todos os eventos XBell) - Coloque
options snd-hda-intel beep_mode=2
em/etc/modprobe.d/enable-beep.conf
(você só precisa caso possua um sistema com chip de som Intel como o meu Latitude E6420). Ative o som do alto-falante no alsamixer depois disso.
Alguns terminais (como o konsole, veja o bugErro 177861) ignore o caractere da campainha. Uma boa maneira de testar o bipe do sistema é com o xkbbell
comando.
Depois de fazer tudo isso, a chamada java Toolkit.getDefaultToolkit().beep()
funciona perfeitamente.
Responder2
Em 14.04.3 LTS agora parece suficiente editar /etc/modprobe.d/blacklist.conf
e ativar pcspkr
comentando a linha da lista negra.
#blacklist pcspkr
Isso #
transforma a linha em um comentário.
Certifique-se de que o Terminal ( gnome-terminal
) permita a campainha do console na guia de preferências.
Isso foi testado via backspace em uma linha de terminal vazia. Isso também foi testado por meio do beep
utilitário (supondo que você o tenha instalado). Em vez disso, você pode emitir bipes programáticos por meio do objeto java.awt.Toolkit: java.awt.Toolkit.getDefaultToolkit().beep()
.
O objeto Toolkit é mais eficiente que o beep
utilitário.
Por falar nisso,algumas pessoas não gostam do alto-falante do PC.
Responder3
Certificar-seseu terminal e tema não comem o evento.
Ferramentas externastrabalho, você diz. Você poderia mergulhar no código deles.Essepode ajudar.
Responder4
Use obeep
programa. Compilei a v1.3, pois a 1.2.2 nos repositórios Lucid não funciona.
- você precisa executá-lo com
sudo
- o módulo pcspkr deve ser carregado, como vocês fizeram