tag:blogger.com,1999:blog-14319093744420366742024-03-19T03:15:44.441-07:00BLOG LAGARTOAnonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.comBlogger22125tag:blogger.com,1999:blog-1431909374442036674.post-50103010861248973152017-12-19T01:11:00.001-08:002017-12-19T05:29:43.985-08:00Como Instalar fuentes TrueType en Linux<div style="text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZj7kMa9mQAsYeTYbl_9mTpO13Rlc49o9OSlqd0oqN42Vpve3uFUEBRUva6ibOR5HZaOEkSji7Vayzhs4Q9cGskQy6DNcrCI4l0hcPfKHJcvI0W94fuLgHp0-7eNoa33BfmGWBriZ9aVK4/s1600/font.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="425" data-original-width="425" height="102" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZj7kMa9mQAsYeTYbl_9mTpO13Rlc49o9OSlqd0oqN42Vpve3uFUEBRUva6ibOR5HZaOEkSji7Vayzhs4Q9cGskQy6DNcrCI4l0hcPfKHJcvI0W94fuLgHp0-7eNoa33BfmGWBriZ9aVK4/s200/font.png" width="102" /></a>Hoy en día es necesario no quedarse limitado al número de fuentes disponibles en los repositorios de nuestros sistemas ya que una gran cantidad de fuentes no esta disponible en los mismos y hay que instalarlas de forma manual.<br />
<br />
<div style="text-align: left;">Una vez descargada la fuente, solo hay que copiarla en <span style="font-family: monospace; white-space: pre;">/usr</span><span style="color: black; font-family: monospace; font-weight: bold; white-space: pre;">/</span><span style="font-family: monospace; white-space: pre;">share</span><span style="color: black; font-family: monospace; font-weight: bold; white-space: pre;">/</span><span style="font-family: monospace; white-space: pre;">fonts</span><span style="color: black; font-family: monospace; font-weight: bold; white-space: pre;">/</span><span style="font-family: monospace; white-space: pre;">TTF</span><span style="color: black; font-family: monospace; font-weight: bold; white-space: pre;">/ </span>con el siguiente comando:</div></div><table><tbody>
<tr><td class="code"><pre class="bash" style="font-family: monospace;">sudo mv /home/downloads/archivo_de_la_fuente /usr<span style="color: black; font-weight: bold;">/</span>share<span style="color: black; font-weight: bold;">/</span>fonts<span style="color: black; font-weight: bold;">/</span>TTF<span style="color: black; font-weight: bold;">/</span></pre><span style="text-align: justify;">Una vez hecho esto nuestra fuente estará disponible para usar en nuestro sistema.</span><br />
</td></tr>
</tbody></table><br />
<br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-10054721280855593892016-07-08T10:38:00.000-07:002016-07-08T10:40:00.949-07:00Touchpad - Activar y desactivar con un simple scriptEn ocasiones es necesario inhabilitar temporalmente el touchpad, bien por seguridad o bien porque seas un usuario mas acostrumbrado a utilizar solo el ratón y quiereas evitar acciones no deseadas al tocar accidentalmente el touchpad.<br />
<br />
Este script permitirá solucionar este problema. Es decir se desactivará y activará automáticamente el touchpad, cuando llamemos al script desde la terminal.<br />
<pre class="cli code">#!/bin/bash
estado=$(synclient -l | grep Touch)
if [[ $estado == ' TouchpadOff = 0' ]]
then synclient TouchpadOff=1
else synclient TouchpadOff=0
fi</pre>Lo guardamos con el nombre "touchpad" (evidentemente sin comillas). Una vez hecho esto, le damos permisos de ejecución con:<pre class="cli code">chmod +x /ruta del archivo/touchpad</pre><br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-73787546054208386472016-05-06T11:34:00.000-07:002016-05-06T11:34:06.322-07:00Enviar correo con archivos desde Bash<div class="post-header"></div>Uno de los mayores problemas que nos encontramos como administradores en linux es que no podemos hacer que [mail] mande ficheros adjuntos, un gran problema que por suerte para nosotros tiene una pequeña solucion y que gracias a MUTT podremos recibir en nuestros correos electronicos los logs diarios de acceso, correo, cortafuegos, sistema... la imaginacion es la unica limitacion ya que MUTT nos permite infinidades de posibilidades. Aqui solo aprenderemos a andar con MUTT ahora si quereis correr GOOGLE os enseñará el camino.<br />
<br />
Como digo siempre que empiezo una nueva instalacion, doy por sentado que vuestro sistema de correo funciona perfectamente y que lo que quereis es poder recibir los logs como adjuntos en vuestra cuenta de correo.<br />
<br />
Instalamos el MUTT en nuestro sistema:<pre>#apt-get install mutt</pre>Y ahora os enseñare como se manda un fichero adjunto con MUTT:<br />
<pre class="cli code">#!/bin/bash
echo "Este es el contenido del mensaje" | mutt -a "/ruta/hasta/el/archivo.extensión" -s "Asunto" destinatario@dominio.com</pre>Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com1tag:blogger.com,1999:blog-1431909374442036674.post-3030348478293002102016-03-20T12:07:00.001-07:002016-04-11T09:46:25.130-07:00Capturar pantalla mediante Bash<div style="text-align: justify;">
Este sencillo script tiene como función capturar la pantalla y guardar el resultado en una carpeta, en este caso Home/Imágenes/Capturas/.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnEdZm0uNhF0jWtgTbKjMvPZYdbcr0zW5SdvxfuUce2_TPXXlY3NBk9IWfB1QxsKDabRWLjVOg4KIwESsMXgoQM_6PanfYPn8P6DM7uAQt_kv-yXvZ61PWkdhBfX673Jcka6jlCpsucFu/s1600/pantalla.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAnEdZm0uNhF0jWtgTbKjMvPZYdbcr0zW5SdvxfuUce2_TPXXlY3NBk9IWfB1QxsKDabRWLjVOg4KIwESsMXgoQM_6PanfYPn8P6DM7uAQt_kv-yXvZ61PWkdhBfX673Jcka6jlCpsucFu/s320/pantalla.png" width="120" /></a>Hemos de tener instaladas un par de dependencias, una es <b>scrot</b> que es realmente quien hace la captura, y <b>gpicview</b> para abrir la captura tras haberla realizado y mostrarla en pantalla. Esta última se podría cambiar por otro visor de imágenes a gusto del consumidor editando la última linea del script.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
instalamos las dependencias necesarias con:</div>
<pre>sudo pacman -S scrot gpicview</pre>
<div style="text-align: justify;">
Copie y pege el siguiente código en un fichero de texto, guárdelo y dele permisos de ejecución.</div>
<pre>#!/bin/bash
directorio="${HOME}/Imágenes/Capturas/"
fecha=`date +'%F_%H:%M:%S'`
nombrearchivo="captura_${fecha}.png"
# si no existe, ceamos directorio.
if [ ! -d "${directorio}" ]; then mkdir "${directorio}"; fi
# capturar pantalla
scrot $directorio$nombrearchivo
# Abrimos el archivo.
gpicview $directorio$nombrearchivo</pre>
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com1tag:blogger.com,1999:blog-1431909374442036674.post-5238850200804862032016-03-18T17:41:00.000-07:002016-05-04T05:41:58.128-07:00Activar y desactivar Conky con un solo comando<div style="text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEW4w7uXd6bko-4_AnstaJsxczz9xfQXY_eBd1khGjXV5JbTaSKQ9khpdn5DXMAXobEhrdvdXMS34JuaKDktIlzx8CdWofT62OGDKQLSlkZoeJEBish_lI3HZzZ5Uzv6xVeMqIYZ8gqviM/s1600/conky.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="170" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEW4w7uXd6bko-4_AnstaJsxczz9xfQXY_eBd1khGjXV5JbTaSKQ9khpdn5DXMAXobEhrdvdXMS34JuaKDktIlzx8CdWofT62OGDKQLSlkZoeJEBish_lI3HZzZ5Uzv6xVeMqIYZ8gqviM/s200/conky.jpg" width="170" /></a>Con este script conseguiremos activar o desactivar conky en nuestro sistema con un solo comando. Podremos integrarlo en nuestro menu, y con la misma llamada encenderemos y apagaremos nuestra configuracion de Conky en lugar de tener dos entradas (una par encenderlo y otra para apagarlo).<br />
<br />
<b>Nota:</b> El script ejecuta la configuración que tenemos guarda en la ruta Home/.conkyrc. En caso de tener que ejecutar otra ruta de archivo, o que esta tenga otro nombre diferente, habría que editar la línea 6 del script. </div><pre>#!/bin/bash
if pgrep conky &>/dev/null; [ $? = 0 ]
then
killall conky
else
conky -d -c ~/.conkyrc
exit
fi</pre>Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-32740756285081231262016-03-13T14:05:00.000-07:002016-05-04T05:42:26.340-07:00Eliminar aplicaciones de Wine del menú contextual.<div style="text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh30jtZTH8rjFyGLED8repgoa1Lyh__KlgKGeT6CpvVcov90GD8LpWEvxjPPyvCS_GJgkUSMYUMrvx6tukEfWnnMfA9N0r8CeuxwxsZKLfdw6mOtOzh_06PDU4N_7OpitYLJP8o4Qup66vJ/s1600/wine.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh30jtZTH8rjFyGLED8repgoa1Lyh__KlgKGeT6CpvVcov90GD8LpWEvxjPPyvCS_GJgkUSMYUMrvx6tukEfWnnMfA9N0r8CeuxwxsZKLfdw6mOtOzh_06PDU4N_7OpitYLJP8o4Qup66vJ/s1600/wine.png" /></a>Uno de los inconvenientes que tiene Wine es que al desinstalarlo deja rastro en el menu contextual, dejando entradas obsoletas a aplicaciones de wine que ya no estan en el sistema (como Notepad o Wordpad).</div><div style="text-align: justify;"><br />
</div><div style="text-align: justify;">Para subsanar esto, solo hay que eliminar el directorio <b><span style="font-family: "courier new" , "courier" , monospace;">~</span></b><span style="font-family: "courier new" , "courier" , monospace;"><b>/.local/share/applications</b></span>.</div><br />
Abriremos nuestro terminal y escribiremos el siguiente comando:<br />
<pre>rm -R ~/.local/share/applications
</pre><div style="text-align: justify;">Una vez hecho esto habremos eliminado del todo el rastro de las aplicaciones Wine de nuestro menu contextual.</div><br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-83643671324675304022016-03-11T02:07:00.002-08:002016-03-18T17:44:31.860-07:00Eliminar cabecera en Blogger.<br />
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_bndJGJeQpIi5qjbRFe-b8gM0LzZYawdWO8Ye_rBJggXGtpReUGFBtGXTq0Kk72PQ3LzxH9qH6YT0G-J18SGcuM_YQd0BeLGpfg7Dy0-Z_Hfhe_lpr-tIMjWa6KkehJ2DecNZkiVro8nL/s1600/blogge.gif.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_bndJGJeQpIi5qjbRFe-b8gM0LzZYawdWO8Ye_rBJggXGtpReUGFBtGXTq0Kk72PQ3LzxH9qH6YT0G-J18SGcuM_YQd0BeLGpfg7Dy0-Z_Hfhe_lpr-tIMjWa6KkehJ2DecNZkiVro8nL/s200/blogge.gif.png" width="110" /></a><a href="https://3.bp.blogspot.com/-mZuvgVv3Zkg/VuPhT3qO9aI/AAAAAAAAAdQ/wMp4-c2h2AcS8GYImqvl4kBs8l0ZdXIqg/s1600/Google%2BBlogger.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a>Si tienes un blog con Blogger y quieres eliminar la cabecera en cualquier plantilla, ya sea por razones estéticas o bien porque vamos a insertar nuestro propio código, Blogger no permite hacerlo al no tener activado el boton eliminar en la configuración de la cabecera. Para poder quitar esta restricción seguiremos estos sencillos pasos:</div>
<br />
1.- Entramos en plantilla/editar HTML<br />
<br />
En la parte superior a la ventana de código iremos al botón "ir al widget" y seguidamente elegiremos la opcion Header1.<br />
<br />
Buscamos la siguiente linea:<br />
<pre><b:widget id="Header1" locked="true" title="Nombre de tu Blog" type="Header"></b:widget></pre>
Cambiamos el valor de <b>locked</b> por 'false' de forma que la linea quedará así:<br />
<pre><b:widget id="Header1" locked="false" title="Nombre de tu Blog" type="Header"></b:widget></pre>
<div style="text-align: justify;">
Guardamos cambios de la plantilla. A continuación volveremos a Diseño para editar de nuevo nuestra cabecera. Ahora si aparecerá la opción Eliminar. Obviamente solo hay que pulsarlo y nuestra cabecera sea Eliminada.</div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-55487697658175728532016-02-23T06:03:00.002-08:002016-03-11T02:10:26.803-08:00Lanzador para Teamviewer.He escrito un pequeño script que automatiza el inicio Teamviewer. Al ejecutarlo obtenia el siguiente error:<br />
<br />
<div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXSPBSKjMi5SLkAkxhIbdHdcqgOyDhgD5g4z2Ojc3YHxgDR2PtEMwrei8ltrxSv5Lu_xfe4PIFz5yinLM1VAl8wSiS_WIZCXhdHC7BniAm59QF9J-pX0FA82d2zZb2RSDtDORwt8JSGssG/s1600/2016-02-23--1456230811_1280x800_scrot.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXSPBSKjMi5SLkAkxhIbdHdcqgOyDhgD5g4z2Ojc3YHxgDR2PtEMwrei8ltrxSv5Lu_xfe4PIFz5yinLM1VAl8wSiS_WIZCXhdHC7BniAm59QF9J-pX0FA82d2zZb2RSDtDORwt8JSGssG/s1600/2016-02-23--1456230811_1280x800_scrot.jpg" /></a></div><br />
Bien, esto ocurre tal como dice el formulario de error porque el demonio de Teamviewer no se está ejecutando.<br />
<br />
Mi solución pasa por crear un script que inicia dicho demonio y lanza Teamviever. ¿<span data-dobid="hdw">Obvio</span> no?<br />
<pre>#!/bin/bash
echo `whoami` | sudo -S teamviewer --daemon start; teamviewer</pre>Lo guardamos como teamviewerlauncher. Una vez hecho esto, le damos permisos de ejecución con:<br />
<pre>chmod +x /ruta del archivo/teamviewerlauncher</pre><br />
<br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com1tag:blogger.com,1999:blog-1431909374442036674.post-44140921058617656412016-02-20T07:31:00.000-08:002016-05-04T05:53:58.548-07:00 Selector de temas para Bmpanel2.<h3 class="post-title entry-title"></h3>No he encontrado ningún selector de temas para esta barra de tareas. Sin grandes pretensiones, mas lejos de ser lo que su nombre indica he creado un pequeño script en Bash para tal fin.<br />
<div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr805V9Nf3yhnZpJsjxXCs2P-9pP5rt6P5pMwQOw8yMPLrOWi0W0jqWcpZEnv5x0LdqgxrSPCgmXPkubsu4jfCnuJdANLi-8KFmQEswxZMuYCLkDgZf1T016MIXyoZ2zk_huCUI1NTHHmt/s1600/2016-03-01--1456832491_1280x800_scrot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr805V9Nf3yhnZpJsjxXCs2P-9pP5rt6P5pMwQOw8yMPLrOWi0W0jqWcpZEnv5x0LdqgxrSPCgmXPkubsu4jfCnuJdANLi-8KFmQEswxZMuYCLkDgZf1T016MIXyoZ2zk_huCUI1NTHHmt/s1600/2016-03-01--1456832491_1280x800_scrot.jpg" /></a></div><br />
Copiaremos el siguiente código en un archivo de texto al que llamaremos bmpanel2theme<br />
<pre>#!/bin/bash
# Importamos los temas a nuestro Home
cp -rf /usr/share/bmpanel2/themes ~/.bmpanel
cd ~/.bmpanel/themes
opcion=$( ls -d */ | cut -f1 -d'/' | zenity --list --title "Bmpanel2 themes" --column "Lista de temas")
if ["$opcion" == ""]; then exit 0 # Salir del script
else
killall bmpanel2; # Elimiar panel actual
bmpanel2 --theme=$opcion # Lanzamos panel nuevo
fi
zenity --warning --text "No file selected";;
esac</pre>Guardamos los cambios, y otorgamos permisos de ejacución desde el terminal con:<span class="ya-q-full-text" id="yui_3_17_2_3_1456080768523_719" itemprop="text"></span><br />
<pre><span class="ya-q-full-text" id="yui_3_17_2_3_1456080768523_719" itemprop="text">chmod +x bmpanel2theme</span></pre><span class="ya-q-full-text" id="yui_3_17_2_3_1456080768523_719" itemprop="text">Todo listo, ya tenemos nuestro selector de temas listo para ser ejecutado!</span>Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-44031547681992304172016-01-08T01:29:00.000-08:002016-03-02T17:39:45.684-08:00MAME script (II) – Lanzador de juegos arcade.<div style="text-align: justify;">
Hace un tiempo publiqué un script en otro post que lanzaba los juegos de la plataforma M.A.M.E. al que llamé MAME script (I) con intención de implementarle mas funciones y mejorarlo.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCbi6qpoVBSqH5m5xFIXNX5eeJZfUya9u1ptg2AMh_02Fy1j9itHrAJ_-hH9MmlIjIg7qZ_p1eBEF-a1zxgK4q_OtDeerS64mLoMIo85tT6ndwJk5_-qsAndbIVLCJMRMZqQIxUJc9quPP/s1600/mamescript.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCbi6qpoVBSqH5m5xFIXNX5eeJZfUya9u1ptg2AMh_02Fy1j9itHrAJ_-hH9MmlIjIg7qZ_p1eBEF-a1zxgK4q_OtDeerS64mLoMIo85tT6ndwJk5_-qsAndbIVLCJMRMZqQIxUJc9quPP/s320/mamescript.jpg" width="320" /></a></div>
<br />
El código anterior analizaba la carpeta de nuestras roms cada vez que mostrabamos el menu con lo que, si tieníamos muchas roms, tardaba un poco en realizar el proceso. Para solucionar esto, en lugar de analizar la carpeta de nuestras roms una y otra vez, en este caso lo haremos solo una vez al inciarlo la primera vez que lo ejecutamos, (veremos el progreso en pantalla).<br />
<br />
Genera una pequeña base de datos con la que es mas rápido trabajar. Otra funciónalidad incorporada es la capacidad de detectar si el contenido de la carpeta de nuestras roms ha cambiado, para actulizar nuestra base de datos y el menú automáticamente.<br />
<br />
Se ha añadido detección de roms defectuosas, en cuyo caso, recibiremos una notificación (y mostraremos el log de dicha rom) consultando si queremos eliminar el archivo de nuestro equipo.<br />
<br />
La ruta de las roms por defecto es "roms" dentro de nuestro Home pero se puede cambiar en el script.<br />
<br />
Esta vez no posteo el código, lo adjunto para descargar en el siguiente archivo:</div>
<br />
<a href="https://www.dropbox.com/s/9a0uyfyav4lhh6v/mame%20script.zip?dl=0">mame script.zip</a><br />
<br />
Hay que descomprimir, dar permisos de ejecución y a disfrutar de nuestras roms!Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-57735360699642029882015-09-23T04:01:00.000-07:002016-03-03T01:52:36.528-08:00Comprobar dependencias de un script.<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6ELf-_ei6M-1EPOwnVe5SJYEgXX9AyDFyO8bnXLyqRBaU-p25hsSumv-sllhoks-hlcfs7f4hyms_5bv9oPzuUA6xIigRsZbrhHLrpgHUMj48aMUf9o9_4E8hjCFFjnGRCy6broV-SRxX/s1600/download-box-b5d7b5ae.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6ELf-_ei6M-1EPOwnVe5SJYEgXX9AyDFyO8bnXLyqRBaU-p25hsSumv-sllhoks-hlcfs7f4hyms_5bv9oPzuUA6xIigRsZbrhHLrpgHUMj48aMUf9o9_4E8hjCFFjnGRCy6broV-SRxX/s200/download-box-b5d7b5ae.png" width="200" /></a></div>
Muchas veces, hacemos uso de otros paquetes que facilitan la programación (y la ejecución) de nuestros scripts, y me ha parecido oportuno escribir una pequeña rutina que compruebe la existencia de los paquetes dados.<br />
<br />
Pasaremos los paquetes a comprobar en una matriz o array, y si no estan instalados procederemos a la instalación de los mismos. Supongamos que necesitamos los tres siguientes paquetes: <b>zenity, mplayer y xdotool</b>. Pasaremos los nombres al array al que hemos llamado "dependencias".</div>
<pre>#!/bin/bash
# Autor: Esteban C. Sanz
dependencias=(zenity mplayer xdotool)
for item in ${dependencias[*]}
do
if ! (pacman -Q $item >/dev/null);
then
lista=$lista" "$item
fi
done
if [ -n "$lista" ]
then
sudo pacman -S $lista --noconfirm
fi</pre>
<div style="text-align: justify;">
De esta forma, la primera vez que se ejecute vuestro script, este se asegurará de que esté todo en orden para la correcta ejecución del mismo. Como siempre, espero os sea útil.</div>
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-43347316167924140782015-09-14T12:00:00.000-07:002016-03-03T01:52:57.319-08:00Comprobar si estamos conectados a internet en Bash.<br />
<div style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj41Lx5rZSMc-IbyAZ9_fPyFchW3_NW2wP30cP6YidiD-TZHmrWbinGtumztTg2wRCVOrXdceovImID1florvrwc-6XVBIuBBd55b-CwIW1Op9Mpu0Im6p-XPwt4D72hyphenhyphenIz_zqNfuA3dQLC/s1600/browser-flat-icon-preview.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj41Lx5rZSMc-IbyAZ9_fPyFchW3_NW2wP30cP6YidiD-TZHmrWbinGtumztTg2wRCVOrXdceovImID1florvrwc-6XVBIuBBd55b-CwIW1Op9Mpu0Im6p-XPwt4D72hyphenhyphenIz_zqNfuA3dQLC/s200/browser-flat-icon-preview.png" width="100" /></a><a href="https://4.bp.blogspot.com/-TnjzuEN1jpA/VtgDu9gmnuI/AAAAAAAAASQ/rnk_qAhYDdc/s1600/router_wifi_communication_network_equipment_wireless_flat_icon_symbol-512.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>La función de este código es sencilla. Nos será util en con scripts que requieran conexión a internet. Sencillamente hace una llamada a Google.com (podria ser cualquier página existente), enviando un paquete (-c1) y obtenemos la salida de ping a /dev/null<br />
<pre>#!/bin/bash
if ping -c1 google.com &>/dev/null;
then
echo "Conexión a internet OK.";
else
echo "No hay conexión.";
fi
</pre>
Hasta aqui bien, pero y si además necesitamos que se ejecute de nuevo hasta estar conectados? Bien, en ese caso cambiaremos el código por:<br />
<pre>#!/bin/bash
# Comprobamos conexión cada 10 segundos.
until ping -c1 google.com &>/dev/null
do
echo "No hay conexión. Reintentando en 5 segundos..."
sleep 5
done
# Hay conexión!
echo "Conexión a internet OK";
</pre>
De esta forma ejecutaremos el script cada 10 segundos hasta que estemos conectados.<br />
Hasta pronto!</div>
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-11371144403055036362015-09-12T20:33:00.000-07:002016-03-03T01:53:08.114-08:00Script para mostrar la información de nuestro disco duro.El enunciado lo dice todo. Es un código que encontré que he creido que puede ser de utilidad a alguién. Un código cortito y muy rápio en ejecución.<br />
<br />
[code language="perl"]<br />
#!/usr/bin/perl -w<br />
# zfree.pl es un script que utiliza la lista de diálogo zenity para mostrar<br />
# la información libre en el disco duro<br />
<br />
my @df = qx "df -h";<br />
my $cl = "zenity --list --width=500 --height=280 --title=\"Espacio libre en disco\" --text=\"Espacio utilizado y libre en los discos duros montados\" ";<br />
my @cols = split /\s+/,$df[0];<br />
shift @df;<br />
pop @cols;<br />
foreach(@cols){<br />
$cl .= "--column=\"$_\" ";<br />
}<br />
@cols = (); <br />
foreach (@df){<br />
@cols = split /\s+/;<br />
foreach(@cols){<br />
$cl .= "\"$_\" ";<br />
}<br />
}system $cl;<br />
exit;[/code]<br />
<br />
Hasta el proximo script!Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-72752696563409706102015-09-11T11:48:00.000-07:002016-03-03T04:36:32.213-08:00MAME script (I) - Lanzador de juegos arcade.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDImGiNBTxhta-IGvTb6r7UFofOMp2hKc7tCa5cxg7cDAhHoGcoedFQDX225BDRPCAWM8XnZzYQnBThUICi2uEcc1R0UbDzFDJ93-SUCFXLVhx1t29oLhsi4XSq-XRyxF4twfDJqUzNxcq/s1600/joy2.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDImGiNBTxhta-IGvTb6r7UFofOMp2hKc7tCa5cxg7cDAhHoGcoedFQDX225BDRPCAWM8XnZzYQnBThUICi2uEcc1R0UbDzFDJ93-SUCFXLVhx1t29oLhsi4XSq-XRyxF4twfDJqUzNxcq/s200/joy2.jpg" width="140" /></a>Todos conocemos la plataforma MAME (o Multiple Arcade Machine Emulator), pero ultimamente han desaparecido muchos programas que gestionaban mediante interfaz gŕafica nuestras roms.<br />
Como siempre, marqué como objetivo un script que fuera liviano y para esto utilizé Zenity como interfaz gráfica. Me puse manos a la obra y desarrolle un script muy pequeño que quedó tal que así:<br />
<pre>#!/bin/bash
# MAME script v0.01
# Autor: Esteban C. Sanz
# dependencias: zenity sldmame
DIRECTORIO=~/roms
while : ; do
OUTPUT=$(
for ARCHIVO in `ls $DIRECTORIO/*zip`
do
ROM=`basename $ARCHIVO .zip`
NOMBRE=`sdlmame -ll $ROM | awk -F\" '/\".*\"/ {print $2}' | tr -d "'"`
echo $ROM # Columna "Rom"
echo $NOMBRE # Columna "Juego"
done | zenity --list \
--width=550 \
--height=500 \
--title="Juegos MAME" \
--column="Rom" \
--column="Juego";
)
if [ $? -eq 1 ]; then break; else
sdlmame $DIRECTORIO/$OUTPUT.zip
fi
done</pre>
En la línea 4 pasamos como variable la carpeta conde estan nuestras roms. En mi caso esta ubicada en el raíz de HOME con el nombre "roms" (sin comillas). Cada cual debe de asignar a DIRECTORIO la ruta de la carpeta donde tenga sus roms.<br />
Por ejemplo, si tenemos las roms en <b>HOME/juegos/mame roms/</b> declararemos DIRECTORIO de la siguiente forma: <b>DIRECTORIO=~/juegos/mame roms</b> ¿Facil, no?<br />
Luego lo guardamos como mame_script.sh y le damos permisos de ejecución con:<br />
<pre>chmod +x /ruta del archivo/mame_script.sh</pre>
Ya podemos lanzar nuestras roms ejecutando: /ruta del archivo/mame_script.sh<br />
Les dejo un par de enlaces a las principales páginas para poder descargar sus roms:<br />
<br />
Rom-World.com <a href="http://www.rom-world.com/dl.php?name=MAME" target="_blank">http://www.rom-world.com/dl.php?name=MAME</a><br />
Coolrom.com <a href="http://www.coolrom.com/roms/" target="_blank">http://www.coolrom.com/roms/</a><br />
Un saludo!Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-14737503692023293132015-09-02T04:17:00.000-07:002017-12-19T01:22:32.220-08:00"Radio" - Script para escuchar la radio online.<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaSHu70bgfXY15ar3IPj8PygHxn1A7Yf8P_G76nzD3lXpbuvk3Su6CwAYbkdVn4VteYUP-N7wyxZRIAeHWGe1cheDcK7qZijKzdyPV7MNUxGdpm2nEfOGTwtPd2_i0cyclHWZRDRpNcHJV/s1600/radio.ico" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="128" data-original-width="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaSHu70bgfXY15ar3IPj8PygHxn1A7Yf8P_G76nzD3lXpbuvk3Su6CwAYbkdVn4VteYUP-N7wyxZRIAeHWGe1cheDcK7qZijKzdyPV7MNUxGdpm2nEfOGTwtPd2_i0cyclHWZRDRpNcHJV/s1600/radio.ico" /></a>He creado este pequeño script, como siempre, usando Zenity como interfaz y Mplayer como reproductor (aunque podremos poner otro que se nos ocurra). Las URLs de streaming las he buscado en la red, son las principales radios españolas y alguna que otra emisora on-line.<br />
Dicho esto tendremos instalar dichas dependencias, de lo contrario abrimos nuestro terminar y ejecutaremos la siguiente orden:<br />
<pre>sudo pacman -S zenity mlpayer</pre>
Copiaremos el script en un archivo de texto con Leafpad, Mousepad o similar:<br />
<pre>#!/bin/bash
# Radio 0.2
# Autor: Esteban C. Sanz
# Dependencias: zenity, mplayer
PLAYER=$(which mplayer 2>/dev/null)
function play()
{
clear
echo -e "\n\tPara volver al menu principal, pulse ENTER\n\n";
sleep 2 && "$PLAYER" 2>/dev/null "$1"
}
while : ; do
RADIO=$(zenity --list \
--title="Radio 0.1" \
--column="Emisoras" --width=300 --height=400 \
"Los 40 principales" \
"M80" \
"Cadena SER" \
"Cadena Dial" \
"Europa FM" \
"Hit FM" \
"Máxima FM" \
"Loca FM" \
"IbizaPartyRadio" \
"Ibiza Sonica Radio" \
"Formula Hit" \
"&Radio" \
"FrenchKissFM" \
"Indie Pop Rocks!" \
"FM Absolute 70's Pop" \
"FM Absolute 90's" \
"FM Absolute Pop Latino" \
"FM Absolute Samba" \
)
if [ $? -eq 0 ]; then
case $RADIO in
"Los 40 principales") play "http://10883.live.streamtheworld.com:3690/LOS40AAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"M80") play "http://13413.live.streamtheworld.com:80/M80RADIOAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Cadena SER") play "http://194.169.201.177:8085/liveser.mp3";;
"Cadena Dial") play "http://5293.live.streamtheworld.com:80/CADENADIALAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Europa FM") play "http://stream.irratia.net:8000/;";;
"Hit FM") play "http://hitfm.es.audio1.glb.ipercast.net:8000/hitfm.es/mp3";;
"Máxima FM") play "http://10913.live.streamtheworld.com:80/MAXIMAFM_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Loca FM") play "http://audio-online.net:23500/";;
"IbizaPartyRadio") play "http://listen.radionomy.com/ibiza-party-radio";;
"Ibiza Sonica Radio") play "http://www.ibizasonica.com/html5player/balanceador/sonica.php?file=listen.mp3";;
"Formula Hit") play "http://server1.emitironline.com:9400/formulahit";;
"&Radio") play "http://107.181.225.210:8000/iradio";;
"FrenchKissFM") play "http://stream.frenchkissfm.com:80";;
"Indie Pop Rocks!") play "http://xstream1.somafm.com:8090";;
"FM Absolute 70's Pop") play "http://sc-70s-128kmp3.1.fm";;
"FM Absolute 90's") play "http://sc-90s-128kmp3.1.fm";;
"FM Absolute Pop Latino") play "http://185.33.22.13:10060";;
"FM Absolute Samba") play "http://185.33.22.21:10020";;
esac
else
if [ -z $RADIO ]; then
break
fi
fi
done
</pre>
Hasta aquí la versión 0.2.<br />
He actualizado el script añadiendo nuevas funciones y emisoras. La nueva versión comprueba las dependencias faltantes y las instala en caso de no tenerlas.<br />
<pre>#!/bin/bash
#Radio 0.3
#-----------------------------------------------------------------------
dependencias=(zenity mplayer xdotool)
for item in ${dependencias[*]}
do
if ! (pacman -Q $item >/dev/null); then lista=$lista" "$item; fi
done
USUARIO=`whoami`; if [ -n "$lista" ]; then echo $USUARIO | sudo -S pacman -S $lista --noconfirm; fi
#-----------------------------------------------------------------------
# Comprobamos conexión cada 5 segundos.
until ping -c1 google.com &>/dev/null
do
echo "No hay conexión. Reintentando..."; sleep 5
done
#-----------------------------------------------------------------------
function centrar()
{
w=$(stty size | cut -d" " -f2) # Ancho del terminal
l=${#1} # Longitud del texto
printf "%"$((l+(w-l)/2))"s\n" "$1" # Imprime cadena con el ancho adecuado (%Ws)
}
#-----------------------------------------------------------------------
function play(){
lxterminal -e reset; echo; centrar "$emisora - Para volver al menu principal, pulse ENTER"; echo
sleep 2; xdotool windowminimize $(xdotool getactivewindow) # Minimizamos ventana
"$(which mplayer 2>/dev/null)" 2>/dev/null "$1"
}
#-----------------------------------------------------------------------
reset
while :
do
emisora=$(zenity --list \
--title="Radio 0.3" \
--window-icon=$(dirname $0)/icono.png \
--column="Emisoras" \
--width=300 \
--height=400 \
"Los 40 principales" \
"M80" \
"RockFM" \
"Europa FM" \
"RNE" \
"Radio 3 RNE" \
"Radio 5 RNE" \
"Radio Clásica RNE" \
"Cadena 100" \
"Cadena Dial" \
"Cadena SER" \
"Onda Cero" \
"Cadena COPE" \
"Máxima FM" \
"Hit FM" \
"Loca FM" \
"Canal Sur Radio" \
"Canal Fiesta Radio" \
"Radiolé" \
"IbizaPartyRadio" \
"Ibiza Sonica Radio" \
"Formula Hit" \
"&Radio" \
"FrenchKissFM" \
"Indie Pop Rocks!" \
"FM Absolute 70's Pop" \
"FM Absolute 90's" \
"FM Absolute Pop Latino" \
"FM Absolute Samba" \
)
if [ $? -eq 0 ]
then
case $emisora in
"Los 40 principales") play "http://10883.live.streamtheworld.com:3690/LOS40AAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"M80") play "http://13413.live.streamtheworld.com:80/M80RADIO_SC";;
"RockFM") play "http://195.10.2.97/cope/rockfm.mp3?GKID=204d1d9ed95711e5a5e600163ea2c744&fspref=aHR0cDovL3d3dy55b3VybXV6ZS5mbS9zdGF0aW9uL3JvY2stZm0tZXNwYSVDMyVCMWEtMg%3D%3D";;
"Europa FM") play "http://stream.irratia.net:8000/;";;
"RNE") play "http://195.55.74.205/rtve/radio1.mp3?GKID=579a4c1ed95b11e5a9f500163e914f69";;
"Radio 3 RNE") play "http://195.55.74.208/rtve/radio3.mp3?GKID=8e10a39cd95b11e5a5e600163ea2c744";;
"Radio 5 RNE") play "http://195.55.74.208/rtve/radio5.mp3";;
"Radio Clásica RNE") play "http://195.55.74.205/rtve/radioclasica.mp3?GKID=c042b29cd95b11e5a9f500163e914f69";;
"Cadena 100") play "http://195.55.74.209/cope/cadena100-low.mp3?GKID=cad2ca84608a11e5a33700163e914f69";;
"Cadena Dial") play "http://5293.live.streamtheworld.com:80/CADENADIALAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Cadena SER") play "http://194.169.201.177:8085/liveser.mp3";;
"Onda Cero") play "http://ns2.streaming-live.es:8005/live";;
"Cadena COPE") play "http://195.10.2.95/copesedes/madrid.mp3";;
"Máxima FM") play "http://10913.live.streamtheworld.com:80/MAXIMAFM_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"Hit FM") play "http://hitfm.es.audio1.glb.ipercast.net:8000/hitfm.es/mp3";;
"Loca FM") play "http://audio-online.net:23500/";;
"Canal Sur Radio") play "http://195.55.74.212/rtva/canalsurradio_master.mp3?GKID=02dba63460a011e5bb2000163ea2c744";;
"Canal Fiesta Radio") play "http://195.10.10.222/rtva/canalfiestaradio_master.mp3?GKID=a59517f8609f11e5bb2000163ea2c744";;
"Radiolé") play "http://10913.live.streamtheworld.com:3690/RADIOLEAAC_SC?DIST=TuneIn&TGT=TuneIn&gender=f";;
"IbizaPartyRadio") play "http://listen.radionomy.com/ibiza-party-radio";;
"Ibiza Sonica Radio") play "http://www.ibizasonica.com/html5player/balanceador/sonica.php?file=listen.mp3";;
"Formula Hit") play "http://server1.emitironline.com:9400/formulahit";;
"&Radio") play "";;
"FrenchKissFM") play "http://stream.frenchkissfm.com:80";;
"Indie Pop Rocks!") play "";;
"FM Absolute 70's Pop") play "http://sc-70s-128kmp3.1.fm";;
"FM Absolute 90's") play "http://sc-90s-128kmp3.1.fm";;
"FM Absolute Pop Latino") play "http://185.33.22.13:10060";;
"FM Absolute Samba") play "http://185.33.22.21:10020";;
esac
else
if [ -z $emisora ]
then
break
fi
fi
done</pre>
Luego lo guardamos como <b>radio.sh</b> y le damos permisos de ejecución con:<br />
<pre>chmod +x /ruta del archivo/raido.sh</pre>
y listo! ya podremos disfrutar de la música o vuestro programa favorito.<br />
La lista de las puede ampliarse <i><b>con vuestra colaboración!</b></i><br />
Pondré las URLs de streaming que reciba para implementarlas en el script e ir así ampliándolo.<br />
Una vez más, espero que os sirva!<br />
Hasta el próximo post!Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-86105962893312455442015-08-05T10:19:00.000-07:002016-02-25T14:34:59.620-08:00"Update" script para actualizar Arch y derivados de forma automática.En otra entrada publiqué un script para actualizar Arch y derivados de forma semiautomática con interfaz gŕafica. Esta vez tenemos un script que lo automatiza todo (para quienes quieran tenerlo todo actualizado cada vez que se enciende nuestro sistema). Aqui no hay opción de elegir paquetes a actualizar puesto que lo actualizará todo.<br />
Este script corrige el fallo que de vez en cuando aparece en /var/lib/pacman/db.lck, que impide actualizar mediante el gestor de paquetes pacman, así que además podremos despreocuparnos al respecto.<br />
Como siempre copiamos y pegamos en un archivo el siguiente código y lo guardamos. En este caso guárdelo como "update.sh" (sin comillas).<br />
<pre>#!/bin/bash
# Hasta que tengamos conexión comprobamos la misma.
until ping -c1 google.com &>/dev/null
do
echo "No hay conexión. Reintentando en 5 segundos..."
sleep 5
done
usuario=`whoami`
if [ -f "/var/lib/pacman/db.lck" ]; then
echo $usuario | sudo -S rm /var/lib/pacman/db.lck
fi
# Sincronizamos las bases de datos de los paquetes
echo $usuario | sudo -S pacman -Sy
if [ $(pacman -Qqu | wc -l) = "0" ] # Hay actualizaciones?
then
# No hay que actualizar
echo; echo " No hay actualizaciones disponibles."; echo
else
# Actualizamos
echo $usuario | sudo -S pacman -Syu --noconfirm
fi
sleep 5
</pre>A continuación le daremos permisos de ejecución:<br />
<pre>chmod +x /ruta del archivo/update.sh</pre>Movemos el archivo al directorio de sistema con:<br />
<pre>sudo mv /home/usuario/ruta del archivo/update.sh/usr/bin</pre>A partir de este momento se puede ejecutar desde la terminal de sistema escribiendo el comando <b>update</b>, o bien haciendo que se ejecute al inicio de sesión, editando los comandos que se ejecutan en el mismo.<br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com1tag:blogger.com,1999:blog-1431909374442036674.post-68339843734962553362015-06-28T03:06:00.000-07:002016-02-25T14:28:03.778-08:00Script "Aria2 + Zenity" para descarga multiprotocolo.Aria2 es un potente gestor de descargas (para terminal) que permite una gran variedad de protocolos como <strong>HTTP/HTTPS, FTP, BitTorrent y Metalink</strong>. En este caso he creado un simple script para quien lo quiera lanzar con interface gráfica desde Zenity, aunque el progreso de la descarga lo seguiremos viendo en un terminal (si alguien lo implementa y mejora, ahí lo dejo).<br />
Al ejecutarlo nos pedirá que introduzcamos el enlace a descargar (lo copiamos al portapapeles y lo pegamos en el cuadro de diálogo), el script comprobará la existencia de la carpeta "Downloads" dentro de nuestra carpeta de usuario, de no existir la creará, del resto del proceso se encarga aria2 hasta concluir la descarga.<pre>#!/bin/bash
# aria2 script
# Autor: Esteban C. Sanz
function INPUT() {
zenity --entry --title="aria2" --text="Introduce URL:" --width=400
}
if [ -d "~/Downloads/" ]; then
mkdir ~/'Downloads'
fi
while : ; do
URL=`INPUT`
if [ -n "$URL" ] ; then # Si la variable no es null
aria2c $URL
notify-send "Archivo descargado." -t 2000
else
exit 0
fi
done
</pre>Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-45284950578222365032015-06-04T11:58:00.000-07:002016-03-03T03:41:33.156-08:00Usar el GPS del movil sin conexión de datos.<div style="text-align: justify;">
Hace poco vi un vídeo de una aplicación para Android que no usa la tarifa de datos mientras se usa el GPS. Dicha aplicación lo que hace es bajar a nuestro dispositivo el mapa completo del país donde estamos, o del pais al que vamos a viajar, y no va conectandose a internet de manera constante, haciendo uso de la tarifa de datos.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhPcZ9dA3uSXr7IYwNklx1GwBC5oMDdIdl6Ra9QUvbpWLwool3rUexD93m9JZhkTVW05G_wo4ASGa6o9OhMe7TnD72foWEJimRPW1uNA3M9GnlFjKf-1PJJdeXoY_BqCqI5yHgdJPNcJr2/s1600/eng.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhPcZ9dA3uSXr7IYwNklx1GwBC5oMDdIdl6Ra9QUvbpWLwool3rUexD93m9JZhkTVW05G_wo4ASGa6o9OhMe7TnD72foWEJimRPW1uNA3M9GnlFjKf-1PJJdeXoY_BqCqI5yHgdJPNcJr2/s320/eng.png" width="320" /></a></div>
Lo recomendable es que lo instalemos mediante nuestro router wifi ya que los mapas pueden ocupar varios cientos de megas. Una vez instalado no hace uso de los datos puesto que ya esta todo en nuestro terminal. La app en cuestión es <b>MAPS.ME</b> (anteriormente MapsWithMe), disponible en nuestro Play store.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju-NXszvV6liCsboaTX5_nS-kuRWUMAaKH7KrguDzSZgwcQu9CKFUZUAdyx6WlsjIKEnzaNmCoPW1Rnh0SJIi6dBbiNwyuTpzP6T_G8D5Rm4wMoFgGzq7uV1exjBvJMfepBJxEV4YmJaMO/s1600/apple_watch.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju-NXszvV6liCsboaTX5_nS-kuRWUMAaKH7KrguDzSZgwcQu9CKFUZUAdyx6WlsjIKEnzaNmCoPW1Rnh0SJIi6dBbiNwyuTpzP6T_G8D5Rm4wMoFgGzq7uV1exjBvJMfepBJxEV4YmJaMO/s320/apple_watch.png" width="320" /></a></div>
Como ventaja principal destacamos que funciona offline (sin conexión de datos). Es una aplicación indispensable en nuesto móvil o smartwatch. Espero les sea de utilidad.<br />
<br />
<br /></div>
<br />Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-52235568439902920272015-05-12T11:33:00.000-07:002016-02-22T02:10:13.345-08:00Archupdate - Script para actualizar Arch linux y derivados.He escrito un pequeño script para poder actualizar mi sistema cada vez que inicie el equipo. Es válido para Arch linux y todos los derivados del mismo, (yo uso Antergos, pero también funciona en Manjaro). Esta escrito en Bash y haciendo uso de los recursos de Zenity para darle una interfaz gŕafica sencilla y simple.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghlfrn6afTMAmwDpzGwDgWlUMaYOEkSdFQXGTQL7QF_iUSpdTxJivM2LU7-KvUOkM2rSk5zmh1J7jD0_NHSMa2stsPckeszMnf5HYwjAf0Nvo6wWUotWVHNIfXJbilBfmEymwYq9GoV_b/s1600/progreso.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="81" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgghlfrn6afTMAmwDpzGwDgWlUMaYOEkSdFQXGTQL7QF_iUSpdTxJivM2LU7-KvUOkM2rSk5zmh1J7jD0_NHSMa2stsPckeszMnf5HYwjAf0Nvo6wWUotWVHNIfXJbilBfmEymwYq9GoV_b/s320/progreso.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPv_bO_HBPysUCyOBIN0y3NH5AqNKLHA1RBS3n3ezCLFH1qRkBk8GVWYtYOi5Gn27s0jf3jG57XL6KDn1ggS1w8Ze__2dTxbQXyGS3hQrvNa0m3Kx5_wJ7eX-NWN9uuDoQVdjGqLrLHH_2/s1600/lista.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPv_bO_HBPysUCyOBIN0y3NH5AqNKLHA1RBS3n3ezCLFH1qRkBk8GVWYtYOi5Gn27s0jf3jG57XL6KDn1ggS1w8Ze__2dTxbQXyGS3hQrvNa0m3Kx5_wJ7eX-NWN9uuDoQVdjGqLrLHH_2/s200/lista.jpg" width="197" /></a><br />
<br />
Copie y pegue el siguiente código en un fichero de texto y guárdelo con el nombre de archupdate (en minúsculas).<pre>#!/bin/bash
USUARIO=`whoami`
dependencias=(xdotool zenity screenfetch)
for item in ${dependencias[*]}
do
if ! (pacman -Q $item >/dev/null); then lista=$lista" "$item; fi
done
if [ -n "$lista" ]; then echo $USUARIO | sudo -S pacman -S $lista --noconfirm; fi
# Información del sistema
screenfetch
echo ""
# Comprobamos conexión cada 10 segundos.
x=0
until ping -c1 google.com &>/dev/null
do
x=$(( $x + 1 ))
if [ $x = 5 ]; then exit # Al 5º intento salimos
else
echo "No hay conexión. Reintentando..."
sleep 5
fi
done
# Corregimos el fallo de /var/lib/pacman/db.lck
if [ -f "/var/lib/pacman/db.lck" ]; then echo $USUARIO | sudo -S rm /var/lib/pacman/db.lck; fi
# Sincronizamos las bases de datos de los paquetes
echo $USUARIO | sudo -S pacman -Sy
# Si no hay actualizaciones...
NUMERO=$(pacman -Qqu | wc -l)
if [ $NUMERO = "0" ]; then
#sudo pacman -Rs $(pacman -Qtdq) --noconfirm # Eliminar paquetes huerfanos
RED="\033[0;31m"
ENDCOLOR="\033[0m"
echo -e $RED"Sistema actualizado."$ENDCOLOR
sleep 5
exit 0
else
# Ocultar terminal
xdotool windowunmap $(xdotool getactivewindow)
clear
# Mostramos las actualizaciones pendientes.
UPDATELIST=`zenity --list --checklist \
--height=280 \
--width=300 \
--title="Hay "$NUMERO" actualizaciones" \
--column="Sel." \
--column="Paquete" \
--column="Version" \
$(pacman -Qu | awk -F ' ' '{print selected " " $1 " " $2}' selected="TRUE")`;
clear
# Actualizamos los paquetes seleccionados
if [ -n "$UPDATELIST" ]; then
echo $USUARIO | sudo -S \
(
IFS="|"
for word in $UPDATELIST; do
echo "#Actualizando: $word" ;
sudo pacman -S $word --noconfirm
BARRA=$((BARRA+(100/NUMERO)))
echo $BARRA ;
done;
) | \
zenity --progress \
--width=400 \
--height=80 \
--no-cancel \
--title="Instalando actualizaciones" \
--percentage=0 \
--auto-close
fi
fi
</pre>Damos permisos de ejecución con:<br />
<br />
chmod +x /ruta del archivo/archupdate<br />
<br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-24194629423280005022015-05-12T04:20:00.000-07:002016-02-25T14:23:27.682-08:00Reparar claves GPG en Arch linux, Antergos y derivados.Este script automatiza la reparación de las claves GPG. No tiene gran misterio, pero es mas cómodo realizarlo desde un solo comando ya se haga desde la terminal, o llamándolo desde una entrada creada en en el menú. El script tarda un tiempo en llevar su tarea a cabo, aunque no demasiado.<br />
Copie y pegue en un archivo de texto el siguiente código:<pre>#!/bin/bash
sudo rm -R /etc/pacman.d/gnupg
sudo pacman -Scc
sudo pacman -Syy
sudo pacman-key --init
sudo pacman-key --populate archlinux antergos
sudo pacman -S antergos-keyring
sudo pacman -Syu</pre>Una vez hecho esto guardamos como claves y damos permiso con:<pre>chmod +x /ruta del archivo/claves</pre>Una vez mas, espero que les sea útil.<br />
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-73716112921293903192015-05-08T01:56:00.000-07:002016-03-12T09:35:15.456-08:00Youtube video.<div style="text-align: justify;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzKec_BM1JWfkUnz6L3jY_crIbEFaH-MSIvdL3-QtLnTf7WEAY5Obf_7xO2g6biIcj0tnUdQglIoHDVRi463xyrUm3FNx9ISc8uDB1cpjwmbFlHGeis4p6ac0AnZk3V9wVPo6zY68C5kU/s1600/youtube_ios_icon.bmp" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzKec_BM1JWfkUnz6L3jY_crIbEFaH-MSIvdL3-QtLnTf7WEAY5Obf_7xO2g6biIcj0tnUdQglIoHDVRi463xyrUm3FNx9ISc8uDB1cpjwmbFlHGeis4p6ac0AnZk3V9wVPo6zY68C5kU/s200/youtube_ios_icon.bmp" width="110" /></a>Aquí les dejo un pequeño script para descargar contenidos de Youtube, aunque funciona también en otras páginas similares. El script comprobará si tenemos creada la carpeta de descarga "Youtube video" en nuestra carpeta de usuario, para alojar las descargas. De no tenerla, la creará de forma automática.<br />
<br />
Utilizamos youtube-dl y zenity para tal fin. De no tener estos paquetes instalados en el sistema, los instalaremos ejecutando en el terminal:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx1dWaQD2lrDJhekPwnqJugDNDy9VbURbJytqtS6OCwAheHwr5Vzzbp7ahbnkrsEDWE2fWbuueSO8KV8bfU07szilkRmxv3pXk-wLXc8qWn3q3expWbMPcSR9EsWU5K5M7ZuMVLF_jWEF8/s1600/Arch.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx1dWaQD2lrDJhekPwnqJugDNDy9VbURbJytqtS6OCwAheHwr5Vzzbp7ahbnkrsEDWE2fWbuueSO8KV8bfU07szilkRmxv3pXk-wLXc8qWn3q3expWbMPcSR9EsWU5K5M7ZuMVLF_jWEF8/s25/Arch.png" /></a>Para Arch linux, Antergos, Manjaro y derivados:</div><pre>sudo pacman -S youtube-dl zenity</pre><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPDE3bENJahPUUx3JKDhvINE4eZLStT5IXkrPhqzg7MMk07q5joW3dWIOxmt1jBV7RG5ZOSRqbikYHd8hMcsgcOTMu78xoeJ1_CGyDxY6l9I5cNZDY5KkEk8UokwLL12gfBnvsDeQ3pk9R/s1600/Debian.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPDE3bENJahPUUx3JKDhvINE4eZLStT5IXkrPhqzg7MMk07q5joW3dWIOxmt1jBV7RG5ZOSRqbikYHd8hMcsgcOTMu78xoeJ1_CGyDxY6l9I5cNZDY5KkEk8UokwLL12gfBnvsDeQ3pk9R/s25/Debian.png" /></a>Para Debian, Ubuntu y demás derivados:<br />
<pre>sudo su
apt-get install youtube-dl zenity</pre>Para ello solo necesitamos copiar y pegar el siguiente código en un fichero de texto.<br />
<pre>#!/bin/bash
# Youtube mp3
# Autor: Esteban C. Sanz
function INPUT() {
zenity --entry --title="Youtube video" --text="Introduce URL de youtube:" --width=400
}
if [ -d '~/Youtube video/' ]; then
mkdir ~/'Youtube video'
fi
cd ~/'Youtube video'
while : ; do
URL=`INPUT`
if [ -n "$URL" ] ; then # Si la variable no es null
#CARPETA=$(zenity --file-selection --directory);echo $CARPETA
#cd $CARPETA
youtube-dl $URL | zenity --progress --width=400 --height=100 --title="Youtube video" --text "Descargando video. Por favor, espere. Este proceso puede durar varios minutos." --auto-close --pulsate
notify-send "Archivo descargado." -t 2000
else
exit 0
fi
done
</pre>Lo guardamos como youtube-video. Una vez hecho esto, le damos permisos de ejecución con:<br />
<pre>chmod +x /ruta del archivo/youtube-video</pre>Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0tag:blogger.com,1999:blog-1431909374442036674.post-45615861124308957482015-04-15T08:41:00.000-07:002016-03-12T09:44:59.203-08:00Youtube mp3.<div dir="ltr" style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzKec_BM1JWfkUnz6L3jY_crIbEFaH-MSIvdL3-QtLnTf7WEAY5Obf_7xO2g6biIcj0tnUdQglIoHDVRi463xyrUm3FNx9ISc8uDB1cpjwmbFlHGeis4p6ac0AnZk3V9wVPo6zY68C5kU/s1600/youtube_ios_icon.bmp" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxzKec_BM1JWfkUnz6L3jY_crIbEFaH-MSIvdL3-QtLnTf7WEAY5Obf_7xO2g6biIcj0tnUdQglIoHDVRi463xyrUm3FNx9ISc8uDB1cpjwmbFlHGeis4p6ac0AnZk3V9wVPo6zY68C5kU/s200/youtube_ios_icon.bmp" width="130" /></a>Es innegable y cada vez mas frecuente el uso canales "no convencionales" de difusión de contenidos multimedia en portales de vídeo como Youtube, Vimeo y similares. A veces he necesitado el audio de algunos videos y para ello existen herramientas como Youtube-dl que uso frecuentemente en Linux. Aprovechando que youtube-dl esta disponible para la gran mayoria de las distribuciones he escrito un pequeño script para ejecutarlo con interfaz gráfica usando Zenity.</div>
<div dir="ltr">
Para ello solo necesitamos copiar y pegar el siguiente código en un fichero de texto.</div>
<pre>#!/bin/bash
# Youtube mp3
# Autor: Esteban C. Sanz
dependencias=(youtube-dl zenity)
for item in ${dependencias[*]}
do
if ! (pacman -Q $item >/dev/null); then lista=$lista" "$item; fi
done
if [ -n "$lista" ]; then echo $(whoami) | sudo -S pacman -S $lista --noconfirm; fi
if test ! -s ~/Música/'Youtube mp3' 2>/dev/null; then mkdir -p ~/Música/'Youtube mp3'; fi
while : ; do
URL=$(zenity --entry --title="Youtube mp3" --text="Introduce URL de youtube:" --width=400)
if [ -n "$URL" ]
then # Si la variable no es null
youtube-dl -o "~/Música/Youtube mp3/%(title)s.%(ext)s" -x --audio-format mp3 $URL | \
zenity --progress \
--width=400 \
--height=100 \
--title="Youtube mp3" \
--text="Descargando audio. Por favor, espere. Este proceso puede durar varios minutos." \
--auto-close \
--pulsate
notify-send "Archivo descargado." -t 2000
else
exit 0
fi
done
</pre>
<div dir="ltr">
Lo guardamos como youtube-mp3. Una vez hecho esto, le damos permisos de ejecución con:</div>
<div dir="ltr">
<pre>chmod +x /ruta del archivo/youtube-mp3</pre>
</div>
Anonymoushttp://www.blogger.com/profile/09288626935656924117noreply@blogger.com0