⚙️ Configurações#
As configurações do Codis são armazenadas em ~/.codis/config.json e gerenciadas pela classe ConfigManager (src/config.py). A janela de Configurações (src/ui/settings_window.py) organiza todas as opções em 24 categorias na sidebar lateral, cada uma documentada nesta página.
Como Acessar as Configurações#
| Caminho |
O que abre |
Configurações → Abrir Configurações... ou Ctrl+, |
Janela gráfica com as 24 categorias, campos editáveis e busca |
| Configurações → Atalhos de Teclado... |
Editor dedicado de remapeamento de teclas - ver Key Remapper |
| Configurações → Redefinir / Wizard de Setup... |
Assistente de primeira configuração / reset completo |
| Configurações → Avançado → Editar JSON Diretamente... |
Editor de config.json com syntax highlighting, para quem prefere editar o arquivo bruto |
O menu Configurações foi reorganizado para não duplicar itens que já existem em outros menus: Tema vive em Exibir → Tema (ver Temas) e Acessibilidade tem entrada própria aqui, mas seu conteúdo completo está em Acessibilidade.
Alterações feitas na janela de Configurações aplicam-se imediatamente à sessão atual, sem reiniciar o Codis - cada categoria é renderizada sob demanda e mantida em cache, então alternar entre elas é instantâneo mesmo em janelas com muitas opções.
As 24 Categorias#
✏ Editor#
Opções fundamentais de edição de texto.
| Chave |
Tipo |
Padrão |
Descrição |
font_family |
string |
"Consolas" |
Fonte monoespaçada do editor |
font_size |
int |
13 |
Tamanho da fonte do editor (px) |
font_ligatures |
bool |
false |
Ativa ligaduras tipográficas - ver Ligatures |
ligature_mode |
string |
"pseudo" |
"pseudo" | "native" | "both" | "off" |
tab_size |
int |
4 |
Espaços por nível de indentação |
use_spaces |
bool |
false |
true = espaços; false = tabs |
word_wrap |
bool |
true |
Quebra de linha suave |
cursor_style |
string |
"line" |
"line" | "block" | "underline" |
cursor_blinking |
string |
"blink" |
"blink" | "solid" | "smooth" |
smooth_scroll |
bool |
true |
Scroll suave |
scroll_speed |
int |
3 |
Velocidade do scroll |
multi_cursor |
bool |
true |
Suporte a múltiplos cursores - ver Multi-Cursor |
multicursor_lines |
bool |
true |
Multicursor por linhas: Alt+Clique no gutter marca linhas e as teclas se aplicam a todas; Esc limpa |
render_whitespace |
string |
"none" |
"none" | "boundary" | "all" |
indent_guides |
bool |
true |
Guias verticais de indentação |
bracket_matching |
bool |
true |
Destaca pares de parênteses/colchetes/chaves |
highlight_current_line |
bool |
true |
Destaca a linha do cursor |
line_numbers |
bool |
true |
Exibe numeração de linhas |
relative_numbers |
bool |
false |
Numeração relativa ao cursor (estilo Vim) |
breadcrumbs |
bool |
true |
Exibe o breadcrumb de caminho |
minimap |
bool |
true |
Exibe o minimapa |
encoding |
string |
"utf-8" |
Codificação padrão de arquivos |
eol |
string |
"\n" |
Fim de linha: "\n" (LF) | "\r\n" (CRLF) | "\r" (CR) |
− Editor Avançado#
Recursos de produtividade documentados em profundidade em Inteligência do Editor.
| Chave |
Tipo |
Padrão |
Descrição |
sticky_scroll |
bool |
true |
Cabeçalhos de escopo colados no topo |
code_folding |
bool |
true |
Dobramento de regiões de código |
inline_blame |
bool |
false |
Informações de git blame no editor |
inline_blame_mode |
string |
"cursor" |
"cursor" | "all" |
color_preview |
bool |
true |
Amostras de cor para valores hexadecimais |
inlay_hints |
bool |
false |
Dicas de tipo injetadas pelo LSP |
smart_tips |
bool |
true |
Ativa as dicas contextuais - ver Smart Tips |
smart_tips_interval |
int |
30 |
Intervalo entre análises (ms) |
smart_tips_large_file_lines |
int |
- |
Limiar de linhas para considerar "arquivo grande" |
smart_tips_huge_file_lines |
int |
- |
Limiar de linhas para "arquivo enorme" |
smart_tips_big_function_lines |
int |
- |
Limiar de linhas para "função grande" |
smart_tips_long_line_chars |
int |
- |
Limiar de caracteres para "linha longa" |
smart_tips_deep_nesting |
int |
- |
Profundidade de aninhamento considerada excessiva |
smart_tips_todo_threshold |
int |
- |
Quantidade de TODOs antes de avisar |
smart_tips_generic_var_threshold |
int |
- |
Tolerância para nomes de variável genéricos |
💬 Autocomplete#
| Chave |
Tipo |
Padrão |
Descrição |
autocomplete |
bool |
true |
Ativa o autocomplete |
autocomplete_delay |
int |
200 |
Delay para exibir sugestões (ms) |
snippets |
bool |
true |
Ativa expansão de snippets |
parameter_hints |
bool |
true |
Dicas de parâmetros (LSP) |
hover_docs |
bool |
true |
Documentação ao passar o mouse (KDocs/LSP) |
A Aparência#
| Chave |
Tipo |
Padrão |
Descrição |
theme |
string |
"fluent_dark" |
Tema ativo - ver Temas |
language |
string |
"pt-BR" |
Idioma da interface - ver Idiomas |
ui_font_family |
string |
"Segoe UI" |
Fonte da interface (menus, labels) |
ui_font_size |
int |
10 |
Tamanho da fonte da interface |
ui_scale |
int |
0 |
Escala geral da interface em %. 0 = automático (ajusta à resolução/DPI da tela); 50–250 = manual. Aplicado ao vivo |
remote_sync_on_save |
bool |
true |
Reenvia ao servidor arquivos remotos ao salvar - ver Remoto |
activity_bar |
bool |
true |
Exibe a Activity Bar |
show_welcome |
bool |
true |
Exibe tela de boas-vindas na inicialização |
🖱 Cursor#
Categoria especial: em vez de uma lista simples de chaves, embute diretamente o CursorPickerPanel (src/ui/cursor_manager.py) - o seletor visual de cursor customizado (emoji, texto ou imagem). Ver Cursor Customizável para os detalhes completos de implementação.
🖥 Interface / Layout#
| Chave |
Tipo |
Padrão |
Descrição |
sidebar_width |
int |
320 |
Largura inicial da sidebar (px) |
panel_height |
int |
240 |
Altura inicial do painel inferior (px) |
minimap_width |
int |
110 |
Largura do minimapa (px) |
minimap_scale |
int |
3 |
Escala do minimapa |
window_width / window_height |
int |
- |
Dimensões da janela principal salvas entre sessões |
max_recent |
int |
20 |
Máximo de entradas na lista de recentes |
💾 Salvamento#
| Chave |
Tipo |
Padrão |
Descrição |
autosave |
bool |
false |
Salva automaticamente após inatividade |
autosave_delay |
int |
30 |
Intervalo de autosave em segundos (5–600) |
format_on_save |
bool |
false |
Formata o documento ao salvar |
trim_trailing_whitespace |
bool |
true |
Remove espaços no fim das linhas ao salvar |
insert_final_newline |
bool |
true |
Garante newline no final do arquivo |
session_restore |
bool |
false |
Restaura os arquivos abertos ao reiniciar |
🔍 Lint#
| Chave |
Tipo |
Padrão |
Descrição |
lint_enabled |
bool |
true |
Ativa o sistema de lint |
lint_python |
bool |
true |
Lint para Python (pylint, mypy, flake8...) |
lint_js |
bool |
true |
Lint para JS/TS (ESLint) |
lint_html |
bool |
true |
Lint para HTML |
lint_delay |
int |
750 |
Delay após digitação para disparar lint (ms) |
eslint_path / pylint_path / flake8_path / mypy_path / prettier_path |
string |
nome do binário |
Caminho dos executáveis externos usados pelo lint |
🔤 LSP (Language Server Protocol)#
Categoria própria, antes ausente da documentação - controla a integração com servidores de linguagem usados por Go to Definition, Find References, rename simbólico e mais (ver Editor e Arquitetura).
| Chave |
Tipo |
Padrão |
Descrição |
lsp_enabled |
bool |
true |
Habilita integração com servidores LSP |
lsp_hover_enabled |
bool |
true |
Documentação do LSP ao passar o mouse sobre símbolos |
lsp_format_enabled |
bool |
true |
(presente na UI de configurações, mas sem efeito - veja nota abaixo) |
lsp_diagnostics |
bool |
true |
Exibe diagnósticos do LSP no painel Problemas |
🌿 Git#
| Chave |
Tipo |
Padrão |
Descrição |
git_enabled |
bool |
true |
Ativa a integração Git |
git_decorations |
bool |
- |
Decorações visuais de status Git na file tree |
git_auto_fetch |
bool |
false |
Fetch automático periódico |
git_fetch_interval |
int |
180 |
Intervalo de auto-fetch em segundos |
updater_url |
string |
"KillovSky/Codis" |
Repositório GitHub para verificação de atualizações (owner/repo) |
💻 Terminal#
| Chave |
Tipo |
Padrão |
Descrição |
default_shell |
string |
detectado automaticamente |
Shell padrão - ver Terminal |
terminal_font_size |
int |
12 |
Tamanho da fonte do terminal |
terminal_max_lines |
int |
- |
Limite de linhas no scroll-back |
📁 Árvore de Arquivos (FileTree)#
Categoria própria, antes sem cobertura na wiki.
| Chave |
Tipo |
Padrão |
Descrição |
show_hidden_files |
bool |
false |
Exibe arquivos/pastas que começam com ponto (.) |
respect_ignore_files |
bool |
true |
Oculta arquivos listados no .gitignore da árvore e da busca |
🌐 Render#
Categoria própria, antes sem cobertura na wiki.
| Chave |
Tipo |
Padrão |
Descrição |
render_internal |
bool |
true |
Usa o renderizador interno para Markdown/HTML; quando desativado, usa o navegador padrão do sistema |
🕒 Timeline#
Controla o sistema de snapshots automáticos - ver File Timeline.
| Chave |
Tipo |
Padrão |
Descrição |
timeline_max_backups |
int |
20 |
Máximo de snapshots mantidos por arquivo (5–100) |
timeline_max_age_days |
int |
30 |
Backups mais antigos que isso são removidos automaticamente (1–365 dias) |
🔀 Flowchart#
| Chave |
Tipo |
Padrão |
Descrição |
flowchart_auto |
bool |
false |
Gera o diagrama de fluxo automaticamente ao editar o arquivo |
flowchart_max_depth |
int |
3 |
Profundidade máxima de chamadas analisadas (1–8) |
⏱ Pomodoro#
| Chave |
Tipo |
Padrão |
Descrição |
pomodoro_work_min |
int |
25 |
Duração de cada sessão de trabalho em minutos (5–90) |
pomodoro_break_min |
int |
5 |
Duração da pausa curta em minutos (1–30) |
pomodoro_long_break_min |
int |
15 |
Duração da pausa longa após um ciclo completo (5–60) |
| Chave |
Tipo |
Padrão |
Descrição |
kui_perf |
string |
"balanced" |
Perfil de animações da K-UI |
hl_idle_ms |
int |
60 |
Intervalo de atualização do highlighting em idle (ms) |
perf_auto_mode |
bool |
true |
Detecta travamentos e aplica modo performance automaticamente |
perf_freeze_threshold_ms |
int |
500 |
Milissegundos sem resposta antes de considerar travamento |
perf_mode |
string |
"auto" |
"auto" | "balanced" | "fast" | "minimal" |
perf_native_bindings |
bool |
false |
Extensões C nativas (requer compilação; desabilitado por padrão) |
perf_kui_fallback / perf_keep_minimap / perf_keep_sticky_scroll / perf_keep_heatmap / perf_keep_rhythm / perf_keep_lint / perf_keep_kui_anim |
bool |
- |
Toggles individuais do que manter ativo mesmo em modo performance - ver Modo Performance |
autocomplete_min_chars |
int |
1 |
Mínimo de caracteres para disparar autocomplete |
autocomplete_max_items |
int |
24 |
Máximo de itens na lista de sugestões |
large_file_mb |
int |
3 |
Limiar em MB para ativar o modo de arquivo grande |
search_max_results |
int |
2000 |
Máximo de resultados na busca em arquivos |
🔒 Security#
| Chave |
Tipo |
Padrão |
Descrição |
workspace_trust |
bool |
true |
Exibe diálogo de confiança ao abrir pastas desconhecidas - ver Workspace Trust |
⚙ Avançado#
| Chave |
Tipo |
Padrão |
Descrição |
font_min |
int |
7 |
Tamanho mínimo de fonte permitido pelo zoom |
font_max |
int |
36 |
Tamanho máximo de fonte permitido pelo zoom |
debug_dap_enabled |
bool |
true |
Usa debugpy/DAP real (breakpoints, stepping, variáveis) quando disponível. Desative para forçar execução simples no Painel de Debug. |
debug_dap_port |
int |
5678 |
Porta local usada pela conexão DAP com o debugpy. Mude se houver conflito com outra ferramenta usando a mesma porta (ex: VS Code). |
O Editor JSON Diretamente (edição bruta do config.json) é acessado pelo menu Configurações → Avançado, não por esta categoria - ela trata apenas dos limites de zoom de fonte e do depurador.
Ver também: Debug
♿ Acessibilidade#
| Chave |
Tipo |
Padrão |
Descrição |
a11y_high_contrast |
bool |
false |
Alto contraste (WCAG AA) |
a11y_colorblind_mode |
string |
"" |
"" | "protanopia" | "deuteranopia" | "tritanopia" | "achromatopsia" |
a11y_screen_reader |
bool |
false |
Anúncios TTS para leitores de tela |
a11y_keyboard_nav |
bool |
true |
Navegação aprimorada por Tab e setas |
a11y_large_ui_font |
bool |
false |
Força fonte de UI mínima de 13pt |
a11y_reduce_motion |
bool |
false |
Desativa animações e transições |
Ver também: Acessibilidade
🖧 SSH Remoto#
| Chave |
Tipo |
Padrão |
Descrição |
ssh_default_port |
int |
22 |
Porta padrão para novos perfis |
ssh_connect_timeout |
int |
15 |
Timeout de conexão (segundos) |
ssh_keepalive_interval |
int |
30 |
Intervalo keepalive em segundos (0 desabilita) |
ssh_agent_forwarding |
bool |
false |
Forwarding do agente SSH |
ssh_strict_host_key |
bool |
true |
Verifica a chave do host estritamente |
ssh_sftp_buffer_kb |
int |
64 |
Buffer SFTP em KB |
ssh_open_in_editor |
bool |
true |
Baixa e abre arquivo remoto diretamente no editor |
O Túnel de Debug SSH (botão Abrir Túnel Debug no painel remoto) usa as portas informadas diretamente no próprio diálogo, não as chaves debug_dap_* - essas pertencem ao Painel de Debug local (categoria Avançado). São mecanismos independentes; veja Debug Remoto e Debug.
Ver também: SSH Remoto
👥 Colaboração#
| Chave |
Tipo |
Padrão |
Descrição |
collab_enabled |
bool |
false |
Habilita ícone de colaboração na Activity Bar |
collab_port |
int |
9001 |
(não utilizada pelo painel atual - veja nota abaixo) |
collab_max_peers |
int |
8 |
Máximo de participantes simultâneos |
collab_show_cursors |
bool |
true |
Exibe cursores dos participantes remotos |
collab_show_chat |
bool |
true |
Chat integrado visível |
collab_autosave_sync |
bool |
true |
Sincroniza auto-save entre participantes |
Ver também: Colaboração
🔌 Plugins#
| Chave |
Tipo |
Padrão |
Descrição |
plugin_isolation |
bool |
true |
Plugins marcados com isolated=True rodam em processo separado |
plugin_timeout_s |
int |
10 |
Timeout de chamadas síncronas ao worker (segundos) |
plugin_heartbeat_s |
int |
30 |
Timeout de heartbeat - processo sem resposta é reiniciado |
plugin_max_restarts |
int |
3 |
Reinícios automáticos antes de desabilitar o plugin |
plugin_sandbox_network |
bool |
false |
Bloqueia acesso à rede em workers isolados (experimental) |
Ver também: Plugins - Processo Isolado
🎨 Sintaxe Customizada#
Esta categoria abre o CustomKeywordsPanel em vez de uma lista de chaves simples. Permite definir palavras-chave adicionais por linguagem com cor de destaque personalizada, expandindo o highlight de sintaxe além dos padrões embutidos.
As keywords são persistidas em config.json na chave custom_keywords como lista de objetos:
"custom_keywords": [
{ "keyword": "minha_funcao", "color": "#ff79c6", "lang": "python" },
{ "keyword": "CONSTANTE", "color": "#f1fa8c", "lang": "javascript" }
]
| Campo |
Tipo |
Descrição |
keyword |
string |
Palavra-chave exata a ser destacada (sensível a maiúsculas) |
color |
string |
Cor no formato #rrggbb ou #rgb |
lang |
string |
Linguagem alvo (ex: python, javascript, any para todas) |
As keywords customizadas são aplicadas pelo highlighter de sintaxe com prioridade após os padrões embutidos, podendo sobrescrever a cor de termos já definidos. Alterações são aplicadas imediatamente ao arquivo ativo sem reiniciar o Codis.
Chaves Complementares do DEFAULT_CONFIG#
Chaves presentes em DEFAULT_CONFIG (src/constants.py) que complementam as categorias acima.
| Chave |
Tipo |
Padrão |
Descrição |
menubar_position |
string |
"top" |
Posição da barra de menus: "top" ou "bottom" (menu Exibir) |
rulers |
lista |
[] |
Colunas das réguas verticais do editor |
lint_php |
bool |
true |
Lint para PHP |
recent_files / recent_folders |
lista |
[] |
Histórico de arquivos e pastas recentes (gravado automaticamente) |
exit_save_mode |
string |
"ask" |
Ao sair com alterações: "ask" pergunta, "save" sempre salva, "discard" descarta |
session_save_on_exit |
bool |
true |
Grava abas e pasta ao sair; desligado, o Codis abre limpo |
confirm_delete |
bool |
true |
Pede confirmação antes de excluir arquivos |
trash_backend |
string |
"workspace" |
"workspace" move para .codis_trash/ do projeto; "system" usa a lixeira do SO (send2trash, com fallback para a do projeto) |
trash_retention_days |
int |
0 |
Dias de retenção na lixeira (0 = sem limite) |
trash_max_mb |
int |
0 |
Tamanho máximo da lixeira em MB (0 = sem limite) |
kui_enabled |
bool |
false |
Liga o K-UI |
perf_keep_inline_blame / perf_keep_inlay_hints |
bool |
false |
Mantém blame inline / inlay hints ativos no modo performance |
perf_keep_color_preview / perf_keep_ligatures / perf_keep_autocomplete / perf_keep_folding / perf_keep_hl |
bool |
true |
Mantém cada recurso ativo no modo performance |
github_token |
string |
"" |
PAT do GitHub (limite de API do Atualizador e da loja de plugins) |
auto_check_updates |
bool |
true |
Verifica atualizações silenciosamente ao iniciar |
Chaves Avançadas e de Estado#
Estas chaves são lidas pelo código (com valor padrão no ponto de uso), mas não aparecem na janela de Configurações; várias são gravadas automaticamente pela interface. Edite config.json só se souber o que está fazendo.
| Chave |
Tipo |
Padrão |
Descrição |
user_name |
string |
"" |
Autor padrão preenchido nos templates de projeto |
actbar_visible_items |
lista | null |
null (todos) |
Itens visíveis da Activity Bar (gravado pelo menu de personalização) |
cursor_preset |
string |
"system" |
Preset do cursor customizado |
cursor_color |
string |
"#cdd6f4" |
Cor do cursor customizado |
cursor_size |
int |
22 |
Tamanho do cursor customizado |
cursor_emoji |
string |
"✦" |
Emoji usado como cursor (preset emoji) |
terminal_scrollback |
int |
10000 |
Linhas mantidas no scrollback |
terminal_conpty |
bool |
true |
Usa ConPTY no Windows quando disponível |
terminal_load_shell_rc |
bool |
true |
Carrega .bashrc/.zshrc ao abrir o shell |
ia_provedor |
string |
primeiro provedor disponível |
Provedor de IA ativo |
ia_provedores_cfg |
dict |
{} |
Configuração por provedor (modelo, URL, chave) |
ia_mode |
string |
"edit" |
Modo da IA (Perguntar / Editar / Agente) |
ia_context_tokens |
int |
24000 (mínimo 4000) |
Orçamento de tokens de contexto |
ia_auto_approve_levels |
lista |
["SAFE"] |
Níveis de risco aprovados automaticamente pelo Approval Gate |
ia_privacy_warning_shown |
bool |
false |
Aviso de privacidade da IA já exibido |
plugin_store_repo |
string |
"" (usa o repositório oficial) |
Repositório da loja de plugins |
plugin_store_branch |
string |
"main" |
Branch da loja de plugins |
kui_dock_pinned |
bool |
false |
Dock do K-UI fixado |
screensaver_idle_s |
int |
9999 |
Segundos de inatividade para o protetor de tela do K-UI |
Os padrões acima refletem os .get(chave, padrão) do código na versão 1.0.1; se divergirem, o código é a fonte da verdade.
Idiomas#
A interface do Codis é internacionalizada via src/i18n.py:
| Código |
Idioma |
pt-BR |
Português (Brasil) - idioma base, usado como fallback |
en |
English |
es |
Español |
fr |
Français |
de |
Deutsch |
zh-CN |
中文(简体) |
ja |
日本語 |
ko |
한국어 |
ru |
Русский |
uk |
Українська |
pl |
Polski |
nl |
Nederlands |
tr |
Türkçe |
it |
Italiano |
A troca de idioma reconstrói os menus imediatamente, sem reiniciar o Codis. Toda chave de tradução ausente em um idioma cai automaticamente para o texto em pt-BR (idioma base do sistema de i18n).
Comportamento do ConfigManager#
- Escrita atômica: salva primeiro em
.json.tmp e depois renomeia para config.json, evitando corrupção em caso de falha durante a escrita.
- Modo degradado: se
~/.codis/ não puder ser criado (permissões), o ConfigManager opera em memória, sem persistência entre sessões.
- Backup automático: se
config.json estiver corrompido, é renomeado para .json.bak e os padrões são usados.
- Coerção de tipos: valores numéricos lidos como string são convertidos automaticamente.
- Callbacks de mudança: componentes podem se registrar para receber notificações quando uma chave específica muda, via
cfg.on_change("theme", callback).