#🤖│community_dev

1 messages · Page 11 of 1

quiet root
#

the sdk can also send profile data

quick bough
#

wdym?

quiet root
#

dont need to capture anything really

#

take apart local wootility or search through the webcode for sending the profile and itll show you exactly how its done

quick bough
#

if you want to map in a whole profile that includes things like key mappings, rgb, settings, etc

quiet root
#

yes the sdk can do that

quick sapphire
#

Is the specification for the local browser data available?

quick bough
#

how 'can' it do that beyond the hid_send?

quiet root
#

well with the hid send but you dont need to capture anything

quick bough
#

don't need to, but it's a lot easier to get a grasp of it...

quiet root
#

its quite plain in the wootility javascript on how its done

quick bough
#

you do realise the shipped JS is minified/obfuscated? derp

quiet root
#

yes

#

its still super easy to find with like 2 or 3 searches

flat wigeon
#

What strikes me more is the usleep between the commands

quick bough
#

You know Wooting firmware, it's always so slow and high-latency

#

That's their selling point

flat wigeon
#

Normally I would expect it to just be slow not to miss(?) the commands (I guess that would happen without the sleeps)

quiet root
#

well the issue is the rgb comms

#

those are slow as shite

neon cove
#

are there any news on when wooting might implement their background service and what functionality it will include? (the led bar quirks that have been teased dont interest me)
I've been very happy with my new 80HE, but is just absolutely baffles how wooting is missing such a basic feature as switching profiles based on active window

neon cove
#

yes I know about it. but I'd rather have an actual thing as opposed to a janky hack

#

the developer has pretty much abandoned that project as well

rocky wharf
flat wigeon
#

The janky hack is that every company got it's own software to do the same stuff just for their own devices

quiet root
rocky wharf
#

I think this will be a great addition to Wootility

quiet root
#

there will also be a detection based on installed titles and such if all goes to plan

rocky wharf
#

Will there be a early beta at some point?

quiet root
#

that i dont know

rocky wharf
#

In case there will be one, i would be happy to test it out :p

unreal pasture
#

there's a weird key roll over effect with the 80he sometimes I the press doesnt get registered

#

has anyone noticed it

#

it might be the rapp snappy

quick bough
#

I find rappy snappy and rapid trigger are quite detrimental in use-cases other than the niches they are advertised for

bold jewel
elder onyx
#

has anyone made a 3rd party wootility-like software? Im planning to make my own

#

where you can change settings and stuff on the keyboard

quick bough
#

I'm not sure why you'd want to make such a thing, but there are VIA and Vial which typically work by extending the firmware with their own report formats, so typically you'd only use it for Keyboards running QMK firmware.

#

And even the keyboard vendors using QMK have their own keyboard config solutions...

neon cove
#

is the inability to add multiple advanced key functions per key (e.g. say I'd want SOCD with both W-S and W-C) a software limitation with Wootility or a firmware limitation?
I understand that the UI to make it would be annoying and end users could easily make broken setups with conflicting advanced functions

quick bough
#

Likely a firmware limitation

upbeat ingot
#

A feature people might want Other keyboards such as a apex pro or a gk61 a razer huntsman etc that has a thing I don’t know what it’s called but if you hold down h it types hhhhhhhhhh but not just h maybe have it as a of on feature since some people might not like it maybe call it repeated text or smh

quick bough
#

That's... a feature of your operating system?

silver mesa
sweet peak
#

The board is green

flat wigeon
#

I don't know the software of those keyboards but sometimes people "repackage" os settings with their software

quick bough
#

Sure, but don't disappoint me

#

(He disappointed me.)

cinder linden
#

my keyboard got corupted after tryin to download update

buoyant pebble
#

i got a problem, when i press a key to build playing fortnite i cant build, but if i put build mode i can use this key to build, anyone know what happens?

granite valley
#

Yo am i stupid or can i not actually bind "~" to a fn layer on my wooting 60 he (it's annoying for lua devs) it would be cool to add it into wootility if it's not alr

quick bough
#

Alternatively just type not (a == b) troll240p

granite valley
#

i'm french i didn't know the shortcut

granite valley
neon cove
granite valley
#

i'm fine with shift

#

i just didn't know it

grand flax
#

I forgot if we are allowed to share stuff here but I (albeit very late) added an OSU overlay!

coarse elbow
rocky wharf
grand flax
# coarse elbow i like the wootverlay, but setting it up in obs as a browser source was nearly i...

There is a copy to clipboard button in the presets menu that you then press load form clipboard in OBS!

Unfortunately GET won't work as all the data is stored in the frontend (the webpage) and do not communicate.

To make it easier to customise you can change the size properly from default 800x400 to regular 1920x1080, it only will affect the preview as there will be a massive box to drag around on OBS but that's okay since it's transparent

grand flax
#

I'm going to make a big tutorial video soon since my documentation isn't too great haha

rocky wharf
grand flax
#

Yeah that could be cool, maybe worth looking into for me too :)

quiet root
#

i mean web local storage is also on the disk

rocky wharf
#

Pre configuring in the browser does work but you need to weirdly copy paste it in the obs web interaction thing.

grand flax
#

Okayy well the src code is all there but lmk if you need help with anything!

rocky wharf
quiet root
rocky wharf
#

Yeah, it was just a concept and this was the first thing i could get working with actix-web

grand flax
#

I might look into the local disk saving too haha it's a good idea

rocky wharf
grand flax
#

Sweett, I have an idea that it will still save to the web but syncs all profiles to the desktop as a backup so that the OBS one has the same saved presets on load, so a mix of the two maybe

#

Leaving on a trip for the next week sadly

rocky wharf
#

I went deep down with Rust, i started with directly using the RawInput API from Windows instead of using any already existing library (I do use that for other stuff too).
Then recreating a proc_macro to generate source code based of the chromium "dom_code_data.inc" file (which gets automatically downloaded when i build my code) for conversion between different keycodes (usb hid, evdev, xkb, win, mac) and now i only need to clean it up and put everything together.

paper crow
rocky wharf
#

How dare you Crqss ^^

grand flax
paper crow
#

Okay, sounds good 😄

silver mesa
#

i think its because im not using the s in http

grand flax
#

That's a local address sorry

#

It's hosted and accessible only on your computer

silver mesa
#

it has the s but still no work

grand flax
#

I'm on mobile sorry haha there is no console so someone else will have to try it

balmy iron
#

That's a local address, we can't access that

silver mesa
#

you can even access ones that aren't industrial standards

rocky wharf
#

Yep but 127.0.0.1 or 0.0.0.0 is your pc while 192.168.xxx.xxx are addresses in your local network, so we would need to be within your wifi to access these ones

strong siren
#

falling for trolls again are we

rocky wharf
#

Maybe ^^

silver mesa
#

you can't access the same CONTENT but you can access that IP

#

192.168.x.x is my local network, but its also yours too

rocky wharf
#

And i just wanted to help someone who might just be "new" into that 🥲

balmy iron
#

I don't have anything in my local network using that range though

#

... at least to my knowledge..

silver mesa
flat wigeon
#

I didn't expect to see these kind of jokes these days

raven hornet
quick bough
#

::1 sweet ::1

hybrid lake
quiet root
#

pls no ai slop

quick bough
#

very epic, unfortunately of all the technologies I only know GitHub cat_pensive

sweet peak
#

I know al of them. But I'm not a junior 😉

quick bough
#

I'd hope I'm not a junior with 10+ years of experience cat_bread

#

I know the real HTML, CSS, and JS :^)

rocky wharf
#

My bachelor is still in the works, our course director for computer science is a mathematician who makes the whole course a little harder, especially theoretical computer science. dogekek

silver mesa
#

Netherlands Germany and Taiwan only

quiet root
#

im glad we dont acknowledge denmark existing

silver mesa
#

i am as well brother

quick bough
#

I have been wanting to learn React, but when I try to enumerate the advantages of it I just think "that's just PHP"

#

idk, I guess it's not like there's nothing you can't do with HTML/CSS/JS/PHP, so I'm unwilling to learn new tools if they don't solve a problem

sweet peak
#

Php. Is worse :l

#

React is a smart implementation of reactive ui in Javascript

silver mesa
#

"PHP is used by 74.9% of all the websites whose server-side programming language we know."

quiet root
#

aka all the wordpress blogs

quick bough
#

Ah, I was thinking more in terms of components

#

Wasn't reactivity basically just a __index metamethod or something

#

Yeah, absolutely mindblowing concept

#

Not something that even remotely solves a problem for me. I mean, it fits on a single screen. This could only be an issue in the NPM ecosystem.

#

Not to mention I never needed this kind of pattern derp

quick bough
#

we've been able to improve Wootility running at the same time as 3rd party apps
You finally fixed the fact that the Wootility didn't ignore responses to commands it didn't issue? pausechamp

strong siren
#

There's more to it than that but yeah that too

quick bough
#

I was worried for a second you needed the user to install a native app for that fix

flat wigeon
quick bough
#

been a hot minute since I looked at it but I think the response does say what command type it's in response to

#

a transaction id would be clever but I don't think they have such a thing

flat wigeon
#

Did they change this?

quick bough
#

I guess not since the fix was not firmware related I think?

strong siren
#

the fix was mostly firmware related.

quick bough
#

how so?

flat wigeon
#

As far as I remember responses didn't have a unique report id. At least it looked like that on Windows.

#

Or any equivalent to that

#

But maybe for the RGB API this might be different

#

I use that interface to read analog too

#

Response times aren't exactly great, but I can get all keys reliably

grand flax
#

Am I stack overflowing wrong...

#

Swear half the users are there to stroke their superior intellect ego

quick bough
#

You might wanna look at ViGEmBus and HidHide

grand flax
#

Thanks :) I looked at those but looked like it would require the end user to install and set up those applications (and toggling then so their controller works afterwards) before running mine and was hoping to have it all work seamlessly in a self contained app similar to how macro apps intercept keyboards but if not possible will do that

quick bough
#

I don't think you can do it without such drivers for the interception afaik

#

for keyboard shortcuts, windows has APIs, so the kernel-level part is already pre-installed

#

but controllers...

grand flax
#

Aw man cheers, driver filtering looked too advanced for me for sure and yeah couldn't find anything on controllers haha

quiet root
#

any c coder here whos interested in cleaning up a c file to be humanly readable (its generated by an llvm backend from the llvm intermediate)

quick bough
quiet root
#

need to reimplement smth from inside there but its really messy

#

this kind of stuff you know

quick bough
#

Looks like IDA decompilation

quiet root
#

nope llvm

#

i mean itll prob look like any intermediate to c decompile ever

quick bough
#

Yeah, fair

sweet peak
#

I assume you chucked it in an llm Already?

quick bough
#

Modern-day slavery troll240p

paper crow
#

First off, if you want to post a meme, post it in #🐸│memes
Secondly, don't post jokes with racist undertones in this server. The point being made could easily have been communicated in a way that doesn't have that kind of baggage.

quick bough
#

Damn, what'd I miss

quiet root
#

also the LLMs always replaced float values and such with random other stuff they called "exemplary values"

sweet peak
quick plover
#

I am trying to write a python script to color keys based on obs statuses but not getting anywhere. Has anyone got anything working in this regard that I could use as a starting point?

velvet void
strong siren
#

I wrote a plug-in for Artemis rgb that does basically that, connects to the websocket for events. It's probably broken now but it might be a good reference?

lyric garden
#
GitHub

Remote-control of OBS Studio through WebSocket. Contribute to obsproject/obs-websocket development by creating an account on GitHub.

#

And I woudlr argue that the websocket is not any less "proffesional" in this usage scenario. In fact, this sounds like a specific usecase why websockets was added to OBS

velvet void
#

yeah it is good i just think it's better to package it as an obs plugin than have a separate program running

lyric garden
#

Fair point, tbh it all depends on the complexity of the progam and how far the scope goes for feautres 😂

velvet void
#

indeed

strong siren
#

Background service obs integration 👀

velvet void
#

much like my other bg service ideas haha

#

patiently waiting

quick plover
#

I'm having a complete mare trying to use websockets... can't get it to work at all

quiet root
#

time to use a competent language

#

not python

quick plover
#

yeah, I'm not a programmer though 😦

quiet root
#

@strong siren can artemis do obs?

#

prob easier for them to learn artemis or project aurora instead of programming

strong siren
#

but i havent touched it in like 3 yrs

#

it's probably broken

quick plover
strong siren
lyric garden
quiet root
#

lol no

lyric garden
#

