Mostrando las entradas con la etiqueta x11. Mostrar todas las entradas
Mostrando las entradas con la etiqueta x11. Mostrar todas las entradas

2025-07-01

Tuneando firefox sobre ssh

Hace un tiempo hice que Firefox corra remoto sobre X. Para eso forwardeo el X por ssh (haciendo $ ssh -X blah) Y esto anda bien para correr sobre una VM. Pero cuando probé conectarme a mi linux desde mi mac no anduvo :(. Así que primero tuve que decirle como forwardear XAuthority corriendo XAUTHORITY=$HOME/.Xauthority firefox --no-remotePero cuando quiero conectarme a otra compu en mi red wifi anda muy lento. Así que hice algunas optimizaciones.

La primera es que cuando me conecto por ssh le paso -C para que comprima los datos, porque X manda bocha de cosas para forwardear la pantalla. Y el otro seteo que sirvió para algo fue ir a about:config en firefox y bajar el frame rate seteando layout.frame_rate en 15.

Con eso puedo usar firefox más o menos. Una cosa medio molesta es que el audio sigue saliendo por los parlantes de mi linux y no encontré fácil como forwardearlo o mutearlo, pero aunque sea así es posible usar firefox forwardeado por X por mi wifi, así que ese arreglo quedará para el futuro.

2020-10-01

Problema en VirtualBox después de upgradear host

Estoy usando en mi notebook Lubuntu. Upgradié de 18.04 a 20.04.1 y después de hacer el upgrade y reinstalar en uno de mis guests (que también es LUbuntu 20.04) los guest additions, cuando intento loguearme en la GUI la VM se aborta. Para que esto no pase más, con la VM apagada fui a Settings -> Display -> Graphic Controller y elegí VMSVGA. Después de esto puedo loguearme y el autoresize anda bien :). La idea la saqué de este reporte de bug

 Espero que les sirva!

2020-09-11

Bug en VSCode

En el último año empecé a usar VSCode para programar. Lo uso de una forma extraña, ya que me conecto por ssh a la máquina virtual donde está instalado, forwardeando X11. Aparte lo instalé usando el snap. Hoy lo quise arrancar y me dio una sorpresa fea. En vez de arrancar, solo apareció un rectángulo gris. Me di cuenta que había un problema así que reporté el bug y busqué un workarround. Al final me di cienta que era porque en VSCode upgradearon a Electron 9 y tiene un problema cuando corre con forwardeo de X11 adentro de un container.

Por suerte también hay un workarround. Corrí

export QT_X11_NO_MITSHM=1
en bash antes de arrancarlo y se solucionó el problema.

Update: Si no quieren setear una variable de entorno pueden arrancar VSCode corriendo

code --no-xshm
y también workarroundea el problema.

2015-06-17

eclipse@docker

Estuve scripteando un poquito, e hice que eclipse corra en un container de docker (base, ubuntu:trusty), con las cosas que necesito para desarrollar sandro

Primero hice un dockerfile bastante trivial:

FROM ubuntu:trusty
RUN apt-get update && apt-get install -y \
  git \
  mercurial \
  default-jdk


con su correspondiente .dockerignore

dockerfile
.dockerignore


en un directorio que nombré docker

Después hice una imagen con ese container (a la que llamé, sandro:base).

$ docker build -t sandro:base docker

Y después vino la parte complicada.

Decidí correr el eclipse en volumenes afuera del container, con la idea de que quizás sea una buena idea inyectarlo en muchos distintos y poder instalar fácilmente plug-ins y esas cosas y que siga andando todo cuando haga otros containers. Para eso hice 4 directorios:

  • eclipse: donde puse un eclipse luna
  • workspace: donde va el workspace del eclipse
  • devel: donde pongo todo mi código
  • apache-tomcat-7.0.62: acá puse un tomcat bajado de apache.org
 Usando esa estructura hice 2 scripts:
  • dev.sh corre cualquier programa en un container nuevo, setupeando todo para tener un ambiente razonable para laburar.
  • eclipse.sh arranca eclipse usando dev.sh
Primero les muestro eclipse.sh

#!/usr/bin/env bash 

./dev.sh $1 eclipse/eclipse -data /workspace 

Le pasás por parámetro la imagen que querés usar para arrancarlo, y usa como workspace el directorio workspace que les conté más arriba.

Y ahora, la posta. dev.sh

#!/usr/bin/env bash

xhost +SI:localuser:root
ID=$( docker run \
  -d --name sandro-dev -h sandro-dev \
  -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK -v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \
  -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
  -e GIT_SSH=/usr/bin/ssh \
  -v `pwd`/devel:/devel -v `pwd`/eclipse:/eclipse -v `pwd`/workspace:/workspace -v `pwd`/apache-tomcat-7.0.62:/tomcat \
  -p 127.0.0.1:8080:8080 \
  $@ )
docker wait $ID
docker rm $ID


Mejor voy línea por línea porque es un bardo

  1. xhost +SI:localuser:root habilita al container a poner aplicaciones en la GUI (las apps de los containers corren como root).
  2. ID=$( docker run \ arranco el container y guardo su id
  3. -d --name sandro-dev -h sandro-dev \ hace que el container corra desattacheado y setea nombre y hostname a sandro-dev para hacerme la vida más fácil
  4. -e SSH_AUTH_SOCK=$SSH_AUTH_SOCK -v $(dirname $SSH_AUTH_SOCK):$(dirname $SSH_AUTH_SOCK) \ setupea el forwardeo del agente de ssh. Puede resultar útil si quieren pushear código vía ssh sin usar passwords
  5. -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \ Comparte el display del desktop con el container
  6. -e GIT_SSH=/usr/bin/ssh \ para que si usan eclipse con git use el agente de ssh
  7. -v `pwd`/devel:/devel -v `pwd`/eclipse:/eclipse -v `pwd`/workspace:/workspace -v `pwd`/apache-tomcat-7.0.62:/tomcat \ monta todos los directorios que quedan afuera del container
  8. -p 127.0.0.1:8080:8080 \ forwardea el puerto 8080 (donde va a correr el tomcat de desarrollo) a localhost. Lo bindeo a 127.0.0.1 para que no se puedan conectar desde afuera.
  9. $@ ) recibe más parámetros para docker run, incluyendo los comandos para correr y el nombre de la imagen a usar
  10. docker wait $ID espera a que termine de correr el container
  11. docker rm $ID lo borra
Espero que les resulte útil, y espero mejoras y críticas,
Aureliano.

2015-05-23

Tuneando eclipse

Estoy usando eclipse con pydev para desarrollar usando pyzmq en un ubuntu 12.04 en forma remota por X11 (está en una VM). Para que sea usable, hice los siguientes cambios:

  • Para que use java7, toqué eclipse.ini y agregué -vm
    /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
  • Para que ande mejor pydev, fuerzo el stack de ipv4. Para eso agregué a eclipse.ini -Djava.net.preferIPv4Stack=true
  • Para que ande no tan lento, fuerzo que ande con GTK2 seteando la variable de entorno SWT_GTK3=0 (mirar acá para más detalles)
  • Para que ande git con el agente de ssh standard seteo la variable de entorno GIT_SSH=/usr/bin/ssh
  • Para interprete correctamente el package zmq, agregué zmq a los builtins (Window->Preferences->PyDev->Interpreters->Python Interpreters->Forced Builtins)
Happy hacking,
Aureliano.

2011-06-14

Tamaños de ventanas extraños en eclipse y workaround

En el laburo desde hace un tiempo estoy haciendo el experimento de correr varias VMs con los distintos proyectos en los que trabajo. Por lo tanto tengo varias VMs distintas (guests) corriendo que se conectan usando X a mi host.

En una de ellas tengo eclipse instalado con pydev. Y como host tengo un Windows 7 con X-Ming como server X. Y anda todo bastante bien salvo porque algunas ventanas de diálogo se van agrandando de formas extrañas hasta que se vuelve imposible usarlas. Y aparte, no sé por qué, no se pueden resizear usando el mouse (que sí se puede si lo corrés en Windows, gnome o kde normalmente).

Por lo tanto, busqué y encontré un workaround al problema, y edito a mano algunos archivos de configuración del workspace de eclipse para cambiar estos tamaños a una medida razonable para mi y para que quede documentado lo dejo anotado acá.

En el archivo ./org.eclipse.ui.ide/dialog_settings.xml sección DialogBoundsSettings setié:

<item value="1024" key="DIALOG_WIDTH"/>
<item value="768" key="DIALOG_HEIGHT"/>


En el archivo org.eclipse.ui.workbench.texteditor/dialog_settings.xml sección org.eclipse.ui.texteditor.FindReplaceDialog_dialogBounds setié:
<item value="1024" key="DIALOG_WIDTH"/>
<item value="768" key="DIALOG_HEIGHT"/>


En el archivo org.eclipse.search/dialog_settings.xml sección DialogBounds_SearchDialog setié:
<item value="1024" key="DIALOG_WIDTH"/>
<item value="768" key="DIALOG_HEIGHT"/>


Y por último, en el archivo org.tigris.subversion.subclipse.ui/dialog_settings.xml hice algo un toque distinto, seteando en la sección Workbench esto:
<item value="1280" key="CommitDialog.size.x"/>
<item value="768" key="CommitDialog.size.y"/>


Por supuesto, todos estos archivos hay que tocarlos con el eclipse apagado.

Happy hacking,
Aureliano.

2009-07-16

Firefox remoto y local

Problema: Tengo un firefox corriendo en X11 y quiero correr otro firefox remotamente por X11 en otro host (usando el mismo display). Si lo ejecuto directamente, haciendo ssh -X -n host firefox en vez de ejecutar el Firefox en la otra máquina, abre otra ventana del firefox que ya tengo corriendo.
Solución: Usando la opción -no-remote evito que el firefox busque ventanas de firefox abiertas para abrir una ventana nueva y se ejecuta remotamente. La línea de comando entera es: ssh -X -n host firefox -no-remote.

Gracias Pedro Varangot por contarme del parámetro -no-remote

Happy hacking,
Aureliano.