GUIs (piefed.kobel.fyi)
 
confession bear meme saying: i like GUIs, there i said it

top 99 comments

sorted by: hot top controversial new old
[–] 184 points 8 months ago (22 children)

Good GUI are hard to make while a good cli is rather easy.

Nothing wrong with a GUI that does what it needs without fluff.

  • source
  • hideshow 22 child comments
  • [–] 141 points 8 months ago (13 children)

    The cli has one other benefit which I think is rarely recognised: it's pretty easy to tell someone you need to run "xyz -a -b -c" (bringing the safety risk with it to be fair), but it gets a lot harder to be like "so in the top left there is a cog button that opens a panel on the right where you're looking for the 2nd tab and there'll be a checkbox".

    The things I appreciate even more than a good gui are programs with a good gui and a cli.

  • source
  • parent
  • hideshow 13 child comments
  • [–] 16 points 8 months ago (8 children)

    It is very easy to tell someone type this and shut up. I've never seen an explanation of why -a -b and -c are necessary or what they do. Although I recognise that a lot of people just want magic, and running "xyz -a -b -c" is the next best thing.

    I would love to see what cli commands the gui uses, they would be much easier and faster to learn.

  • source
  • parent
  • hideshow 8 child comments
  • [–] 3 points 8 months ago (1 child)

    As the other comment says, use TLDR. it doesn't tell you everything, but it does usually explain the most common uses. If you need something more advanced than you need to do more research anyway.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 8 months ago

    While it is an improvement, it's aimed at people that already knows the commands.

    For example:

    • Extract a (compressed) archive file into the current directory verbosely:
      tar xvf path/to/source.tar[.gz|.bz2|.xz]

    What is that [.gz|.bz2|.xz] at the end? to someone that knows the tool it's too obvious to even think about, to anyone else, it's just there to mess with you because there's zero reference to it and some examples include it and others don't.

  • source
  • parent
  • [–] 4 points 8 months ago (2 children)

    man xyz | grep -E "^ *\-(a|b|c)"

  • source
  • parent
  • hideshow 2 child comments
  • [–] 33 points 8 months ago (5 children)

    Tbh a lot of things are just easier to show/explain with images and icons in addition to text.

    And in many cases mouse control is just super handy and fast

    And while a terminal can show all these things… its just not comparable, IMO.

    I wouldt want to write my job application in the terminal, or design a product, or whatever else requires just a smidge of graphics

  • source
  • parent
  • hideshow 5 child comments
  • [–] 8 points 8 months ago (1 child)

    I'm just a faster typer and when I have to go back to the mouse controls I feel sluggish. Of course, the right tool for the right job, I will never find myself with a tui to manipulate 3D objects or editing images but I will go to vim for editing documents using latex

  • source
  • parent
  • hideshow 1 child comment
  • [–] 7 points 8 months ago (2 children)

    LaTeX and Typst enter the job application chat

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 8 months ago* (1 child)

    Yea that made me laugh; I just updated my resume from LaTeX to typst a few months ago actually

  • source
  • parent
  • hideshow 1 child comment
  • [–] 0 points 8 months ago

    I've had my resumΓ© in JSON for years, and in XML for years before ΓΎat. What changes is ΓΎe generated layout; it used to be LOUT and HTML, but now it's Typst, HTML, and SVG. SVG is web-embeddable while preserving ΓΎe formatting.

    I'm sad jsonresume.org never really caught on, because most companies require uploading a document and you still end up reentering an entire resume in web forms, a process which I loath.

  • source
  • parent
  • [–] 7 points 8 months ago* (last edited 8 months ago)

    So true. I mostly live in the embedded world but have had to write GUIs from time to time, mostly to connect and send commands to some sort of embedded device.

    I always start with a cli version for testing and then write the GUI. A quick wrapper around the comms library and I’m done.

    But there are so many annoying fiddly little details in the GUI to deal with that it usually takes as long just to write the GUI as it does the entire rest of the code. Layout, menus, tooltips, icon choices, dealing with screen sizes, DPI, resizing windows, responsive data, etc.

    Edit: A simple example that I’ve dealt with many times is reading and writing config data. For the CLI version it’s typically two commands:

    β€˜tool read_cfg’ reads from the device and prints the config to stout

    β€˜tool write_cfg’ reads a config from stdin and sends to the device.

    Add a β€˜-f’ option to use a file instead of stout for people that don’t remember how to use redirects. Add a couple of documentation sentences to the help command. If there are any issues, print them to stderr and bail. If the user wants to edit the config they can use whatever $EDITOR they prefer.

    The same functionality in a GUI means that you have to first implement an editor for values. In my case that was generally a bunch of nested key/value pairs so I could probably find a widget that would work. And then understand how it handles being resized, gets styled, uses tooltips, etc. Of course there would need to be some code to get the data into and out of that widget which would probably need massaging. Then I need to let the user know if there are local edits. And then there is the fact that the data is now in three places, on a local disc, on the device, and in the editor and I need to communicate with the user that there is a difference between loading and saving from disc vs the device. Do I give a warning that loading from once place will overwrite anything they’ve changed in the editor? How do I make the four load/save buttons have obvious icons? And how to handle errors? An annoying pop up? Partially load the data? Something else? So many little things that have to be designed, implemented, and tested.

  • source
  • parent
  • [–] 92 points 8 months ago (5 children)
  • [–] 29 points 8 months ago (3 children)

    Seriously! I can do shit in the terminal, but I grew up post DOS and it's nice to just click something and have it work.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 17 points 8 months ago* (last edited 8 months ago) (2 children)

    Meh, I mean you are not wrong.

    What is even better though is knowing that whatever you click on is just inputting a command you could do yourself manually into a terminal. Now that is some cool full circle shit that Windows fucked up by hiding the CLI.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 10 points 8 months ago

    I remember waaaay back in the server 08-08 R2 days, you could do something in server manager (such as installing a role) and while that process was running, you had the option to see the powershell command it was running in the background. That was pretty cool

  • source
  • parent
  • [–] 6 points 8 months ago

    Good GUIs are awesome. It's just that you often cede control to a bunch of fucking idiots who somehow think if it's not broken absolutely destroy everything that made anyone love it in the first place. 'They'll adapt'

  • source
  • parent
  • [–] 118 points 8 months ago (3 children)

    I think people are just too rigid sometimes. Some workflows are better in GUIs, some are better in CLIs. They both have upsides and downsides depending on what you're doing, and it's totally fine to prefer one to the other. Just don't let your preference keep you from learning and using other great tools!

  • source
  • hideshow 3 child comments
  • [–] 32 points 8 months ago (2 children)

    personally I think having that all cli all the time phase is really important for a developer. Those that I've worked with who exclusively use gui's just don't have the same understanding of their system. Which is maybe fine at a certain level but not for a senior dev

  • source
  • parent
  • hideshow 2 child comments
  • [–] 36 points 8 months ago (10 children)

    That's totally fine. GUIs let us theme our terminal windows, tile them, jiggle them around, maybe even make them wobbly!!!

  • source
  • hideshow 10 child comments
  • [–] 14 points 8 months ago (8 children)
  • [–] 15 points 8 months ago (4 children)

    :) Did you know KDE also does wobbly windows?

  • source
  • parent
  • hideshow 4 child comments
  • [–] 6 points 8 months ago* (2 children)

    Wow I haven't heard that name for a long time... The last time I used it, I was using the horrible AMD/ATI fglrx drivers, and Compiz had been forked into a project called Beryl. Looks like that was around 2006 or 2007.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 64 points 8 months ago
    [–] 21 points 8 months ago (4 children)

    before I made the switch to Linux I never used a terminal. never. hell on Windows I even used a GUI for Git. I used sublime text as my IDE. if it wasn't a GUI I was lost.

    Then I switched to Linux and it forced me to actually sit down and learn the terminal and now...now I have a hard time using GUI's. If something has a CLI or TUI option then I go for that over a GUI. like everything even my music player and video player. my IDE of choice now is DOOM Emacs. my file manager is Yazi. for Git I either use lazygit or just straight up the command line. but for everything else it's just so much faster and in the long run easier to just use the terminal.

    All that being said if you like GUI's then hey more power to you and that's fine. that's the beauty of Linux. you run your system how you want to and don't let others tell you otherwise. Hell I know a guy that uses NixOS and doesn't have anything installed other than git and comma. he runs everything via comma. literally everything.

  • source
  • hideshow 4 child comments
  • [–] 7 points 8 months ago (2 children)

    what is comma? difficult to find anything with a search engine lol

  • source
  • parent
  • hideshow 2 child comments
  • [–] 19 points 8 months ago (5 children)

    I CAN interact with CLI, but i WANT to interact with good GUI. I don't want to learn CLI commands when I don't have to. Especially in the cases where I use it rarely

  • source
  • hideshow 5 child comments
  • [–] 17 points 8 months ago (3 children)

    Are you kidding? There's nothing I love more than hand typing a 400 character file path.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 3 points 8 months ago

    Yeah and that's totally fair enough, but people who like using a command line and know the tools well rarely if ever have to type out long paths or commands. Tab completion and history suggestion (especially in a modern shell like fish or zsh) is a joy to use, and doesn't just do file paths but command options and arguments. Man pages are very overwhelming at first, but if you're practiced at scanning them, then it's a lot more convenient to get the info right where you are than to navigate to another window. But the learning curve is steep and I get why someone wouldn't want to bother.

  • source
  • parent
  • [–] 19 points 8 months ago (2 children)

    I like good GUIs. There are GUIs that are clean, responsive, well designed, and full-featured.

    Sadly, that is rare nowadays, regardless if the software is FOSS or not.

    It seems like for proprietary software, the corporate approach is to design slow, boring GUIs that lack most/all advanced functionality. It's designed for dumb users who just want to click and swipe.

    FOSS on the other hand rarely has full or even part time UI/UX devs due to the cost. So often the GUIs are clunky, messy, and a horrible pain to navigate. The upside is that they usually have extremely deep features, but good luck finding them.

    If I have to pick, FOSS all the way, but I wish I didn't have to. There are a few FOSS programs that have very nice UIs, Bitwarden, Protonmail, Musescore, Godot, and many are getting better, but the landscape is still rough out there.

    As for CLI, I prefer it for some things, it's just faster depending on the function. I find myself operating with a hybrid setup now days. I have become proficient enough with the command line that I can switch seamlessly between my GUI environments and the CLI-only environments. I don't really think about it much anymore.

  • source
  • hideshow 2 child comments
  • [–] 2 points 8 months ago (1 child)

    It's a user interface. Users are fucking stupid this the interface needs to be fucking stupid. When you have to put that much in to stop stupid the interface suffers.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 8 months ago

    Why stop stupid but not users?

    Allow me to illustrate (c, Johny Silverhand):

    • user fucks up
    • starts complaining
    • just plain tell them they got exactly what they told the software to do. End of story. Wants to quit - good luck
  • source
  • parent
  • [–] 19 points 8 months ago (2 children)

    I'm undecided with modern GUI because most modern software is just a web page now. And it will offer you a choice between boring light mode and boring dark mode.

    I miss the days of GTK2 with hundreds of themes. It was one of the main reason I switched to Linux; the customization. I don't know how many hours I must have spent on gnome-look.org. Now I don't even bother to try new themes and just use Fluent-Dark. My desktop is boring and looks like everyone else that has a dark mode. I really really miss GTK2 and all my favourite themes I can't use anymore. I tried making my own and played around with Oomox but it's not the same.

    But one thing that I do prefer to be GUI now is IRC. Now that there are web clients (sigh) that can display images and videos directly in the channels, chatting in text mode only is kind of annoying with all the links we are sharing.

  • source
  • hideshow 2 child comments
  • [–] 18 points 8 months ago

    I can and will terminal things, but the GUI is there so why not?

  • source
  • [–] 17 points 8 months ago (4 children)

    In the same way some GUIs are trash, lord have mercy some CLIs are trash. Things like adding two verbose flags makes it extra verbose. Things like the parameter order mattering. Yeesh. It can be rough. It really varies tool by tool.

  • source
  • hideshow 4 child comments
  • [–] 1 point 8 months ago (2 children)

    Things like the parameter order mattering.

    I imagine this is unavoidable in many cases.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 8 months ago (1 child)

    Yeah, I guess that's true. I suppose given more time to think about it I wouldn't really complain about that. It's mostly things like script in out that are sort of annoying versus something like script --in foo --out bar.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 17 points 8 months ago (3 children)

    I generally prefer GUIs, but sometimes the terminal is just easier!

  • source
  • hideshow 3 child comments
  • [–] 17 points 8 months ago (1 child)

    I like GUIs but I also like automation. Give me a nice simple GUI but also give me a way to run from a bash shell so I can automate functions based on complex conditions and/or a schedule.

  • source
  • hideshow 1 child comment
  • [–] 16 points 8 months ago

    An original confession bear post? Out here in the Lemmy wilds? Excellent.

  • source
  • [–] 14 points 8 months ago (3 children)

    The thing about CLI is that everything is hidden by default. You come to the application with your own mindset and a goal in mind and you figure out how make it do what you want.
    When there's a GUI, you often see everything that's possible from the start and so the application dictates how you use it.

    Though, you can do either with CLI and GUI as well. That's the sweet spot I think is the best. I love it when a CLI app guides the user through a process and gives options. And a good GUI should disable OK buttons and show validation errors if not everything is entered correctly.

    In a perfect world, every app has a CLI mode, interactive and non interactive and a GUI mode with full validation and responsive UI changes. But realistically, good UX is what we need, either GUI or CLI.

  • source
  • hideshow 3 child comments
  • [–] 4 points 8 months ago

    Also CLI interfaces are a lot like having to know a language with the right keywords and vocabulary. Sometimes the manual doesn't always list out all the commands so it takes some trial and error to figure out. You can easily change something you didn't want to as you do.

  • source
  • parent
  • [–] 3 points 8 months ago* (last edited 8 months ago) (1 child)

    This is one of the reasons why I can't migrate from visual studio to VS code for work. Everything is hidden beyond the weird palette search bar thingy. Just give me drop down menus and toolbars please. I'm sick of having to remember shortcuts for things I don't do often enough to warrant it taking space up in my very limited pool of memory

  • source
  • parent
  • hideshow 1 child comment
  • [–] 14 points 8 months ago

    I still do updates and most package installs through my terminal, but anything else I look for a GUI solution. I'm lazy.

  • source
  • [–] 13 points 8 months ago

    If we want the year of the Linux desktop to actually happen we need to have good GUI tools for almost everything. The second you say "command line" most people's eyes glaze over and they say they'll stick with Windows. Believe it or not guys, most people just want something that functions out of the box and they don't want to mess with it.

  • source
  • [–] 12 points 8 months ago*

    I like GUIs if they aren't web browsers pretending to be a desktop applications.

  • source
  • [–] 12 points 8 months ago (7 children)
  • [–] 3 points 8 months ago* (6 children)

    Call me a hater, but TUIs are just filler for the modern wm ricer. I see new ones pop up everyday lol

  • source
  • parent
  • hideshow 6 child comments
  • [–] 3 points 8 months ago (1 child)

    hater!

    (but for real, I love a well-done TUI. Scriptability of CLIs is nice but sometimes the in-between of a good interface while remaining embedded in the shell works so well. Something like vifm allows me to zoom around with fzf, select things by regex or rename with vidir, move and package with rsync or tar, all without ever leaving my terminal context)

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 8 months ago

    hater!

    Can't say I didn't ask for it lol

    I get their usability too. It's understandable if you have to access a server remotely and you want some sort of interface for some software without loading the server with a lot of packages like gtk, qt or stuff like that. I said it mostly to jokingly dunk on the newer arch/omarchy users with their fancy hyperland setups :P

  • source
  • parent
  • [–] 3 points 8 months ago (1 child)

    Your torrent box should not need a WM to download torrents, and given the dynamic nature of a torrent download (speed/peers/pieces), a one-shot cli wont cut it either.

    A TUI is a perfect use-case for torrents, though I havent seen it done well in either transmission or aria2

  • source
  • parent
  • hideshow 1 child comment
  • [–] 12 points 8 months ago (2 children)

    okay, that was always allowed

  • source
  • hideshow 2 child comments
  • [–] 11 points 8 months ago
    [–] 36 points 8 months ago (4 children)

    Energy

    This is the energy we need.

    Not enough

    New comers should never ever see or require a terminal.

  • source
  • hideshow 4 child comments
  • [–] -3 points 8 months ago (3 children)

    Not understanding the fundamentals of the tools you use daily is not a design virtue, it just makes you less effective in using them. This cancerous philosophy leverages ignorance and laziness to support billion dollar industries of greed, slop, and censorship. It enables corrupt morons to justify surveilance and exploit weaker people. And right now, it's running blind and head first into a civilizational death trap.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 3 points 8 months ago (1 child)

    I don't know what you're raging about, but consider this, do you know the internal workings of every device you own and use? Can you repair your car if it broke down? Can you rewire your house if something goes wrong? Can you fix the plumbing? Do you understand everything about your bike? Do you know the ins and outs of your own body? Do you understand your pets like a trainer would?

    You call others lazy, but I guarantee you, there's something they consider basic that you have absolutely no understanding of despite using it all the time.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 0 points 8 months ago

    These questions are all beside the point. People seek help in problems they know how to solve all the time, often in the interest of time itself.

    But since you asked:

    • I don't own a car, and they're just another example of how we cuck ourselves in much the same regard by creating shitty infrastructure to support a modus operandi and economic status quo, that aren't fit for purpose.
    • I've some experience in home electronics.
    • donlt cycle much these days but i spent many afternoons fixing them as a child; having begged for it in the first place there was no other reliable way to ride them again
    • no. but again, asking for help on such matters doesn't undermine the point because i'm not saying you shouldnlt seek consultation to solve problems you can't manage alone. To the extent there is a point about consultation, it's that you should understand enough of the relevant terminolgy to be able to implement the advvise offered by the consultant (the doctor in this case).
    • having had a trainer (not my choice) for a dog, i can honestly say yes.

    Perhaps, but computers are likely far easier to learn about than whatever that is, and infintely less expensive if you already have regular access to one. Think of it like this, if they were so hard, would so many of the dumbest people in public life have started out as "experts" in computers? Would all the moron libertarian crypto enthusiasts have been able to assemble their elaborate blockchain networks that process a whopping 7 transactions per second?

    And please note, laziness alone isn't a criticism/problem (it can often motivate efficiency), it's when particular applications of laziness to produces results that require undoing; especially when the costs of undoing excede the cost of doing nothing at all

  • source
  • parent
  • load more comments
    view more: next β€Ί