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

Linux ever? #59

Open
TrinityErik opened this issue Jan 2, 2019 · 12 comments
Open

Linux ever? #59

TrinityErik opened this issue Jan 2, 2019 · 12 comments

Comments

@TrinityErik
Copy link

@TrinityErik TrinityErik commented Jan 2, 2019

Any plans to finish the coding for Linux? Anyone working on it or is it dead in the water?

@BramVer

This comment has been minimized.

Copy link

@BramVer BramVer commented Feb 10, 2019

It seems pretty dead in the water, which is a shame since I've dropped my Windows machine, and none of the ways of 'flashing on Linux' seem to work for me.
I basically have to spin up a Windows VM for the sole purpose of flashing compiled .hex files onto controllers.

Having the qmk_toolbox run on Linux would be greatly appreciated.

@sanecito

This comment has been minimized.

Copy link

@sanecito sanecito commented Apr 16, 2019

I'm willing to throw a bounty on this via BountySource. Would need to know the desired amount though from @jackhumbert or someone reputable so I'm not just tossing money at something that gets locked up and nothing actually happens.

I too hate having to spin up a Windows VM or work laptop, and even then Windows drivers tend to be a bit buggy when flashing stuff it seems.

@QuercusFelis

This comment has been minimized.

Copy link

@QuercusFelis QuercusFelis commented Oct 1, 2019

Any update on this? I can compile the linux code but the program itself is still unusable

@drashna

This comment has been minimized.

Copy link
Member

@drashna drashna commented Dec 30, 2019

Unfortunately, the linux version is basically just a shell. Unless somebody wants to work on the linux version, there won't be any progress.

@AliceGrey

This comment has been minimized.

Copy link

@AliceGrey AliceGrey commented Feb 20, 2020

@sanecito I'd also be willing to chip in on BountySource if @jackhumbert or @fauxpark took this up.

@jackhumbert

This comment has been minimized.

Copy link
Member

@jackhumbert jackhumbert commented Feb 20, 2020

I do have a renewed interest in this now that early Pinephones are out there - getting something going on Ubuntu Touch would be pretty neat.

@fauxpark

This comment has been minimized.

Copy link
Member

@fauxpark fauxpark commented Feb 21, 2020

I'm not at all familiar with developing on Linux, much less a GUI application. From what I can tell, a Linux port would be kinda distro-specific, unless we used something like Electron? (I have no idea)

@tzarc

This comment has been minimized.

Copy link
Contributor

@tzarc tzarc commented Feb 21, 2020

@sanecito

This comment has been minimized.

Copy link

@sanecito sanecito commented Feb 21, 2020

There shouldn't be a need to target only a specific distro. Without deep diving, odds are one could repurpose a decent amount of the C# code and switch to the Mono framework as needed. Looking at the Linux dir, if they wanted to continue along a C/C++ route for logic they could use either the GTK or Qt toolkits for GUI. Those two especially with recent advancements like libhandy for GTK are toolkits that are more polished and better lend themselves to adaptive UI which is needed to say, make a solid UX for apps on PinePhone, Librem5.

@rkrhlikar

This comment has been minimized.

Copy link

@rkrhlikar rkrhlikar commented Mar 1, 2020

I recently created a fork where I took the Glade layout file and started implementing some of the logic behind it using gtkmm (the C++ gtk library), so it should work on different distros. I started with the low hanging fruit (meaning not touching anything related to hardware, which is, of course, the most important part) so as not to lose all motivation right out of the gate (working with HW is always a PITA :)). I expect to test flashing Pro Micros sometime this week.

As is often the case with these things, I make no promises about actually seeing this through. I decided to comment here, so that even if I do run out of steam, anyone interested in picking this up can do so without starting from scratch. As long as I do, however, keep working on it, I will be commenting with any significant progress I make in the near future (unless that would be considered spamming?).

@rkrhlikar

This comment has been minimized.

Copy link

@rkrhlikar rkrhlikar commented Mar 8, 2020

As promised, a quick update:
I made some progress on the hardware side of things. I was able to successfully flash firmware onto the Pro Micros on my Kyria keyboard using the GUI. That means that the current test implementation for Caterina devices is up and running.

I had some problems with avrdude on my computer which were resolved by stopping the ModemManager service on my Ubuntu 18.04 installation when flashing the Arduinos. This can be done by running sudo systemctl stop ModemManager.service. I found this fix on the Arduino forums (if anyone would like to get more details considering the issue).

Planned next steps:

  • Support other devices that are programmed using avrdude (should be relatively straight-forward as the only difference is in the parameters passed to avrdude; however, I won't be able to properly test as I don't have any devices to test with)
  • Test implementation for dfu devices via dfu-programmer (I can test that on my GH60)
  • Add libraries that are used by the program (gtkmm, curlpp, ...) so that it can be distributed as an archive and ran directly after extraction (no need for dependency installation on the user system)
  • Implement everything required to run qmk toolbox directly from the terminal (currently the only way to flash is through the GUI)

Long(er)-term goals:

  • Support the rest of the devices (same as with avrdude devices, I will have some trouble testing as I don't own any compatible keyboards, so it will probably require some community involvement :))
  • Implement HID console
  • Update readme
  • Code cleanup
@Erovia

This comment has been minimized.

Copy link
Member

@Erovia Erovia commented Mar 19, 2020

@rkrhlikar if you need some testing, ping me on Discord!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.