Imbatible! Cómo reiniciar Gnome-Shell desde una terminal con ctrl+alt+F2 (o tty2)

Buenas buenas! Yo aca ando, muy contentísimo de volver a escribir. :)

Hoy les traigo mi solución que con el paso del tiempo fui consolidando tratando de lidiar con los cuelgues de gnome-shell. Para resolverlos, vamos a pasar a modo consola y a ejecutar un comandito que nos va a permitir reiniciar el entorno en cuestión. Manos a la obra.

El problema, antecedentes e interines.

La cosa es que la verdad Gnome-Shell es de lo más estable. Eso hay que decirlo y repetirlo mil veces. Principalmente desde las últimas versiones 3.10 en adelante la performance, velocidad y estabilidad de gnome creció mucho. Esto, sin embargo, no quiere decir que todo sea color de rosas. Si usan máquinas virtuales podrían tener experiencias inconfortables con gnome y virtualbox, así como con algunas apps de java que sencillamente ponen a la shell bastante renegona. Por ejemplo, cuando tengo un proceso de virtual box corriendo (VBox*) y quiero cambiar el wallpaper gnome se me cuelga. Raro. Ya está reportado, pero si a alguien le pasa lo mismo estaría bueno que lo reporte también. En suma, quizás recuerden que tengo inestabilidad wallpaperistica así que la shell se me enojaba bastante seguido jajaj. La solución, bastante simple, radicaba en reiniciar la shell desde una consola externa.

Edit: Esto no se trata sólo de reiniciar la shell (como uno haría normalmente apretando “alt+f2, r”) sino que sirve para cuando gnome-shell no responde. Cuando la shell no responde nos impide hacer reaccionar el sistema, las ventanas no responden, menos los atajos de teclado, dejándonos en una situación en la que no se pueden  introducir comandos desde allí. Y ahí viene el sentido de este post. O sea, la idea es que en lugar de tener que reiniciar la computadora porque gnome-shell se colgó, que podamos revivirlo con el método que les cuento abajo. 

Imagino que en el mundillo linux algunos ya tendrán contacto con las sesiones paralelas que se alojan en los tty. Si no, les cuento en dos palabras más o menos de que viene la onda. En linux podemos tener varias sesiones corriendo a la vez, las cuales pueden ser de diferentes usuarios o del mismo, lo cual permite acceder a procesos que están corriendo simultáneamente en otras sesiones abiertas, dado que el usuario es idéntico. Para poder activar una sesión paralela hay que hacer una combinación de teclas de tipo ctrl+alt+f2 para pasar a la consola de sesión paralela tty2 (ctrl+alt+f1 para tty1 y así). Notando que el servidor X que es el que nos permite ver las cosas con interface gráfica puede correr sólo una vez, las sesiones paralelas son todas en modo consola exclusivamente.

El truquete es que desde una sesión paralela en modo consola nos podemos loguear con nuestro usuario y contraseña y así acceder a todos los procesos que corre nuestro “usuario original”. Esto, por supuesto, aplica a gnome-shell, generando la posibilidad de reiniciar la shell desde un entorno seguro y evitándonos el maldito reinicio (aka sudo reboot).

tty2-nologin

Cuando se nos cuelga la shell, lo que tenemos que hacer es ir a una consola para inciar una sesión paralela. Esto lo hacemos apretando ctrl+alt+f2. Nos va a pedir usuario y contraseña, las cuales introducimos y ya estamos listos para reiniciar la shell. Les propongo dos métodos.

tty2-login

El Método: simple comando que reinicia la shell

La forma más sencilla es pasar a tty2 (ctrl+alt+f2 y después loguearse) y ejecutar la siguiente línea:

killall -1 gnome-shell

Luego volvemos a nuestra sesión gráfica que es la tty7 presionando ctrl+alt+f7 y esperamos unos segundos. La shell se tendría que reiniciar. A esperar con paciencia.

restar-gnome-shell

