Code Monkey home page Code Monkey logo

javelin-steno's People

Contributors

jthlim avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

javelin-steno's Issues

Unable to connect device for Firmware tools

Uni v4
Chrome Version 109.0.5414.119 (Official Build) (64-bit)
Running on Fedora 37
Firmware works after using builder tool
Device shows up

image
When I try to connect I get NotAllowedError: Failed to open the device.
Screenshot from 2023-02-11 00-27-19

I went to chrome privacy settings and made sure HID, USB, and port permissions are not blocked as per google FAQ.
Chrome dev console doesn't have any other errors.

How to build from source?

Title. I know the online firmware builder exists, but I'd prefer to build the firmware myself locally.

`{ }{-|}` outputs `{ }`

  1. Use plover's main.json or DI's dict.json or make sure the stroke KPA is defined as { }{-|}
  2. Open Notepad
  3. Stroke KPA KAT

Result: { } Cat is output
Expected: Cat (a space the next word is caps)

Version: The Uni (Javelin) uni-v4-2023-04-28

KPA.mp4

Add Workman to keyboard layouts

When I'm not writing with steno, I use the Workman keyboard layout. But Javelin doesn't support this layout, which means I have to switch my computer's input method back to QWERTY every time I want to return to my steno machine. I'd appreciate it if Javelin could save me this step :)

Keyboard Layout Issue

Hello, can you please help me or let me know where else I should ask about this? I am a new Javelin Steno user and am having a hard time with the Keyboard Layout options.

The Javelin keyboard works unlike any other keyboard I've used in regards to the Keyboard Layout options. With QMK or ZMK for example, selecting a Dvorak layout means the keyboard's QWERTY layer will be replaced with a Dvorak layer. This enables the user to type in their preferred layout without having to change the OS default. This does not seem to be the case with Javelin. Below is what I've observed.

Situation No. 1 - If Javelin's Keyboard Layout is Dvorak & OS Dvorak keymap is not activated:

  • Using Javelin's steno engine results in incorrect characters.
  • Javelin still has a QWERTY layer instead of a Dvorak layer, and using it results in incorrect characters.
  • Using Javelin's Symbol layer results in some correct keys and some incorrect wrong keys.

Situation No. 2 - If Javelin's Keyboard Layout is Dvorak & the OS Dvorak keymap is activated:

  • Using Javelin's steno engine results in correct characters.
  • Using Javelin's QWERTY layer results in QWERTY characters.
  • Using Javelin's Symbol layer results in correct characters.

Situation No. 3 - If Javelin's Keyboard Layout is not Dvorak & OS Dvorak keymap is activated:

  • Using Javelin's steno engine results in incorrect characters.
  • Using Javelin's QWERTY layer results in Dvorak characters.
  • Using Javelin's Symbol layer results in some correct keys and some incorrect wrong keys.

I think I understand what's going on here. It looks like the Keyboard Layout options do not provide "hardware" implementations of those layouts, but instead, those options are so the Javelin firmware will be able to output the correct keys whenever those layers are activated.

The Javelin firmware would be a lot more useful to me if it worked more seamlessly with my preferred Keyboard Layout. Are either of these feasible?

  • Replace the QWERTY layer with a preferred Keyboard Layout so that it would work as expected under Situation No. 1.
  • Change the QWERTY layer so that the resulting characters are Dvorak under Situation No. 2.
  • Adjust the Symbols layer so that it would be more compatible with a preferred Keyboard Layout under Situation No. 3.

Planck EZ support, and what could be done to get Javelin under 256kb?

I'm running into the limits of what Plover is able to support (x11's slow death will probably drag Plover's linux client with it,) but I already bought a TinyMod, which has no onboard memory.

However, I do use a Planck EZ, which has... admittedly very limited memory. ZSA told me direct in an email that it has 256kb of memory.

It doesn't sound good, but with an extremely minimal dictionary, I did see someone build a 400kb image. Is it possible to cut that down further, so it fits? What would have to be done?

Unicode output error with Emily's symbols for Δ

  1. Turn on Emily's symbols, enable EnableHexNumpad, and use windows_hex unicode mode
  2. Start Notepad
  3. Chord SKWHEFB (the Δ symbol)

Result: '
Expected: Δ

Note, using emily's symbols in plover does output the Δ as expected.

Also, not sure if this is related but chording SKWHEUFB for the symbol in Visual Code, the Edit menu opens and no symbol is added. Using plover does output the symbol as expected.

Add Colemak-DH to keyboard layouts

Hi Jeffrey, love your work on Javelin and looking forward to using it when I get my Polyglot. 🙂

I've been using Colemak-DH alongside steno for almost a year now and was hoping to add Colemak-DH support to Javelin. If you're not familiar, it's a variant on Colemak that's frequently recommended for being more ergonomic, especially the D and H keys.

It's only a few keys different from Colemak, but I took the liberty of putting together a layout table to save you some time (though of course it's not the only change needed to add a layout).

I did see the discussion on #3, so didn't put together a pull request, but if you're busy or otherwise accepting PRs now I can try to do that instead.

Please let me know if this would be possible to add! Zero rush, of course, and thanks for all your work.

const KeyboardLayoutTable COLEMAK_DH_LAYOUT_TABLE = {
  .values = {
    0, 1, 2, 3,
    KeyCode::A, KeyCode::T, KeyCode::C, KeyCode::V, // A-D
    KeyCode::K, KeyCode::E, KeyCode::G, KeyCode::M, // E-H
    KeyCode::L, KeyCode::Y, KeyCode::N, KeyCode::U, // I-L
    KeyCode::H, KeyCode::J, KeyCode::SEMICOLON, KeyCode::R, // M-P
    KeyCode::Q, KeyCode::S, KeyCode::D, KeyCode::F, // Q-T
    KeyCode::I, KeyCode::B, KeyCode::W, KeyCode::X, // U-X
    KeyCode::O, KeyCode::Z, 30, 31, // Y-Z, 1-2
    32, 33, 34, 35, 36, 37, 38, 39,
    40, 41, 42, 43, 44, 45, 46, 47,
    48, 49, 50, KeyCode::P, 52, 53, 54, 55, // Semicolon -> P
    56, 57, 58, 59, 60, 61, 62, 63,
  }
};

Numbers dictionary sometimes fails to convert multi-stroke numbers as expected

Using the online firmware builder tool, apologies if this is not the correct repo to report this issue.

Expected behavior (happens correctly using jeff-numbers.py on Plover):
19/59EUR -> MCMXCV

Actual behavior using javelin-steno firmware:
19/59EUR -> 19 XCV

A similar thing happens with the -G suffix to convert to words and the -W suffix for ordinals: only the second stroke is converted.
Dollar amount conversion appears to work correctly however.

Even with all other dictionaries disabled the issue persists.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.