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:

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

Please, how to do that? :pray:
Thank you so much!!

1 Like

Tap the :globe_with_meridians: symbol when Squeekboard is present, then tap the Terminal radio buton:

1 Like

Reading the excellent Limob weekly newsletter and saw there is new alternative keyboard available and easy to change the width in the layouts to suit.

1 Like

No differences :sweat_smile: maybe do I have to reboot?

1 Like

Did you follow the instructions in the original post to create two Squeekboard layouts (us.yaml and us_wide.yaml)?

1 Like

Yes, Frank, all step by step (as per I’m your student :slightly_smiling_face:) :



1 Like

You have correctly applied the accessible Squeekboard terminal layout. If you look closely within your first screenshot, you will notice the top bar being larger than default, along with new buttons:

For comparison:

2 Likes

:pray: Frank
I didn’t realise it :sweat_smile: it’s still small but I can work on your files to enlarge keys, I suppose!!!
Thank you so so much!! :pray::pray:

1 Like

Those accessible buttons look better than regular. I could see those easily replacing them.

1 Like

@FranklyFlawless
As you can see I’m playing with numbers trying to enlarge horizontally (vertically is ok) the keys maybe reducing, at same time, space between them (please see photo) but I’m unable to do that.
Any suggestion, please? :sweat_smile::pray:


1 Like

@Ick @Emma

I do not know how to enlarge Squeekboard’s layout size or reduce the keys’ spacing, but I suspect it requires recompiling Squeekboard. For the keys’ spacing, odds are that the file requiring modification is data/common.css#L18-21:

sq_button {
    border-radius: 4px;
    margin: 2px;
}
2 Likes