Nota: Si andan en el tema se habrán cruzado con soluciones de todo tipo, como por ejemplo tirar un gnome-shell --replace o un gnome-shell --replace --display :0 o un sudo service gdm restart o sudo service lightdm restart . Ninguna funciona. ^_^

Bien, eso es todo :)

Debo decir que hay soluciones más elegantes. Pero por ahora los dejo con las ganas para otro post.

Espero les sirva,
Salú!!! :)

PD. Obviamente ctrl+alt+f2 es un ejemplo y funciona con cualquier tecla de las de arriba, F1, F2, F(numero), menos la F7 que está guardada para el entorno gráfico.

Imbatible! Cómo reiniciar Gnome-Shell desde una terminal con ctrl+alt+F2 (o tty2)

Gnome 3.12: forzar la distribución del teclado en español (solución definitiva, o post V.2)

Hola a todos y todas. Hoy, muy contento, voy con una re-versión del post que hice hace poquito acerca de cómo tratar de resolver el problema del teclado en español en Ubuntu Gnome 14.04. Recapitulando, cuando uno reinicia la shell, el fokin teclado cambia de idioma.

Hice numerosos vericuetos en el post anterior. Me mete una sonrisita y también, por qué no, un poco de vergüenza jajaj, dado la solución era mucho más sencilla de lo que pensaba. A veces uno se complica la vida al pedo je.

El punto más importante es que este post 2.0  surgió de los comentarios del primer artículo, así que muchas gracias Raúl por compartir con nosotros tu solución! :)

Cómo solucionar el cambio de idioma del teclado

Como decía, la solución era muy simple. Abran una terminal y peguen esto (es sólo una línea):

gsettings set org.freedesktop.ibus.general use-system-keyboard-layout true

Listo el pollo. :)

Podemos probar el resultado reiniciando gnome-shell con alt+f2, r para comprobar que el tema está solucionadísimo.

Se trata de este bug en el que se ve que quedó medio colgao un parámetro del ibus. Nada. Lo cambiamos y ya. Todo como debería ser. Esto se puede hacer de dos formas, la que les acabo de mostrar, y mediante la forma gráfica con gconf-tool, como lo explica Raúl en los comentarios del post anterior. Me tomé la libertad de explorar un poco y de pasarlo a un comando, así en instalaciones nuevas lo podemos agregar a las cosas que se ejecutan apenas terminamos de instalar todo. Muy rápido y efectivo.

Contentísimo me despido por hoy.

Un abrazo a todos y gracias por compartir! :D

Salú!

imágen: https://dribbble.com/shots/553951-Retro-Keyboard?list=searches&tag=keyboard&offset=7

//

Gnome 3.12: forzar la distribución del teclado en español (solución definitiva, o post V.2)

Atacando otro bug de gnome 3.12: forzar la distribución del teclado en español

Hola a todos y todas. Gracias por la buena onda con el asunto del tema y los íconos. _

HAY UN POST MEJORADO DE ESTO, CON UNA MEJOR SOLUCIÓN. PÁSENSE POR AĆA.

Les cuento que hay otro bug que me molesta mucho de gnome 3.12 y me refiero a que el idioma se cambia a inglés sólo. Ahí vamos.

El bug: me cambia a idioma inglés el teclado

Qué es lo que pasa? Bueno, es bastante simple. Si instalamos algo en gnome-shell y queremos ver cómo es, una nueva extensión por ejemplo… o como me pasa a mi cada vez que toco algo en el tema de la shell tengo que reiniciar todo el entorno para que me tome bien los cambios. Las teclas de la injusticia: alt+f2, r.

Luego de apretar alt+f2, r, la shell se reinicia pero el idioma del teclado se cambia a inglés. No importa si no tenemos el idioma instalado. No importa si seleccionamos español por defecto con las herramientas que se les ocurran. No importa nada, el hijo de putasss se cambia al inglés. _

