#🤖│community_dev

1 messages · Page 10 of 1

sweet peak
#

sounds like a rights issue

quick bough
#

Should we bring it to the UN, or?

quick bough
#

Welp, I just enabled analogue reports for the Huntsman Mini and it's not working anymore, so I think the openrazer driver just doesn't have the same analogue input support as the official Windows software cat_pensive

sweet peak
#

but we'll get it to Den Haag

quick bough
#

Damn, I was just there recently

#

and Simon wasn't even there so I couldn't bully him

quick bough
#

Wait, he released an RGB SDK update yesterday, but still no analogue SDK update cat_sob

quick bough
#

A bit less interesting but I just got around to porting digital keyboard visualisation to Linux

#

It's a bit cringe because I have to parse the HID report descriptor and then read the input reports myself, but that's just the Linux way I guess

quick bough
quick bough
#

Welp, still can't successfully flash firmware on Firefox (it would be nice if one of you could maybe increase the fail timeout), but at least importing & applying profiles now seems to work without it ever timing out.

#

Not entirely sure why it times out at all, but Wootility seems incredibly timing-sensitive. ifeelok

#

Oh wait, that's interesting, it seems like maybe one of the responses was dropped superwoke

#

That was a stupid bug, but I think Wootility should now work flawlessly in Firefox... if we ignore the gamepad buttons being way too big.

sweet peak
#

im impressed

grizzled wolf
#

Hi, I'm trying to use this rust library to play with rgb on my 80HE but I noticed some of the keys are not mapped correctly e.g. Key::F1 lights up F2 I wonder if this is something that's known(firmware issue) / my keyboard being weird / wooting-rgb-sdk issue
https://github.com/ShayBox/Wooting-RGB

quick bough
grizzled wolf
#

tried changing the touple for F1 to point at (0,1) my F1 key now lights up

quick bough
#

@floral crane

grizzled wolf
#

I find it weird that they have a picture of the keyboard matrix for "keyboards" but it doesn't apply to 80HE

quick bough
#

Eh, yeah, but it's meant to be used for effects, not for specific keys, I guess

#

and that picture is clearly for a 100% keyboard like the Wooting Two, I don't think it can be moddeled to be the same on the 80HE

grizzled wolf
#

I wonder if it works for 60HE

quick bough
#

I unfortunately don't own a 60HE so I don't know

strong siren
#

the matrix hasnt been updated yet

quick bough
#

That 60% mapping is just cursed

grizzled wolf
floral crane
#

Afaik the matrix has never changed and it's the same for all devices except for missing keys, but I've never touched rgb with the sdk or the rgb crate, I only use commands with the sys crate.

quick bough
floral crane
#

F1 should be 0,1 anyway, that's what the matrix pic has always shown

quick bough
floral crane
#

wait what why is there a gap

quick bough
#

because there is a gap

#

just not on the 80HE

floral crane
#

and why is it not there for the 80HE? the rgb sdk internally has no different matrix for the 80he

quick bough
#

what keyboard are you typing on right now?

floral crane
#

lekker

quick bough
#

So, Wooting Two LE?

floral crane
#

yeah

quick bough
#

Then look at that area on your keyboard

#

there's a very clear gap between esc & F1

#

the exact same space that's above the '1' key

#

It's just a lot tighter on the 80HE

#

so there is no such space

strong siren
#

the mappings i linked above definitely light up every key, just some ids might be wrong apparently :p

floral crane
#

Is the 80HE the first keyboard with a different matrix?

#

The matrices should be defined in the rgb sdk source for programmatic use, instead of having everyone hard-code their own based on a picture, and swapping it based on the device model themselves

#

I wonder if you could make a float aligned matrix for precisely aligned key positions, instead of a grid aligned matrix where keys are not aligned, like enter, shift, plus, and every key in a grid instead of shifted. Probably a big change though

strong siren
#

that would be nice for lamparray

quick bough
#

that would be nice if the firmware provided a LampArray interface 😛

#

it's kind of funny, tho. the analogue SDK only provides key codes, and the RGB SDK only takes positions.

#

there are no compromises on that and no way to reliably convert between the two

#

like, have fun determining what the "correct" layout of the Wooting UwU is

balmy iron
#

Yeah would be nice if the devices just used LampArray directly but that might be too much work, since it works with physical lamp positions

#

And also has special markings for "this is for key K" and whatnot

quick bough
#

I guess your best bet is just taking heavy "inspiration" from the Wootility's beautiful source code and just figuring out some way to map keycode to RGB position with that

#

and then weep once you realise that a key can be present more than once

#

(same issue with trying to map the inverse for analogue input, except with RGB you can at least be pragmatic and just light up all matching keys)

quick bough
placid ledge
#

Ugh, analog sdk project is such a mess, I really gotta find some time to properly get it into shape

quick bough
#

Rewrite in C++ 🙏

#

Well, you are right, the CI is failing even with that reverted

#

but I just figured since it's ABI breaking

grizzled wolf
balmy iron
#

Please do, it would be funny

quick bough
#

but nah, I think the analogue SDK is fine as it is, it's just a very niche kinda thing. very few people are interested in implementing it, and even less are willing to stick with it after they have any sort of issue with it.

#

the only thing you can do is hope to reduce the number of issues people will have with it, which I think means not trying to make everything an abstract problem that needs abstract solutions

#

which is how you end up with splitting everything over multiple DLLs and then running into crashes because Rust has an unstable ABI 😄

#

another issue with that approach is that 32-bit processes can't load 64-bit DLLs but I suppose it's a moot point given that 32-bit is basically dead nowadays

#

but I also can't think of a better way to do it that maintains the same kinda extensibility with plugins

#

Well, okay, you could always just ship a Lua VM and make HID bindings for Lua 😄

quick bough
#

Funny, apparently you guys also omitted the .dll.lib back when it was still written in C

#

You guys need to do another CODE IT contest, tho 😛

umbral carbon
#

Heyllo! I need some help with a ZMK port to an RP2040-based board. My config files look decent, but I keep getting held up at the following error:

#

(in my CI)

#
devicetree error: /tmp/zmk-config/zmk/app/boards/seeeduino_xiao_rp2040.overlay:7 (column 1): parse error: expected ';', not 'xiao_serial'
quick bough
#

Unfortunately I don't even know what you are doing. I only know QMK.

umbral carbon
#

That's fair. Source is that, yes. ambrylight branch is to be updated soon when I get that working.

#

I've also finished more recent PR runs, solved some issues, and ran into another one I can't quite figure out. Will update tomorrow.

placid ledge
quick bough
#

Regarding the old analogue SDK, tho, is there no compatibility shim?

#

Like, the DLL I have here hardcodes the FF01 PID, and I'm not even sure my original Wooting Two would work with this because I probably updated the firmware at some point

placid ledge
placid ledge
quick bough
#

Well, I might be about to do that

placid ledge
quick bough
#

but first gotta check my Wooting Two, I guess

#

Yup, RIP me, I updated the firmware

#

I figure there's no way to downgrade it either

placid ledge
#

You can technically downgrade it, but it will corrupt the serial number on-board

#

Although, I'm not sure downgrading it would necessarily help you try out the old sdk. IIRC the analog interface was altered for the "new" analog sdk, even on v3 Wootility/v1 firmware

quick bough
#

isn't there funny command I can send to change the serial

#

at least I saw some related code in wootility

quick bough
placid ledge
#

ye, the report structure that the old sdk expects is very different and you won't be able to get that by downgrading to the latest v1 firmware

quick bough
#

damn

#

Wait, where is the original Wooting Two here?

placid ledge
#

That's also prob why we never created a shim, cus the old sdk works on the basis of the row/col / scancode. Whereas the "new" one works on hid codes. So I'm not sure you can really create a good shim

