Code Monkey home page Code Monkey logo

Comments (20)

terrycain avatar terrycain commented on May 25, 2024 2

No need for an issue, ill have a look tonight

from polychromatic.

lah7 avatar lah7 commented on May 25, 2024 1

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

lah7 avatar lah7 commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

lah7 avatar lah7 commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

lah7 avatar lah7 commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

lah7 avatar lah7 commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

Please check this out
keypad-customize 2017-01-22

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.

lah7 avatar lah7 commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

mjtorn avatar mjtorn commented on May 25, 2024

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.

terrycain avatar terrycain commented on May 25, 2024

Fixed pulsate in master, will be a couple of days till release though

from polychromatic.

mjtorn avatar mjtorn commented on May 25, 2024

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.

lah7 avatar lah7 commented on May 25, 2024

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.

terrycain avatar terrycain commented on May 25, 2024

LOOL my comment in the issue closes it when you updated

from polychromatic.

terrycain avatar terrycain commented on May 25, 2024

My comment in the commit *

from polychromatic.

chrisdonlan avatar chrisdonlan commented on May 25, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.