Conecta con nosotros

Hola, ¿qué estás buscando?

Actualidad

Un navegador para Linux en 2 Kb: milagro del minimalismo

Hace poco aparecía en UbuntuForums un hilo de discusión en el que se hablaba de navegadores web ligeros. En aquel hilo aparecieron algunos candidatos como Dillo, pero de repente un usuario publicó un pequeño script de apenas 1,5 kilobits que lograba permitir la navegación por páginas web.

Fuente: blog Seamos Realistas.

El logro se basa, como dicen en el blog Seamos Realistas, en el uso de gtk y de la librería libwebkit-gtk, con lo que conseguimos una especie de Midori muy simplificado. En el artículo original hablan de otros proyectos similares como uzbl o Surf, pero en este caso lo tenemos todo en un pequeño script.

Este milagro del minimalismo deja claro que con un poquito de esfuerzo y elegancia es posible conseguir algo tan singular con muy poquito código. Atención al script:

#!/usr/bin/env python
import sys
import gtk
import webkit
DEFAULT_URL = 'http://www.google.com' # Change this as you Wish
class SimpleBrowser: # needs GTK, Python, Webkit-GTK
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_position(gtk.WIN_POS_CENTER_ALWAYS)
        self.window.connect('delete_event', self.close_application)
        self.window.set_default_size(350, 20)
        vbox = gtk.VBox(spacing=5)
        vbox.set_border_width(5)
        self.txt_url = gtk.Entry()
        self.txt_url.connect('activate', self._txt_url_activate)
        self.scrolled_window = gtk.ScrolledWindow()
        self.webview = webkit.WebView()
        self.scrolled_window.add(self.webview)
        vbox.pack_start(self.scrolled_window, fill=True, expand=True)
        self.window.add(vbox)
    def _txt_url_activate(self, entry):
        self._load(entry.get_text())
    def _load(self, url):
        self.webview.open(url)
    def open(self, url):
        self.txt_url.set_text(url)
        self.window.set_title('%s' % url)
        self._load(url)
    def show(self):
        self.window.show_all()
    def close_application(self, widget, event, data=None):
        gtk.main_quit()
if __name__ == '__main__':
    if len(sys.argv) > 1:
        url = sys.argv[1]
    else:
        url = DEFAULT_URL
    gtk.gdk.threads_init()
    browser = SimpleBrowser()
    browser.open(url)
    browser.show()
    gtk.main()

Para ejecutarlo bastará con que copiéis el script en un fichero de texto, lo renombréis a algo tipo «minibrowser.py» y le deis permisos de ejecución:

chmod +x minibrowser.py

Y para abrir cualquier página, por ejemplo la de MuyLinux, escribiríais:

python minibrowser.py http://www.muylinux.com

¡Fantástico! Gracias, juan, por enviar la noticia 😉

65 Comentarios
Advertencia
Advertencia

Te recomendamos

Actualidad

Un tribunal de apelaciones estadounidense ha desestimado la última demanda pendiente en la larga disputa sobre la propiedad de Linux. Una batalla que comenzó...

A fondo

NVIDIA no tiene buena reputación en Linux y las razones son bien conocidas: controladores cerrados, una relación complicada con la comunidad y, en general,...

Actualidad

Elon Musk ha vuelto a recurrir al código abierto para prometer una transparencia sin precedentes en el viejo Twitter, llamémoslo X. El jefazo de...

Actualidad

OpenMandriva ha publicado un comunicado para advertir a su comunidad de un intento de sabotaje contra la distribución… por parte de un ya excolaborador...