The more I use #SXMO the more I am convinced that its only real pro is that it lets me use Sway, because using a dmenu clone and inotify for all the GUI was kind of not a great idea. It doesn't suck less, it just sucks differently, and sometimes more. Main example: shutting down the modem daemons is a long action, but it's not done asynchronously, so the menu disappears, then reappears after a few seconds, but by then the user opened another menu for a different action. Advice: use a widget GUI.
I don't want to be too negative about a project run by volunteers, but Suckless is deep enough in NiH syndrome that I think it's worth pointing them out as a cautionary example.
To be fair, there *are* other good things about SXMO, I quite like that I can use a button to show/hide the keyboard, the gesture system is decent, etc.
But for every minor improvement there are major downsides compared to Phosh, like the choice of nmtui for wifi config, which means I can't connect to campus wifi.
@csepp That does seem like a difference in philosophy large enough that you shouldn't use their stuff.
Lately I consider philosophy the #1 factor in adoption choice. e.g. no more Slack for me.
I actually subscribe to "worse is better" myself. But with the following interpretation:
βIt is far better to have an under-featured product that is rock solid, fast, and small than one that covers what an expert would consider the complete requirements.β (https://www.dreamsongs.com/Files/PatternsOfSoftware.pdf; pg 219)
@csepp I have my own NIH problems. The lesson I took away from suckless was to try to be more precise about the goal. "Suck less" is so generic that everybody reads something subtly different into it. As an example, my true north is, "minimize dependencies to get something working, even if the experience is klunky."
Then again, they've managed to have more people collaborate than I've done. The generic message may be why. What do I know.
@akkartik They are kind of a "worse is better" cult IMHO. Not sure if getting more followers that way is a great idea. Free software has a huge UX problem and their attitude is not solving it. I really dislike NiH in this space because a lot of GUI complexity is essential, not incidental, and trying to ignore that means people's use cases aren't getting served. See my wifi example. That energy should IMHO be invested in improving existing codebases, or at least staying compatible with them.
@akkartik NiH does make sense if what you are building is substantially better, but even then you should try to use existing standards (APIs, formats, etc) instead of inventing your own. And if you invent your own thing, I shouldn't have to wonder if you took the time to learn from previous attempts. Again, this is very much a problem in the GUI space. Or look at any NiH project and try listing all the a11y problems its predecessors already solved and it doesn't. (and often doesn't plan to)
@anjan@stacyharper Oh on that note, before I forget to mention it: I'm not sure if it's an SXMO issue, but on Phosh my phone used to shut down well before it reached 0%, but on SXMO it dries out completely before shutting down, which is pretty bad for battery longevity.
@anjan@stacyharper That is good to hear, although I still find it troubling when the sole noteworthy inspiration for a project is suckless. Re: dmenu: the problem for me is not speed, but its whole paradigm. Plus the use of sh as implementation language. Speaking as someone who has written/debugged/customized a nontrivial amount of code in sh/bash/rc, these languages are not great. Lua has a much better power to weight ratio.
We have listened to criticism of using posix shell as the language. Posix shell isn't my favorite language but any suggestions of "this is a bad language for this" should have a patch attached that shows the problem being solved better in a different language.
For context, our power management used to be written in C. I thought our problems would be solved in rewriting with shell script and I attached code that you see today.
@csepp By the way, Sxmo is not a suckless project. We like some of suckless's ideas/programs but when someone has coded something that is a complex solution because the problem is complex, we have adopted if it has clear advantages. Ie sway support. Moreover we got better touch support into sway and bemenu thanks to @stacyharper
The reason for these issues is no one has gotten around to coding it not cause we have some philosophy we cling to.