Let the apologists have a field day in the comments.
I’ve been using linix for like 18 years and I still prefer GUI over CLI hands down. Make things easy by letting me click on some nicely explained buttons.
Is this some peasant meme I am too NixOS to understand?
(Joking, joking. A good system settings center is important for graphically managed distros.)
I don’t care if settings are done by GUI or terminal, I just want clear and concise descriptions for specific settings and not a condescending “go read the man pages you fucking noob”. I’ve been fucking with Linux for over a decade now; a lack of clear documentation is not my problem, and at this point is unacceptable.
Especially when the settings are named the same/similar as other apps but do different things
Just fucking comment line quickly what the fucking thing does you dickheads, or use your settings page for more than 3 things and stop hiding everything else in your fucking .YAML (also Stop using .YAML)
YAML is good for scripting services (like docker stacks), but otherwise I agree, stop using it for absolutely everything.
I also wish Linux used a standardized config file format.
This makes sense, within reason. Limiting the visibility of low level system settings and statistics is good for the normal user’s experience. That is not just to keep them from breaking their system, but it also makes the commonly used settings easier to navigate and use.
I don’t say this in a gatekeeping way either. I am a developer and old computer nerd who has a terminal open pretty much all the time. But I also run Mint and I use the GUI for all kinds of stuff. If I may stretch to make a metaphor, the primary user-friendly UI from the driver’s seat of my car doesn’t have indicators or controls for all kinds of things I care about, but they are things I don’t need to do every day in the middle of a drive. I can do something out of the ordinary to get to them when the need arises.
The nice thing about Linux is that in the GUI these things are merely hidden. They aren’t locked down and denied access entirely like you might get with a commercial OS.
The worthwhile discussion/argument IMO is just where best to draw that line. I personally don’t have strong opinions on the computer side because I am comfortable with CLI and text files. My gut feel is that more GUI is good, but my suspicion is that actual “normie” users want simple. To them the OS is just the screen that holds the icons for their apps, like a smart phone. It is not a gargantuan tree of settings they can peruse like I might.
Funny though, I DO have a strong opinion in the case of my car metaphor. I currently drive an old economy car, and it doesn’t have a coolant temperature gauge. There’s just a warning light for when the coolant is already too hot or is still cold and warming up. The lack of the gauge doesn’t affect the performance of the car and it has not ruined my day in over a decade of ownership, but I’m a bit of a car guy and an engineer to boot, so I want more information like you might see in a truck or sports car.
That’s another nice thing about the open nature of Linux. There isn’t one official setup that everybody gets out of the box, which can be confusing, but it can certainly be made to fit many different people’s needs.
Sure… Want to fix the stupid new menus in windows 11? Oh it is just a new guid key in the registry in a location you wouldn’t expect. You know just cut and paste shit into the registry you found on the internet. Windows is just as annoying, if not more so.
In any case: what system GUI’s do you want? GUIS make everything so much harder, careful what you wish for.
Does Windows 11 still use the Windows 7 control panel?
They deprecated that to prevent users from messing with things
No, there’s a couple rogue advanced dialogues but the control panel’s finally been well replaced
Ehhhh, you can still get in there. Also there are several control panel only functions. It’s been pretty frustrating how they’ve incremented change. I feel like they should have gone menu by menu in control panel and just built their new settings application page by page and then just pushed one big control panel alternative. Then they could phase the old one out or leave it in for legacy users or whatever. But the new settings and how that menu changes every few months is frustrating as hell.
rip in peace, control panel. will be missed.
YaST on OpenSUSE is pretty nice.
I always viewed YaST as SMIT(ty) for linux. Haven’t looked at suse in forever, though.
I have no idea what SMIT(ty) is, so I’ll just smile and nod [smiles and nods]
https://en.wikipedia.org/wiki/System_Management_Interface_Tool
It’s a menu driven system management tool for IBM’s AIX unix variant. Oddly enough, even Wikipedia shows the relationship from SMIT to YaST. Instead of just smile and nod, next time make up something about “smitty print” (damn near everything was under the “print submenu”, ostensibly because you were printing out the config to screen), and look like you are a grizzled veteran of corporate unix from the days of yore.
:-)
12 years ago maybe, plasma made a lot of improvements since then
Can I edit systemd services and bootloader settings somewhere?
There really aren’t any simple settings for grub that need a GUI and honestly the systemd service CLI for enabling starting and disabling is pretty damn easy
Systemdgenie is good enough for me, but that’s just me.
It’s why I’m so furious about Linux in general and how every god damn intent to change almost any setting begins with “open Terminal…”. I don’t want to use the damn Terminal. It’s 2025 now, put the god damn basic ass settings into control panel so I can click it without first spending half an hour to find a long noodle of commands for Terminal that I don’t even understand, paste it in and hope for the best.
Like, I had issues with Bluetooth module in my laptop and I wanted it disabled so my BT USB dongle is main. In Windows I’d just go to Device manager and disable that device. Done. On Linux I spent hours diging on how to disable BT module and weed out all the bullshit on how to disable the function itself because I need it, just not from the fauly module. Then I spent asking on Reddit where someone finally posted a working Terminal command that I had to save into config file using Terminal because file manager is to stupid to save it into system area by just asking me if I want it there or not. I now have a folder with config file and instructions on what stupid ass copy command for Terminal I need to use to copy the config file where it needs to be.
Just so much unnecessary bullshit for something that could be done in literal 5 clicks at worst if the damn option was in GUI to disable single device on the system. Also fun fact, Linux has a “wireless devices” tool, command line one and it uses device ID to apply it and the fucking ID changes every time for the device so you can’t make a permanent setting. I kid you not. I’ve never seen anything more idiotic.
I don’t want to use the damn Terminal.
Unfortunately the people who code prefer not to use guis if they can help it.
This, so much.
I genuinely could have said something very similar but in reverse.
I don’t want to use a GUI that does stuff that I don’t understand behind my back. Terminal is simple. You read the man, the output, the return value, etc and you just know what happened.
imhi GUIs are a pita proportionally to how complex what you’re trying to do is.
How ungrateful! Do it yourself? It only takes learning how to program. Thats like… a 45 minutes search. 80 if you want to learn how to program an OS from scratch.
Everything I know about bash I learned by spending a decade copy-pasting random commands I found online into my terminal.
It’s really that easy. You’ll be sudo apt update-ing with the best of them in no time when you spend a decade copy pasting commands you found on the web to your terminal.
And, in the meantime, you’ll only destroy your OS maybe a few dozen times!
True story - I keep blank audio CDs around because my cars have CD players. The fact that I still burn CDs is another story, but Debian is still small enough to fit on a CD-ROM. So I keep a backup of Debian 12 on a CD-ROM so I don’t have to lose a flash drive to that task. Very convenient. And I’ve broken my system a few times tinkering. I’m not even sure how. But hey, I love to go fast and break things. I probably made an edit to a file long ago and forgot about it and now it borked stuff. It happens.
At this stage, I’ve got it down pretty good. If I break my OS, I can plop in my boot CD, use rescue mode to back my home folder up to a flash drive and wipe the system. I keep lots of other things on extra HDDs so all I ever wipe is my boot SSD. I have an Nvidia GPU so before I log in for the first time, I just get back into rescue mode and set up my root password, user account and password, reclaim my home folder, change ownership to the new account, set up fstab, and install drivers and programs before ever logging in as my user for the first time - all from the console.
As for data loss, I haven’t lost any. I have never needed to wipe my hard drives so as long as my home folder is intact, retrieving that is easy enough. I don’t keep just one copy of irreplaceable files, either. While my phone does back up my stuff to Google Drive, I keep additional copies of my favorite pictures and videos on DVDs. Three copies, on at least two different media, one of them off-site.
Breaking your OS is really not that big of a deal once you know how to retrieve stuff without it. You don’t even need CDs lol The boot CD is just for convenience. You can bork the system on a computer with just one storage device and as long as you have two flash drives, you can get it all back pretty easy.
But I’m only here after years of experience in bash. If I went back ten years with a busted laptop and told my 22 year old self to use lsblk, mount, and cp to copy the home directory to a removable device all in command line, younger me would probably cry lol
As the other comment said, not OS friendly XD
You don’t need to “learn how to program”, whatever the fuck you mean by that, to interface with texting terminal. We’re interfacing via text right now and you seem to do it just fine, you don’t seem to need a selection of colourful boxes to understand what I am saying
You’re asking average people to learn a new language so they can install software (thats not on the stores) or to do some beyond basic configs. Why should they bother learning bash when they could just use windows and learn somethint else with that time?
How many times did i find a post telling me to create a weirdly named txt just to change my touchpad settings? Its not trustworthy for noobs. How is a noob suposed to know if a command on a tutorial is safe or not if many linux distros let you destroy them via rm -fr? Are they supposed to search each and every command before they use them? Im sure lots of people rightfully reject using the terminal (and therefore linux) for this reason.
KDE has an enormous system settings GUI.
Having said that, I use the console for like 90% of tasks. Basically I use either the GUI browser, an editor (I’m a dev) and the console through yakuake.
I use the console because it’s way WAY more efficient to get shit done. What teo windows admin do in 30 minutes I do in 30 seconds, and that was an actual event where we had to change DNS configurations inna large amount of customer servers.
Command console is not old tech, it’s efficient tech.
Having said that, most normal users shouldn’t have or need to access the console either and for most of the time, this rings true with Linux now. Yeah, there are few exceptions here and there, but then again, windows too requires these senslrss Registry settings, or sometimes even command line actions as well
This is just not true. The average Windows user never has to open the registry, only devs and tinkerers have to. Neither a shell.
For Windows admins do in 30 minutes and you in 30 seconds takes a normal user either 30 minutes ib Linux or, way too often, 30 hours because the random command in the internet didn’t work, did work but had unforeseen consequences (way worse and way too often) or outright broke their system.
Even KDE lacks settings, and even if they ARE there the community is so god damn “terminalistic” that you’ll barely find the correct answer for the GUI, just a bunch of CLI commands that will age like milk and cause future people who look for help to accidentally break something.
NOBODY should be forced to enter a superuser command they can’t understand to achieve a goal they very well do. The community is still fighting against the users’ ability to open a file browser or text editor as superuser WITHOUT going through the command line. It sucks, and normal users constantly get alienated by the lack of these fundamental things on a system that pretends to give them full control.
Full control it does give; after 2 years of painfully learning the command line and its bells and whistles. And this sucks.
I’m sure it’s different in many distros, but in Mint the ability to open a file browser as root is in the right click menu.
What teo windows admin do in 30 minutes I do in 30 seconds
You know that pretty much everything in Windows can be done with powershell, right? Just a few and very specific things need to be done using older command line tools, or extremely rarely using a GUI.
It’s trivial to write a script that changes the DNS configuration on every server for example. It’s even easy to parallelize it.
You pretty much only need something like this.
$Servers = “server01”, “server02”, “server03”
$Servers | ForEach-Object { Invoke-Command -Computername $_ -Scriptblock { Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses (“10.0.0.1”,“10.0.0.2”) }}
I can’t guarantee that it will run, since I wrote it on my phone (hence formatting), but it wouldn’t be far off. You could also do it without pipes using something like ‘foreach $server in $servers’ but that’s harder to type on a phone and I prefer pipes.
I don’t mind using the terminal, but how the fuck am I going to remember something like
kwriteconfig6 --file startkderc --group General --key systemdBoot false
? (In fact, there aren’t even man pages for that command). Like the scribbles of a mad man I’ve had to put down commands like that in a sort of personal instructions manual, because ain’t no way I’ll remember these commands by heart.
And you often end up just saving the most used commands as aliases or functions in the .bashrc meaning you don’t retain the syntax for the commands you use. Well, maybe I’m a unique case of fish memory… The thing about humans is that we greatly rely on our vision, and having GUI’s to show what’s possible greatly improve ones understanding of how to manage it going forward.kwriteconfig6
is barely documented because you’re not really supposed to use it. All of the settings that users are expected to change are in the nice settings app that Plasma ships with. Using kwriteconfig (or equivalently a dconf editor on GNOME) is like editing the registry on Windows; you are implicitly opting into more power, out of most guardrails and into potential breakage. The UX being a bit questionable (though honestly it’s really not as bad as you’re saying, it does exactly what it sounds like it will do?) is to a degree intentional, because you’re not supposed to be using this unless you know what you are doing.Tbf, disabling systemD autorun is the only thing I’ve ever user kwriteconfig6 for, because with it enabled bash scripts don’t run correctly.
I keep all the little snippets like that in an org-mode file, and write notes about what I was doing and why, and org-babel can even execute the code right there in the document.
and it’s not even running a terminal!!
This is why GUI exists. So you don’t need to memorize idiotic and long commands.
I have a similar rant with Docker.
On macOS there’s a Docker app. You can use it to install stuff, see what it’s up to, restart it and whatnot. On Linux you have to remember what commands you have to use in Terminal.
Why?!
There are loads of us out here who would appreciate a more user friendly way to use FOSS, but we’re made to feel like fuckin noobs because we don’t want to spend ages typing in commands when we could just press a couple of fucking buttons.
Anyway, apart from that I’ve been enjoying my adventures in Linux.
You’re probably talking about Docker Desktop. It may not be on Linux (or at least your distro or whatever) because it’s not actually FLOSS. If you want to use Docker with a GUI I’ve had success with Rancher Desktop which is made by SUSE and is FLOSS. It’s still Docker (unlike podman which is not technically Docker), but it has a GUI for some stuff too.
I tried installing Docker Desktop at work and realized the license doesn’t actually allow that without paying. It was weirdly difficult to install Docker by itself on Mac so that led me to finding Rancher Desktop.
Since suggestions in the comments are just words of apologists, do you have a proposal for a solution, or is this just a rant post?
All I’m getting right now is a vague idea of some Master GUI that resembles the cockpit of a commercial jet that no “average user” is ever going to try and decipher, anyway.
do you have a proposal for a solution, or is this just a rant post?
I think this post captures a commonly felt problem whether or not it is still a fair criticism.
I think there should be a standard for config files, where it defines all of the options and possible values, so that an app can be made to modify them.
There doesn’t seem to be an existing standard for what I described, from what I see.
There are existing standards. The issue is that there are too many different standards and some programs will choose to make their conf files half standardized, half unique.
There’s INI, YAML, JSON, XML, TOML, etc.
Honestly, the Linux team needs to just choose one of these formats, declare it the gold standard, and slowly migrate the config files for most core components over to it. By declaring a standard, you’ll eventually get the developers of most major third-party tools and components to eventually migrate.
Thats not exactly what I meant, I meant a system where you would have a file that defines all the options for an app, and their possible values, so a gui or program could be made to edit them.
Yeah something like that should be doable but it would require that programs provide a schema and the OS to have a way for the programs to “announce” themselves so it can be aware of the configuration files and the schema.
I’m sure some project could create a GUI that could cover the most common applications, though.
It’s always fun trying to set up a program, learning the config syntax, running it, having it fail, and then spending an hour debugging before you realize it never even read your config changes because you were supposed to use one of the other half dozen conf files it has spread all across your drive. Is it under
/etc/
,/usr/local/etc/
,/opt/
, or your home directory?I was thinking, they would put the definitions in a specific directory, like if its installed locally, ~/.config/definitions or if installed globally /etc/definitions and then any settings apps would search for those.
What comes sort of close, is that you can define so-called “schemas”, at least for JSON, TOML, YAML and XML. Here’s what that might look like for JSON: https://json-schema.org/learn/getting-started-step-by-step
I don’t know, if you can actually generate a GUI from such a schema, though. They’re intended for validating existing data, so I don’t know, if they give you enough data to work with to actually provide a GUI. For example, you don’t really have a human-readable name in these. The fields are rather called e.g. “productName”.
Yeah, I am aware of schemas, I meant something where you would have, for example, a conf.definition.json file:
{ screenResolution: { definition: "What resolution the screen should be", options: [ "1920x1080", "720x470" ] } }
So then, a settings app could control settings for other programs, like apple does, by checking this file, and editing the configuration file based on it.
Schemas are a nightmare to work with, and are totally unreadable
If you ignore the gui part, this sounds a lot like nixos.
It’s not about what serialization format, it’s about what possible values there are for each field.
Any modern Linux distro viable for the average user uses systemd, and there ain’t many different bootloaders being used by big distros either (almost always either Grub or systemd-boot, rarely Efistub). Likewise it’s clear for years that Wayland is the future (not to mention this problem persists for over 2 decades now).
I don’t see a problem with lack of standardized config files, rather a lack of interest by the rather tech-conservative part of the Linux community (who by now often have a lot to say in development circles).
You should have done the 2nd half in ascii art because terminal ;)
2nd half in raw binary because I use Arch btw.
2nd half in uncompiled source code because gentoo
*openSUSE enters the chatroom
SUSE/openSUSE are the only ones that have it figured out. It requires a lot of polish, but it’s the only distro that seems to really care about a deeper system configuration through GUI, and that’s really appreciated.
NixOS has the potential to do really well here. The Nix language has a rich enough type system to generate GUI forms for every field, and there are several projects being worked on that allow editing NixOS options from a GUI. They’re still very janky, but it’s definitely possible to get to a point where a layperson could operate them without breaking their system.
Nix is definitely where I’d bet on good GUI development, if I had to choose. I’ve had my own issues with NixOS in the past, primarily due to me simply not being able to fully grasp some of the language for configs, but I’d definitely assume that GUI editing would be much easier due to the more predictable nature of the config files.
What’s the deal with NixOS? I’ve never tried it
What people expect:
✅Fix my box
❎Fuck my shit up
What we would get: System Kernel Interface
🔳 Regex Recursion
🔳 Kernel Language (Internal) [Dropdown: en-us, Dvorak, binary, Klingon, non-binary (Borg analog), Esperanto]
🔳 Ignore LPT on fire
🔳 Memory hole on sysctl
🔳 Mansplain man(8)
Yeah some people seem to have this expectation that there should just magically be a button to unbreak the PC. They talk about their personal pain points when using Linux as if there’s a conspiracy of devs to hide the unbreak buttons for the sake of elitism, but that… just isn’t a thing? If it was that easy to fix an issue, you probably wouldn’t need to fix it because the system would already come unbroken by default. I sympathize with everyone’s Bluetooth configuration woes but mostly it’s a pain in the ass because Bluetooth, in general, is a pain in the ass, not because of elitist devs (who I should mention are doing this in their free time for no pay. There’s almost no money in desktop Linux, unlike in servers).
I expect a Red x
Windows users are used to everything being so locked down that it’s virtually impossible to mess up your system… lots of this stuff is in config files because exposing it for everyday users would be asking for people to completely brick their workflow.
If you put every option in a GUI, there would be so much stuff that nobody could find anything.
I think you just discribed windows I know my head hurts looking at GPOs.
No Windows put everything in a GUI, then added a second GUI that didn’t quite have all the functionality of the first one so kept both around, then despite the second GUI existing for nearly 10 years it still couldn’t do everything the first one could and then they completely redesigned it rather than just introducing all the functionality from the first GUI, but they removed some of the functionality of the second GUI from the first GUI so now both GUIs are incomplete and full of functions that just link to the other GUI
That’s basically Sharepoint. You better bookmark the three different Web pages because they have different options you won’t find on the two other. But also just finding and remembering those three Web pages is a Pita. I or better yet, never have to manage Sharepoint pages. This stuff is worse than printers.
Oh god don’t get me started on SharePoint, I only recently discovered that disabling permission inheritance doesn’t actually disable permission inheritance…
As kludgey as they are, though, I do wish there was a good replacement for GPOs in Linux
There is and it can be mapped to GPOs when connecting to AD https://en.wikipedia.org/wiki/System_Security_Services_Daemon
As cool as that is, I’m only seeing authentication and rights management, which have little to do with what GPOs do
It’s limited of course https://4sysops.com/archives/applying-group-policy-to-linux-using-sssd/
That’s not just limited, that’s an incredibly tiny bit of user rights assignments, which is an incredibly tiny part of group policy and does nothing to configure the system… It’s useful, but not really what I’m talking about
That’s why you put it in 3, with no rhyme or reason for which goes wear
Now we got it only in config files where we can’t find anything. Also don’t you put a single wrong character in there, it could break everything.
Well-made GUIs can even prevent disaster by exposing settings in a diggestable way and making sure entries are properly edited. Good UI/UX conveys functionality through form and can be navigated intuitively.
To make settings inaccessible on purpose or even alienate people deemed “too stupid” for them is called Tech Paternalism, and it fucking sucks.
A well-documented config file is like the exact opposite of “tech paternalism”.
To make settings inaccessible on purpose or even alienate people deemed “too stupid” for them is called Tech Paternalism, and it fucking sucks.
You’re referring to Windows Registry right?
The Linux equivilent of this is atomic/immutable distros (SteamOS and Android being the most popular examples, but Fedora also has one that’s fairly popular).