###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2025 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

title Bindings for Keypad-based Navigation


####################
# Default Bindings #
####################

bind KP0+!KP5 HOME
bind KP0+!KP4 FWINLT
bind KP0+!KP6 FWINRT
bind KP0+!KP8 LNUP
bind KP0+!KP2 LNDN
bind KP0+!KP7 TOP_LEFT
bind KP0+!KP1 BOT_LEFT
bind KP0+!KP9 PRDIFLN
bind KP0+!KP3 NXDIFLN
bind KP0+!KPDivide CSRTRK
bind KP0+!KPMultiply DISPMD
bind KP0+!KPMinus SIXDOTS+off
bind KP0+!KPPlus SIXDOTS+on

bind KPPeriod+!KP5 BACK
bind KPPeriod+!KP4 FWINLTSKIP
bind KPPeriod+!KP6 FWINRTSKIP
bind KPPeriod+!KP8 PRPGRPH
bind KPPeriod+!KP2 NXPGRPH
bind KPPeriod+!KP7 PRPROMPT
bind KPPeriod+!KP1 NXPROMPT
bind KPPeriod+!KP9 ATTRUP
bind KPPeriod+!KP3 ATTRDN
bind KPPeriod+!KPDivide CSRVIS
bind KPPeriod+!KPMultiply ATTRVIS
bind KPPeriod+!KPMinus BRLUCDOTS+off
bind KPPeriod+!KPPlus BRLUCDOTS+on

bind KP0+KPPeriod+!KP1 CHRLT
bind KP0+KPPeriod+!KP2 CSRJMP_VERT
bind KP0+KPPeriod+!KP3 CHRRT
bind KP0+KPPeriod+!KP4 LNBEG
bind KP0+KPPeriod+!KP5 SETLEFT
bind KP0+KPPeriod+!KP6 LNEND

bind KPMinus+!KP5 PREFMENU
bind KPMinus+!KP4 PREFLOAD
bind KPMinus+!KP6 PREFSAVE
bind KPMinus+!KP8 INFO
bind KPMinus+!KP7 HELP
bind KPMinus+!KP9 LEARN
bind KPMinus+!KP2 FREEZE
bind KPMinus+!KP1 TIME
bind KPMinus+!KP3 DESCCHAR
bind KPMinus+!KPDivide RESTARTBRL
bind KPMinus+!KPMultiply RESTARTSPEECH

bind KPMultiply+KP5 PASTE:PASTE_ALTMODE
bind KPMultiply+!KP7 CLIP_NEW
bind KPMultiply+!KP1 CLIP_ADD
bind KPMultiply+!KP9 COPY_LINE
bind KPMultiply+!KP3 COPY_RECT
bind KPMultiply+!KP8 PRINDENT
bind KPMultiply+!KP2 NXINDENT
bind KPMultiply+!KP4 PRDIFCHAR
bind KPMultiply+!KP6 NXDIFCHAR
bind KPMultiply+!KPMinus PRSEARCH
bind KPMultiply+!KPPlus NXSEARCH

assign kpAlt KP0
assign kpOne KP1
assign kpTwo KP2
assign kpThree KP3
assign kpFour KP4
assign kpFive KP5
assign kpSix KP6
assign kpSeven KP7
assign kpEight KP8
assign kpNine KP9
assign kpDivide KPDivide
assign kpMultiply KPMultiply
assign kpMinus KPMinus

assign kpSay KPEnter
include kp_say.kti

assign kpSpeak KPPlus
include kp_speak.kti


#################
# Menu Bindings #
#################

context menu

bind KP0+!KP4 FWINLT
bind KP0+!KP6 FWINRT
bind KP0+!KP8 MENU_PREV_ITEM
bind KP0+!KP2 MENU_NEXT_ITEM
bind KP0+!KP7 MENU_FIRST_ITEM
bind KP0+!KP1 MENU_LAST_ITEM
bind KP0+!KP9 MENU_PREV_SETTING
bind KP0+!KP3 MENU_NEXT_SETTING
bind KP0+!KP5 MENU_PREV_LEVEL

bind KP0+!KPEnter PREFMENU
bind KP0+!KPPlus PREFSAVE
bind KP0+!KPMinus PREFLOAD


#################
# Braille Input #
#################

assign brailleOff KPEnter+!KPMinus
assign brailleOn KPEnter+!KPPlus
include braille.kti


