promotional bannermobile promotional banner

keybindUI

A clean and modern keybind menu redesign
Back to Files

keybindUI - 1.20.1 - 1.2.0

File namekeybindui-1.2.0.jar
Uploader
vacazueiravacazueira
Uploaded
Aug 27, 2026
Downloads
163
Size
113.2 KB
Mod Loaders
Forge
File ID
8749111
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:keybindui-1609091:8749111")

Learn more about Curse Maven

What's new

keybindUI 1.2.0

After several preview and Release Candidate builds, keybindUI 1.2.0 is now ready!

This update focuses heavily on making keybind management more reliable in modded environments, reducing misleading conflict warnings, improving organization in large modpacks, adding manual conflict control, and expanding localization support.

A lot of this release was shaped by real community feedback and testing.


⚔️ Smarter Key Conflict Detection

The conflict system has been significantly reworked.

keybindUI no longer relies only on two actions sharing the same physical input.

It now respects Forge 1.20.1 key conflict contexts and modifier behavior, allowing it to better distinguish between:

  • real conflicts;
  • bindings that share an input but operate in separate contexts;
  • modifier combinations such as F, CTRL + F, SHIFT + F;
  • keyboard and mouse bindings;
  • GUI and gameplay contexts;
  • custom Forge conflict contexts exposed by mods.

This reduces many false-positive warnings while preserving conflicts that Forge actually considers valid.


🛡️ Ignore Specific Conflicts

Some mods handle inputs dynamically depending on things such as:

  • the currently open screen;
  • mouse position;
  • the item under the cursor;
  • overlays;
  • custom input handlers.

Forge does not always expose enough information for keybindUI to determine whether these actions are truly mutually exclusive.

Because of that, you can now manually ignore a specific pair of conflicting actions.

For example:

Minecraft: Attack ↔ JEI: Action

This does not whitelist the entire Left Mouse Button.

Only the selected pair is ignored. Other actions using the same input continue to be checked normally.

Ignored conflicts:

  • no longer count as active conflicts;
  • no longer receive the critical/red conflict indicator;
  • are ignored by automatic conflict resolution;
  • are respected by key suggestions;
  • persist between game sessions;
  • can be reviewed and restored later.

🗂️ Improved Mod and Category Organization

The sidebar grouping system received an important overhaul.

Previous versions could incorrectly interpret parts of Vanilla key names as mod IDs.

One example was:

key.hotbar.1

being interpreted as belonging to a fictional Hotbar mod.

Vanilla keybindings are now identified from the actual Minecraft Options key mappings instead of relying on naming heuristics.

As a result:

  • Vanilla bindings remain correctly grouped under Minecraft;
  • fake groups such as Hotbar are no longer created from Vanilla bindings;
  • mod ownership and keybind categories are treated as separate concepts;
  • categories with the same name under different owners remain properly isolated;
  • category counters now match the bindings actually displayed;
  • bulk actions no longer leak into another owner's category.

This should make the sidebar substantially more reliable in larger modpacks.


↕️ Expand / Collapse All

The sidebar now includes a quick control for expanding or collapsing all mod groups.

Following community feedback, the control is visually integrated into the All row while remaining a separate click target:

  • clicking All still selects the All filter;
  • clicking the chevron expands or collapses the groups.

This keeps the sidebar compact while making large modpacks much easier to navigate.


🔎 Search Hint Improvements

The English interface now correctly teaches the canonical search operators:

@conflict @unbound

instead of displaying Portuguese aliases in the English UI.

Portuguese aliases remain supported.


🌐 Simplified Chinese Support

keybindUI now officially supports Simplified Chinese (zh_cn).

The translation was provided by fanren_.

The resource pipeline was also hardened to explicitly preserve UTF-8, and the final language resources are validated to ensure Unicode characters survive unchanged into the built JAR.

Supported languages now include:

  • 🇺🇸 English
  • 🇧🇷 Português (Brasil)
  • 🇨🇳 简体中文

🧪 Reliability Improvements

A large amount of work in 1.2.0 happened behind the scenes to make future development safer.

The release is currently protected by 129 automated tests, covering areas including:

  • Forge conflict semantics;
  • modifiers;
  • contextual conflicts;
  • ignored conflict pairs;
  • conflict persistence;
  • key suggestions;
  • Vanilla key ownership;
  • owner/category isolation;
  • bulk-action isolation;
  • sidebar behavior;
  • language-file parity;
  • Unicode integrity;
  • Mixin/refmap validation;
  • final JAR packaging.

The conflict implementation is also checked against thousands of Forge key-mapping combinations to detect unexpected semantic drift.


🔧 Other Fixes

  • Fixed development-runtime Mixin loading and refmap remapping.
  • Fixed key suggestion logic incorrectly treating contextual keys as unavailable.
  • Fixed recovered Mixin metadata in the final JAR.
  • Fixed keybind card interaction under development mappings.
  • Fixed mod-version metadata so Forge now correctly reports 1.2.0.
  • Improved handling of unidentified mappings without incorrectly assigning them to Minecraft.
  • Fixed category actions that could affect bindings outside the selected owner.

❤️ Special Thanks

A special thanks to fanren_ for the extensive feedback, screenshots, real-world modpack observations, Simplified Chinese translation, and the original suggestion for manually whitelisting/ignoring conflicts.

Several improvements in 1.2.0 came directly from those discussions and real usage examples.

Thank you for helping make keybindUI better.


🔭 What's Next?

Development will continue with keybindUI 1.3.0.

Some areas planned for investigation and future improvements include:

  • compatibility testing with KeyBindJS;
  • compatibility testing with KeyBind Bundles;
  • improved handling of dynamically registered key mappings;
  • additional visual customization;
  • localized search operators;
  • further improvements to mod ownership detection.

Larger ideas such as native keybind bundles, input composition and radial action selection remain future explorations rather than confirmed features.

If you find a compatibility issue, incorrect grouping, false conflict, localization problem or other unexpected behavior, please report it.


🇧🇷 keybindUI 1.2.0

Depois de várias builds Preview e Release Candidate, o keybindUI 1.2.0 finalmente está pronto!

Esta atualização é focada principalmente em tornar o gerenciamento de atalhos mais confiável em ambientes com mods, reduzir alertas de conflito incorretos, melhorar a organização em grandes modpacks, oferecer controle manual sobre conflitos e ampliar o suporte de idiomas.

Grande parte desta versão foi moldada através de feedback e testes reais da comunidade.


⚔️ Detecção de Conflitos Mais Inteligente

O sistema de conflitos foi significativamente reformulado.

O keybindUI não depende mais apenas do fato de duas ações compartilharem a mesma entrada física.

Agora ele respeita os contextos de conflito e o comportamento de modificadores do Forge 1.20.1, permitindo diferenciar melhor:

  • conflitos reais;
  • atalhos que compartilham uma entrada, mas funcionam em contextos separados;
  • combinações como F, CTRL + F e SHIFT + F;
  • atalhos de teclado e mouse;
  • contextos de interface e gameplay;
  • contextos personalizados do Forge expostos por outros mods.

Isso reduz diversos falsos positivos sem esconder conflitos que o Forge realmente considera válidos.


🛡️ Ignorar Conflitos Específicos

Alguns mods processam entradas dinamicamente dependendo de fatores como:

  • a tela atualmente aberta;
  • posição do mouse;
  • item sob o cursor;
  • overlays;
  • handlers próprios de entrada.

O Forge nem sempre fornece informação suficiente para o keybindUI determinar se essas ações realmente são mutuamente exclusivas.

Por isso, agora é possível ignorar manualmente um par específico de ações conflitantes.

Por exemplo:

Minecraft: Atacar ↔ JEI: Ação

Isso não adiciona todo o Botão Esquerdo do Mouse a uma whitelist.

Somente o par escolhido é ignorado. Outras ações utilizando a mesma entrada continuam sendo analisadas normalmente.

Conflitos ignorados:

  • deixam de contar como conflitos ativos;
  • deixam de receber o indicador crítico/vermelho;
  • são ignorados pela resolução automática;
  • são respeitados pelas sugestões de teclas;
  • permanecem salvos entre sessões;
  • podem ser revisados e restaurados posteriormente.

🗂️ Organização de Mods e Categorias Aprimorada

O sistema de agrupamento da barra lateral recebeu uma correção importante.

Versões anteriores podiam interpretar incorretamente partes dos nomes de atalhos Vanilla como IDs de mods.

Por exemplo:

key.hotbar.1

podia ser interpretado como pertencente a um mod fictício chamado Hotbar.

Agora os atalhos Vanilla são identificados através dos KeyMapping reais mantidos pelo Options do Minecraft, em vez de depender apenas de heurísticas baseadas em nomes.

