November 9, 2026
Interface, Widgets

Keybind Editor: Modifier Keys, Reordering & Widget Keybinds

Another round of keybind editor improvements were released today: modifier keys can now be bound, custom keybinds can be dragged into order, and keybinds for widgets that ship disabled stay out of your way until you turn those widgets on.

author
Harkenn
Last updated:
November 9, 2026

Keybind Editor: Modifier Keys, Reordering & Widget Keybinds

Following up on the widget support post, a handful of keybind editor changes were included in the most recent release.

Back in the original post I mentioned that modifier-only keybinds were intentionally missing from the editor - that's no longer the case. The editor can now capture a modifier key on its own, so actions like box select add / remove and camera tilt / rotate now show up and can be rebound. Capturing follows the same rules the engine uses for key chains: holding Shift and pressing A gives you Shift+A, while tapping Shift and then pressing A gives you the chain Shift, A.

Custom and unit selection keybinds can also now be dragged into whatever order you like. This isn't just cosmetic - the order is what ends up in uiKeys.txt, and when two actions share a key, it decides which one wins.

Several widgets ship disabled by default (squad selection, FactoryQ, FOV changer, loop select and picture-in-picture), but their keybinds used to sit in every shipped profile whether you used them or not. Those default keybinds now live in each widget's own manifest - the same mechanism custom widgets use - so they only show up in the editor, and only get bound, once you actually turn the widget on.

The rest of the technical details:

  • Widget default keybinds can now differ per shipped profile, so the widgets can ship different default keybinds for grid, legacy, 60%, etc.
  • If your profile wasn't based on a shipped one (e.g. it came from a hand-edited uiKeys.txt), it now takes the layout of whichever shipped profile it most closely matches
  • Loop select's default ctrl bind pointed at an action the widget never registered; it now binds selectloop_deselect
  • FactoryQ's preset keybinds are back to how they worked before the recent change (thanks MadeByGabe)
  • Scrollbars in the editor can all be dragged now and are a consistent width
  • Widget authors: the KEYSYMS table is now deprecated in favor of Spring.GetKeyCode. It still works exactly as before, but logs a deprecation warning when read, so now's a good time to switch over

More Images

More microblogs

Made in Webflow