miércoles, 30 de septiembre de 2015

Usar una segunda pantalla en i3 wm

VGA
Si eres programador sabrás lo útil que es utilizar una segunda pantalla para trabajar. Todos los sistemas operativos son capaces de gestionar y configurar esta característica fácilmente. Pero si utilizas un window manager como i3 también sabrás que no existe un interfaz gráfico para configurarlo y hay que usar el terminal. Vamos a ver cómo configurarlo utilizando como ejemplo una conexión por VGA.
Lo primero que tenemos que hacer es conectar la segunda pantalla (monitor) a nuestro pc y a continuación ejecutar en el terminal ésto:

xrandr

Con ello veremos los monitores conectados a nuestro PC. La salida en mi caso fue la siguiente:
Screen 0: minimum 8 x 8, current 2560 x 1024, maximum 32767 x 32767
LVDS1 connected primary 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x800      59.94*+
   1024x768      60.00  
   800x600       60.32    56.25  
   640x480       59.94  
   640x400       60.00  
VGA1 connected 1280x1024+1280+0 (normal left inverted right x axis y axis) 338mm x 270mm
   1280x1024     60.02*+  75.02  
   1152x864      75.00  
   1024x768      75.08    75.03    60.00  
   832x624       74.55  
   800x600       75.00    60.32  
   640x480       75.00    60.00  
   720x400       70.08  
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

De modo que deberemos ejecutar lo siguiente desde el terminal para que funcionen ambos monitores:
xrandr --output LVDS1 --mode 1280x800; xrandr --output VGA1 --mode 1280x1024 --right-of LVDS1

Lo que se hace es definir el mode o resolución de cada monitor y además, señalamos que el segundo monitor (VGA1) lo queremos poner a la derecha del principal (LVDS1). En base a la instrucción anterior podemos crear un script, que llevará el siguiente código:
#!/bin/bash
IN="LVDS1"
EXT="VGA1"
if (xrandr | grep "$EXT disconnected")
then
    xrandr --output $IN --auto --output $EXT --off
else
    xrandr --output $IN --auto --primary --output $EXT --auto --right-of $IN
fi

Aquí comprobamos si el segundo monitor está conectado o no. Si no está conectado, lo deshabilitamos. Si está conectado, lo ponemos a la derecha del principal, como hicimos anteriormente. Además, utilizamos –auto para que se configure el mode de forma automática.
Si queremos que el script se ejecute cada vez que iniciemos sesión en el window manager i3, solamente tenemos que añadir la siguiente línea al final del archivo config que se encuentra en la carpeta .i3 (normalmente ~/.i3) y que se encargará de llamar al script que hemos creado.
exec --no-startup-id ~/ruta_script/nombre_script.sh

Espero que os haya sido útil. Si tenéis alguna duda, podéis utilizar los comentarios.


Fuentes

https://wiki.archlinux.org/index.php/Xrandr
http://www.x.org/archive/X11R7.5/doc/man/man1/xrandr.1.html




martes, 29 de septiembre de 2015

Exportar notas de Kindle en Linux

Kindle
Los que tengáis el lector de libros electrónicos Kindle seguramente sabréis cómo gestiona las notas de vuestros libros y documentos. En la memoria interna hay una carpeta llamada documents y dentro hay un archivo llamado My Clippings.txt que es el que guarda todas las notas, subrayados y marcas que hagamos en nuestros documentos, ordenados cronológicamente. Por ejemplo:

==========
blogs_2015.07.26 
- Tu subrayado en la posición 3115-3116 | Añadido el lunes, 3 de agosto de 2015 23:57:42

GitHub lanza la primera edición estable de su editor Atom | La mirada del replicante
==========
blogs_20150817_2121
- Tu subrayado en la posición 42-42 | Añadido el sábado, 22 de agosto de 2015 16:27:23

Tails 1.5
==========
La conjura de los necios (John Kennedy Toole)
- Tu marcador en la posición 2179 | Añadido el domingo, 30 de agosto de 2015 8:35:45
==========
La conjura de los necios (John Kennedy Toole)
- Tu marcador en la posición 2236 | Añadido el domingo, 30 de agosto de 2015 23:57:49
==========

Si queremos exportar nuestras notas, lo que podemos hacer es conectar mediante USB nuestro Kindle y copiar donde deseemos el archivo My Clippings.txt . ¿Cual es el problema?, que todas esas notas y subrados de nuestros libros están mezclados, de modo que no podemos exportar únicamente las notas de un determinado libro. Claro, se podría hacer a mano, copiando y pegando pero sería un proceso de lo más tedioso. Por eso vamos a explicar cómo hacerlo rápidamente utilizando el terminal Linux y en concreto el comando sed. Ya vimos en el post Reemplazar texto de varios archivos en Linux el uso de este comando pero en esta ocasión no reemplazaremos texto sino que lo redireccionaremos a un nuevo archivo.
Veamos:
sed -n '/La conjura de los necios/,/==========/p' My\ Clippings.txt > La conjura de los necios

Ésto lo que hará será copiar todas las subcadenas entre La conjura de los necios y ========== y las copiará a un archivo llamado La conjura de los necios. Ésta sería la idea básica, pero existe un pequeño escollo que salvar, que es el caso de que la cadena de entrada tenga espacios en blanco. En el siguiente script se soluciona:
#!/bin/bash
read -r -p "Indica el nombre (o parte del nombre) del libro:" archivo
busqueda=$(echo"$archivo" | sed 's/ /\\ /g')
sed -n '/'"$busqueda"'/,/==========/p' My\ Clippings.txt > $archivo.txt
echo"Creado el archivo "$archivo.txt

La línea busqueda=$(echo “$archivo” | sed ‘s/ /\ /g’) del script lo que hace es sustituir los espacios en blanco de la cadena de entrada y los sustituye por barra invertida y espacio en blanco. Ésto se hace así para que la búsqueda con sed se haga correctamente en caso de que la cadena de entrada tenga espacios en blanco, como pasa con La conjura de los necios.

Nota: La búsqueda es sensible a mayúsculas y minúsculas.
Espero que os sea útil. Podéis utilizar los comentarios para aclarar cualquier duda.


Fuentes:

http://linux.die.net/man/1/sed
http://stackoverflow.com/questions/2462385/getting-an-ambiguous-redirect-error




lunes, 28 de septiembre de 2015

CMUS: Reproductor de audio desde el terminal Linux

cmus headphones

Cmus es probablemente el reproductor musical más conocido dentro de los que se ejecutan desde el terminal. Aunque haya gente a la que las aplicaciones de terminal no le agraden demasiado, pienso que Cmus merece una oportunidad: por su poco consumo de recursos, por la facilidad para configurarlo a nuestro gusto y porque se puede controlar utilizando únicamente el teclado. Si estás familiarizado con el editor Vi, utilizar Cmus te resultará sencillo, ya que se utilizan comandos muy parecidos.


Instalación

Desde Debian/Ubuntu:
sudo add-apt-repository ppa:jmuc/cmus
sudo apt-get update
sudo apt-get install cmus

Desde Arch Linux y derivados:
sudo pacman -S cmus



Vistas

La aplicación se divide en varias vistas o pantallas. Podemos cambiar a cada una de ellas pulsando su número correspondiente:
1. Librería: Es la vista por defecto. Se divide en dos pestañas: album/artista y canciones del álbum seleccionado. Podemos pasar de una a otra pulsando la tecla tab.
2. Librería ordenada: Muestra la vista de playlist, permitiendo saltar a canciones (o tracks) específicos. Ésta lista puede ser filtrada utilizando la vista 6.
3. Lista de reproducción.
4. Cola de reproducción.
5. Navegador de archivos.
6. Filtros: Se trata de una lista de filtros predefinidos para aplicar a la librería (vista 2).
7. Configuración Muestra los comandos y las teclas rápidas.


Uso básico

Lo primero que debemos hacer es añadir nuestra música a la librería. Se puede hacer mediante el siguiente comando:
add: /ruta/de/audio

Ejemplo:
add: ~/mi_musica

Para reproducir una canción simplemente nos situamos sobre ella y pulsamos intro. Sabremos desde qué vista se está reproduciendo la canción mirando en la parte inferior derecha, en la que se indicará playlist, queue, all library … 




Los controles básicos de reproducción son los siguientes:
  • z: Canción Anterior
  • c: Pause/Unpause
  • v: Stop
  • b: Siguiente canción
  • + / - :: Subir / bajar volumen
También pueden resultar útiles las siguientes teclas:
  • e: Añadir canción/álbum a la cola
  • y: Añadir canción/álbum a la lista
  • p, P: Ordenar la canción dentro de la cola o la lista
  • Supr: Eliminar canción/álbum de la cola ó lista
Si queremos vaciar una la lista de reproducción o la cola de reproducción, nos colocamos en la vista correspondiente y escribimos lo siguiente:
:clear



Busqueda de una canción

En la segunda vista podemos saltar a una canción usando el caracter / , para ello hay que escribir parte del título de la canción (al estilo Vi) y pulsar intro dos veces para reproducirla. O podemos pulsar n para pasar a la siguiente ocurrencia (también al estilo Vi).



Customización de la vista lista ordenada

Podemos filtrar las canciones para que sólo se muestren las de duración menor a dos minutos mediante:
:filter duration<120

O que sólo se muestren los de un estilo en concreto:
:filter genre=”rock”

Para combinar ambos filtros:
:filter duration<120 amp="" genre="”rock”</code">

Podemos anular cualquier filtro mediante:
:filter



Cmus tiene muchas más características de las que aquí se citan y que te animo a que vayas descubriendo conforme vayas utilizándolo, si así lo deseas. 



Fuentes

http://www.increasinglyadequate.com/cmus.html
http://linux.die.net/man/1/cmus




Felinfo: Java, Linux, Virtualización. Open Source.  ©Template Blogger Green by Dicas Blogger .

TOPO