Eu tenho um sistema de quiosque com um servidor X em execução, hospedando diferentes programas gráficos. Todos os programas são mutuamente exclusivos, pois suas unidades systemd entram em conflito. Em alguns desses programas, quero usar um cursor X11 nativo, como tcross . Posso configurá-lo na unidade systemd do respectivo aplicativo via xsetroot
. Também é possível ocultar o cursor usando xsetroot
ou outra ferramenta sem reiniciar o servidor X ?
Opções que já excluí:
-nocursor
parâmetro do servidor X - isso desativa o cursor para todos os aplicativos durante todo o tempo de execuçãounclutter
- Desejo que o cursor fique oculto no respectivo aplicativo durante todo o tempo de execução e não apenas quando não for movido.
[Unit]
Description=Plain X.org server
After=plymouth-quit-wait.service
[email protected] display-manager.service
[Service]
Type=simple
Environment=DISPLAY=:0
ExecStart=/usr/bin/Xorg vt7 -nolisten tcp -noreset -nocursor
# Wait for server to be ready and set kiosk configuration.
ExecStartPost=/usr/bin/kiosk
# Set chicken as cursor to be able to test touch screen
# and see whether X server is actually running.
ExecStartPost=/usr/bin/xsetroot -cursor_name tcross
Restart=on-failure
RestartSec=3
[Install]
WantedBy=graphical.target
Se o seu servidor X11 tiver a extensão XFIXES (visto em
xdpyinfo
), você pode escrever um pequeno programa C para chamarXFixesHideCursor()
a janela raiz para ocultar todos os cursores até que o programa termine. Você provavelmente precisará instalar alguns pacotes de desenvolvimento X11 (como olibXfixes-devel
, mas depende da sua distribuição) para ter o arquivo de inclusão/usr/include/X11/extensions/Xfixes.h
. Crie um arquivonocursor.c
para armazenar:e compilar com
gcc -o nocursor nocursor.c -lX11 -lXfixes
. Execute./nocursor
em um ambiente adequado comDISPLAY
set e os cursores não devem aparecer até que você interrompa o programa.