Accessible Squeekboard Terminal Layout

I commissioned @dcz to create an accessible Squeekboard terminal layout. The height of us.yaml’s top bar was increased by 8 pixels to make it easier to press the keys within it accurately, while carefully reducing each row’s height below it by 2 pixels each to maintain usability. In addition, both us.yaml and us_wide.yaml cherry-pick various features from Squeekboard versions 1.22.0 to 1.38.0:

  • Keeps PgUp/PgDn, Return symbol, symmetrical corner keys, and accessible light grey colour scheme.
  • Removes “side” keys.
  • Adds Tab key for us.yaml, with an additional Esc key for us_wide.yaml.

Instructions

  1. Create the directory for the accessible Squeekboard terminal layout, then change it to the active directory.
mkdir -p ~/.local/share/squeekboard/keyboards/terminal
cd ~/.local/share/squeekboard/keyboards/terminal
  1. Create us.yaml using GNU Nano, then copy, paste, and save the contents of us.yaml from below. Repeat the same process for us_wide.yaml.
nano us.yaml
nano us_wide.yaml
us.yaml
---
outlines:
    default: { width: 35.33, height: 44 }
    action:  { width: 59,    height: 44 }
    altline: { width: 52.67, height: 44 }
    wide: { width: 59, height: 44 }
    spaceline: { width: 140, height: 44 }
    special: { width: 44, height: 44 }
    small: { width: 50.471, height: 30 }

views:
    base:
        - "TabSmall Ctrl Alt ↑ ↓ ← →"
        - "q w e r t y u i o p"
        - "a s d f g h j k l"
        - "Shift_L   z x c v b n m  BackSpace"
        - "show_numbers preferences      space        show_actions Return"
    upper:
        - "TabSmall Ctrl Alt PgUp PgDn Home End"
        - "Q W E R T Y U I O P"
        - "A S D F G H J K L"
        - "Shift_L   Z X C V B N M  BackSpace"
        - "show_numbers preferences      space        show_actions Return"
    numbers:
        - "TabSmall Ctrl Alt ↑ ↓ ← →"
        - "1 2 3 4 5 6 7 8 9 0"
        - "* # $ / & - _ + ( )"
        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
        - "show_letters preferences         space        period Return"
    symbols:
        - "TabSmall Ctrl Alt ↑ ↓ ← →"
        - "~ ` | · √ π τ ÷ × ¶"
        - "© ® £ € ¥ ^ ° @ { }"
        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
        - "show_letters preferences         space        period Return"
    actions:
        - "TabSmall Ctrl Alt PgUp PgDn Home End"
        - "F1  F2  F3  F4  F5  F6"
        - "F7  F8  F9  F10 F11 F12"
        - "Esc Tab Pause Insert Up Del"
        - "show_letters Menu Break Left Down Right"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        outline: "altline"
        icon: "key-shift"
    BackSpace:
        outline: "altline"
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_numbers:
        action:
            set_view: "numbers"
        outline: "wide"
        label: "123"
    show_numbers_from_symbols:
        action:
            set_view: "numbers"
        outline: "altline"
        label: "123"
    show_letters:
        action:
            set_view: "base"
        outline: "wide"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "altline"
        label: "τ=\\"
    show_actions:
        action:
            set_view: "actions"
        outline: "altline"
        label: ">_"
    period:
        outline: "altline"
        text: "."
    space:
        outline: "spaceline"
        text: " "
    Return:
        outline: "wide"
        icon: "key-enter"
        keysym: "Return"
    colon:
        text: ":"
    F1:
        outline: "action"
        keysym: "F1"
    F2:
        outline: "action"
        keysym: "F2"
    F3:
        outline: "action"
        keysym: "F3"
    F4:
        outline: "action"
        keysym: "F4"
    F5:
        outline: "action"
        keysym: "F5"
    F6:
        outline: "action"
        keysym: "F6"
    F7:
        outline: "action"
        keysym: "F7"
    F8:
        outline: "action"
        keysym: "F8"
    F9:
        outline: "action"
        keysym: "F9"
    F10:
        outline: "action"
        keysym: "F10"
    F11:
        outline: "action"
        keysym: "F11"
    F12:
        outline: "action"
        keysym: "F12"
    Esc:
        outline: "action"
        keysym: "Escape"
    Tab:
        outline: "action"
        keysym: "Tab"
    TabSmall:
        outline: "small"
        keysym: "Tab"
        label: "Tab"
    Del:
        outline: "action"
        keysym: "Delete"
    Insert:
        outline: "action"
        keysym: "Insert"
    Menu:
        outline: "action"
        keysym: "Menu"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
    End:
        outline: "small"
        keysym: "End"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
    "↑":
        outline: "small"
        keysym: "Up"
    "↓":
        outline: "small"
        keysym: "Down"
    "←":
        outline: "small"
        keysym: "Left"
    "→":
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Ctrl"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"
us_wide.yaml
---
outlines:
    default:   { width: 54,   height: 35 }
    action:    { width: 90,   height: 35 }
    altline:   { width: 81,   height: 35 }
    wide:      { width: 90,   height: 35 }
    spaceline: { width: 225,  height: 35 }
    special:   { width: 54,   height: 35 }
    small:     { width: 67.4, height: 30 }

