Skip to content
AutoHotKey Script to test all text-based keystrokes from a keyboard layout.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
README.md
expected.txt
expected_recommended.txt
expected_sgcaps.txt
nf-z71-300-recommended.ahk
nf-z71-300.ahk

README.md

Keyboard Layout Testing Tool

This repository contains a very simple AutoHotKey script and accompanying compliance testing command-line tool, to test available keystrokes from the currently selected keyboard layout and compare the result against a known state.

This tool is currently being used to test compliance of the AZERTY-NF keyboard layout.

How to test

This repository contains the current expected.txt file that stores the requested keystrokes for a NF Z71-300 standard-compliant AZERTY keyboard layout.

In order to test the keyboard layout, please follow the steps outlined hereafter:

  • Install and select the desired keyboard layout.
  • Run the nf-z71-300.ahk script.
  • Open an empty Notepad® text file
  • In Notepad®, hit Ctrl+r to run the test.
  • When the test completes, save the resulting file in the UTF-8 encoding. For instance, save the file as actual.txt.

You can now compile and run the accompanying compliance.exe command-line tool, with the following command:

PS> cd src/
PS> dotnet run ..\actual.txt ..\expected.txt

This will gather the results and report the compliance rate of the layout.

Current compliance level

The referred-to AZERTY-NF (Numérique) layout reports 100% standard compliance.

The referred-to AZERTY-NF layout with SGCaps feature is only slightly less compliant, and brings a very useful way to type accented characters in upper case.

It is currently reporting the following results:

Success: 97,34%
Total: 752, Succeeded: 732, Failed: 20.
..\expected.txt(21, 2): Expected: '1' (U+0031), Actual: 'À' (U+00C0).
..\expected.txt(21, 3): Expected: '2' (U+0032), Actual: 'É' (U+00C9).
..\expected.txt(21, 4): Expected: '3' (U+0033), Actual: 'È' (U+00C8).
..\expected.txt(21, 5): Expected: '4' (U+0034), Actual: 'Ê' (U+00CA).
..\expected.txt(21, 6): Expected: '5' (U+0035), Actual: '(' (U+0028).
..\expected.txt(21, 7): Expected: '6' (U+0036), Actual: ')' (U+0029).
..\expected.txt(21, 8): Expected: '7' (U+0037), Actual: ''' (U+2018).
..\expected.txt(21, 9): Expected: '8' (U+0038), Actual: ''' (U+2019).
..\expected.txt(21, 10): Expected: '9' (U+0039), Actual: '«' (U+00AB).
..\expected.txt(21, 11): Expected: '0' (U+0030), Actual: '»' (U+00BB).
..\expected.txt(26, 2): Expected: 'à' (U+00E0), Actual: '1' (U+0031).
..\expected.txt(26, 3): Expected: 'é' (U+00E9), Actual: '2' (U+0032).
..\expected.txt(26, 4): Expected: 'è' (U+00E8), Actual: '3' (U+0033).
..\expected.txt(26, 5): Expected: 'ê' (U+00EA), Actual: '4' (U+0034).
..\expected.txt(26, 6): Expected: '(' (U+0028), Actual: '5' (U+0035).
..\expected.txt(26, 7): Expected: ')' (U+0029), Actual: '6' (U+0036).
..\expected.txt(26, 8): Expected: ''' (U+2018), Actual: '7' (U+0037).
..\expected.txt(26, 9): Expected: ''' (U+2019), Actual: '8' (U+0038).
..\expected.txt(26, 10): Expected: '«' (U+00AB), Actual: '9' (U+0039).
..\expected.txt(26, 11): Expected: '»' (U+00BB), Actual: '0' (U+0030).

For this reason, this repository also contains an alternate expected_sgcaps.txt file for a customized layout allowing direct input of upper case accented characters when using Caps Lock which is a popular option.

You can’t perform that action at this time.