Comments (20)
No need for an issue, ill have a look tonight
from polychromatic.
Unfortunately it's not possible, OpenRazer only officially supports M1-M5 macro keys. Gamepads need further work at a driver/daemon level as they behave like a keyboard. That said, one of the maintainers is working on an experiment to bring OpenRazer to userspace, which should make it easier to support key remapping in future.
Other users have reported using Keyboarding Master to remap keys in the meantime.
See also: openrazer/openrazer#614 (comment)
from polychromatic.
Not sure if related, but I get Unimplement command:
lines from polychromatic-controller.desktop in syslog, messages and user.log to the point where it fills my hard drive. There's also a polychromatic-controller
process that goes defunct.
from polychromatic.
But shouldn't I be able to reconfigure the layout? Is this a known deficiency because Orbweaver's not officially supported yet?
Like with the Tartarus Chroma, the daemon does not support matrices on keypads yet, as far as I'm aware. It got a bit confusing for me on this issue too, as I don't own either of these devices to check.
Keyboards have this capability: lighting_led_matrix
. You can check whether the Orbweaver does support it by opening a terminal, typing python3
then entering these commands:
import razer.client
a = razer.client.DeviceManager()
b = devices[0] // Assuming 0 is the first and only device
b.name // Should say 'Razer Orbweaver'
b.type // I'm guessing will output 'orbweaver'
b.capabilities // This will list you what the daemon can do with the device.
Until the daemon supports a matrix for keypads, Polychromatic cannot make a front-end to configure the keys. 😞
... I get Unimplement command: lines from polychromatic-controller.desktop in syslog, messages and user.log to the point where it fills my hard drive. There's also a polychromatic-controller process that goes defunct.
Which distro, version and desktop environment are you using? I'm guessing the desktop environment you're using is responsible for filling syslog.
The problem lies with newer versions of WebKit2GTK (the library that Polychromatic uses) which are acting up in newer releases. WebKit2GTK 2.12 / Ubuntu 16.04 (and flavours) are the last ones that don't experience these problems.
from polychromatic.
Let's get back to the daemon question later, let's see how razer-drivers
proceeds.
As for the distro, it's a SteamOS (Steam Machine), which is essentially Debian Jessie (Stable). I have installed the requirements for razer-drivers
by snatching them from Debian Jessie and mirroring them in a separate repo (not public yet) to keep it simple yet functional.
steamos/pool/jessie-backports/gir1.2-webkit2-4.0_2.14.2-1~bpo8+1_amd64.deb
steamos/pool/jessie-backports/libwebkit2gtk-4.0-37_2.14.2-1~bpo8+1_amd64.deb
steamos/pool/jessie-backports/libjavascriptcoregtk-4.0-18_2.14.2-1~bpo8+1_amd64.deb
steamos/pool/jessie-backports/gir1.2-javascriptcoregtk-4.0_2.14.2-1~bpo8+1_amd64.deb
Would I be correct in understanding that Jessie ships a version that's too old (2.6.2) and Jessie-backports used to have a working version (> 2.6, < 2.14) but now it's been updated to something that doesn't work?
from polychromatic.
WebKit2 2.12 is the last known version to work with no problems. Older versions like v2.6 seem to work fine, except for the keyboard profile editor. For that reason and safe measure, the README advises >2.12 for Debian... but all distros are caught in the trap that different problems start 2.14 onwards.
As I don't think you see the "Application Profiles" list to use the profiles feature, it would be best to stick with v2.6.
WebKit aside, the problem is not with WebKit but rather the daemon (provided by the driver and powers Polychromatic) does not support key mappings (matrix) for keypads. I don't know if the Orbweaver has support, but if it does, then it's possible to add support.
from polychromatic.
Seems your hotfix release did the trick for syslog filling up, thanks for that!
Then back to the real issue:
Orbweaver is recognized, but the only thing I can configure is the brightness.
You said the driver and Orbweaver must support the matrix, but the impression I got from
openrazer/openrazer#22 was that the matrix only controls LEDs,
not keycodes. 😕 ❓
Shouldn't I be able to configure a keymap profile?
Specifically have the 01
key, which looks like the backtick, to send
the keycode for escape, which is the major reason I care about any of this.
FWIW this works under Windows, so there has to be a way.
Cheers!
from polychromatic.
Orbweaver is recognized, but the only thing I can configure is the brightness.
Do you see any effect options for Pulsate or Static? Your D-Feet screenshots show that those methods are supported, so the daemon should be telling the app it has that capability (in which Polychromatic will list those effects too).
It looks like I was running on outdated information 🐌 As I just discovered the fx.advanced.matrix
function works on other devices besides the BlackWidow Chroma now. 👍 Works on my Firefly, not the Mamba TE though. 😞
As I do not have an Orbweaver to check, please confirm per key lighting works by typing this into python3
in your terminal:
import razer.client
a = razer.client.DeviceManager()
b = a.devices[0] // Assuming this is the first and only device.
b.name // Should print 'Razer Orbweaver'
for row in range(0, b.fx.advanced.rows):
for col in range(0, b.fx.advanced.cols):
b.fx.advanced.matrix[row,col] = 255,0,0
b.fx.advanced.matrix[0,0] = 0,255,0
b.fx.advanced.draw()
This should light up all of your keys to red, except the first one should be green. If this works, profile support will definitely be added in a future release. 👍 Please let me know what the matrix dimensions are -- these commands will print out the numbers:
fx.advanced.rows
fx.advanced.cols
from polychromatic.
The for
loop gives me an AttributeError: 'NoneType' object has no attribute 'rows'
This means that kind of matrix is not there. Wonder how the colors would turn red because
I cannot remember having seen that functionality in Windows. Also I thought the multicolor
models were usually named Chroma, while this is just a basic model.
As for pulsating and such, there is nothing in the Polychromatic UI except brightness, but I can confirm
pulsating works:
root@steamos:/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.2/0003:1532:0113.000C# echo 1 > matrix_effect_pulsate
root@steamos:/sys/devices/pci0000:00/0000:00:14.0/usb3/3-7/3-7:1.2/0003:1532:0113.000C# echo 0 > matrix_effect_pulsate
Could the lack of pulsating in the UI be a mismatch in how Polychromatic talks to the driver?
The files are matrix_brightness
, matrix_effect_none
, matrix_effect_pulsate
and matrix_effect_static
as well as profile_led_blue
, profile_led_green
and profile_led_red
which work as expected in Windows.
If this is not a communication bug between the driver and Polychromatic, do I really have to figure
out xmodmap or somesuch kludge? I would imagine things that work in Windows can be made to
work here, either on a driver or Polychromatic level...
Thanks!
from polychromatic.
This means that kind of matrix is not there. Wonder how the colors would turn red because
I cannot remember having seen that functionality in Windows.
Ah, I'm confusing this device's capabilities with the Tartarus Chroma, I think we might be cross-firing different objectives. So let''s clarify:
- Does this device support lighting on individual keys? (Profiles)
- Is this device capable of RGB (but set for all keys), or just a fixed set of colours (like red, green, blue)?
- By "keys" do you mean being able to change the lighting effects, and/or being able to create/set profiles too?
If this is not a communication bug between the driver and Polychromatic,
There isn't a "fake device" in the daemon that I can use to simulate (for testing) yet, but I'm guessing it's most likely Polychromatic isn't aware of a new fx
function if it has "matrix" in its name. For instance, if the daemon tells Polychromatic it is capable of lighting_static
, the option will show, but it could be possible it's something different like matrix_effect_static
, so nothing is shown despite it achieves the same effect. This is the case with some mice that use scroll_wheel_static
and logo_static
, which is a work in progress.
Polychromatic never interacts with the driver, it talks to the daemon. You could list me exactly what the daemon says by typing this:
import razer.client
a = razer.client.DeviceManager()
b = a.devices[0]
b.capabilities
You can also change the effect from the daemon here too:
b.fx. <press tab to list>
^^ That will list the functions available. As an example:
b.fx.static(255,255,255)
If you don't see a static or pulsate function here, you'll need to prod @terrycain to tweak the daemon.
Sorry this is taking some time, we'll figure out what changes are needed eventually!
from polychromatic.
Ah, I'm confusing this device's capabilities with the Tartarus Chroma
That makes sense ;)
Does this device support lighting on individual keys? (Profiles)
AFAICT it does not, but it has a different concept for profiles. If you see the
screenshots at openrazer/openrazer#22
you can see what the lighting tab looks like in Synapse on Windows.
Is this device capable of RGB (but set for all keys), or just a fixed set of colours (like red, green, blue)?
It's green or nothing.
By "keys" do you mean being able to change the lighting effects, and/or being able to create/set profiles too?
I think we need to figure out what "Profile" means....
To me it's the actual key bindings, as in the screenshot below. What happens when I press 01
.
Changing brightness works and that's real nice! Pulsate is not visible in Polychromatic, and of course
it should be, but I don't really see the value of it.
It shows what the remapping on Windows/Synapse looks like.
I started remembering some stuff from about a year ago, roughly when I last looked into Razer hardware, and this other project had an issue with storing custom settings mbuesch/razer#49 - turned out I didn't have time to hack anything usable together so I gave up instead.
Might seem like the configurations aren't stored on the device and Polychromatic would need a way to alter the keymaps (or whatever Synapse does), and store it into a file for the daemon to deal with when the device is plugged in. Right?
As for the Python part, I'll have to get back to you in another reply.
from polychromatic.
Ah, now it's clear -- so you're looking to add the ability to edit key bindings (let's call it that) within Polychromatic.
Do you know if daemon has the ability to set key bindings (or commands) already? This might be in the form of macros, since the daemon has similar functionality when a series of keys can be recorded to one of Razer keyboard's macro keys... not sure about persistence across sections though.
If it does, that's great -- please let me know what Python commands you'd input to achieve that, as I do not have the physical device (or a "fake" device, but @terrycain says he'll look into creating one, useful for debugging an imaginary device)
If not, it would be best for this to be implemented at daemon level first, then Polychromatic would be a suitable front-end for configuring key bindings.
For the pulsate effect, please do paste the capabilities output. This'll also reveal what the daemon can do with this device.
from polychromatic.
I'll look into the Python part later today, I hope. But I do know the driver and daemon support pulsate because I verified that in openrazer/openrazer#22
Also seems someone else had a similar wish for keybindings, #36
I can't remember what the problem was with Keyboarding Master for me. Maybe it was something architectural, that it intercepted and rewrote all key presses or maybe it was just that I'd have to start this Java program - manually - every time. But it's been a year so maybe it's slicker than it was. An integrated solution would, of course, be the best.
from polychromatic.
Brightness is present, pulsate is not.
>>> import pprint
>>> pprint.pprint(b.capabilities)
{'brightness': True,
'firmware_version': True,
'lighting': False,
'lighting_breath_dual': False,
'lighting_breath_random': False,
'lighting_breath_single': False,
'lighting_breath_triple': False,
'lighting_led_matrix': False,
'lighting_led_single': False,
'lighting_logo': False,
'lighting_logo_active': False,
'lighting_logo_blinking': False,
'lighting_logo_breath_dual': False,
'lighting_logo_breath_random': False,
'lighting_logo_breath_single': False,
'lighting_logo_brightness': False,
'lighting_logo_none': False,
'lighting_logo_pulsate': False,
'lighting_logo_reactive': False,
'lighting_logo_spectrum': False,
'lighting_logo_static': False,
'lighting_none': False,
'lighting_pulsate': False,
'lighting_reactive': False,
'lighting_ripple': False,
'lighting_ripple_random': False,
'lighting_scroll': False,
'lighting_scroll_active': False,
'lighting_scroll_blinking': False,
'lighting_scroll_breath_dual': False,
'lighting_scroll_breath_random': False,
'lighting_scroll_breath_single': False,
'lighting_scroll_brightness': False,
'lighting_scroll_none': False,
'lighting_scroll_pulsate': False,
'lighting_scroll_reactive': False,
'lighting_scroll_spectrum': False,
'lighting_scroll_static': False,
'lighting_spectrum': False,
'lighting_static': False,
'lighting_wave': False,
'macro_logic': True,
'name': True,
'serial': True,
'type': True}
Pulsate does work
root@steamos:/sys/bus/hid/drivers/razerkbd/0003:1532:0113.0016# echo 1 > matrix_effect_pulsate
root@steamos:/sys/bus/hid/drivers/razerkbd/0003:1532:0113.0016# echo 1 > matrix_effect_static
How would I formulate this as an issue? Driver and sysfs
support pulsate but daemon does not?
Thanks!
from polychromatic.
Fixed pulsate in master, will be a couple of days till release though
from polychromatic.
Ok @lah7 I'll open a new issue for Polychromatic support when openrazer/openrazer#167 is supported. Some kind of UI support would be nice when remapping becomes possible ;)
from polychromatic.
I'm puzzled by that -- I just updated my fork of razer-drivers
earlier today and this issue closed. Ah well.
Feel free to reopen this one when it's ready. 😄
from polychromatic.
LOOL my comment in the issue closes it when you updated
from polychromatic.
My comment in the commit *
from polychromatic.
So macros are not supported with respect to the orbweaver. Is there a way to write the macros manually, in the json file, for instance?
from polychromatic.
Related Issues (20)
- Popup menu in system tray opens wrong direction under KDE HOT 1
- Dark Mode not matching system, top menu not working correctly HOT 9
- Unable to update the 0.80 version on Manjaro HOT 2
- no such file (openrazer.json) after updating to 0.8.1 HOT 3
- polychromatic-cli use a lot cpu or i missed something (script cpu temperature)? HOT 6
- Fedora 38 rpm policy violation HOT 16
- Polychromatic not launching after Manjaro update HOT 3
- Problems with tray applet on Fedora Rawhide GNOME HOT 1
- Tray applet crashes at startup with non-RGB devices HOT 1
- Ubuntu PPA `polychromatic/edge` is no longer signed HOT 2
- Settings don't save HOT 4
- [Basilisk Ultimate] "Inspect Matrix" turns light to static white; DPI setting not work; [Huntsman V2 Analog] page is sluggish HOT 7
- Viper V2 Pro Polling rate reverting on reboot HOT 1
- Controller crash upon startup: libQt5Widgets.so.5: undefined symbol HOT 8
- Support for Windows using OpenRGB openrazer-win32 HOT 1
- Fedora GPG keys invalid / not present in repo HOT 3
- Does not recognize individual LED assignability in Razer Book 13 (2020) HOT 1
- Basilisk V3 Pro settings change at random occurences HOT 1
- Razer Chroma Profiles HOT 1
- Meson Build Issue HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from polychromatic.