peterbn / EDx52display

Reading Elite: Dangerous journal information and displaying on a Logitech X52 PRO MFD
GNU General Public License v2.0
41 stars 6 forks source link

Posible linux support? #17

Open MNS26 opened 1 year ago

MNS26 commented 1 year ago

The X52 HOTAS also is supported on linux (with open source drivers)

i dont know the go coding language so i cant help too much but im very willing to help testing

currently when trying to run go build

> go build
package github.com/peterbn/EDx52display
        imports github.com/peterbn/EDx52display/conf
        imports golang.org/x/sys/windows/registry: build constraints exclude all Go files in /home/noah/go/pkg/mod/golang.org/x/sys@v0.0.0-20210511113859-b0526f3d8744/windows/registry
~/github/EDx52display master !1 ?1 >   

a (i think) equivalent bash script to the release.ps1

#!/bin/sh
go clean

rm -fr ./EDx52Display
rm -fe ./Release.zip

mkdir EDx52Display

go build

cp -r "$PWD/EDx52Display.* $PWD/conf.yaml $PWD/LICENSE $PWD/README.md $PWD/names $PWD/DepInclude" "$PWD/EDx52Display"

# i dont remember a zip command
peterbn commented 1 year ago

Hi,

I didn't know there were open-source drivers. Do you know if they also support the MFD write API? Can you link to the documentation for those drivers?

To set expectations, I don't have a linux gaming PC myself, or a linux development environment at home, so I don't know if I will be looking at this, but if you link to the resources then I'm more than happy to help someone from the community get up and running to implement this, including refactoring the code so it's possible to cross-build for both windows and linux.

And if this is a large request from the community, then I'm not ruling out trying to set up a virtual machine or some other setup so I can give it a go.

Cat-Lady commented 8 months ago

The FOSS drivers support the MFD write API, indeed (in fact, it supports everything, from controlling individual diodes to mouse emulation via throttle mini-stick). Your program could either simply call command-line functions from that project: https://github.com/nirenjan/libx52/tree/master/libx52

52cli
Usage: x52cli <command> [arguments]

Commands:
    led <led-id> <state>
    bri {mfd | led} <brightness level>
    mfd <line> <text in quotes>
    blink { on | off }
    shift { on | off }
    clock {local | gmt} {12hr | 24hr} {ddmmyy | mmddyy | yymmdd}
    offset {2 | 3} <offset from clock 1 in minutes> {12hr | 24hr}
    time <hour> <minute> {12hr | 24hr}
    date <dd> <mm> <yy> {ddmmyy | mmddyy | yymmdd}
    raw <wIndex> <wValue>

WARNING: raw command may damage your device

...Or call to a daemon: https://github.com/nirenjan/libx52/blob/master/daemon/protocol.dox

Full documentation of everything that would be needed is inside various directories of the main libx52 github.

O7 and cheers,

peterbn commented 8 months ago

Hi @Cat-Lady

Thank you for the extra information here.

As mentioned in my previous post, I don't have the setup to implement and test this on my own, but if anyone is interested in adapting the code to use the Linux driver (either as CLI or by building it as a library and calling it directly), then I'd be happy to support that effort.