Para cambiarlo al español, nada, hay que seleccionar con el mouse (arriba a la derecha) el lenguaje “en” y luego volver a seleccionar “es”. Un dolor de bolas.

Lo atamos con alambre: crónicas de cosas que no funcionan.

Antes que nada, debo disculparme por la no elegancia de esta cosa que hice. De hecho lidié con ella desde el inicio de 3.12, pensé que en algún momento se iba a solucionar, pero acá estamos: 3.12.2 estable y todavía a todo developer le chupa un huevo o todos usan su fakin teclado en inglés, no sé… algo raro pasa. En fin…

Dadas las limitadísimas “habilidades programativas” que tengo, todo lo que pude hacer es una script en bash, jeje, como siempre. El script ejecuta el comando “setxkbmap es“, que es el salvavidas que nos retorna el teclado a nuestro idioma. Lo ridículamente arcaico del script es que ejecuta setxkbmap regularmente, o sea una vez cada cierta cantidad de tiempo, así no tengo que hacerlo manualmente nunca más. La contra es que ejecuta el comando regularmente, incluso cuando el idioma no es inglés.

Un poco más de detalle (la historia de un incomprendido): la estrategia de repetir como loro el comando que nos cambia el idioma es lo que en economía se llama un “second best”, o sea, no es lo ideal, pero de algún modo funciona. Lo ideal sería que cada vez que gnome-shell se reincia luego de apretar alt+f2, r lea un archivito en el que le podamos meter nuestros scripts… lamentablemente no pude hacer eso. En el proceso que recarga el tema y las extensiones activadas, debería leer ese archivito y ejecutarlo. Si alguien sabe cómo hacerlo, por favor, ayuda. _ ( porque .profile, .scripts, .bashrc… aplicaciones al inicio, nada… nada se recarga nuevamente luego de apretar alt+f2,r…). Entonces. La alternativa ideal no funcionó. Empecé a ejecutar el comando manualmente luego de reiniciar. Como habrán visto es una cosa muy cortita y no tarda absolutamente nada en aplicarse. Luego dije, ok, esto se tendría que poder repetir, basta de hacer esto cada vez que reinicio la shell (porque por ejemplo, cuando hago un tema, esto es básicamente… bueh… cada vez que modifico una línea -lo cual hace muy inconveniente cambiar a la terminal luego de cada reinicio-). Así que busqué en gugul y me encontré con “cron” y todas las herramientas “cronianas”… bueno. No me funcionó ninguna. Todavía no entiendo por qué. Tampoco me funciona “alias”, pero es claramente otro tema para quejarme otro día jajaja. Sigo: entonces como con el puto cron el comandito no se repetía ni se ejecutaba, tuve que encontrar otra forma (se supone que la función de cron es repetir comandos). La solución que encontré es “bien cabeza” como decimos en los suburbios de buenos aires _, porque loopeo (léase: lupéo) al infinito una condición y ejecuto el comando en cada vuelta del loop. Más simple que eso, no essiste papá. Y esa es la forma arcaica de hacer un parrot-command :P (hoy estoy on fire!).

Soluciones de menor a mayor.

Solución 1: ejecutar el comando manualmente

Lamentablemente esta es una opción. Si no reiniciamos la shell todo el tiempo por algún motivo, hasta la recomiendo. Simplemente abran una terminal y peguen:

setxkbmap es

Así de simple.

Solución 2: cron (no me funcionó)

A mi no me funcionó, pero lo pueden hacer. La idea es que hay que editar crontab y meter el comandito de arriba para que se repita. Para eso ejecutamos:

crontab -e

Y luego, al final, agregamos una línea que rece:

*/10 * * * * setxkbmap es

Para ejecutar el comando cada 10 minutos.

Solución 3: Script lupeáo cavernoso (cron sin cron)

Abrimos un gedit y pegamos esto:

#!/bin/bash
mkdir -p ~/.forzar-teclado-español
cd ~/.forzar-teclado-español
while true ;do
if [ -f teclado-español ] ;then
sleep 10;
setxkbmap es;
else
touch teclado-español;
fi
done;

Guardamos el archivo como teclado-es.sh en nuestro home. Yo tengo los scripts en una carpetita en el home que se llama .scripts. O sea que los guardo en ~/.scripts pero ya es cosa de gustos. _. Metanlo donde quieran. Luego lo ejecutamos como aplicación de inicio. Abrimos otro gedit y pegamos:

[Desktop Entry]
Type=Application
Exec=sh /home/XXXtu_nombre_de_usuarioXXX/teclado-es.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=false
Name=teclado-es
Comment[es_ES]=
Comment=
Icon=preferences-desktop-launch-feedback
StartupNotify=true
Terminal=false
Categories=GNOME;GTK;

Reiniciamos y todo tendría que correr. Acuérdense de cambiar XXXtu_nombre_de_usuarioXXX por su nombre de usuario jeje. Si pusieron el .sh en otro lado deben editar esa línea con la localización (absolute path, nada de símbolos).

Solución 4 = Solución Buena!: se me ocurrió mientras escribía el post.

Ok, así se trabaja. :P

Resulta que repasando el script me dije “y qué pasa si puedo recuperar el valor de la distribución del teclado y aplicar el script quirúrugicamente sólo cuando el teclado tiene un idioma que no sea español?”.

El truco: setxkbmap -query nos devuelve el lenguaje del teclado. Todo gracias a man setxkbmap. Un poco de bash-no-jutsu, sed, awk, if-else y la mar en coche, y podemos aislar el asunto. El script escupe todo el día el lenguaje del teclado. Si devuelve “es”, no hace nada. Si no, ejecuta el comando para cambiar la distribución a español. La cosa viene así:

#!/bin/bash

while true ;do
if [ -f /tmp/teclado-español ] ;then
sleep 3;
rm /tmp/current-keyboard ; 
setxkbmap -query | grep layout > /tmp/current-keyboard
sed "s/.*,//" /tmp/current-keyboard
value=`sed "s/.*,//" /tmp/current-keyboard`

if [ $value = "us" ]; then
       sleep 3;
else
    setxkbmap es;
fi

else
touch /tmp/teclado-español;
fi
done;

Este es el output del script. En la línea 3 reinicié la shell. Cada línea tarda 3 segundos en aparecer. :)

Esta opción es excluyente de la anterior. Guardamos el archivo como teclado-es.sh en nuestro home. Yo tengo los scripts sueltitos en el home pero ocultos. O sea que empiezan con un punto. Pero esas ya es cosa de gustos. _. Metanlo donde quieran. Luego lo ejecutamos como aplicación de inicio. Abrimos otro gedit y pegamos:

[Desktop Entry]
Type=Application
Exec=sh /home/XXXtu_nombre_de_usuarioXXX/teclado-es.sh 
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=false
Name=teclado-es
Comment[es_ES]=
Comment=
Icon=preferences-desktop-launch-feedback
StartupNotify=true
Terminal=false
Categories=GNOME;GTK;

Guardamos el archivo en ~/.config/autostart con el nombre teclado-es.desktop. Luego ejecutamos en la terminal chmod +x ~/.config/autostart/teclado-es.desktop para darle permisos de ejecución.

Reiniciamos y todo tendría que correr. Cualquier cosa comentan abajo.

Eso es todo. Como siempre, un post de 5 minutos termina siendo un chorro de cosas. Será. :)

Salú!

//

Atacando otro bug de gnome 3.12: forzar la distribución del teclado en español

Cómo mantener las extensiones tras un reinicio (Ubuntu 14.04 y Gnome Shell)

Holas a todos y todas. No es novedad que Gnome-Shell y Ubuntu-Unity no se llevan del todo bien. Decirlo así puede sonar fuerte, pero es la verdad. Incluso luego de la salida Ubuntu-Gnome aún pueden encontrarse un sin fin de bugs, algunos graves, otros tontos, pero la tónica es que la mayoría permanecen sin solucionar desde el lanzamiento alpha. Y lo cierto es que los muchachos de Ubuntu Gnome son bastante herméticos en dejar entrar gente a participar de la distro (una lástima).

Anyway, dejando mis inconformidades de lado, hoy me voy a meter con uno de los bugs más molestos de Ubuntu-Gnome (que existe desde la versión alpha y perdura hasta la versión final LTS -wtf-). El problema: tras un reinicio se desactivan todas las extensiones.

A buscarse el café o la birrita porque me emocioné y escribí un montón. :P
… ah! A lo último hice un resumen para los que tengan fiaca. :)

El bug

Antes que nada, parece que esto sólo sucede en Ubuntu-Gnome. Resulta que uno entra contento a ver cómo anda la shell en su última versión en un entorno de la familia debian, como lo es ubuntu gnome. Una de las primeras cosas que se hacen luego del primer boot es chusmear las nuevas extensiones en el sitio oficial e instalar las viejas, clásicas que nos gustan y siempre ponemos. Abrimos Gnome Tweak Tool y empezamos a configurar todo para dejar nuestro escritorio en sintonía con lo que nos imaginamos debería ser el “entorno definitivo” para trabajar (o lo que cada uno haga con su computadora :P ).

Luego de pasar 2 o 3 horitas toqueteando, probando, instalando, sacando, poniendo, hacemos un lindo dist-upgrade y reiniciamos, como corresponde. Amargo momento es el que nos espera cuando vemos que tras el reinicio todas las extensiones que teníamos configuradas ya no están más. Todo rústico, todo feo como si fuera el primer boot.

Gnome Tweak Tool con las cosas activadas

¿Qué pasó? Bueno aparentemente Ubuntu-Gnome no reconoce el reboot como una forma de apagado seguro y tras reiniciarse entra en una especia de “modo a prueba de fallos” en el que desactiva todas las extensiones. Esto es porque si estamos usando extensiones experimentales (o estamos jugando a desarrollar una), la shell se puede crashear y este mecanismo nos permite reinciar todo y solucionar el problema.

Gnome Tweak Tool luego del reinicio: trisísimo.

Pero en realidad ni estabamos probando extensiones experimentales ni desarrollando una, sino que todo funcionaba perfecto. Incluso el bug sucede si no instalamos nuevas extensiones desde el sitio, sino sólo activando las oficiales que vienen en los repos. Y ya, tras un reinicio, PAM!, a configurar todo de nuevo. Todo lo que activaste está olvidado en el recuerdo. A la segunda vez que te pasa querés instalar un KDE corriendo, con una sensación de frustración súper justificada.

Estas son las cosas que hacen que la gente piense que gnome-shell es una mierda. Y tienen razón, porque claramente es un aspecto crítico del sistema que definitamente destruye la experiencia de usuario en un boot… :/

La solución

Bueno, como siempre, buscando y buscando todo se puede solucionar. Dadas mis limitaciones técnicas (eso de que no soy programador y bla bla) el work-around que encontré es bastante simple. Se trata de “atar con alambre” lo que no anda forzando el inicio de las extensiones mediante la ejecución de gsettings al inicio de la sesión.

El trabajo consiste en tres partes: primero tenemos que saber mediante línea de comando qué extensiones tenemos instaladas. Segundo tenemos que crear UNA línea de gsettings que nos active todas extensiones a la vez. Tercero, tenemos que agregar eso a las aplicaciones que se activas al iniciar sesión.

Paso 1: listando las extensiones

Entonces parece que queremos listar las extensiones que tenemos activadas. Es muy fácil, se hace con un comando en la terminal que devuelve los valores activos de gsettings. Sólo asegúrense de que antes de correr el comando hayan activado todo lo que quieren activar desde Gnome Tweak Tool.

Abran una terminal y peguen:

gsettings get org.gnome.shell enabled-extensions

devuelve algo así:

Esa lista es la que queremos copiar y pegar para el paso siguiente. Así, lo que guardamos en un gedit es:

['alternate-tab@gnome-shell-extensions.gcampax.github.com', 'hide-dash@xenatt.github.com', 'hide-workspace@xenatt.github.com', 'panel-osd@berend.de.schouwer.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'apps-menu@gnome-shell-extensions.gcampax.github.com', 'remove-dropdown-arrows@mpdeimos.com', 'SkypeNotification@chrisss404.gmail.com']


(para curiosos y detallistas) Listando todo todo lo que haya:

Las extensiones activas provienen de dos fuentes: las que vienen por defecto en gnome-shell y las que nosotros instalamos manualmente. Para saber qué extensiones tenemos instaladas (en lugar de “activas”, que es lo de arriba) podemos correr un comandito que va a listar todas. Hay un modo bastante simple de listar todas las extensiones disponibles desde la terminal usando “ls”.

Para listar SÓLO las extensiones que nosotros instalamos manualmente, simplemente tenemos que ejecutar esta línea:

ls ~/.local/share/gnome-shell/extensions

El output será algo así:

Sólo para que quede claro, todas las extensiones están en una carpeta y cada extensión es un directorio, por lo que las podemos listar de la forma que querramos. También podemos ver qué extensiones instalamos desde nautilus, navegando a .local > share > gnome-shell > extensions, como se ve en la captura. Por supuesto, usar la terminal hace el trabajo más fácil para el objetivo que tenemos. Un dato más: acá también van a estar todas las extensiones que alguna vez probamos, si saben que no las van a usar nunca más, entonces no pierdan oportunidad y bórrenlas al carajo jeje.

Para listar todas las extensiones (incluso las que ya vienen incorporadas a gnome shell por defecto), podemos correr este comando:

ls ~/.local/share/gnome-shell/extensions && ls /usr/share/gnome-shell/extensions/

Recuerden que no todas las extensiones instaladas tienen que estar activadas! En mi caso, sólo a modo de ejemplo, “Launch and Exposè” (Launch-And-Expose@xenatt.github.com) está instalada pero no activada. Lo mismo con otras extensiones de sistema, como por ejemplo “Auto move windows” (auto-move-windows@gnome-shell-extensions.gcampax.github.com) que todavía no entiendo bien qué hace :P.

Ok, entonces lo primero es hacer la lista de qué queremos y qué no. La forma general es como dije arriba. Listamos y nos anotamos cuáles queremos y cuales no en un gedit o donde quieran. Si quieren hacer una lista de todo y luego seleccionar, pueden ir con este último comando que les pasé.

Paso 2: forzar la activación de extensiones

Como se imaginarán, una vez que tenemos la lista de las extensiones que nos interesan, la cuestión es simplemente correr un comando que active “esa” lista.

En una terminal pegamos:

gsettings set org.gnome.shell enabled-extensions "['alternate-tab@gnome-shell-extensions.gcampax.github.com', 'hide-dash@xenatt.github.com', 'hide-workspace@xenatt.github.com', 'panel-osd@berend.de.schouwer.gmail.com', 'user-theme@gnome-shell-extensions.gcampax.github.com', 'apps-menu@gnome-shell-extensions.gcampax.github.com', 'remove-dropdown-arrows@mpdeimos.com', 'SkypeNotification@chrisss404.gmail.com']"

Si se fijan con cuidado simplemente estamos haciendo esto:

gsettings set org.gnome.shell enabled-extensions " XXXX "

Reesmplazando XXXX por la lista de extensiones que obtuvimos en el primer paso. :)

La terminal siempre manda, así que con este comando “pisamos” toda la configuración de Gnome Tweak Tool. Si la extensión no está en la lista, estará apagada.

Cada vez que tengamos un problema, simplemente podemos correr este comando y ya. Todas las extensiones que hayamos listado se activan. Obviamente asegúrense de que las extensiones que corren funcionan correctamente y que no hacen “crashear” la shell… sino, buah, básicamente estarán haciendo cagada :)

Así que, para hacerla corta, en la lista sólo tenemos que poner extensiones que hayamos probado mucho y que funcionen bien. Mientras tanto, si no confiamos ciegamente en todas las extensiones que usamos, conviene tener un listadito con aquellas que son indispensables y que necesitamos para ser súper felices (léase user themes y alternate-tab jeje) y luego con cautela ir agregando otras, con cautela, repito.

Y repito de nuevo. Las extensiones que funcionan mal crashean la shell. Si las agregan y fuerzan su activación están atentando contra la estabilidad del entorno. Ojo.

Paso 3: Ejecución al inicio de sesión

El tercer paso consiste en autoejecutar al inicio de la sesión el resultado del paso 2, nuestro comando que fuerza la activación de las extensiones. Para eso tenemos que agregar un “launcher” al menú de autostart de gnome. Es muy sencillo.

Abran un gedit o editor de texto favorito y peguen:

[Desktop Entry]
Type=Application

Exec=gsettings set org.gnome.shell enabled-extensions " XXXXXX "

Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=false
Name[es_ES]=extensions.desktop
Name=shell extensions
Comment[es_ES]=
Comment=

Se va a ver algo así. Recuerden que tienen que reemplazar ” XXXXXX “ por sus extensiones y que las comillas son importantísimas.

Guardamos el archivo en el destino ~/.config/autostart (el rulito ~ significa su carpeta de usuario). Tienen que activar ver los archivos ocultos para acceder a “.config”. El nombre que le vamos a poner es shell-extensions.temp. Si, .temp. Ahí vamos.

Por último creamos el .desktop le damos permisos de ejecución al nuevo launcher. Abrimos una terminal y pegamos:

mv ~/.config/autostart/shell-extensions.temp ~/.config/autostart/shell-extensions.desktop && chmod +x ~/.config/autostart/shell-extensions.desktop

Listo. Terminamos. Para checkear podemos jugar un poco y desactivar todas las extensiones antes de reinicar. Reiniciamos y “vualá”, tutto aposto. Las extensiones que seleccionamos tendrían que estar activadas.

 


 

 

Resumen sin palabrerío:

El post en 3 pasos
1) Listamos las extensiones activas. Terminal: gsettings get org.gnome.shell enabled-extensions. Copiamos el output.
2) Probamos la activación forzosa. gsettings set org.gnome.shell enabled-extensions " XXXXXX ". Donde XXXX es el output del paso 1.
3) Hacemos un .desktop con el comando del paso 2 y lo metemos en la carpeta de aplicaciones al inicio.

Eso es todo por hoy amigos y amigas. Espero les sirva y, como siempre, preguntas, comentarios y experiencias serán más que bienvenidos.

Ps. algún día tengo que hacer el post con mis extensiones preferidas. O más bien sobre extensiones en gnome-shell. Pero como verán, me da un poco de miedo porque cada vez que empiezo termino haciendo estos posts que son bastante largos. Todo muy lindo, pero mi jefe me va a cortar las bolas si no me pongo las pilas, jajaj. Me voy a trabajar. :)

Salú!

 

Aside