quick bough
#

Of course you can, just mappy map it

placid ledge
placid ledge
quick bough
#

Of course it makes an assumption that keys are mapped as expected

placid ledge
#

ye, but what even is the motivation for making a shim anyway?

quick bough
#

Make some old code that was made for the CODE IT contest work

#

16 and 18 KB for the original SDKs tho is impressive

#

I guess I'll just make the shim and que sera sera

#

Oh, there it is, in the wrapper\sdk directory. How silly of me not to check there.

quick bough
#

Welp, could not get the thingy working

#

Oh, I am so cooked, this is 32-bit

quick bough
#

Obviously can't use the "new" analogue SDK for 32-bit, but oh well

#

On another note, are there any scancodes except 0XX, 3XX, and 4XX? Because I'm thinking with some aggressive bit packing, both the scancode and the key position could fit in 2 bytes.

quick bough
#

Another assumption one can make is that 4XX is actually only 0x400..0x41F and that 3XX is actually 0x320..0x3FF and then you get this rather "unintrusive" way of encoding them:

quick bough
sweet peak
strange kite
#

would it be possible to modify the tickrate on my 80HE?

#

Essentially I speedrun a game that runs at 31fps and I want the shortest possible inputs to be 32ms

quick bough
#

Uhh, no, I don't think there's a feature like that

strange kite
#

would you mind explaining how the community dev thing works, like can people code their wootings or somthin?

quick bough
#

Well, it's mostly about analogue input and RGB output

#

