Para as questões 1 e 2, vou dar uma wild suposição de que eles estão acessando a janela-raiz que pode ser desenhada através de RootWindow (3) , em seguida, usando XGetImage (3) para copiar o pixel da janela raiz dados em algum lugar para processá-lo ainda mais (por exemplo, descarregando-o para um PNG).
Estas páginas do manual podem ajudar: XOpenDisplay (3) , DefaultScreen (3) , RootWindow (3) , XGetImage (3)
Veja também esta pergunta no StackOverflow.
Quanto à questão 3, se Xinerama for usado, haverá mais de uma tela presente, e o aplicativo poderá obter informações sobre a posição e tamanho de cada tela, o que será novamente útil para selecionar a área a ser copiada com XGetImage(...)
.
Claro que tudo isso pressupõe que você está usando o Xlib. Eu ouvi dizer que existe uma alternativa melhor chamada XCB , mas pessoalmente eu nunca usei isso até agora.