Programaticamente Obtendo o nome do aplicativo Front-most (atualmente em execução) no Unity

3

Estou tentando escrever um script que é executado de forma diferente, dependendo do programa atualmente ativo, e estou querendo saber se existe alguma maneira de encontrá-lo de forma programática.

Por exemplo, eu venho do mundo do Mac e, no Applescript da Apple, você pode fazer o seguinte:

set appPath to the path to the frontmost application
set appName to the name of file appPath

e isso lhe dará o nome do aplicativo em execução no momento.

Existe algo semelhante que eu possa fazer no ubuntu-land?

Obrigado!

    
por NHDaly 25.06.2013 / 22:01

1 resposta

3

xprop pode informar o ID da janela que está ativa

xprop -root|grep '^_NET_ACTI'

E você pode usar a saída de wmctrl para descobrir o nome de todas as janelas, correspondidas às suas IDs

wmctrl -l

wmctrl não está na instalação padrão, então você precisará sudo apt-get install wmctrl .

Observe que não há preenchimento à esquerda na saída de xprop , portanto, precisamos preenchê-lo antes de aplicá-lo na saída de wmctrl . Todos juntos, algo assim deveria fazer isso:

$ WINID=$(xprop -root|grep '^_NET_ACTI' |sed -e 's/.*# //' -e 's/0x/0x0/')
$ wmctrl -l |grep $WINID
0x07c00006  0 my-hostname The Title of The Window
    
por Nate from Kalamazoo 25.06.2013 / 23:13

Tags