Let the apologists have a field day in the comments.
Hey man, it’s no surprise the gui people are good at making the gui settings in the gui :P
My favourite part of Linux cli is you only know you’ve done something when you get no feedback at all.
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.
“No, honey. We have Linux at home,”
Linux at home:
linix
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.
go read the man pages you fucking noob
And when you actually go and read the man page, it says some shit like “Some of these options are not fully documented. For an accurate description of their functionality, consult the source code”
Recursive comments
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.
Sounds like you’re gonna love nixos
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.
Well seems to me that the lack of clear documentation is in fact your problem.
I mean, fucking around for a decade?!
: P
Hey, hey - stop that.
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.
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 where
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.
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?
A well-documented config file is like the exact opposite of “tech paternalism”.
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).
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
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?
Systemdgenie is good enough for me, but that’s just me.
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
*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.
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.
This is such a stupid take. Gui obscures the thing that you want to do behind endless buttons and menus and some bullshit that some self-proclaimed “user experience engineer” thought would be “intuitive”. With cli it’s like you’re talking directly to the computer. Want to stop the networking service?
service networking stop
. Couldn’t be simpler!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.
Are you talking about
rfkill
? Strange, for me the ID’s don’t change. But even if they do for you, what’s stopping you from getting the ID just by grepping for the device name? Something likerfkill list | grep YOUR_DEVICE_NAME | cut -d ':' -f 1 | xargs rfkill block
.Calls it stupid take, proceeds to give me most absurd noodle of a commandline for something that could simply be a Enable/Disable button on a device list panel that every idiot with no prior knowledge of Linux, CLI or memorized command could do it. I think proved my point once again.
It would take you less time to put together that one-liner than to find the correct button in an unfamiliar gui. How exactly does that prove your point?
BS, I looked online for hours and waited for replies on reddit and no one gave me this line. So, no, I’d in fact do it via GUI in minutes where it took me hours for some backwards config that doesn’t look anything like this that made me do what I wanted. With extra steps to copy that stupid file into system folder, of course via stupid Terminal because I couldn’t do it through file manager in any way. The level of stupid Linux has to configure trivial things is just astounding.
And what’s weird is how Linux purists always whine about it. Like, I don’t care, keep using your stupid Terminal, just give me damn GUI for this basic shit. I don’t want to waste time and memorize idiotic noodles of commands to do trivial shit. No one is taking away any of the stupidity you love, just give ME the choice. Instead the only choice is use of stupid CLI. Ugh.
Also it’s not “unfamiliar” GUI. It’s called practical deduction. If I need to do this and this I already know I might need to look under this and that category in settings or just type rough related words in search and it would show me the setting. If whoever makes GUI isn’t a complete moron, it would be easy to find. Good luck with any of that with CLI where you need to input exact command from start. Your logic just makes no sense.
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.
Portainer is your friend
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.
Yeah, the Docker desktop license is crazy. Pretty sure it was changed recently too.
*Laughs in CLI.
Also TOML lol
Yeah, I’ve definitely grown to like TOML, especially after spending hours trying to edit a giant (nested) YAML file…
I didn’t realize the indentation in TOML was purely aesthetic.
This
[servers] [servers.alpha] ip = "10.0.0.1" dc = "eqdc10" [servers.beta] ip = "10.0.0.2" dc = "eqdc10"
equals this
[servers] [servers.alpha] ip = "10.0.0.1" dc = "eqdc10" [servers.beta] ip = "10.0.0.2" dc = "eqdc10"
which equals this
{ "servers": { "alpha": { "ip": "10.0.0.1", "dc": "eqdc10" }, "beta": { "ip": "10.0.0.2", "dc": "eqdc10" } } }
Once the file is big enough wouldn’t it be better to convert it to json before editing, then converting it back?
Let the computer deal with indents and all that stuff.
I love this comment. JSON is by far the format that cares the least about being human-readable or -writable, but you’re seriously proposing writing it rather than YAML. And I kind of don’t even really disagree. But a big problem with that strategy is that you won’t find documentation for how to write the configuration in JSON.
I disagree that json is not human writable. JSON is perfectly writable since it has explicit visible separations between elements.
It might look ugly but it’s perfectly readable and writeable.
Granted, I always read json after parsing it with an auto formatter. Maybe that’s why people say that json is difficult to read? It’s true that unformatted json (minified) is way worse than yaml but no one in their right mind would not format the json, specially when it’s natively supported by most code editors.
BTW, about documentation, post formatting json looks very much like a yaml, all yaml docs can be converted to json instructions if you think a little bit.
Oh, that is actually the part I do agree with. I don’t think everyone will, but I do actually think JSON is easier to read and write (correctly) than YAML. I specifically wrote that JSON cares the least about that, because it was designed to just serialize JavaScript objects into strings and back. As far as its original purpose is concerned, no one would ever need to hand-edit JSON. Which is also why it doesn’t support comments (which is still somewhat of a dealbreaker for a configuration language, although I guess for your proposed workaround, one could potentially use a JSON flavor which supports comments; potentially, you can even write your JSON in the YAML file with comments directly and then not convert it, since YAML is a superset of JSON).
As for documentation, yeah, it is possible to convert, but it makes it more annoying, particularly also if you then can’t easily re-use configs in another project. And if you’re working in a team, having to explain to all your team members, how they can convert the official documentation, is also not really acceptable…
Because … well … wait, not a bad idea. Although, this would get rid of comments. Which in my case, I didn’t have too many, so I could have manually added them back.
You get a gui?
dwm gang rise up!
dotfile bros:
-what GUI?
Chezmoi my beloved
Oooo… new toy…
Meanwhile i’m using my own silly bash script to symlink all my dotfiles from my repo 🗿
Yeah, and then you start to configure any edge case, and then you’re basically already at the point where chezmoi would be useful. Lol, I’ve been there
Mine uses special folders for ‘all’ or ‘user’, and different folders for symlinking entire folders or single files so the scripts can tell the difference. Had no idea this existed. Thanks!
Could you give an example of that? Cause i’m kinda curious. I have used home manager before when i was using nixos, but when i left i went back to using my script. It was kinda annoying to me how home manager was much slower.
Server (Linux) and personal machine (non-Linux Macbook) with the same general shell config (aliases etc.), but different applications/CLI tools installed.
No idea how it compares against the Nix paradigms, but I like the ease of use in setting up a new machine. It’ll copy all files to their intended destinations and will be able to fill in credentials from templates using e.g.
rbw
(third-party Bitwarden, i.e. password manager, CLI tool), meaning, once all fields have been templated, you can make it public without even worrying about leaking a personal email address (I use different ones for git vs. other accounts vs. even other stuff).