¿Cómo le digo a un programa de inicio que empiece minimizado?

19

Aquí hay una pregunta que me ha estado molestando. ¿Sabes cómo puedes configurar un programa para que se ejecute al inicio, verdad? Bueno, ¿cómo puedo decir que empiece minimizado, como lo harías en Windows?

TeamViewer comienza a abrirse, pero lo necesito minimizado, y Tray-it no parece una forma tan elegante de hacerlo.

semi-novato
fuente

Respuestas:

21

Puedes usar una herramienta llamada devilspie Instalar devilspie .

Esta herramienta puede tomar medidas tan pronto como se inician los programas, como enviar a espacios de trabajo, fijar y también minimizar. Un tutorial está aquí .

  • Para instalarlo desde la línea de comandos, ejecute:

sudo apt-get install devilspie.

  • Para configurarlo para minimizar Teamviewer cada vez que se ejecuta:

    mkdir ~/.devilspie

Cree un archivo llamado ~/.devilspie/teamviewer.dsy pegue las siguientes líneas:

(if  
(is (application_name) "Teamviewer")  
(begin (minimize) )  
)  

Si desea una interfaz gráfica de usuario para una configuración más fácil, debe tomar nota de gdevilspie Instalar gdevilspie

(si GDevilspie no comienza, intente parchar uno ).

MJB
fuente
1
Esto funciona, pero cuando restauro la ventana minimizada se dibuja incorrectamente: el fondo de la ventana de TeamViewer se convierte en una copia de lo que está debajo y parte del texto no es visible, por ejemplo, i.imgur.com/0p6yR.png (he oscurecido texto en los tres cuadros de texto). Otras aplicaciones de vino no hacen esto (Notepad ++, Picasa).
misterben
5

Me encontré con esta publicación con el mismo problema de que TeamViewer no se inicia minimizado cuando se configura para el inicio automático durante el inicio del sistema Ubuntu.
El método descrito por @MJB el 27 de enero a las 16:02 funcionó perfectamente para mí (estoy ejecutando Ubuntu 10.10 32bit, todas las actualizaciones instaladas hasta esta fecha, con teamviewer_linux_x32_v6.0.9224.deb).
No experimento los problemas técnicos descritos por @misterben el 14 de febrero a las 18:50.
Instalé GDevilspie a través del Centro de software de Ubuntu, lo ejecuté, creé una nueva regla y configuré GDevilspie para mostrar el siguiente código en la pestaña "Sin procesar":

( if 
( begin 
( is ( application_name ) "Teamviewer" )
( is ( window_name ) "TeamViewer" )
) 
( begin 
( minimize )
( println "match" )
)
)

El demonio devilspie está configurado para iniciarse automáticamente durante el inicio del sistema y teamviewer está configurado para iniciarse automáticamente a través del Sistema -> Preferencias -> Aplicaciones de inicio (haga clic en Agregar, comando: teamviewer).

Sin embargo, sería genial si los desarrolladores de TeamViewer integraran un interruptor de inicio minimizado para Linux ...

Gracias MJB! :)

qwertz
fuente
4

Minimizar un programa depende del programa si es compatible o no. También depende si el programa tiene una opción en la interfaz gráfica de usuario o mediante la línea de comandos. Por ejemplo, vlc tiene una opción en las preferencias que le da la oportunidad de iniciarla minimizada. Pero también tiene una opción en la línea de comando para iniciarla minimizada (como parámetros). La opción de minimizar también cambia según el programa. Algunos programas pueden ser program -minotros program -systray, etc. Verifique que Teamviewer, por ejemplo, tenga una opción para esto en las opciones de interfaz gráfica de usuario. Si el programa tiene un parámetro para minimizar la línea de comando, simplemente agréguelo al administrador de inicio.

Luis Alvarado
fuente
Teamviewer usa Wine para admitir la ejecución en Linux. Como las versiones de Windows no aceptan ningún parámetro de línea de comandos, tampoco lo hace la versión de Linux. Además, si uno lo minimiza en la bandeja, usará el ícono de Wine, a menos que la herramienta que utilice utilice otra.
Greg Chabala
1

También estoy minimizando Teamviewer a la bandeja en el inicio, pero estoy usando KDocker .

sudo apt-get install kdocker

Mi script de inicio es una línea:

kdocker -n Teamviewer -i /opt/teamviewer/teamviewer/7/desktop/teamviewer.png -d 40 /usr/bin/teamviewer7 &
  • -n es el nombre de la ventana
  • -i es el archivo de icono
  • -d es un límite de 40 segundos, después del cual kdocker se dará por vencido si no puede encontrar una ventana coincidente
Greg Chabala
fuente
0

