###############################################################################
# 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 Keyboards without a Keypad


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

bind CapsLock+!F1 HELP
bind CapsLock+ShiftLeft+!F1 LEARN

bind CapsLock+!F2 PREFMENU
bind CapsLock+ShiftLeft+!F2 PREFSAVE

bind CapsLock+!F5 SAY_SLOWER
bind CapsLock+!F6 SAY_FASTER
bind CapsLock+!F7 SAY_SOFTER
bind CapsLock+!F8 SAY_LOUDER

bind CapsLock+!F9 AUTOSPEAK

bind CapsLock+!ArrowUp LNUP
bind CapsLock+!ArrowDown LNDN
bind CapsLock+!ArrowLeft CHRLT
bind CapsLock+!ArrowRight CHRRT
bind CapsLock+!Home TOP_LEFT
bind CapsLock+!End BOT_LEFT

bind CapsLock+ShiftLeft+!ArrowUp PRDIFLN
bind CapsLock+ShiftLeft+!ArrowDown NXDIFLN
bind CapsLock+ShiftLeft+!ArrowLeft LNBEG
bind CapsLock+ShiftLeft+!ArrowRight LNEND
bind CapsLock+ShiftLeft+!Home TOP
bind CapsLock+ShiftLeft+!End BOT

bind CapsLock+!Enter CSRTRK
bind CapsLock+ShiftLeft+!Enter CSRTRK+off
bind CapsLock+!DeleteBackward BACK

bind CapsLock+!D DESCCHAR
bind CapsLock+!F FREEZE
bind CapsLock+!R RESTARTBRL
bind CapsLock+!T TIME

# marks
bind CapsLock+!M SETMARK
bind CapsLock+!J GOTOMARK
bind CapsLock+ShiftLeft+!One SETMARK+1
bind CapsLock+!One GOTOMARK+1
bind CapsLock+ShiftLeft+!Two SETMARK+2
bind CapsLock+!Two GOTOMARK+2
bind CapsLock+ShiftLeft+!Three SETMARK+3
bind CapsLock+!Three GOTOMARK+3
bind CapsLock+ShiftLeft+!Four SETMARK+4
bind CapsLock+!Four GOTOMARK+4

# copy and paste
bind CapsLock+!X CLIP_NEW
bind CapsLock+ShiftLeft+!X CLIP_ADD
bind CapsLock+!C COPY_RECT
bind CapsLock+ShiftLeft+!C COPY_LINE
bind CapsLock+V PASTE:PASTE_ALTMODE

# speech
bind ControlLeft MUTE
bind ControlRight MUTE
bind CapsLock+!Space SAY_LINE
bind CapsLock+!PageUp SAY_ABOVE
bind CapsLock+!PageDown SAY_BELOW

bind ShiftRight+!ArrowLeft SPEAK_PREV_PWRD
bind ShiftRight+!ArrowRight SPEAK_NEXT_PWRD
bind ShiftRight+!ArrowUp SPEAK_PREV_LINE
bind ShiftRight+!ArrowDown SPEAK_NEXT_LINE
bind ControlRight+!ArrowLeft SPEAK_FRST_CHAR
bind ControlRight+!ArrowRight SPEAK_LAST_CHAR
bind ControlRight+!ArrowUp SPEAK_FRST_LINE
bind ControlRight+!ArrowDown SPEAK_LAST_LINE
bind ControlRight+ShiftRight ROUTE_CURR_LOCN
bind ShiftRight+!Enter SPEAK_CURR_LOCN

assign kpAlt ControlLeft
assign kpOne M
assign kpTwo Comma
assign kpThree Period
assign kpFour J
assign kpFive K
assign kpSix L
assign kpSeven U
assign kpEight I
assign kpNine O
assign kpDivide Eight
assign kpMultiply Seven
assign kpMinus Nine

assign kpSay CapsLock+ShiftLeft
include kp_say.kti

assign kpSpeak Tab
include kp_speak.kti


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

context menu

bind CapsLock+!ArrowUp MENU_PREV_ITEM
bind CapsLock+!ArrowDown MENU_NEXT_ITEM
bind CapsLock+!ArrowLeft MENU_PREV_SETTING
bind CapsLock+!ArrowRight MENU_NEXT_SETTING
bind CapsLock+!Home MENU_FIRST_ITEM
bind CapsLock+!End MENU_LAST_ITEM

bind CapsLock+ShiftLeft+!ArrowUp MENU_PREV_LEVEL
bind CapsLock+ShiftLeft+!ArrowDown PREFMENU
bind CapsLock+ShiftLeft+!ArrowLeft PREFLOAD
bind CapsLock+ShiftLeft+!ArrowRight PREFSAVE


