PDA

Visualizza la versione completa : easy]:sveglia & linux :sonno:


fausto
30-01-2005, 23:09
Io le sveglie non le sento, è più forte di me; ma... c'è linux!

Allora vi sottopongo queto problemino.

Supponiamo che io alla sera lasci il pc acceso, con la musica bassina per addormentarmi. Pero' poi alla mattina vorrei che il mio pc, all'ora che desidero, cambiasse il file in esecuzione ed alzasse il volume a palla :yuppy:

Io non farei tardi alla mattina e mia mamma non potrebbe più dire che linux è inutile :fagiano:

Lo sapete fare con uno scriptino in shell? :master:

andy caps
30-01-2005, 23:40
:D avvia ktimer

puoi assegnargli il tempo ed il comando da dare alla scadenza

se installi aumix puoi assegnargli il comando nella riga apposita

aumix -v 100

gigyz
30-01-2005, 23:42
amixer sset Master 100%
mpg123 file.mp3

fausto
31-01-2005, 01:06
carino! ho provato ktimer, funziona.Come ho un po' di tempo guardo le altre cose.
:D :sonno: :sonno:


e..... se invece volessi spegnerlo il pc? mmm mi sa che questo non si può fare: come fa un demone a girare se il pc è spento?mmm però l'orologio non si ferma mica... :master:
o si verma ma poi viene riaggornato? ma in base a cosa?
mah!

andy caps
31-01-2005, 01:14
per spengerlo metti come comando poweroff però poi non ti sveglia :D

fausto
31-01-2005, 01:22
ho provato! funziona.... :ciapet:

Guglie
31-01-2005, 10:48
non c'è qlcs di simile a ktimer in gtk2?
io di solito uso crontab, ma volevo qlcs gestibile anche da utente senza privilegi

gigyz
31-01-2005, 16:03
spegnilo poi lo accendi qualche minuto prima della sveglia tramite bios, dipende dal bios ma di solito questa funzione ce l'hanno.

fausto
31-01-2005, 16:20
fiko!
non so come si faccia ma vediamo.... :smack:

però ero curioso per lo script.... non dovrebbe essere difficile, solo che io non conosco un comando che tenga conto dell'ora.

Forse con un programmino in C, usando le primitive di sistema, mi sembra ci sia qualcosa tipo wait(). Mi devo andare a riguardare 'ste cose.

Ciao! :rollo:

Guglie
07-05-2005, 23:47
oggi non avevo niente da fare, così ho deciso di miglirare un po' il mio vecchio script per la sveglia. adeso in pratica può:
diminuire il volume della musica che è in "suonamento"
e poi:
- suonare musica (con volume incrementale)
- aumentare il volume della musica (incrementale)

ovvero: se lascio xmms acceso di notte quando lo script è chiamato il volume viene aumentato pian piano fino a 100 (con l'opzione -s) o viene pian piano diminuito, viene fatto partire mplayer con il brano scelto e infine il volume è riaumentato gradualmente fino a 100 (con -a)

lo script funziona con ogg, mp3 e wav perchè mplayer supporta tutti e 3 questi formati

potete scaricare lo script qui (http://web.ticino.com/guglie/pub/dev/sh/sveglia), ma visto che so che prima o poi quel sito non ci sarà più posto una versione anche sul forum :)

se sono stato utile a qualcuno bene, altrimenti mi sono divertito lo stesso a farlo :D

ah dimenticavo.. uno bravo probabilmente l'avrebbe scritto in metà delle righe, io sono ancora in fase di apprendimento.. :stordita:


#!/bin/bash
# author: Luca Guglielmetti
# version: 0.3
# license: GPL-2
# use: uno scrip da inserire in crontab che funziona da sveglia

# oss: lo script si basa su alsa per incrementare il volume
USE_ALSA="true"
SLEEP_VALUE=0.3
SPEED_VOLUME_CHANGE=2
MUSIC_DIRECTORY="/usr/local/sveglia/music/"
MUSIC_SOFTWARE="mplayer"

function whelp
{
echo
echo "USE sveglia [-a] <nomeautore>"
echo "or"
echo "USE sveglia [-s]"
echo
echo "lo script ha l'inutile scopo di cercare di svegliarmi al mattino.."
echo
echo "opzioni: "
echo "-a --author: accetta un brano specifico da suonare"
echo "-s --silent: alza solamente il volume e fa partire xmms/bmp/..."
echo "-l --list: stampa la lista dei brani disponibili"
echo "-h --help: stampa questo messaggio ed esce"

exit 0
}

function list
{
echo "lista degli autori selezionabili:"
echo
for i in `ls $MUSIC_DIRECTORY`
do
titolo=${i%.*}
estensione=${i##*.}
echo "- "$titolo" ["$estensione"]"
done
echo

exit 0
}

function play
{
echo
echo "+-------------------------------------+"
echo "| sveglia partita.. buona giornata !! |"
echo "+-------------------------------------+"
echo
`$MUSIC_SOFTWARE $MUSIC_DIRECTORY$1 &`
echo "ok"
}

function stop_players()
{
if [ "$USE_ALSA" = "true" ]; then
diminuisci_volume
fi
for i in "xmms" "beep-media-play"
do
name=`ps -e | grep $i | line 1 | awk '{ print $4 }'`
if [ "$name" = "$i" ]; then
`xmms -s`
echo $name "stoppato"
fi
done
for i in "ogg123" "mpg123"
do
name=`ps -e | grep $i | line 1 | awk '{ print $4 }'`
if [ "$name" = "$i" ]; then
`killall $name`
echo $name "killato"
fi
done
}

function start_players()
{
for i in "ogg123" "mpg123"
do
name=`ps -e | grep $i | line 1 | awk '{ print $4 }'`
if [ "$name" = "$i" ]; then
PLAYING_FROM_SHELL="true"
fi
done

if [ ! "$PLAYING_FROM_SHELL" ]; then
for i in "xmms" "beep-media-play"
do
name=`ps -e | grep $i | line 1 | awk '{ print $4 }'`
if [ "$name" = "$i" ]; then
`xmms -p`
echo $i "partito"
fi
done
fi
}

function aumenta_volume()
{
for ((i=0; i <= 100; i+=SPEED_VOLUME_CHANGE))
do
#echo $i
amixer set Master $i% >> /dev/null
sleep $SLEEP_VALUE;
done
}

function diminuisci_volume()
{
i=`amixer get Master | grep "Front Left: " | awk '{ print $5 }'`
i=`echo $i| sed "s/\[//g" | sed "s/\]//g" | sed "s/%//g"`

for ((i; i >= 0; i-=SPEED_VOLUME_CHANGE))
do
#echo $i
amixer set Master $i% >> /dev/null
sleep $SLEEP_VALUE
done
}


if [ ! "$1" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ] || [ "$3" ]; then
whelp
elif [ "$1" = "-l" ] || [ "$1" = "--list" ] ; then
list
elif [ "$1" = "-s" ] || [ "$1" = "--silent" ]; then
start_players
if [ "$USE_ALSA" = "true" ]; then
aumenta_volume
fi
elif [ "$1" = "-a" ] || [ "$1" = "--author" ]; then
for i in `ls $MUSIC_DIRECTORY`
do
nomefile=$i
titolo=${i%.*}
estensione=${i##*.}
if [ "$titolo" = "$2" ] ; then
if [ "$estensione" = "ogg" ] || [ "$estensione" = "mp3" ] \
|| [ "$estensione" = "wav" ]; then
FILE_TROVATO="true"
stop_players
play $nomefile &
if [ "$USE_ALSA" = "true" ]; then
aumenta_volume
fi
else
echo "estensione sconosciuta"
fi
fi
done
if [ ! "$FILE_TROVATO" ]; then
list
fi
else
whelp
exit 0
fi

Loading