xinput: Reducir la velocidad del ratón en Linux

Probablemente, cuando te compras un ratón nuevo, como éste, puede ser que notes que va más lento o más rápido que lo que estabas acostumbrado a tu anterior ratón. Esto puede no parecer un problema, porque no hay más que ir a la sección de Ratón del panel de control y asunto arreglado: se reduce la velocidad.

Pero, no siempre esta es la mejor solución. Planteemos por ejemplo una situación muy común: usar un portátil. Aquí es probable que con frecuencia nos apañemos con el trackpad (o touchpad, o panel táctil). Pero si la diferencia de velocidad es muy grande con respecto al nuevo ratón que conectamos por bluetooth o por USB, se puede hacer incómodo: ajustaremos por ejemplo la nueva velocidad para que nuestro ratón USB vaya más rápido, pero por ejemplo notaremos que el trackpad va innecesariamente rápido.

Bueno, pues para solucionar esto podemos recurrir a herramientas de las X.org, en concreto una para manejar los métodos de entrada y que se llama xinput. Nos permitirá ajustar muchos parámetros de forma individual a cada dispositivo de entrada (Ratones, trackpads o incluso teclados).

Si ejecutamos el comando xinput nos salen todos los dispositivos que tenemos conectados, tanto los físicos como los virtuales.

