[Hack] Haciendo Gnome-shell más rápido y más liviano

Hola gente linda!

Por hoy nada de temas gtk, hoy voy con un hack que me está resultando muy útil. Su objetivo es aumentar críticamente la performance de gnome-shell. :)

Tocando de acá y de allá me di cuenta que una de las cosas que “achancha” a gnome-shell es su Dash, el dock lateral. Para algunos este elemento puede ser indispensable, pero claramente para mi no lo es, porque uso Plank, un excelente dock minimalista de muy bajo consumo y alta performance.

El hack, entonces, funciona mediante la eliminación del “Dash” que Gnome-shell tiene incorporado. Digo, luego de usar gnome-shell por un tiempo para mi hay dos cosas clarísimas: 1) que la perfromance de Plank es completamente superior a la del dash de la shell y 2) que el dash es redundante, por no decir, inútil 3) que extensiones tipo dash-to-dock no solucionan para nada “el asunto” de performance de la shell.

Como decía, este post consiste en eliminar el dash, pero, ojo al piojo, sin alterar toda la funcionalidad de la shell (es decir que apretando la tecla Super podremos acceder al menu de aplicaciones, a las aplicaciones favoritas, a las ventanas, a los escritorios y al historial de zeitgueist… en un paso… imbatible). Tras el hack, la eliminación del dock lateral (dash) es sólo temporal en el sentido que si reinician gnome-shell (alt+f2,y luego escribiendo r o gnome-shell --replace) este elemento reaparece “como si nada hubiésemos hecho”.

Captura de pantalla de 2014-02-18 10:38:34El cambio de performance luego de aplicar el hack se siente al instante. Y es realmente lindo ver gnome-shell correr así. Además con esta modificación es increíble cómo el comportamiento de Mutter (gestor de ventanas de gnome) se asimila al comportamiento de Gala (un fork de Mutter, gestor de ventanas de elementary os). La diferencia es que además de gestionar las ventanas con el efecto “exposé” puede facilitarnos el acceso cada elemento del escritorio con sólo una tecla. Exquisito. Luego de ejecutar el comando que muestro abajo, la tecla Super o tecla Win responde al instante, literalmente. Da gusto. :)

El hack en un comando

Como siempre, abran una terminal y peguen el siguiente código para meterle nitro a gnome-shell (+plank o cualquier dock externo que quieran usar).

dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview._dash.actor.hide();'

Sería algo así. Se trata de ocultar forzosamente el dock lateral cosa que gnome no tenga que dibujar todo el asunto.

Captura de pantalla de 2014-02-18 11:38:58

También lo pueden pegar en el díalogo de ejecución apretando alt+f2.

Captura de pantalla de 2014-02-18 10:41:40

El método de alt+f2 puede ser conveniente porque con la flecha para arriba se accede al último comando. Así que con un par de flechazos tendremos una forma rápida de re-aplicar el hack si por algún motivo (estar haciendo un tema gtk o uno para gnome-shell por ejemplo) debemos reiniciar el entorno gnome.

Agregando el hack al inicio de la sesión

El núcleo del post es lo de arriba. Este es un detalle para agregarlo al inicio y debo decir que si bien parece un embole es bastante rápido. Sólo tienen que abrir “dos gedits” y pegar las cositas que pongo. Ahí vamos.

Si quieren hacerse la vida más simple y tener una performance más elevada de forma automática al inicio del sistema, el comando anterior se puede agregar al inicio de la sesión de la shell. Para eso vamos a tener que hacer unos pasitos. Disculpas pero no ninja-install esta vez, serían como tres páginas :P

  • Abir una terminal y pegar el siguiente código (crea el archivo que necesitamos y lo abre con gedit):
    mkdir -p ~/.nodash && cd ~/.nodash && echo "" >> nodash.sh && chmod +x nodash.sh && gedit nodash.sh

    Dentro de Gedit, pegar el siguiente código:

    #!/bin/bash
    sleep 5 ;
    dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview._dash.actor.hide();'
    

    Guardamos, cerramos Gedit.

Captura de pantalla de 2014-02-18 10:43:39

  • Abrimos nuevamente una terminal. Ejecutamos:
    mkdir -p ~/.config/autostart && cd ~/.config/autostart  && echo "" >> nodash.desktop && chmod +x nodash.desktop && gedit nodash.desktop
    

    Nuevamente en Gedit pegamos:

    [Desktop Entry]
    Type=Application
    Exec=sh '/home/TUNOMBREDEUSUARIOOOOOOOOO/.nodash/nodash.sh'
    Hidden=true
    X-GNOME-Autostart-enabled=true
    Name[es_ES]=nodash
    Name=nodash
    

Si, tienen que cambiar el código ingresando su nombre de usuario ahí, en la parte de usuario, je (TUNOMBREDEUSUARIOOOOOOOOO). Reemplacen con su usuario, que es el que aparece en la terminal antes del @ (y ojo! respeten las mayúsculas y minúsuculas dejándolo tal cual!). Ahí va una fotito de cómo tiene que quedar:

Captura de pantalla de 2014-02-18 10:44:32

Guardamos, cerramos.

Ahora si, Listo :) Reinicien la sesión para ver los cambios. El dash desaparecerá luego de 5 segundos de iniciada la sesión, así da tiempo a que se carguen todas las otras cosas.

Notas: ojo con los símbolos de díalogo ', peguen todo con cuidado, especialmente en el script principal de arriba (sino, no funciona). Acuérdense de cambiar el nombre. Y también recuerden que si reinician la shell el hack tiene que ser re-ejecutado. Obviamente desactiven la extensión dash-to-dock si es que la tienen activada. Ah! funciona con gnome-shell 3.10 3.11 y 3.12. :)

Espero les haya parecido interesante (yo no puedo vivir sin esto desde hace un tiempo, la difirencia es demasiada). Cualquier cosa, avisen en los comentarios.
Salú!

fuente: http://glx-dock.org/bg_forumlist.php

[Hack] Haciendo Gnome-shell más rápido y más liviano