277 - Exprimir el escritorio Linux

PodcastPodcast

277 - Exprimir el escritorio Linux

En este podcast encontrarás algunos trucos, consejos y recomendaciones para exprimir el escritorio Linux, GNOME Shell, Mate, Cinnamon, Plasma

1:25
-3:15

Para poder exprimir al máximo cualquier entorno de escritorio, aplicación, herramienta, sin lugar a dudas es necesario conocerlo a fondo. En este sentido, una de las opciones mas potentes que nos da cualquier aplicación o entorno de escritorio es sin lugar a dudas los atajos de teclado. Y de esto precisamente va este nuevo episodio del podcast, sobre como exprimir el escritorio Linux.

Así, en este episodio encontrarás diferentes opciones para personalizar tu entorno de escritorio, y aunque está enfocado a Ubuntu, y en concreto a GNOME Shell, desde luego lo puedes utilizar con cualquier otro entorno de escritorio, MATE, Cinnamon, XFCE. Desde luego que cada uno de ellos tienes diferentes particularidades. Esto te lo comento porque lo tendrás que adaptar para cada una de ellas.

Exprimir el escritorio Linux

Exprimir el escritorio Linux

AutoHotkey

Este episodio del podcast nade a raíz de un artículo publicado en Genbeta, que hace referencia a los scripts mas útiles de AutoHotkey para automatizar tareas en Windows.

La cuestión es que raíz de leer este artículo, pensé que sería un reto interesante, transpolar estos scripts a Ubuntu. Y digo a Ubuntu, porque como sabes este es distribución de cabecera y GNOME Shell uno de los entornos de escritorio que utilizo por defecto. Sin embargo, como te he comentado anteriormente, esto no quita que se pueda utilizar en cualquier otro entorno de escritorio, ya sea derivado de GNOME, como puede ser MATE o Cinnamon, o incluso en otros como XFCE o KDE Plasma por citar algunos.

Atajos de teclado

Antes de nada, antes que te abalances sobre los distintos scripts que voy a revisar, te recomiendo que le des un vistazo a los atajos de teclado que hay disponibles en tu entorno de escritorio. Te comento esto, porque es muy posible, que algunas de las características que voy a comentar estén disponibles por defecto, y no sea necesario que te pelees para implementarla por tu cuenta.

Así, por defecto en Ubuntu, en el entorno de escritorio GNOME Shell, encontrarás los siguientes apartados donde puedes localizar clasificados los distintos atajos de teclado.

  • Acceso universal
  • Capturas de pantalla
  • Escritura
  • Lanzadores
  • Navegación
  • Sistema
  • Sonidos y medios
  • Ventanas
  • Combinaciones personalizadas

Los scripts de automatización de tareas

A partir de aquí, encontrarás los distintos scripts de automatización de tareas sobre los que se hablan en Genbeta, y su correspondiente equivalente en Ubuntu.

Abrir una página web

Si eres de los que por costumbre suelen visitar una determinada página web, no estaría mal que te crearas un atajo de teclado para abrir rápidamente esta página web. Para ello simplemente en los atajos de teclado creas uno nuevo con el siguiente contenido, en el caso de que la página web que siempre quieras visitar sea atareao.es

sensible-browser https://atareao.es

O bien

firefox https://atareao.es

En el primer caso, utilizando sensible-browser te abrirá el navegador que tengas configurado por defecto, pero, si por la razón que fuera siempre quieres utilizar Firefox te recomiendo que utilices la segunda opción.

Buscar en Google o en el buscador que quieras directamente desde el portapapeles

En este caso concreto, tienes que implementar un script, que lo puedes llamar, search_in_google.sh y que puedes poner en ~/.local/bin con el siguiente contenido,

sensible-browser https://www.google.com/search?q=$(xclip -o)

A continuación tienes que crear el atajo de teclado, cuyo comando será,

bash /home/lorenzo/.local/bin/search_in_google.sh

Indicarte que es necesario que tengas instalado xclip para que esto funcione como esperas. Lo mejor es que lo tengas instalado, porque esta herramienta es realmente interesante. Para instalar xclip ejecuta,

sudo apt install xclip

Buscar en atareao.es lo que quieras

Para esto te recomiendo que instales rofi. Una vez instalado, puedes crearte un script que situarás en el mismo directorio que el anterior con el siguiente contenido

#!/bin/bash
ans=$(echo -e "" | rofi -p "Buscar en atareao.es:" -dmenu)
rs=$?
if [ $rs -eq 0 ] && [ "$ans" ]
then
    sensible-browser "google.com/search?q=site:atareao.es+${ans}"
fi

Puedes instalar rofi con un simple sudo apt install rofi. Pero, si no quieres instalar rofi, también puedes implementar un cuadro de diálogo sencillo, con alguna de las herramientas que comento en el tutorial diálogos para scripts. Por ejemplo lo podrías hacer también con zenity. Por ejemplo,

#!/bin/bash
nombre=$(zenity --entry \
                --title="Buscar" \
                --width=250 \
                --ok-label="Aceptar" \
                --cancel-label="Cancelar" \
                --text="¿Que buscas?")
ans=$?
if [ $ans -eq 0 ]
then
    sensible-browser "google.com/search?q=site:atareao.es+${nombre}"
fi

Para poder utilizar zenity necesitarás instalarlo desde los repositorios. Esto lo puedes ver desde el tutorial de diálogos para scripts