(Actually it's mostly coping with Rust)

strange kite
#

so you cant upload your own code?

quick bough
#

Nope

#

You could try Keychron's Q HE series of keyboards. Their firmware is somewhat open-source.

strange kite
#

because its already a feature i just want to modify the time

strange kite
quick bough
#

lol, why would they open-source their juicy firmware

#

it's so low latency and shit

#

big industry secrets!!!

quick bough
strange kite
quick bough
#

Well, bad news, looks like the options are hard-coded

strange kite
quick bough
#

It means you're at Simon's mercy

#

Godspeed 🙏

strange kite
strange kite
quick bough
#

Just looking at what Wootility sends to the keyboard

quick bough
strange kite
quick bough
strange kite
#

oh wow ok thanks for the help

quick bough
#

Does "NKRO Disable" just change the input report format to use "array" instead of "variable"? If so, would be weird if there are actually devices with such an implementation hole. Also, why only 6KRO? Surely an array of size 16, or 80 would also be fine? kappapeek

shy vale
#

i'm not sure if you're looking to articifially extend inputs shorter than 32ms to be 32ms long, or you're looking to drop inputs shorter than 32ms altogether

quick bough
#

he wants to extend them to be at least 32ms

#

I think the PR was fine last I checked, but I guess I'll just double-check if my plugin still works with ABI version 1

#

Well, somehow it just panicked

placid ledge
placid ledge
quick bough
#

then I had to read the standard kms

placid ledge
#

HID standard is a big oof yea 😂

quick bough
placid ledge
#

Could be a padding thing, although it is set to [repr(C)], so it should follow the same padding conventions

#

It seems to be specifically erroring at the string conversion

quick bough
#

Yeah that Utf8Error doesn't exactly say anything useful lol

placid ledge
#

Specifically this one

quick bough
#

I'm gonna log this value I guess

placid ledge
quick bough
#

I don't think the string "Wooting\0" should be that exotic? LUL

placid ledge
#

Would kinda feel like an alignment kinda thing then

quick bough
#

guess I'll need some logging on the Rust side?

placid ledge
#

Would prob be worthwhile to print out the bytes from the pointer it's trying to use on the rust side

quick bough
#

yeah

#

I did that before I think, but uhhhh, forgor

#

ah yeah, still have it stashed

placid ledge
#

Must be some real funky bytes it's trying to use for it to fail the utf8 parsing

#

I don't think I've ever seen that fail before 😂

quick bough
#

well, I think the asserts are fine, still same error

#

so, probably not an offset/padding issue

#

Uhh, I set RUST_LOG=trace and now it just crashed outright? waitwhat

#

um, does it just call exit(0) with trace?

#

then it ends up panicking here

#

Oh, you changed this in your "Cleanup cplugin interface" commit

#

Well, okay, without that change it seems to be working

#

but the manufacturer_name is indeed wrong

#

it still seemingly calls exit(0) sometimes

#

ah wait I'm an idiot, it's a use-after-free

#

yeah, fixing that seems to have fixed it

#

Gonna try again without any changes I made now

#

yeah, no issues

strange kite
quick bough
#

I think this approach should be quite future-proof, as long as there's not gonna be further breaking changes 😛

flat wigeon
#

Isn't it a bit bloated to have a second dll duplicating most of the code just to have another version of the abi?

quick bough
#

Well, only one of them will effectively be used, so ¯_(ツ)_/¯

#

32-bit version of the SDK would be sexy tho, and another reason to ship more than 1 DLL 😛

flat wigeon
#

Who needs a 32 Bit dll? ^^

#

Do you intend to inject this into old stuff?

quick bough
#

Well, a recent example was GTA SA

#

It's possible to use analogue input in it with a special build of GInput

#

but it's all 32-bit, which wasn't an issue for the old analogue SDK written in C

flat wigeon
#

Hmm...

#

Does the old one work for unmapped keys?

quick bough
#

The old one doesn't work at all anymore haha

flat wigeon
#

Ah right, but did it work for unmapped keys? ^^

quick bough
#

but the firmware interface was based on key positions rather than scancodes from what I can tell

flat wigeon
#

Like in the RGB SDK?

quick bough
#

Yeah

flat wigeon
#

Great

#

I should have bought it sooner and then never upgrade

quick bough
#

I have an OG Wooting Two but I did update the FW cat_sob

flat wigeon
#

I unmapped the A1-A3 and the Mode key

quick bough
#

You can use F13-F15

flat wigeon
#

Meh

quick bough
#

I did come up with a way the firmware could report position + scancode within 16 bits with some clever squishing, but I guess it's not exactly high prio, lol

strange kite
#

whats the de bounce time on the wooting 80HE?

quick bough
#

I don't think it has any

#

they do this weird thing when your actuation point is only respected when going down

#

when going up, it takes a bit more travel until the key is considered unpressed

strange kite
#

i get double presses when letting go a key

quick bough
#

And are you sure you didn't mess with DKS or RT or shit like that

#

I once thought my switches were broken because I had RT enabled kms

strange kite
quick bough
strange kite
quick bough
#

Great stuff

strange kite
#

i run a game at 31fps and need a way to set the lowest input time to 32ms

quick bough
#

Yes, you already said this

#

This isn't exactly the place to give firmware feedback

strange kite
#

i thought you were asking mb i didnt know you already knew

strange kite
quick bough
#

Might also wanna submit the debounce issue

#

iirc they were working on something related to debounce but idk

#

Ah yeah, I found it

#

Might wanna try v2.10.0-test.debounce.2

strange kite
#

would i just find it as a setting in here?

quick bough
#

As the name suggests, this should fix your debounce issue, nothing more

strange kite
#

ill test some stuff

placid ledge
#

On that topic of getting key positioning from the Analog SDK, it's something I really want to add (and has been open for a while https://github.com/WootingKb/wooting-analog-sdk/issues/12 😭).

As you can see I haven't had a ton of time to put into the SDKs in general, but it is the first thing I want to solve when implementing a revised analog interface on the keyboard side for the SDK to use,

We're going to be entering somewhat of a transitionary period once we launch the background service, as it will open up some questions about the future of the SDKs and what the best direction is for them. It's something that we don't have all the answers figured out for that yet, but it is something we will have to deal with.

Reason being, the background service will nearly always have the config interface [RGB SDK] and analog interface [Analog SDK] open. The Analog SDK side may be simple if we can get it all working with non-exclusive access, but the RGB SDK will be a tricky one.

For the RGB SDK, it could be a matter of just moving towards having HID LampArray being the primary method, and deprecating this direct RGB SDK access. However, there are still some practical details with HID LampArray that I need to try out before I can say that definitively

GitHub

Previous to the Remapping update the raw 'HID Codes' would effectively encode the position of a key as there's only one place where that code could possibly point to. Now, the remapping...

quick bough
#

I now have a funny panic when using the example C plugin

quick bough
#

Does this make any sense?

#

This seems to have fixed it?

floral crane
#

Did something change with the latest rgb sdk update? linux is failing to build on actions now

quick bough
#

Yeah, it's written in C instead of in Rust now troll240p

floral crane
#

maybe I have to use ubuntu-24.04 not ubuntu-latest (22.04), it builds on my local linux just fine

quick bough
#

I don't even see the GH actions on your repo

floral crane
#

It's in the WPS repo

quick bough
#

that seems sus

floral crane
#

you have to rustup default stable after you install rustup

quick bough
#

It's just that shrimple

floral crane
#

what distro?

quick bough
#

See image

floral crane
#

hmm 22.04 works 🤔

quick bough
#

Note the failure before I installed a certain package zanychamp

floral crane
#

yeah I have that and all the others

quick bough
#

Soup?!

floral crane
#

if you install the exact git version of tauri-cli this needs it uses extra deps for packaging or something, idk

quick bough
#

Damn, gonna have to rename my C++ library now smh

#

Well, I have no clue about Rust

#

but I avoid depending on lib___-dev packages by just dynamically linking myself

#

So, using dlopen and dlsym

floral crane
#

I don't like dynamic linking, things break when you link to different versions, each distro has different versions of libraries, and static linking makes the binary entirely portable

quick bough
#

In this case you're not statically linking tho it seems?

#

at least I would figure given the failure

#

if you were static linking, the symbol would be known

floral crane
#

maybe not, I'm not sure how any of this works anymore it's been too long since I got any of this working, it's all hacked together modified old revisions of tauri packages and the old rgb sdk bindings

quick bough
#

Yeah, I'm also not too well-versed with Linux

#

just recently learned that it's somewhat-common practice for executables to have exports

#

which can then be imported by SOs loaded in by them

#

which is like... the exact opposite of how that's supposed to work lmfao

floral crane
#

It made progress switching to 24.04 but now there's an error with a tauri appimage.sh, I'm just not gonna ship a linux build of this update. This project is almost dead unless tauri-egui updates. I can't touch anything or it all breaks beyond repair and I have like 4 repos forked, reverted, and modified just to get it to compile

quick bough
#

Reminds me of my experience trying to get Docusaurus to work just the way I want it

#

I really don't get all this React crap

floral crane
#

react 😓

quick bough
#

and NPM is such a joke. some packages literally just load another package and redirect calls to them. nothing else.

#

Yeah, I ended up just recompiling one of the deps and overwrite the built files in node_modules

#

because apparently source code ≠ build code even tho it's an interpreted language

#

thanks Microsoft

floral crane
#

I gave up on javascript/typescript it was a mess

quick bough
#

and then a standard MutationObserver to hook into the DOM

#

because yeah, when you have React with shadow DOM and shit, it's just so unpredictable

floral crane
#

the most impressive stuff is built on a mountain of hotfixes and shit

quick bough
#

nah, not at all

#

a mountain of hotfixes is making ends meet

#

literally the definition of tech debt

#

maybe a bit of sunk-cost fallacy

floral crane
#

I'm talking about javascript

quick bough
#

It's definitely possible to have impressive software that's not a pile of tech debt 😄

#

but it's very hard in JS because the mindset there is that everything needs to be an abstraction

#

so obviously everything ends up overabstracted, which is a super easy way to get tech debt, lol

floral crane
#

nothing like writing an entire project in typescript then finding a critical js library that doesn't have types and uses old style syntax like callbacks that you have to figure out with source code

quick bough
#

I don't get the appeal of typescript

#

it just undermines the integrity of the ecosystem imo

floral crane
#

it just solves a lot of the undefined behaviour at transpile time, in javascript if there's not good docs on everything you might not know something can be null

#

what does this function take in? look at the source and guess, or look at the typescript types and know for sure, but it's not a perfect solution, types can be separate and not synced with the code, same with doc comments

quick bough
#

Yeah, I would never know without TS 🙏

floral crane
#

but generally it helped me know when I needed to handle something nullable or convert something to something

#

thats a good function

quick bough
floral crane
#

const text_to_text = function(input)

quick bough
#

Guess the return type

floral crane
#

array

quick bough
#

😛

#

yeah idk, typesafety was definitely not something I thought JS had an issue with

#

it's more like the semantics of the runtime that are weird

floral crane
#

it is in the less professional libraries, think stuff on github with 0 stars

quick bough
#

Like, '1' + 1 = "11"

floral crane
#

yeah that too

quick bough
#

and last I checked, TS doesn't really help you avoid this

floral crane
#

if you have strict enough eslint/tslint or whatever people use now it does, you can't concat different types without a warning or error

quick bough
#

user_input as number troll240p

#

also imagine if you have a <input type="number" /> and you do .value on it instead of .valueAsNumber, now you have a problem

#

and I think TS also doesn't really help you here

quiet root
quiet root
#

not saying TS is really safe (theres tons of ways to break it)

sweet peak
quiet root
#

sorry anonymous typoed

sweet peak
#

Yeah have fun following that stacktrace

quick bough
sweet peak
#

you can still give it a name 🙂 its a bit double up, but on stacktraces it will show the actual function name

quick bough
sweet peak
#

well it didnt used to

#

good to see that this isnt the case

quick bough
#

I much prefer writing code in Lua/Pluto

#

which is in fact also why I need to convert between insane (UTF-16) and sane (UTF-8)

quick bough
#

Whooo, monday! Hope you had a nice weekend. 😛

#

@placid ledge Can't upload a DLL in a Github comment, but this is what I built from my branch on the example C plugin for ABIv1, and it would just panic without that patch.

placid ledge
#

Alright, thanks, will give it a try when I get the chance

quick bough
#

Also opened a PR for this branch now. Afaict, there's nothing fundamentally wrong with this C plugin, and I don't know Rust well enough to understand why this drain-map thingy would turn a 1-sized vector into a 0-sized vector.

placid ledge
floral crane
#

Tmw the only change was uuid -> uid 😅

placid ledge
# quick bough Also opened a PR for this branch now. Afaict, there's nothing fundamentally wron...

Tried building this locally on my work machine (macbook) to see if I could encounter the error.
I had to make this change to the plugin.h as there was inconsistency with the function type in the plugin example: https://github.com/WootingKb/wooting-analog-sdk/pull/89

For whatever reason I can't get it to pick-up any device for me, even when it finds one it just fails with no error message lol (even though the logic that is operating now is identical to what the rgb sdk does, which I have no problem using). So I haven't been able to get into the scenario where there is a device in the return for it to be turned into 0-sized vector.
While trying to figure it out, I did make some general improvements to how the loading is done (using usage_page instead of interface number) and some other general bits. I think I'll do those as a new PR once yours is merged.

placid ledge
#

Well. I got it to work. I hadn't noticed that it was using hidapi as a submodule and that version was quite old. Got it updated (& dealt with the bs that came up as a result [Am I the only one that finds cmake a nightmare to deal with?]) and now it behaves completely normally, I don't get any crash with the device info

#

@quick bough How do you trigger the panic you were getting, just any call to wooting_analog_get_connected_devices_info?

quick bough
#

Okay, managed to build it, and now it seems to fail even harder

#

Well, this might be why — it's no longer statically linking in hidapi.

placid ledge
#

In my branch, I changed it to use the cmake build configuration from the hidapi repo itself, rather than the mess it had before

quick bough
#

I can see that, yeah. I am building from your branch.

placid ledge
#

Is it doing dynamic linking for you?

#

I feel like it should be compiling it fully statically, I think that's what it does for me

quick bough
#

Yes, it's trying to dynamically link, but obviously there's no hidapi.dll anywhere

placid ledge
#

Here I go digging through cmake bs again

#

I see that it is dynamically linking on my side as well, just that it manged to find the .dll lol

#

Looks like this needs added set(BUILD_SHARED_LIBS OFF) to the root cmake, will push. It stops it from dynamically linking for me

quick bough
#

Hmm. Still panics, tho.

#

(I built wooting-analog-sdk from develop)

placid ledge
#

Right, but now it's back at where you were getting it before correct?

quick bough
#

Yeah

placid ledge
#

Just from calling wooting_analog_get_connected_devices_info?

#

Might be something windows specific

#

Cus it works completely fine for me on mac

quick bough
#

Yeah, that's the function that's panicking

#

Like, I have no clue what sorta magic Rust could possibly be doing here (one of the reasons I hate the language), but yeah clearly c_devices mapped from devices (len=1) does not have end up being len=1 itself. derp

placid ledge
#

The only thing special with the .drain(..) call is that it takes full ownership of the items, i.e. it has more control over when they're dropped. Not really sure how that is coming into play here

#

With the change you suggested, it would guarantee that the source DeviceInfo won't get dropped until the full scope exits

quick bough
#

So maybe it gets dropped too soon?

placid ledge
#

That's my guess, I'm not entirely sure how that would result in it silently ending up with an empty vector. I've not seen anything like this before. Although, I normally operate in purely safe rust, so undefined behaviour like this doesn't really come up

quick bough
#

Well technically the offending code is not unsafe, nor the variables it operates on

quick bough
placid ledge
#

True, but there are other parts of the chain that do unsafe things

#

Not sure how much I want to dig into this. The code change you suggested is pretty valid, so I'm somewhat tempted to just merge it and move on

#

Although, I do have a feeling that this is indicative of some deeper underlying issue

#

You only started getting this after the updates to the c plugin?

quick bough
#

Well, I had to update the C plugin to get it to build and run at all

#

It is weird that I don't have this with my own C++ plugin nor the official one

placid ledge
#

Ye, but you never seen this with your own plugin before?

#

It is a bit strange that this is only occuring with this example plugin and never happened before

#

It does kinda imply to me that the root issue is not in this block of code, just that it's the one that ends up failing as a result of it being broken

quick bough
#

I mean maybe it's because the DeviceInfo is allocated directly in the .data section of the example plugin and somehow Rust differentiates there?

#

Since everything else would have it allocated on the heap

quick bough
placid ledge
#

So on paper, the DeviceInfo's the get_connected_devices_info func works with should all be pretty equivalent regardless of the original source

quick bough
#

Also just tested and it made no difference

placid ledge
#

Part of me feels like the strings have something to do with this

quick bough
#

Well, it does seem to have it correctly Rust-ified

#

Also still panics with your commit

placid ledge
#

Hmmm

quick bough
#

I fixed it

#

Something something invalid states should not be presentable?

#

Well, pushed that to the C plugin, so techically no issue on the Rust side

placid ledge
#

Oh, huh, that's interesting

#

I'm surprised that that would result in this behaviour at the get_connected_devices_info level, but nice that it's fixed

quick bough
#

Might be good to have some validation in the analogue SDK to avoid such "invalid states"

#

but technically the C plugin was at fault for not initialising all fields

placid ledge
#

Hmmm, yeah, it would be good for it to catch this. Right now it assumes that the c plugin has initialised it correctly

#

Was it just at 0 or garbage data without that line?

quick bough
#

It was 0

#

although I guess technically it could've been garbage data due to the lack of initialisation

#

but probably because it's a static variable in the .data section, it was zeroed out

#

just malloc wouldn't give the same courtesy

placid ledge
#

Right, still confused how this is the symptom we got from that, but anyways

#

We could change it to just a uint8 for the device_type on the FFI version?

#

Then we do a more explicit conversion in into_device_info

#

DeviceType::from_u8(self.device_type) we would then do this call and if it's None i.e. invalid state, we spit out a warning and fallback?

quick bough
#

you would have to make it an int because that's the standard type for enums

#

but yeah warning and fallback sounds good

placid ledge
#

Ah okay

#

Although, hmmm, this could interfere with public ABI

#

With int, it should be the same binary layout

quick bough
#

Not if you use int

placid ledge
#

but maybe it's kinda sucky for it to not reference the enum it's using?

quick bough
#

Does Rust not give you the option to reinterpret an enum as an int?

#

so, like, device_type as i32 < 0 || device_type as i32 > 3

placid ledge
#

Don't think so, enums in Rust are more than a number alias

quick bough
#

but within the unsafe/FFI context?

#

so, before the conversion

placid ledge
#

Oh wait, I think I misunderstood slightly what you meant

#

You just mean getting the number from the enum and validating that?

quick bough
#

Yeah, get the int value in that field

placid ledge
#

Yea, it can be casted into the int value

quick bough
#

On a completely different topic, if your shift ends in 20 minutes, and I'm now going shopping, then this is goodbye for today. 😛

placid ledge
#

Hehe yea, I gotta head soon

#

Got a little patch for you to try

#

Enjoy shopping 😁

placid ledge
quick bough
placid ledge
#

Good point, I'll check my build config

#

Oh yea, I'm defo running on debug builds rn

quick bough
placid ledge
#

Welp

#

Gotta actually head off now, might have some time to look at this again tomorrow

#

glhf

quick bough
#

hahahahaha, this Rust code actually works if I print the value, but doesn't if I don't print it

#

Holy fuck, this is AIDS

#

Well, this seems to fix it (based on your fix/validate-ffi-device-type branch)

#

If you use an enum type, it seems Rust will just assume it will already be valid and pay no mind to your range checks

#

except if you print the value then apparently it does?

placid ledge
#

That is pretty wack

#

After doing some reading, seems like using Rust enum on FFI is just a bad idea in general

#

So it should just be changed to c_int like you have there

#

I'll whip up some changes for that in a bit

placid ledge
#

Pushed a change to that branch @quick bough. I did a little trick with cbindgen to get the generated headers to be pretty much the same but it being handled as c_int on the Rust side so we can do the proper bounds check

quick bough
#

Should be close to v0.8.0 now, right? 😛

placid ledge
#

Been a long time coming 😅 But at least now I've got the deployments cleaned up, so it should be much easier to push new releases

quick bough
#

I guess I should also publish the ABIv1 version of my plugin then

placid ledge
#

Annoyingly the updater doesn't handle pre-releases any differently, so everyone gets prompted for an update uwu_cry

quick bough
#

Doesn't the auto-updater only run when ran manually?

#

at least I don't see any prompt when starting analog-midi

placid ledge
#

The updater is only used in Wootility desktop builds

#

So you get a prompt to update on that

quick bough
#

oh, so no users are affected 😛

placid ledge
#

With this massive changelog 😂

placid ledge
quick bough
placid ledge
#

Is there any broken UI with Wootility running in Firefox?

quick bough
#

Yes

placid ledge
#

I do know that there are some webapis we used cus they were wider supported than WebHID (but also not supported on Firefox)

quick bough
#

Otherwise everything seems to work fine. Also successfully flashed firmware.

placid ledge
#

Cool

#

I have a feeling that the UwU light ring display could be broken, but I guess you don't have one?

#

Analog SDK changelog looking amazing inside of Wootility 😂

quick bough
#

Anyway, seems to look fine to me

strong siren
#

if you do the rainbow preset does the ring look correct?

quick bough
#

Seems to match what I see on the device

placid ledge
#

Ah cool

#

Works surprisingly well then

quick bough
#

yeah, the gamepad buttons are the only issue I saw

#

and it's a minor visual glitch I guess lol

brazen magnet
#

The download of wootility does not work from the website

strong siren
#

@placid ledge

placid ledge
quiet root
#

replace &channel= with -

#

just specify the version if you want more than just beta/alpha/stable

#

the beta.1 in 5.0.0-beta.1 isnt the channel but the prerelease tag which in our case the first part of the prerelease tag (so beta) is the channel

#

idk if the changelog pages have been updates yet or not

velvet void
#

should be deployed now

quiet root
#

yeah ok now the links look right

quiet root
quick bough
lament gorge
quick bough
lament gorge
quick bough
#

Fulfillment is grunt work

#

I figure most of their staff is for support

#

gotta deal with people on Discord being like "halp why my keeboardo no workyyyyy?!"

#

or something like that, I assume

lament gorge
#

lolol very very true

#

They're still based in Taiwan or Thailand, right? I forget where, but I am sure it'

#

s just tough dealing with so many timezones

quick bough
#

They're based in Netherlands

lament gorge
#

Oh yeah, right right

#

idk I thought Asia based on the factory stuff, but I recall their website says Netherlands

#

not to mention their accents

quick bough
#

Typical Dutch accents lol

#

but yeah obviously they manufacture where it's cheap

velvet void
placid ledge
#

We're based like ~45% Netherlands, ~45% Taiwan and then ~10% scattered around SwitchyHeHe

#

I'm part of the ~10% SwitchyLaser

quick bough
quick bough
placid ledge
#

I'll give you a hint with flags 😛
🇮🇪 🇬🇧 🇳🇴

quick bough
#

You're a nomad moving between 3 countries?

placid ledge
#

haha nah

#

I live in one and the other two make up my nationality

quick bough
#

I just thought because you're like one of the first employees, surely you must've be Dutch. I mean, you're in the photos, and stuff!!!

placid ledge
#

That's logical thinking, but I didn't end up in Wooting due to regional locality

#

but ye, I'm from Northern Ireland but I live in Norway now 😛

quick bough
placid ledge
#

Around that time I was in University and was looking for an internship, so then I ended up doing one with Wooting where I made the Analog SDK 😛

#

Then just continued from there

quick bough
#

Damn

#

If it weren't for you making that SDK, tho

#

Would've been an even sadder world

placid ledge
#

Just wish I was able to give them a bit more love

#

But at least I now have more people that care about the SDKs internally 😛

quick bough
#

Are you forgetting I'm not an employee? 😛

placid ledge
#

😩

quick bough
#

I just don't see anyone else comitting to the SDK cat_seenoevil

placid ledge
#

Not the Analog SDK

#

but both @quiet root and @strong siren have contributed to RGB SDK

#

SwitchyPing sorry

quick bough
#

hmm

quiet root
#

man i wish i could give the SDKs some better love

quick bough
#

Yeah, I understand that analogue SDK is not a huge priority crybaby

strong siren
placid ledge
strong siren
#

Lmao

quick bough
#

Oh tbh I didn't notice until you pointed it out lol

#

Camouflage t-shirt

rocky wharf
lucid iris
#

All u devs are amazing

quick bough
quick bough
flat wigeon
sweet peak
quick bough
#

Oh, 50 messages

quick bough
quick bough
mental bear
#

lets

#

start

#

a

#

conversation

#

xd

quick bough
#

Eh, I don't want it anyway, I was just curious if I would qualify

paper crow
quick bough
#

tbf, you could easily pretend to an active participant by just spouting whatever nonsense comes to mind in #💬│general and sending humorous images in #🐸│memes like normal human beings do with like 0 brainpower exerted

serene harness
#

any update on SDK support for the 80HE? I miss wootverlay

quick bough
#

Yeah, SDK version 0.8.0 dropped, so it's supported now, just need to run the updater

karmic forum
#

I will say it is a lot lot easier to measure quantity over quality but still

serene harness
quick bough
#

Just update your SDK

serene harness
#

Oh

#

how do i do that

quick bough
#

2 little clicks

serene harness
#

Thx got it :3

#

i was a bit confused with the git

deep jolt
#

is this the same sdk as on the wootility desktop app?

quick bough
#

Yeah, the Analog SDK is pre-installed with Wootility

serene harness
#

i have a bug on tilde

#

`

#

it always shows red (unpressed)

quick bough
#

It might be due to your layout in Windows? Since it's considered to be a dead key.

#

Might also be my fault because I changed the way the VirtualKey mapping works cat_seenoevil

quick bough
#

Works on my machine™

#

and then I switch to a German layout and it doesn't

#

Well, I'd report this with Woot-verlay, I don't see anything with the SDK being wrong

#

Actually, it's not even really Woot-verlays fault, since it relies on "NeatInput" to fetch digital input for it?

serene harness
#

i used the same layout and language on the Two HE, and it displayed fine

#

but not on the 80HE

quick bough
#

Well that just sounds weird

serene harness
#

it is not detecting caps lock also

#

so tilde just appears in red only, and caps lock doesn't show that it's being pressed at all

#

not a big deal, just reporting bugs

quick bough
#

Yeah, I think you're just gonna have to deal with that

#

like how I will have to deal with the fact that ViGEm is dead and has no support for emulating touchpad L/R on when emulating a DS4

#

sucks but I guess I'll just have to take the L and replace my broken microUSB cable instead of trying to get it to work wireless in this stupid ass game that only supports the controller wired

#

because sometimes that's just how things are

quick bough
serene harness
#

Oh disregard the capslock thing i am just dumb

#

it's only tilde

quick bough
#

Yeah, I'm like 69% sure it's your Windows layout that's wrong

serene harness
#

and my 80HE hardware is ISO UK

#

and when i press it, it works

#

`

quick bough
#

The display language is irrelevant

#

It's the keyboard layout that's relevant

serene harness
#

that one?

quick bough
serene harness
quick bough
#

Yeah, can repro when setting it to that

#

Complain to the now-unmaintained NeatInput package

#

Just trust that this random EXE is not a virus 🙏

serene harness
quick bough
#

but it also works on Windows, so worth a shot

quick bough
#

130 EUR for a keyboard case 💀

sweet peak
#

This is a dev channel :p

quick bough
#

I'm a dev, I chat here, it all checks out

quick bough
spice viper
# quick bough Also kinda funny that they only provide this case for the 60HE... I think this i...

i dont know if ur too stuck up to realize but that case (entire bundle) is made only by request from optimum. you're acting like theyre shoving it in your face telling you that if you dont buy it the world will end.. even optimum himself said he discourages people who wants to buy it for the sole purpose of supporting him (optimum), and that people should absolutely only buy it if they like the product(s).

#

its an enthusiast product bundle, if you dont want it, dont buy it.

quick bough
gritty lake
spice viper
gritty lake
#

but 130eu ain't ex

spice viper
#

expensive?

quick bough
spice viper
gritty lake
#

130eu is very decent for custom cases in the market

spice viper
#

@quick bough

quick bough
gritty lake
#

dogekek fr

quick bough
#

Your little pissing here isn't gonna make a mark in the grand scheme of things

spice viper
#

you cant just "okay, but.." me and expect me to not laugh at you

quick bough
#

I'm certainly no Wooting hater, otherwise I wouldn't be here, but I think we also shouldn't just eat up everything they do without some fair criticisms

#

Obviously, the Optimum products are not for me. I'm not gonna buy them.

#

But the thing is, because it's exclusive to the 60HE, there wouldn't even be a point in me considering buying it, which seems a bit whack.

spice viper
#

hey i dont know if you didnt take the time to, but if you just read what i said then you'd realize that not a single person (who stands for the marketing) is encouraging you to buy the product unless you specifically like that case which is a very high end, nice looking custom case

#

usually they go for alot more

#

and if you wanted to provide feedback there are literal channels for that

quick bough
#

I don't want to provide feedback because I don't have feedback

spice viper
#

i commented to see if you truly are as dull as i thought, and i guess you're not, you just like doing shit thats out of the norm

quick bough
quiet root
#

you chat about dev stuff here like others. btw. if you wanna continue talking about the case please go to the appropriate channels or #💬│general

spice viper
#

thank you tony :)

