Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

G13++ - and the kitchen sink... #15

Merged
merged 27 commits into from
Jan 20, 2016
Merged

Conversation

james-fowler
Copy link
Collaborator

This is almost a rewrite - much of the original code is still there but it's been significantly refactored. I've also added a whole lot of new features, including

  • Text output to the LCD
  • Multiple Key / Key + modifier bindings
  • Multiple profiles for key bindings - switch on the fly
  • Adjustable STICK mode, and adjustable zones
  • command line options, like _sudo ./g13d --config starcraft2.bind --logo starcraft.lpbm_

and more... /README.md covers most of it.

@ecraven
Copy link
Owner

ecraven commented Dec 14, 2015

thanks for this, sorry I've been unresponsive up until now. I'll have a look later and will probably merge this. thank you for all the hard work!

@james-fowler
Copy link
Collaborator Author

That's OK, I hadn't really expected much until I put in a pull request, and you responded to that plenty quick.

As I mentioned, there are a LOT of new features, and I took quite a bit of liberty in reorganizing the code - partly because it makes it much easier to extend cleanly (the number of lines of C++ source more than doubled, and that's after shortening several parts of the original code). I have informally tested just about everything I can think of, except for managing multiple G-13s (I only have one, but theoretically it looks possible...).

Even where I've extended things, I've tried to keep the usage completely backwards compatible, so that existing users should be able to drop this in and have it just work. For example:

  • launching sudo ./g13d mylogo.lpbm still works the same, even with the new command line arguments
  • bind key targets no longer need KEY_, for example _bind G1 LEFTCTRL+F1_ works, but _bind G1 KEY_F1_ also still works
  • bind STICK_****_direction key_ still works, although stick_zone action _zonename key_ might be preferred.

The only negative I've noticed compared to the original is that the resulting executable is larger (grew from around 337k to 709k on my system) and it probably uses more heap space too. That doesn't bother me, but I'm running on a system with 32GB ram so YMMV...

There are a still a few things I'd like to see added, including better logging and better handling of device permissions. Fortunately much of that's already been done in the pull requests by @thecarp(#3) and @lmiphay(#11).

Check it out, if you like it you might consider adding me as a collaborator. That way I could help manage issues and pull requests.

@ecraven
Copy link
Owner

ecraven commented Dec 20, 2015 via email

@james-fowler
Copy link
Collaborator Author

Thanks! I'll put it to good use... although it may be a little slow
through the holidays.

  • James

On 2015-12-20 05:17, ecraven wrote:

Sorry, a bit tight on time right now, I've added you as a
collaborator,
feel free to use that power :)

Basically the direction I was aiming for is no gui, but a daemon that
can be instructed via the pipe (or command-line arguments).

Thanks for all your hard work!

Greetings, Peter

Reply to this email directly or view it on GitHub [1].

Links:

[1] #15 (comment)

james-fowler added a commit that referenced this pull request Jan 20, 2016
G13++ - and the kitchen sink...
@james-fowler james-fowler merged commit 42f22de into ecraven:master Jan 20, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants