• You are not logged in.

    xkbdiagnostic

    • Started by Akiva
    • 4 Replies:
    • Reputation: 0
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    I was going to wait until I had a more finished and polished product, but someone suggested to me to post my progress while I am programming in order to get feedback and ideas that I can implement while coding.

    Basic Rundown
    I wanted to build some keyboard diagnostic software that would compare keyboard layouts. I especially wanted to compare my particular mod and take on colemak, lets call it "Colemak-CurlAngle(BZ)Wide[Akiv5]" (Rolls of the tongue, ey Dreymar?)

    Akiv5+ (updated to Akiv6 is shown below)
    gZ8MJwY.png

    The [somewhat] unique thing though about Akiv5+, is that it supports performing keypresses on key releases without special firmware. For example,
    - Capslock on Press     = Shift_L
    - Capslock on Release = Control_L+BackSpace

    I am really curious how  "Akiv5+" will compare to the other layouts with this added functionality.

    I also want to compare the different keyboard types, namely:

    ANSI:
    New-Laptop-font-b-keyboard-b-font-for-Lenovo-ThinkPad-T410-T420-X220-W510-W520-T510.jpg

    ISO:
    New-Original-for-IBM-Lenovo-Thinkpad-font-b-X220-b-font-X220i-font-b-X220-b.jpg

    Matrix:
    layout.jpg

    The basic metrics for comparison would be:

    - Keypresses for fingers
    - Repeat Keypresses for fingers
    - Repeat Keypresses for hands
    - Distance travelled for fingers
    - Keystrokes performed

    And what it would allow one to do, is log your keypresses for as long as you want, thus giving you a more personalised analysis, compared to the traditional methods of just sticking in "Huckleberry Fin", and analysing that.

    I am open to any other suggestions you would have on analysing metrics. Better I put them in now as opposed to later.

    Progress

    Day 2
    Basic working concept, but without keyboard comparisons.
    8Up4If7.png


    Day 3
    Now have rudimentary comparisons. A keypress on your keyboard, will tell the other one to perform the equivalent keypress on it.
    GBIfSGF.png

    Day 4
    Needed to do another alteration of my layout. I think this makes much more sense, considering the trackpoint is now located next to Page_Up and Page_Down. Was too much of a stretch otherwise for regular characters.
    lI478YC.png

    Day 5
    Working on the GUI, trying to get an overlay plus colours to work.
    Uf5WshX.png

    Day 6
    Working on building a layer in which I can draw upon
    Gjancvm.png

    Day 7
    Now it is starting to look pretty. Key strokes are starting to be interpreted pretty well on alternative layouts.
    M0y5StN.png

    Day 8
    UcToxh0.png

    Day 9
    fNQC6uu.png

    Day 10
    Video Demo
    https://www.facebook.com/KIVIIII/videos … 880871676/

    Day 11
    k0SZXcL.png

    Day 12
    hEwifjL.png

    Ughhhh. I am pretty burned out. In any case, you can start comparing layouts. I need to add some labels though...

    By the way, this is the first time I have ever asked in my entire life, but if anyone wants to help support me in this endeavour, so I can pay for food I have a paypal account under "akiva(@)linux.com", and I could really use a pick me up, because I actually do need money for food. By the end of the month, I want to do another keyboard layout presentation, like my first one here:

    https://www.youtube.com/watch?v=i1hK1qrdYtU&t=4139s

    Building this software will give me much of the content to speak on the presentation.


    Will keep you posted by edits to this post on progress, and replies to inquiries.

    Here is the Launchpad (Git), everything is GPL2, code contributors not particularly welcome at this point, considering I am doing major changes on it. Suggestions however are, so please by all means, leave any ideas or feedback.

    https://launchpad.net/xkbdiagnostic

    Thanks!

    Last edited by Akiva (Yesterday 02:35:04)
    Offline
    • 0
    • Reputation: 37
    • From: Bærum, Norway
    • Registered: 13-Dec-2006
    • Posts: 3,931

    Sorry, I certainly didn't mean that your layout doesn't deserve the name of Colemak! To the contrary, what I see when I look at it is a Colemak-CurlAngle(BZ)Wide[Akiva] or so (or, in short, "Colemak-CAW[A]" if you like, in line with my Colemak-CAW[eD]!). It's got your take on the Angle mod which is fine as there are several out there beforehand, and likewise your Wide variant.

    Colemak as I see it, is essentially just the letter block including semicolon, leaving the rest to the user's choices – although the "vanilla" Colemak also remaps Backspace and AltGr mappings, I don't consider those things the core of the layout. So your take on the number row and higher mapping layers is essentially further mods and not a deviation from the Colemak core in any way as I see it.

    Best of luck with your project(s)! :-)

    Please don't call the US/ANSI board "standard" though, as that pretty much amounts to an insult! ANSI is the standard of the American National Standards Institute, while the "Euro"/ISO board is the standard of the International Standardization Organization. Don't be centric in a big world. ;-)

    Furthermore, dual role keys (e.g., modifier on hold, keystroke(s) on tap) is hardly "unique" these days! It's used quite a lot not only in TMK/QMK code but other places too. I'm planning support for it in PKL as well, eventually. I'm assuming you meant tap-release and not release in general, as LShift on hold would be a bit pointless if it too generated ^Back on release!

    What's the link between this and XKB though? That isn't clear to me.

    Last edited by DreymaR (07-Aug-2017 10:04:12)
    Offline
    • 1
    • Reputation: 0
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    Bump for OP update

    Colemak as I see it, is essentially just the letter block including semicolon, leaving the rest to the user's choices – although the "vanilla" Colemak also remaps Backspace and AltGr mappings, I don't consider those things the core of the layout. So your take on the number row and higher mapping layers is essentially further mods and not a deviation from the Colemak core in any way as I see it.

    That is a really good explanation. Okay, I took the name off, and will make an "Akivak" if I ever decide to take my hand at a letter arrangement.

    Please don't call the US/ANSI board "standard" though, as that pretty much amounts to an insult! ANSI is the standard of the American National Standards Institute, while the "Euro"/ISO board is the standard of the International Standardization Organization. Don't be centric in a big world. ;-)

    Done and done.

    Furthermore, dual role keys (e.g., modifier on hold, keystroke(s) on tap) is hardly "unique" these days! It's used quite a lot not only in TMK/QMK code but other places too. I'm planning support for it in PKL as well, eventually. I'm assuming you meant tap-release and not release in general, as LShift on hold would be a bit pointless if it too generated ^Back on release!

    It is interesting if it exists on the firmware level. I have not seen any good implementation on the software level, which is what I provide in my other project (And mine supports keycombos fairly well.).

    It sure would be nice if we got good firmware for keyboards though. That would be way more ideal fixing the issue at that level. Is the firmware only for DIY keyboard builds, or could I get firmware like that for my thinkpad keyboards?

    What's the link between this and XKB though? That isn't clear to me.

    It relies on XKB keysyms, xinit, and xdotool, and will hence, only work on X. I tried it on Mir funny enough, and not surprisingly, it does not work. I doubt it will work in Wayland either.

    Keep up the good work Dreymar. I would love to learn more about your firmware.

    Offline
    • 0
    • Reputation: 37
    • From: Bærum, Norway
    • Registered: 13-Dec-2006
    • Posts: 3,931

    Thanks for the work and explanations! And grats on your Colemak-CAW[Akiv6] (less of a tongue twister, eh?)! ;-)

    TMK and its fork QMK do exist on available keyboards, but I don't know which ones. They're usually MassDrop-type boards, built by enthusiasts for enthusiasts. So some amount of DIY may be required.

    Myself, I use a USB2USB QUICKIE for TMK. Check out my Big Bag topic on its use and my implementations. On my (Windows 10) laptop, I only use PortableKeyboardLayout. They have different strengths: TMK has macros and multiple Extend layers which PKL still lacks, while PKL has glyph remappings and dead keys. TMK could in theory support AltGr remappings, but with extreme clunkiness and not cross-platform. And I don't think the current controllers would have enough memory for my dead key tables.

    In my TMK files, I have both a dual-role modifier and sticky Shift (tap-release Shift to shift the next key only). I'd like to cram these into PKL as well, but haven't gotten so far. Same with XKB, I guess (although I think sticky Shift should be an option outside of the layout settings per se).

    Last edited by DreymaR (11-Aug-2017 10:28:25)
    Offline
    • 1
    • Reputation: 0
    • From: Leafland
    • Registered: 17-Sep-2013
    • Posts: 32

    Bump

    I would be somewhat interested in trying make custom thinkpad keyboards with a matrix layout; looking into your firmware would be interesting. How difficult has been writing the firmware been?

    I have to say I am pretty close to burnt out on this project. Need to think of a good endgoal. (Or just take a break)

    Offline
    • 0