I like the game, the game idea, the complexity of it, its features, i don't mind the graphics and i even like those cute tilesets (tho gameplay is more important for me), but
UI/Keys are horrendous and is pushing me from playing DF every time i try it.
Every menu have different keys (+/+, u/h/k/m, w/a/x/d, arrows), i find myself switching out my hand from num keypad every 5s . Even my neck is starting to hurt due to having to look the keyboard (despite been a touch typist for years) when i need to hit a key from the right side of the keyboard.
I would love to have touch typist-friendly key bindings (like common HJKL keys as roguelikes use, but i'm flexible, i just need to avoid arrow and numpad keys), but last time i tried to edit them myself, i spent hours changing them and then keys started to overlap and menus started to act weird, and i gave up (editing the key bindings and playing the game).
Any recommendations? experience about this? how did you workaround this huge problem?
EDIT: YEAH, i made it! , after hours of editing and reviewing bindings, i found some simple free keys to add HJKL movement keys to DF (making it typist friendly) and it changes very few default keybinds!!! (3 IIRC). For a second i thought it was impossible. Since it was hard to make, i'll leave my current binding file here if anyone is interested in trying it. In this case, if you are using the Lazy Newb Pack, just place the file inside the LNP/Keybinds directory and it will show up at the startup for easy switch between them and the defaults.Download:
Typist-34.11.txtDownload:
Typist-40.24.txtDownload:
Typist-43.05.txtDownload:
Typist-44.12.txtBasically the keys are...
* movement (adding ALT means multiple tiles): CTRL+hjklyubn
* secondary scroll keys in some menu (adding ALT jumps a page): CTRL+[]
* z-level: CTRL+,.
* new enter: CTRL+Space (with or without ALT), you can still use Enter
* macros: use SHIFT+CTRL+key instead of CTRL+key (changed to avoid conflicts)
* embark positioning (and resizing with SHIFT): wasd (who the hell ever used "umhk")
* pause: Backspace (since space has other uses now, the default was annoying)
* the rest of the defaults weren't changed, except for pause, secondary scroll keys, and 3 conflicting building keys
Caveat:
*
Fortress mode only*
Breaks QuickFort, but can be fixed tweaking its config files (because of the changes to macro and secondary selector keybindings)
(copy the keybinding file to QuickFort/config/interfaces.txt, and correct the keys in
QuickFort/config/keys.json and
QuickFort/config/options.txt)
* The new secondary selectors and z-level keybindings are confortable in my
Latin American keyboard layout, change them if they are uncorfortable for you.
* I replaced the standard "secondary scroll keys" (-+/*) because they weren't "vi"-like,
I'd recommend getting used to the new keybindings, they are much more friendly anyways.
Complete changelog:
add new keybinds for "Enter" actions
- add CTRL+Space and CTRL+ALT+Space to all actions using Enter
in the default keybindings
change macro management keybinds (avoid conflict with new movement keys)
- change CTRL+[rpls] to SHIFT+CTRL+[rpls] in
(RECORD|PLAY|LOAD|SAVE)_MACRO
add new movement keys
- add CTRL+[hjklyubn] for single-tile movement
(CURSOR_(LEFT|DOWN|UP|RIGHT|UPLEFT|UPRIGHT|DOWNLEFT|DOWNRIGHT)
- add ALT+<keys> and CTRL+ALT+<keys> for multi-tile movement
(CURSOR_(LEFT|DOWN|UP|RIGHT|UPLEFT|UPRIGHT|DOWNLEFT|DOWNRIGHT)_FAST)
- add CTRL+[hjklun] for "standard scrolling"
(STANDARDSCROLL_(LEFT|DOWN|UP|RIGHT|PAGEUP|PAGEDOWN)
- add CTRL+ALT+[jk] to scroll in lists (STANDARDSCROLL_PAGE(DOWN|UP))
change bindings conflicting with new movement keys
- change ALT+b to SHIFT+CTRL+b in HOTKEY_TRAP_BARS_FLOOR
- change ALT+b to SHIFT+CTRL+b in HOTKEY_BUILDING_BARS_FLOOR
- change ALT+h to SHIFT+CTRL+h in HOTKEY_BUILDING_HIVE
- change CTRL+u to SHIFT+CTRL+u in PREFIX
possible unresolved conflicts
(pretty sure "A_" prefix means adventure mode)
- A_ATTACK_CONFIRM (ALT+y) with new movement key
- A_FRESHEST_TRACK (ALT+k) with new movement key
add new keys for embark positioning and resizing
- add [wasd] to move embark (SETUP_LOCAL_(X|Y)_(MUP|MDOWN))
- add [WASD] to resize embark (SETUP_LOCAL_(X|Y)_(UP|DOWN))
add new keys to change z level
- I found them useful in my LatinAmerican layout keyboard, YMMV.
- add CTRL+Comma to lower z level (CURSOR_UP_Z_AUX)
- add CTRL+Period to increase z level (CURSOR_DOWN_Z_AUX)
add new keys to world parameter decrease/increase
- add CTRL+[hl] to world parameter decrease/increase
(WORLD_PARAM_(DECREASE|INCREASE))
change Pause to Backspace
- change D_PAUSE to Backspace to avoid using it by mistake
change "Remove work order" key in "Manager screen"
- change remove work order (MANAGER_REMOVE) from r to CTRL+ALT+r
to avoid unintentional job deletion
change keys to Secondary Scroll keybinds
- I found brackets useful in my LatinAmerican layout keyboard, YMMV.
- change '[', ']', CTRL+[ and CTRL+] as Secondary Scroll Down and Up
(SECONDSCROLL_(DOWN|UP))
- change CTRL+ALT+[ and CTRL+ALT+] as Secondary Scroll Page Down and Up
(SECONDSCROLL_PAGE(DOWN|UP))
- change default keys "-+/*" to "Numpad (Minus|Plus|Divide|Multiply)"
to avoid some problems (don't use numpad anyways, use brackets!)
reasoning behind the change of secondary selector up/down/pgup/pgdwn
- defaults are awful:
* Minus is "down" but it's over the plus key in the numpad
* Plus is "up" but is below the minus key
* numpad asterisk is "pgdwn" and numpad multiply is "pgup",
but they don't follow same order as vi keys "jk"
- the new keys right now is:
* Leftbracket (with or without CTRL) and numpad Plus is "down"
* Rightbracket (with or without CTRL) and numpad Minus is "up"
* CTRL+ALT+Leftbracket and numpad Divide is "pgdwn"
* CTRL+ALT+Rightbracket and numpad Multiply is "pgup"
- this change invert adding/subtracting with Minus/Plus in numpad,
but the objective of this keybindings are to not use numpad at all,
so use the Brackets :)