views:
    base:
        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
        - "q w e r t y u i o p"
        - "a s d f g h j k l"
        - "Shift_L   z x c v b n m  BackSpace"
        - "show_numbers preferences      space        show_actions Return"
    upper:
        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
        - "Q W E R T Y U I O P"
        - "A S D F G H J K L"
        - "Shift_L   Z X C V B N M  BackSpace"
        - "show_numbers preferences      space        show_actions Return"
    numbers:
        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
        - "1 2 3 4 5 6 7 8 9 0"
        - "* # $ / & - _ + ( )"
        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
        - "show_letters preferences         space        period Return"
    symbols:
        - "EscSmall TabSmall Ctrl Alt ↑ ↓ ← →"
        - "~ ` | · √ π τ ÷ × ¶"
        - "© ® £ € ¥ ^ ° @ { }"
        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
        - "show_letters preferences         space        period Return"
    actions:
        - "EscSmall TabSmall Ctrl Alt PgUp PgDn Home End"
        - "F1  F2  F3  F4  F5  F6"
        - "F7  F8  F9  F10 F11 F12"
        - "Esc Tab Pause Insert Up Del"
        - "show_letters Menu Break Left Down Right"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        outline: "altline"
        icon: "key-shift"
    BackSpace:
        outline: "altline"
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_numbers:
        action:
            set_view: "numbers"
        outline: "wide"
        label: "123"
    show_numbers_from_symbols:
        action:
            set_view: "numbers"
        outline: "altline"
        label: "123"
    show_letters:
        action:
            set_view: "base"
        outline: "wide"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "altline"
        label: "τ=\\"
    show_actions:
        action:
            set_view: "actions"
        outline: "altline"
        label: ">_"
    period:
        outline: "altline"
        text: "."
    space:
        outline: "spaceline"
        text: " "
    Return:
        outline: "wide"
        icon: "key-enter"
        keysym: "Return"
    colon:
        text: ":"
    F1:
        outline: "action"
        keysym: "F1"
    F2:
        outline: "action"
        keysym: "F2"
    F3:
        outline: "action"
        keysym: "F3"
    F4:
        outline: "action"
        keysym: "F4"
    F5:
        outline: "action"
        keysym: "F5"
    F6:
        outline: "action"
        keysym: "F6"
    F7:
        outline: "action"
        keysym: "F7"
    F8:
        outline: "action"
        keysym: "F8"
    F9:
        outline: "action"
        keysym: "F9"
    F10:
        outline: "action"
        keysym: "F10"
    F11:
        outline: "action"
        keysym: "F11"
    F12:
        outline: "action"
        keysym: "F12"
    Esc:
        outline: "action"
        keysym: "Escape"
    EscSmall:
        outline: "small"
        keysym: "Escape"
        label: "Esc"
    Tab:
        outline: "action"
        keysym: "Tab"
    TabSmall:
        outline: "small"
        keysym: "Tab"
        label: "Tab"
    Del:
        outline: "action"
        keysym: "Delete"
    Insert:
        outline: "action"
        keysym: "Insert"
    Menu:
        outline: "action"
        keysym: "Menu"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
    End:
        outline: "small"
        keysym: "End"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
    "↑":
        outline: "small"
        keysym: "Up"
    "↓":
        outline: "small"
        keysym: "Down"
    "←":
        outline: "small"
        keysym: "Left"
    "→":
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Ctrl"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"
  1. Change to the terminal layout in Squeekboard to reload them.

Contributions

Upstream issues:

Upstream merge request:

Contact

You can thank @dcz for their GitLab contributions and bespoke work in the Matrix chatroom below:

7 Likes

What are “side keys?”

2 Likes

In later versions of Squeekboard, two keys were added to the middle row’s sides, which affects the lower and upper case layers of both layout orientations.

I use my thumbs’ sides when pressing a/A or l/L, so the “side” keys quickly got in the way of my typing experience. If you want to try it out for yourself, there is a modified Squeekboard layout including them in the Matrix chatroom linked above, or you can update Squeekboard past 1.22.0 for an authentic experience.

1 Like

I guess this doesn’t affect the “Terminal” version of Squeekboard…? I haven’t seen the non-Terminal versions in a long time, as my default is “Terminal.”
So I haven’t noticed those keys.

1 Like

It does past 1.22.0.

Actually, I should have said that my version is a copy of the “old” (I guess old?) Terminal board, which I renamed as “US” to be used in place of the default “US” board. (So my default would have all the keys and layout of the “official” Terminal board.)

1 Like

That is the same layout as 1.22.0.

My “US” keyboard is the “Terminal” layout, renamed to “US” so it would be used as default in all apps.

1 Like

I understand.