:(

sweet peak
quiet root
#

well its even more straight forward now that diogo fixed the artemis plugin

#

install software, do some clicks and done

strong siren
#

i'm mid updating things atm since the artemis app itself just got updated today. things might have broken

lyric garden
strong siren
#

yes

flat wigeon
#

Bonus: For Discord you can use a named pipe. You still need an OAuth-Token

quick bough
#

I use websockets on localhost

#

Downside: Communication is so fast that Firefox breaks a lot

quiet root
#

i think both websockets and IPC/RPC are fine for local stuff

#

the main issue with IPC is its 1 to one afaik

quick bough
#

IPC is also not insanely portable

quiet root
#

so websockets are nice if you want a streamer to be able to have multiple third party apps using the data from obs

flat wigeon
quick bough
#

Websockets are portable in the sense that you only need TCP sockets

#

which virtually every platform does support

#

IPC is more niche and requires more specific platform APIs

flat wigeon
#

Does the Websocket anything good to me in a non-browser context?

quick bough
#

Well, you can also use plain TCP

#

but then it's not possible to talk from/with a browser context

#

also I guess you lose control over data frames unless you use another higher-level protocol like TLS to reintroduce them

#

since it's totally possible for TCP to get your data like one byte at a time

#

which may not be insanely desirable

flat wigeon
#

Well yeah, TCP IP is streamed by design ^^

quick bough
#

yeah, but if, e.g. your protocol is just text messages then maybe you want a reliable packing/delimiting of them

#

which you could totally have with plain TCP but it'd just be extra work for you

balmy iron
#

IPC is a generic term so what exactly are you referring to here?

flat wigeon
#

IPC mechanisms of your OS

quick bough
#

The clipboard, as recommended by Microsoft bigbrain

flat wigeon
#

LOL

#

Could be unix domain sockets, named pipes, shared memory, etc...

balmy iron
#

Or even just websockets listening to only localhost. tbh I think using all that TCP / UDP stuff for local IPC to be pretty stupid but I guess that's what some devs love to do

quick bough
#

It depends on the use-case. I think for OBS it makes total sense to have a websocket server running so any app can subscribe to it.

#

And the web is just a very nice place to have your apps.

balmy iron
#

I guess so since it's very cross platform, can transparently work over the network if you so desire... and works well on Windows

quiet root
#

not to mention obs already has other browser based implementations

#

like literally rendering a website in the camera

lyric garden
quick plover
#

Is there a list of key codes somewhere? Trying to target the INS key but can't find the code.

rocky wharf
quick plover
#

ok, for reference I didn't get anywhere using the codes, I ended up using the column/row method.

gaunt prawn
#

hi

#

😃

quick bough
#

hi

still gate
#

hi

#

._.

quick bough
#

hi

quick bough
#

wait, hold on, what happened to my role

#

did switchy break up with me

#

I should've known it was too good to be true when I saw a role I actually wanted to have

paper crow
#

Shoulda kept the role and changed the name to Stoodup by Switchy

quick bough
#

that would've been good cat_pensive

#

now it's like we never even had anything

#

switchy is so cold cat_coldface

gaunt prawn
gaunt prawn
#

do you guys think its possible to link the status of a planted bomb in fps games to the led bar using the game api for example

#

also for download status too

quick bough
#

It's definitely possible to programatically change the RGB lights on the keyboard

#

I mean, maybe you have a SIM card in your planted bomb— oh FPS game nvm

fallen surge
#

for mod tap I'm hoping for some DKS implementation; so if I tap or hold a single button the result will be multiple bindings.

#

also I've been living under a rock, I recall that whenever I assign an analog value to mod tap, particularly the hold section, I can only move my character only to one analog value no matter how light or how deep I push that button.

#

would be nice if it's fixed in mod tap.

feral geyser
#

Hey anyone know how to build the new optimum set?

silver mesa
#

does anyone here know about ec2 instances

sweet peak
silver mesa
#

someone posted a vid of a guy licking a gpu, i thought id take my chances in this one

sweet peak
#

Still a way to broad question 🙂
Just ask

silver mesa
#

valid take, spun up my first ec2 instance (free tier bc por) and am STRUGGLING to find the documentation on how to create an automatic way to shut down the server if it reaches a certain limit

#

I made an alarm for when cpucredits remaining <= 5 ~ sns is sent to my email and the system is shut down. Interval is set to every 5 minutes(is this enough? my thought process is if 100% of 1 cpu === 1 credit then checks every 5 minutes will equate to max 5 credits used worst case)

#

I am also failing to connect to it either ssh or the web client, I have inbound set to all ips for http, all ips for outbound for http as well as my own ip for inbound ssh

#

Im vaguely familiar with aws console from previous exp but it was mainly object storage in S3, trying to spin up this vm for mitm AD pentests

quiet root
#

afaik theres no cost limiting or auto stopping

#

for ssh i believe ec2 is ipv6 onlu

silver mesa
#

the ssh and rate limiting are two different problems, ssh is ipv4 compatible as the docs provide exact commands I need to run, this leads me to believe that there has to be something wrong with how my vpc is set up

quiet root
#

yes im aware its 2 things hence the 2 separate messages

quick bough
#

Just use Hetzner Cloud

#

I don't get the appeal of AWS or GCS, they're such blatent scams and cashgrabs

gaunt prawn
quiet root
# quick bough Just use Hetzner Cloud

maybe they need high and fast availability with scalability and configuration options that hetzner just doesnt offer. especially when its about deployments close to the target region hetzner sucks butt

sweet peak
#

Hetzner is a more budget option. But for playing around it's great. And simple small hosting as well

#

And quite cheap

quick bough
#

and if you need a close edge server, use a global CDN like Cloudflare

#

which is also free

#

and it's not a matter of being cheap, it's a matter of not getting scammed

#

because there's legit nothing you get that justifies the insane pricing of alternatives

quiet root
#

so with hetzner i can just have 1 cloud vps in multiple regions?

#

cause last i checked its EU only

quick bough
#

I don't think you get what I'm saying

#

and afaik there's no such thing as having 1 server in multiple regions simultaneously

#

literally just put cloudflare in front of your website, configure the caching, and boom

#

you're 'on the edge'

#

I mean, if you wanna do more than serve static content globally, then the way you do that is by getting an anycast IP address and having multiple servers in multiple regions that correspond to it

#

I do this for a DNS service of mine, but it's a PITA because I need to keep the servers in sync

quiet root
#

have you tried it on ec2

quick bough
#

afaict, this is also not something that AWS or GCS really help you with

#

No, I have not tried them. I just know they're stupidly expensive.

#

and I know how the technology works so I know there's nothing that could make it worth it

#

Like, EC2 is just a VPS except fancy name and pay extra for the privilege

quiet root
#

not really but sure

quick bough
#

Well, what am I missing?

#

Why pay 10-20x more than Hetzner pricing for AWS or GCS?

quiet root
#

the biggest difference (that wouldnt apply to what the user in here asked for probably) is autoscaling

quick bough
#

Ah, interesting

#

that probably doesn't work without extra work required tho

#

e.g. needing to use a dockerfile so they can actually do the scaling for you

quiet root
#

it does if you didnt design your application with just 1 server in mind

#

the biggest hurdle would actually be things like db interactions and what not

quick bough
#

I design all my applications with just 1 server in mind

#

because I have a VPS

#

not a docker container

quiet root
#

it being a docker or not doesnt even impact this decision but ok

quick bough
#

tbh I have no experience scaling beyond 1 server

#

because it works stupendously well

quiet root
#

for small things yes

#

if you server millions of people probably not

quick bough
#

Well, the scale I'm operating at is like 6 figure users and 4 figures active at any given time

#

but wooting.io is 99% static content, would absolutely work with my stack

quiet root
#

but again idk what the user who asked about ec2 is planning to do i can just answer their question in a general sense

quiet root
#

thanks for reading the convo

quick bough
#

I know

quiet root
#

not to mention its not 99% static content

#

more like 60% maybe a bit less

quick bough
#

that wasn't an insult

#

static content is good

quiet root
#

im aware but its just not that much static content

quick bough
quiet root
#

same

quick bough
#

Are you counting a blog as dynamic content?

quiet root
#

nope pretty sure those are static

quick bough
#

???

#

what about the website is dynamic then

#

it's all static content

#

easily cached

quiet root
#

easily cached and not valid once smth in the backend changes. theres tons of ISR going on

#

and lots of SSR content

#

especially on product pages

#

the support page and changelog also heavily rely on it

quick bough
#

Well, you could just use HTML, CSS, and JS for the product pages

#

and then they could be cached on the edge 🙂

quiet root
#

thats what ISR and SSR make out of them

#

otherwise the browser wouldnt display them

#

but fundamentally they just arent traditionally static

quick bough
#

You can't just tell your react or whatever to just 'build' the page?

quiet root
#

both SSR and ISR build pages

#

SSR does it each request and ISR does it every X minutes if a request comes in after X minutes passed

quick bough
#

Why would you overcomplicate it like that

#

If you can't host it via nginx or apache, it's not 'built'

quiet root
#

but you can

#

also its not really overcomplicated

#

i guess you just dont have any use case for realtime data on a webpage without makign tons of requests to some other api server

quick bough
#

You are literally operating like 3 abstraction layers above where I am for no obvious benefit cat_sob

#

What kind of real time data?

quiet root
#

anything... userdata, orders, product data whatever

#

if you cant expose it publicly it is hugely beneficially do just render it in on the frontend server side.

quick bough
#

but, yeah, hit the backend for dynamic data

#

that way your front-end remains cachable

quiet root
#

no one said its not cachable

quick bough
#

but technically I guess you can use PHP to adjust your frontend based on data, but then you need to manage the cache closely, not just for the CDN but also the browser

quiet root
#

exactly

quick bough
#

...okay

#

I don't see a benefit to baking dynamic data into a frontend

quiet root
#

all i can tell you is i prefer nextjs/react over painfully doing it like i did for the order management system at my old workplace which was pure html/js/css

#

unreadable mess just to make something dynamic

quick bough
#

<span id="whatever"></span>

fetch("/api/whatever").then(x => x.text()).then(x => { $("#whatever").text(x); });
quiet root
#

ok and now insert X elements of a certain html shape

#

and only do so if the user is logged in

#

and only do it in that way on browser

#

if its a mobile view insert different elements

#

also make sure its internationalized properly ofc

quick bough
#

I get that web dev sucks 😄

quiet root
#

no pure html and js sucks after some point

#

its a mess to maintain

quick bough
#

Maintaining it has never been an issue

#

what bothers me more is that there's certain expectations you have on websites

#

like navbars and logins

#

and the boilerplate is kinda annoying when you do it enough

#

i.e., you just write the same thing over and over

#

but as you can tell based on my ignorance about react, I stopped doing web dev around the time it became popular and now I am happily doing C++

quiet root
#

id imagine most devs would say maintainability is the worst on pure html/js/css without generating it serverside or building it statically via react or such

quick bough
#

Well, e.g. for navbars I have PHP to manage the active state and avoid code duplication

#

otherwise, no biggy

#

heck there's probably websites I made where the navbar is baked into the HTML and you need to find and replace over 20 different files if you wanna change it zanychamp

#

still not something that has personally bothered me tho

#

but maybe my web projects just never reached that kinda complexity

#

This is the kinda quality code I produce nowadays

gaunt prawn
quick bough
floral crane
#

Could the § key be added to Wootility?

quick bough
#

There is no such key, it's Shift+3, depending on the layout you configured in your operating system.

floral crane
#

I mean like alt codes, every character can be sent using alt codes directly from the keyboard

#

Or a way to send key sequences directly from the keyboard to program my own alt codes

quick bough
#

Well, alt codes are platform dependent, but yeah, programmable sequences might be cool. I guess for now your best bet is using like F24 with a macro program

quiet root
#

dks can already do 4 and 5 key sequences for alt codes. it can only do 5 if you repeat digits.

silver mesa
#

guys im trynna vibe code or whatever but when I like told the ai to NOT hallucinate, it like totally hallucinated and its not even doing what I asked!! I like said bro listen, I want an app that gives me money and it gave me a todo react app. wtf even is this ?!? OS: MacOS Sequoia 15.3.1 ram: 573gb, rtx 6090, cpu: intel super max digital deluxe pro ultra AIx2, monitor: 500hz 400in wide screen with ultra hd super max plus, 50gb fiber

#

edit: wooting 80he white zync

quick bough
#

Are you using the 80HE in 8khz mode tho

#

If you have up to 0.875 milliseconds of delay on your keypresses, someone without that delay is just gonna beat you to market cat_pensive

sweet peak
#

Say what you want, but vibe coding can be quite impressive

quick bough
#

I think you still need to have a solid grasp of code to really get anything out of tools like cursor

#

and I'd argue cursor is not a very useful tool at all because it's missing basic QoL that even sublime text offers

#

but I'm also the kind of person to disable the 'Cursor Tab' because it's extremely distracting

#

I've only tried the chat and that seems fine but realistically, if you want it done right, you do it yourself

silver mesa
#

I think people should vibe code, AI is so bad when it comes to making anything more complex than a simple single request app. Let them see how bad it is. Experience it, live it, love it, breathe it. Ingest that steamy pile of dog shit of marketing and realize how unproductive it actually is.

covert vessel
#

Hi not sure if correct channel but i want to change a behavior of capslock key, i used to be able to do it in QMK, so on key pres it triggers the key, and is active, but on release, it sends a of signal to system so capslock is turned off always, i prefer still having capslock binded since some games have binding to the key so remapping it is not an option

gritty lake
#

u might want to look into dks

#

@covert vessel

sweet peak
quiet root
#

please dont crosspost the same question in multiple channels

solid wasp
#

Hi, if I have a question/potential issues with Wootility, is this an appropriate place to ask some questions about it or is there another better channel?

pearl spruce
#

guys can i change the hotkey for my profile

#

like the hotkey to swap profiles

quiet root
worthy hare
#

I just have a goofy idea to do something fun with the positional data on the wooting keyboard. How hard is it to for example get all the analog input data and have it constantly displayed on a console? Just so i can get an idea of how to work with it

quiet root
#

thats how you get analog data

pearl spruce
#

is there a way to also have the trail effect as well? when i add it on it just breaks both of the scans

grand dome
#

Would it be possible to utilize the benefits of the Lekker switch in design? For example, in gaming, it can be used as a gaming controller. Could the same workflow be used in 3D software like PTC Creo or Blender? My best guess is that a custom script would be required. I already have a 3D Connexion SpaceMouse Enterprise, which is great for general modeling, but for surface modeling, it would be nice to have additional features.

quick bough
#

You could definitely use the Analog SDK to read how far the keys are being pressed in your own software/plugin

flat wigeon
quick bough
#

From what I understand, Simon would be pretty busy now with Wootility V5 and that upcoming background process

#

I don't know about the other devs, but I think most of them don't do firmware stuff

cunning bolt
#

where do i import codes in the new software?

quick bough
mighty topaz
#

i have just chuck my TTC KOM switches into the Wooting 2 HE

#

not sure if the switches arent compatiable or maybe the new beta update that i just updated

#

does anyone have issues with new beta update or having issues with other switches ?

wooden vector
#

would be actually nice to get firefox support aswell ..

quick bough
low leaf
#

Is it possible to make it so that when I press the ''2'' key, 2 seconds later its gonna press left click for me?
so basically ''2'' pressed -> wait 2 seconds -> press left mouse button within one keypress?

quick bough
#

With Wootomation maybe?

pearl spruce
#

I could be lying tho one zec

near grail
#

How do I use the tilde on 60HE??? Any advices?

balmy iron
#

By pressing the same key combo as on any other keyboard (note: 60HE default mapping will require fn in addition to the normal keys!)

near grail
#

This doesnt work for me :/

twilit brook
#

Right now I really need to use the tilde key for the new game schedule 1

#

But whatever I remap and try to do it wont wrk

quick bough
#

On my layout, ~ is produced by pressing Shift+`

twilit brook
#

I got it to work by changing my kb language to eng and pressing fn shift and esc

sharp dust
#

can someone help me with my wooting 60HE problem? keyboard won't detect enter key and no graph movement shown in analog-monitor.wootility.io then buggy with the right shift key, i've tried to unplug 5 seconds not touching anything after replugging, troubleshooting on wootily web, changing switches, keyboard restoring/ reset on wootily.

spark nest
#

Anyone knows if there is an option to change the key RGB color when is set to Toggle-Key mode. Like if you press it and the key is activated that it is Red and that if it is not activated it changes back to its default. I find myself sometimes leaving the key activated.

unreal pasture
#

can we get a no power to the leds as they give off a ton of emi and they make the Hall sensor less sensitive to the magnet, also

quiet root
#

make rgb black

unreal pasture
#

@quiet root already did this

quiet root
#

then they are off and receive no power

unreal pasture
#

👍

bronze ridge
quick bough
#

Nice. They could probably have the keyboard register itself as a mouse but it'd have to be done in the firmware and the complexity there is a bit higher.

tidal mulch
#

Hi, can we finally link without exterior software a profile to a .exe yet or still not incorporated ?

quiet root
#

it will always need software running. we are working on our own background program to do this

tidal mulch
#

so no, allright, I'll check back in a few months then, ty

flat wigeon
wicked torrent
#

Is there a way to map a key, or a combination of keys, into the “fn/globe” key of macOS?

quiet root
#

currently only by changing it in the macos settings

quiet root
#

macos system preferences > modifier keys

#

most people just change capslock to be globe key

wicked torrent
quiet root
#

no cause fn keys are in most cases internal to the keyboard device

#

laptops and notebooks can have tied integrations where the os can be aware but that relies on the fact of closed ecosystems

quick sapphire
#

Actually the fn key is sent by repurposing the reserved byte in the keyboard report.

One caveat is that the vendor id must be Apple’s and product id is one of their keyboards that has the fn key.

Can be easily done with custom firmware like qmk but I doubt any manufacturer would open themselves up for litigation with Apple

proven quartz
#

I just wanna give a huge thank you to whoever pushed for full linux support. Just pre-installed wootility on nixos and it was absolutely seamless! So, so glad I picked the 80he over a gmmk3

quiet root
#

just as a fun fact linux wasnt the real target if im correct. it just came as a coincidental win when making the app macos and win compatible via electron

quick bough
#

just like me fr, except I target linux and then hope macos works

gentle crystal
#

Hey, does anyone know if the num lock functionality can be modded? Either by modding the off-layer to be the equivalent of the on-layer or at least by changing the num lock toggle to on-press=>always-set-to-enabled?

quiet root
#

im a bit uncertain as to what you request

#

like whats happening with numlock and what do you expect to happen

#

@gentle crystal

gentle crystal
#

I never want to NOT type numbers using the num pad. I'd like to do something like setting up both layers of the num pad. When it is on and when it is off.

I assume num lock off equals arrow keys

quiet root
#

the thing is that the keys dont change function on the keyboard ever

#

they stay mapped to the same scancodes

#

he os just changes the output/function depending on if you have numlock on or not which also depends on the os having seen the numlock press

gentle crystal
#

ah crap, so what you're saying it's decided by the OS?

quiet root
#

very much so

#

outside of fn layers which modern keyboards have the rule is that scancodes stay the same

#

so shift doesnt change anything nor does caps, alt, super or numlock

#

or any other key

gentle crystal
#

ah damn

#

but thanks for the answer

quiet root
#

there might be hacky ways since the keyboard gets 1 info from the os on what locks are active (num/scrl/caps) and then the keyboard could just send a numlock press but thats very hacky and could also cause issues if the os doesnt send the state early enough

quick bough
#

The big reveal is going to be that they're gonna focus solely on being a keyboard case company troll240p

sweet peak
#

With software 😉

quick bough
#

Damn, they spoiled it

quiet root
#

not the place for this post but ok

quick bough
#

I will of course be very interested in deving the new keyboard as a community member 😛

quiet root
#

not like itll have a new sdk or such. its still the analog and rgb sdks so nothing changes

#

no {insert new sdk name here} sdk

quick bough
#

Yeah, I was gonna say it's probably not gonna be a centrepiece-like

#

or a TKL troll240p

quick bough
#

Let me guess, the PID is going to be 0x133_

quick bough
#

Also just some additional thoughts: Starting out with a parody of JRE made me wonder when the joke was going to end until slowly it settled on me that, really, the new keyboard is just the 60HE, again.

quiet root
quick bough
#

My mistake, Tony, won't happen again (it will)

quiet root
#

ik thats why i keep bringing it up. we appreciate you trying to partake in the community but please also post in the right places if possible

fossil aurora
#

sadge was hoping this channel would be more alive :ppp

#

was actually quite nice to see alot of the wooting repos being done in Rust / C

quiet root
#

its active when it needs to be. most implementations of our sdks are rgb related and well people just use the finished app really

fossil aurora
#

ah yeah that makes sense, plus wooting being a keyboard company other than wootility im sure theres not a crazy amount of backend needed

quiet root
#

i mean people cant work on wootility really. the only deving in here that can realistically happen is: sdk improvements by the community, wootomation improvements by the community or projects using the SDK by the community

fossil aurora
#

yea thats fair, i was kinda just curious what the dev scene was like in wooting :3

quick bough
#

I personally am interested in analogue input in general, but it's tough. Best we got is emulating a controller with the keyboard. cat_sob

sweet peak
#

keyboard can also do direct input

quick bough
#

Wait, you're telling me the keyboard can like... send inputs to the operating system?

#

Man, I've been using my mouse and clicking on the letters this whole time

sweet peak
#

ok ok, no need for the snark

rough gulch
#

Is there a way to change the key colors .. my keyboard rgb is blue and when i press a key it goes yellow then back to blue? trying to edit that yellow color

velvet void
quick bough
#

Just tried using webpack. Am I doing this web dev thing correctly now? troll240p

grim granite
#

Fellow keyboard fetishists, has anyone tried to sync our subjects of admiration to Asus Aura by any chance..?

quick bough
#

I...

#

Well, there's either the possibility of somehow reading the keyboard colour state from their software, which might require some reverse-engineering, I assume there's no API for it

#

Otherwise you use something like OpenRGB or SignalRGB to control your gamut of devices

sweet peak
#

This channel keeps getting high lighted, deleted spam?

balmy iron
#

I suspect that yeah, the one with the crappy phone pics of screen

frosty sorrel
#

whats the ins key on the 60he

sweet peak
#

I don't know, but please stick to one channel

mossy shard
shadow sluice
#

I’d like to build a small Windows tool that shows a toast / OSD notification whenever I switch profiles on my Wooting 80HE.

Is there any event or callback in the Wooting SDK (or another API) that lets a Windows app detect a profile change in real time, or is polling getCurrentProfile() the only option?

Any pointers to existing examples or recommended approaches would be appreciated.

quick bough
#

Polling it is your only option afaik

#

I think that's also what the wootility does

shadow sluice
formal dagger
#

Can a keyboard detect the OS of the Computer (Linux, MacOS, Windows)?

quick bough
#

Uhh, yes-ish. There's some stuff in qmk but it's basically just heuristics based on how they speak the protocol, it's not insanely reliable.

quiet root
#

qmk has smth like that? link?

quick bough
quiet root
#

the base they link is the jankest code

#

but basically what i guessed would happen if you try to guess the host youre connected to

formal dagger
#

Would be interesting if you could specify Wooting Profiles for specific OSs (like they don't work on other computer or auto switch if the OS is detected), as some function keys are not compatible with macOS. or maybe you want to disable all gaming features on mac

#

probably more useful when/if wooting releases a wireless keyboard

quick bough
#

Can't wait for the 60HE v6.0: Wireless Special Edition troll240p

#

but maybe it's possible with the planned background process thing, whenever that comes out

left ermine
#

long shot, but does anyone think you can swap audio devices via wooting functionality with a macro/other input without 3rd party software such as soundswitch?

quick bough
#

mods can we ban this guy who's stalking me, thanks

paper crow
quick bough
paper crow
#

I am not...

quick bough
#

Glad we could find an agreement 😄

storm crescent
#

guys do u have sdk for 32bit? cuz the one on github dont want to work
i keep getting liner erros even tho i linked .lib file

unresolved external symbol _wooting_analog_set_keycode_mode
unresolved external symbol _wooting_analog_read_full_buffer
unresolved external symbol _wooting_analog_initialise

i really have no i dea what to do

quick bough
#

No, the SDK is 64-bit only afaik

#

but you can talk to the devices over USB/HID yourself

storm crescent
#

finally i craked it and no SDK 😂

quick bough
timber lodge
#

speaking of 32 bit, is the way to use Soup's AnalogueKeyboard is to make a separate thread to scan for keyboards and to cache the inputs?

timber lodge
#

ah I already did it was just checking lol never done anything with HID before

#

anyways I have been able to implement analog keyboard support to Saints Row 2

#

and to Xenia mousehook

quick bough
#

Nice

timber lodge
#

Yeah I'll see about releasing it for SR2, need to fix a bug with main menu where it does double input which is kind of a vanilla bug too that can happen

quick bough
#

@placid ledge Do you think there's much blocking you adding 32-bit versions of the DLLs to the releases? Because afaict, it should pretty much just work* and would allow the Wooting Analog SDK to also be used with legacy games.

* See https://github.com/WootingKb/wooting-analog-sdk/issues/93

timber lodge
#

I see that soup also supports doing keyboard RGB, that's cool will it handle the differences between vendors I guess

#

will you be doing GTA V E&E for AnalogSense? @quick bough because if no I could maybe take a crack at it

#

I assume it doesn't work

muted ginkgo
#

hello i just got a newwwwwwwwwwww wooting keyboard yesterday it came in, randomly my keys that have triggered enabled when i type "w" it spams wwwwwwwww in one click. im using stock everytrhing i tried using usb a and usb, tried using different ports only provided a temp fix.. is my keyboard a defective?

sweet peak
quick bough
#

I am ready cat_bread

serene harness
#

Comin back for this again

1ms wootverlay for future searches 😄

quick bough
timber lodge
#

oh you actually did GTA V E&E nice, that was unexpected, I didn't even play through it yet, thanks

tame spire
#

I rly wish it was possible to convert Wooting input into pen pressure for graphic programs...

quiet root
#

should be doable

tame spire
#

trying to figure out how it seems pretty complex qwq

#

my gf is pretty good with APIs so maybeeee we can figure it outtt

#

cuz it'd be so cool to be able to have all benefits of graphic tablet with a mouse + keyboard

quiet root
#

youd basically just emulate a tablet with a custom driver

#

that driver can then get fed data from whatever

#

its the same youd do to convert a keyboard to controller outputs with rewasd

#

or even combine controllers

tame spire
#

yee that's what I was thinking of

sweet peak
#

Vibe code it

quick bough
#

Easier solution might be to just make a plugin for your painting program that changes the brush size based on the analogue value

quiet root
quick bough
quiet root
#

well yes but that first would only work if the program they use support plugins

#

and then its again not quite portable to other drawing apps which there seems to be quite a lot of fighting for marketshare if i look at what was recommend a few years ago and then now

quick bough
#

they probably have a drawing app they use

#

it just has to work for them, not everyone on the planet

tame spire
sweet peak
#

Try Gemini cli

quick bough
#

Ah yeah let's vibe-code a driver, that's so easy and nothing could possibly go wrong

sweet peak
#

ok. vibe engineer it

timber lodge
#

@quick bough does the shift/sprint button work in AnalogSense with E&E? it doesn't for me unless im doing something wrong but everything else seems fine

quick bough
radiant echo
#

Hi i have a question. Few seconds ago I unplugged my keyboard since update and now it completly stop working. I tried plug it in but it didnt help. What should I do.

And windows doesnt see this keyboard

quiet root
#

please dont crosspost. answered already in another channel

hasty grail
#

Hi, I need help with my Wooting device.
Device: Wooting 60HE
OS: Windows 11
Symptom: After a firmware update, the keyboard makes a USB connect sound but isn't recognized by the OS and bootloader mode is inaccessible. Wootility doesn't detect it either.

Could you please provide the developer recovery tool or next steps for reflashing the bootloader?

quick bough
fickle plume
#

Hi ! I've ordered some TTC KOM RGB Switches, and I'd like to build a custom integration (it's for a midi controller), not directly a keyboard, with a custom PCB that will share other components.. any resources on this ?

fickle plume
quick bough
#

Hall effect keys?

fickle plume
#

Yes

quick bough
#

Can't say I've ever done this, but I guess just find a manual for the keys you are looking to use

fickle plume
#

What about the hal effect sensors, do we have a reference for those ?

quick bough
#

So, from a quick look, what I can find is that the very bottom part of the switch is a hall effect sensor

#

there's 2 pins on it as you would in an electrical circuit

#

and the magnetism would then just be transmitted as a matter of how strong the signal you get is

fickle plume
#

Yes, but the switch just includes the magnet, not the sensor itself, right ?

quick bough
#

hmm, it would seem so

#

just looked at one of my own spare switches

#

the diagrams I found online were a bit confusing

limber owl
#

It's really a pitty wootility only has a limited set of keys that can be mapped. Seems like support for copy/paste buttons is being worked on for Linux! https://mark.stosberg.com/universal-copy-paste/

Mark Stosberg

On Linux, Control-C and Control-V don't work for copying and pasting in terminals. The Control modifier is used for its original purpose of inserting control codes. Instead, terminal apps require an extra Shift modifier, like Control+Shift+C.

But what if there were hidden shortcut combos for copy and paste

quick bough
quiet root
#

To trigger the copy or paste keyboard actions, software has to bind these key codes to actions. Software toolkits or apps themselves are responsible for this.

#

a lot of programs dont even allow direct mapping of scancodes

#

so most of the time even if you had the keyboard shown youd end up binding the key to just press ctrl+c and ctrl+v in software

#

i forwarded it internally anyway for the firmware team to look at

limber owl
#

It looks like they're trying to add support for common toolkits for Linux (qt/gtk) so they can handle copy/paste scan codes and this will work with any application using those toolkits.

Would be cool to use fn-c / fn-v instead of ctrl-shift-c and ctrl-shift-v in a terminal..

quiet root
#

its a fine line really between adding whats convenient but also not adding it as it might cause peopel to be confused. idk if windows even plans to support these so there is a scenario where someone may map copy and paste but cant use it and thus may blame the keyboard for not working instead of the OS not having it supported.

quick bough
#

I am so used to terminals just copying stuff whenever I let go of my selection. Not that I am against more standard behaviour in this regard.

quiet root
#

we also support more standards like this especially something like mute and deafen keys that the OS respects for example. but the sad truth is they all implement it at wildly different times

limber owl
#

I don't think there's a limit of 256 scan codes that can be mapped. I guess the hid describer tells how reports are translated to scan codes..

quiet root
#

theres smth called usage pages

quick bough
quiet root
#

thats not really a super big issue i think. it would mainly be an issue for our avr boards i think

#

i cant speak for the firmware team but i imagine our ARM boards have enough resources to just double the bytes per key

quick bough
#

tbh, I do think 1 byte is still more than enough

#

but yeah for HID itself, that has 4 bytes with usage page + usage id

#

actually maybe even more since it's like a varint type thing?

#

but 2^32 is already plenty

wind kelp
#

when i try to run the virtual keyboard it returns this

2025-08-20T08:29:03Z INFO  wooting_analog_virtual_control] Error : Cannot find unique os path since link_file does not exist
thread 'main' panicked at wooting-analog-virtual-control\src\main.rs:289:17:
Failed to open SharedMem...
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

i ran the sdk installer and i have wootility. anyone knows why this happens and how i can fix it?

quick bough
wind kelp
quick bough
#

I mean it should at least work on Windows using the latest version. Just have to be sure that your version of the virtual keyboard plugin matches with the version of the GUI to control it

rocky wharf
#

I'm currently trying to create a small program that first acts as a profile backup tool and later to switch profiles that are not stored on the device but rather in the "browser" (electron of course not the real browser) storage.

I noticed, some fields are named color and some colour 😂

quiet root
#

yes

#

also changing to non onboard profiles will sooner or later come to the new background service that will also replace the rgb and analog sdks at some point

rocky wharf
#

I know, but I have some spare time to play with it a little. And from what I have seen, it might take some additional time till the background service will also include profile switching.

May I ask if it will be written in rust?

quiet root
#

@strong siren can tell you all about if its rust or not

quick bough
#

diogotr seems like more of a C# person to me

#

but Rust would explain why it's taking so long

rocky wharf
#

It would not say that rust is the cause it’s taking longer. I would guess the cause (besides other projects) is related to planning out the best way to write it, especially if they want to include a newer/improved rgb/analog SDK into it at some point. Also the amount of conversion that needs to be rewritten for the profile struct should also take a little.

I mean, I can only check how the Wootility does profile - binary conversion and what to send, but as it’s a react app and minified, it’s really stressing to go trough a dozen of classes, fields and functions to find what I want to look at. SwitchyMonkas

At least storing all profiles as separate files and restoring them wasn’t that bad. But I still haven’t got a single command ready to send to the Keyboard SwitchyConfused

quick bough
#

I think the real reason is probably some flavour of incompetence like idk why Wootility had to be rewritten from scratch just to add support for a new keyboard but it cannot be a good sign of the inner working of the company

#

The longest it ever took me to do something I'd say is 1-2 weeks for writing a TLS 1.2 implementation from scratch. Iirc that also included implementing ciphersuites like RSA and AES as prerequisites.

#

I think that's a reasonable amount of time to expect for a little background service that just needs to handle some persistent state and queuing

#

maybe 3 weeks to account for the Rust tax

balmy solar
#

will there be a clicky switches for wooting?

paper crow
quick bough
#

This is like asking if there will be a TKL Wooting

#

It's been done before, now they don't sell it anymore, and that's that cat_sob

rocky wharf
quick bough
#

The packet is either the full 256 bytes or 4x 64 byte chunks

#

or something to that effect

#

a full profile is likely split over several packets for the various states/features

rocky wharf
#

Actually, depending on the protocol revision (based on the hid report size) you need to change the index and it can go up to 1022 from what I can tell.

quick bough
#

Ah right yeah I forgot about that

#

but afaik it's basically just you use the small reports if ARM-based and older firmware

rocky wharf
#

I might try it again at some point actually, even if its just the basic size you have. What i have done is make some part of the profile to be convertible between JSON <-> Binary.

hasty shell
#

When do we get the wooting update that'll allow us to select what switches we are using or perhaps alternatively, to select the travel distance of the switch being used?

quick bough
#

What?

waxen river
#

So is it possible to through the SDK remap keyboard so that pressing ”z” writes ”y”?

#

How long does it roughly take for the remapping to become active from when the program initiates the call?

#

Instantaneous? 1 second?

#

Does it have to be done through rust or can we do it through other coding languages as well? :(

quiet root
#

only possible via the sdk if youd write the profile to the keyboard via raw usb commands

waxen river
#

Specifically looking to do it with the Wooting 80HE if that matters

quiet root
#

and remaps are active as soon as the profile write is done

waxen river
#

And how long would the profile write take?

quiet root
#

a few ms and then another few ms for the board to reload

waxen river
#

Does profile write mean that we have to predefine the profiles ahead of time? Like when we click the profile key?

quiet root
#

thats what a profile write is yes

#

you overwrite one of the onboard profiles fully

#

you can get the profile thats currently loaded

#

and then change what you wanna change

waxen river
#

Is it possible to swap to another profile instead? Would that be faster?

quiet root
#

yes and yes

waxen river
#

Is there a max for the amount of profiles we can have active?

quiet root
#

4

waxen river
#

Hmmm aight

quiet root
#

but then you dont need the sdk

waxen river
#

And if I wanted to do these things, are there any resources on how to do that? I looked on the GitHub but felt like it wasn’t that clear

quiet root
#

no

waxen river
#

With that said I didn’t deepdive, just briefly looked

quiet root
#

we dont recommend people write raw profiles to the keyboard themselves

waxen river
#

Yeah I assume you can brick stuff

quiet root
#

na just need to reflash

waxen river
#

Ah that’s good

quiet root
#

but im also unsure what youre trying to solve and maybe youre going about it the hardest way possible so /shrug

waxen river
#

I can PM

quiet root
#

if its so secret you cant post it here then id rather not know

#

id personally probably look into making a custom keyboard layout in your os first, then something like AHK/Macrogamer and only if those also dont work would I look at the hardware level stuff

#

all of these can change how keys behave

waxen river
#

@quiet root that would be an option, but I want to try and learn how to interact with the hardware level

#

I’m trying to make a program that dynamically rebinds a key to other ones based on conditions I give it

#

So not specifically one remap, but different ones dynamically

quiet root
#

well gl i can just give you pros and cons and at least to me the cons outweigh doing it via SDK and USB commands

waxen river
#

I do get that it’s kind of like walking across the country to get to water instead of using the tap

quiet root
#

in this case more like the planet just to arrive back home at the tap

waxen river
#

But essentially, no resources available on how to remap through SDK and USB commands?

quiet root
#

since all the hardware way does is add delays and complexity

quiet root
waxen river
#

I assume you have no plans on writing documentation for how to use the SDK like that either then?

quiet root
#

not really no

waxen river
#

Which is fair - if people don’t use it it’s a waste of time

quiet root
#

im not immediately aware of anyone having dont smth like this either

waxen river
#

If I were to do some research and write some resources can I add it to the GitHub? :)

#

But is wootility closed source then?

quiet root
#

honestly not sure. i can see us just not wanting it be easily publicly available. not cause we want to hide it in itself but because people might misunderstand that its our preferred way of doing it

quiet root
waxen river
#

Didn’t check the JavaScript yet as I’m on my phone, but there’s always obfuscation techniques for that so hence the question

quick bough
strong siren
#

the use case seems very uh interesting to me I'm curious why you need rebinding specifically

quiet root
#

custom advanced key incoming

waxen river
#

Trivialize moving my hand to different keys

#

remap one key to different ones dynamically based on conditions ^^

quick bough
#

Sourcemap not included

#

Very sad

#

I have a severe allergy to layers of abstraction so cat_yawn

waxen river
#

If there are other options for how to achieve what I stated above without using AHK/other macro tools feel free to enlighten me

quick bough
#

Write a driver

#

Use a rubberducky (or similar effect via arduino)

#

Use a keyboard hook

waxen river
#

Not sure if that’s an option for me, quite sure that like every game I play would be banning me if that’s present on the PC no?

#

EAC, battleye, vanguard, vac etc?

quick bough
#

Questionable

waxen river
#

hmm don’t want to risk it since I have some valuable skins on those accounts

#

Hence prefer to use the sdk 😝

quick bough
#

use a spare account, play for a bit, find out

#

if not banned after a few months, you're fine

quiet root
#

in theory the sdk way can also get detected by AC. any software on your pc can in theory trigger it

quick bough
#

indeed

#

I would not be surprised if just having a wooting device in the HID enumeration lowered your trust factor in certain games haha

quiet root
#

if you want a surefire undetectable thing youd have to use a the rubberducky approach

#

its the least likely to get detected in any scenario

quick bough
#

good ol' ban testing will do the trick

#

also funny thing is that generally, a private cheat will not get you banned

#

this is by design in the anti-cheats

#

if this cheat were to get out, so many different people trigger the same detection, only then will they make a banwave

waxen river
#

So ”write a driver”, have an arduino and then what?

quick bough
#

No, those were alternatives

quiet root
#

both are separate

quick bough
#

I mean, rubberducky is just an arduino board iirc

quiet root
#

a driver is a software solution closer to the OS and the arduino one is basically like a passthrough filter you could use

waxen river
#

And what is a ”rubberducky”? Isn’t that the USB that does thing automatically..?

quick bough
#

anyway, it's a little embedded device that emulates a keyboard and allows you to program it with C

quiet root
#

yes but the idea is you have a device pretending to be a keyboard

#

when its not

#

and you could inline this with a real keyboard to grab the real keyboards key presses and then modify them on the fly

waxen river
#

that sounds way more difficult that remapping the keyboard though no?

#

Intercepting keypresses and modifying them on the go 😧

quiet root
#

well sneding profile data can break with any firmware update really

#

the intercepting would be most likely completely keyboard agnostic and stable as its USB standard based

waxen river
#

Ah wait are you saying that the keyboard would be plugged into the arduino which would then be plugged into the pc?

#

Simulating keypresses?

quiet root
#

either simulate or modify

#

both viable imo

waxen river
#

same thing in my head

#

Just some simulated keypresses are modified

#

But surely the PC would be able to see that it’s an arduino and not keyboard?

quick bough
#

I mean, it depends on what exactly you're trying to do

waxen river
#

Spam one key and make it actually click something else to the computer based on predefined conditions

#

Without anticheats going haywire, preferably lmao

quick bough
#

uhhh

#

I mean I assume you do want a rubber ducky

waxen river
#

The thing from hak5?

#

Or is it a general term?

quick bough
#

I'm sure there's plenty of devices like it

#

I guess the hak5 one would be like wooting to analogue keyboards

waxen river
#

Kinda rough to buy one of those devices when we supposedly can do it through the sdk tho

quick bough
#

anyway, if you don't want to lose your account, do ban testing beforehand

waxen river
#

But then I have some ideas on what to test/look into

#

Thank you!

quick bough
#

there is only the SDK for the typical RGB, and also analogue input which no one uses

quiet root
quick bough
#

to each their own I suppose

quick bough
#

RGB, as is typical/expected

waxen river
#

You mean that the keyboard will have red green blue lights?

quick bough
#

analogue input as in games could figure out how far you are pressing a key, kind of like the triggers on any non-nintendo controller

waxen river
#

And analogue input means?

#

Hmm

quiet root
quick bough
#

hmm? I have a switch pro controller and it's digital triggers

quiet root
#

the switch pro isnt the gc one

quick bough
#

but idk, I'm not that invested in nintendo

waxen river
#

Not sure if it’d be a problem for me though

quick bough
#

had my fun with mario kart world, now the switch 2 collects dust derp

#

great use of like 500 euros

waxen river
#

jailbreak it

#

😎

quick bough
#

so true bestie

#

I prefer my steamdeck

#

it's a bit more chunky, but at least I can do whatever I want with it

waxen river
#

Actually owning what you purchase? Crazy

quick bough
#

yeah...

#

I'm amazed people are at all surprised by google trying to lock down sideloading

#

because realistically smartphones have stopped being portable computers pretty much as soon as they became mainstream

#

not that I like how it is this way, but I just don't see it reasonably getting any better, especially not when there's no monetary incentive for it

quiet root
#

before this drifts to far from the channel topic: @waxen river i hope you got some answers to try and figure out your problem

waxen river
#

well, ish

Will try to look at the webapp and how it remaps the keys and make my own version of it

quick bough
waxen river
#

And when that doesn’t work I’ll plug in my pi

quick bough
#

I would suggest wootility v4 because it's a bit easier to hack

#

CSP be damned!!!

#

although you did say 80HE? tough luck

waxen river
#

I did say 80HE

#

Why tough luck? :p

quick bough
#

v4 is not compatible with it

waxen river
#

ahh

#

oh well

gleaming silo
#

Does anyone know what the actuation hysteresis used on wooting kbs is?

quick bough
#

whatever you want it to be?

gleaming silo
#

I'm curious whether the hysteresis goes into the positive, negative or centers around the configured actuation point, and how big it is

gleaming silo
#

The reason I need it is because I'm currently writing a wooting settings emulator as part of a cheating investigation tool

broken yacht
#

Hey I had a question if any of the sdks have the light indicator modifiable

quick bough
broken yacht
quick bough
#

I guess you mean the thing on the 80HE?

broken yacht
quick bough
#

Yeah, I'm not sure. I have no clue what it's even supposed to be for. I'd say battery indicator but... they don't make wireless keyboards, lmao.

#

Could be a volume indicator, but... no SDK support. Maybe they were planning to do this with the Perpetually-Coming-Soon™ background service

broken yacht
#

Was just curious if anyone's made one

#

Otherwise I'll reverse engineer it myself

rocky wharf
broken yacht
#

So now a new question

#

What's probably the best way to see outgoing HID bytes?

quiet root
#

the best way? a usb analyzer

strong siren
#

wireshark with usbpcap is nice

quiet root
#

could also work although i honestly had some bad times lately trying to get wireshark to cooperate. none the less worth a try

strong siren
#

ive used it a lot specifically to debug protocol related things so I can recommend it

quiet root
#

i have to spend a weekend sometime to figure out why wireshark doesnt like my windows install or in this case the pcap installation

rocky wharf
# broken yacht I guess this is what I'll do

I already did, took a while to understand everything. I’m now just stuck at the keyboard hanging after I send the correct values (that are temporary just copied from wootility sending it) and I need to replug the keyboard. No idea why as wireshark shows no difference between wootility and my application.

broken yacht
strong siren
#

just fyi writing to the ledbar like you can do with the regular keys is not possible without us adding it to the firmware (it's planned)

#

you can send technically send a profile that doesn't get saved i guess but it's not as simple as it would be with an rgb-sdk-like command

broken yacht
#

Yeah I'll have to play with it anyway

#

By the time I get around to actually doing anything

#

It'll probably be our

#

Out

rocky wharf
#

Oh sry for the ping, forgot to deactivate it…

strong siren
#

if you show me what you're sending and on what firmware version i can check if it's a firmware bug or something else weird going on

rocky wharf
pale hazel
#

Hello,

I have a problem with my keyboard. I was doing an update for my keyboard. And what happened is that my PC turned off. And since I turned it back on, my keyboard no longer works. The Routing app tells me that my keyboard is not detected. However, my PC recognizes it when I plug it in and unplug it, and when I go into Device Manager. And I can't reset my keyboard from the app because it doesn't recognize .Wooting 60HE+

hasty nexus
pale hazel
#

OMMGGGGGGGGG T BOOOSSSSSSSS

rocky wharf
rocky wharf
broken yacht
rocky wharf
broken yacht
rocky wharf
#

That's one of the reason why i wanted to implement loading non-onboard profiles from a file. Just to see how all this stuff works, but it takes time.

coarse elbow
rocky wharf
broken yacht
#

I mean

#

Is there extra latency and if so is it noticeable

rocky wharf
#

Not that i'm aware of.

strong siren
#

any led changes can introduce latency when compared to tachyon (no led changes)

quick bough
#

are the chips in our keyboards single-core?

#

I would kinda expect so but can also imagine splitting the work into 2 with time-critical stuff having a dedicated thread/core

quiet root
#

from what i heard the issue is the voltage changes that happen during an RGB update which can mess with the analog signal traces of the sensors

#

so multithreading wont help

quick bough
#

huh, okay, is this just a matter of the 2 things are sorta on the same line but could be split or it's just the entire circuit becomes unbalanced?

sweet peak
#

you wont get a detailed answer 😉

quiet root
#

no need since anyone looking at the pcb can answer that really... they are separate traces but not isolated well enough for the, essentially background noise, interference that happens when RGB changes to LEDs happen on the analog traces.

#

if the sensors would do ADC work internally this wouldnt even be a big issue since the traces would carry digital signals

#

(i dont wanna imagine how bad it would be though to try and run all the sensors and ADCs and such on the posed theoretical)

broken yacht
quiet root
#

no

#

ive run 60fps animations on my twohe for ages in the past and didnt notice it even during casual gameplay

rocky wharf
quiet root
#

yes

#

with artemisrgb

#

and project aurora

#

some using custom plugins i wrote

quick bough
#

When Wooting Centrepiece

#

Just kidding

#

unless

#

I love how finalmouse don't know how to sell products and flux keyboard are seemingly just in perpetual 'coming soon'

#

and I'm sure some day wooting will get the 60HE right so they can move on to making a TKL or something 😛

#

I'd actually really dig a two he with a detachable numpad. cat_weary

quiet root
#

wouldnt be a 2he then would it

quick bough
#

😛

#

I might have to abandon analogue keyboards entirely to get my ergnomic ideal, but the numpad is right around where I want my mouse to be, and it's just not good for my shoulders. getting old is horrible cat_sob

#

I wish I would've had the foresight to buy a Wooting One back in the day

quick bough
#

Wooting One HE leaked

#

actually sadly the wooting branded thing that's glued on the cable came off since I took that picture cat_pensive

broken yacht
#

I'd assume extra cycles to edit rgb (albeit very little) affects latency even a tiny bit

#

but I was specifically asking because as far as I can tell @rocky wharf loads an entire new profile with the updated led bar

#

Anyways that reminds to actually not use windows to debug HID (to do stuff like that as well)

quiet root
#

and theyd have an effect on latency as well

#

should in theory reduce it to the same speed as non tachyon

broken yacht
#

That's what I meant

#

It'd be breaking the theory of what tachyon is

broken yacht
quiet root
#

oh in that case yes

#

if its just rgb it would basically just have the impact normal onboard rgb has

broken yacht
broken yacht
quick bough
#

Isn't it theoretically possible to have 2 data lines in USB?

#

iirc, there is a negotiation about what pin means what, right?

#

so, one line is you sending RGB commands, and the other is the keyboard sending input ASAP derp

#

but then I guess the real issue is that the keyboard has to actually do what you said

quiet root
#

thats not the issue

#

the issue is about reading a reliable signal from the sensors during rgb updates

#

and in the case of loading entire profiles thats technically even "worse"

strong siren
#

technically we should disable the rgb sdk in tachyon

quiet root
#

usb datalines wont help with that

#

its the on pcb traces

quick bough
#

Yeah ik ik

#

very unfortunate bottleneck

rocky wharf
broken yacht
#

If ur okay sharing

quiet root
#

prob the profile preview feature

rocky wharf
# broken yacht How do you do it /genq

It's like sending colors via the rgb sdk, just with another command/code (which some can be found in the pinned messages). But it's more complex since there is no direct way of sending only the color to the led bar.

broken yacht
#

Ty!

broken yacht
mortal sedge
#

hey guys I was just wondering if I could please get a hand with debounce function on my keyboard and tick rates

young frigate
#

Hi! I was wondering if there was any sample code for controlling individual LEDs using WebHID? I did a search here in Discord and on the Wooting Github pages, but only found a very old example that used node-ffi

quiet root
#

thats because the SDK is C based. you can try reimplementing it in pure javascript with webhid but i dont think anyone has tried doing so

strong siren
#

the C sdk is open source, it shouldnt be that difficult to reimplement in js

quick bough
#

WASM solves this kappapeek

#

but yeah just give the C code to ChatGPT say "make javascript" and profit

young frigate
#

Ha! I figured it's about sending the right incantations via WebHID, but never tried anything like that before. Hoped there was a toy example floating around, similar to how the AnalogSense.js works

#

Tracing through the Wootility source now to see how the editor does it, ripping bits out of that maybe

strong siren
#

(as bad as the sdk is...)

young frigate
#

Fair, there's layer upon layer of infrastructure in Wootility. Thanks, I guess I'll try my first vibe coding adventure

strong siren
#

may i ask what the end goal with this project is?

#

webhid wouldnt be my first platform of choice to control LEDs is all

young frigate
#

I'm an interaction design researcher. Wanted to do some experiments with the keyboard. So it's not for anything performant or real-world

#

For me Typescript is a favourite sketching language

quick bough
#

I love running a separate program while developing just to turn my interpreted language source code into something a browser can actually use

young frigate
#

To change colours, should I use the HID usage page of 0x1337 and do a feature report?

quick bough
#

I'm not sure you have other options 😄

young frigate
#

When I call sendFeatureReport I get the error NotAllowedError: Failed to write the feature report.

#

But if I call sendReport I get no error, but no outcome either 🙂

quick bough
#

You opened the device and ensured your feature report is correctly sized?

young frigate
#

Device is opened, but I'm not sure if I'm packing and sending the command properly. The Uint32 array consists of: 208, 218, 30, 0, 0, 100, 33
Where 208 and 218 are the 'magic commands', 30 is what I hope matches a key and then the r, g, b values

#

Sorry, the 30 corresponds to WOOTING_SINGLE_COMMAND

quick bough
#

Show your call to sendFeatureReport

#

Also, Uint32Array would be wrong, you'd need to use a Uint8Array

young frigate
#

Oops! Ok, that for sure made the keyboard react

#

Sweet! The target key was changed. However, the brightness of all other keys suddenly went up

strong siren
#

if they were dimmed because of the sleep timer, that's expected behaviour

young frigate
#

No, it's the keyboard I'm using to write the code 🙂 I had the RGB LED effect set to low brightness in the Wootility app.

quick bough
#

Maybe ensure your firmware is up-to-date cat_seenoevil

#

Also, do you use tachyon mode?

young frigate
#

Firmware is up to date, not using Tachyon mode.

quick bough
#

From what I understand, when the firmware enters WootDev mode, it copies your RGB colours over and then applies that until it's disabled. Probably a bug there with that either bypassing brightness or not properly copying it. cat_seenoevil

#

Firmware open-source when? kappapeek

young frigate
#

I just power cycled the KB, set the brightness in Wootility again, did a 'save to keyboard', closed Wootility. And then in my code, sending WOOTING_SINGLE_COLOR_COMMAND again bumps all the brightness

quick bough
#

I have to say... I can't reproduce it

strong siren
#

🤔

young frigate
#

Here's roughly the code:

 rgb_direct_set_key(row: number, column: number, red: number, green: number, blue: number) {
    if (!this.#device.opened) throw new Error(`Device not open`);
    const position = createKeyboardMatrixID(row, column);
    const buffer = Uint8Array.from([
      0xD0, 0xDA, // Magic words
      WOOTING_SINGLE_COLOR_COMMAND,
      red, green, blue, position
    ]);
    return this.#device.sendFeatureReport(0, buffer);
  }
quick bough
#

Wootility says my firmware is up-to-date troll240p

young frigate
quick bough
#

I just set my escape key to magenta for 10 seconds

#

and it seems to work as expected

strong siren
#

I cannot reproduce either

quick bough
#

Escape key would be position 0

strong siren
#

I run my keyboard at 30% brightness usually and it keeps that brightness while changing the color

young frigate
#

Hmm. Should it matter if I have an 'effect' set via Wootility?

strong siren
#

it's expected that the effect stops

#

so if you have an effect like key ripple or similar that affects the base brightness then that might be the reason