He escrito un pequeño script en Python para cambiar con un solo clic entre el monitor de mi portatil y el monitor externo en Linux.
Usa aticonfig --query-monitor
para comprobar el número de monitores conectados y encendidos (luego como imaginareis está pensado para gráficas ATI). Si hay dos monitores conectados y ambos están encendidos, pasa al primero y apaga el segundo usando aticonfig --enable-monitor
y xrandr -s
para cambiar la resolución. Si hay dos monitores conectados pero sólo uno encendido, cambia al que estaba apagado.
Cada vez que cambiamos de monitor muestra un aviso usando libnotify. También escribe a la consola (más información), por si alguien lo prefiere.
Para usarlo no tenéis más que cambiar las resoluciones a las de vuestros monitores en el script y bien correrlo desde la línea de comandos o crear un lanzador en uno de los paneles para poder ejecutarlo con un sólo clic: botón derecho del ratón sobre el panel, Añadir al panel, Lanzador personalizado. O bien podéis asociarlo a una combinación de teclas.
Como extra, si hacéis que se ejecute al inicio ( Sistema -> Preferencias -> Sesiones -> Nuevo) servirá para que apague el monitor del portátil al iniciar si el externo está conectado.
No me hago responsable de cualquier problema que podáis tener por ejecutarlo. Es muy posible que falle porque está hecho en 5 minutos y sólo probado en mi pc. Haced una copia del xorg.conf por si acaso. Podéis hacer lo que queráis con el código, aunque es bastante tonto y simple, pero agradecería enlaces entrantes.
Error 404 página no encontrada. Un fallito?
¡Ouch! Solucionado :$
Joer, también le das al python? eres un hacha tío 😉
Python es de lo más sencillote Rick. Tienes módulos para hacer de todo y es bastante natural.
Pero además es potente. Con funciones de orden superior y esa clase de cosas 🙂
Vamos que es un gustazo de lenguaje.
Ya ya, si yo me he encaprichado de el hace poquito, por eso lo digo 🙂
Ya me he zampao el dive into python, la doc del libnotify, etc, asi que en cuanto tengo algo de tiempo a ver si cacharreo un poco 🙂
Pues valor y al toro. Ya me contarás que tal va 😉
Zootropo eres el mejor. Justo lo que necesitaba para ver las series con mi Dell 6400. Yo conecto la televisión a la salida de monitor, luego tengo que cambiar la resolución pero siempre veo la imagen tanto en el portátil como en la televisión.
¿Te ha funcionado Mark?
Pues me extraña… quiero decir, me alegro 😛
No lo he probado porque aun ando en el trabajo. Pero segun he leido el post creo que es justo lo que andaba buscando. Luego te cuento.
Bueno, si no te funciona al menos sabes los comandos que puedes utilizar.
Yo no soy tan «pro», pero me hice un script (dualhead.sh, que original…) que mediante «xrandr» me configura en mi MacBook el monitor externo que tengo enchufado para ampliar el escritorio a los dos monitores.
Son 4 líneas de script, pero con una es más rápido :).
¿Por qué no pones un enlace en tu blog Edu? Lo mismo le sirve a alguien.
Zootropo te cuento. Mi resolución en el portátil es de 1440×900 y la de la televisión es de 1024×768, me detecta perfectamente los dos monitores:
Connected monitors: crt1, lvds
Al hacer el cambio de portátil a TV apaga bien la primera pantalla y cambia la resolución para que se pueda ver bien la televisión. Pero vuelvo a ejecutar el script apaga la TV pero no me cambia la resolución.
Esta es la ejecución:
markdbd@markdbd-portatil:~/bin/scripts$ python monitores.py
Connected monitors: crt1, lvds
Enabled monitors: crt1
There is one enabled monitor: crt1
There are two connected monitors: crt1, lvds
Switching to monitor lvds
aticonfig: Writing to ‘/etc/X11/xorg.conf’ failed. Bad file descriptor.
Using /etc/X11/xorg.conf
Saved back-up to /etc/X11/xorg.conf.fglrx-1
¿Si ejecutas xrandr a mano pasa de tí mark?
xrandr -s 1440×900
Me funciona bien si luego ejecuto el xrandr -s 1440×900
Pues es lo que hace el script.
Prueba a ejecutar con DISPLAY:=0 a ver si es eso lo que lo jode
Ok listo, había asignado al revés las resoluciones. La resolución 1 es para la TV y la 2 para el portátil:
resol1 = «1024×768»
resol2 = «1440×900»
Ya esta resuelto y funciona perfectamente. Mil gracias, si te digo que todas las noches enchufo la tele, cambio la resolución y podía ver la película tanto en el monitor como en la Tele, te puedes imaginar lo bien que me viene este script. Gracias de verdad.
Ole 🙂 Pues me alegro.
Hola una duda, llevo poco tiempo con esto del ubuntu he probado con varios posts para ver tb la TV con mi ATI 9200 pero nada.
He probado este pero cuando me dice q no tengo ningún monitor conectado.
pere@pere-desktop:~$ aticonfig –query-monitor
Connected monitors: none
Enabled monitors: none
ESTE ES MI ARCHIVO XORG.CONF
Section «Files»
FontPath «/usr/share/X11/fonts/misc»
FontPath «/usr/share/X11/fonts/cyrillic»
FontPath «/usr/share/X11/fonts/100dpi/:unscaled»
FontPath «/usr/share/X11/fonts/75dpi/:unscaled»
FontPath «/usr/share/X11/fonts/Type1»
FontPath «/usr/share/X11/fonts/100dpi»
FontPath «/usr/share/X11/fonts/75dpi»
FontPath «/usr/share/fonts/X11/misc»
# path to defoma fonts
FontPath «/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType»
EndSection
Section «Module»
Load «i2c»
Load «bitmap»
Load «ddc»
Load «dri»
Load «extmod»
Load «freetype»
Load «glx»
Load «int10»
Load «type1»
Load «vbe»
EndSection
Section «InputDevice»
Identifier «Generic Keyboard»
Driver «kbd»
Option «CoreKeyboard»
Option «XkbRules» «xorg»
Option «XkbModel» «pc105»
Option «XkbLayout» «es»
Option «XkbOptions» «lv3:ralt_switch»
EndSection
Section «InputDevice»
Identifier «Configured Mouse»
Driver «mouse»
Option «CorePointer»
Option «Device» «/dev/input/mice»
Option «Protocol» «ExplorerPS/2»
Option «ZAxisMapping» «4 5»
Option «Emulate3Buttons» «true»
EndSection
Section «InputDevice»
Driver «wacom»
Identifier «stylus»
Option «Device» «/dev/wacom» # Change to
# /dev/input/event
# for USB
Option «Type» «stylus»
Option «ForceDevice» «ISDV4» # Tablet PC ONLY
EndSection
Section «InputDevice»
Driver «wacom»
Identifier «eraser»
Option «Device» «/dev/wacom» # Change to
# /dev/input/event
# for USB
Option «Type» «eraser»
Option «ForceDevice» «ISDV4» # Tablet PC ONLY
EndSection
Section «InputDevice»
Driver «wacom»
Identifier «cursor»
Option «Device» «/dev/wacom» # Change to
# /dev/input/event
# for USB
Option «Type» «cursor»
Option «ForceDevice» «ISDV4» # Tablet PC ONLY
EndSection
Section «Device»
Identifier «ATI Technologies, Inc. RV280 [Radeon 9200]»
Driver «ati»
BusID «PCI:1:0:0»
EndSection
Section «Monitor»
Identifier «Visual Sensa»
Option «DPMS»
EndSection
Section «Screen»
Identifier «Default Screen»
Device «ATI Technologies, Inc. RV280 [Radeon 9200]»
Monitor «Visual Sensa»
DefaultDepth 24
SubSection «Display»
Depth 1
Modes «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth 4
Modes «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth 8
Modes «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth 15
Modes «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth 16
Modes «1024×768» «800×600» «640×480»
EndSubSection
SubSection «Display»
Depth 24
Modes «1024×768» «800×600» «640×480»
EndSubSection
EndSection
Section «ServerLayout»
Identifier «Default Layout»
Screen «Default Screen»
InputDevice «Generic Keyboard»
InputDevice «Configured Mouse»
InputDevice «stylus» «SendCoreEvents»
InputDevice «cursor» «SendCoreEvents»
InputDevice «eraser» «SendCoreEvents»
EndSection
Section «DRI»
Mode 0666
EndSection
Alguién puede ayudarme?
¿Has probado «DISPLAY=:0 aticonfig –query-monitor» pere?
Por cierto, Zoo, sabes donde anda la doc del python-notify, la API, o algo así? Pq todo lo que he visto a sido código de otros programas…
Creo que libnotify trae una carpeta doc con documentación generada con doxygen. Pero también creo recordar que era bastante pobre, Rick.
Si, es la misma que ya había visto yo,y coincido contigo: es muy muy pobre…
Me lo he bajado y funciona a la perfección. Muchas gracias porque llevaba ya unos cuantos días buscando algo parecido.
Creo que esto supero mis conocimientos he bajado el archivo localize donde dice la resolucion le doy 2 click y me manda el anuncio de mostrar o ejecutar en terminal lo ejecuto en terminal y nada no pasa nada Yo tengo una HPdv1000 con una tarjeta de video Intel
Mi laptop la conecto a mi TV una Sony Bravia pero siempre tengo que andar con las teclas de la laptop para cambiar de monitor y quisiera poder entender este script espero y me ayuden
@Rodrigo, como dice claramente el texto sólo funciona con tarjetas ATI
Podrian ayudarme, soy principiante, tengo instalado mandriva 2006, como puedo instalar el archivo para ver mi monitor en lugar del display de mi lap?
mi tarjeta de video es una ti radeon express 200M
Estoy peleando por poder usar la tv-out (s-video) de mi laptop Dell Inspirion 6400 (Ati Radeon x1300)
El problema que presento es que al cambiar monitor a TV la pantalla de television se ve negra y se apaga el pc tambien… (el cable esta bien ya que funciona en windows)
La ejecucion es:
Connected monitors: lvds, tv
Enabled monitors: lvds
There is one enabled monitor: lvds
There are two connected monitors: lvds, tv
Switching to monitor tv
aticonfig: Writing to ‘/etc/X11/xorg.conf’ failed. Bad file descriptor.
Using /etc/X11/xorg.conf
Saved back-up to /etc/X11/xorg.conf.fglrx-2
Y se van a negro las dos pantallas
sabes si en java se puede detectar el numero de monitores conectados… agradeceria tu respuesta…
si sabes … entonces dime cual podria ser el comando…
saludos 😀
Tengo un problema, al conectar un monitor externo (LG) desde ubuntu, la imagen no me aparece completa, como le puedo hacer para que la imagen se muestre completa