Obtém o Virtual Desktop atual - number / name / tag / id?

5

Como obter o número e / ou o nome (ou tag / id ... etc) do desktop virtual usado atualmente?

Linha de comando, scripts, soluções C / C ++ permitidas (, embora portáveis para C / C ++ sejam preferidas). ;)

Estou mais interessado em KDE e GNOME , além de dwm , xmonad , awesome - soluções para outros ambientes de área de trabalho são bem-vindas (Eu adoraria apoiar o máximo que puder, a fim de fornecer a solução mais universal possível).

Entre. Para os interessados, para ser mais específico sobre usecase: estou interessado em timetracking orientado em torno de desktop + windows focus + xevents + multiplescreen. Atualmente, existem soluções separadas para isso ( ktimetracker rastreia as tarefas dependendo das áreas de trabalho, enquanto o rastreamento de aplicativos é muito pobre - não há suporte a expressões regulares, apenas títulos de janela exatos - > não é muito útil. Por outro lado, workrave rastreia o teclado e atividade do mouse, mas não tem conhecimento da tarefa de área de trabalho > em que trabalho.), gostaria de fazer algo que mesclasse essas informações para obter uma imagem mais precisa (talvez incorporando Aprendizagem de regras de associação ou outra técnica Data mining ) das atividades I ter (a fim de obter informações mais precisas relacionadas com os meus hábitos, em ordem com "ant- RSI lutar";)) .

Portanto, se sua área de trabalho seguir um paradigma diferente de "Virtual Desktop + Windows (com nomes e títulos)", mostre código / cli snippet, que mostra informações sobre janelas / quadros / aplicativos atualmente usados + área de trabalho / tarefa atualmente selecionada / tags (eventualmente, tela).

    
por Grzegorz Wierzowiecki 29.10.2011 / 21:34

2 respostas

5

Os gerenciadores de janela que aderem aos padrões FreeDesktop armazenam informações sobre desktops em propriedades da janela raiz , em particular:

  • _NET_NUMBER_OF_DESKTOPS : número de desktops virtuais
  • _NET_CURRENT_DESKTOP : índice da área de trabalho ativa
  • _NET_DESKTOP_NAMES : lista de nomes dos desktops virtuais

Você pode acessá-los com qualquer interface para XGetWindowProperty como xprop . No shell, wmctrl -d fornece uma maneira prática de listar os desktops virtuais.

Até onde sei, apenas o gerenciador de janelas é notificado quando uma propriedade da janela raiz é alterada. Portanto, se você quiser reagir à troca de área de trabalho virtual, terá que trabalhar com o gerenciador de janelas. Por exemplo, com o seu caso de uso, eu usaria os ganchos Lisp fornecidos pelo meu gerenciador de janelas ( Sawfish ) quando qualquer coisa interessante acontecesse. / p>     

por 31.10.2011 / 21:24
2

Também dê uma olhada em arbtt , o Rastreador de tempo de base de regra automática < Escrito principalmente por Joachim Breitner em Joachim Breitner Haskell "> Haskell . Veja o exemplo de configuração para ver o que ele é capaz de fazer, ou seja, rastrear seu tempo de trabalho através de títulos de janela focados e regras de tempo. (Talvez mais, eu nunca tentei; nenhum caso de uso aqui, mas parece similar ao que você tenta fazer.)

Está disponível hackage e nos repositórios do Debian .

    
por 13.11.2011 / 13:59