[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: diversificare comportamento tty [era: problemi script locale/remoto]



On Thu, 17 Jul 2003 10:08:20 +0200
"matteo_battistini@libero.it" <matteo_battistini@libero.it> wrote:

> ma sto cercando un qualcosa di piu' customizzabile, dovrei infatti
> mettere ad esempio nel login da remoto anche il controllo della carica
> della batteria su console che girava qualche tempo fa, per questo i
> prog da te citati anche se carini mi servono fino ad un certo punto...
Questa e' l'ultimissima versione di apm_prompt, un prompt colorato che
fornisce data, ora, utente, host, stato della carica (se con
alimentatore o no, e in questo caso anche la durata della batteria in
ore:minuti), directory corrente.

In ultimo trovi un inizio per quello che devi fare: identificare il
terminale corrente. Non e' semplice come sembra, perche' se usi un xterm
o ssh, utilizzi sempre un device /dev/pts/*, cmq e' una base di
partenza...

-- 
()_() | Un OS per domarli, Un OS per trovarli,             | +----
(°.°) | Un OS per ghermirli e nel buio incatenarli         | +---+
'm m' | Nella terra di Redmond, ove l'ombra cupa scende... |  O  |
(___) |              raffaele punto salmaso presso libero punto it
function apm_prompt() {
	APM=`cat /proc/apm`
	PS=`echo $APM | cut -d" " -f7`
	if [ "`echo $APM | cut -d" " -f4`" = "0x01" ]; then
		POWER="AC Power"
	else
		MIN=`echo $APM | cut -d" " -f8`
		HOUR=`echo $(($MIN / 60))`
		if [ $HOUR != 0 ]; then
			MIN=`echo $(($MIN - ($HOUR * 60)))`
		fi
		case $MIN in
		    ?) MIN="0$MIN" ;;
		esac
		# the initial space is important!
		TIME=" Time left: $HOUR:$MIN"
		POWER="Battery"
	fi

	case $PS in
		1??%|9[5-9]%)
			COLOR="0;32;7" ;;
		9[0-4]%|8?%|7?%|6?%|5?%)
			COLOR="0;32" ;;
		4?%|3?%|2?%)
			COLOR="0;33" ;;
		1?%)
			COLOR="0;31" ;;
		?%)
			COLOR="0;31;5"
	esac
	echo "["${COLOR}"m["${POWER}": +"${PS}${TIME}"]"
}

case `tty` in
	/dev/tty*)
		PS1="\033[36;1m\]\t \d\[\033[34m \033\$(apm_prompt)\033[m \033[33;1m\]\u@\h \[\033[1;32m\]\w\[\033[1m\]\n\[\033[m\]¤ "
		;;
	/dev/pts/*)
		PS1="[Terminale remoto] \033[36;1m\]\t \d\[\033[34m \033\$(apm_prompt)\033[m \033[33;1m\]\u@\h \[\033[1;32m\]\w\[\033[1m\]\n\[\033[m\]¤ "
		;;
	*)
		PS1="[Terminale sconosciuto] \033[36;1m\]\t \d\[\033[34m \033\$(apm_prompt)\033[m \033[33;1m\]\u@\h \[\033[1;32m\]\w\[\033[1m\]\n\[\033[m\]¤ "
		;;
esac

export PS1

Reply to: