Vim: mostrar barra de %

Hace unos días que instalé debian 9 y vim no tenía el comportamiento que me gustaba, en un post anterior expliqué como sacar por ejemplo el modo mouse que al seleccionar te activaba el mode visual.

Hace días quise activar la barra de % de lectura del fichero y también el nombre del fichero, pero no conseguía que se aplicase la configuración y tenía que usar el set ruler cada vez que abría el fichero. Hoy porfin en el mismo fichero que editábamos en el post referenciado, se me ha ocurrido comentar una línea

# vi /usr/share/vim/vim80/defaults.vim
set history=200         " keep 200 lines of command line history
set ruler               " show the cursor position all the time
set showcmd             " display incomplete commands
"set wildmenu           " display completion matches in a status line

El set wildmenu era el que no me permitía que apareciese el ruler por defecto.

Addicionalmente, la barra inferior, me gusta tenerla de color blanco para que se diferencie del fondo negro con el que suelo trabajar, para ello modifico el fichero de configuración de /etc/vim/vimrc y al final añado lo siguiente

# vi /etc/vim/vimrc
set modeline
set ls=2
set nopaste
set noeb vb t_vb=

Y listos! :)…

LXC: Montar un directorio del host en un contenedor

Ésto hace tiempo lo documenté para openvz, pero con lxc cambia un poco la cosa. Voy a saco y pongo lo que se tiene que hacer hehe

Montas el punto de montaje que quieres, en mi caso estoy montando un dav con davfs2 (apt-get install davfs2) en el host en un punto de montaje:

# mkdir /mnt/dav_capa8
# mount -t davfs -o gid=www-data,uid=www-data https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/

Previamente he puesto las credenciales en /etc/davfs2/secrets del acceso al webdav

y luego así se lo paso al contenedor:

# pct set 102 -mp0 /mnt/dav_capa8,mp=/mnt/dav_capa8

Reinicio el contenedor y el nuevo mountpoint ya está accesible

Sólo me falta comprobar si el usuario www-data que es quien tiene que escribir en éste punto de montaje tiene permisos suficientes.

Para que se monte el davfs al iniciar el sistema, editaremos el fichero /etc/fstab y la última línea:

# vi /etc/fstab
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/sdb1 /var/lib/vz2 ext4 defaults 0 0
https://cloud.capa8.net/remote.php/webdav/ /mnt/dav_capa8/ davfs noauto,user 0  0

Convertir pdf a jpg

Normalmente cuando tengo que editar un pdf lo abro con inkscape, pero esta vez me encuentro un pdf que son unos planos y la conversión con inkscape se lo toma con la calmísima, así que total como sólo necesito una imagen, voy a convertir el contenido del pdf a imagen y me ahorro varias horas de espera…

¿Cómo?

# convert -verbose -density 150 -trim plano.pdf -quality 100 -flatten -sharpen 0x1.0 plano.jpg

Ahora a cargarlos en el inkscape como imagen y a redimensionar a mi gusto :)

EOF…

dlna: cliente en debian (sólo audio)

Ya empezamos con las abreviaciones estas tan odiosas que usamos los informáticos, pues DLNA es una cosa que poco a poco van teniendo cada vez mas televisores y proyectores y uno de los primeros dispositivos que lo usó fue el chromecast de google, quien tenga alguno sabrá la maravilla que es éste servicio.

En pocas palabras sirve para mandar contenidos multimedia entre dispositivos, por ejemplo vídeos y audios.

La forma que hasta el momento he usado es el uso de una extensión de chrome para streamear al chromecast, me permite reproducir pestañas del navegador en el televisor, pero también youtube y netflix si detectan que hay un dispositivo dlna me da la opción de mandar el contenido al chromecast. Con el móvil android mas de lo mismo.
En resumen que puedo ver y escuchar lo que tengo en el portátil y en el móvil en el televisor y mi móvil pasa a ser otro mando de mi televisor. Vamos que chromecast es uno de los culpables porque mi tonto televisor tenga mucha guerra y una nueva vida :) -lo de usar el televisor para ver la TDT es agua pasada!-

Hace unos meses me percaté que dlna no era una cosa exclusiva de chromecast, sino que estaba cada vez mas en televisores e incluso proyectores. Así que me olí algún tipo de estandarización y efectivamente, dlna son las siglas de digital living network alliance, algo muy similar a lo que usan ya nuestras impresoras con el upnp. Empecé a buscar …

El tiempo en la consola

Navegando por las redes sociales me he encontrado una entrada curiosa:

Brutal alias per tenir el temps a la consola:
alias weather='curl -s wttr.in | sed -n "1,7p"'

Así que me he puesto a jugar :P la ciudad por defecto que me detecta es Madrid, pero no me gusta esta geolocalización:

$ curl -s wttr.in/Barcelona | sed -n "1,7p"
Weather for City: Barcelona, Spain

    \  /       Partly cloudy
  _ /"".-.     14 – 15 °C     
    \_(   ).   ↖ 11 km/h      
    /(___(__)  10 km          
               0.0 mm 

Además lo quiero en otro idioma que no sea inglés (en catalán no se deja, snif):

$ curl -H "Accept-Language: es" -s wttr.in/Barcelona | sed -n "1,7p"
El tiempo en: Barcelona, Spain

    \  /       Parcialmente nublado
  _ /"".-.     14 – 15 °C     
    \_(   ).   ↖ 11 km/h      
    /(___(__)  10 km          
               0.0 mm 

En ésta cuenta de twitter hay mas información sobre ésta página.

Tontería del día :)…

Vim en debian 9 al seleccionar se pone en modo visual

Poco a poco se acerca la fecha de lanzamiento de debian 9, en algunos sistemas ya estoy instalando debian 9 en previsión de que algún dia será la estable, pero me estoy encontrando con una cosa muy incomoda, y es que al seleccionar texto se me pone en modo visual y al no enterarme empiezo a liarla.

Para hacer que vim vuelva a tener un comportamiento esperado tenemos que modificar los parámetros por defecto de vim en /usr/share/vim/vim80/defaults.vim. El motivo de éste comportamiento es que detecta el uso del ratón.

Para volver a al comportamiento esperado, simplemente comentaremos las líneas que hacen referencia a éste comportamiento:

# vi /usr/share/vim/vim80/defaults.vim
" In many terminal emulators the mouse works just fine.  By enabling it you
" can position the cursor, Visually select and scroll with the mouse.
" if has('mouse')
"  set mouse=a
" endif

Guardamos y salimos. La próxima vez que abramos vim va a tener el comportamiento esperado, almenos con esto… si hay algún otro comportamiento raro, simplemente miramos como está configurado éste fichero en una versión antigua de debian y lo modificamos en éste fichero.…

ssmtp: mandar mails con un smtp externo rápido y fácil!

Que si exim, que si sendmail, que si la madre que los parió! configuraciones con ficheros de configuración quilométricos e inentendibles! llega la solución a vuestros problemas! ssmtp! rápido, sencillo y apto para cualquier administrador de sistemas, además que dispone de un fichero de configuración hyper corto!

Empezamos pues

# apt-get install ssmtp

Esto te va a borrar cualquier software que tengas de envío de correos electrónicos en el sistema.

Modificamos el fichero de configuración

# vi /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=nombre@dominio.com

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=SERVIDOR_SMTP
AuthUser=USUARIO
AuthPass=PASSWORD
UseTLS=YES
UseSTARTTLS=YES
# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=NOMBRESERVIDOR.DOMINIO.COM

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

Cerramos el fichero de configuración y listos (si, no hay nisiquiera servicio a reiniciar ni aplicar configuraciones!)

# echo "hola" | mail -s "test" admin@dominio.com
# mutt -a /var/log/backups/Backup_XXX-20161010.log -- admin@dominio.com

Lo primero a lo cutre y lo segundo adjuntando un mail.

Fuente: stackexchange

Notas:
Me he encontrado usando un servidor de correo que no me permitía mandar correos electrónicos si no le definía correctamente el from, para ello tendremos que modificar el fichero /etc/ssmtp/revaliases y dejarlo así:

root:info@xxx.cat:mail.xxx.cat

Luego si vamos a usar mutt en el crontab para mandar mails también se lo definimos

0  4    * * *   root /root/scripts/xxx-owncloud.sh /var/log/backups/Backup_xxx_cloud-$(date "+\%Y\%m\%d").log && mutt -a /var/log/backups/Backup_xxx_cloud-$(date "+\%Y\%m\%d.log") -e 'my_hdr From:info@xxx.cat' -s "[Backup-xxxCloud] xxx Cloud" -- info@xxx.cat

Ver el estado de la bateria por comandline

laura@carboni:~$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
    state:               discharging
    percentage:          37%
laura@carboni:~$ upower -i $(upower -e | grep 'BAT') | grep -E "state|to\ full|percentage"
    state:               charging
    time to full:        3,0 hours
    percentage:          36%

otra forma

laura@carboni:~$ acpi -V
Battery 0: Charging, 38%, 01:03:31 until charged
Battery 0: design capacity 5266 mAh, last full capacity 4733 mAh = 89%
Adapter 0: on-line
Thermal 0: ok, 53.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 103.0 degrees C
Cooling 0: x86_pkg_temp no state information available
Cooling 1: intel_powerclamp no state information available
Cooling 2: Processor 0 of 10
Cooling 3: Processor 0 of 10
Cooling 4: Processor 0 of 10
Cooling 5: Processor 0 of 10

Añadir fecha en el history

Modificamos el fichero .bashrc y al final añadimos lo siguiente

export HISTTIMEFORMAT="%h/%d - %H:%M:%S "

Hacemos logout y volvemos a hacer login y al escribir history éste es el resultado:

root@tesla-lists:~# history
 1778  Sep/22 - 22:15:41 w
 1779  Sep/22 - 22:15:41 last
 1780  Sep/22 - 22:15:41 w
 1781  Sep/22 - 22:15:41 history
 1782  Sep/22 - 22:15:41 vi .bashrc 
 1783  Sep/22 - 22:15:43 history

Arreglar el widget del tiempo de mate

Los usuarios del sistema de escritorio mate os habréis encontrado que ya hace unos días que el widget del tiempo no devuelve datos, el motivo de ello es que la página web de dónde se recolectaban los datos (weather.noaa.gov) ha dejado de funcionar. Para ello la solución es modificar la librería.

El código que hay en github puede requerir versiones de dependencias mas nuevas que las que hay en nuestro sistema, así que una de las soluciones es descargarnos el código de la versión que tenemos instalada en nuestro sistema.
Para no guarrear mucho mi sistema voy a descargarme el código en una maquina virtual (con la misma versión de sistema operativo que en mi portátil), instalar las dependencias necesarias para compilar la librería, descargar el código y modificar la librería, compilar la librería y finalmente copiar el fichero resultante a mi sistema.…