Resulta ser que soy una suerte de fan de Star Wars. Mi último vicio son los dibus Star Wars: The Clone Wars, que me parecen muy interesantes e inspiradores porque siempre incluyen reflexiones profundas. Especialmente, me gustan las frases al comienzo de cada capítulo y, por ese motivo, se me ocurrió que podía ser una buena idea que al arrancar GNOME apareciera una de estas frases. De ese modo, comenzaría mis días con una frase inspiradora.
La cuestión es que esa idea terminó en el siguiente script, que todos Uds. pueden utilizar como enseñaré a continuación. La utilidad de este script excede ampliamente las razones por las que lo escribí. Se puede usar no sólo para mostrar «frases del día» personalizadas sino también para aprender idiomas o cualquier otra cosa que precise de la constancia que implica ver un cartelito siempre que arranques la compu. |
Instalación
1.- Descargá el script.
2.- Descomprimilo en la carpeta que más te guste, tu HOME puede ser un buen lugar.
3.- El paquete consta de 4 archivos:
- quote.png: es la imágen que se va a mostrar junto con el cartel
- quote.txt: es el archivo de texto que contiene las frases de las que se va a nutrir el script. Tené en cuenta que cada frase debe ocupar una línea. Cada línea tiene las mismas posibilidades de mostrarse.
- quote.py: es el script python que hace toda la «magia». Básicamente, lo que hace es obtener líneas en forma aleatoria del archivo quote.txt y mostrarlas en Notify OSD a través de DBus.
- quote.sh: es un script bash que espera unos segundos antes de ejecutar el script python. Más adelante se explican las razones del porqué de este script.
4.- En teoría, todo debería funcionar perfectamente agregando el script python a la lista de aplicaciones que se ejecutan al inicio. El problema es que, seguramente debido a un bug en Notify OSD (y su compatibilidad con Compiz), si se ejecuta inmediatamente al iniciar las X, el cartel aparece con un fondo negro horrible.
Por esta razón, hay que esperar unos segundos luego de que el sistema arranque para ejecutar el script. He intentado hacerlo directamente desde el script Python usando time.sleep con muy poco éxito (vaya uno a saber por qué… ya que cuando lo ejecuto sólo -sin reiniciar las X- anda perfecto).
La solución es que, en vez de agregar el script python, agreguemos el script bash (quote.sh) a la lista de aplicaciones que se ejecutan al inicio. Para ello, abrí Sistema > Preferencias > Aplicaciones al inicio.
Hacé clic en el botón Añadir y en Nombre escribí Quote of the Day o lo que más prefieras. Luego, en Orden, escribí sh /ruta/donde/está/el/script/quote.sh (en mi caso, quedó sh /home/earendil/quote/quote.sh). En comentario, agregá algún comentario que describa el funcionamiento del script.
5.- Listo. Reiniciá las X y fijate si todo funciona bien.
Algunos ajustes extras
1.- Para cambiar el tiempo a esperar antes de mostrar el cartel con la frase, abrí el archivo quote.sh y modificá la cantidad de segundos luego del comando sleep.
2.- Para cambiar el tiempo que el cartel debe permanacer visible, abrí el archivo quote.py y buscá la línea que dice set_timeout(10000). El número indica la cantidad de milisegundos; así que, siguiendo el ejemplo, 10000 sería igual a 10 segundos.
Me encanta la idea! 🙂 Me gustaría saber cómo hacer que la notificación salga con cierta periodicidad con un elemento nuevo aleatorio.
Lástima que todos están en inglés. ¿Ningún «castillo» tiene algo interesante para decir? 😉
El script ya elige elementos aleatorios (son líneas tomadas de quote.txt). Para hacer que se ejecute cada X mins, sólo tenés que agregar al script como una tarea de cron. En el blog, publicamos varios artículos sobre cómo hacerlo:
https://blog.desdelinux.net/cron-crontab-explicados/
http://usemoslinux.blogspot.com/2010/10/como-administrar-la-ejecucion-de-tareas.html
https://blog.desdelinux.net/como-administrar-las-tareas-programadas-en-gnome/
Saludos! Pablo.
Personalmente habría usado fortune para generar las frases.
Por no reinventar la rueda.
Sí… cuando lo escribí no sabía que existía fortune. 🙂
Saludos! Pablo.