Depois de muita pesquisa, descobri que digitar isso nos trabalhos do Terminal:
pactl upload-sample /usr/share/sounds/ubuntu/stereo/message.ogg bell.ogg
Ele emitirá um som de estouro de bolha, em vez de um bipe irritante. Todos os outros arquivos .ogg
podem ser usados a partir de /usr/share/sounds/ubuntu/stereo
e /usr/share/sounds/ubuntu/notifications
.
O próximo passo é torná-lo persistente, mas pelo menos depois de longas horas de pesquisa, o progresso foi feito!
Editar 1 - Tornando persistente
Pesquisas na Internet sugerem colocar:
pactl upload-sample /usr/share/sounds/ubuntu/stereo/message.ogg bell.ogg
no arquivo ~/.profile
, mas isso não funcionou. Talvez o pulseaudio não estivesse em execução naquele momento?
Então acabei colocando em Startup Applications
nesta tela:
Agora, o bip bipante se foi e um som de estouro de bolha funciona como um encanto no terminal
e gedit
.
Editar 2 - Criar playh bash, scripts padrão e de menu
Em vez de trocar de diretórios para selecionar o sino de jour , criei um novo diretório e copiei candidatos de som de /usr/share/sounds/.../...
there:
$ ls /usr/local/bin/bell/sounds
Amsterdam.ogg Blip.ogg Mallet.ogg Positive.ogg Slick.ogg
bell.ogg default.ogg message.ogg Rhodes.ogg
Em seguida, criei um script para testar todos os sons em um diretório. Se um dado arquivo de som tocar por muito tempo, você pode pular para o final com Ctrl + C .
$cat /usr/local/bin/playall-bells
#! /bin/bash
# NAME: playall-bells
# PATH: /usr/local/bin
# DESC: Play all songs in directory /usr/local/bin/bell/sounds.
# Parameter 1 can override to different directory.
# CALL: Typically call with "playall-bells" (no parameters).
# DATE: Created Sep 30 2016.
DIRNAME=""
# if no parameters set DIRNAME to bell/sounds
if [ $# == 0 ]; then
DIRNAME=/usr/local/bin/bell/sounds
fi
# Cookie cutter debug section. Remove # from echo's
#echo "********************************************************"
#echo "* *"
#echo "* THE DIRECTORY IS: $DIRNAME"
#echo "* *"
#echo "********************************************************"
for file in $DIRNAME
do
printf $DIRNAME
ogg123 $DIRNAME # If a sound plays too long <Ctrl>+C for next
done
Um arquivo de som especial chamado default.ogg
é usado para definir o som da campainha durante a inicialização. Para definir o padrão, um novo script foi criado.
$cat /usr/local/bin/load-default-bell
#! /bin/bash
# NAME: load-default-bell
# PATH: /usr/local/bin
# '.ogg' sound files are stored in '/usr/local/bin/bell/sounds'
# DESC: Load bell sound to pulseaudio.
# CALL: Call with "load-default-bell" (no parameters)
# Does not work in "~/.profile" as some users suggest
# Works in "Startup Applications" locatable by "Dash"
# DATE: Created Sep 30 2016.
# UPDT: Oct 1 2016 - Play new bell sound after load to pulseaudio.
# Oct 2 2016 - bell-select-menu has been created to manage default.
# NOTE: Use Nautilus or Terminal Menu to copy desired <sound>.ogg to
# default.ogg. This sound in turn is uploaded to pulse-audio.
# New script 'bell-select-menu' will update default sound file.
# Name of the game is to replace annoying motherboard speaker
# beep which is a regression in Ubuntu 16.04.
pactl upload-sample /usr/local/bin/bell/sounds/default.ogg bell.ogg
printf '\a' # play new bell sound
Coincidir com o novo script acima do Startup Applications
descrito acima foi alterado para ficar assim:
O passo final foi criar um menu bash para tocar todos os sons, ouvir um único som e atualizar o último som escutado para o padrão. O design do menu foi retirado desta questão do askubuntu: Criar menu bash baseado na lista de arquivos (mapear arquivos para números) . Se você gosta do meu menu, deve ir a essa pergunta e votar na resposta do autor.
$cat /usr/local/bin/bell-select-menu
#! /bin/bash
# NAME: bell-select-menu
# PATH: /usr/local/bin
# DESC: Present menu of bell sounds to listen to all, listen to one and update default.
# CALL: bell-select-menu
# DATE: Created Oct 1, 2016.
echo "The following /usr/local/bin/bell/sounds were found"
# set the prompt used by select, replacing "#?"
PS3="'a' to hear to all files, use number to hear a single file,
'u' to update last single file heard as new default, or 'q' to quit: "
lastfile="none"
# allow the user to choose a file
select filename in /usr/local/bin/bell/sounds/*.ogg
do
# leave the loop if the user types 'q'
if [[ "$REPLY" == q ]]; then break; fi
# play all if the user types 'a'
if [[ "$REPLY" == a ]]
then
playall-bells
continue
fi
# update last file name as new default if the user types 'u'
if [[ "$REPLY" == u ]]
then
if [[ "$lastfile" == none ]]
then
echo "No file was selected."
break
fi
echo "$lastfile selected"
cp $lastfile /usr/local/bin/bell/sounds/default.ogg
load-default-bell
break
fi
# complain if no file was selected, and loop to ask again
if [[ "$filename" == "" ]]
then
echo "'$REPLY' is not a valid number"
continue
else
lastfile="$filename"
fi
# listen to the selected file
ogg123 "$filename"
# loop back to ask for another
continue
done
A desvantagem deste design é quando você seleciona play all
o menu rola para fora da tela e você precisa rolar a janela para trás para ver as opções novamente.
Ufa é isso.