#🤖│community_dev
1 messages · Page 9 of 1
If it's not analogue, I don't care 😛
bare win32 cpp :p
I wonder if it's bannable though with vanguard
also already did a thingy like this and immediately let it become unmaintained: https://github.com/Sainan/analogue-socd-resolution
Couldn't you just put a qmk script into keychron to do it that way?
Idk if it allows you to modify it or not
the funny thing about that rappy snappy is basically the same as what most games do when they receive analogue input (subtract)
Well, technically this could now also support Drunkdeer keyboards, except... unmaintained. 😄
The one downside of not using the Wooting Analog SDK... gotta recompile for new keyboards
rip
Just compile from source I guess 😛
lol ig
yeah the thing is I just don't care about SOCD like at all
don't play FPS games, so...
pressing A and D for me means: vehicle goes straight
and that makes sense
(both for digital and analogue input)
Okay, I decided to do the not lazy thing and recompiled it and pushed a new release
tho I didn't do the ultra-not-lazy thing of actually testing if it works
it's probably fine tho
ah lmao
Why C++ specifically?
If there's a bug, I can quickly test and fix it. I'm guessing no one cares tho and hence won't run into issues
lol maybeee
That depends. In Python, you will only find out at runtime if you messed up
you just gotta get better and use cython
Eh, I don't use Python myself at all, just infering from how scripted languages be
not that C++'s compilers will prevent you from writing horrible code, but at least I can be confident I don't have horrible mistakes
I'm not there with writing c++ code etc.
still pretty early in the writing outrageously bad code lmao
What's your native language?
None really tbh, I know java node etc. but I don't really care to use them as much, so I'm in a all out learning random languages and not getting good enough in any of them
HUMAN language
ew whats that
Okay, I think you have autism
You misunderstood me twice now on very common phrasings
that's very subjective ¯_(ツ)_/¯
Well, 3 times if we count this
You mistook me on very common answers
human language is very subjective anything is a language if you set your mind to it
Sure, now it requires behavioral analysis to be detected
I mean, at first I thought you could just use the analogue interface of the keyboard, but there's actually an even easier solution: Just check how many times the person is perfectly A/D swapping.
Like, no human could ever get a frame-perfect A/D swap like 3 times in a row without some sort of assistance
or can they
insert vsauce music here
Hiya!
I've been working for the past few weeks on a bit of software for Wooting keyboards. It's a spectrum analyser (something that takes audio and converts it into a graph of frequencies), making the LEDs on the keyboard react to the music you're listening to, which creates a nice effect.
It works really well for my setup and I'm really happy with how it looks, but I can only test what I have, so it would be nice if some people could also try it out and see how it goes. Hopefully it works for most Windows setups, so I can start the attempt to bring it to Linux.
And all feedback is very welcome, I'm hoping to get this into a very usable state ^^
Anyway here's a small showcase video and the GitHub repo, for those who want to check it out:
https://github.com/PrimmR/wooting-spectro
looks great 🙂
thank you!!
That's super cool 🤩
Im definitely gonna try this on my twohe later 
fantastic! fingers crossed that it works on that model ^^
That is super cool, I wanted to do that on a board since forever!
updating you here, works flawlessly on the twohe!
brilliant!!
Its absolutely stunning stuff, awesome work!

