#🤖│community_dev
1 messages · Page 10 of 1
Should we bring it to the UN, or?
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 
human rights might be a bit too far
but we'll get it to Den Haag
Wait, he released an RGB SDK update yesterday, but still no analogue SDK update 
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
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. 
Oh wait, that's interesting, it seems like maybe one of the responses was dropped 

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.
im impressed
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
I'd say open an issue with that package, since the way the RGB SDK works is by (x, y) and not based on keys. It seems the crate assumes that F1 is at (0, 2), but the 80HE has it at (0, 1) because of space efficiency.
tried changing the touple for F1 to point at (0,1) my F1 key now lights up
@floral crane
I find it weird that they have a picture of the keyboard matrix for "keyboards" but it doesn't apply to 80HE
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
I wonder if it works for 60HE
I unfortunately don't own a 60HE so I don't know
the matrix hasnt been updated yet
here are correct mappings in the meantime, we'll update the matrix in the readme soon.
That 60% mapping is just cursed
this one also isn't completely correct and is missing some leds
Keyboard_Home should be Page Up with the default configuration
Keyboard_Home should be Page Down with the default configuration
Space key now has 5 leds at (5, 4), (5, 5), (5, 6) <- the key, (5, 7), (5, 8)
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.
That's obviously not correct since on the 80HE, the F1 key is (0, 1) instead of (0, 2)
F1 should be 0,1 anyway, that's what the matrix pic has always shown
No?
wait what why is there a gap
and why is it not there for the 80HE? the rgb sdk internally has no different matrix for the 80he
what keyboard are you typing on right now?
lekker
So, Wooting Two LE?
yeah
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
the mappings i linked above definitely light up every key, just some ids might be wrong apparently :p
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
that would be nice for lamparray
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
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
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)
@placid ledge You might want to hold back 9e8e3b16a383e870ac85bd1b1b56ac2a7dbefdab[1] until a later release. This is likely causing the CI to fail.
[1] https://github.com/WootingKb/wooting-analog-sdk/commit/9e8e3b16a383e870ac85bd1b1b56ac2a7dbefdab
Thanks for the heads up. I don't think it's why the CI is failing right now (it seemingly isn't even executing the cplugin for some reason).
But it likely does explain why it's failing for me locally
Ugh, analog sdk project is such a mess, I really gotta find some time to properly get it into shape
Rewrite in C++ 🙏
Well, you are right, the CI is failing even with that reverted
but I just figured since it's ABI breaking
Please don't 🙏
Please do, it would be funny
Goddess forbid it actually be usable or maintainable
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 😄
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 😛
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'
It might help to provide the source code and not just error logs: https://github.com/pmnlla/zmk-board-cfg
Unfortunately I don't even know what you are doing. I only know QMK.
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.
When I get some more time to spend on the SDK, I want to just kill the whole rust plugins and have it be included in the core bit and just have the C ABI for plugins.
The biggest mistake I made in the architecture of it was trying to make it too flexible, it's far too split up which just creates a whole lot of headaches
Yeah. I was trying to do the same thing, then I learned Rust doesn't have static initialisers.
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
You can do static initialisers, before you had to do it with lazy_static, but they have a built-in replacement for that now
There isn't, I don't exactly remember why we never did that
Well, I might be about to do that

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
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
isn't there funny command I can send to change the serial
at least I saw some related code in wootility
Well, yeah, I want to downgrade it so it's compatible with that old analogue SDK
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
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
Of course you can, just mappy map it
The "Wooting Two (HE)" is a catchall for Wooting Two's
Wait, why is Lekker edition there, it's supposed to be grouped Was thinking of v5, it's a full "Wooting Two" catchall
You can make an okay shim that way, not a good one
Of course it makes an assumption that keys are mapped as expected
ye, but what even is the motivation for making a shim anyway?
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.
Got it working: https://github.com/AnalogSense/old-wooting-analog-sdk-shim
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.
Or rather, if there are less than 512 total scancodes (which I suspect there are), then it is possible to pack all of them in 9 bits, leaving 7 bits for the position, which can be encoded as y * 21 + x to make it fit.
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:
On https://github.com/WootingKb/wooting-analog-sdk?tab=readme-ov-file
Follow the installation instructions for the Wooting Analog Plugin
That has a link that points to a repo that says it has been merged into the wooting analog sdk
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
Uhh, no, I don't think there's a feature like that
would you mind explaining how the community dev thing works, like can people code their wootings or somthin?
Well, it's mostly about analogue input and RGB output
(Actually it's mostly coping with Rust)
so you cant upload your own code?
Nope
You could try Keychron's Q HE series of keyboards. Their firmware is somewhat open-source.
yeah ik you can do it on there but i assumed a $300 wooting could do the same
lol, why would they open-source their juicy firmware
it's so low latency and shit
big industry secrets!!!
Where even is this setting
under the advanced tab in dks and mod tap
Well, bad news, looks like the options are hard-coded
what does that mean?
im sorry?
where did you find the code?
Just looking at what Wootility sends to the keyboard
You should probably put your "feedback" in an appropriate place, e.g. either here in the #1141096226884956181 channel, or on Github: https://github.com/WootingKb/wootility-issues/issues
how are you viewing that?
ok will do thanks
I'm on Firefox, so I had to write my own WebHID provider, so I can just insert logging there
oh wow ok thanks for the help
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? 
sounds like you're trying to eliminate 0-framers?
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
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
6KRO is mainly for compatibility, so it's in the most common format. Not really much point in pushing it hard when anything that will properly parse HID reports should be able to handle the full nKRO interface
Seemingly it's with the DeviceInfo conversion? Are you fully using DeviceInfo_FFI on your side?
I actually inadvertentedly implemented the NKRO interface first and then realised it wasn't working with another keyboard vendor lol
then I had to read the standard 
HID standard is a big oof yea 😂
Yeah, I have a macro for the ABI version. This is the struct I use. I can only imagine Rust might have different padding?
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
Yeah that Utf8Error doesn't exactly say anything useful lol
Specifically this one
https://doc.rust-lang.org/std/str/struct.Utf8Error.html Seems like it's complaining at the first character it tries to read?
Errors which can occur when attempting to interpret a sequence of u8 as a string.
guess I'll need some logging on the Rust side?
Would prob be worthwhile to print out the bytes from the pointer it's trying to use on the rust side
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 😂
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? 
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
Yeah extend shorter presses to 32ms
I think this approach should be quite future-proof, as long as there's not gonna be further breaking changes 😛
Isn't it a bit bloated to have a second dll duplicating most of the code just to have another version of the abi?
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 😛
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
The old one doesn't work at all anymore haha
Ah right, but did it work for unmapped keys? ^^
but the firmware interface was based on key positions rather than scancodes from what I can tell
Like in the RGB SDK?
Yeah
I made a shim for the old SDK: https://github.com/AnalogSense/old-wooting-analog-sdk-shim
I have an OG Wooting Two but I did update the FW 
I unmapped the A1-A3 and the Mode key
You can use F13-F15
Meh
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
whats the de bounce time on the wooting 80HE?
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
I wish you could adjust it
i get double presses when letting go a key
What's your actuation point?
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 
its low but i have it like that for speed running
Low as in... ?
now its 1mm so it dosent do that
Great stuff
i run a game at 31fps and need a way to set the lowest input time to 32ms
i thought you were asking mb i didnt know you already knew
i put it there
Might also wanna submit the debounce issue
iirc they were working on something related to debounce but idk
Ah yeah, I found it
@strange kite Go to https://v5.wootility.io/?test-builds=true then you can select a test build in Settings > Updates
Might wanna try v2.10.0-test.debounce.2
cool i downloaded it
would i just find it as a setting in here?
As the name suggests, this should fix your debounce issue, nothing more
oh you cant set it or anything ok
ill test some stuff
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
I now have a funny panic when using the example C plugin
Did something change with the latest rgb sdk update? linux is failing to build on actions now
Yeah, it's written in C instead of in Rust now 
maybe I have to use ubuntu-24.04 not ubuntu-latest (22.04), it builds on my local linux just fine
I don't even see the GH actions on your repo
that seems sus
you have to rustup default stable after you install rustup
what distro?
See image
hmm 22.04 works 🤔
Note the failure before I installed a certain package 
Soup?!
if you install the exact git version of tauri-cli this needs it uses extra deps for packaging or something, idk
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
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
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
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
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
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
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
react 😓
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
I gave up on javascript/typescript it was a mess
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
the most impressive stuff is built on a mountain of hotfixes and shit
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
I'm talking about javascript
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
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
I don't get the appeal of typescript
it just undermines the integrity of the ecosystem imo
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
Yeah, I would never know without TS 🙏
but generally it helped me know when I needed to handle something nullable or convert something to something
thats a good function

const text_to_text = function(input)
Guess the return type
array
😛
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
it is in the less professional libraries, think stuff on github with 0 stars
Like, '1' + 1 = "11"
yeah that too
and last I checked, TS doesn't really help you avoid this
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
user_input as number 
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
the fact its an anonymous function stored in a variable is way worse than anything else
it does cause it reads .value as string so you do a isNaN(input) and know if it is a number or not
not saying TS is really safe (theres tons of ways to break it)
But it's not an arrow function
sorry anonymous typoed
Yeah have fun following that stacktrace
I do this because I want it to be a const variable (so it's block-scoped as well)
you can still give it a name 🙂 its a bit double up, but on stacktraces it will show the actual function name
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)
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.
Alright, thanks, will give it a try when I get the chance
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.
Thanks, I'll give it a bit of a dig before I do a new release publish
Tmw the only change was uuid -> uid 😅
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.
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?
I've got a few commits on top of yours that I pushed to a branch on the repo if ye wanna check them out https://github.com/WootingKb/wooting-analog-plugin-examples/commits/fix/everything/
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.
In my branch, I changed it to use the cmake build configuration from the hidapi repo itself, rather than the mess it had before
I can see that, yeah. I am building from your branch.
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
Yes, it's trying to dynamically link, but obviously there's no hidapi.dll anywhere
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
Right, but now it's back at where you were getting it before correct?
Yeah
Just from calling wooting_analog_get_connected_devices_info?
Might be something windows specific
Cus it works completely fine for me on mac
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. 
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
So maybe it gets dropped too soon?
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
Well technically the offending code is not unsafe, nor the variables it operates on
Like you can see here it's just this map doesn't work
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?
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
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
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
I didn't see anything else being broken, so idk
Well, it is supposed to be converted fully into the rust DeviceInfo type with the wrapper around the cplugin
So on paper, the DeviceInfo's the get_connected_devices_info func works with should all be pretty equivalent regardless of the original source
Also just tested and it made no difference
Part of me feels like the strings have something to do with this
https://github.com/WootingKb/wooting-analog-sdk/commit/6cae8dd47c05e57a1e90544341aad3dd090b0bfc Could you try this out to see if it makes a difference?
Well, it does seem to have it correctly Rust-ified
Also still panics with your commit
Hmmm
Getting even more tempted
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
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
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
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?
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
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?
you would have to make it an int because that's the standard type for enums
but yeah warning and fallback sounds good
Ah okay
Although, hmmm, this could interfere with public ABI
With int, it should be the same binary layout
Not if you use int
but maybe it's kinda sucky for it to not reference the enum it's using?
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
Don't think so, enums in Rust are more than a number alias
Oh wait, I think I misunderstood slightly what you meant
You just mean getting the number from the enum and validating that?
Yeah, get the int value in that field
Yea, it can be casted into the int value
On a completely different topic, if your shift ends in 20 minutes, and I'm now going shopping, then this is goodbye for today. 😛
Seemingly it gets sanitised for me somewhere behind the scenes? No matter what invalid input I give it, it ends up with the 'Other' variant. When it's correctly set to Keyboard, I get Keyboard as the output
I did cargo build --release if that makes a difference
This doesn't seem to change the behaviour in any way
Welp
Gotta actually head off now, might have some time to look at this again tomorrow
glhf
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?
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
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
Looks good
Should be close to v0.8.0 now, right? 😛
This one is also funny: https://github.com/WootingKb/wooting-analog-sdk/issues/87
Yeah, making builds for it now. Thinking of publishing it as a pre-release so we have a lil window to double check things before pushing it out to everyone on the auto update
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
I guess I should also publish the ABIv1 version of my plugin then
Annoyingly the updater doesn't handle pre-releases any differently, so everyone gets prompted for an update 
Doesn't the auto-updater only run when ran manually?
at least I don't see any prompt when starting analog-midi
The updater is only used in Wootility desktop builds
So you get a prompt to update on that
oh, so no users are affected 😛
With this massive changelog 😂
You'd be surprised how many people use the desktop builds

Is there any broken UI with Wootility running in Firefox?
Yes
I do know that there are some webapis we used cus they were wider supported than WebHID (but also not supported on Firefox)
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 😂
I do have a UwU, yeah, I tested firmware fllashing on it
how could you forget my amazing skills writing at 10 WPM on the UwU: https://www.youtube.com/watch?v=9aKUcVTyI0k

Anyway, seems to look fine to me
if you do the rainbow preset does the ring look correct?
yeah, the gamepad buttons are the only issue I saw
and it's a minor visual glitch I guess lol
@placid ledge

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
should be deployed now
yeah ok now the links look right
you can retry the link on the changelog page
woa, more wooting employees I've never seen before
they're all on duty on Halloween
I would hope not.
https://wooting.io/about is just woefully outdated 
Well at least we can assume they're working on fulfillment instead of updating the website
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
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
They're based in Netherlands
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
the week i joined we had 7 new people, i think there's 3 more this monday :p lotta portraits to draw..
We're based like ~45% Netherlands, ~45% Taiwan and then ~10% scattered around 
I'm part of the ~10% 
Damn, I thought you were Dutch. Is that why you weren't at ClackyCon? 
Well, there are other options, too. 😛
Hehe yea, might've been there if I was a dutchy
I'll give you a hint with flags 😛
🇮🇪 🇬🇧 🇳🇴
You're a nomad moving between 3 countries?
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!!!
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 😛
I'm sure there's a story there 
Well, not super exciting, short version is that I was working on https://github.com/antonpup/Aurora on the side and got in contact with Wooting to add support for the Wooting One/Two to it using the RGB SDK
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
Damn
If it weren't for you making that SDK, tho
Would've been an even sadder world

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 😛
Are you forgetting I'm not an employee? 😛
😩
I just don't see anyone else comitting to the SDK 
Not the Analog SDK
but both @quiet root and @strong siren have contributed to RGB SDK
sorry
hmm
man i wish i could give the SDKs some better love
Yeah, I understand that analogue SDK is not a huge priority 
Do I not have an arm in this picture lol
Was talking with Erik when he was editing this photo for the newsletter/blog(?) and he was like "no-one will notice that diogo is missing an arm" 😂
Lmao
Oh that’s you 
All u devs are amazing

I thought that was the main point of the wooting keyboards 🧐
Dude is spamming all channels for the giveaway lol
What giveaway?
Oh, 50 messages
Well, it's about analogue input, but no games really added native support for analogue keyboards, so we're stuck with gamepad emulation and stuff like SOCD resolution.
Damn, even I don't qualify
i have the same problem
lets
start
a
conversation
xd
Eh, I don't want it anyway, I was just curious if I would qualify
Do not spam or you will be disqualified
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
any update on SDK support for the 80HE? I miss wootverlay
Yeah, SDK version 0.8.0 dropped, so it's supported now, just need to run the updater
Yeah the common misinterpretation for engagement is that it is almost always measured by quantity not quality which has lead to the dead internet theory due to the mass production no zero thought ai content
I will say it is a lot lot easier to measure quantity over quality but still
can ya build it again for me with 1ms update :3
Not needed?
Just update your SDK
2 little clicks
is this the same sdk as on the wootility desktop app?
Yeah, the Analog SDK is pre-installed with Wootility
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 
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?
L
I'm using an ISO UK board set to UK, and the key works as expected
i used the same layout and language on the Two HE, and it displayed fine
but not on the 80HE
Well that just sounds weird
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
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
Okay, so, not exact repro because my 80HE is JIS and my Windows layout is Japanese IME with the underlying layout being US, but also working fine here
Yeah, I'm like 69% sure it's your Windows layout that's wrong
that one?
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 🙏

jk, it's a build of https://github.com/AnalogSense/wootverlay-alt-server which I made for Linux
but it also works on Windows, so worth a shot
130 EUR for a keyboard case 💀
This is a dev channel :p
I'm a dev, I chat here, it all checks out
Also kinda funny that they only provide this case for the 60HE... I think this is why smartphone companies don't also sell you a case, lol.
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.


also about this; yeah no thats not how this works...
but 130eu ain't ex
expensive?
Seems like someone is happy today
im just ready to speak when i see someone who doesnt read channels names and descriptions
130eu is very decent for custom cases in the market
my point exactly
@quick bough
Okay, but this is my channel, I've long-sinced marked my territory here.
fr
Your little pissing here isn't gonna make a mark in the grand scheme of things
probably the cringiest thing u couldve said to me
you cant just "okay, but.." me and expect me to not laugh at you
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.
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
I don't want to provide feedback because I don't have feedback
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
no

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
thank you tony :)
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
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.
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
could be done in #1141096226884956181 :)
I'm pretty sure that's for first-party things 
Gonna post a #1141096226884956181 because my Razer Chroma isn't working 
bro?
"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
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
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
Also discord.io is a dead site now 
It is a possibility, I'll add it to my list, currently in the stages of alpha testing the next big release... That I've been on and off working on since the last update
I take more direct moans 😂 (then I get less)
It is a metal case then, right?
Actually, channels are meant to separate topics, not people
Sure, because that's totally how that works
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 
On your own Discord server you can manage your channels as you wish. But generally if the channel has a topic you can assume it is meant for this topic.
That's cool, but there's hardly anyone who rolls like that
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
Woaw there, is this non-community_dev talk in the community_dev channel? 
-_-
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
Guys come on, just keep this channel related to development.
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.

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
Perhaps my understanding of your perspective is incorrect, but my point is broadly spoken to defend the organization of our discord
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.
same issue here :/
2.9? you should go to https://v5.wootility.io
the firmware rn is 2.10
HEY guys u know why my wooting have delay?
its slower than my last keyboard
and i dont think so it should be
No mini-modding please 
who tf would help them about it here lmao
we dont consider people telling others where to actually get help as mini modding.
I don't think you consider anything as mini-modding, because I never saw you call it out, lol.
Calling out people who want to help? 
Just let them be...
Yes, mini-modders need serious help 🙏
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. 
I'm also now at owning probably 20+ keyboards, which is... yeah, definitely reasonable and sane.
Funny, my WebHID implementation seems to be working better with this device than the one built into Chrome
Chrome didn't strike me as a piece of high quality software
omg fresh blood
been here for like 2 days i think

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.
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?
In this game movement is overloaded with digital on menus and junk.
I just have it set to 0.5.
CW: gross keyboard
The keybinds in this mod light up the keyboard.
Off: unused
Green: one use
Red: conflicts
And now if you don't have a keyboard it disables itself.
What are the rules for using the SDKs?
Can't you just get the digital inputs from the OS?
Hm. Maybe? I asked that before I redid the internals of the mod and it should be possible now.
What do you mean by this?
Like, you need to distribute binaries to use the SDKs. There are rules attached to doing that.
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
You still need to ship the wrapper and linking against libraries still triggers licences.
You don't need to ship the wrapper, you can just do this manually
and again, no one would sue you for using their SDK
Licences are just pain sometimes 😄
That's why you just ignore them
If they try to sue you, you better have good opsec
That's how it works 🙂
Ah, they are both the Mozilla Public License.
MPL 2.0 doesnt look that strickt, i guess if you add the licence to the output of your compiled application it should be fine (for example in a license folder like some other software devs do).
You need to make the source code part that is under MPL 2.0 available to the end user, or at least say where they can find it.
Yeah, this game has a place for FOSS attributions so I'm going to add them in there.
bruh, you can literally just dynamically link against the SDK, you need to use 0 third-party code for that
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 😄
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.
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"
I'm just going to use it as intended and respect the license.
really licences just exist because corpo lawyers like not opening themselves up to being sued
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 🙃
Sure breaking the law only counts if you get caught, but why risk getting caught when it's easy to avoid breaking the law?
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
You're not breaking any law
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
If you break the licenses you are.
the SDK wrapper is such a basic piece of software, you could argue copyright cannot even apply to it
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
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
That's why I also advise having good opsec 
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
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.
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
Or you know, do your best effort and you're even less likely to be sued.
You really don’t need a lawyer when the most common licenses literally spell out copy this file and that’s it
Which best effort covers this.
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
Advising people to break laws and "just don't get caught" is extremely bad.
That doesn’t make it any less bad because anyone with common sense should know is it’s bad advise
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
Feel free to do your own thinking and come to your own conclusions
It's law. It's a legal issue.
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
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
https://gyazo.com/669d46a05943e4b0a4697d668f0b7096 that works for f1 and things like numlk but I'm for something like that for a TGL key that is linked to f21 for toggling mute mic
Taiwan, I think?
okay thanks
My keyboard has the classic "Made in China" on it
Well, depending on whose dick you wanna suck, it's either made in Taiwan or in China
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
what is nl?
Netherlands
You know what would be really cool, a Wooting Wireless mouse with hyperscroll, and their magnetic switches for the buttons as well as software.
..what? 😭
one way to say it ig
Oh wow that's a thing? Crazy.
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
Is there a way to press the key down and have to keep actuation without lifting it back up and down?
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?
You would have to figure out how the Wootility changes the brightness on the keyboard and then send that message yourself
but I think just setting it to all black via the RGB SDK should have more or less the same effect
can you die please
Damn, it's captain obvious
Next up you'll tell us that this channel is not for product support
ur a loser
Nobody's dying on this channel. Now, show me what you have with nuphy's firmware. Got some plans on my own
All I know about NuPhy's firmware is their rough analogue report format
That's perfect, I can use that
What are you trying to do?
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
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.
Well, their report format was novel to me at least, so it's not the typical copy-pasted trash. 😄
Ah yeah an alternative is also this https://analogsense.org/JavaScript-SDK/demo tho I personally encountered that Chrome's WebHID implementation was a bit hit or miss with if it does receive NuPhy's reports.
Someone should reverse engineer their firmware so that othera can try to fix it
Or they could open-source their firmware 😛
Fat chance...and get sued by wooting
I don't see what for if it's original code
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
Don't attribute to malice what can easily be attributed to incompetence 😉
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
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
Wooting firmware is solid, found a simple bug and hopefully they'll fix it
#1304193718047342632 message
Well, aktschually, there is no "key up" and "key down" event in the HID communication 
but I personally don't use advanced features like DKS, so I'm not too sure about this stuff
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
Can't you use Wootomation for macros?
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
To login?
I lock my computer when I walk away from it
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
Strange use case. You lock pc when not there, but want to unlock with a keyboard macro?
That's my plan if I swith to wooting, use f13-f24 for wootomation macros
Mentioned this to my peers and they also laugh about it
Probably funniest that it completely defeats the security 😛
If you know which key to press
IT wants at least 12 char pw with mixed numbers and special chars, I'll macro that shit
Which is quite easy when looking at you once
yeah fair enough I guess
It won't be happy with that. But they do make extreme demand
or just by him openingly saying "I use a macro key for that" and then try pressing each macro key once
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
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
Nuphy's macros are in the keyboard
why we talking about nuphy
Because their dks implementation is broken and they don't know how to fix it
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.
Clicked the 3 dotsa yet nothing happened, it just pop up the options for edit profile. share, etc
edit profile, then click the pencil icon to change the color
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.
Do Wooting devs, especially the firmware folks, participate in discord? Or are they being tasked with customer service work?
They do sometimes
I don't think they do customer support, but they are here.
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
Oh, I don't pay that close attention. Funny if true.
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.
No no no, I'm going to stop you right there.
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.
Okay
Damn big hammer was about to come down
Myself included, of course. At least I recognise that much. 🙂
which video?
oh lol
I love Counter-Strike 🙏
derp
also why is there completely off topic convos again
idk, why are there tons of people in here asking for product support?
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.
Why does it need a software? Is it not detected as a generic HID keyboard?
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
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
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
and allegedly Windows Hello even supports Yubikeys as a login factor, but I personally never saw an option to enable it
It’s not only for login. It’s to send keys from a hardware device instead of just software.
To compensate the lack of macros on the keyboard itself kind of
...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 
hello everyone. im wondering how i could change my whole keyboards color with the wooting rgb sdk using Python
sending a color array
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
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)
ik this is a bad idea, but surely one of these settings allows me to set rapid trigger lower than 0.15 right?
I wouldn't count on that, there is a possibility that the firmware checks all values to be in the desired range.
thats too bad
Anti Rapid Trigger
The switch actuates at 4mm and deacruates at 0.1mm.
you should be able to by making the actuation point 4mm, setting continuous rt and then make the sensitivity as high as it goes
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?
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
No, it only reports scancodes, so the keys have to be mapped, but you can use keys like F13 and up
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?
I need help, I just got my wooting 60he and after a few hours this happening
Only happens with the “1” key
@dusky summit have you restarted? (after installing wootility and opening it)
I think it's open source in github, maybe the developer can chime in
That's me 😅
🫢
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
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! 🙂
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
strange
uhh i’m like really new too Wooting but i’ll bump your message cause that’s strange.
wrong channel, it should be in #1019755933959733258
Thanks for that! Wonder if it can be done without relying on Wootility data
What Wootility data?
I'm assuming where profiles are store locally. Still reading up on the code and figuring it out
It only needs the profile index (0-3 inclusive)
It seems to be looking for leveldb
Oh, hmm
you dont need any wootility data
Maybe the dev can chime in
you just instruct the keyboard via the sdk to switch to profile index 0-3
and thats it
Or a contributor 😉
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
that seems weirdly over-engineered
it was
It needs to be able to load profile from local storage to index 0-3
only if you want to load a profile thats not on the board yet
Yes, that's the concept
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
I'm sure that can be worked out. Just need a quick way of loading profiles without opening up a browser or wootility
> write program in C++
> flagged by anti-virus
> mission failed
It'll probably use the same local data the browser uses

