elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 06:48  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa  (Leído 911 veces)
Abakus

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« en: 14 Noviembre 2011, 21:02 »

Hola, creo que este es el sitio correcto para ello, estoy en busca de conseguir que el panel de xfce4 se oculte cuando hay una aplicación maximizada, en vista de que no tenia ni idea de como empezar lo que intente fue que al lanzar firefox se ocultara automaticamente, modifique el firefox.desktop pero no conseguí ejecutar dos ordenes en este solo desktop:
Código:
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s true & firefox

Lo segundo que hice es relizar un shell script que busque si firefox esta andando lo conseguí pero tengo que ejecutar continuamente el script para que se oculte o no, le puse un while pero relentiza el SO.
¿Pueden ayudarme?


« Última modificación: 14 Noviembre 2011, 21:03 por abakus » En línea

    bakus
Abakus

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« Respuesta #1 en: 21 Noviembre 2011, 23:55 »

Bueno comentar que parcialmente he resuelto esto.
Lo que he hecho a sido que el firefox.desktop o cualquier otro lanzador de aplicación ejecute un script y en este caso el script es el siguiente:
Código:
#!/bin/bash
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s true
firefox
xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s false
Cuando sea cerrado firefox volvera a aparecer el panel, prefiero que sea al estar maximizado pero no se como conseguirlo, igualmente espero que esto le sirva a más gente.
Quizá esto este mejor en el subforo GNU/Linux...


En línea

    bakus
RyogiShiki


Desconectado Desconectado

Mensajes: 709


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« Respuesta #2 en: 22 Noviembre 2011, 01:33 »

Y porque simplemente no usas F11? O si es para algo más práctico pues avisas.

Saludos
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 709


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« Respuesta #3 en: 22 Noviembre 2011, 04:06 »

Hola! Bueno pues hoy estoy de buenas y me dieron ganas de hacer el Script, me costó un poco pero aqui está, está hecho en Ruby, y funciona de la siguiente manera: Cada 5 segundos el script comprueba que no existan ventanas maximizadas, si hay ventanas maximizadas entonces pone el panel en autohide, si no hay ventanas maximizadas lo pone otra vez normal.

Bueno sin mas ni mas aquí está:

daemonw.rb:
Código
#!/usr/bin/env ruby
 
def have_windows_maximized?
   set_bar_hide = false
 
   get_windows_state = %x[wmctrl -l -G]
   get_windows_state.each_line do |s|
     status = s.gsub(/^[0x123456789abcdef]{10}\b /, "")
     if (status[" 0 0"] && !(status["Escritorio"] || status["Desktop"])) then
puts status
set_bar_hide = true
break
     else
set_bar_hide = false
     end
   end
   return set_bar_hide
end
 
def set_status_bar
   if (have_windows_maximized?) then
     %x[xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s true]
   else
     %x[xfconf-query -c xfce4-panel -p /panels/panel-0/autohide -s false]
   end
end
 
loop do
 set_status_bar
 sleep(5)
end
 

daemon.rb:
Código
#!/usr/bin/env ruby
 
require 'daemons'
 
Daemons.run('daemonw.rb')
 

Lo que necesitas para que funcione:
1. tener instalado Ruby y rubygems
2. tener instalada la gema daemons:
Código
su -c 'gem install daemons'
3. tener instalado wmctrl ya dependiendo de la distro ue tengas ha de estar en los repos.

Como se usa:

Debes tener los dos scripts en el mismo directorio, para iniciar el servicio o daemon lo haces así:
Código
ruby daemon.rb start
o simplemente:
Código
./daemon.rb start
pero debes darle entonces permisos de ejecución
y para terminarlo:
Código
ruby daemon.rb stop
o
Código
./daemon.rb stop
Cualquier fallo porfavor comunicalo.

Lo probé y reconoce las ventanas maximizadas, a la primer ventana que encuentra manda el comando, y si ve que no hay maximizadas lanza el unset del comando, lo probe con una entrada de gnome a falta de xfce.

Descarga de archivos:
Mediafire: http://www.mediafire.com/file/azd5rys1hbu5brh/daemon.rb.tar.gz
Hotlink: http://zeroadmin.heliohost.org/daemon.rb.tar.gz

NdP: Si la ventana está maximizada, pero se encuentra minimizada también es detectada como maximizada.

NdP2: Para instalar la gem es necesario tener instalados los paquetes de desarrollo de ruby (ruby-dev) tener preferiblemente Ruby 1.9.2, y para evitar problemas GCC.
Saludos
« Última modificación: 22 Noviembre 2011, 05:51 por RyogiShiki » En línea

Abakus

Desconectado Desconectado

Mensajes: 50



Ver Perfil
Re: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« Respuesta #4 en: 22 Noviembre 2011, 16:04 »

 ;-) ;-) ;-) Muchas gracias voy a probarlo, espero que me funcione bien en Arch.
En línea

    bakus
RyogiShiki


Desconectado Desconectado

Mensajes: 709


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: Auto ocultar panel (xfce) cuando hay una aplicacion a pantalla completa
« Respuesta #5 en: 22 Noviembre 2011, 16:09 »

Bien, espero sea de ayuda. Si no te funciona por favor reportas el comportamiento presentado para corregirlo.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines