[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

55 thoughts on “[Hack] Haciendo Gnome-shell más rápido y más liviano

  1. kostan says:

    Un auténtico caramelo,para gnome-shell.Eres una máquina colega.
    Menos mal que lo tuyo es la economía……y las artes marciales(NINYAS).
    Buenos post,me gusta el estilo y la forma,pero sobre todo como lo comunicas.
    Mucho ánimo te seguiré por ahí donde andes.Saludos linuxeros jajjjaaaaa.

  2. Grossman says:

    cuando decís que funciona con gnome-shell 3.10 3.11 y 3.12, quiere decir que solo es para estas versiones??? porque en debian con gnome 3.4 no he podido hacer que funcione después de un reinicio… Gracias

    1. Hola Grossman, si, en efecto. Es sólo para las versiones nuevas de gnome-shell. En versiones más viejas entiendo que se podría hacer lo mismo, pero hay que buscar la entrada porque cambió el código. :)
      Salú!

      1. sabés q cada vez que reinicio se me cambia la configuracion de los monitores. Tengo notebook con monitor externo, pongo el externo a la izquierda y al reiniciar me aparece a la derecha.
        Ademas de eso recién reinicie y me tiró BUG al iniciar y no me “ocultó” el dock del dash

  3. Por avatares de la vida he caido en Antergos Gnome 3.12.1 en mi sda1. La experiencia no está siendo mala.

    Probado el tip y funciona perfecto. Aunque mi PC va sobrado de RAM (8 GB) se agradece pues aún soy extremadamente novato en Gnome Shell y el Dash lateral me estorba más que otra cosa.

    Ahora me tendrás pegado a tu blog investigando minuciosamente tus entradas ;)

    Veamos si en esta enésima oportunidad me hago con Gnome Shell. Aun recuerdo mi amado Gnome 2 con lágrimas en los ojos ;(

    Un saludo, compa.

    1. Bueno, qué lindo! siempre bienvenido por acá :)

      Me pone muy contento que te haya parecido interesante la entrada Yoyo, como sabrás soy un seguidor desde hace tiempo de tu trabajo.

      Por estos días lamentablemente estoy hasta las re pelotas de trabajo y responsabilidades y dejé enfriar un poco el posteo, pero tengo algunas cositas en la galera bastante divertidas ^_^

      Un abrazo grande! y gracias por pasar :)

  4. Buen tip, me dan ganas de instalar ya GShell!!

    Pero antes tengo un par de dudas….
    1.- Estando en el escritorio y con Plank instalado, ¿Cómo quedan las notificaciones? ¿Se sobreponen? No lo tengo muy claro…

    2.- Rendimiento en tarjetas Ati un poco antiguas (HD4250 y HD5430) con drivers libres. Siempre me ha pasado lo mismo, cuando tengo más de una ventana abierta las transiciones y efectos de escritorio no son suaves y rapidos, son lentos y van a trompicones. ¿Mejora este aspecto este hack? Porque si es así me lanzo de cabeza!!

    Saludos!!

    1. Hola Albert! :) bueno, gracias por pasar y no dudes en probar el nuevo gnome-shell que anda muy lindo.

      Respecto a tus preguntas: 1) plank está abajo, las notificaciones también. Pero no es para nada grave, digo, conviven bien porque las notificaciones vienen y se van. Si te molesta este aspecto, no hay problema! se soluciona en un segundo instalando la extensión “Panel OSD” que permite mover las notificaciones de la shell a donde más te guste.

      2) Sinceramente lo tendrías que probar. Lo cierto es que si bien en máquinas modernas la performance de la shell aumentó considerablemente, no se a ciencia cierta cuál será su rendimiento con placas viejas. Me atrvo a decir que si Unity te anda bien, entonces esto también lo vas a poder disfrutar al 100%. Respecto de este punto dejame hacer un poco de descarga: la responsabilidad de que no ande bien es sin dudas de ati y no de gnome-shell o cualquier otro entorno. :)

      Si lo probás pasate a ver cómo te fue! Salú!

      1. Hola! mmm… tenés ubuntu? puede ser un conflicto entre gdm y light-dm. Pudiste solucionarlo?

        Si te funcionan otros entornos te tendría que funcionar esto también…

      2. Hola!!

        Tengo Ubuntu 14.04. Efectivamente al instalar GShell me preguntó cual quería, si gdm o light-dm. Elegí la segunda opción, light-dm, ya que era la que siempre elegía en anteriores ocasiones. Hasta ahí todo bien, el problema venía tras iniciar la sesión en GShell, el escritorio se quedaba sólo con el fondo de pantalla unos minutos y después me aparecía una ventana de una app (psensor) sin decoraciones ni nada. A partir de ahí la única solución (al menos que yo conozca) era entrar en tty y arrear un sudo pkill Xorg para volver al gestor de sesiones.

        Al final reinstalé Ubuntu, más que nada para eliminar las dependencias que no se desinstalaron junto a GShell y deborphan no fue capaz de detectar. No se cual será el problema, aunque mucho me temo que la gráfica de Ati tengo bastante culpa. Así pués, de momento creo que me esperaré un tiempo antes de volver a probar.

        Muchas gracias por todo y saludos!!

      3. Hola! Bien, gracias por la linda respuesta. Efectivamente yo tuve el mismo problema cuando estaba probando las alphas. Resulta que GS NO ES COMPATIBLE CON LIGHT-DM por lo que SI O SI TENES QUE USAR GDM. Hasta el punto que lo hice andar en Lightdm, peroooo, no tenía sonido, no funcionaba la suspensión ni la hibernación y tenía otra tonelada de detalles de hardware que no me anduvieron.

        Si tenés tiempo y querés seguir jugando, te recomiendo que a) si instalas gs desde un ppa que elijas gdm y veas como va o b) te bajes ubuntu gnome que tiene todos estos problemas resueltos. Bajate la iso, quemala en un usb y probá directamente con la live session. Ahí se verá la verdad de la historia. Si corre el live, corre instalado. :)

        Salú!

        ps. yo desistí de instalar gnome “sobre” ubuntu porque los conflictos son demasiados. Pero dale una chance a ubuntu gnome que no va taaan mal. :)

    1. hmmm… fijate de abrir el .desktop a ver cómo quedó. Si lo podés ejecutar manualmente entonces funciona. Eso es bueno. Ahora hay que checkear que la aplicación arranque al inicio.

      Chequearía a) que la línea command = del .desktop haga referencia al lugar del script. b) que el .desktop tenga permisos de ejecución.

      Por otro lado, todo el choclo este quedó pasado de moda porque un buen samaritano hizo una extensión que hace exactamente esto :)

      https://extensions.gnome.org/extension/805/hide-dash/

      1. Gracias.

        Respecto a la extensión hide dash, por más que la instalo y reinicio GS no me aparece en Extensiones en Gnome Tweak Tool :-/

  5. Saul says:

    Gracias por el dato, se ve muy bien tu escritorio, como puedo instalar Plank en Debien Testing? vi la pagina oficial y no me funciono su comando por que creo que es para Ubuntu y busque en otras paginas pero me da error. Porcierto, alguna pagina que me recomiendes para ponerle temas a Gnome?

    Gracias de antemano

    1. Hola Saul, para instalar plank en debian te recomiendo que te bajes el deb y lo instales con dkpg directamente. En un ninja-comando sería así:

      mkdir -p ~/.plank-install && cd ~/.plank-install && wget https://launchpad.net/~ricotz/+archive/docky/+files/libplank-common_0.6.0-0ubuntu1%7E14.04%7Ericotz1_all.deb && wget https://launchpad.net/~ricotz/+archive/docky/+files/libplank0_0.6.0-0ubuntu1%7E14.04%7Ericotz1_amd64.deb
      && https://launchpad.net/~ricotz/+archive/docky/+files/plank_0.6.0-0ubuntu1%7E14.04%7Ericotz1_amd64.deb && sudo dpkg -i *.deb ; sudo apt-get install -f -y && cd && rm -R ~/.plank-install

      Por los temas, sin dudas hay 3 fuentes: 1) gnome-look.org 2) deviant-art (buscando gnome-shell o gtk3) 3) grupos de google+, siguiendo a la gente que los hace, como +Camilo Higuita o +Sam Hewitt, por ejemplo. :)

      Salú!

    1. Hola Nestor, no no. Elementary tiene su propio entorno y gestor de ventanas: Gala. Esto es para Gnome puro, que tiene su entorno (gnome-shell) y gestor de ventanas (mutter). :)

      Otra cosa, si tenés elementary OS luna, entonces tenés Ubuntu 12.04. Si tenés Ubuntu 13.10 entonces no podés tener elementary os :)

      Un abrazo y gracias por pasar! :)

    1. Este post necesita un parche, voy a tratar de hacer un instalador, porque sino se complica.
      Creo que hay un problema con este .desktop que publiqué. A ver si estas entradas funcionan mejor (deberían!). Hay que reemplazar todos los comandos con los del post. Exec, icon y name, los tres o no anda. :)

      [Desktop Entry]
      Type=Application
      Exec=
      Icon=
      Name=
      Hidden=false
      NoDisplay=false
      X-GNOME-Autostart-enabled=false
      Comment[es_ES]=
      Comment=
      StartupNotify=true
      Terminal=false
      Categories=GNOME;GTK;

    1. :)
      ahora salieron unas extensiones que hacen algo parecido. Este hack es un poco más radical, pero la extensión tiene el mismo resultado y casi el mismo efecto. ^_^
      Se llaman hide dash y hide workspaces.

  6. Ferr says:

    No inicia con el sistema :( segui los pasos tal cual estaban y no funciona si ejecuto el .sh desde la terminal s funciona perfecto pero no arranca con el sistema, no se uqe hacer lo movi, intente ponerlo con gnome-session.properties ,ya que con este agregue plank y guake al inicio, y tampoco funciona

    1. hola! bueno, sacalo de gnome-sessions properties. Sacá plank y sacá guake… y volvé para atrás cualquier cambio que hayas hecho. El comando sólo funciona, puede que haya algún problema con setearlo al inicio, pero es muy muy difícil que esto afecte de cualquier forma el inicio de tu sesión. Creo que es porque lo pusiste en gnome.session. Sacalo, borrá todos los cambios y volvé a intentar iniciar sesión.
      Este hack era para cuando no estaba la extensión hide-dash, que básicamente hace lo que hace el hack, pero es mucho más fácil de instalar (para ser precisos el hack es un poquito mejor, pero en definitiva logramos el mismo resultado… con la facilidad de usar una extensión). En suma, si se te complicó, instalate la extensión hide dash que vas a lograr lo mismo. :)

    1. Hola Jesus, probate la extension Panel OSD para gnome-shell, que va muy muy bien y te permite configurar bastantes cosas de las notificaciones, incluidas su posicion y aspecto :)

  7. mmm says:

    Hola. Che, te pregunto por si podès darme una mano. Resulta que tengo instalado Ubuntu Gnome 14.04 en mi maquina que será de dos núcleos, con 4g ram y placa nvidia de video… La cosa es que me funciona todo ok, hasta que la máquina hiberna… una vez que hibernó y la vuelvo a encender, todo funciona……. pero funciona sssuuuuuuuuupeeeeer lento…. Qué podría hacer para darme cuenta qué demonios pasa?
    saludos y muchas gracias.

    1. Hola Erik, te recomiendo que busques la extensión “hide dash” en el sitio de gnome shell que hace exactamente (exactamente exactamente jeje) lo que digo en el post. :) salú!

Y tu? qué estás mirando? :)

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s