I like this 🙂
WHOEVER made that usb beta fireware its a good step in the right diection
What is that?
It’s beta firmware for usb
Nicee!!
Do all the themes seem okay? I had to modify a few to work with 6 rows instead of 5, but hopefully I didn't miss something ^^
Everything works flawlessly unless a bug report proves otherwise 😛
So true!!
Themes looked just fine on my end 
:DD
Apparently CS2 devs added a detection for snap tap to the game
Unsurprising, valve does like tracking all the stats
At this point I don't see why they don't just add a "SOCD resolution" option to the game, although that would be like shipping cheats with the game
Otherwise I guess they could add a warning message like "Hey, it looks like you might be using an input method that is resolving SOCD before reporting it to the game, which we consider to be cheating. Stop this or you will be banned."
Either way, they gotta level the playing field somehow, lol
That pink is gorgeous!
Hehe thanks!
Hello all ! This is just a quick question, I know that it is somewhat alluded to in the FAQ section, but I wanted to ask, I have been looking at the 2HE model to get, but I am “concerned” that I will get it and then a new revamped model will be released or put into production, leaving the keyboard I just got somewhat behind, whether in physical or software capability. Are able to have any sort of insight for that ? Thank you in advance !
this is a shot in the dark but does anyone know if decoupling capacitors are actually needed for the linear hall sensors on the wooting? i noticed the back of the wooting 60he doesn't have any but most of the datasheets ive seen have them included in the recommended implementation
I don't know when it comes to hardware, but the software side of things should be fine. We're still supporting the original wooting one from 7 years ago.
Is wooting firmware encrypted and/or signed?
Wooting's legal team preparing to sue you 
I imagine the only hardware upgrade would be 8kHz polling but I’m not sure it would have much of a noticeable impact
so software wise we havent left any of our devices behind yet
even our wooting one gets updates with new features as long as the limitations of its hardware allow it
also this doesnt belong in here but more #💬│general or #1141096226884956181
When are we getting a TKL with HE keys 
also the linear keys were kinda based, the sound profile was nice
This happened when I ran cargo run --release
And I cannot find the executable
Hopefully they start banning it.
is there a way to have multiple actions while holding down a singular key depending on the amount of time its held down?
i use shift for up arrow mod tap
i want to be able to hold shift for it to function as shift, hold for longer to function as up arrow pressed down
200ms for shift, 500ms for up arrow
compilation probably failed for some reason, was there an error in the terminal
Other than what I showed above no.
If needed I can screenshare with you and show you what I do and what it throws at me.
You need to install libclang and friends, and make sure cargo can find it. As to how you do such things on Windows? No idea!
Apparently it's in winget so should be quite easy (famous last words) https://rust-lang.github.io/rust-bindgen/requirements.html#installing-clang
bindgen automatically generates Rust FFI bindings to C and C++ libraries.
aah thanks for finding that!
i already had Mingw64 before starting so I didn't notice it was needed
Will you update the build then or?
Nono, that's something you need to install
How can I install it
Because the actual wooting library is in C, it needs certain C libraries to install, even though my program is in Rust
My recommendation would be to install winget and then use the command given here
Winget should be preinstalled these days, unless maybe you've run a debloater script that removes it
oh fantastic!
Is there a conical way to get the keys for a keyboard on the RGB and analog APIs?
conical?
Like a correct and supported way of doing it. Getting the count, locations and labels of the keys.
Well, not really, no. The firmware only provides the keycodes as mapped in the Wootility (for analogue and digital input), whereas the RGB interface is positional.
Of course, this isn't really an issue if we assume a not-keypad (like the UwU) and a more-or-less standard layout modulo some differences with ANSI vs ISO.
The goofy website for managing the devices knows all of this stuff, it really should be exposed somewhere so you can have an accurate respresentation of the devices in your programs that support them.
You can definitely read this stuff out yourself. I already did some light reversing on this front: https://gist.github.com/Sainan/0d285907961a22c8cafc106aa36513e5
I could definitly dig into that stuff, maybe I should.
The RGB SDK is definitely a good place to start if you wanna look at how you talk to the keyboard.
I just want to be able to have a correct representation of the device in software. :V
This was a discussion years ago and it was never resolved and now it's more important because there are more than two keyboards.
There is still the issue tho that you won't know which key is pressed if the same logical key is mapped on multiple physical keys. (Unlikely but possible.)
Do the mappings of the keys matter if you are grabbing the raw values from the board?
The analogue interface reports keycodes (logical keys).
/** @brief Retrieve information about the connected Device
This function returns a pointer to a struct which provides various relevant
details about the currently connected device. E.g. max rgb rows, columns, etc
@ingroup API
@returns
This functions returns a pointer to a `WOOTING_USB_META` struct which contains
relevant Device Information
*/
WOOTINGRGBSDK_API const WOOTING_USB_META *wooting_rgb_device_info(void);
Noice.
That helps a lot.
so count you can get with the sdks, layout as well but labels are completely irrelevant for both rgb and analog
the digital keymap is a separate thing that wootility just renders on the keys regardless
It would be nice from a GUI standpoint to have them.
you can retrieve the keymap
layout as well
Well, it can tell you if it's ANSI or ISO, but not the full mapping.
At least I don't see any such thing in the RGB SDK
the key layout is in one of the sdks
Eh, I'll figure it out when I actually add the GUI to my game.
I have a couple of big blocking things in my engine for right now, so I'll just stick with my wrapper and some test cases for it.
Trying to name keys is a problem you can only despair at
The best you can do in this regard is ask the OS if it can maybe be helpful with regards to the user's current layout
Well it's a typical bug in games where the input should be bound to a position on the keyboard that the mapping depends on the current layout instead
I don't think that's a bug per-se
I mean, yeah, if you set some default bind on Y and/or Z, then some European users may have a different experience trying to hit those keys, but you can account for that by changing the defaults based on the layout, for example.
Or you just always treat input as if being mapped in a QWERTY layout
imo we should all just throw away qwerty to dvorak
Very cool opinion that totally doesn't require billions of people to relearn how to use a keyboard
I switched from QWERTZ to QWERTY and that alone was a rough transition
average people don't type without looking at their keyboards, so it'll be more like the 10% that'll have the hardest time transitioning
most of them do the whole find and click typa action
- if we continue using qwerty, itll make billions future people also adopt it
and rather than only having our current billion people, itll be even more people now using it
I get the sentiment, but you'll have to sell people who never typed before on this first
if more people who type faster adopt dvorak, and just make it a standard of typing fast use this layout it'll eventually get to everyone
like your average IT guy
coming from someone who can type 210wpm on qwerty
I highly doubt this is true, especially your figure of 90% of people not remembering where keys are. This just comes naturally with usage, and I think most people use keyboards enough that they could at least blindly write their name.
Doubt it, you underestimate phones
I think WPM is more of a vanity metric than you realise. I myself am a professional software developer, very successful, but I'm only at like 100WPM, I don't even use 10 fingers to type.
Well, I still do look where I type on my phone because smartphones do just suck, but I know where the key is, I don't have to search for it.
I have had 160+ wpm, ever since I've had a keyboard. It's pretty natural for me to type that fast I never really practiced to become faster at typing ¯_(ツ)_/¯
Idrk how someone can't type faster, to me its just moving your fingers faster
Software developers don't need 100+ wpm, while thinking you reaching over 140wpm is pretty low
It's about typing at a pace you can maintain for like 16 hours, lol
I
I'm a professional ctrl c + ctrl v typer
I do think faster than I type sometimes, but it's more of a lockstep-process of "think -> type -> think -> ..."
mhm which is why I said over 140
:D
plus intellisense and language server
and add copilot into it
I use none of that crap
Sucks to be you then ig
Copilot spits incorrect nonsense like 90% of the time
Just use macro software to setup sout as a shortcut for Sytem.out.println
It's dependent per language, I mainly was saying to use it as a way to autofill what your typing
intellisense
I mean, any decent editor will like autocomplete stuff for you
I didn't say I use notepad.exe
I just say I don't use any tooling that knows the code less than me
Who ever the hell blocked . needs to get banned
IntelliSense literally errors on perfectly valid C++
Change it to fit your style of valid
I mean it literally doesn't recognise syntax that's in the standard
It just errors because it doesn't know C++ lmfao
what ide do you use?
Visual Studio
You say IntelliSense
IntelliSense is a thing in Visual Studio where it parses the code and spits out incorrect nonsense 😄
I use CLion
Soooo
¯_(ツ)_/¯
CLion seemed so useless to me
Yeah all of their products seem to specific for me to have to use so many
Trust me, I do not use Visual Studio for the looks, lol
or even because it's a good editor
I was interested in rustrover for a bit because i heard it was pretty good
I use it because it's how you maintain medium-large C++ projects on Windows
They have a new one thats ment for everything, its called Fleet
I use rustrover daily as well
Fleet is a visual studio code competitor
and clion is a visual studio competitor
I might look at it at some point idk dont really have a reason to though you know
Fleet is just like VS Code, so not really an IDE
imo vscode is much better
(also actual malware btw unless you don't value your file assocations)
having vscode server on a remote server
use linux
I prefer Sublime Text, not M$'s knock-off
ew
sublime text sucks, vscode has much better extensions
Oh does it associate like a stupid amount of file types to it by default?
Sublime Text is snappy, VS Code is not
its optional
nvim is snappier
sublime text is also paid
I don't care about extensions because ST actually works out of the box 😄
? sublime text doesn't have nearly any features compared to vscode
It's free to use
annoying popups
You can afford a licence if you're even a half-successful software dev lol
Never said you couldn't
Just said it is paid
and you said its not
it is paid
That's subjective
not really
objectivelly vscode has more features than sublime text
It's got a lot of bloat, it's very slow, and it doesn't do anything particularly well
Thats subjective
vscode barebones has almost nothing, and its opensource you can remove anything you want
and only install the things you'd like to add
Sublime Text is much more focused and thus does those things a lot better
use Nvim
its more focused
and does things a lot more better
I don't know nvim
Everything has a first
Doesn't run natively on Windows apparently
?
vim out of the box
LazyVim is a Neovim setup powered by 💤 lazy.nvim
Somehow even worse than vim
?
Can't do :q, have to do :q!
you can change that
It's in the config file you have to make your own keybindings for everything and install every feature you'd like
Well, I can appreciate vim, but it's not something I personally find is worth the time to properly learn
¯_(ツ)_/¯
you wanted focused and snappy
you don't want to use the focused and snappy solution
lazyvim is a preconfigured one if you do get into it
its not as good as making your own profile
but its smt ig
I can write my code, then I press Ctrl+B and it runs
Sublime Text gets this
Visual Studio gets this
VS Code doesn't get it
change keybinding
vscode has a general task system which can definitely build
Yeah, I looked into "tasks", it's a pretty half-assed system, imo
and then the hotkey is Ctrl+K+B or something like that
idk how a system as flexible as this can really be half assed but ok
its ctrl+shift+b by default but can be easily overridden
{
"key": "ctrl+b",
"command": "commandhere",
"args": "argshere"
}
done
Well, my only experience with VS Code is making an extension to support our language, and there was no way for an extension to add a "task"
We can only add a "command" and we have to write JS for that (cringe because language support is otherwise entirely data-driven)
that could be but i rarely work on my own extensions nor would i want extensions to touch tasks
and you can stuff those commands into tasks as well
I mean, it certainly works, but wow
I think you're a bit ignorant to other solutions, so you are stuck in the sublime is good, because that's all you're used to/know about
Bro, I literally made an extension for VS Code
(and am still actively maintaining it)
Autocompletion for FiveM Natives functions in vscode - Sainan/fivem-vscode
? that one
Having a problem with the SDK. I’ve followed the instructions on the GitHub for both Rust and C++ but get “undefined reference” errors, which makes it seem like the sdk isn’t visible to the program. I have the wrappers properly configured and SDK fully installed. Probably a newbie mistake somewhere. Can anyone offer some wisdom?
#include "wooting/wrapper/includes-cpp/wooting-analog-wrapper.h"
int main() {
int x = wooting_analog_initialise();
return 0;
}
Well, I've made more than 1, but the one I'm still actively maintaining is https://github.com/PlutoLang/Syntax-Highlighting
Point being, it's not a matter of me not having used VS Code enough
Heck, I can probably even appreciate it for some TS codebases, but I'd argue that's an issue on the maintainers for having shitty ESlint rules with so many false-positives that it's a pain to work on that codebase without essentially an IDE.
Isn’t that for sublime?
This is for sublime, vs code, and visual studio. Language support is mostly standardised on the TextMate formats, which can luckily be shared, but there is some stuff specific for each editor, too.
VAC source code leaked 
Funny thing is that even at this ~1khz poll rate I can see some false-positives
This would be a good way to check if someone is legit, because this happens constantly with legit input, less often with rappy snappy, and not at all with last input priority/snap tap.
I doubt they would just poll keyboard state like that since keyboard and mouse input is event-based
I mean, games are tick based, so they will have something like this already in place, just at a slower poll rate (tick rate)
Yes but the inputs come in as events so no need to run something at a high tick rate or whatever, just check on keydown whether the other key is also down
On the other hand, with how clueless the janitor working on CS2 is, who knows
Well, alternatively you could check when the input event comes in, if the other key is still down
And maybe check when the last event from that other key came in
Same idea, just different implementation for an event-based input system
In my opinion it's cool to have such features... but not baked into the firmware. And an input API that is capable enough to flag such behavior as legit or cheat
Can anyone help with this?
You need to link against the library
The .lib file should be with the download
I'm not sure if that was for the DLL or static lib tho
Just checked, it's for the static lib
Here, this works:
#include <cstdio>
extern "C"
{
#include "wooting-analog-wrapper.h"
}
#pragma comment(lib, "wooting_analog_wrapper.lib") // we are linking in a Rust static library
#pragma comment(lib, "Userenv.lib") // so there's
#pragma comment(lib, "ntdll.lib") // just a few
#pragma comment(lib, "Bcrypt.lib") // system libraries
#pragma comment(lib, "Ws2_32.lib") // that we'll need
#pragma comment(lib, "Advapi32.lib") // as well :)
int main()
{
printf("wooting_analog_initialise returned %d\n", wooting_analog_initialise());
return 0;
}
Ah yeah, this fun stuff
Freebie:
// Prevent Wooting Analog SDK writing to our console.
SetEnvironmentVariableA("RUST_LOG", "off");
I'm confused why cbindgen doesn't produce extern "C" by itself tho
Should be very easy with #ifdef __cplusplus or so
Even Lua does it and Lua targets C89
Apparently it needs a cpp_compat flag set to true in some TOML file that doesn't exist in the SDK project and the default is false
Imagine changing the meanig of a key depending on the press speed
No, please, no
I can imagine a difference between half-pressed and full pressed... but even that would require specialised switches (similar to the adjustable triggers on the DS5), otherwise it would be very difficult to input precisely
this whole speed based events (different keys or such) and setting os volume by press depth come up way too often
and the os volume one is highly impracticle
I don't think I ever saw this idea
but hey, you have analogue keys, might as well use them for slider-ish input 😛
omfg, I forgot I enabled rapid trigger on some of my keys
I thought the switches were broken lmfao
Do they? Also I'm not interested in Volume control anymore because I have a dedicated slider for that anyway.
oh yeah in the past people have asked this as well
they made their own code
and quickly abandoned it after
im not even sure if we still have the channels archived where those repos were posted
Hahaha, the volume control part has little impact anyway
i mean both the velocity actions and volume stuff
I did colour input on a DS4 by using the 2 triggers for hue & value input, and it's about as usable as you'd expect
Regarding the velocity I'm not really sure how to handle this yet
on_tick:
velocity = pos - prev_pos
or just measure the time between first non-0 value reported and "full" value reported
that should be a pretty consistent way to determine if a key is going down fast or slow
How so?
How precise do you reach a certain depth and not more?
With stock keys, not at all probably
This worked in VS 2022, thanks a bunch. Makes me wonder why the system libraries aren’t mentioned in the readme🤔
I mean, you'll notice from the linker errors
It depends somewhat on your development setup, so which system libraries are already included by default
and the Wooting guys didn't even realise that you need a .lib for both the static library and the DLL, so... don't expect an insane amount of foresight on that front 😄
advapi32.lib is unnecessary since it's linked in per default
I should mention when I collected those headers I was not using VS and instead basically invoking clang myself, and I only pass -luser32 -lgdi32 by default
Nowadays I do prefer #pragma comment(lib, ...) over the linker flag tho since it's more organised
Yeah, seems like VS includes these here by default
How can I change Keyboard profile without starting the software or website?
Press the A1, A2, A3, or mode keys. Check your keyboard mapping for what they are
hey does anyone know of a programmatic way of changing key(code) mapping? some code examples or reference will be appreciated. i cannot find any "ioctl" or "write" to devices in wooting's github repos
so i want to assign a key to a special command (i.e. sending some web requests) not using macros. my plan is to assign the key to some reserved keycode and intercept on the hid level
You will have to reverse-engineer the Wootility
I've already done some work on this: https://gist.github.com/Sainan/0d285907961a22c8cafc106aa36513e5
So I can already tell you you won't be able to assign custom keycodes
but you can use niche ones like F13-F15
thanks. will do
but how do they handle "SWITCH_TO_DIGITAL_PROFILE" things?
i don't think it's a standard keycode?
😄will know soon
That's a keycode that doesn't have to be sent to the OS, it can be handled directly in the firmware
yeah i mean no special driver is installed, so how?
It will depend also on your firmware version I think. Be careful, you might need to factory reset the keyboard when messing with this raw stuff.
The firmware is the code that runs directly on the keyboard
it also sends something to the os while, say, toggle between analog and digital
I don't think it does
It might report that keycode to the analogue interface, but definitely not on the standard keyboard page
this is something i got when pressed D1
Yeah, that looks like an analogue report
i see
You can use the analogue SDK to read those reports, which would include these custom keys
the sdk does not map all keys so i guess i'll need to figure out how to assign a key to send a special report
Wouldn't it be easier to just use bog standard keys and then exclusively open the device? Although this might be a neat trick that's only easy to do on Linux
Wdym? The SDK simply gives you back whatever the device sends, so this includes these custom keys.
simply want to doing it in the hard way
What exactly are you trying to accomplish anyway?
Because I can already tell you that you will not get custom keycodes
Given that you mentioned the UwU, I can only recommend using F13, F14 & F15
These are very, very unlikely to interfere with anything
And you can read them to cleanly tell what you're pressing on the UwU
e.g. keycode 4 is mapped to scancode 0x001e which both represents A, but like 0xb6 which is "switch next song" is not mapped here
so what i'm trying to do is to find out how to let my key send [4, 6]
or any uint16
Guess what, you can simply not use this map?
By default, it reports the raw HID codes that the keyboard reports
Without any remapping
i know
You can't let it send just any u16, it must be one of the keys coded into the firmware
have you tried?
I'm gonna murder you Feel free to try it, and let me know what you find. 🙂
of course. thanks for the help
To whom it may concern: I made a website that can show analogue input from Wooting keyboards & co using WebHID: https://analogsense.org/JavaScript-SDK/demo
Nice!
I noticed that the SDK cuts values off at 10%. Is there a way to disable this and get all raw values?
Also the keys seem to be in the wrong place, scancode 0x10 (q) is at m, etc
Could you share the code you're using to interface with it?
It's just
while (true) {
float q = wooting_analog_read_analog(0x10);
std::cout << "Q: " << q;
std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
Changing polling rate doesn't seem to affect the values
How do you init it?
Although, just double-checkig, 0x10 is indeed the HID scancode for 'm'
So, not sure what exactly made you think that it would be 'q'
yeah... I'm not sure either, lol.
Oh hey, I recognise some of that code, haha
I mean, if you want the actual source, see page 53 of https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf
Thanks, that's useful
theres other easily digestible sources as well but they immediately show you that keyboards work in some weird ways sometimes
https://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html
https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html
This is not correct for HID
This seems to be for PS/2
Which is an entirely unrelated/different standard
Tho one that seemingly Gage here also initially attempted to use
crap they had usb hid codes in the table on page 10 at some point iirc
it was a nice comparison between ps2 and usb
I mean, you can just google "HID scancode" and find some decent-ish resources
but I figure just for a quick idea of e.g. "which button is Q", the actual standard works fine 😄
but thats the thing they are all just ok not super good
if i just want a list of keyboard scancodes in the usb spec id just use https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2
Of course, this is ignoring the fact that Wooting adds its own scancodes (at >0xFF) 😄

im not entirely sure what digital 1 is
No, this is my own collection
banger
- `0x3B5` = Next Track
- `0x3B6` = Previous Track
- `0x3B7` = Stop Media
- `0x3CD` = Play/Pause
- `0x403` = Profile 1
- `0x404` = Profile 2
- `0x405` = Profile 3
- `0x408` = Profile Switch
- `0x409` = Function Key (Fn)
ill check next week what the new ones are and will update the gist accordingly (replaced the stuff up to)
the media keys should be standard
not from us
I don't think it is lol
well if they werent in the usb spec then the os wouldnt respond to them
Yeah, I suppose, but I just don't see it in the spec
i can inquire about that as well next week
wonder if its to do with usage pages
possibly
Yeah, I guess it's 0xB5 sent on usage page 0x0C
whereas usage page 0x07 would be for "normal" keys
I tried studying QMK a bit but I did not get much of an understanding of the "talking to the PC" part lol
yeah our hid descriptors are also a mess and cause issues with some KVMs and BIOS/UEFIs
theres a fix in testing for this but its pretty complicated to get right
I thought that [the KVM issue] was just your keyboards drawing too much power 
no some kvms have it work but only once the OS is booted
theres some quirks in USB due to the 6KRO boot interface
this has its own set of rules so BIOS didnt have to have a full USB HID implementation
lol, just mindlessly scrolling this spec
yeah
the spec has some odd stuff
im glad we have someone dedicated to fixing usb descriptors for example and researching/fixing odd quircks in the firmware
you what 
we have a person just for these kind of things
they also made the XLAT firmware compatible with keyboards not just mice
ah, nice
I am somewhat hyped for the Finalmouse Centerpiece, but I guess "coming soon" is like dad returning with the milk at this point
or Wooting releasing a TKL 
i mean 80he is tkl

so is 60%
I mean ngl I can appreciate designs like the DrunkDeer A75
but it's also really hard to get used to typing on this if you're used to a "normal" keyboard
id say the worse thing is keycap compatibility
How so?
gl finding those homecluster keys in the row heights they use
uhh, I mean, they look like normal keys to me, idk
the most "modding" I will do on my keyboard is compile QMK from source and flash it 😄
most keycap sets use profiles keys so they arent all exactly the same
the fudge happened
man had a key-stroke
you can see some profiles are uniform but most are "sculpted" so you can just use R2 keys on R3
itll look and feel weird
you say "uniform" even tho the space is clearly different in shape 
yeah uniform refers to anything RX not space row
but yeah I see what you mean
just saying I can appreciate the design, not saying it's practical 🙂
it might be more practical if they would put Lekker Switches in it 😛
well then imma dip and go do irl things
have fun
@quiet root , do you happen to know why the values seem to be rounded down like this while using the sdk?
This is the number you're seeing
With my Two HE, the lowest it will report raw is 5
might be a calibration thing
also depends on the key
I figure they calibrate it at the factory. And they don't give you any option to do it yourself.
Which is fair enough because no one wants to do that
Looking some more into it, it's only half-right. Because "Open Browser" would be 0x223 on usage page 0x0C, but it's reported as 0x323 on the analogue interface.
So, it's more like 0x300 | (scancode % 0x100) for usage page 0x0C
or & 0xff instead of % 0x100 😛

]
[
I found out that the wooting 80 HE still send US key Code I use the kanata project for keymapping and I use the Interception version which means it intercepts the keys before windows can even translate to german keystrokes just want to put the text here when other non US developer get the same problem
wha
keyboards dont send different keycodes because they are iso or ansi or a specific iso language
the reason windows/linux whatever translates is cause they all send the exact same data
yes this true what I found it out now but some project tell you need a completly different configuration when you use ISO layout https://github.com/jtroo/kanata/blob/main/docs/locales.adoc https://github.com/jtroo/kanata/blob/main/docs/config.adoc#deflocalkeys and for people that develop but got into keyboard development dont know that from the beginning thats why I send this message
@quick bough FYI: analogsense does not work in Cyberpunk, if you have Cyber Engine Tweaks installed (which is basically a cornerstone of cp modding). Dunno if you want to do something about it, just thought I'll let you know
I have one usecase for wooting that's giga niche but I have no clue if anyone made something like this or not
so basically, yk how pens (on graphic tablets) can have pressure that affects the brush? (Higher pressure = Bigger dot just like with a real brush)
I really want to convert HE switches' depth-meter into pen-pressure, so the art program reads my key input as the pressure
mostly want it so I can draw with my mouse with my right hand; whilst using my left hand to control the pressure
Hey everyone. Anyone happen to know what kind of firmware the Wooting keyboards use?
Do you have any more details about this? I assume it's a pattern scan failure somewhere?
custom self developed one.
its not a modified qmk or such
and its closed source (just in case the next question is about source code availability)
The 80HE is confusing me so much
what about it
The default layout for JIS has "Int 1" and "Int 3"?
and there's no analogue SDK or RGB SDK update available for it yet afaict
Also, the profile indicator is divded into 5 sections?
but it only has 4 on-board profiles?!
have you heard of blending?
you can take 2 colours
get a new colour
by interpolating

dedicated IME keys is cool af tho
ok so we place the middle on the 1.25th led and then blend left and right sound good
then in 2.5 increments
Sounds good
but yeah the key mapping is really confusing because I have a "Kana" keycap but no "Kana" option in Wootility, and a few others like this
so #1285255683511681176 with images
just make a ticket on your jira 
haha, the key press indicator does use blending to display more than 10 steps
firmware bug: deleting light indicator effect on profile 1 does not black out the light
same thread
this channel is for people making stuff for our keyboards not really reporting bugs of wootility or the firmware
okay, I'm reporting the bugs there for someone else to read it, I guess 🙂
yes the people actually fixing those 2 things
it seems both int 1 and int 3 are reported as 135 / 0x87, that's probably also not intended like that?
Int 3 should be 137 from what I can gather from the USB standard, guess I'm also reporting that
tho unsure if my Windows configuration is incorrect or if these keys are not reported to the OS normally at all
my apologies for making horrible assumptions about your workflow... make a ticket on your notion
Wootverlay is not working on 80HE
no registration
can we get an update for that?
for personal requests i would also like 1ms update and for "instant transitions" to not be off by default (every time i open OBS i have to interact with browser source, go into the menu and turn it on)
the sdks arent updated as we wanna finish up firmware and wootility first
If you don't mind replacing the wooting-analog-plugin: https://github.com/AnalogSense/universal-analog-plugin/releases/download/0.2.3/universal-analog-plugin.with-wooting-device-support.dll
Honestly I don't get why they didn't just add their VID and called it a day
Product name can be gathered via HID
That's what I do anyway ¯_(ツ)_/¯
wait... I'm pretty sure this is already how that works
Wowie, my PR being merged? On the same day, no less?! 

rko out of nowhere
Need to find some time to properly go through the rest, but seen this one pop-up and it was easy enough to get it sorted
Now you just need to make a new analogue SDK release and you can call it a day for the 80HE 😛
Still a lot of stuff to be added to the analog monitor! Can't call it a day yet
What?
Additional features
The only noteworthy thing would be if it reported positions instead of scancodes but that would be firmware-side
analog sdk isnt analog monitor
<--- dumb ignore
uneducated in a topic doesnt make one dumb
<--- uneducated ignore
Actually, I just didnt read his response fully and assumed lol
Mainly because I saw Simon respond and I blew up his DM and hadn't heard back so I got eager 😁

tbf analogue SDK is extremely niche, no one really uses it afaict
well, I guess Woot-verlay exists
but, like, games or other interactive media... not so much
Sadly, it is surely a great addition
I mean, it's a bit of a balance to make sure the input is not too drastically different I guess
so, you probably don't want just a linear curve
I've been working on getting analogue support for keyboards from Razer (Huntsman series), DrunkDeer, and some other brands
but I think the hype for it has kinda passed and it's unsure if it's even an issue of lack of hardware access for game developers or more just them not believing it's sufficiently worth it
Once more keyboard manufacturer adopt to HE Keyboards, it will become more important i think. I personally think that this is slowly starting as i see more and more named gaming product manufacturer producing HE keyboards.
Well, from where I am standing, I'm not seeing a huge amount of interest in HE specifically, certainly not much interest in analogue input...
SOCD was the latest hype train, and no one even cared about the analogue aspect of it
Obviously, in terms of implementation, it's much more solid when you do have analogue keys, but that doesn't change how people perceive these things
What I mean with this is that I see many analogue keyboards that simply do not have the firmware provide the analogue input in any way usable by software (specifically the ones from Corsair, Steelseries, and Akko)
Acutall so much untapped potential
Keychron is an interesting case because their firmware is open-source so I managed to compile it myself with a very nice analogue interface, but imagine trying to tell someone who wants to play your game to first flash custom firmware on their keyboard 
I've collated more or less all of my work in this area on https://analogsense.org/ if you're interested
Actually, i also see potential for Wootomation to use something similar to DKS.
At this point I do just have like 15 analogue keyboards lying around here 
The 80HE i've ordered is the first one to be honest
Damn
tbh it does look like a solid keyboard with the right key mappings
so I guess I see why they might not want to make a TKL
but I personally still need my numpad for the dedicated menuing keys 😛
What i'm happy about is that most of there open source stuff is written in Rust as i fell in love with the language. Originally i was coding C# for a while.
And i tend to code a lot of stuff for my devices, ...
So being able to have a SDK is amazing.
I code most of my stuff in C++ 
I needed to use it for my Operating System Module at the university and i've used C for the FlipperZero ^^ C++ is not one of my favorites, and python is on the bottom list just for its syntax xD
Most people don't know about analog keyboards still.
Yeah, I think that's kinda related to what I was saying with SOCD
The top post on PCMR today (probably the largest casual PC gamer subreddit) was people raging at this
because obviously this doesn't exist and the developer is an idiot
and people talking about hall effect analog boards etc were not even in the top 3 comments
and they are yet still a level closer to us than the general PC user crowd
it will take a lot to really raise awareness
i asked some friends about putting analog support in their indie game - we need to show off the cool stuff that you can do. A guy modded KSP to use analog input alongside digital commands seamlessly without much work.
Honestly I personally don't think it's very easy to use. Might just be skill issue but every time I tried to get used to analog movement I found it very difficult
Well we were used to either press it or not for a lot of years, getting used to fine grained input with keyboards will take a while i guess.
Probably muscle memory related
Well, for me the 2nd comment talks about it, and it seems people are generally enthusiastic about it?
Tho the real crime is that no one mentions the analogue SDK that game developers could use to add it to their own games
but that's like asking an average person to know the Windows API
This is actually a really good feature and I think games would have to implement something like this into their games because a linear curve is not exactly desirable
(funny thing to note in this regard is that the default state of this curve is seemingly not a preset)
I mean, most games with first/third person character movement and controller input have the ability to adjust the walkspeed based on how far you go with the joystick.
That's the simplest case where using such sdk would be great.
The hardest thing for me is unlearning the compensatory mechanisms that i trained myself to do for digital controls. E.g. to apply a 60% input, approximately, i will tap the key on and off and on and off at a rapid rate, trying to average around 60%. Of course it's much easier and smoother with analog, better flight results, but i have to apply conscious effort to not do the stupid digital thing.
Yes, that is me 😛
Hey i'm using a wooting 80HE and love to code. Is it possible for me to add some form of functionality regarding "SOCD"? what i want to implement is some sort of offset. meaning, if [KeyA] is pressed [KeyB] should deactivate, but after a certain amount of ms setup via the offset. further more maybe even add some variability to the offset.
I saw some possibilities of creating plugins (for 60HE), but maybe i am mistaken.
we have the analog sdk and rgb sdk but what you suggested would basically be just any old macro via AHK or such
Yeah, there's the analogue SDK, and with the Windows API, you can submit your own key events. It's of course a bit hacky to do it in user-mode like that, but it can work. I've already done user-mode SOCD resolution at https://github.com/Sainan/analogue-socd-resolution. This project is now unmaintained, but it may help you get started.
@quick bough @quiet root
thank you! I gonna take a look at this
I'll take it as a no 😔
I doubt anyone did
but I guess you could with some reverse-engineering 
or if there's an open-source program...
also for some reason I thought Wooting were gonna release a mouse next and was gonna say you should wait for that... 
idk if HE buttons on a mouse would be that good 
<@&182822816075218944> Can i Have help traking my order
or @quiet root
<@&490097707487330305>
Please, don't ping EVERYONE
Also wrong channel
Also you can track your parcel here https://hub.wooting.io/my/orders
No, I haven't got time to check it any deeper, I just managed to isolate the culprit. I'll get back to you if I learn anything new.
Oh, it doesn't show that in release builds, does it
Welp
Welp2
I'm sure I'll get to it at some point in the future
Just think in terms of Rust developer speed, not C++ developer speed, haha
uhhh
The analog thing must be awesome with that mod that adds flying cars
Double cool because that mode was made by the same guy that created qmk iirc
Yeah, I'm actually unsure now. At first my ASI mod was being loaded but it crashed, and now it's just not being loaded with CET.
I guess just do what I did and use a DLL injector like Xenos to get it to swallow the damn mod. 😄
The game uses razers chroma animation file format internally for the razer chroma effects
Without CET it gets loaded, so idk
Technically if you manually change them, convert to base 64 and embed them into the database thing with wolvenkit you can change them :D
Yeah idk the modding scene is a bit of a mess imo, with the whole cet or redkit or whatever other modding tools
Oh wait, there's a version.dll here
No shit they use the same ASI loader
That might explain it
They use the same ASI loader but with a different config
Yeah, okay, so, @sly crown the fix is to simply put the AnalogSense.asi into the "plugins" folder created by CET and discarding the dinput8.dll (CET uses version.dll)
I guess I could use the same config as them, but that's not typically how ASI mods are used in GTA V 
hi (not a software engineer)
is there a programmatic way to trigger change of keyboard profile? ie without having to click things in wootility; something CLI triggered so can be fired via {some automation, out of scope}
https://github.com/ShayBox/Wooting-Profile-Switcher is very close, if i was a rust dev i'm sure i could use that code as inspo to make something much dumber (take CLI input, orchestrate wooting as output).. alas i am not so gifted
idk if C++ is more your flavour, but this would be the only thing needed for that:
static void sendProfileSwitchToHardware(uint8_t profile)
{
for (auto& _kbd : kbRgb::getAll(false))
{
if (_kbd->isWooting())
{
auto kbd = _kbd->asWooting();
if (!kbd->isUwu())
{
std::cout << "Sending report to " << kbd->name << "...";
{
Buffer buf(8);
buf.push_back(/* 0 */ 0); // HID report index
buf.push_back(/* 1 */ 0xD0); // Magic word
buf.push_back(/* 2 */ 0xDA); // Magic word
buf.push_back(/* 3 */ (uint8_t)WootingCommand::ActivateProfile);
buf.push_back(/* 4 */ profile);
buf.push_back(/* 5 */ 0);
buf.push_back(/* 6 */ 0);
buf.push_back(/* 7 */ 0);
kbd->hid.sendFeatureReport(std::move(buf));
}
SOUP_UNUSED(kbd->hid.receiveReport());
std::cout << " Success.\n";
}
}
}
}
Oops, just realised one thing missing here: ActivateProfile = 23
Also feel free to ignore the conditions, you basically only need to find a HID with vendor ID 0x31E3 and usage page 0x1337
An unexpected error occured, please let us know about this through discord or email
TypeError: Cannot read properties of undefined (reading '5')
at https://v5.wootility.io/assets/index-f86de06b.js:563:14114
at Array.map (<anonymous>)
at https://v5.wootility.io/assets/index-f86de06b.js:563:14104
at useSelectorWithStoreAndSubscription (https://v5.wootility.io/assets/index-f86de06b.js:80:13138)
at https://v5.wootility.io/assets/index-f86de06b.js:84:688
at useWootSelector (https://v5.wootility.io/assets/index-f86de06b.js:84:1391)
at useRemapActiveKey (https://v5.wootility.io/assets/index-f86de06b.js:729:18999)
at RemapKeyboardKey (https://v5.wootility.io/assets/index-f86de06b.js:740:30000)
at Nh (https://v5.wootility.io/assets/index-f86de06b.js:38:18930)
at Vk (https://v5.wootility.io/assets/index-f86de06b.js:40:48722)
at Uk (https://v5.wootility.io/assets/index-f86de06b.js:40:43974)
at Tk (https://v5.wootility.io/assets/index-f86de06b.js:40:43897)
at Ik (https://v5.wootility.io/assets/index-f86de06b.js:40:43738)
at Nk (https://v5.wootility.io/assets/index-f86de06b.js:40:39691)
at Ek (https://v5.wootility.io/assets/index-f86de06b.js:40:40591)
at jg (https://v5.wootility.io/assets/index-f86de06b.js:38:3534)
at https://v5.wootility.io/assets/index-f86de06b.js:40:37832
Reload the Wootility
The KSP mod does
it combines analog and digital KB inputs depending on context
Well makes sense that way. Otherwise I would need to handle the pressure point manually
you wanna be in #1285255683511681176
that's cool, I made my own mods, but it's not natively in games
I really believe for analog keyboard input to lift off, it needs an input model, where this comes more or less for free. Like: You want overhead car control? Here take this example, it will map nicely to keyboard, analog keyboards, gamepads, steering wheels and can be mapped to other devices you don't even know
Maybe I should have to buy myself a steering wheel and pedals, parse the HID input descriptors to generalise, and then make an input library that nobody will use. 😄
Yeah, well game engines already do tend to treat all inputs as analog so we'd just need a standard way of having the OS provide analog key inputs.. or a library everyone uses
Wait, this product category confuses me. There's some around 50~100 euros, and then there's logitech's for 200+ euros.
Force Feedback and stuff
Like the weird triggers on the DS5?
Well... you need the Steering Wheel itself, you need force feedback and this can go quite hard, then you have pedals, the shifter
Also probably small production batches
yeah but I mean you can get all that for 50 euros
meanwhile logitech sells it for 200-300 euros
Not sure about that. You probably pay extra for the PS Logo and for it being from Logitech ^^
Maybe the force feedback motor is expensive
twin engine force feedback
I considered buying one too, but I'm undecisive considering the price point and the fact that there are many possible configurations
Steering wheels are effectively in the Joystick category, so the descriptors should be the same https://usb.org/sites/default/files/hut1_5.pdf#page61
Every time I read this, I'm amazed what in theory is included in the standard
Imagine the chassis of your PC as an USB device
do we have any approx timeline for 80HE support in the SDK?
I already PR'd it for the analogue SDK, just a matter of when it gets released I guess
but yeah I guess now they're busy rewriting they Wootility 🙂
I hate this company so much sometimes, it just makes me scream internally how they can't stop shooting themselves in the foot because they keep making the wrong decisions and focus on the wrong things
Sure, never said it was anything but. 😛
classic sainan moment
What are you doing now at Wooting btw?
If I had to assign you, I'd say you were best fit to work on the upcoming desktop app. 😛
i wrote the two new rgb effects we added with wootility v5 for example :p
they let you near the secret sauce firmware, damn 
Although yeah the noise effect definitely reminds of artemis
yeah that's basically where it's from
a faster (and sadly crappier) version that runs okay ish on the mcu
How is the noise generated? LCG?
it's simplex noise if you're curious
I'm guessing that's the algorithm you use to map a "1-dimensional" rand function to the 2-dimensional plane of the keyboard, but not actually what I asked
i generate 3d noise and map it to 2d for the keyboard actually
i'm sure you're cooking up a much beter implementation using the rgb sdk already
haha, no, my idea of a much better implementation is just a static colour, no distraction in that 😛
Plus, idk if they ever fixed that bug where the firmware would just ignore RGB commands until the keyboard is replugged
kinda stopped bothering with it then, not very cash money when I have to replug my keyboard while playing Warframe or something
Sainan: "[...] focus on the wrong things"
diogotr7: "[...] two new rgb effects [...]"
lol
Well, I'd be happy if my subordinates just delivered anything of value to the product, but yeah, certainly not what I would have them focus on.
Anyone know where I can get some cool keycaps
Well, you have come to the right place, this is the #cool_keycaps_marketplace channel
Oh wait, it's not
Have you tried wooting.io? I hear they sell keyboards, even some accessories for those keyboards 😛
Honestly I kinda like the wave keycaps, but once again they're discriminating against us 100%ers
yup here
do note that keycaps from these vendors tends to be pricy
hmm, the keyboard keyboard vendor list, so you can find a keyboard for your keyboard?
otherwise just find a decent doubleshot pbt one from aliexpress

it list what each vendor sells
like so
are all keycaps compatible with all switches?
nah but 99% are
just check for mx compatible keycaps
and mx stems switches
which is the plus shape thing
hey gamers, is there a way to write modified rgb to a profile with the rgb sdk? i managed to write one profile's rgb onto another, but haven't found how to save rgb that has been set via the sdk
like, this code here will set my D key to green, but once the program closes it goes back to the color it was before
also, what's the difference between commands and reports? (from wootility verbose logs)
i'd think reports are data from kb -> pc but that's not what it seems like in the javascript
What is your goal with this?
买了wooting还在制作中,如何申请退款?
请通过 https://wooting.io/support 联系我们的客服。
Pick the category and issue you need help with, and we'll guide you through the process.
If you want to save RGB set via the SDK, you will likely have to replace the SDK DLL to buffer the data currently being shown as otherwise there's no way to query the firmware for it.
Wooting report -> HID input/output report. Wooting command -> HID feature report.
making a tool to set the base rgb to a gradient. i'd rather not keep the program open 24/7.
if there's a way to set and save rgb with javascript on the wootility page, that'd be fine too.
will there be a 8k hz refresh of the 60he? If there are plans on it, I think it would be really cool to update the pcb so it can support gummy oring mount
There is nothing wrong with keeping a process running in background... as long as you don't use a resource hog like Electron or .Net MAUI
This minified stuff reads like crap
Why is there an extra command to get the serial number?
urg, my table is like a mm too thiccc for the G29
It seems it's not properly supported in Motorfest nor FH5, so I tried installing G Hub and it seemingly doesn't stop loading 
sounds like GHUB alright
it finally loaded after 10 years
it was very important to ask me for my discord, my email, and my firstborn
seems that opening G Hub made it magically work in Motorfest
I absolutely hate this control scheme
got it working c:
huge shoutout to friend from another server. they did 90% of the work and had a really smart solution to hijack the javascript functions.
will give the script a nicer ux and post soon
I thought you already had it working by issuing the save command
only thing i could get save command through sdk to do was overwrite one profile's rgb with the active profile's unmodified rgb
Oh hey, I didn't know they had a talk about the Wooting Analog SDK
How hard would it be to integrate the analog inputs to something like FL studio
Like the further I press down a key, the higher a modulation slider for a synth goes
(Is this the right channel for this question?)
You might be looking for wooting-analog-midi
I see
https://github.com/Provoxin/WootilityCustomRGB
probably doesn't work on wootility v4, haven't tested
couple of examples
you could also write a tool that fetches a profile from the share code, modifies the rgb and then reuploads it.
I'm a bit disappointed that there's seemingly no extension to provide WebHID on Firefox
I'm just switching away from Chrome now because it seems they're serious about killing a vast majority of their extensions ecosystem out of sheer stupidity
can i ask you not to use the r word
Suggest a replacement
I guess 'stupidity' works?
but I think I missed a memo, when did the r word become bad?
thats not how this works
also its been used as a derogatory slang for ages at this point
Well, yeah, I'm clearly not praising Google in my message
which is fine but no need to use that specific word
if you mean a word commonly replaced with fudge and the one starting with shi then yes
while i personally dislike them in my own vocabulary they arent anything bad
Okay, so it's not a matter of this server trying to be PG
R*** is now a bad word?
I guess social sentiment around the r word has just shifted to make it closer to the n word?
R word as in the slang for handicap
^ put this message in google to find the wikipedia article dedicated to the word, lol
Ah, the longer r word
Now I'm confused as to what r word you meant
The 4 letter r word
Is it a crime?
You know... what you are regularly complaining about
No, I don't follow
i assume rust
Nooo

I agree, we should ban people like Mr.Ender for using that R word in that way 
I'm not native english speaking, so that was the first word beginning with r that came to my mind 😄
Nah it's okay, one of these days you will try C++ and never look back
Well, I was just thinking of "bad" words since you censored it, so I only thought of ||rape and retard|| (please no ban)
Im still waiting for C+++ before trying anything
The latter has 5 letters ^^
||this is a joke||
I'm waiting for C++ ||code to compile||
You think thats bad try compiling rust

I doubt. C++ really has a legacy issue that you need to sort out first before you can have fun
Eh, I think the legacy is not that bad. Just don't rawdog new or malloc (use RAII, kids!) and you're good
Well... seriously. How that was the joke about C++. And now... Angular. Takes much longer then C++ ever did.
In the meantime I press F7 for my C++ projects and wait a few seconds
I press Ctrl+B 
but then you get bytecode, no?
A lot easier to emit bytecode than (optimised) x86 assembly lol
When I made a toy compiler, I basically just turned x86 into a stack machine, which is pretty meh for performance, but still better than a bytecode-parsing VM, I guess
But start your service... send a request thumbweed thumbweed thumbweed response
And AOT compilation in .Net is not only slow, it is incredibly slow
Also results in me being able to optimise the code by just doing a string replace on the bytecode 
Never waited that long for C++... except maybe for Firefox to compile
Really I should compare everything to a firefox build
How can a simple application take as long to compile as a full fledged browser
Which .NET version are you using btw?
I'm still firmly on 4.5 because everything after that just seems like shit. It's not even pre-installed on Windows anymore. 
Well AOT was... I guess .Net 5/6
Currently on .Net 8 but AOT compilation doesn't work anymore
I guess you like your executables to be big 😄
With AOT compilation that would actually not be too bad, since it can trim dead code. At least in theory
Well, I have no idea about .NET AOT compilation tbh
Ahead Of Time compilation like C++
I just know that after .NET 4.5 it's turned to shit and the executable sizes have balooned
ik
You get a native binary
Well, that's some good progress, I suppose 
Whoo, a basic thing is working
Well, the Wootility is not happy no matter what I do
I guess what should happen when you filter by usage or usagePage is that you get a HIDDevice with only the matching collection? At least that's what I gather from reading this horrible obfuscated JS.
wooting give sourcemap pls
I actually hate this API. It's so simple yet designed in such a counter-intuitive way. It just does not map cleanly to the underlying OS primitives.
Or maybe I'm overcomplicating it. 
Well, that's some progress
are you using js overrides to get logs
This is Firefox
ye firefox has overrides
Do you know what Firefox doesn't have?
other than webhid, no
Exactly 🙂
how are you getting console logs into the wootility script tho
It just logs stuff by itself?
o, thought those looked different than the ones i've seen. ig not
ic
Okay, it works a bit more now. Can't change RGB, tho 😦
Uhh idk if this is a Firefox bug or a Wootility bug lol
A!
Well, it works decently-ish, but it seems RGB changes are still not commited correctly
Gonna try the firmware update feature now so I can RMA this board 
It looks like the data being sent to the keyboard here is correct?
oh, wait, I'm on the fancy new firmware with bigger report sizes, but wootility doesn't seem to realise this

Okay, it RGBs now!
Still kinda afraid to do a firmware update tho haha
Wait, but how is it that Wootility V5 is able to access the analogue data without ever asking for it?
Oh, I guess it's that while requestDevice respects the filter strictly, when you then do getDevices it shows everything for the same physical device without respect to usage and usagePage.
These are some weird semantics ngl
Insane security mechanism
but I'm also gonna block all FIDO keys and shit and that should be fine 
Actuation point thingy is working 
Okay, I've published my initial version at https://github.com/Sainan/WebHID-for-Firefox
Still some TODOs there, but it works alright
is it a plugin with a server component?
that's what it looks like, pretty cool
Yeah, there's a server that you need to run seperately
Not gonna get much better in that regard unless Mozilla add native support for WebHID in some capacity
Whoo, extension published on AMO
I'm still a bit unsure if this is a good idea
Worst case scenario, I can use the "troubleshooting" thing in Chrome, right?
I'm just unsure if a borked firmware update might turn it into a brickboard

Turns out, I can!
Scary, tho
Trying to set my profiles up again, it seems it sometimes takes too long to respond on Firefox?
You cannot use Wootility web on Firefox, as it's not possible to communicate to USB devices
it is known, Sainan hacked it together with a helper tool that runs alongside firefox. very cool!
I'm switching to Firefox so I had to add WebHID support myself lol
you're beautiful i love you
Hello I need help trying to find my order I made yesterday
erm this is not the right channel
?
Pick the category and issue you need help with, and we'll guide you through the process.
How long does it take for them to reply back
sent you some ideas via dm. I’m not official support though so take with a grain of salt. just suggesting checking your payment method’s histories if available


Damn, this goes hard!!
Welp, guess I'm trying Woot-verlay
don't know how to get that thingy to render
Welp, guess I should've figured that Wine wasn't gonna discover the .so
Dire situation for analogue input on Linux
I feel like something's missing here 
Welp, I guess Microsoft Java is less cross-platform than I had foolishly believed
So, given that wooting-analog-midi doesn't render or play sound on Linux, and Woot-verlay doesn't run, how am I to test if an SDK plugin works on Linux?
artemis maybe? i havent tested the analog sdk on linux so it's possible that it's broken
the rgb sdk should work
i feel like artemis is kind of overkill for this, is there nothing else that targets the analog sdk?
Also I only just realised this guy implemented WebSocket from scratch, sheesh
sheesh
Nice

that one should come preinstalled
Dunno, I just downloaded the analog midi appimage and it just works on my system x d
The only Wooting thing I see is this here in the install wizard
and Artemis just crashed when I toggled "enable feature"

Appimage would be MacOS, right?
No
No you just run it like any other binary
do I need to uninstall the .deb first?
No

Clearly not
basically exe files but linux
and one of the reasons i really dislike linux for desktop (well not the appimages themselves, just the fact that they need to exist)
yeah
Can't you just statically link an executable
tell that to distro maintainers
You can, indeed this is what all Rust things do and is why they are so chonky
have you tried googling the error message
What error message
That was because I disconnected the device
I had to give it back to Windows to write the message 
Also "hidapi error: Success" 👌
lmao
A classic case of either forgetting to stash errno, or maybe just assuming a 0 read is a failure when it might not be considered so by the API
I think for HID a 0 read is a failure/disconnection
Dunno, would have to look at the code to see why it be like that

When we getting ABI v2 so I don't have to link against a Rust blob
Seems like my plugin works 😄
tho I still don't hear any sounds from it
might just be that Linux doesn't have a synthesiser built-in like Windows
Linux systems generally don't have a default midi synth just waiting, so you'll have to run one yourself
This is why I paid 200 EUR for my Windows 10 Pro licence 
Welp, at least the linking is rather simple on Linux
Might still have to look into HID report ids stuff for Razer keyboards
Oh right, I just remembered that Synapse doesn't exist on Linux
Openrazer is the closest thing on linux https://openrazer.github.io/
Man, just got another analogue keyboard. The firmware has an analogue interface, but it only says how far a key is being pressed, not which key is being pressed 
Guess I'll look into Razer on Linux stuff, tho already not a good start when they don't support the Huntsman V3 series
Clearly you just have to guess the key based on normal key events! But wait, what if more than one key is down at the same time..
Yeah... unfortunately this firmware is unsupportable for me
What's most interesting to me is that the reports are 1:1 with those of another vendor, tho the firmware behaves a bit differently
but that's what I get with China crap 
Ah man, Linux is funny. Can issue shutdown 0 as a normal user, but gotta be SU for reboot 0





