###############################################################################
# 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-2023 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>.
###############################################################################

# Key subtable for HandyTech rocker keys

bind LeftRockerTop KEY_CURSOR_UP
bind LeftRockerBottom KEY_CURSOR_DOWN
bind RightRockerTop LNUP
bind RightRockerBottom LNDN
bind LeftRockerTop+LeftRockerBottom FWINLT
bind RightRockerTop+RightRockerBottom FWINRT
bind LeftRockerTop+LeftRockerBottom+RightRockerTop+RightRockerBottom HOME
bind LeftRockerTop+LeftRockerBottom+B3 HOME
bind RightRockerTop+RightRockerBottom+B6 HOME
bind RightRockerTop+RightRockerBottom+LeftRockerTop TOP_LEFT
bind RightRockerTop+RightRockerBottom+B5 TOP_LEFT
bind LeftRockerTop+B3 TOP_LEFT
bind RightRockerTop+RightRockerBottom+LeftRockerBottom BOT_LEFT
bind RightRockerTop+RightRockerBottom+B7 BOT_LEFT
bind LeftRockerBottom+B3 BOT_LEFT
bind LeftRockerTop+LeftRockerBottom+RightRockerTop TOP
bind LeftRockerTop+LeftRockerBottom+B4 TOP
bind RightRockerTop+B6 TOP
bind LeftRockerTop+LeftRockerBottom+RightRockerBottom BOT
bind LeftRockerTop+LeftRockerBottom+B2 BOT
bind RightRockerBottom+B6 BOT
bind LeftRockerTop+RightRockerTop PRDIFLN
bind LeftRockerTop+B4 PRDIFLN
bind RightRockerTop+B5 PRDIFLN
bind LeftRockerTop+RightRockerBottom NXDIFLN
bind LeftRockerTop+B2 NXDIFLN
bind RightRockerBottom+B5 NXDIFLN
bind LeftRockerBottom+RightRockerTop ATTRUP
bind LeftRockerBottom+B4 ATTRUP
bind RightRockerTop+B7 ATTRUP
bind LeftRockerBottom+RightRockerBottom ATTRDN
bind LeftRockerBottom+B2 ATTRDN
bind RightRockerBottom+B7 ATTRDN

bind LeftRockerTop+RoutingKey CLIP_NEW
bind LeftRockerTop+LeftRockerBottom+RoutingKey KEY_FUNCTION
bind LeftRockerBottom+RoutingKey CLIP_ADD
bind RightRockerTop+RoutingKey COPY_LINE
bind RightRockerTop+RightRockerBottom+RoutingKey SWITCHVT
bind RightRockerBottom+RoutingKey COPY_RECT


context menu
bind RightRockerTop MENU_PREV_ITEM
bind RightRockerBottom MENU_NEXT_ITEM
bind LeftRockerTop MENU_PREV_SETTING
bind LeftRockerBottom MENU_NEXT_SETTING