quick bough
#

no mini-modding please

#

I can't believe this guy comes in here with such an attitude and you don't see an issue with that

quiet root
#

i havent really read any of the convo except seeing you said this is your channel which it isnt and you also claiming you chat here cause youre a dev (implying it doesnt matter about what) which is also not true

#

and reading the convo now it would seem you both have the same attitude problem.

#

either way this channel is for talk about developing stuff surrounding our products in software by third parties.

quick bough
#

Okay, I'll be sure to not make pissing jokes, lol

#

On the topic of software by third parties surrounding your products, why is the Wootabase claiming to be "third-party" software but it's hosted at profiles.wooting.io?

#

I think it's also not on Github, so idk where to complain about there being no JIS option for the 80HE smh

quick bough
spice viper
#

"idk where to complain about there being no JIS option for the 80HE"

#

ill leave this chat i dont dev but man i was just trying to help

quiet root
# quick bough On the topic of software by third parties surrounding your products, why is the ...

yeah its a sort of odd remnant of being more open to show of community projects. its made by @clear hedge but back then we wanted to show it off more (especially cause we dont have our own version) and thought it might be nice to just give them a subdomain on our main domain. this causes quite the confusion though due to our steady growth and a lot more casual users joining. there is internal talks on how to add this but will prob take some time.

#

so yeah cop can maybe add the jis option but idk if he will

quick bough
#

tbf I did remember vaguely something about a community-maintained list of profiles for games and then I just never bothered following up on that until now lol

#

so probably not a huge priority to have if everyone just forgets about it after they buy the keyboard lol

clear hedge
clear hedge
flat wigeon
flat wigeon
quick bough
#

like idk how it is for "normal people" but in most of my servers, I keep to one channel, typically the one where I think the smartest people are

#

even in my own Discord; I have staff to take care of the other channels bigbrain

flat wigeon
quick bough
flat wigeon
#

That's not true

#

I can understand why the Optimum Case is that expensive. But I can't understand why you would want it

#

Also a little bit off topic is not that problematic, just shouldn't be too much

quick bough
sweet peak
#

-_-

flat wigeon
#

Split channel conversations are bad as well

#

My issue is not, that you started a piece of off topic here, but the pissing contest thing when you clearly started off topic was a bit much

rocky wharf
#

Guys come on, just keep this channel related to development.

quick bough
#

We're developing a problem here, clearly

paper crow
# quick bough We're developing a problem here, clearly

You seem to be developing a problem here.

This channel is not your playground to do as you choose. This channel is to discuss community-led development in the Wooting ecosystem.

If you have a different interpretation of this reality, that's on you, but you are still expected to comply.

