uzbl

uzbl es un explorador ligero basado en WebKit/Gtk+ que sigue la filosofía UNIX, escriba programas que hagan una cosa y que lo hagan bien, escriba programas para que funcionen entre sí, escriba programas que manejen flujos de texto ya que ello es la interfase universal.

Instalación Fedora

Instalar en Fedora es trivial.

$ su -c "yum install uzbl" 

uzbl-browser

Antes de comenzar, uzbl-browser tiene dos modos, modo comando y modo inserción (a lo vim).

Navegación

o         = ingresar uri
O         = editar uri
b         = atrás
m         = adelante
S         = parar
r         = recargar
R         = recargar ignorando cache
fl        = mostrar números al lado de cada enlace. Ingrese el número deseado para seguir dicho enlace.
gh        = ir a página de inicio

Abrir uri

o uri, abre la página deseada.

Exploración de sistema de archivos local

Puede utilizar el esquema file:/// para explorar y abrir su sistema de archivos local, por ejemplo, usando file:///home/gomix puede explorar su directorio personal como si éste fuese un servidor web.

Desplazamiento en página

Use j y k para moverse hacia abajo y hacia arriba respectivamente. h y l mueven la vista horizontalmente hacia la izquierda y hacia la derecha respectivamente.

j         = mover hacia abajo
k         = mover hacia arriba
h         = mover a la izquierda
l         = mover a la derecha
PgUp      = mover una página arriba
ctrl+b    = mover una página arriba
PgDn      = mover una página abajo
ctrl+f    = mover una página abajo
Home      = ir al comienzo de la página verticalmente
<<        = ir al comienzo de la página verticalmente
End       = ir al fin de la página verticalmente
>>        = ir al fin de la página verticalmente
Space     = ir al fin de la página verticalmente
^         = ir al comienzo de la página horizontalmente
$         = ir al fin de la página horizontalmente
/         = buscar en página
?         = buscar hacia atrás en la página
n         = repetir búsqueda hacia adelante
N         = repetir búsqueda hacia atrás

Buscar en Internet

ddg       = buscar términos en DuckDuckGo
gg        = buscar términos en Google
\wiki     = buscar términos en Wikipedia

Buscar con Google

gg patrón, googléelo

Buscar en la wikipedia

\wiki patrón, buscar en la wikipedia.

Buscar en página

/patrón busca y resalta en la página actual el patrón dado.

Insertar texto

En el caso de necesitar rellenar formularios, usted deberá cambiar al modo de inserción.

  • i, cambia al modo de inserción, Esc cambia al modo comando.
  • fi, ir al primer campo de entrada y cambiar al modo de inserción.

Acercamiento (zoom)

Si necesita incrementar o decrementar el tamaño de la página para visualizar mejor su contenido, use alguno de los siguientes atajos de teclado.

  • +, aumentar el acercamiento.
  • -, decrementar el acercamiento.
  • T, cambio del tipo de acercamiento.
  • 1, pone el nivel de acercamiento a = 1.
  • 2, pone el nivel de acercamiento a = 2.

Uso del histórico

Shift-u para acceder y usar el histórico.

Estando en el histórico puede buscar en él usando /patrón.

Uso de marcadores

u para acceder y usar los marcadores. B para insertar un nuevo marcador ¿Y para borrarlos?

B         = insertar marcador (bookmar), los marcadores son almacenados en ~/.local/share/uzbl/bookmarks .
u         = cargar url de los marcadores via dmenu

Amplificación/Reducción

+         = amplificar (zoom in)
-         = reducir (zoom out)
T         = cambiar tipo de zoom
1         = establecer nivel zoom_level = 1
2         = establecer nivel zoom_level = 2

Portapapeles (Copiar/pegar)

La terminología le puede ser algo confusa, dele un vistazo al aticulo X Window selection si usted no está familiarizado con las selecciones X.

Para que los siguientes comandos funcionen debe tener instalado xclip.

  • yu, copia el URL de la página actual a la selección primaria.
  • yU,copia el URL del enlace resaltado (hovered) a la selección primaria.
  • yy, copia el titulo de la página a la selección primaria.
  • p, ir al URL en la selección primaria.
  • P, ir al URL en la selección del portapapeles.
  • 'p, abre el URL en la selección primaria en una nueva ventana.
  • <Shift><Insert>
    • En modo comando pega la selección primaria en la barra de estado.
    • En modo inserción pega la selección primario en el elemento de formulario activo.

Otros atajos por teclado

t         = mostrar/esconder barra de estado
w         = abrir nueva ventana, funciona con uzbl-tabbed
ZZ        = salir
:         = ingresar comando
Esc       = regresar a modo normal
ctrl+[    = regresar a modo normal

uzbl-tabbed, navegación con pestañas

Simplemente arranque uzbl-tabbed. Cada pestaña de uzbl-tabbed es una instancia de uzbl-browser.

  • go: abrir uri en una nueva pestaña.
  • gt: ir a la próxima pestaña.
  • gT: ir a la pestaña previa.
  • gn: abre una nueva pestaña.
  • gi+n: ir a la pestana 'n'.
  • w: abre una ventana nueva (pestaña).
  • c: clona la pestaña actual.

Configuración uzbl

En ~/.config/uzbl/config.

El paquete uzbl-defaults en Fedora tiene los ejemplos de configuración.

Página inicial

Este ajuste funciona para establecer la página inicial al inicar una instancia de uzbl.

set uri = file:///home/gomix

Atajos a sitios frecuentes

Un par de favoritos excepcionales que accedo muy frecuentemente.

@cbind  gh  = uri http://gomix.fedora-ve.org              # Mi sitio web
@cbind  gl  = uri file:///@data_home/uzbl/index.html # Mi página local

Búsqueda personalizada

Desea hacer búsquedas en su sitio, digamos que tiene un redmine como yo o quiero consultar otro buscador específico, es decir, quiero un keybinding para tener y ejecutar un simple GET al siguiente URI con q= ajustado al patrón de búsqueda que quiero realizar.

http://gomix.fedora-ve.org/search?q=uzbl&scope=all&all_words=&all_words=1&titles_only=&titles_only=1&wiki_pages=1&submit=Aceptar

~/.config/uzbl/config

...
# Web searching binds
...
@cbind  gx<Gomix:>_ = uri http://gomix.fedora-ve.org/search?q=%s&scope=all&all_words=&all_words=1&titles_only=&titles_only=1&wiki_pages=1&submit=Aceptar
...

Me costó un poco conseguir un keybinding libre que me funcionara.

Ahora cuando presiono gx seguido de un patrón de búsqueda, me hace las búsquedas automáticamente en mi sitio web, muy útil para mi.

Hacks uzbl

En esta sección alguno temas muy particulares pero útiles para algunos.

Tecleando @, ignorado AltGr-*

En mi teclado para insertar el caracter @ debo hacer la secuencia AltGr-q o AtlGr-2, cuando intento por ejemplo invocar el comando :print "@uri", uzbl-browser no me permite teclear el @ y muestra en la barra de estado Mod5..., la solución por ahora es ignorar dicha tecla:

...
@ignore_key <Mod5>
...

Editor externo

Me interesa editar los wiki o cualquier otro formulario web con vim o gvim, y/o con cualquier otro editor de texto externo.

...
@bind E = spawn @scripts_dir/external_editor.sh
...

Esta configuración en mi Fedora 16 invoca al script external_editor.sh que ya viene en la distribución de uzbl en Fedora, el resto de la ecuación es definir el emulador de terminal y el editor.

~/.local/share/uzbl/scripts/util/editor.sh

#!/bin/sh
# Selección del editor

EDITOR="vim" 

if [ -z "$VTERM" ]; then
    #VTERM="xterm" 
    VTERM="urxvt -fg green -bg black " 
fi

if [ -z "$UZBL_EDITOR" ]; then
    if [ -z "$EDITOR" ]; then
        UZBL_EDITOR="$VTERM -e vim" 
    else
        UZBL_EDITOR="$VTERM -e $EDITOR" 
    fi
fi

Aquí he definido tanto el emulador de terminal como el editor deseado (urxvt y vim).

Mi página de inicio local

Me sirve como punto de entrada, cree su propia página HTML y configure:

...
set uri = file:///@data_home/uzbl/index.html
...

La ruta a la que apunta @data_home en mi Fedora 16 de caja es ~/.local/share/uzbl. Ahora cada vez que inicie una instancia de uzbl, la página de entrada será su página Web local (esto es mucho más rápido que esperar por una página externa en Internet y es mucho útil que una página vacía).

Estilos para seguir enlaces

Si el fondo de una página web es por ejemplo negro, no podrá ver los enlaces si usa fl para no navegar con el ratón. La solución es darle estilos.

En su configuración incluya:

...
set stylesheet_uri = file://@data_home/uzbl/style.css
...

Y:
~/.local/share/uzbl/style.css

*#uzbl_link_hints
{
  font-weight: bold;
  font-size: 1em;
  line-height: 2em;
  color: #FF0000;
}

Viendo el código fuente

Para ver el código fuente de una página web dada, sólo debe establecer el valor de la variable uzbl @view_source a 1 y recargar la página. Con los atajos predefinidos en uzbl Fedora 16 eso se resume a :

s                     #Atajo para definir cualquier variable uzbl
view_source   # Variable que desea definir
1                    # Valor, 1 es "true" 
r                     # Recargar la página

Por supuesto puede configurar un atajo en el teclado o una entrada de menú contextual para ello si lo desea (y hacer un script).

Reconfigurando user-agent, entrando a Google Plus

Con este pequeño hack usted podrá entrar a sitios como https://plus.google.com (g+). Se trata de básicamente ajustar el user-agent que utiliza uzbl para identificarse con la página web en cuestión.

...
#set useragent         = Uzbl (Webkit @{WEBKIT_MAJOR}.@{WEBKIT_MINOR}) (@(+uname -sm)@ [@ARCH_UZBL])
set useragent         = Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120405 Firefox/14.0a1
...

En mi ejemplo he tomado el string de http://www.useragentstring.com/pages/Firefox/ .

Ajustes por sitio destino

Una forma más genérica de resolver el problema anterior es usar el script per-site-settings que permite establecer la configuración de acuerdo al sitio visitado.

~/.config/uzbl/config

# Userscripts/per-site-settings. See the script and the example configuration for details
@on_event   LOAD_COMMIT    spawn @scripts_dir/per-site-settings.py @data_home/uzbl/per-site-settings

~/.local/share/uzbl/per-site-settings

.*google.com
  .*
    set useragent         = Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:14.0) Gecko/20120405 Firefox/14.0a1

uzbl vim

Instalando el siguiente paquete, usted podrá elegantemente editar sus archivos de configuración uzbl.

$ su -c "yum install uzbl-vim" 

Pendientes uzbl

Algunos asuntos que me gustaría incorporar en mi caja de herramientas acerca de uzbl.

  • enable_spellcheck: Whether to enable spell checking while typing (default 0).
  • spellcheck_languages: The languages (in locale lang_COUNTRY form, e.g. en_CA or pt_BR) to be used for spell checking, separated by commas. Defaults to the value returned by gtk_get_default_language.
  • enable_private: Whether to enable private browsing mode (default 0).
  • enable_pagecache: Enable the webkit pagecache (it caches rendered pages for a speedup when you go back or forward in history) (default 0).

Referencias uzbl