Uma aplicação CLI minimalista escrita em C puro para Linux e Windows que exibe um cursor (crosshair) overlay customizável e transparente que sobrepõe todas as janelas do sistema.
- Suporte Multiplataforma Nativo: Utiliza APIs de sistema nativas de alta performance (X11/Xinerama no Linux, Win32/GDI no Windows) sem dependências gráficas externas pesadas (como SDL ou OpenGL), mantendo o executável ultra-leve e autônomo.
- Sobreposição total (Overlay): Exibe a mira acima de qualquer aplicação ou jogo (tanto em modo janela quanto tela cheia sem bordas).
- Entrada Click-Through: Cliques do mouse passam direto pela janela da mira para que não haja interferência no seu jogo ou workflow.
- Suporte a Múltiplos Monitores: Detecta automaticamente todas as telas do sistema (via
Xineramano Linux eEnumDisplayMonitorsno Windows), permitindo alternar a mira entre os monitores com uma única tecla. - Conexão X11 Robusta (Linux - Sudo / TMUX): Autodetecta se a aplicação foi executada com
sudoou dentro de uma sessãotmux, encontrando automaticamente as credenciais.Xauthoritye variáveis de ambienteDISPLAYdo usuário logado na interface gráfica para evitar erros de permissão. - 4 Tipos de Cursores Comuns:
- Cruz Clássica (Classic Cross)
- Ponto de Precisão (Dot)
- Círculo Reticular (Circle)
- Retículo em T (T-Shape)
- Interface CLI Dinâmica: Atualiza o terminal em tempo real conforme você interage com o teclado (usando leitura em modo raw assíncrona com
selectno Linux e_kbhitno Windows).
Em distribuições baseadas no Ubuntu/Debian:
sudo apt update
sudo apt install build-essential libx11-dev libxext-dev libxfixes-dev libxinerama-devRode o comando make no diretório raiz:
make./crossingerNote
TMUX / SUDO: Se você estiver rodando em sessões do TMUX ou se precisar rodar com privilégios elevados (sudo), a aplicação tenta autodetectar o arquivo .Xauthority do seu usuário original e configurar o display. Se necessário, libere conexões locais com xhost +local: antes de iniciar, ou preserve variáveis com sudo -E ./crossinger.
A aplicação no Windows usa a API Win32 nativa e GDI para desenho de alta performance e transparência perfeita (via janelas layered).
Se você tiver o GCC instalado via MSYS2 ou MinGW no Windows, execute:
gcc -Wall -Wextra -O2 main.c -o crossinger.exe -lgdi32 -luser32Abra o prompt de comando do desenvolvedor do Visual Studio (Developer Command Prompt) e execute:
cl.exe /O2 main.c /link gdi32.lib user32.lib /out:crossinger.exeSe você estiver no Linux e quiser gerar o executável do Windows (crossinger.exe), instale o cross-compilador MinGW:
# No Ubuntu/Debian:
sudo apt install mingw-w64Em seguida, compile utilizando o Makefile:
make windowsQuando o programa estiver rodando no terminal, você poderá controlar a mira instantaneamente pressionando as seguintes teclas:
| Tecla | Ação |
|---|---|
1 |
Alterna para o tipo de cursor Cruz Clássica |
2 |
Alterna para o tipo de cursor Ponto de Precisão (Dot) |
3 |
Alterna para o tipo de cursor Círculo Reticular |
4 |
Alterna para o tipo de cursor Retículo em T (T-Shape) |
c ou C |
Cicla entre as cores disponíveis |
+ ou = |
Aumenta o tamanho do cursor |
- |
Diminui o tamanho do cursor |
G |
Aumenta o gap central (abertura das linhas da cruz) |
g |
Diminui o gap central |
T |
Aumenta a espessura da linha |
t |
Diminui a espessura da linha |
d ou D |
Ativa/Desativa o ponto central nos tipos 1, 3 e 4 |
b ou B |
Configura o atalho para ocultar a mira via clique direto do mouse (detecta modificadores Shift/Ctrl/Alt) |
o ou O |
Alterna o modo de atalho entre Hold (oculta enquanto pressionado) e Toggle (clique alterna) |
m ou M |
Move o cursor para o centro do próximo monitor (se houver múltiplos) |
Setas |
Ajuste fino da posição na tela (move a mira 1 pixel por vez) |
r ou R |
Reseta a posição da mira de volta para o centro do monitor ativo |
q ou Q |
Fecha a janela do overlay e encerra a aplicação com segurança |