Como executar um conjunto personalizado de programas em um espaço de trabalho específico?

5

Eu uso vários espaços de trabalho para ter um contexto diferente para diferentes trabalhos. Portanto, eu executo o mesmo conjunto de aplicativos no mesmo espaço de trabalho repetidamente. E também executo o mesmo aplicativo em cada conjunto de aplicativos, portanto, definir o espaço de trabalho padrão em que cada aplicativo deve ser executado não funciona para essa finalidade.

Por exemplo:

  • Workspace1: 1 terminal + 2 guias aberto no Chrome + um documento aberto com PDF Viewer
  • Espaço de trabalho2: 3 Terminais + 4 abas abertas no Chrome + 1 aba aberta no Firefox + Eclipse

Portanto, existe alguma maneira de ter um script ou algo como set_workspace1.sh que, uma vez executado, abra todos os programas desejados em um espaço de trabalho específico?

BTW, estou executando 11.04

    
por Andres 12.04.2011 / 04:07

2 respostas

3

Eu não acho que exista essa função para o gerenciador de janelas padrão.

Mas o Devil's Pie pode fazer o que você quiser.

link

Citação do site da Devil's Pie: "Devil's Pie pode ser configurado para detectar janelas à medida que elas são criadas e corresponder a janela a um conjunto de regras. Se a janela corresponder às regras, ela poderá executar uma série de ações Por exemplo, posso fazer com que todas as janelas criadas pelo X-Chat apareçam em todos os espaços de trabalho, e a janela principal do Gkrellm1 não apareça no paginador ou lista de tarefas. "

Espero que isso tenha ajudado você,

Daniel

    
por omnidan 12.04.2011 / 09:11
1

As áreas de trabalho tecnicamente falando são referidas como viewports , uma seção específica da área de trabalho estendida, com coordenadas específicas, por exemplo 0, 0 é a viewport 1 e 1366, 0 seria a imediatamente à direita.

Deve-se notar que o Gerenciador de Configurações do CompizConfig tem uma opção para abertura "fixa" de uma janela no espaço de trabalho específico, mas é possível criar um script como você mencionou. Aqui está o meu exemplo.

#!/bin/bash
get_viewport()
{
  xprop -root -notype _NET_DESKTOP_VIEWPORT | awk '{print ,}' 
}

spawn_viewport_1()
{
  nohup gnome-terminal 2>&1   > /dev/null  &
  nohup chromium-browser 2>&1 > /dev/null  &
}

spawn_viewport_2()
{
 nohup xterm 2>&1 > /dev/null  &
  nohup firefox 2>&1 > /dev/null  &
}

main()
{
  case $(get_viewport) in
   "0, 0") spawn_viewport_1  ;; # note , single space in "0, 0" is important
   "1366, 0") spawn_viewport_2    ;;
  esac
}

main

Essencialmente, o que está acontecendo é que eu tenho duas funções, cada uma para uma viewport específica. Eu também tenho uma função que verifica em qual viewport estou atualmente. Se eu estiver atualmente na viewport 1 (coordenadas 0,0), ele gerará um conjunto de aplicativos. Se eu estiver na viewport 2 (coordenadas 1366,0), teremos diferentes conjuntos de aplicativos gerados.

    
por Sergiy Kolodyazhnyy 06.04.2016 / 15:27