✦ K-UI - K-UI (Holográfica/Cósmica)#
O K-UI (também chamado de K-UI) é uma engine de interface visual opcional que transforma o Codis em uma experiência cinematográfica com nebulosas, auroras, partículas quânticas e uma estética sci-fi imersiva, inspirada em Tron Legacy, Iron Man HUD e Cyberpunk 2077.
Ativando o K-UI#
| Método | Ação |
|---|---|
Ctrl+Alt+N |
Ativa/desativa o K-UI |
| Menu Ferramentas → ✦ K-UI (toggle) | Ativa/desativa |
Paleta de Comandos (Ctrl+Shift+P) → "K-UI" |
Ativa |
O estado é persistido em config.json (kui_enabled: true/false, padrão false). Ao reiniciar com kui_enabled: true, o K-UI reativa automaticamente após 300 ms.
Nota: K-UI e Vim Mode são mutuamente exclusivos. Ativar um desativa o outro.
O que Muda com o K-UI Ativo#
Visual#
- Fundo cósmico - nebulosas e auroras renderizadas em thread separada via PIL, animadas continuamente
- Partículas quânticas - flutuantes e reativas à velocidade de digitação
- Sistema solar de arquivos - cada arquivo aberto recente orbita como planeta na tela de boas-vindas
- Buracos negros - crescem com a quantidade de erros de lint, exercem gravidade sobre meteoros e estrelas
- Wormholes - portais quânticos que teletransportam partículas entre dois pontos do espaço
- Cometas - cauda de plasma longa cruzando a tela em intervalos
- Satélites - objetos lentos atravessando o cosmos com painéis solares
- Nascimento estelar - nebulosas protoestelares surgindo no cosmos
- Sash holográfico - divisores do
PanedWindowredesenhados com efeito de brilho
Componentes Substituídos#
| Componente clássico | Componente K-UI |
|---|---|
| Tab Bar (Tkinter Label) | KTabBar holográfica com indicadores de atividade |
| Top Bar (menu/toolbar) | KTopBar com glassmorphism |
| Status Bar | KStatusBar com displays digitais |
| Welcome Screen | KWelcome cósmica com sistema solar |
Spotlight (Paleta de Comandos Holográfica)#
Com o K-UI ativo, Ctrl+Space abre o Spotlight - paleta de comandos redesenhada com:
- Interface holográfica com glassmorphism
- Busca fuzzy em tempo real em 100+ comandos
- Ícones por categoria e animação de entrada/saída suave
Categorias disponíveis: Arquivo · Editar · Executar/Formatar · Exibir/Temas · Navegação (linha, símbolo) · Painéis · Ferramentas · Modos especiais · LSP · Painéis flutuantes
Painéis Flutuantes (Detach)#
No modo K-UI, qualquer aba do painel inferior pode ser "despluggada" para uma janela independente:
- Botão
⊞na barra de abas do painel inferior - Menu de contexto - clique direito em qualquer aba → "⊞ Despluggar 'nome'"
- Spotlight - busque "Despluggar" + nome do painel
Painéis que podem ser despluggados: terminal · output · git · debug · regex · problems
Para devolver, clique direito na aba → "⊟ Reancoxar 'nome'".
Perfis de Performance#
Ajustáveis via Ferramentas → K-UI: Performance ou Spotlight → "Perf":
| Perfil | Efeitos | FPS | CPU |
|---|---|---|---|
quantum (alias ultra_plus) |
Tudo: física completa, subatômico, screensaver | 120 | Muito alto |
ultra |
Alto: nebulosas + partículas + aurora | 60 | Alto |
high |
Médio-alto: sem subatômico | 45 | Médio-alto |
balanced |
Padrão: nebulosas + partículas básicas, anéis, scan | 30 | Médio |
windows (alias power_saver) |
Reduzido: sem efeito de scan, otimizado para Windows | 30 | Médio-baixo |
low (alias minimal) |
Econômico: ainda com partículas, meteoros e sistema solar, mas sem anéis/scan/buracos negros | 24 | Baixo |
Apesar do nome,
minimalnão remove todas as animações - é um alias exato delow, que ainda exibe partículas, meteoros e o sistema solar de arquivos, só com volume reduzido (30 estrelas, 12 partículas) e sem os efeitos mais pesados (anéis, scan, buracos negros, subatômico).
Os perfis quantum e ultra exibem confirmação antes de ativar. O perfil é salvo em config.json (kui_perf) e pode ser alterado em tempo real.
Easter Eggs#
O K-UI possui easter eggs ativados por sequências de teclado digitadas no terminal integrado (/codis <código>):
| Código | Efeito |
|---|---|
konami |
Explosão de partículas Konami |
nova |
Supernova + chuva de meteoros |
alien |
Naves alienígenas invadem o cosmos |
nier |
Artefatos da humanidade flutuam no vazio |
glitch |
Glitch cósmico máximo |
freeze |
Congela a animação (modo debug) |
reset |
Big Bang - reseta todo o cosmos |
horror |
Visões subliminares cósmicas |
space |
Nascimento estelar em massa |
codis |
Efeito especial do Codis |
KHoverTooltip - Painel de Aprendizado Cósmico#
Ao clicar em elementos da interface K-UI, um tooltip contextual (KHoverTooltip) exibe fatos de física quântica e cosmologia em 14 idiomas. Ativo no perfil balanced ou superior.
Os fatos cobrem: emaranhamento quântico, singularidades, dilatação temporal, nebulosas, tunelamento, dualidade onda-partícula, Higgs, matéria escura, energia escura, evaporação de buracos negros, wormholes, estrelas de nêutrons, fundo cósmico de micro-ondas, multiverso, espaguetificação, relatividade e constante de Planck.
Integração com Temas#
O K-UI usa sua própria paleta de cores (_pal()) que ignora propositalmente os atributos do tema ativo para garantir a estética cósmica:
void = #020209(dark) ou#0d0d2b(light)text_bg,text_fg,text_cur,text_selsão cores otimizadas para legibilidade sobre o void
Ao trocar o tema com o K-UI ativo, apply_theme() reconstrói a paleta e reaplicar os efeitos visuais automaticamente.
Compatibilidade#
O K-UI é completamente opcional e não-destrutivo: desativá-lo restaura a interface clássica exatamente como estava, incluindo workspace e arquivos abertos.
Não compatível com:
- Vim Mode - ativar um desativa o outro automaticamente
- Sistemas sem suporte a transparência nativa de janela
PIL/Pillow é necessário para renderizar nebulosas em background. Sem ele, o K-UI usa um fundo de gradiente puro como fallback.
Referências Técnicas#
| Arquivo | Responsabilidade |
|---|---|
src/ui/k_ui/_engine.py |
KEngine + KWelcome - motor principal de animação |
src/ui/k_ui/_colors.py |
Paletas, interpolação de cor, utilitários de widget |
src/ui/k_ui/_perf.py |
Definição dos 6 perfis de performance |
src/ui/k_ui/_easter.py |
Detecção de sequências e disparo de easter eggs |
src/ui/k_ui/_bgrenderer.py |
Renderização PIL de nebulosas/auroras em thread separada |
src/ui/k_ui/_tooltip.py |
KHoverTooltip - painel de aprendizado contextual |
src/ui/k_ui/_widgets.py |
KGlassPane, KTopBar, KTabBar, KStatusBar, KPortal |
src/ui/k_ui/__init__.py |
KUI - controlador principal e re-exports |
Barra lateral (K-UI Dock)#
No modo K-UI a barra lateral (Explorador, Busca, Git, etc.) é um painel flutuante sobre o conteúdo - a mesma sidebar do modo clássico, sem duplicação.
| Ação | Como |
|---|---|
| Abrir/fechar | Ctrl+E, ícones da barra de atividades ou botão ▶/◀ |
| Fechar | ✕, clique fora do painel ou clicar de novo no ícone ativo |
| Manter aberto | ◇ no cabeçalho (vira ◆); o painel só fecha pelo ✕ |
| Redimensionar | arraste a borda direita (240-520 px) |
O painel permanece acima do editor, da tela inicial e do modo cosmos. Abrir um arquivo pelo Explorador em modo cosmos volta ao editor automaticamente. Ao desativar o K-UI a sidebar volta ao layout clássico mantendo o estado (aberta/fechada).
Cosmos vivo (interações)#
Os fenômenos do cosmos não vivem mais isolados: uma camada de mundo (_world.py) roda antes de cada frame e faz com que eles se influenciem.
| Causa | Efeito |
|---|---|
| Sol, buracos negros, binárias e pulsares | Gravidade: cometas ganham órbitas e estilingues; poeira cai nos buracos negros |
| Cometa se aproxima do Sol | Cauda aponta para longe do Sol e cresce; perto demais, sublima e se desintegra |
| Impacto no Sol ou num planeta (arquivo) | Faíscas, anel de choque, fragmentos; no Sol, uma erupção |
| Buraco negro engole algo | Cresce, espirais de acreção; após vários, emite uma onda gravitacional |
| Supernova | Onda de choque empurra poeira, detritos, cometas e nuvens; estrelas cintilam; aliens fogem |
| Fim da supernova | Deixa um pulsar ou uma nebulosa; a nebulosa comprimida forma uma nova estrela |
| Feixe de pulsar cruza um alvo | Ilumina planetas, cometas e satélites; aliens "recebem o sinal" |
| Mouse | Arrastar leva a poeira; parado vira um poço (vagalumes); clique cria uma ondulação; aliens curiosos se aproximam se você está calmo |
| Digitar | Vento solar: faíscas saem do Sol; ritmo alto aumenta erupções |
| Avisos e erros do editor | Erupções mais frequentes e tempestades solares (ondas de choque) |
| Salvar arquivo | Nova solar: onda suave que acalma o cosmos |
| Abrir arquivo | Um cometa chega, mirando o Sol |
O movimento é baseado em tempo (não em frames): a velocidade se mantém mesmo quando um frame atrasa. A camada se desliga sozinha, sem afetar a animação, se falhar repetidamente.
Solução de problemas#
A interface está lenta ou travada. Rode com o diagnóstico de travamentos:
CODIS_STALL_TRACE=1 python run.py # Linux/macOS
$env:CODIS_STALL_TRACE=1; python run.py # Windows (PowerShell)
Quando o laço principal fica parado por mais de 1,5 s (ajustável com CODIS_STALL_MS), o log Codis.Stall mostra a pilha do que estava bloqueando, e as fases de inicialização aparecem com seus tempos. Em telas muito grandes, o perfil power_saver ou low reduz ainda mais o custo do cosmos.