A follow up to my earlier post about the leds-valve DKMS module, now it is usable within the latest experimental build of OpenRGB itself as long as that leds-valve module is loaded.

Support for the #Valve #SteamMachine under #Linux has been merged into #OpenRGB. This relies on the leds-valve kernel module that is included in the SteamOS kernel. A DKMS package is available to install this kernel module on #Arch and #Debian distros:

https://gitlab.com/CalcProgrammer1/leds-valve-dkms

or AUR leds-valve-dkms-git

  • Jjoiq@lemmy.world
    link
    fedilink
    arrow-up
    14
    ·
    29 days ago

    Forgive my ignorance if allready applicable. A visualizer for playing audio i use cava on kde and would love to intergrate this.

    • CalcProgrammer1@lemmy.todayOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      29 days ago

      While I’m generally pretty anti-AI especially in OpenRGB itself, I did try slop coding a Decky plugin with free AIs for selecting OpenRGB profiles and colors just as an experiment. It didn’t go well though and I’m not familiar enough wih Decky or the languages it uses to really do it justice. I’d love to see such a thing from someone who knows what they’re doing.

  • NeatNit@discuss.tchncs.de
    link
    fedilink
    arrow-up
    7
    ·
    29 days ago

    Just curious (I don’t have a Steam Machine and don’t plan to get one), doesn’t Steam fight for control of the LEDs if you run both Steam and OpenRGB at the same time?

    • unexposedhazard@discuss.tchncs.de
      link
      fedilink
      arrow-up
      9
      ·
      29 days ago

      From a very surface level look at the code it looks like the module disconnects the data coming from steam while OpenRGB is active. But i dont really do C so i might be totally off here.

      • CalcProgrammer1@lemmy.todayOP
        link
        fedilink
        arrow-up
        2
        ·
        29 days ago

        It does not, but Steam isn’t constantly writing to the LEDs. The Customization tab in game mode just lets you pick from the built in hardware effects so it’s not continuously writing. That means it generally is not fighting OpenRGB. The only time it does seem to write to the LEDs repeatedly is during downloads when it uses the LEDs as a progress bar. Also, in desktop mode (on SteamOS or on other distros) it does not seem that Steam touches LEDs at all.

    • CalcProgrammer1@lemmy.todayOP
      link
      fedilink
      arrow-up
      7
      ·
      29 days ago

      In game mode yes, at least during downloads when it uses the LEDs as an indicator. It does not stream effects in software otherwise, it just lets you choose from the built in effects, so OpenRGB can take over without Steam trying to fight it most of the time.

    • CalcProgrammer1@lemmy.todayOP
      link
      fedilink
      English
      arrow-up
      8
      ·
      29 days ago

      Only as useless as you want it to be, you could, for instance, use it with the hardware sync plugin to display CPU or GPU usage. I should mark it as manually configurable for segments so you can divide it up and use it for both CPU and GPU actually.

      • ericwdhs@discuss.online
        link
        fedilink
        arrow-up
        1
        ·
        27 days ago

        I’ve never used any of this and can’t find documentation on the hardware sync plugin, so forgive the maybe dumb question. How far can the configuration realistically go? Let’s say my ideal setup is splitting the 17 LEDs into something like:

        6 for CPU usage with red as the active bar marking out 50% to ~100% usage and blue as negative space

        1 spacer

        3 for temperature going up from blue to red

        1 spacer

        6 for GPU usage with red as the active bar marking out 50% to ~100% usage and blue as negative space

        How close would I be able to get to that?

  • CalcProgrammer1@lemmy.todayOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    26 days ago

    Update! It looks like it won’t be too difficult to implement on Windows either! I did some poking around with RWEverything and the LED controller memory space is right there ready to be poked starting at address 0x0DE8 (IO port space). I manually poked the enable, LED color, and mode registers and could change the LEDs accordingly. This is easily achievable with a PawnIO module that mimics the sysfs entries from the Linux driver and I already have one partially written. I tested that PawnIO was able to enable/disable the LEDs and it could, but more complex interactions will require defining some ioctls and writing an OpenRGB implementation that mirrors the Linux one. Currently setting up my Windows build environment on the Steam Machine.