[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

Sin PPA: Cómo instalar Geary 0.5.0 con soporte para Gnome-Shell (Ninja-Way)

Hola gente linda,

Hoy nuevamente con un post dedicado a Geary, mi cliente de correo de uso diario. Hace unos días leía que los chicos de Yorba mudaron Geary de GitHub al versionado Git de Gnome, para publicar versiones nuevas dentro de esa estructura. Obviamente, sólo se podía acceder a esa versión compilando el programa desde el código fuente, cosa que en general prefiero evitar.

Captura de pantalla de 2013-12-27 10:34:06

La tentación sin embargo era bastante grande porque entre las novedades se encuentra el soporte para el AppMenu de Gnome-Shell, el cual no sólo brinda una mejor integración con el entorno de escritorio, sino también una interface más limpia dentro del programa (chau al ícono de engranaje de la derecha superior).

Captura de pantalla de 2013-12-27 09:47:50

Hoy les cuento cómo instalar Geary 0.5.0, en un movimiento y sin PPA. ¿Por qué sin PPA?… la razón es simple. Shotwell está roto, y rompe el sistema de paqueterías bloqueando cualquier futura acción con apt-get. Una reverenda garcha, pero está así en los dos PPAs, el stable (wtf!) y el daily de Yorba. Así que para usar la última versión de Geary sin compilar código hay básicamente dos opciones, o desintalar por completo shotwell y luego agregar el PPA Daily, o bajar de prepo el paquete compilado e instalarlo, sin agregar ningún PPA y continuando con Shotwell instalado. Vamos, definitivamente, con la segunda opción. :)

Ninja-Install: Geary 0.5.0

Abran una terminal y peguen este código. Simple as that.

cd ~ && mkdir -p ~/.install-geary && cd ~/.install-geary && wget https://launchpad.net/~yorba/+archive/daily-builds/+files/geary_201312232249%7E0.4.3%2B1158%7Eubuntu13.10.1_amd64.deb -O geary-043-1158.deb && sudo dpkg -i geary-043-1158.deb ; sudo apt-get install -f -y && cd ~ && rm -R  ~/.install-geary

Y listo! Última versión de Geary flamante en menos de 10 segundos :)

Captura de pantalla de 2013-12-27 09:46:52

Eso es todo, por ahora, sigo entusiasmado preparando un post con una sorpresita para Plank :)

Salú!

Sin PPA: Cómo instalar Geary 0.5.0 con soporte para Gnome-Shell (Ninja-Way)

Gnome-Shell: cómo matar la terminal zombie

Hola a todos y todas,

Hoy voy con un post bien bien cortito.

Si utilizan Ubuntu-Gnome 13.10 y tienen instalado Gnome-Shell 3.8, seguramente habrán notado un bug realmente molestísimo en el que se cuelga la terminal (por suerte solucionado en las versiones más modernas de la shell). El síntoma del problema consiste en que de repente una terminal se empaca, se cuelga, y si bien se puede cerrar a nivel de sistema (matando el proces), por algún motivo seguimos viendo un pedazo de ventana de terminal por aquí y por allá, sin poder cerrarla. Hoy les cuento cómo cerrarla. :)

Captura de pantalla de 2013-12-23 17:25:27

Lo que no funciona

Lo primero que uno trata de hacer, por supuesto, es tratar de matar por completo el proceso de la terminal (ctrl+alt+t, y luego killall gnome-terminal), pero no funciona. Pucha, entonces reinicio gnome shell, a ver si se va!… apretamos alt+F2, escribimos la letra r, cuando la shell se reinicia… tadáaaan! la maldita bastarda todavía está ahí.

Solución

Hoy aprendí como cerrarla, jeje. Es muy fácil:

apretamos Alt+F2

y luego ingresamos:

nohup gnome-shell –replace &

Captura de pantalla de 2013-12-23 17:18:16

Listo!

Con esto se soluciona el asunto. Si si… es un poco medio pelo, porque cuando reiniciemos, si vuelve a pasar, hay que volver a introducir el comando (si apretan la “flecha para arriba”, salen los comandos que se ingresaron anteriormente y se ahorran de tipear de nuevo). En cuanto encuentre algo más permanente les cuento, pero por lo que parece, una vez ingresado el comando, la terminal no rompe más por lo que resta de la sesión (o mejor dicho, la shell no tiene más problemas con la terminal). :)

Salú! y hasta la próxima.

Lo aprendí de http://thismagpie.blogspot.it/2013/10/how-to-close-terminal-window-after.html

Gnome-Shell: cómo matar la terminal zombie