Replies: 18 comments 1 reply
-
Hi, thanks for posting. Very interesting, and I didn't know the old LGS was end-of-life on Mac... what a waste. (Full disclosure: My only Mac is a virtual machine I use for testing software, but I do like to support the platform when I can.) Do you know if Extra Keys supports Lua scripting in profiles, like LGS does/did? Or have any of its own API-type features for integration? (Maybe we can ping @MarkJerde here and see what happens (-: ) Since the profiles are exactly the same format as LGS (from what I can tell?), then LGKeys should be able to parse them as-is. There is a plugin option to tell it the current directory to check for profiles... it could be as simple as configuring that? To change the profiles path from default, you need to run LGKeys "manually" once from a command line/terminal with a Once you do this, the new profile directory should be stored in the plugin settings and used next time the plugin runs (either manually or via TouchPortal). (There are some more details on this procedure in the Troubleshooting Wiki Page under item 3.) Another quick way to check would be to try the The more "advanced" features of detecting M-state change or physical button presses didn't work on Mac anyway, so if the EK profiles can be parsed properly, I think that would cover it. If EK can provide extra features I couldn't get our of LGS, that would be even cooler :) Anyway if you could try it with the current plugin/tools version to see if those EK profiles can be parsed that would be great. Do let me know what you find and if you think anything can be done to improve the experience. I guess for one thing I could update the docs. But if there is some default folder location for EK profiles, it may make sense to make that a default on Mac for example. Thanks again, |
Beta Was this translation helpful? Give feedback.
-
Hi Max, Yes, the profiles used by Extra Keys are the same format as LGS. I’m not sure if Extra Keys supports Lua scripting in profiles, although if LGS did, then I would guess it’s likely Extra Keys does also, but need to confirm with @MarkJerde The profiles path for Extra Keys is ~/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles I navigated to this directory in Terminal and I typed lgkeys -p ~/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles But getting this error: zsh: command not found: lgkeys So I tried to manually edit the entry.tp file to set the profiles directory but it’s not clear where the path needs to be entered. Can you please help with this? Thanks, |
Beta Was this translation helpful? Give feedback.
-
Hi Praveen, thanks for following up. Actually if you're comfortable just editing the entry.tp file, that's the best way to go. I probably should have suggested that in the first place... You can just add the "plugin_start_cmd": "%TP_PLUGIN_FOLDER%LGKeys/lgkeys -l %TP_PLUGIN_FOLDER%LGKeys/lgkeys.log -p ~/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles --tpstart", The default profile path is actually set in the plugin's code at the very first start and then saved to TP's settings as a read-only value... after which it can only be changed with that -p switch. Awkward for sure, but workaround for a TP limitation with Settings. For running from terminal... maybe need to add Anyway there should be useful messages in the plugin's log after it starts. Oh and you can also add a Let me know how that goes... Thanks! |
Beta Was this translation helpful? Give feedback.
-
PS. You will need to restart Touch Portal after editing the |
Beta Was this translation helpful? Give feedback.
-
I'm getting this error in the Log: 17:04:23.327 - [ERROR] (Plugin System) Trying to execute the plugin service but it failed: /Users/praveen/Documents/TouchPortal/plugins/LGKeys/lgkeys -l -d /Users/praveen/Documents/TouchPortal/plugins/LGKeys/lgkeys.log -p /Users/praveen/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles --tpstart(Cannot run program "/Users/praveen/Documents/TouchPortal/plugins/LGKeys/lgkeys" (in directory "/Users/praveen/Documents/TouchPortal/plugins/LGKeys"): error=13, Permission denied) Permissions to Documents folder is given, so I'm not sure what's going on. When I click on Touch Portal in the menu bar, I see "JarRsrcLoader". Maybe I need to give this the folder access permissions? |
Beta Was this translation helpful? Give feedback.
-
Strange... And not entirely clear from "permissions denied" whether TP is denied permissions to start the plugin, or the plugin program itself lacks permissions to run. Can I see the output of Maybe the "execute" permissions aren't set...? If so, PS. Touch Portal actually runs as a Java application, so the strange name in "About" probably has something to do with that. I'm afraid though that's pretty much where my familiarity with TP on Mac ends... I haven't tried it in over a year. |
Beta Was this translation helpful? Give feedback.
-
I tried those terminal commands but now getting new errors, so progress? 😂 19:25:39.586 - [LOG] (Plugin Instance) Incoming data: {"type": "settingUpdate", "name": "Profiles Directory", "value": "/Users/praveen/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles"} |
Beta Was this translation helpful? Give feedback.
-
Oh hey, it runs, yay! 🤣 I could have sworn the The ugly error is because the game profile reader can't find (or get to) the folder you specified. Could they be at some other path? Alternately it's possible the plugin doesn't have permissions to read the directory (although I'd expect the error to be different in that case). Now that And if you can run it from the terminal, try running as "root" user to see if it can get to the profiles folder now... This way you will also see the plugins logging output right in the terminal window. CMD-C to exit the plugin. -Max |
Beta Was this translation helpful? Give feedback.
-
This is the correct path: '/Users/praveen/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles' For some reason, an extra 'profiles' is added to the end. I tried removing the 'Profiles' in entry.tp, saved, closed and restarted Touch Portal but the changes are not picked up, it still shows the old path: '/Users/praveen/Library/Containers/com.jerdeapps.Extra-Keys/Data/Profiles/profiles' I even tried deleting the plugin and reinstalling it, it still keeps the old location. 😲 Same thing in the Terminal. |
Beta Was this translation helpful? Give feedback.
-
That didn't work. But strangely CTRL-C did. |
Beta Was this translation helpful? Give feedback.
-
Yeah. CTRL-C because the Mac Terminal is a normal UNIX terminal which all use CTRL-C as “break”. 🙂 I’ll be too busy to give a full reply for a couple days probably, but no Lau support in Extra Keys at this point because that would be complicated and the integration Logitech defined for that seems odd to me. That profile path sounds right. Extra Keys supports both Logitech profile formats (lgp and xml) but will define a new format (JSON, I think, and easy to read because Swift can import and export it directly and I don’t want to create something to write Logitech’s format. 😄 Hope this helps, |
Beta Was this translation helpful? Give feedback.
-
Hi Mark, thanks for chiming in. Sorry about the "off topic" stuff about getting the plugin running... we moved the discussion to Discord We got it running and it looks good so far parsing the XML files, with no code changes on my side. Which makes sense if they're the same format :) I'm not familiar with the GHUB uses a JSON format, though they stuff all the profiles into a Sqlite3 I have a version of this plugin which does parse the GHUB profiles, but couldn't get any real testers and don't have any GHUB devices myself. Anyway, on Windows we can use a hack with the Lua scripting to detect when a user switches profiles or M slots. Actually have to hook a debugger to the LGS process to do that... silly but it works. W/out that (and on Mac), this plugin has to rely on detecting when the profile XML files are updated with the Does Extra Keys do anything now when switching profiles which an external process (like this plugin) could detect? I'm guessing you don't bother with Thanks again, |
Beta Was this translation helpful? Give feedback.
-
Hi Max, That SQL-wrapper-around-a-single-JSON-blob "format" sounds hilarious. Based on digging into a Logitech app or two, I think they contract out all of their software development, so it's not surprising that each new software they release is different and weird in its own new way. The Extra Keys doesn't update the Thanks, |
Beta Was this translation helpful? Give feedback.
-
Hi Mark, Ah yes, the "Key Profiler," how could I forget that one. Guess I never looked at those files back in the day. Also I forgot Macs come with CTRL keys these days... :-)
That would work. Or even just a timestamp update "touch" on the last used profile (which is essentially what changing the "lastplayeddate" also does). Though if we could also detect M slot changes, that would be the "ultimate" solution... maybe Thanks, |
Beta Was this translation helpful? Give feedback.
-
Hi Max,
Located in |
Beta Was this translation helpful? Give feedback.
-
Hi Max, Thanks! |
Beta Was this translation helpful? Give feedback.
-
Extra Keys 1.1.2 with the new feature which the LGKeys plugin will use has been released. Thanks for integrating with Extra Keys! https://apps.apple.com/us/app/extra-keys/id1541973430?mt=12 Mark |
Beta Was this translation helpful? Give feedback.
-
Hi Mark, wow, that was quick, thank you! Now my turn... and I'm about 3 projects behind right now... plus a couple IRL... LOL. Will get to it ASAP! Thanks again Mark, a pleasure, |
Beta Was this translation helpful? Give feedback.
-
Since Logitech no longer updates Logitech Gaming Software for current macOS and therefore no more support for G13 Gameboard, there is a 3rd party Mac app called Extra Keys that allows for the G13 to be used on the latest macOS systems. It can be downloaded from the MacAppStore here.
It would be excellent if this Touch Portal plugin integrates with Extra Keys since Logitech Gaming Software is not an option on the current version of macOS.
Beta Was this translation helpful? Give feedback.
All reactions