No es muy dificil tener un mensaje al salir de Fluxbox para evitar salir por accidente.
Son 2 los problemas que hay que resolver:
1. Qué tipo de mensaje quieres usar
2. Encontrar el id del proceso de Fluxbox para cerrar el proceso adecuado
Problema 1: Además de el famoso xmessage, existen otros programas de mensajes disponibles: Zenity, Kdialog, gxmessage, gdialog entre otros. Cada uno de ellos provee varios controles como cuadros de texto, botones, etcétera. Leen información desde la entrada estandar, aparecen en pantalla, esperan que el usuario haga click en un control y devuelven alguna respuesta.
Ejemplo:
$> xmessage -nearmouse -buttons no:1,yes:0 "Seguro que deseas salir?"
Y si haces click en "yes" o "no", reciviras 0 o 1 como respuesta.
Entonces, el ejemplo logout.sh sería algo asi:
#!/bin/sh
pid=""
message="Seguro que deseas salir?"
if xmessage -nearmouse -buttons no:1,yes:0 "$message"; then
echo "Voy a terminar el proceso $pid, por si acaso"
fi
Entonces, sólo nos falta averiguar el actual id del proceso de fluxbox, eso es simple:
$> xprop -root _BLACKBOX_PID | awk '{print $3}'
Esto nos dirá exactamente el pid de Fluxbox.
#!/bin/sh
pid=`xprop -root _BLACKBOX_PID | awk '{print $3}'`
message="Seguro que deseas salir?"
if xmessage -nearmouse -buttons no:1,yes:0 "$message"; then
kill -TERM $pid
fi
Y eso es todo :), pon el archivo logout.sh en algun lugar de tu PATH, hazlo ejecutable (chmod u+x logout.sh) y reemplaza [exit] en tu ~/.fluxbox/menu con [exec] (exit) {ExecCommand logout.sh} Si eres muy ocioso para hacer todo esto, puedes usar un pequeño programa llamado "fbcmd". Está disponible en
http://darkshed.net/files/c_cpp/fbcmd/
Y luego usa:
$> fbcmd logout zenity "Seguro que deseas salir?"
o
$> fbcmd logout gdialog "Segurolas?"
O lo que te de la gana. fbcmd puede hacer un poco mas que eso, pero ya es otro tema :)
Last update: 2006-01-08 16:40
Author: Mathias Gumz
Tranducido por Jj