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

# This key subtable is for all FreedomScientific Focus displays.

note An eight-dot, Perkins-style, braille keyboard is near the rear of the top.
note * Its keys, From left to right, are: Dot7, Dot3, Dot2, Dot1, Dot4, Dot5, Dot6, Dot8.
note * The space bar is in front of the braille cells.

note There is a routing key immediately behind each braille cell.
note * Some models have a navrow key immediately behind each routing key.

note There are two Nav controls - one at each end of the braille cells.
note * They have three actions: Up, Down, and Press.
note * On newer models, each is a rocker combined with a button.
note * On older models, each is a wheel that can be both rolled and pressed.

note The keys on the front, from left to right, are:
note * \{frontKeysLeft} - \{frontKeysRight}.

note The left and right shift keys are squarish and flat.
note The left and right panning keys are long and flat with a raised double-arrow.

note The left and right selector keys are round and concave.
note * On older models, they're known as GDF (General Display Function) keys.

ifKey LeftBumperUp
  note There indeed are two left and two right bumper keys.
  note * Both left ones perform the same functions, as do both right ones.
endIf

assign navKeyType Nav
include common.kti

map Dot1 DOT1
map Dot2 DOT2
map Dot3 DOT3
map Dot4 DOT4
map Dot5 DOT5
map Dot6 DOT6
map Dot7 DOT7
map Dot8 DOT8

map Space SPACE
map LeftShift CONTROL
map RightShift META

assign chord Space+
include ../chords.kti

bind Space+LeftShift KEY_BACKSPACE
bind Space+RightShift KEY_ENTER

bind Space+!RoutingKey KEY_FUNCTION
bind RightShift+!RoutingKey SWITCHVT

bind !NavrowKey DESCCHAR
bind PanLeft+!NavrowKey PRINDENT
bind PanRight+!NavrowKey NXINDENT
bind LeftSelector+!NavrowKey SETLEFT
