# comfort_command_keys.txt (v7 - removed commands that don't exist in # current DCSS: see the "REMOVED" notes throughout) # # IMPORTANT: DCSS's rc parser only treats '#' as a comment when it starts # the line. A trailing "# comment" after a value gets read as PART OF THE # VALUE, breaking the bindkey. Every explanatory note in this file is on # its own line, above the bindkey it refers to, for exactly that reason. # # DESIGN PRINCIPLE: movement/targeting/map stay on the RIGHT hand (the # cluster below). Everything else lives on the LEFT hand as much as # possible. # # g(UL) c(U) r(UR) # h(L) t(D) n(R) # b(DL) v(DR) # # Shifted one column right from the original f/g/c/d/h/t/x/w layout. # # Shift + these same letters = run / shoot-in-direction / jump-cursor. # (Ctrl used to open doors directionally, but that command no longer # exists in current DCSS - see the note further down.) # # COSMETIC LEFTOVER: old vi-letters (b h j k l n u y + shift forms) still # work as harmless duplicate cursor keys inside Targeting/Level-map # screens specifically - same action as the new letters there, never # something else. DCSS's rc file has no per-screen unbind for this; the # in-game keymap editor (~ then t or x) can clean it up manually if # you want it perfectly tidy. ##### Movement ##### bindkey = [c] CMD_MOVE_UP bindkey = [t] CMD_MOVE_DOWN bindkey = [h] CMD_MOVE_LEFT bindkey = [n] CMD_MOVE_RIGHT bindkey = [g] CMD_MOVE_UP_LEFT bindkey = [r] CMD_MOVE_UP_RIGHT bindkey = [b] CMD_MOVE_DOWN_LEFT bindkey = [v] CMD_MOVE_DOWN_RIGHT ##### Running (Shift) ##### bindkey = [C] CMD_RUN_UP bindkey = [T] CMD_RUN_DOWN bindkey = [H] CMD_RUN_LEFT bindkey = [N] CMD_RUN_RIGHT bindkey = [G] CMD_RUN_UP_LEFT bindkey = [R] CMD_RUN_UP_RIGHT bindkey = [B] CMD_RUN_DOWN_LEFT bindkey = [V] CMD_RUN_DOWN_RIGHT ##### Targeting: move cursor ##### bindkey = [c] CMD_TARGET_UP bindkey = [t] CMD_TARGET_DOWN bindkey = [h] CMD_TARGET_LEFT bindkey = [n] CMD_TARGET_RIGHT bindkey = [g] CMD_TARGET_UP_LEFT bindkey = [r] CMD_TARGET_UP_RIGHT bindkey = [b] CMD_TARGET_DOWN_LEFT bindkey = [v] CMD_TARGET_DOWN_RIGHT ##### Targeting: shoot in direction (Shift) ##### bindkey = [C] CMD_TARGET_DIR_UP bindkey = [T] CMD_TARGET_DIR_DOWN bindkey = [H] CMD_TARGET_DIR_LEFT bindkey = [N] CMD_TARGET_DIR_RIGHT bindkey = [G] CMD_TARGET_DIR_UP_LEFT bindkey = [R] CMD_TARGET_DIR_UP_RIGHT bindkey = [B] CMD_TARGET_DIR_DOWN_LEFT bindkey = [V] CMD_TARGET_DIR_DOWN_RIGHT ##### Level map: move cursor ##### bindkey = [c] CMD_MAP_MOVE_UP bindkey = [t] CMD_MAP_MOVE_DOWN bindkey = [h] CMD_MAP_MOVE_LEFT bindkey = [n] CMD_MAP_MOVE_RIGHT bindkey = [g] CMD_MAP_MOVE_UP_LEFT bindkey = [r] CMD_MAP_MOVE_UP_RIGHT bindkey = [b] CMD_MAP_MOVE_DOWN_LEFT bindkey = [v] CMD_MAP_MOVE_DOWN_RIGHT ##### Level map: jump cursor (Shift) ##### bindkey = [C] CMD_MAP_JUMP_UP bindkey = [T] CMD_MAP_JUMP_DOWN bindkey = [H] CMD_MAP_JUMP_LEFT bindkey = [N] CMD_MAP_JUMP_RIGHT bindkey = [G] CMD_MAP_JUMP_UP_LEFT bindkey = [R] CMD_MAP_JUMP_UP_RIGHT bindkey = [B] CMD_MAP_JUMP_DOWN_LEFT bindkey = [V] CMD_MAP_JUMP_DOWN_RIGHT ##### Open door in a direction - REMOVED ##### # CMD_OPEN_DOOR_UP/DOWN/LEFT/RIGHT/UP_LEFT/UP_RIGHT/DOWN_LEFT/DOWN_RIGHT # do not exist in current DCSS (confirmed against the official crawl/crawl # docs) - only the single non-directional CMD_OPEN_DOOR ('O' by default, # already repurposed for attack in our scheme) exists now. Walking into a # closed door still opens it automatically, so this isn't a big loss. # ^G ^H ^T ^F ^C ^X ^W are free as a result (^D is reused below for # CMD_EVOKE) - see the free keys section near the end of this file. ##### LEFT HAND: everything else ##### bindkey = [j] CMD_DROP bindkey = [u] CMD_LOOK_AROUND # display skills: moved from right hand (B) bindkey = [k] CMD_DISPLAY_SKILLS ##### Equip/unequip cluster ##### # Shift+&, Shift+ç, Shift+" are confirmed broken in-game (send the right # character but DCSS reacts as if a different key was pressed - shout, # move-down, drop respectively) despite the digit-shift mechanism working # correctly elsewhere (Shift+% for rest, Shift+= for repeat both work). # Root cause unclear and not worth chasing further - per your call, we're # not fighting this. Weapon swap / remove armour / remove jewellery have # no dedicated key for now; Shift+&/ç/" simply keep doing what they # already do (shout/move-down/drop) undisturbed. bindkey = [&] CMD_WIELD_WEAPON bindkey = [ç] CMD_WEAR_ARMOUR bindkey = ["] CMD_WEAR_JEWELLERY # CMD_LIST_JEWELLERY (worn jewellery list) is displaced from its default # '"' by the wear-jewellery binding above - relocated to the now-free ' # key rather than lost bindkey = ['] CMD_LIST_JEWELLERY ##### Combat cluster: 2 keys (a/o), plain+Shift ##### # attack: all our earlier testing of plain 'a' happened while trying to # bind it to CMD_EVOKE_WIELDED, which doesn't exist in current DCSS - if # DCSS silently ignores bindkey lines for nonexistent commands rather # than erroring, 'a' was never actually stuck, we just never gave it a # valid command before. This is the first real test with one. # If this DOESN'T work, it likely is the Mantis #4505/#10526 engine bug # after all - let me know and we'll swap it back. bindkey = [a] CMD_PRIMARY_ATTACK # # fire quivered ammo bindkey = [A] CMD_FIRE # # cast spell bindkey = [o] CMD_CAST_SPELL # ability bindkey = [O] CMD_USE_ABILITY # Religion goes back to its original routes now that 'A' is fire again: # the default ^ key (likely a dead key on this Swiss layout and may not # fire as a standalone press) and your custom § binding from DCSS_rc.txt. # Restoring both since we'd previously cleared them. bindkey = [^] CMD_DISPLAY_RELIGION bindkey = [§] CMD_DISPLAY_RELIGION # quaff: untouched default, made explicit here for clarity bindkey = [q] CMD_QUAFF # read: was r - now same key as quaff, via Shift bindkey = [Q] CMD_READ # quiver item: was Shift+q (displaced by read) - relocated to the # now-free y key bindkey = [y] CMD_QUIVER_ITEM # explore: was - (moved again per your request) bindkey = [m] CMD_EXPLORE bindkey = [J] CMD_INTERLEVEL_TRAVEL bindkey = [U] CMD_DISPLAY_MAP # throw without quiver: moved from right hand (L). Renamed from # CMD_THROW_ITEM_NO_QUIVER, which no longer exists in current DCSS # (confirmed against the official crawl/crawl docs) - this is the # current name for the same command. bindkey = [^J] CMD_FIRE_ITEM_NO_QUIVER # clear map: moved from right hand (^L) bindkey = [^K] CMD_CLEAR_MAP # fix waypoint: moved from right hand (^Y) bindkey = [^U] CMD_FIX_WAYPOINT # CMD_MACRO_ADD needs no fix: its default key is ^E (not ^D/~ as older # docs say), and we never touch ^E, so it's untouched and still works # level-map screen only bindkey = [J] CMD_MAP_FIND_WAYPOINT # REMOVED: CMD_MAP_FIND_F does not exist in current DCSS (confirmed # against the official docs) - map-context 'k' is free again as a result # REMOVED: CMD_TARGET_MAYBE_PREV_TARGET does not exist in current DCSS # either - targeting-context 'j' is free again as a result # CMD_TARGET_CANCEL needs no fix: ESCAPE is already a default second key ##### RIGHT HAND: low-priority items evicted here to make room on the left ##### # shout: moved from left hand (k) bindkey = [l] CMD_SHOUT # close door: was e, then n, then d - relocated again to 'w' per request. # 'd' is now explicitly freed below (was silently reverting to nothing # useful anyway once close-door moved off it). bindkey = [w] CMD_CLOSE_DOOR # REMOVED: CMD_TOGGLE_FRIENDLY_PICKUP does not exist in current DCSS # (confirmed against the official docs) - ^B is free again as a result # search stashes: moved from left hand (^K) bindkey = [^N] CMD_SEARCH_STASHES # full view: moved from left hand (^U) bindkey = [^L] CMD_FULL_VIEW # display mutations: CORRECTED - was on '/', which is actually in the # number row (not usable) - 'z' is the right-hand key freed by the fire fix bindkey = [z] CMD_DISPLAY_MUTATIONS # freed: CMD_WAIT only needs one key now (.) bindkey = [s] CMD_NO_CMD_DEFAULT ##### Free / unbound - available for future use ##### # ^T and ^B are genuinely free - their old commands (toggle friendly # pickup, and the removed door system) no longer exist and nothing else # claims them. bindkey = [^T] CMD_NO_CMD_DEFAULT bindkey = [^B] CMD_NO_CMD_DEFAULT # -, p, K, P: freed by regrouping equip/unequip onto the number row # (R is now claimed by movement's Shift+r = RUN_UP_RIGHT) bindkey = [-] CMD_NO_CMD_DEFAULT bindkey = [p] CMD_NO_CMD_DEFAULT bindkey = [K] CMD_NO_CMD_DEFAULT bindkey = [P] CMD_NO_CMD_DEFAULT # 'e' is also effectively free of OUR bindings now that combat is back to # 2 keys - but note it reverts to a NEW current-game default, CMD_EQUIP # (a unified wield/wear command), not CMD_EAT as the old docs said. Might # be worth trying before binding something else here. # # inscribe item: was { then b - b is now movement (DOWN_LEFT), relocated # to the freed 'x' (movement's old DOWN_LEFT key, vacated by this shift) bindkey = [x] CMD_INSCRIBE_ITEM # freed: evoke wielded moved to 'a' bindkey = [{] CMD_NO_CMD_DEFAULT bindkey = [Y] CMD_NO_CMD_DEFAULT # CMD_EVOKE (evoke item from inventory) is displaced from its default # Shift+v by the movement shift (v is now DOWN_RIGHT) - relocated to the # freed Shift+d (movement's old RUN_LEFT key, vacated by this shift) bindkey = [D] CMD_EVOKE bindkey = [L] CMD_NO_CMD_DEFAULT bindkey = [^Y] CMD_NO_CMD_DEFAULT # d, W, f, F, X: all vacated by the movement shift last round, but never # explicitly cleared - each was SILENTLY reverting to its own game # default (d had none; W=wear armour, f=fire, F=fire-no-quiver, # X=display map - all redundant with keys we already use elsewhere). # Explicitly freeing all five now so nothing fires unexpectedly. bindkey = [d] CMD_NO_CMD_DEFAULT bindkey = [W] CMD_NO_CMD_DEFAULT bindkey = [f] CMD_NO_CMD_DEFAULT bindkey = [F] CMD_NO_CMD_DEFAULT bindkey = [X] CMD_NO_CMD_DEFAULT ##### Redundant safety-net keys (not double-bound BY us, but worth knowing) ##### # Removing the door system freed ^G ^H ^T ^F ^C ^X ^W (^D is explicitly # used above for CMD_EVOKE). Four of the rest quietly revert to a game # default that's ALSO reachable another way in this file: ^G=interlevel # travel (also J), ^F=search stashes (also ^N), ^C=clear map (also ^K), # ^X=full view (also ^L), ^W=fix waypoint (also ^U). Harmless redundancy, # not a conflict - say the word if you'd rather these be silenced too. # ^H reverts to CMD_ATTACK_LEFT (its old default) - a single attack # direction works again as a side effect, unlikely to matter on its own.