Changed keybinding "Unbound" string to "..." for better visibility (#95142)

## About The Pull Request
A very small change that slightly improves the keybinds section by
changing the word "Unbound" to "...", also known as the
[ellipses](https://www.thepunctuationguide.com/ellipses.html).

This PR only changes string names, no other mechanics, so everything
else _should_ be working normally. Every string in the code matching
"Unbound" has been changed, including one comment for clarity.

There doesn't seem to be any issue with existing custom keybinds. All of
mine transferred seamlessly, so no one should need to redo their
keybinds.
## Why It's Good For The Game
Better visibility. Rather than playing 'find the numpad bind' scrolling
through a long list of ~100 keybinds, they show up a little easier now.

This is also the standard in other games, but not always an ellipses -
sometimes a double dash "--", but I figured there's already a dash "-"
bind by default (for the A.I. to reconnect to its shell) so the ellipses
might fit better. The ellipses is also commonly used for "awaiting
input" of some kind.


![unbound](https://github.com/user-attachments/assets/2f098852-f532-40e7-9266-6af00d60652c)
## Changelog
🆑
qol: Keybinding visual improvements: "Unbound" is grayed out and custom
binds are highlighted in green for better visibility
/🆑
This commit is contained in:
GregariousJB
2026-02-21 19:55:12 -05:00
committed by GitHub
parent 75128145da
commit db424f9cc1
10 changed files with 27 additions and 15 deletions
@@ -94,6 +94,7 @@
keybindings[keybinding.category][keybinding.name] = list(
"name" = keybinding.full_name,
"description" = keybinding.description,
"default" = keybinding.hotkey_keys,
)
return keybindings
@@ -15,11 +15,11 @@
/datum/preferences/proc/migrate_key_bindings()
var/new_key_bindings = list()
for (var/unbound_hotkey in key_bindings["Unbound"])
for (var/unbound_hotkey in key_bindings[UNBOUND_KEY])
new_key_bindings[unbound_hotkey] = list()
for (var/hotkey in key_bindings)
if (hotkey == "Unbound")
if (hotkey == UNBOUND_KEY)
continue
for (var/keybind in key_bindings[hotkey])
+3 -3
View File
@@ -184,14 +184,14 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(parent.hotkeys)
for(var/hotkeytobind in kb.hotkey_keys)
if(hotkeytobind == "Unbound")
if(hotkeytobind == UNBOUND_KEY)
addedbind = TRUE
else if(!length(binds_by_key[hotkeytobind])) //Only bind to the key if nothing else is bound
key_bindings[kb.name] |= hotkeytobind
addedbind = TRUE
else
for(var/classickeytobind in kb.classic_keys)
if(classickeytobind == "Unbound")
if(classickeytobind == UNBOUND_KEY)
addedbind = TRUE
else if(!length(binds_by_key[classickeytobind])) //Only bind to the key if nothing else is bound
key_bindings[kb.name] |= classickeytobind
@@ -199,7 +199,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!addedbind)
notadded += kb
save_preferences() //Save the players pref so that new keys that were set to Unbound as default are permanently stored
save_preferences() //Save the players pref so that new keys that were set to UNBOUND_KEY as default are permanently stored
if(length(notadded))
addtimer(CALLBACK(src, PROC_REF(announce_conflict), notadded), 5 SECONDS)