[chirp_devel] Updated UI? Port to WxPython?
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used this fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the chirp.ui package in WxPython, which is much nicer on macOS and Windows than GTK, as it's an abstraction layer for the native UI components for all platforms, and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
It would be nice to be able to run Chirp on macOS without first installing the KK7DS Python/PyGTK runtime. It's my understanding that WxPython is standard on macOS. Is this correct? No external dependencies?
One frequent request is better screen reader support. GTK screen reader support is best on Linux, so we usually refer blind hams there. Is WxPython better in this regard due to use of native widgets?
Tom KD7LXL
On Tue, Dec 27, 2016 at 2:47 PM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used this fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the chirp.ui package in WxPython, which is much nicer on macOS and Windows than GTK, as it's an abstraction layer for the native UI components for all platforms, and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ | @aarontraas
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
On macOS, you do still have to do a Pip/EasyInstall for the WxPython package, but that's the same for packages like PythonXML and such. Your installer or .app bundle or whatever could take care of that dependency. I'm a bit of a Python novice -- I've used it for task automation and batch processing and the like, but haven't written graphical stuff in it before, but it seems pretty easy.
As far as screen readers go, it appears to have accessibility on all platforms. Other than web stuff, I've never played around with screen readers. I can tinker with it. I'd be willing to bet it has better support on Windows/Mac than GTK, but I don't know this from experience.
-- Aaron Traas | https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
On Tue, Dec 27, 2016 at 6:07 PM, Tom Hayward tom@tomh.us wrote:
The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
It would be nice to be able to run Chirp on macOS without first installing the KK7DS Python/PyGTK runtime. It's my understanding that WxPython is standard on macOS. Is this correct? No external dependencies?
One frequent request is better screen reader support. GTK screen reader support is best on Linux, so we usually refer blind hams there. Is WxPython better in this regard due to use of native widgets?
Tom KD7LXL
On Tue, Dec 27, 2016 at 2:47 PM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used
this
fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the
chirp.ui
package in WxPython, which is much nicer on macOS and Windows than GTK,
as
it's an abstraction layer for the native UI components for all platforms, and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ | @aarontraas
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/
projects/chirp/wiki/Developers
I am blind and use chirp on linux. It works but there are still accessibility issues. If you wish to play with as Reno readers orca is free nn linux, McDaniel is free on windows, and voiceover comes installed on mac.
Tom
Sent from my iPhone
On Dec 27, 2016, at 15:25, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
On macOS, you do still have to do a Pip/EasyInstall for the WxPython package, but that's the same for packages like PythonXML and such. Your installer or .app bundle or whatever could take care of that dependency. I'm a bit of a Python novice -- I've used it for task automation and batch processing and the like, but haven't written graphical stuff in it before, but it seems pretty easy.
As far as screen readers go, it appears to have accessibility on all platforms. Other than web stuff, I've never played around with screen readers. I can tinker with it. I'd be willing to bet it has better support on Windows/Mac than GTK, but I don't know this from experience.
-- Aaron Traas | https://traas.org/ | @aarontraas
On Tue, Dec 27, 2016 at 6:07 PM, Tom Hayward tom@tomh.us wrote: The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
It would be nice to be able to run Chirp on macOS without first installing the KK7DS Python/PyGTK runtime. It's my understanding that WxPython is standard on macOS. Is this correct? No external dependencies?
One frequent request is better screen reader support. GTK screen reader support is best on Linux, so we usually refer blind hams there. Is WxPython better in this regard due to use of native widgets?
Tom KD7LXL
On Tue, Dec 27, 2016 at 2:47 PM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used this fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the chirp.ui package in WxPython, which is much nicer on macOS and Windows than GTK, as it's an abstraction layer for the native UI components for all platforms, and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ | @aarontraas
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
I would love to see the update and would be willing to help test.
Thanks James N1DDK
On Dec 27, 2016, at 7:40 PM, Tom Masterson via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
I am blind and use chirp on linux. It works but there are still accessibility issues. If you wish to play with as Reno readers orca is free nn linux, McDaniel is free on windows, and voiceover comes installed on mac.
Tom
Sent from my iPhone
On Dec 27, 2016, at 15:25, Aaron Traas via chirp_devel <chirp_devel@intrepid.danplanet.com mailto:chirp_devel@intrepid.danplanet.com> wrote:
On macOS, you do still have to do a Pip/EasyInstall for the WxPython package, but that's the same for packages like PythonXML and such. Your installer or .app bundle or whatever could take care of that dependency. I'm a bit of a Python novice -- I've used it for task automation and batch processing and the like, but haven't written graphical stuff in it before, but it seems pretty easy.
As far as screen readers go, it appears to have accessibility on all platforms. Other than web stuff, I've never played around with screen readers. I can tinker with it. I'd be willing to bet it has better support on Windows/Mac than GTK, but I don't know this from experience.
-- Aaron Traas | https://traas.org/ https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
On Tue, Dec 27, 2016 at 6:07 PM, Tom Hayward <tom@tomh.us mailto:tom@tomh.us> wrote: The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
It would be nice to be able to run Chirp on macOS without first installing the KK7DS Python/PyGTK runtime. It's my understanding that WxPython is standard on macOS. Is this correct? No external dependencies?
One frequent request is better screen reader support. GTK screen reader support is best on Linux, so we usually refer blind hams there. Is WxPython better in this regard due to use of native widgets?
Tom KD7LXL
On Tue, Dec 27, 2016 at 2:47 PM, Aaron Traas via chirp_devel <chirp_devel@intrepid.danplanet.com mailto:chirp_devel@intrepid.danplanet.com> wrote:
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used this fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the chirp.ui package in WxPython, which is much nicer on macOS and Windows than GTK, as it's an abstraction layer for the native UI components for all platforms, and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ https://traas.org/ | @aarontraas
chirp_devel mailing list chirp_devel@intrepid.danplanet.com mailto:chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers http://chirp.danplanet.com/projects/chirp/wiki/Developers
chirp_devel mailing list chirp_devel@intrepid.danplanet.com mailto:chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers http://chirp.danplanet.com/projects/chirp/wiki/Developers_______________________________________________
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
Tom M,
Other than web stuff (I'm primarily a web developer) I haven't done anything involved with screen readers, but I'm more than willing to learn. It does appear that WxWidgets has accessibility features that should support screen readers. After I get my build environment set up, I can play around with it.
-- Aaron Traas | https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
On Tue, Dec 27, 2016 at 7:40 PM, Tom Masterson kd7cyu@gmail.com wrote:
I am blind and use chirp on linux. It works but there are still accessibility issues. If you wish to play with as Reno readers orca is free nn linux, McDaniel is free on windows, and voiceover comes installed on mac.
Tom
Sent from my iPhone
On Dec 27, 2016, at 15:25, Aaron Traas via chirp_devel < chirp_devel@intrepid.danplanet.com> wrote:
On macOS, you do still have to do a Pip/EasyInstall for the WxPython package, but that's the same for packages like PythonXML and such. Your installer or .app bundle or whatever could take care of that dependency. I'm a bit of a Python novice -- I've used it for task automation and batch processing and the like, but haven't written graphical stuff in it before, but it seems pretty easy.
As far as screen readers go, it appears to have accessibility on all platforms. Other than web stuff, I've never played around with screen readers. I can tinker with it. I'd be willing to bet it has better support on Windows/Mac than GTK, but I don't know this from experience.
-- Aaron Traas | https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
On Tue, Dec 27, 2016 at 6:07 PM, Tom Hayward tom@tomh.us wrote:
The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
It would be nice to be able to run Chirp on macOS without first installing the KK7DS Python/PyGTK runtime. It's my understanding that WxPython is standard on macOS. Is this correct? No external dependencies?
One frequent request is better screen reader support. GTK screen reader support is best on Linux, so we usually refer blind hams there. Is WxPython better in this regard due to use of native widgets?
Tom KD7LXL
On Tue, Dec 27, 2016 at 2:47 PM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
I'm a new user to CHIRP and a newly minted Ham (KD2MMN) who just used
this
fantastic software to program my new Baofeng UV-5R variant. I'm also a software developer with a lot of experience writing front-end code.
I've noticed the Mac version of CHIRP has a dated UI and very non-native feel, much like other GTK apps on the Mac.
If the powers that be are open to the idea, I could reimplement the
chirp.ui
package in WxPython, which is much nicer on macOS and Windows than GTK,
as
it's an abstraction layer for the native UI components for all
platforms,
and will render as GTK on Linux.
If this is welcome, I'll start tinkering around with the port. If you're unlikely to wish to move to a different UI toolkit, I could try to find other ways to be useful.
-- Aaron Traas | https://traas.org/ | @aarontraas
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/pro
jects/chirp/wiki/Developers
chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
Yeah, I hate having to work on the UI. I like the idea of using wx for it, if it gets us a more native look on all the platforms. Double good if we can make our OSX payload more integrated.
There is a lot of workflow in the UI that will either have to be replicated or generalized, which makes me think this is likely a pretty large project. I think the way I'd want to see it go is:
1. Put up another tree somewhere that you can push to for a while 2. Add the new UI in parallel to the old one and add some simple switch early in chirpw to select between them 3. Once a reasonable amount of functionality is there, we can see about merging it into the main tree, and make it optional somehow for regular users to try it. 4. Continue iterating until we can make the new one default, and then eventually remove the old one.
For #3, I will have to do some stuff to the windows build system I imagine. We also need to figure out what the OSX path looks like if we're going to bootstrap downloading and installing things during app run.
The setup.py process is super non-standard on all the platforms because of all the gorp I have to pull in to make the build work on windows. It would be great if this ends up with that being far simpler and more conventional.
--Dan
Dan, I already have another tree here:
https://bitbucket.org/adt6247/chirp-wxwidgets
No commits to it yet. I'm trying to get my build environment working. The upgrade to Sierra seemed to break pip for me, so I need to figure out what's going on there before I can do Python projects.
My strategy was going to be what you suggested. I'll do a separate implementation of the `chirp.ui` package, and try to keep it as code compatible with the GTK. I'm probably going to start by renaming the ui package to `ui-gtk`, and have a parallel `ui-wx`. Once we decide to merge, we can rename it back to `ui`.
I also noticed that setup.py doesn't use setuptools. I was thinking about refactoring that as well. But that can come after the UI. It would be nice to have this have a more standard layout, but there's no reason to do this all at once. I'm of the opinion that refactoring a project should be done in such a way that the commit history can really illustrate the migration. But that's probably me being a bit persnickity.
I am able to follow the code fairly easily. Not a whole lot of comments, but it's well organized, and there's very little fluff.
-- Aaron Traas | https://traas.org/ | @aarontraas http://twitter.com/AaronTraas
On Thu, Dec 29, 2016 at 10:56 AM, Dan Smith via chirp_devel < chirp_devel@intrepid.danplanet.com> wrote:
The Chirp UI has been mature for many years and very little work goes into it now. That means you probably would not disrupt anybody with a UI overhaul. Moreover, I don't believe any of the active Chirp developers have much experience or interest in UI development, so if you want to "own" this that would be a great complement to the team.
Yeah, I hate having to work on the UI. I like the idea of using wx for it, if it gets us a more native look on all the platforms. Double good if we can make our OSX payload more integrated.
There is a lot of workflow in the UI that will either have to be replicated or generalized, which makes me think this is likely a pretty large project. I think the way I'd want to see it go is:
- Put up another tree somewhere that you can push to for a while
- Add the new UI in parallel to the old one and add some simple switch early in chirpw to select between them
- Once a reasonable amount of functionality is there, we can see about merging it into the main tree, and make it optional somehow for regular users to try it.
- Continue iterating until we can make the new one default, and then eventually remove the old one.
For #3, I will have to do some stuff to the windows build system I imagine. We also need to figure out what the OSX path looks like if we're going to bootstrap downloading and installing things during app run.
The setup.py process is super non-standard on all the platforms because of all the gorp I have to pull in to make the build work on windows. It would be great if this ends up with that being far simpler and more conventional.
--Dan _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
On Thu, Dec 29, 2016 at 11:07 AM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
My strategy was going to be what you suggested. I'll do a separate implementation of the `chirp.ui` package, and try to keep it as code compatible with the GTK. I'm probably going to start by renaming the ui package to `ui-gtk`, and have a parallel `ui-wx`. Once we decide to merge, we can rename it back to `ui`.
One small nitpick, hyphens are invalid syntax in Python:
import ui-gtk
File "<stdin>", line 1 import ui-gtk ^ SyntaxError: invalid syntax
https://www.python.org/dev/peps/pep-0008/#package-and-module-names
Tom
Would love to see CHIRP move to WxPython. Glad to see so much traction on it.
-Nathan
On Dec 29, 2016 12:29 PM, "Tom Hayward via chirp_devel" < chirp_devel@intrepid.danplanet.com> wrote:
On Thu, Dec 29, 2016 at 11:07 AM, Aaron Traas via chirp_devel chirp_devel@intrepid.danplanet.com wrote:
My strategy was going to be what you suggested. I'll do a separate implementation of the `chirp.ui` package, and try to keep it as code compatible with the GTK. I'm probably going to start by renaming the ui package to `ui-gtk`, and have a parallel `ui-wx`. Once we decide to
merge,
we can rename it back to `ui`.
One small nitpick, hyphens are invalid syntax in Python:
import ui-gtk
File "<stdin>", line 1 import ui-gtk ^ SyntaxError: invalid syntax
https://www.python.org/dev/peps/pep-0008/#package-and-module-names
Tom _______________________________________________ chirp_devel mailing list chirp_devel@intrepid.danplanet.com http://intrepid.danplanet.com/mailman/listinfo/chirp_devel Developer docs: http://chirp.danplanet.com/projects/chirp/wiki/Developers
participants (6)
-
Aaron Traas
-
Dan Smith
-
jml
-
Nathan Crapo
-
Tom Hayward
-
Tom Masterson