Desde Teamviewer 8.0.20931, la función de bandeja del sistema se minimiza automáticamente. Pero en Gnome classic creará Wine System Tray y no sé cómo minimizarlo. Probé el script (guardado como ~ / .devilspie / wine.ds):

( if 
( begin 
( is ( application_name ) "Wine" )
( is ( window_name ) "Wine System Tray" )
) 
( begin 
( minimize )
( println "match" )
)
)

... Pero no funcionó

Con el nuevo Teamviewer 8.0.20931 para Linux, incluso iniciar sesión en la pantalla de inicio de sesión de Linux funciona, cuando ningún usuario aún no ha iniciado sesión. Pero después de un tiempo cuando inicias y cierras sesión dos veces más o menos, no puedes conectarte a Teamviewer. Debe tener acceso remoto a través de la línea de comandos para reiniciar la computadora, luego funciona nuevamente.

zeroconf
fuente
0

Devilspie no funcionó en mi sistema por alguna razón. Finalmente, encontré un sustituto (no tan elegante). Instalé wmctrl:

sudo apt-get install wmctrl

Utilizando wmctrl -lencontró los nombres de las ventanas, quería cerrar al inicio. Después de eso, coloque esos comandos en el script (cree un nuevo archivo vacío y asígnele un nombre .<...>.sh. Punto al principio del nombre para ocultarlo):

wmctrl -c <Window_1>
wmctrl -c <Window_2>
wmctrl -c <Window_3>

Finalmente, agregó este archivo a las aplicaciones de inicio unos segundos después de los objetivos.


Tenga en cuenta que este comando cierra las ventanas. Para iniciar el programa minimizado, en diferentes espacios de trabajo, encuentre las opciones apropiadas en el manual del programa.

Sergey
fuente
A menos que lo haga esperar "inteligentemente" a la ventana, el éxito dependerá del tiempo entre la apariencia de la ventana y el comando para minimizar. Como se dijo, es mejor que espere con inteligencia la ventana, de lo contrario no funcionará cuando su sistema esté ocupado (y, por lo tanto, más lento). Además, existe el riesgo de conflictos de nombres, ya que no utiliza la identificación de la ventana, sino (parte de) el nombre como identificador. ver askubuntu.com/a/663288/72216
Jacob Vlijm el
Estoy de acuerdo contigo. Incluso publiqué mi versión del guión allí. Sin embargo, todavía uso este para el espectador del equipo.
Sergey
0

¡Solución de trabajo 2017!

Vengo de la edición de Manjaro (XFCE), pero como se trata de una solución cross-linux con devilspie, esta es la solución completa para iniciar el visor de equipo minimizado:

  1. Terminal abierta

  2. Instalar devilspiepaquete:

    apt-get install devilspie
  3. Crear carpeta de inicio:

    mkdir ~/.devilspie
  4. Cree el siguiente script (use el editor que desee en lugar de nano):

    nano ~/.devilspie/teamviewer.ds
  5. Pegue el siguiente script y guarde el archivo (para nano- CTRL + x , luego Y , luego ENTER ):

    ( if
    ( begin
    ( is (application_name) "Teamviewer")
    ( is (window_name) "TeamViewer")
    )
    ( begin (close) )
    )
    1. Desde la devilspieperspectiva, se realizan todos los pasos, pero la ventana lateral "Computadoras y contactos" aún se mostrará en cada inicio. Para ocultarlo, abra el:

TeamViewer -> Extras -> Opciones -> Avanzado -> "Mostrar opciones avanzadas" -> "Mostrar equipos y contactos al inicio" (se encuentra en la sección "Configuración avanzada para equipos y contactos") y desactívelo.

Los pasos son para TeamViewer 12 . En versiones posteriores pueden ser diferentes.

NOTA:

Usar (minimizar) en lugar de (cerrar) en el script devilspie me trajo el error "TeamViewer no está listo. Verifique su conexión" y sin reiniciar el servicio del visor de equipo no funcionó.

Erikas
fuente
0

en la nueva versión, el programa ya tiene un icono en la bandeja, pero aparecen dos ventanas principales del programa al inicio. Entonces estoy usando este script

#! /bin/sh

/opt/teamviewer/tv_bin/TeamViewer &
sleep 10
TV_WIN_ID=$(xdotool search --name TeamViewer)
TV_WIN_ID2=$(xdotool search --name 'Компьютеры и контакты')

if [ -n "$TV_WIN_ID" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID
 xdotool key Alt+F4  
else
 exit 1
fi
if [ -n "$TV_WIN_ID2" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID2
 xdotool key Alt+F4  
 else
exit 1
fi
Andrey
fuente