cambiadeso@cambiadeso.es ~ $ xinput
⎡ Virtual core pointer                  id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer        id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. 2.4G Wireless Mouse  id=10    [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer    id=12    [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad          id=15    [slave  pointer  (2)]
⎣ Virtual core keyboard                 id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard       id=5    [slave  keyboard (3)]
    ↳ Power Button                      id=6    [slave  keyboard (3)]
    ↳ Video Bus                         id=7    [slave  keyboard (3)]
    ↳ Video Bus                         id=8    [slave  keyboard (3)]
    ↳ Sleep Button                      id=9    [slave  keyboard (3)]
    ↳ USB Camera                        id=11    [slave  keyboard (3)]
    ↳ Asus WMI hotkeys                  id=13    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard      id=14    [slave  keyboard (3)]

Buscaremos el dispositivo que más se parezca a lo que necesitamos. En mi caso, estoy tratando de ajustar un ratón inalámbrico, así que parece que la opción con id=10 es razonable que sea la que me interese.

Aquí ahora podremos jugar con las propiedades, que es lo que nos interesa. Podremos mostrarlas todas con el comando

xinput list-props <nombre o id del dispositivo>
Un recorte del comando xinput que muestra todas las propiedades del ratón o método de entrada.
Un recorte del comando xinput que muestra todas las propiedades del ratón o método de entrada.

En nuestro caso, nos interesa la propiedad Device Accel Constant Deceleration, y que, en mi caso, he ajustado de la siguiente manera:

xinput set-prop <id o nombre del dispositivo> <id o nombre de la propiedad> <valor

Te invito a probar distintas combinaciones o probar con otras propiedades, para ver si hay alguna otra configuración que te guste más.

Archivo .xsessionrc mostrando el comando xinput que mejor se adapta
Archivo .xsessionrc mostrando el comando xinput que mejor se adapta

Aquí no acaba la cosa. Bueno, acaba hasta que apaguemos el equipo, ya que al volver a iniciar sesión estos cambios se habrán ido, y entonces, tendremos dos opciones: Ejecutar el comando de arriba siempre, o que se ejecute solo (sin enterarnos) al iniciar sesión.

Si optáis por la segunda, la solución es fácil. Consiste en añadir al fichero /home/usuario/.xsessionrc el comando anterior de xinput que nos funciona. Simplemente hay que ejecutar

gedit ~/.xsessionrc

y en la pantalla que nos salga, copiar el comando xinput con las opciones que se ajustan a lo que necesitamos al final del archivo. Es bastante probable que esté vacío, no te asustes porque es normal. En la última foto podéis ver el resultado.

Nota: El ratón en cuestión del que habla el artículo era un HP X3000. Sin embargo, aprovecho este espacio para decir que después de un año y pico, la rueda del scroll dejó de funcionar. En dicho tiempo me puse en contacto con el servicio técnico de HP y me lo solucionaron que da gusto. Tengo uno nuevo, sin coste extra.

Visto en | Patrickmn | LinuxMint User

MySQL: Añadir usuarios a una base de datos con SQL

Puede pasar, y de hecho, seguramente ocurra de forma habitual, que necesites instalar una aplicación en tu servidor web que pida una conexión con tu base de datos MySQL. Lo más lógico es crear una base de datos y un usuario aislados, con los permisos justos. Si dispones de PhpMyAdmin, no hay problema, se pueden añadir usuarios sin ninguna dificultad.

El problema es que ahora mismo, esto que estáis leyendo está alojado en un servidor virtual, que tiene los recursos que tiene, lo justito para que funcione y ya, y para no sobrecargarlo, he decidido no instalar PhpMyAdmin, y realizar todas las operaciones necesarias con la base de datos a pelo, con la consola SQL.

Para estos ejemplos crearé el usuario wordpress con la contraseña pass y la base de datos blog. Sólo necesitarás cambiar estos parámetros por los tuyos. Empezemos:

Lo primero que vamos a necesitar es acceder a la consola SQL. Lo más probable es que estés utilizando MySQL, así que nos podemos conectar de esta forma. Necesitaremos saber, eso sí, la contraseña para el usuario root.

mysql -u root -p

Si nos conectamos a una base de datos remota, necesitaremos dar la dirección del servidor MySQL con el parámetro «-h 0.0.0.0:3306», cambiando la ip o el puerto por lo que corresponda.

Salida en pantalla de una base de datos MySQL recién instalada
Bases de datos de MySQL recién instalada.

Ahora crearemos la base de datos:

CREATE DATABASE blog;

Ahora ya podremos crear el usuario que queremos y sólo con los permisos necesarios en esa base de datos:

CREATE USER wordpress@localhost IDENTIFIED BY 'pass';
GRANT ALL ON blog.* TO wordpress@localhost;

Si queremos, podremos comprobar que hemos creado correctamente la base de datos y el usuario mostrando todos los datos:

SHOW DATABASES; /* Muestra todas las bases de datos */
SELECT user FROM mysql.user; /* Muestra todos los usuarios *

Saludos 😉

Oracle MySQL trademark Logo: http://www.mysql.com/

OpenSuse Leap 42.1: Instalar driver propietario Nvidia Geforce 635M con Bumblebee

Lo primero, no hay necesidad de alarmarse. OpenSuse funciona realmente bien sin el controlador oficial de Nvidia: los drivers nouveau que vienen por defecto parecen hacer su función correctamente. Por esta razón, dirijo el post hacia aquellos que necesitan que su ordenador tire de la gráfica dedicada, como por ejemplo, para jugar.

Keep Calm and Install Nvidia Driver
Por favor, instalen el driver Nvidia para OpenSuse de forma ordenada y tranquila

La instalación la estoy realizando en un portátil con una tarjeta gráfica Nvidia Geforce GT 635M, que no es que sea la mejor que existe, pero tira aceptablemente bien cuando se lo «pido». El SO que utiliza es  OpenSuse Leap 42.1.

Es importante saber si se va a instalar en un hardware que soporta «Nvidia Optimus», que es algo así como para que permita apagar o encender la tarjeta gráfica en función de cuando se necesite. El proceso es distinto de si tienes dicho soporte o no, que suele aparecer en portátiles. Yo personalmente no lo he visto nunca en un ordenador de sobremesa. Continuar leyendo «OpenSuse Leap 42.1: Instalar driver propietario Nvidia Geforce 635M con Bumblebee»

Raspberry Pi: Hacer que el WiFi funcione con el firmware ZyDAS ZD1211B

Recientemente desempolvé mi Raspberry Pi B (la antigua, antigua, con 256Mb de RAM) y decidí instalarle XBMC, bueno, más concretamente, Kodi, ya que no hace demasiado tiempo el proyecto cambió de nombre, y sí, la distribución pensada para Media center, como era Raspbmc desapareció para dejar paso a OSMC, que también se encuentra basada en Debian (o más exactamente Raspbian).

Y como no podía ser de otra forma, los cambios siempre llevan a otros cambios, ya sean buenos o malos. En este caso, la sorpresa me la llevé cuando intenté usar el mismo WiFi USB que utilicé para el manual de Raspbmc en OSMC: al enchufarlo al aparato ni flores.

¡Ay los drivers! ¡Esos dichosos drivers! ¿Qué habrá pasado para que no lo incluyan por defecto en OSMC? Ni idea, pero seguro que tiene algo que ver que no es un driver libre. El adaptador WiFi es de la marca Zaapa (o ZAAPA, no sé como se escribe) aunque no tengo la información sobre el modelo. ¿Cómo averiguar más?. En la consola, con el siguiente comando (lsusb) puedes ver toda la información sobre los dispositivos que tengas enchufados por USB al ordenador. Lo primero que he hecho ha sido conectarme por ssh a la raspberry teniéndola enchufada al ethernet.

usuario@maquina_local ~ $ ssh osmc@192.168.1.10
 ...
osmc@osmc:~$ lsusb
 ...
 Bus 001 Device 005: ID 0ace:1215 ZyDAS ZD1211B 802.11g
 Bus 001 Device 006: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
 ...

NOTA: Si no te funciona el comando lsusb, quizás es porque no tengas  instalado el paquete usbutils. Escribe en la consola: ‘sudo apt-get update && sudo apt-get install usbutils’.

Tras investigar en Internet, encontré que, afortunadamente, Debian tenía empaquetado el driver (aunque fuera en el repo non-free) en los repositorios, facilitándonos la vida para instalarlo. De esta forma, se reduce a instalar un paquete:

$ sudo apt-get update && sudo apt-get install firmware-zd1211

Fuente | omer.me | E-Linux | Debian (ARM)

Actualización del código para extraer las fuentes de Google Fonts

No, no tiene mucho que ver con que Google haya mudado el repositorio de las fuentes a Github, pero me recordó que el script para extraer los .ttf lo tenía bastante olvidado. Así que lo he mejorado un poquillo y lo he convertido a Python 3. No debería daros muchos problemas para ejecutarlo.

webfonts2Lo primero que os pedirá es que le metáis una ruta del repositorio, es decir, primero necesitáis descargaros el repositorio de Github

git clone https://github.com/google/fonts.git

y después ejecutar el script*. Esta nueva versión permite extraerlo directamente a la carpeta .fonts/, para así tener todas las fuentes disponibles nada más arrancar un programa.

Para descargar el script: Lo tenéis como Gist o como archivo

* Si os diera fallo al ejecutar, es posible que no tenga permisos de ejecución. Para dárselos: o bien botón derecho->propiedades->permisos->permisos de ejecución o bien:

$ chmod +x extractttf3.py
./extractttf3.py

para darle permisos de ejecución y ejecutarlo directamente

Espero que lo disfrutéis 😉

VirtualBox: Hacer que tu máquina virtual parezca un ordenador más en tu red local

Cuando quieres desarrollar una aplicación web no hay nada mejor que ir haciendo pruebas en una máquina virtual antes de tirarte a la piscina de adquirir una máquina remota y montar tu máquina allí.

VirtualBox ofrece una muy buena forma de realizar esta acción, aunque a veces nos puede costar un poco el acceso a la red, tanto para usar con ssh o cuando quieres ver el funcionamiento final en el servidor.

Yo lo he estado intentando con Django y Gunicorn y me he quebrado la cabeza buscando una solución. Al final encontré dos, una más sencilla que la otra. red natLa primera (un poco más complicada) es seguir usando NAT y «mapear» los puertos que queramos usar, de tal modo que podemos hacer que el anfitrión cuando pida el puerto 3022 virtualBox lo interprete como que la máquina invitado debe buscar el puerto 22. De esta forma podremos acceder a ssh en nuestra máquina haciendo

ssh -p 3022 user@127.0.0.1

adaptadorpuenrte
La otra opción que yo encuentro más sencilla es usar lo que se llama «Adaptador Puente», que simplemente pide al router una dirección. Es decir, en mi caso, si hago en la máquina invitada «ifconfig» obtengo la ip 192.168.1.10 (asignada por mi router). De la forma anterior obtendría una ip de intranet (10.x.x.x). Así al final podríamos acceder a ssh con un

ssh user@192.168.1.10

Que queda mucho más natural.

Y si estás trabajando con algún servicio que publique una web, como nginx, apache o gunicorn (para python wgsi, django…) seguramente te haga falta bindear a una dirección. Yo por ejemplo he necesitado lanzar gunicorn con la opción «-b 192.168.1.10:8000» para poder acceder desde mi ordenador normal.

Saludos 😉

Enlaces | Makai’s Blog | StackOverflow (1 y 2)

Crear carpetas de forma secuencial con Bash

Una forma muy rápida de crear carpetas con números consecutivos es usar la consola de bash, que nos ofrece formas de automatizar algunas cosas.

Por ejemplo, si lo que queremos es crear carpetas del tipo Tema 1, Tema 2, Tema 3… podemos hacerlo de forma muy sencilla:

mkdir ./Tema{1..5}

Saludos!

PS: Más info en DesdeLinux