quick bough
#

I wrote like 1 off-topic message. Now we have a 50 billion message conversation about how I shouldn't be off-topic chatting.

#

Partly because everyone seems to like mini-modding

#

and partly because it seems the actual mods have no idea how real humans actually use Discord

#

Resulting in a small problem being developed into a bigger problem — so it all checks out

paper crow
#

Perhaps my understanding of your perspective is incorrect, but my point is broadly spoken to defend the organization of our discord

vital shale
#

Hello, I have the Wooting 80HE. I have plugged in the keyboard several times, restarted the PC etc... but it is not displayed. When I am in the hub of Wootility where the demo can also be tested, it says that there is an update for the 80HE but when I initialise again nothing is found. On the 2nd screen you can see that it is found and there is an update. But when I click on it, nothing happens.

quiet root
#

the firmware rn is 2.10

willow carbon
#

HEY guys u know why my wooting have delay?

#

its slower than my last keyboard

#

and i dont think so it should be

gritty lake
quick bough
#

No one

#

but they can figure that out themselves 🙂

quiet root
quick bough
jagged echo
#

Calling out people who want to help? SilvervaleWat
Just let them be...

quick bough
#

Yes, mini-modders need serious help 🙏

quick bough
#

Anyway, going back "on topic," I almost kinda gave up on my analogue input stuff because I just kept finding Chinese crap that seems to mostly be copied from each other, but then I found NuPhy which is also Chinese crap, but at least the firmware is somewhat-interesting and was able to be supported without too much of a problem. cat_relaxed

#

I'm also now at owning probably 20+ keyboards, which is... yeah, definitely reasonable and sane.

quick bough
#

Funny, my WebHID implementation seems to be working better with this device than the one built into Chrome

flat wigeon
#

Chrome didn't strike me as a piece of high quality software

azure barn
#

lol

#

real

quick bough
#

omg fresh blood

azure barn
#

been here for like 2 days i think

quick bough
cyan saddle
#

It would be nice if the analog SDK allowed you to get the user's set actuaion points. I'm working on a game mod that is replacing the movement keys and I would like to be able to fallback to the correct digital behavior for the parts of the game that do not treat it as an analog input.

fathom garnet
#

wouldnt it be better to just set it to something common like 1 or 1.4 for that since on a analog profile the set actuation is likely not what the person uses on digital keys?

cyan saddle
#

In this game movement is overloaded with digital on menus and junk.

#

I just have it set to 0.5.

cyan saddle
#

CW: gross keyboard

The keybinds in this mod light up the keyboard.
Off: unused
Green: one use
Red: conflicts

cyan saddle
#

And now if you don't have a keyboard it disables itself.

cyan saddle
#

What are the rules for using the SDKs?

quick bough
cyan saddle
#

Hm. Maybe? I asked that before I redid the internals of the mod and it should be possible now.

quick bough
cyan saddle
#

Like, you need to distribute binaries to use the SDKs. There are rules attached to doing that.

quick bough
#

LOL

#

As for the analogue SDK, you can just try to LoadLibrary the "wooting_analog_sdk" and then find the symbols you need

#

You just have to tell users to install it

#

so no need to worry about possible licence concerns

#

but I doubt they would sue you for using their SDK

cyan saddle
#

You still need to ship the wrapper and linking against libraries still triggers licences.

quick bough
#

and again, no one would sue you for using their SDK

rocky wharf
#

Licences are just pain sometimes 😄

quick bough
#

That's why you just ignore them

#

If they try to sue you, you better have good opsec

#

That's how it works 🙂

cyan saddle
#

Ah, they are both the Mozilla Public License.

rocky wharf
cyan saddle
#

Yeah, this game has a place for FOSS attributions so I'm going to add them in there.

quick bough
#

bruh, you can literally just dynamically link against the SDK, you need to use 0 third-party code for that

cyan saddle
#

Oh.

#

It goes to a website.

rocky wharf
#

I don't see a part where it forbids you to make your application like MIT while the the library is GPL V2 😄

#

Yeah or just dynamically link against it 😄

cyan saddle
#

I'm not going to make people download the wrapper and RGB stuff seperatly. The core Wooting API stuff sure since that's what it's designed for.

quick bough
#

Bro, people need to install the Analog SDK (NOT THE WRAPPER) anyway

#

the wrapper just checks if the analogue SDK is installed and then redirects your calls into it

#

You can do that yourself, it's like 3 lines of code

#

as for the RGB SDK, yes, you do have to ship it

#

