Not everything actually requires a GUI, obviously. But anything that requires configuration, especially for controlling a hardware device, should have a fully functional GUI. I know Linux is all about being in control, and users should not be afraid to use the command line, but if you have to learn another bespoke command syntax and the location and structure of the related configuration files just to get something basic to work then the developer has frankly half arsed it. Developers need to provide GUI’s so that their software can be used by as many people as possible. GUI’s use a common language that everyone understands (is something on or off, what numeric values are allowed, what do the options mean).
Every 12 to 18 months I make an effort to switch to Linux. Right now I’m using Archlinux, and it has been a successful trip so far, except my audio is screwed, I can’t use my capture card at all, I had issues with my dual displays at the start, and the is no easy way to configure my AMD graphics card for over clocking or well anything basic at all.
I’m not looking for a windows clone, I love that I can choose different desktop environments and theme many of them to death. I even like the fact there are so many distros. Choice is a big part of linux, but there is clearly a desire to get more people moving away from Windows and until that path is 95% seamless most people just won’t. Right now I think Linux is 75% to 85% seamless depending on the use case and distro but adding more GUI front ends would, imho, push that well into the 90% zone.
GUI is not a dirty word, it is what makes using a new OS possible for more people.
EDIT: Good conversation all. This is genuinely not intended to be a troll post, I just feel it is good to share experiences especially on the frustations that arise from move between OSes.
deleted by creator
I know, but I’ve run Mint, ubuntu, and Fedora in my exploration this year. Honestly I don’t think there is much difference in terms of how many command line actions between them.
Try OpenSuse. Tumbleweed is a rolling release that is fairly stable and it has Yaast, which allows you to control everything with a GUI, even if it looks quite dated
deleted by creator
thanks. I actuially have Pamac installed, and it works really well. I haven’t tried using Yay though and pacman has done the job so far. Is there a good reason to deploy yay as well?
deleted by creator
what command line options are you needing for audio? i use kubuntu, and the only reason i hit the CLI is to provide a special output so i can implement multiroom audio, with Snapcast.
Otherwise, i think i could install most stuff without it. OO, maybe spotify needed to add an apt repo, however i think there maybe a seperate installer (snap?) which would negate that.
i feel like you were not going for a vanilla instance if the latest kubuntu/ubuntu needed work.
I have a post about it here: https://lemmy.ml/post/3624730
Hey Linux devs - Build a GUI or gtfo
No you can GTFO if that is your attitude towards people volunteering their time to bring you an open OS and all the tools you need for free.
Yes, there is still a lot of room for improvement but attacking devs for not providing a GUI is not a good way to interact with the community. If you really want to see improvements then you need to help make those improvements with constructive discussions not hostile statements. We owe you nothing.
My title was intentionally flipant. But I thin the automatic assumption that command line is always fine for linux desktop needs to evolve. Not to say it hasn’t, but there are definitely some basic gaps.
My title was intentionally flipant.
No, your title was rude and condescending. “Flippant” is a different thing.
Flippantly insulating the Linux devs is not the way to improve things. It has evolved and continues to do so. There are far more GUI tools for managing things then there has ever been. The only thing you have mentioned in your post is AMD GPU overclocking - not something I would consider a novice task nor something most people are going to want to do. So the priority to get a GUI to do this is quite low. Hell, it looks like there are no userland tools at all - only raw kernel interfaces. So it is really something we are lacking any tooling at all - let along GUI tools.
Better to advocate for these tools than insult devs for not having yet created them.
Not evolving is a feature. I started using linux in the 90s, and you know what? About 90% of the stuff I learned then is still completely relevant.
I hate GUI apps for most things, because you have to search to figure out how to do anything. With CLI apps you read the man page and you know how to use it.
The guy is really demanding something from volunteers devs? Not everyone is thinking “We need to make something easy to use so people can migrate from Windows to Linux”, people just build stuff to use and share it so maybe someone could find it useful.
I thinks only applying this to companies (looking at you, Nord VPN) would be ok, but yeah demand something from volunteers is outrageous
This comment brought to you by Raid Shadow Legends
You can always create a GUI yourself, if you think it’s so simple. It would be greatly appreciated and giving back to the community would be nice.
Feel free to open a pr.
I guess you’re not an opensource developer. Let me put it in terms that you understand:
Let’s say you’re a pizza delivery dude. You have to be out every day, delivering people to rude customers, no matter the weather. It’s hot and your balls are sweating off, if cold and your fingers are freezing, there torrential rain and you get soaked for every delivery, but bossman don’t care - you have to do it!
To relax, you have a hobby as a wood worker. It’s your passion! You make small things to make life a little easier or things that look cool to you.
One day, you buy a cupboard that’s been all the rage. Every store out there has it and it’s flying off the shelves. But after a few months there’s something annoying about the way it works. Not a problem for you, the handyman, the woodworker. It takes a few weeks, but you’ve designed, built, and tested a few solutions to arrive at something that works. It’s not beautiful, it’s not trendy, sexy or anything, it just works.Thinking to yourself “hey somebody else might find this useful”, you put the designs online. To your delight, there are a few people using it. Very few "thank you"s, but that’s fine, at least it helped somebody.
Then one day, some dude writes a comment about your solution titled “Build something beautiful or GTFO”.
Tell me, how would that make you, as the hobby wood worker feel?
I get it. I’m not a pro developer but I code quite regularly. I realise all the support you need to give for anything you develop, the time and effort involved. And frontends often take more time build than the thing it presents. My point is, there are basic gaps that need should have been addressed by now. the KDE and gnome devs could focus on those items rather than the next impressive theming function.
That’s a valid opinion. It’s yours. I disagree with your phrasing however. “GUI or GTFO” is not a nice way to present your case.
Also, it’s mostly their free time. They get to choose what they do with it. If they decide writing a window effect would be cool in brain fuck, because why the hell not, it’s completely up to them. They have no obligation to dedicate their free time to anything anybody else wants, so telling them off is at least disrespectful and at most a reason for them to stop.
The main developer of a popular rust framework (actix) was bullied enough that he quit and only when he quit did a bunch of people come out of the woodwork to support him - not before.The main developer of a popular rust framework (actix) was bullied enough that he quit and only when he quit did a bunch of people come out of the woodwork to support him - not before.
That situation was more complex - it started when a security researcher found a flaw in the codebase, raised that concern including a patch to fix it with no negative impact on performance only for the patch to get rejected for being too “boring”. The bullying was a big step too far in that situation, but the maintainer of actix was not fully blameless by dismissing others honest work for no good reason.
It was his project, he can do whatever he likes with it. Rejecting “honest work” happens. I’ve had stuff reject with just a “sorry, no” even though it fixed a bug and “I don’t understand it, therefore no”.
A least he didn’t pull a Linus on him and call him a “fucking idiot”.A least he didn’t pull a Linus on him and call him a “fucking idiot”.
No, he just called the patch boring and not creative enough. Rejecting a security fix because it was boring does not shine a good light on your management of the project. The community had concerns about his approach to the problem and he chose to double down and not fix the issue. Then the community got out of hand.
His users have just as much right to complain about the issue and rejection of the patch as he has to reject the patches. Both sides handled this case poorly and it resulted in a sad outcome for everyone involved.
Hard work is often missed but rarely thanked. My heading was rather flapant. Hopefully my comment replies show I have more appropriation for Devs than the title suggests.
Wrong.
Lots of tools in Linux have GUI. I can configure my WM (cinnamon), browser, terminal emulator, music player, communicators, email client, network and many more using a GUI.
What I can’t configure using GUI are the truly powerful tools: awesome wm, nvim, ranger, kitty. Why? Because you can extend them by writing custom code (mainly in lua). Why would you build GUI for writing lua code in every tool? Doesn’t make sense.
Sometimes there is so much configuration options a GUI would scare most users. Or as you said, a GUI may not be feasible or useful
Sometimes there is so much configuration options a GUI would scare most users.
Or if it didn’t, it would be because the dev limited the options displayed so much that it would cease to be useful for most users. (This is especially true when different users are likely to use different subsets of options rather than having the majority of them using the same subset.)
YaST in a nutshell…
Takes a whole bunch of system command line stuff (and even stuff already in other GUIs) and throws it into a Windows-like control panel type thing.
Now, it’s great that it’s an option.
What’s not great is opening it and seeing dozens of fucking options, not knowing what half of them are if you’re new to Linux. (To be honest, it’s even overwhelming if you are familiar with Linux.)
So the people it’s supposed to appeal to end up with a complicated control panel they don’t understand, and the people who actually know what all the entries are for end up sticking with the terminal and ignoring it altogether.
Although, all things being fair, no one new to Windows would really understand the control panel either, but at least it’s so widely used that any instructions you get about it usually won’t have you going into the registry or cmd.exe or PowerShell or something.
On Linux and using YaST? Here’s the response you’ll usually get: “Okay, so click the exit button and look for something called ‘Konsole’ or ‘Terminal’ in your applications. Open that up and paste this command…”
The pasting of random commands is something wikis should avoid. The best option is saying the command and then explining what everything does but this is something that happens pretty rarely
There’s a difference between complaining and providing constructive feedback. This post falls in the former category. If you are a user of a free product and you don’t like how it works, you are entitled to a full, no questions asked, refund. You’re welcome to make suggestions but devs who work hard to provide something at no cost and on their own time owe nobody anything. I’ve seen this play out year after year in the open source community and it’s led to a lot of very good projects shutting down when the developer gets fed up with the demands and behavior of the community of users.
- chooses Arch
- complains there’s no GUI
I guess you learned something
Yeah Arch is not worse than the other distros. That is just a reputation it has. Other past than the initial install and into KDE I don’t feel like it is any more command line driving than Mint or Fedora.
Then why are you using it? It’s such a braindead take, and you’re still committing to it.
Having read the rest of your comments in this thread, the two takeaways are
- Arch isn’t for you
- Linux in general isn’t for you
I’m fine with config files, as long as they are where you expect them (~/.config/tool or ~/.tool). What I dislike is yet another funny config syntax because the dev couldn’t settle on an established standard. Command line syntax is ok, if you give me sensible completions.
as long as they are where you expect them
This has to be my number one gripe about Linux. How every package just spews binaries and libraries and config files all over the place. “Where the fuck is the actual executable and its configs? Is it in /usr/bin? /usr/sbin?/usr/local/sbin? Who the fuck knows.”
God help you when you uninstall and clean things up if you use compiled packages instead of ones from your repository.
edit: mixed you up with OP, but, meh, unaltered reply:
Where the fuck is the actual executable and its configs?
which ...
with … being the name of the executable. Whyever it matters to you in which exact path an executale is …God help you when you uninstall and clean things up if you use compiled packages instead of ones from your repository.
make uninstall
orxargs rm
will usually do the trick. If neither is an option, observe the output ofmake -n install
and undo the installation manually.Judging from your post and comments, you’d be much better off with a distro other than arch and using packages from a distros repository plus maybe flatpak or snap.
This has to be my number one gripe about Linux. How every package just spews binaries and libraries and config files all over the place.
99.9% of the times those places are pretty well defined and easy to look up. You seem to lack some basic knowledge about linux/unix conventions and make false assumptions about how things should be and then come to judgemental conclusions when they aren’t.
If the package comes from the repo, you can uninstall it by the same name you used to install it. If it came from a .deb file (in case of debian), you can find out how the package calls itself and use that name to uninstall. Usually the package name is quite identical to the file name. And
dpkg -L
shows you which files came from the package and where they were installed.Finding the actual location of the executable is what the
which
command is for.
I’m with you. I’m a seasoned newbie, and I’m ok with config as long as I can find something to help me get through it where I’m. It completely lost and the guide isn’t 30 pages of gibberish that only makes sense to someone helping build and maintain the source/branch.
I do love the familiarity of a gui as it lets me be “lazy”.
That said I started on Ubuntu, didn’t really like gnome, tried kububtu, was meh on it. Then got to dislike cannological. I’m currently using mint, and have tried several distros as a vm. Fedora and Debian are 2 I’m trying to understand better.
That said arch and gentoo both seem like distros beyond my skill set, and I think I’d struggle with them as I don’t feel like the communities align with my needs. I feel like I should get better at stripping out what I don’t need in my distro before I start bare and build up finding only what I need.
The cool part of Linux is it’s kinda hard to go wrong with the choice as a platform. Picking the distro has been a harder choice to find what community aligns to my needs. So virtualbox, ‘kinda’ to the rescue.
Linux ist mostly used for servers, where you rarely need/have a graphical environment. A big part of development is making sure to keep the kernel safe and prevent endangering critical infrastructure.
That said, I agree if Linux is to be adopted more widely as a desktop system, good graphical UI is crucial. It’s just not the focus of most Linux devs.
Believing that GUI is a common language is funny.
CLI is literally a common language as long as devs follow the actual rules. GUI? No. There are no rules for where configuration is. File->Settings? Maybe. Or maybe it’s under Edit. Or maybe it’s behind a gear symbol. You point out you like the variety of desktop environments but ignore that it’s not easy to get something to look great in everything. It’s like back in the day trying to get a website to look nice. It was either basic HTML that looked good in IE and Netscape (I know there were others, but let’s be real) or you had something fancy that only worked in IE. So yeah, folks spend their valuable time on providing functionality instead of looking pretty. Sorry not sorry? Until more money goes towards those projects, you’re going to be missing unnecessary bells and whistles. There’s a reason Mac looks pretty. Money.
I will take new features, performance improvements, and bug fixes over adding a GUI every day of the week.
Devil’s advocate:
ffmpeg
is not common language, it’s an eldritch incantation beyond human comprehension.common as in Switches are binary, so thats easy. Error checked fields are also easy to work with. Drop down lists, radio buttons, all pretty standard stuff. Yes there is some variety but there is little doubt that switching something will do what the label says, where as a command line and conf file require a lot more work, espeically if you want to make frequent changes to those settings.
I understand the people give their time to the Linux project without charge, and it is a little cheeky to make demands, but there are some obvious basic gaps that need addressing. Rather than focusing on fancy themes, maybe some more configuration management stuff would be useful?
Those items you mention have standards but aren’t required. Some people use a flip that goes back and forth where it just changes color. Is it on when it’s color x or color y? Dunno. Finding the settings is also the big problem. VSCode takes an interesting approach to it as a GUI but it’s hardly ideal. GUIs do not have written constraints that CLI does. I’ve seen radio buttons where it says on/off but the description doesn’t actually make it clear of on means it’s active or off means it is. I’ve seen the descriptions change based on it being toggled and the description matching what would happen if you click again.
GUIs are not standardized and again, sometimes it’s simply just getting them to display properly in every environment. It’s not simple.
It’s been fine for decades. Just because people are getting dumber with complex computer systems doesn’t mean we should put in extra effort and ignore more worthwhile work. The only correct answer here is if people making the demands want to go ahead and do it themselves. They’re the ones who want it so badly.
I don’t see this as a serious issue. It’s absolutely not a necessity. If a developer wants to do it, they will. If not, demanding they’re failing to do something is a bit entitled. The tone of this whole post was entitled. Especially considering the distro chosen. CLI is by far superior to GUI. Always has been. Finding information on configuration is always easier and faster on CLI than trying to find it in a GUI unless it’s the most mundane of applications in which case both are extremely easy. Telling somehow how to do something is insanely easier with CLI than taking screenshots or describing where you need to click. GUIs are a handicap for folks who can’t figure out the simplicity of CLI. GUI is a nice to have for some things but rarely a better option overall.
“Be the change you want to see in the world.”
But anything that requires configuration…should have a fully functional GUI.
Does this apply to ones with only 4 or 5 options to configure, where’s the cutoff? Configuration files set the default flags and arguments, and a lot of command line tools that are configurable are small and simple enough that making a GUI just to configure it is not worth the hassle, the increased complexity and codebase size. The idea is that if the software is one or a few executable binar(ies) with enough flexibility, then contributors who’s proficient with GUI toolkits can write the GUI wrapper (as a separate package), otherwise it’s actually just a waste of time for the main dev(s). If that sounds reasonable, then you could write it yourself, pay someone to do it, or wait for someone to volunteer their time.
To address the problem itself. Maybe you should explain what problems you have with editing the configuration files yourself? I know the cons are: (1) having to know or be able to read toml, yaml, json, ini, or some kind of config syntax (but I think they are designed to be generally quite easy to understand), (2) it takes a bit longer to find and open if you’re not used to it, (3) everything is a file so it’s linear, making it harder to see where things are, so longer configs are a PITA. Good tools I think benefit from a GUI or TUI is TLP, archive managers, calculators, volume controllers, font manager or viewer (kinda obvious), why would you want a GUI to configure, e.g., bat, pacman, i3, dunst, all the xorg stuff like xresources, xmodmap??
In return, the pros are: (1) if there are no external docs, the docs can stay inside the default or sample configuration in the form of comments, whereas for GUI you can’t possible include this information for every single toggle, (2) it’s harder to version control because of increased abstraction, (3) it’s not possible to translate every configuration field to a GUI if it’s beyond just a toggle, you would still have to type things in.
I think having an extra GUI wrapper is a matter of complex balance, and made into reality by contributors and volunteers (or eventually, the devs themselves). To say everything should have a FULLY functional GUI if you have to configure it is a bit of an exaggeration and overreach.
I agree there are times a GUI is just not needed, like for one off configurations that are straight forward and never touched again. I’m not a professional developer but I do write some code, and often the bit that does the work is a few lines and the inferface is a many more lines, just error correction / prevention adds more lines of code.
I have spent the last few days tackling an audio issue that is looking more like it will need me to start building my own kernel. I always do my own investigations and it is that process, the many years of taking the “lets try linux” trip, to realise the basics are what make the OS accessible. Things are so much better now than even 2 years ago, but Linux (all distros) is still missing some basics. Rather than relying on 3rd parties to make GUI’s the original developers should take the responsibility to provide a solid user interface.
Rather than relying on 3rd parties to make GUI’s the original developers should take the responsibility to provide a solid user interface.
The original developers are volunteers that made a tool they needed and shared it with the others of their own volition. They may or they may not make the effort to add anything extra on top of it. Demanding it from them is just unreasonable. If you don’t like their gift to the community, you can provide your own, with blackjack and GUIs.
Frontend and backend are different kinds of development. It’s like me expecting you to write a whole lot of unrelated code just because you want something else. Just because you don’t understand software architecture doesnt mean you can make wild claims with no basis in reality.
Simple one off configs are the easy ones to create GUIs for. The complex ones are a nightmare. That’s when you get very bad UX. Creating a good UX is a lot different for GUI and there are entire companies dedicated to only writing those and here you are claiming small time developers are under an obligation to give you what you want.
GUI seems easier to you because you learned it first. That does not mean it’s better.
-
PowerUPP: GUI functional AMD GPU configurator for all voltage configuration, frequency tuning, SoC and memory frequency and voltage tuning
-
CoreCtrl: GUI usually-functional AMD GPU configurator. Fan curves, over and under clocking, power profiles, frequency and voltage tuning
You have to enable ‘amd.ppfeaturemask=0xffffffff’ in your boot options, but that is clearly stated in the user guide.
For sound, PAVUcontrol or the KDE volume setting GUI have been able to fix 80%-90% of my audio issues. I haven’t used a command line for audio in a long time.
I agree that GUIs make it easier for mass-adoption but things not working out of the box and having to search for solution is just as much of a Windows problem as Linux. If someone has non-standard hardware, it is always a bigger problem to switch to another system. Windows still will randomly shut off my Yeti microphone input and switch to my monitor with no microphone as the system microphone on boot sometimes.
The difference is in windows for weird setups you have to run obscure possible virus runme.msi from 2015 where linux you have to put in an obscure command that you aren’t sure what it does from a forum post from 2015. The only one that has mostly nailed that down is OSX.
PowerUPP hasn’t appeared in my discovery so far. I’ll check that one out. CoreCtrl is the one I’m planning to test so I can’t comment yet. Hopefully they also offer more basic feature controls as well.
PAVUcontrol Doesn’t have a an option to set any of the sample or bit rates. At least not in the version I have.
The difference is in windows for weird setups you have to run obscure possible virus runme.msi from 2015 where linux you have to put in an obscure command that you aren’t sure what it does from a forum post from 2015. The only one that has mostly nailed that down is OSX. I agree with you here. OSX is annoyingly good.
-
I love the command line nature of Linux. It’s waaay easier to automate tasks than with a GUI.
I recently found out I could scan images from the command line. A few minutes of hacking later and I had some scripts that greatly sped up the process of scanning books over using the GUI.
And I can see your point of view, but the thing is that “Linux devs” do this for fun. And writing GUIs isn’t the most fun kind of programming for a lot of people.
If you need it done, you can pay someone to do it, or program it yourself. Otherwise the only other option is to wait upon the kindness of strangers.
As from the beginning, OSS devs will work on whatever they want to. Free work is not market-driven.