Let the apologists have a field day in the comments.
*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.
This could be paraphrased as “GUI for the GUI settings, non-GUI for the non-GUI settings.” It’s not surprising to me that parts of Linux that run on systems that don’t have GUIs do not have GUI settings. I understand the frustration, but building those is more work, and more things that can break, go out of date, etc…
What if Linux presented its config files in an app like regedit? Would that be easier? I doubt it. But with complicated data structures, making a first-class app just to edit a specific text file or set of files on disk is a very low ROI for engineering hours.
Then at least give users the ability to edit said text files with a text editor… but the community fights that as well. 🙄 The only distro I ever saw that enabled users to open a file browser and, through that, a text editor as root to edit system files was Mint. KDE had it for a short while before they patched it out again as far as I know (last time I checked Dolphin outright refused to start with root privileges).
It’s not like there weren’t ways to make it easier with little investment. Some elitists just managed to suppress even those efforts for decades.
Kde allows you to edit files with elevated permissions; use Kate for that. Open any system file in Kate and it will ask you for your password when you’ll try to save it.
Desktop Environments are decoupled from the underlying system. It makes switching DEs very easy but integration sucks.
I needed to flush dns on my Ubuntu machine. I googled it found a command for an older version. But of course the underlying stuff changed since then and that command doesn’t exist anymore.
The command to flush dns on Windows has been the same for decades. On Linux half the stuff I learn is going to be obsolete in a couple of years and that knowledge can’t be carried over to other Distros because they do it differently.
I also had to manually build and install a driver for a very common realtek wifi chipset that is not even new.
This is the reason I sometimes come back to the BSDs, they just feel more coherent as a whole.
Set settings once in a config file and check it in, then never fight it again.
GUI is bloat for basically everything. If you want to rice go ahead, but if you do in a UI… lol cool story bro.
Edit. Oh no! I’ve been clocked by the Ubuntu crew!
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)
I expect a Red x
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).
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.
That’s why you put it in 3, with no rhyme or reason for which goes where
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
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 get a gui?
dwm gang rise up!
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.
Sounds like you’re gonna love nixos
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
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.
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
Plasma 6 settings GUI more capable than windows settings idk wym. Only thing I’ve had to edit in the terminal in the last several months has been automount on a hard drive.
Do they support stuff like managing the bootloader or systemd services by now? So far the only thing I ever saw going that deep was OpenSuse’s YaST Settings Suite.
Idk man i just keep my system up to date and call it good for the most part. I COULD dive into low level system stuff but I’ve rarely has a reason to. I do my tinkering in Godot, or off the computer.
Point stands, better interface and more functionality than Windows’ hot mess.
Should note that yes, system stuff like display, fonts, all kinds of other stuff. But super users will always default to command line and there’s always a little issue here and there after certain updates to tinker with.
They aren’t supposed to have every setting tho. It’s mainly focused for average user, power users can figure it out and most prefer CLI anyway. Having too many settings can be intimidating for new users.
Only thing I’ve had to edit in the terminal in the last several months has been automount on a hard drive.
I just use gnome disks for that. Tbh, that’s the only thing I use gnome disks for.
Yeah, some distros have GUIs for system settings, like openSUSE and Mageia, but advanced users will often even take that as a reason to not use those distros, because they themselves don’t need that on their system. And because not many advanced users use these distros, it’s hard to recommend them for noobs, because it makes it more difficult to find help resources. Kind of a stupid situation…
“I open bottlecaps with my mouth, so i don’t go to house where they have bottle openers.”
*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.
dotfile bros:
-what GUI?
Chezmoi my beloved
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).
Oooo… new toy…
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.
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
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.
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.
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.
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.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!!
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.
This is why GUI exists. So you don’t need to memorize idiotic and long commands.
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 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.
Yeah, the Docker desktop license is crazy. Pretty sure it was changed recently too.
Portainer is your friend
I’d just like one standard for all config files. Yaml, json, whatever…let’s just choose something and standardize.
I used to dislike editing text config files but once you have one written you’ve got a template for the future. So long as the documentation is throughly written it’s not too bad to follow.
Nix intensifies
Linux config in YAML
God no, please spare me