but you're also missing the point where a licence just exists to be something you can point at and say "look, we're not doing anything illegal"

cyan saddle
#

I'm just going to use it as intended and respect the license.

quick bough
#

if you use open-source software, you "need" some assurance that the author yields their copyright (or at least lessens it enough for you to use it)

#

which typically the licence provides, at the cost of requiring you to give some attribution

#

but realistically, you have to ask yourself if you're actually going to be sued lol

#

Wooting is definitely not going to sue you for using the SDK

#

hence you can completely ignore the licences

#

unless I misunderstand how the world works 🙃

cyan saddle
#

Sure breaking the law only counts if you get caught, but why risk getting caught when it's easy to avoid breaking the law?

quick bough
#

also I doubt you're writing this software on behalf of a company, and if not, I doubt you're going to ask a lawyer, lmfao

quick bough
#

You're operating on the assumption that the SDK wrapper is copyrighted and that the copyright owner objects to your usage of it

#

That would be the illegal part

cyan saddle
#

If you break the licenses you are.

quick bough
#

the SDK wrapper is such a basic piece of software, you could argue copyright cannot even apply to it

placid ledge
#

The licensing on the SDK's is more to try prevent competitors from just stealing it for themselves. It's not really intended to put significant restrictions on using the SDK's in a third party application

#

Like I wouldn't want you to be shipping the core Analog SDK stuff, as it's designed to be self managed. Shipping the analog wrapper and the RGB SDK with your application is the intended usage

fathom garnet
#

It also never hurts checking a license when working with someone else’s code, just ignoring any licenses because what could go wrong is really stupid advise lol

quick bough
#

That's why I also advise having good opsec cat_wink

fathom garnet
#

The advice to have good opsec so in the case of breaking rules you take longer to be found is equally dumb when it takes but a few minutes to check a license

cyan saddle
#

It took me like 5 minutes to put the licences in my project and to document where the sources/binaries can be found with the relevant file paths of said licensed materials.

#

I was asking on my phone and figured there would be some advice, but hey lesson learned.

quick bough
#

I do typically leave a link to where I found code when I steal it, but mostly so I know who to blame when it breaks

#

Correctly complying with a licence would require hiring a lawyer which is a waste of money

cyan saddle
#

Or you know, do your best effort and you're even less likely to be sued.

fathom garnet
#

You really don’t need a lawyer when the most common licenses literally spell out copy this file and that’s it

cyan saddle
#

Which best effort covers this.

quick bough
#

Well, copying the text is easy, but it's unclear to me why programs put it in their compiled output

#

when putting it in the source should be just fine imo

cyan saddle
#

Advising people to break laws and "just don't get caught" is extremely bad.

quick bough
#

and I'm not a lawyer

#

so nothing I say is legal advice

#

how about that

fathom garnet
#

That doesn’t make it any less bad because anyone with common sense should know is it’s bad advise

quick bough
#

Yeah I think I don't have common sense

#

because I just can't stop questioning everything

#

which leads me to the conclusion that licences are just for vanity

quick bough
#

Feel free to do your own thinking and come to your own conclusions

sweet peak
#

It's law. It's a legal issue.

glass umbra
#

anyone know if you can change the colors a toggle key changes to? looking to have a color, and then have it change to red when it it is toggled

clear flint
#

go to rgb tab, and click the little white circle in the corner

#

it'll change it to whatever color you have in the picker

glass umbra
earnest valve
#

does anyone know where the wooting keyboards are made?

#

like what country?

quick bough
#

Taiwan, I think?

earnest valve
quick bough
#

My keyboard has the classic "Made in China" on it

earnest valve
#

so they made in asia?

#

or like china

quick bough
#

Well, depending on whose dick you wanna suck, it's either made in Taiwan or in China

earnest valve
#

okok

#

thanks for help

quick bough
#

I say that because China would like you to know that Taiwan is not an independent country

#

The company itself is based in NL tho

earnest valve
quick bough
#

Netherlands

earnest valve
#

oh

#

alr

#

thanks

#

have a good day

blazing cloud
#

You know what would be really cool, a Wooting Wireless mouse with hyperscroll, and their magnetic switches for the buttons as well as software.

onyx parrot
#

one way to say it ig

nova nexus
#

When you zoom in on the wootility website, it doesnt let you confirm in the snappy tappy unless zooming out
nothing too big jst an inconvenience

#

doesnt let you scroll to it

hybrid grove
#

Is there a way to press the key down and have to keep actuation without lifting it back up and down?

junior harness
#

Is it possible to put the keyboard to sleep via the hidapi? I just want the backlight to turn off when my screen does, though if a key gets pressed I'd like for it to wake normally

#

the sdk doesn't seem to do anything like this, but maybe the hidapi?

quick bough
#

but I think just setting it to all black via the RGB SDK should have more or less the same effect

shadow shoal
quick bough
#

can you die please

shadow shoal
#

Piece of shit

quick bough
#

Next up you'll tell us that this channel is not for product support

shadow shoal
#

ur a loser

quick sapphire
#

Nobody's dying on this channel. Now, show me what you have with nuphy's firmware. Got some plans on my own

quick bough
#

All I know about NuPhy's firmware is their rough analogue report format

quick sapphire
#

That's perfect, I can use that

quick bough
#

What are you trying to do?

quick sapphire
#

To make an overlay to show what key is being pressed and how much. Need to show something to them that their DKS implementation is broken

quick sapphire
#

Ok that will work. Chances of them getting dks fixed is probably slim to none since they probably just reversed engineered wooting's firmware and don't have a clue on how to fix it.

quick bough
#

Well, their report format was novel to me at least, so it's not the typical copy-pasted trash. 😄

quick bough
quick sapphire
#

Someone should reverse engineer their firmware so that othera can try to fix it

quick bough
#

Or they could open-source their firmware 😛

quick sapphire
#

Fat chance...and get sued by wooting

quick bough
#

I don't see what for if it's original code

quick sapphire
#

If it's original code. But based on how they can't fix simple stuff like dks releasing a key while physically pressing on the actual key, makes me wonder

quick bough
#

Don't attribute to malice what can easily be attributed to incompetence 😉

quick sapphire
#

I've reported this to them since August, and sent them a reminder every time they release a new firmware, and they always repond with they're working on it

quick bough
#

Well, I'm personally very happy with my Wooting Two HE

#

Razer seems like the only viable competitor in my eyes, but their hardware and software just don't feel quite right

#

All Wooting needs is a (new) TKL and they could probably dominate a big chunk of this market

quick sapphire
quick bough
#

Well, aktschually, there is no "key up" and "key down" event in the HID communication cat_nerd

#

but I personally don't use advanced features like DKS, so I'm not too sure about this stuff

quick sapphire
#

I've been playing a game that takes advantage of nuphy's macro, and got somewhat dependent on it. Having a hard time going back to wooting, perhaps when my optimum order gets in, I'll switch back

quick bough
#

Can't you use Wootomation for macros?

quick sapphire
#

Yes, but I have to map an unused key instead of using a dedicated macro key. Also I can't use wootomation macro to login

quick bough
#

To login?

quick sapphire
#

I lock my computer when I walk away from it

quick bough
#

Ohhh

#

You might wanna use a Yubikey for that?

#

Tho I think you can repurpose the A1/A2/A3/Mode keys for macros, just bind them to F13 and up

#

or using Fn layer maybe

sweet peak
quick sapphire
#

That's my plan if I swith to wooting, use f13-f24 for wootomation macros

quick sapphire
quick bough
#

Probably funniest that it completely defeats the security 😛

sweet peak
#

If you know which key to press

quick sapphire
#

IT wants at least 12 char pw with mixed numbers and special chars, I'll macro that shit

sweet peak
#

Which is quite easy when looking at you once

quick bough
#

yeah fair enough I guess

