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

title Hedo ProfiLine

note The keys behind the text cells are named routing keys.
note The rectangular navigation keys are named K1 through K3.
note The square navigation keys are named B1 through B8.
note From left to right, the navigation keys are: K1 B7 B3 B2 B1 K1 K2 K3 B4 B5 B6 B8 K3
note Both K1 keys are hard-wired together.
note Both K3 keys are hard-wired together.
note The K2 and B1 keys are hard-wired together.

bind K2+K1 HELP
bind K2+K3 LEARN

bind K1+K3 PREFMENU
bind K1+K3+B2 PREFLOAD
bind K1+K3+B5 PREFSAVE

bind K2 HOME
bind K1 FWINLT
bind K3 FWINRT

bind B7 TOP
bind B8 BOT

bind B3 LNUP
bind B6 LNDN

bind B2 PRDIFLN
bind B5 NXDIFLN

bind B2+B7 ATTRUP
bind B5+B8 ATTRDN

bind B2+B3 PRPGRPH
bind B5+B6 NXPGRPH

bind B3+B7 PRPROMPT
bind B6+B8 NXPROMPT

bind B2+B3+B7 PRSEARCH
bind B5+B6+B8 NXSEARCH

bind B2+K1 CHRLT
bind B2+K3 CHRRT

bind B3+K1 FWINLTSKIP
bind B3+K3 FWINRTSKIP

bind B7+K1 LNBEG
bind B7+K3 LNEND

bind B5+K1 PASTE
bind B5+K3 CSRJMP_VERT

bind B6+K1 TIME
bind B6+K3 INFO

bind B8+K1 CLIP_RESTORE
bind B8+K3 CLIP_SAVE

assign toggleOff K1
assign toggleOn K3

assign toggleKeys B2+K2
assign toggleCommand SIXDOTS
include ../toggle.kti

assign toggleKeys B3+K2
assign toggleCommand CSRTRK
include ../toggle.kti

assign toggleKeys B7+K2
assign toggleCommand DISPMD
include ../toggle.kti

assign toggleKeys B5+K2
assign toggleCommand FREEZE
include ../toggle.kti

assign toggleKeys B6+K2
assign toggleCommand CSRVIS
include ../toggle.kti

assign toggleKeys B8+K2
assign toggleCommand ATTRVIS
include ../toggle.kti

bind RoutingKey ROUTE

bind B7+RoutingKey CLIP_NEW
bind B3+RoutingKey CLIP_ADD
bind B6+RoutingKey COPY_RECT
bind B8+RoutingKey COPY_LINE

bind B2+RoutingKey PRINDENT
bind B5+RoutingKey NXINDENT

bind K1+RoutingKey SETLEFT
bind K2+RoutingKey DESCCHAR

