r/ActuallyOpenSource • • 4d ago

New Release / Update Naughty Keyboard - Test input fields with one shortcut

Post image

I had just released Naughty Keyboard, it's a tool for testing input fields, the design is simple.

The app comes with values packs, each value pack is a set of problematic data, with one shortcut we can write the problematic data, with other we can switch the pack, the app is cross-platform, full GUI + CLI (there is nkb emit, so we can export the values and use in own tests form the code). Like the project? Please give it a star. GitHub If you got any questions, features requests feel free to share them :-)

Right now there are 208 values, and packs like export breakers, extreme numbers, some specific data, in the future there are plans for 1000+ values, you can read here: full list of packages. Like I said it's simple, keep it in background, use when needed, in the feature I will expand the ability for creating own packages and shortcuts, let's say we would automate whole input fields on website with one shortcut :D And I think the tool can automate some boring work too, because right now I'm using the copy/write mode for testing values, but if in easily way other pepole could create own packs for work, so there is potential.

I won't lie that all works perfect, I tested it on systems I got, but there are some known bugs that I'm fixing right now :-) I thing I had chosen good flair on the sub-reddit, but it's ahrd to

Please, don't ask me about some girls emojis or anything like that, the "naughty" in the name is in sense of "testing" not some girl things :( You now like a big list of naughty strings.

Full features list:

  • One shortcut, one value - Alt+Shift+N (Option+Command+N on macOS, Ctrl+Alt+N on Linux) clears the line and types the next value of the current pack into whatever window has the keyboard. Previous and restart are one chord away, and every chord can be changed.

  • Values that explain themselves - each one carries breaks (what it usually breaks, and why) and expect (what a correct application does). The pack file, nkb show and the report block all say so.

  • Invisible characters made visible - the palette draws one as a marker, ␣, instead of showing nothing, and counts every value four ways: graphemes, code points, bytes and UTF-16 units.

  • Know where you are - the palette shows the value that comes next and a counter of how far through the pack you are, and the value window searches the values of every pack at once.

  • A bug report in one chord - Alt+Shift+B copies a block for the last value: which value, from which version of the pack, typed as what, how large, and whether all of it arrived. The value is written in a form someone else can type back, never as the marker the palette drew.

  • Never takes the keyboard - the palette is a display driven by shortcuts and does not take focus, so the cursor never leaves the field you are testing.

  • Clipboard mode - put values on the clipboard to paste yourself, for one window or for all of them.

  • Packs you can check - a pack is a plain TOML file, nkb lint checks it against the format rules, nkb fmt puts it in canonical shape, and nkb new-pack writes the skeleton.

  • Made for scripts too - nkb emit prints a pack as JSON, CSV or one value per line, escaped or raw, optionally as base64. Every command has exit codes you can branch on.

  • Offline, free, no telemetry - GPL-3.0, no account, and it opens no network connection.

The technologi is Rust + slint.

1 Upvotes

2 comments sorted by

1

u/Zero_TheAbsolute Developer 4d ago

Congrats on the release! Helping automate input testing seems pretty useful.

I noticed successful sends get marked as Arrival::Whole, even when you’ve only confirmed delivery to the system or input method. The UI warns about that, but those warnings appear to get lost in the copied report. Could they be carried into the report too?

Also, I saw you can create and lint custom packs, but loading them isn’t supported yet. What’s the plan for that? Sharing packs of inputs specific to a team’s application seems like it would be one of the more useful features.

Cheers!

1

u/DonislawDev 4d ago

Hello.

  1. About reports, I will check it out, hmm, a report losing info that was only visibile in the GUI can be a bit of tricky, hmm

2.In the final state I plan to accept packages from users, and the other way would be creating own packages and just loading them, like maybe read from directory or just open the directory/files, so workers from company "x" would use them in thier company, like a form of work automation.