sweet peak
quick bough
sweet peak
#

And.. Change it every 3 months as well I guess

#

Anyway the macro isn't stored on the board. I don't know if it'll work through the lockscreen

quick sapphire
#

Sometimes I get a call and they want my password to login, so I tell them to press the macro combination and it will log them in

quick sapphire
sweet peak
#

SwitchyThink why we talking about nuphy

quick sapphire
#

Because their dks implementation is broken and they don't know how to fix it

pulsar cipher
#

Good day, a newbie question I guess. On my other profiles the logo for this is lighted on yet here it isn't. Anything to be concerned of? TIA for any answer 🙇‍♂️

Note:
I'm using the beta 5 right now. And it's an active profile.

gritty lake
#

the profile's chosen colour is black

#

to change it press the 3 dots

pulsar cipher
#

Clicked the 3 dotsa yet nothing happened, it just pop up the options for edit profile. share, etc

clear flint
#

edit profile, then click the pencil icon to change the color

quick bough
#

Totally appreciate the irony of everyone treating this like a product support channel but when I get mad that people post off-topic stuff here, I get timed out.

quick sapphire
#

Do Wooting devs, especially the firmware folks, participate in discord? Or are they being tasked with customer service work?

balmy iron
#

They do sometimes

quick bough
#

I don't think they do customer support, but they are here.

quick sapphire
#

The last part was a reference to Cal’s video about staff being tasked with customer service work

#

Would like to asked them if they’re working on macro in the firmware.

NuPhy has it already and I feel like Wooting is falling behind. #1231685375131390073 message

Give us dedicated macro keys that we can mapped and assign to advanced functions

quick bough
#

I wouldn't want to put developers on customer support, tho. I don't know any good developer who's not either devoid of emotions or just unable to process them normally, lol.

paper crow
#

You told someone to go die. That is utterly unacceptable. That you don't recognize that is extremely concerning.

#

Behavior like that will not be tolerated, and if it happens again then the consequences will be more severe than a 24 hour timeout.

quick bough
#

Okay

quick sapphire
#

Damn big hammer was about to come down

quick bough
gritty lake
#

the last one about cs

velvet void
#

oh lol

quick bough
#

I love Counter-Strike 🙏

quiet root
#

also why is there completely off topic convos again

quick bough
#

idk, why are there tons of people in here asking for product support?

rocky wharf
# quick sapphire Would like to asked them if they’re working on macro in the firmware. NuPhy has...

If there would be a way to add it myself, I definitely would try it. For the time being, I created a Flipper App that lets it act as a serial and hid device at the same time (most with native libusb_stm32 stuff). So I can send hid commands or just plain symbols to the device either over serial or hid and then the Flipper send it back to pc over hid. To counter most of the software macro problems. But still does not work for login as it still needs a software.

quick bough
#

Why does it need a software? Is it not detected as a generic HID keyboard?

rocky wharf
#

Yeah it is but in order to send stuff to the flipper zero, I need a software running. It’s just that I don’t send software triggered keys to windows but rather hardware triggered keys basically.

#

Can’t plug in a keyboard to it. This would need a custom gpio board attached to it and so

quick bough
#

I still feel like a Yubikey is exactly made for this kind of use-case

#

You can configure a macro on it with the software

rocky wharf
#

What I wanted to do is adjust Wootomation for it to send it to my device instead of sending it as software key.
Yeah but that’s what I have laying around

quick bough
#

and allegedly Windows Hello even supports Yubikeys as a login factor, but I personally never saw an option to enable it

rocky wharf
quick bough
#

...right

#

make a device to MITM the HID comms between your keyboard and PC to insert keypresses when it detects a macro sequence being pressed bigbrain

onyx parrot
#

hello everyone. im wondering how i could change my whole keyboards color with the wooting rgb sdk using Python

quiet root
#

sending a color array

rich notch
#

can wooting utility remap keys for cursor movements (up/down/left/right)? i ask this coz i did it on a qmk keyboard, wondering if i can do the same on my 80he

sleek maple
#

Not directly, but you might be able to map some keys to F13+ and then use AHK to perform the cursor moves when those keys are pressed (unsure if Wootomation supports cursor movement)

prime rock
#

ik this is a bad idea, but surely one of these settings allows me to set rapid trigger lower than 0.15 right?

rocky wharf
prime rock
#

thats too bad

onyx parrot
#

Anti Rapid Trigger
The switch actuates at 4mm and deacruates at 0.1mm.

quick bough
#

Can't you already configure that?

#

Guess not, damn

quiet root
#

you should be able to by making the actuation point 4mm, setting continuous rt and then make the sensitivity as high as it goes

quick bough
#

This doesn't get any less stressful haha

#

Anyway, I'm not sure if I'm doing something wrong here, but it seems like the release offset is relative, not absolute, yeah?

scenic rover
#

Is there a way to use the wooting-analog-sdk to get the state of a key which is unmapped in the current profile? If not is it possible to do this using a custom plugin?

#

I remember asking this roughly a year ago, hoping that maybe something changed

quick bough
#

No, it only reports scancodes, so the keys have to be mapped, but you can use keys like F13 and up

orchid heart
#

anyone know if theres anything to use wooting keeb as an mpc/velocity sensitive pads for music production? theoretically should be able to track velocity of keys so could be used as a pad?

fervent mirage
#

I need help, I just got my wooting 60he and after a few hours this happening

#

Only happens with the “1” key

dusky summit
#

Can some one help me with wootverlay

#

I did everything it says here

grand flax
#

@dusky summit have you restarted? (after installing wootility and opening it)

quick sapphire
quick sapphire
#

🫢

mortal geyser
#

yooo how long does a kb take to get here i ordered it on nov 23 an still havent gotten no emails or msgs abt it

peak fiber
#

Hi everyone, I have a question about customizing the SOCD input behavior on my Wooting keyboard.

Here’s what I’m trying to achieve:

When I press U, the key activates normally.
When I press I while still holding U, the I key should override U (Last Input Priority).
However, when I is fully pressed, I want both U and I to deactivate, essentially stopping any input.
This behavior is the opposite of the "Alternative Fully Pressed Behavior" setting.

Is it possible to configure this using Wootility, or is there another way to achieve this? Thanks in advance for your help! 🙂

quick sapphire
#

Is there a public sdk or api to read and write profile? Thinking about making a system tray app to change and load different profiles

tawny crater
#

uhh i’m like really new too Wooting but i’ll bump your message cause that’s strange.

sweet peak
quick sapphire
quick sapphire
quick bough
quick sapphire
quick bough
#

Oh, hmm

quiet root
#

you dont need any wootility data

quick sapphire
#

Maybe the dev can chime in

quiet root
#

you just instruct the keyboard via the sdk to switch to profile index 0-3

#

and thats it

quick sapphire
#

Or a contributor 😉

quick bough
#

Well, basically to switch the profile you just need to send a feature report to the device with report index 0 and the data of { 0xD0, 0xDA, 23, profileIndex }, zero-padding the rest

quiet root
quick bough
#

that seems weirdly over-engineered

quiet root
#

it was

quick sapphire
#

It needs to be able to load profile from local storage to index 0-3

quiet root
#

only if you want to load a profile thats not on the board yet

quick sapphire
quiet root
#

and also if you do that youd need to store the profile youre overwriting first otherwise its gone

#

im not sure how exactly we implemented it internally for our background service

quick sapphire
quiet root
#

read the data from the browser

#

in a way you wont get flagged by antiviruses

quick bough
#

> write program in C++
> flagged by anti-virus
> mission failed

quick sapphire
#

It'll probably use the same local data the browser uses

quick bough
#

You can probably just record & replay what Wootility sends when you switch a profile in

#

not that I've ever tried that, but surely it should work cat_seenoevil