Com isso:

  • atalhos Vanilla permanecem corretamente dentro de Minecraft;
  • grupos falsos como Hotbar não são mais criados a partir de atalhos Vanilla;
  • proprietário do atalho e categoria passam a ser tratados como conceitos independentes;
  • categorias de mesmo nome pertencentes a grupos diferentes permanecem isoladas;
  • os contadores das categorias correspondem aos atalhos realmente exibidos;
  • ações em massa não vazam mais para categorias pertencentes a outro grupo.

Isso deve tornar a organização da sidebar muito mais confiável em modpacks grandes.


↕️ Expandir / Recolher Tudo

A barra lateral agora possui um controle rápido para expandir ou recolher todos os grupos de mods.

Após feedback da comunidade, o controle foi integrado visualmente à linha Todos, mas continua sendo uma área de clique independente:

  • clicar em Todos continua selecionando o filtro;
  • clicar no chevron expande ou recolhe os grupos.

Isso mantém a sidebar compacta e facilita bastante a navegação em modpacks grandes.


🔎 Melhorias na Busca

A interface em inglês agora ensina corretamente os operadores canônicos:

@conflict @unbound

em vez de apresentar aliases em português.

Os aliases em português continuam funcionando normalmente.


🌐 Suporte a Chinês Simplificado

O keybindUI agora possui suporte oficial a Chinês Simplificado (zh_cn).

A tradução foi fornecida por fanren_.

O pipeline de recursos também foi reforçado para preservar UTF-8 explicitamente, e os arquivos finais são validados para garantir que caracteres Unicode cheguem intactos ao JAR.

Idiomas atualmente suportados:

  • 🇺🇸 English
  • 🇧🇷 Português (Brasil)
  • 🇨🇳 简体中文

🧪 Melhorias de Confiabilidade

Uma grande parte do trabalho da versão 1.2.0 aconteceu nos bastidores para tornar o desenvolvimento futuro mais seguro.

Atualmente a release possui 129 testes automatizados, cobrindo áreas como:

  • semântica de conflitos do Forge;
  • modificadores;
  • conflitos contextuais;
  • pares de conflitos ignorados;
  • persistência;
  • sugestões de teclas;
  • identificação de atalhos Vanilla;
  • isolamento entre proprietário e categoria;
  • isolamento de ações em massa;
  • comportamento da sidebar;
  • paridade dos arquivos de idioma;
  • integridade Unicode;
  • validação de Mixin/refmap;
  • empacotamento do JAR final.

A implementação de conflitos também é comparada contra milhares de combinações de key mappings do Forge para detectar divergências inesperadas.


🔧 Outras Correções

  • Corrigido o carregamento de Mixins e remapeamento de refmap no ambiente de desenvolvimento.
  • Corrigida a lógica de sugestão de teclas em contextos separados.
  • Restaurados os metadados de Mixin necessários no JAR reconstruído.
  • Corrigida a interação dos cards de atalhos sob mappings de desenvolvimento.
  • Corrigido o metadata de versão para que o Forge reporte corretamente 1.2.0.
  • Melhorado o tratamento de mappings desconhecidos sem atribuí-los incorretamente ao Minecraft.
  • Corrigidas ações de categoria que podiam atingir atalhos pertencentes a outro grupo.

❤️ Agradecimento Especial

Um agradecimento especial ao fanren_ pelo feedback detalhado, screenshots, observações em modpacks reais, tradução para Chinês Simplificado e pela sugestão original do sistema de whitelist/ignorar conflitos.

Diversas melhorias presentes na versão 1.2.0 surgiram diretamente dessas conversas e exemplos reais de uso.

Obrigado por ajudar a tornar o keybindUI melhor.


🔭 O que vem depois?

O desenvolvimento continuará na keybindUI 1.3.0.

Algumas áreas planejadas para investigação e melhorias futuras incluem:

  • testes de compatibilidade com KeyBindJS;
  • testes de compatibilidade com KeyBind Bundles;
  • melhor suporte a key mappings registrados dinamicamente;
  • opções adicionais de personalização visual;
  • operadores de busca localizados;
  • novas melhorias na identificação do mod proprietário de cada binding.

Ideias maiores como bundles nativos, composição de inputs e seleção radial de ações continuam como explorações futuras, e não como features confirmadas.

Caso encontre incompatibilidade, agrupamento incorreto, falso conflito, problema de tradução ou qualquer outro comportamento inesperado, sinta-se à vontade para reportar.

This mod has no additional files