z3ntu / RazerGenie

Qt application for configuring your Razer devices under GNU/Linux.
GNU General Public License v3.0
376 stars 35 forks source link

Added feature for load/save keyboard layout with their LED settings profile #76

Open Tikeri opened 4 years ago

Tikeri commented 4 years ago

Hello,

First of all, thanks for openrazer and RazerGenie. I have tried it in parallels of Polychromatic but well I like RazerGenie more because of the few reasons below :

Well I've coded with my little knowlegde but it was a bit painfull because of the JSON stuff that is memory eater and also hard to work with because each modification requires to regenerate the whole JSON document.

So finally the missing feature has been added successfully and now you can save and load your customizations from a file ! (Which helps a lot because if you touch just a little the "lighting mode", it will clears everything you have configured before in the matrix discovery).

It is not yet documented but the idea is to create a parallel JSON document that contains each modification and also stores a new key that contains the color value of each keyboard key.

It works perfectly when running the matrix discovery tool but partially from the classic Custom Editor. The last thing that requires to be fixed (and hopefully it can !) is the rendering on buttons after loading a layout from file, it will be wrong while the good keys are still well illuminated with their colours.

Note to testers : this has been tested with a french layout keyboard and I have done few quick test with en_US layout setting so it requires more tests for now.

z3ntu commented 4 years ago

Hi, thanks for the PR! Can you please rebase on master, a large refactoring has been in progress for a while but I've pushed it to the master branch only a week ago, so there are quite a few conflicts now.

Tikeri commented 4 years ago

Ok it is done now. I'm not able to compile it btw since your change with meson stuff. It is looking for libopenrazer that is now missing. Should works as is.

meson.build:14:2: ERROR: Tried to use 'add_global_arguments' after a build target has been declared. This is not permitted. Please declare all arguments before your targets.

Fixed.

I still have other things to fix in the code too it seems. Wait for the PR :D

Tikeri commented 4 years ago

Well you can now test it and modify it to your convenience. Updated translations files btw.

Tikeri commented 4 years ago

Quick question : why did you change the lang container format ? It was fitting well with the QLocale::system(), it has now to be parsed and compared to what the hardware code returns.

z3ntu commented 1 year ago

Hi, sorry for the long delay. If you're still interested in this, do you know how this is different to PR #100 ?

Tikeri commented 1 year ago

Hi, sorry for the long delay. If you're still interested in this, do you know how this is different to PR #100 ?

Well PR #76 take care of keyboard layout files + lang and save content inside while PR #100 looks to save only the customization colours into a separated file (*.rgkeys). But less code and files.

I'm not fan of "auto" variables which can leads to unknow behavior :D

We'll have to wait for @gerddie reply.

gerddie commented 1 year ago

TBH I stopped using RazerGenie, so I never tried to rebase or update #100 otherwise. What I want to say is that I have no strong feelings whether the code lands or not, I'm just unlikely to invest much time in it.