Apagar, reiniciar o bloquear la pantalla

Otra interesante herramienta que te puedes crear es un atajo de teclado para salir de la sesión o apagar el equipo sin necesidad de mover el ratón, simplemente con tus dedos. De nuevo, puedes utilizar rofi o también puedes utilizar zenity, yad, o cualquiera de las opciones que comento en el tutorial que te he indicado anteriormente. En el caso de que te decantes por rofi, lo puedes hacer de la siguiente forma,

#!/bin/bash

apagar="Apagar"
reiniciar="Reiniciar"
suspender="Suspender"
salvapantallas="Salvapantallas"
bloquear="Bloquear"
logout="Cerrar sesión"

options="${apagar}\n${reiniciar}\n${suspender}\n${salvapantallas}\n${bloquear}"
ans=$(echo -e $options | rofi -p "Selecciona:" -dmenu)
rs=$?
if [ $rs -eq 0 ]
then
    echo $ans
    case "$ans" in
        $apagar)
            bus-send --system --print-reply --dest=org.freedesktop.login1 \
            /org/freedesktop/login1 "org.freedesktop.login1.Manager.PowerOff" \
            boolean:true
            ;;
        $reiniciar)
            dbus-send --system --print-reply --dest=org.freedesktop.login1 \
            /org/freedesktop/login1 "org.freedesktop.login1.Manager.Reboot" \
            boolean:true
            ;;
        $suspender)
            dbus-send --system --print-reply --dest=org.freedesktop.login1 \
            /org/freedesktop/login1 "org.freedesktop.login1.Manager.Suspend" \
            boolean:true
            ;;
        $salvapantallas)
            gnome-screensaver-command --activate
            ;;
        $bloquear)
            gnome-screensaver-command --lock
            ;;
        $logout)
            bspc quit
            ;;
    esac
fi

Ejecutar cualquier aplicación

En el caso de Ubuntu, y el resto de entornos de escritorio, esto es realmente fácil de hacer, simplemente crear la combinación de teclas que mejor se adapta a tus necesidades.

Atajos de teclado para subir y bajar volumen

Aquí hay que hacer bien poco, porque por defecto, simplemente se trata de asignar la combinación de teclas que quieras desde Configuración > Configuración de teclas y buscas las sección Sonido y medios.

Borrar la papelera de reciclaje

Otro script con el siguiente contenido

#!/bin/bash
rm -rf /home/lorenzo/.local/share/Trash/*

A lo mejor sería interesante un sencillo cuadro de diálogo que te indicara los archivos y directorios que hay en la papelera, y te preguntara si estás seguro de borrarla.

Para hacer este cuadro de diálogo, te recomiendo le des un vistazo al tutorial de diálogos para scripts.

import os
import gi
try:
    gi.require_version("Gtk", "3.0")
except ValueError:
    exit(1)
from gi.repository import Gtk

nfiles = len([name for name in os.listdir(".") if os.path.isfile(name)])
ndirs = len([name for name in os.listdir(".") if os.path.isdir(name)])
msg = "Vas a eliminar definitivamente {} archivos y {} directorios".format(nfiles, ndirs)
dialog = Gtk.MessageDialog()
dialog.set_title("Vaciar la papelera")
dialog.set_markup(msg + ' ¿Estás <span weight="bold" foreground="red">seguro</span>?')
dialog.add_button('Si', Gtk.ResponseType.YES)
dialog.add_button('No', Gtk.ResponseType.NO)
try:
    if dialog.run() == Gtk.ResponseType.YES:
        exit(0)
except KeyboardInterrupt:
    pass
exit(1)

O en el caso de que utilices zenity lo puedes resolver de la siguiente forma,

trash=/home/lorenzo/.local/share/Trash/
directorios=$(find ${trash} -maxdepth 1 -path . -prune -type d | wc -l)
archivos=$(find ${trash} -maxdepth 1 -type f | wc -l)
texto="¿<span weight=\"bold\" foreground=\"red\">Seguro</span> que quieres vaciar la papelera que ahora tiene <span weight=\"bold\" foreground=\"red\">${directorios}</span> directorios y <span weight=\"bold\" foreground=\"red\">${archivos}</span> archivos?"
zenity --question \
       --title="https://atareao.es" \
       --width=250 \
       --ok-label="Continuar" \
       --cancel-label="Cancelar" \
       --text="${texto}"
ans=$?
if [ $ans -eq 0 ]
then
    rm -rf /home/lorenzo/.local/share/Trash/*
fi

Mantener una ventana encima del resto

En el caso que estés trabajando con una aplicación que necesites tener siempre en primer plano, por ejemplo si estás trabajando con un pdf o con un libro electrónico, puedes habilitar el siguiente atajo de teclado.

wmctrl -r :ACTIVE: -b toggle,above

Autocorrección y extensión de textos

En este caso, mi herramienta por defecto, de la que te hablé en el episodio 254 del podcast titulado escribir mas con menos es sin lugar a dudas espanso. Una herramienta que a día de hoy me resuelve, no solo lo básico sino que mucho mas.

Conclusión

Estas son solo algunas de las posibilidades que te comento para exprimir el escritorio Linux, pero en lo que se refiere a automatización de tareas en el escritorio Linux, tu pones el límite.


Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.

Imagen de portada Cristina Anne Costello en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *