Spyke
lemmy.world

A gui is helpful sometimes, but there’s a lot of cases where there’s no feasible way to make a good gui that does what the terminal can do.

Right tools for the right job.

For example, a gui to move a file from one folder to another is nice - drag and drop.

A gui that finds all files in a directory with a max depth of 2 but excludes logs and runs grep and on matching files extracts the second field of every line in the file? Please just let me write a one liner in bash

159
andrewreply
lemmy.stuart.fun

A GUI makes simple things simple.

A shell makes hard things possible.

128
lightnsfwreply
reddthat.com

Me fucking with hard drives/partitions : GUI please

Me doing pretty much anything else - Terminal

55

I always install gparted in the live environment 😂... cuz... yeah, I can fuck things up and end up without my data 😂.

29
lightnsfwreply
reddthat.com

Not much of a picture guy personally but I see your point.

Edit: I have spent a decent amount of time organizing books and comic books and that was a pretty even split between GUI and Terminal. GUI to get them in a state that I could bulk rename/move into appropriate directory with the Terminal. I assume it would be similar with pictures.

6

I spent last winter ripping all my DVDs, and I did a lot of the organizing, changing file names etc. in the terminal. Because I could automate the process even a little.

When doing TV shows, I could take the names of episodes from an online database, put those in a text file, use block edit mode and macros in Vim to format them the way I want, then use a bash command to iterate over the lines in a file and rename them all. Hell I'd probably still be at it if I had to rename that many files manually, even using copy/paste.

4

I have a GUI file manager that I never use but I got it because I know at some point I'm going to want to be able to see thumbnails of images.

3
thehatfoxreply
lemmy.world

I see a lot of people saying they have to use a GUI tool for partition management, and I’ve never understood why.

Text based tools like parted are fairly easy to use, at least compared to other terminal tools the same people are able to use for other tasks.

What is it about partitioning that needs a GUI when other tasks don’t? Is it the visual representation of the partition layout? A general fear of borking a disk?

2

Is it the visual representation of the partition layout? A general fear of borking a disk?

Yes

Being able to see it helps a lot. I can and have done it via parted. My media server doesn't have a desktop environment installed. I just really would rather have a GUI when it's available as an added safeguard.

15
aardreply

Problem nowadays is that changing partition tables is so rare that parted changes their commands between uses, and I never remember if fdisk nowadays has all the GPT related issues that made me try parted in the first place ironed out. Plus I can't remeber the new GPT commands and partition IDs.

I still mostly just read the help text every time because nothing else is installed - but from the speed I might be a bit faster with a well designed GUI nowadays if it is about modifying GPT disks. MBR disks I still can do with fdisk in my sleep.

7
sh.itjust.works

Surely you've used something roughly equivalent like searching a text, be it web page or other document, for a word or filtering a spreadsheet?

6
lemmy.ca

How would one use grep for a webpage in a browser? Does the page need to be accessed outside the browser?

0

You should be able to use curl to get the HTML and then pipe it to grep.

3
aardreply

Emacs grep lets you run grep, and formats the results in a buffer from where you can then easily visit the files at the match location.

3
andrewreply
lemmy.stuart.fun

That's just not true. Not without lots of hand waving.

In my terminal I can, and pretty much hourly do, combine many programs in chains of input and output to perform specific tasks and get information I need. And that's how these programs are designed to be used. The programmer builds it to do specific things and then the user can combine the program with others in novel and nearly endless ways.

With a GUI, sometimes that's possible between two programs if you can copy/paste between them but it's much less reusable and a lot more tedious. But usually it's just not possible because they're designed for specific user personas and not as general purpose tools that may be part of a script.

16
andrewreply
lemmy.stuart.fun

Generally I would agree that anything can be made with a GUI with enough investment. But the point where diminishing returns don't give enough return on GUI investment are reached much sooner than a scriptable shell environment where a power user can extend it in ways that would only make sense for that power user or a very small number of users.

6
lemmy.world

How would you implement piping in GUI?

Could you show us an example program with a GUI you created for this?

12

To play the opposite team a bit here, I like the idea Android uses of Intents for something like this. I think it falls apart a bit in reality because app companies kinda want you in their garden and so don't often do the work to keep things interoperable. That and the use cases from users on phones don't frequently involve cross app functionality. But the ability is powerful for apps to say "my app needs a user photo" or one of my faves "my app needs a pgp provider (for the password store app)" and then let the other app do that piece of functionality as determined by the OS, which tracks a lot of those providers and lets the user decide which to use.

7
lemmy.ca

Yeah, and doing this would take significantly longer to use every time than typing up a chain of commands in a terminal.

7
Kecessareply
sh.itjust.works

Linux users: Non tech savvy people? Yuck

Also Linux users: Everyone should be running Linux instead of Windows!

4

Put those two statements together and the logical conclusion is that Linux users simply want everybody to be tech-savvy (although I'd use a different term: computer-literate). What's wrong with that?

7
gruereply
lemmy.world

Nobody capable of defining an algorithm in a visual flowchart like that isn't also capable of doing it in a CLI (or at least, in text in general -- writing a script). It's thinking through what you want to happen that's the hard part; expressing it in the UI is trivial in comparison.

2
lemmy.world

Wow, you created this program for creating shaders visually? That's impressive! You mind sharing the source code?

1

Things like that have been around for a long time. It was like two decades ago that I saw this shader scheme in softimage|xsi.

For implementing something like that, each node in that graph would have an array of inputs and outputs. Each of those would have a type like vector, scalar, colour, string. Then you only allow connections if the inputs and outputs match types (though you can also have conversion nodes or selectors that say pick the red channel of a colour to turn it into a scalar). Each input can be set to a constant value instead of connecting something else to it. Outputs don't need to be connected, which is mostly useful if a node has multiple outputs. Then each node has an evaluation function that takes all input parameters and maybe internal configuration parameters (though you might as well make everything an input param since there's no real functional difference) and uses them to calculate the outputs, which it then sends on to anything connected to those.

I'm not much of a UI guy but displaying it for the GUI would just involve drawing boxes or some shape for the node, then spaces for each of the inputs on the left side and outputs on the right side maybe colour code them by type, and lines running along the connections. Then just add the name and/or other visual information you want to display and positional information to let users move it around their work area.

2

This right here, you can gui a single program, but with pipes we can chain nearly infinite programs. No way can you make a gui that is that flexible, I refuse to believe until I see it

3
kpwreply
kbin.social

They tried to replace programming languages with drag-and-drop toolkits too. It can be done, but sometimes there's a reason we don't do it.

11
sh.itjust.works

I would assert that basically every shell I'm aware of is also a programming/scripting langauge, able to handle things like loops and branches. This is possible to do in a GUI but it's kind of telling no one has achieved this in a desktop environment to any significant degree, including in the Linux space.

"Iterate over all of the files in this folder, if it's a video file of any format, create a folder with the same name as the video file in ~/Videos and move the file there." I'm unaware of an OS desktop environment that can do even that level of automation with default GUI tools. It's like 5 lines of Bash including "done;" at the end. You can probably do it in PowerShell, but I bet Windows power users would rather use AutoHotKey for this.

3

It wouldn't make sense to add clutter to a GUI that benefits a tiny fraction of users a tiny fraction of the time while making the experience worse for everyone else.

4

I can imagine making a GUI that does it. But most aren't able to. "That could include a check option of..." yeah it doesn't though, is my point. GUIs are for doing things manually.

1
taladarreply
sh.itjust.works

Most programmers are bad at UX but not nearly as bad as GUI designers are at understanding abstraction.

6

You can have your GUI do anything a terminal can I guess, but you'd need a few million buttons on that gui where the programmer has anticipated each and every combination of CLI command that you are going to use, encoded that to a button or menu, included text entry boxes for each variable and have bundled every program, application and dependency that has ever existed. Totally possible.

1
sh.itjust.works

Super + T in my case, but still...

(shhh 🤫, it's actually the win key, but don't let the Linux users hear ya 🤫)

70

For me it's the (custom-ordered) Arch logo key ◉⁠‿⁠◉

16

Super key? Windows key?

Say what now?

Typed on my 1991 ibm model m keyboard

8
lemmy.world

For me, it's:

  • mod + return for terminal
  • mod + e for file manager
  • mod + r for dmenu/bemenu
  • mod + d to switch to the next empty workspace.

All because I have to work with win10 workstations and using a different, superior shortcut scheme would mess up my muscle memory. Remembering to use shutdown -s -f -t 0 instead of poweroff is difficult enough, and don't even get me started with the audacity to use curl as an alias for Invoke-WebRequest!

6
Jamiereply
jamie.moe

Super + S for a terminal, Super + F for Firefox.

3

At the time I decided on it, I used Sakura as a terminal emulator, plus it's on the home row. I use a different term emulator now, but the muscle memory remains.

2
yesmanreply
lemmy.world

I have to confess. I had to look up the shortcut for terminal because I haven't interacted with a Linux desktop in years. I'm a Windows cuck, but not a total imposter bc I've kept a debian server running on my network for years. Whenever something breaks or I do an update (the updates are invariably the cause of the breakage) I manage her with ssh.

3

It's Ctrl+Alt+T on most DEs... but, that's way too many keys for my taste, so I usually just add Super+T as well (don't remove the default).

1
lemmy.world

Few days ago I was in meeting with two friend, we did something for school, and my screen was shared. At one point I had to type something in Vim so I opened a terminal. They were shocked, confused and said something like "we aren't hackers" (and we are on IT department). More people should know about beauty of CLI.

60
lemmy.world

They use Windows but to be fair there are Windows users who use CLI (I have one friend who does).

5

Yeah, I spend far too much of my life managing Windows workstations, Servers and Azure things and almost all of it is in PowerShell.

1
Rodeoreply
lemmy.ca

Just capslock? No modifier key?

4
Q ⠀reply
aussie.zone

I mappes caps to menu and set this to trigger yakuake. Bliss

2
bartolomeoreply
suppo.fi

Wtf this comment gets funnier each time I read it XD

3

It's very possibly a serious comment. I know some people remap ESC to something on/near the home row because of how much use it gets in vim.

2
lemmy.world

Honestly, I like both. I use whichever provides the biggest productivity multiplier. For example, I can navigate around the filesystem and manipulate text files and code extremely quickly in the terminal. On the flip side, I like to use a gui which allows me to spread 6-12 terminal windows across my multiple displays.

34

Yeah, GUIs are great. I especially like having multiple tabs to organize my terminals for different tasks.

18
lemmy.world

The terminal is not fancy, or pretty, and its not that nice to use, but its always available and it gets the job done, just like OPs mum

33
spikespazreply
programming.dev

My terminal is pretty, fancy, a nice to use. I'm not sure, you might be using the default LXDE terminal or something like that, but some people take the time to make their terminal enjoyable.

5
lemmy.ml

I can’t say I love the terminal, if there’s a GUI for a task I’ll use that but there comes a time in every troubleshooting session where the terminal is just the only way to do something reliably.

I’m not going to lie though, I forget commands constantly so have to search the most basic shit to type in.

31
spikespazreply
programming.dev

The trick is to build a massive history file and let auto complete use it for parts.

14
chitak166reply
lemmy.world

I think only some shells support that.

It is a nice feature, though.

5
PlutoPartyreply
programming.dev

Ash is the only one I'm aware of, but that's primarily going to be found and used on stuff like routers or other embedded devices. Any modern shell can support history. That said, many users will disable it or wipe it on logout for security reasons.

1

It's not just history support. It will provide autocomplete suggestions based on what you've already typed and allow you to browse the history of a specific query.

Zsh is the only shell I've used that supports it, using Manjaro.

My Ubuntu 22.04 server using Bash does not. It only supports the basic history that I think you are referring to where you can just browse the history of all your commands at once.

2
lemm.ee

Intellij: Has a modern GUI for Git with code cleanup, import optimization and visualization of changes.

Me: Open terminal, 'git commit -m "wrote code" && git push'. Then realize I forgot to add half of the files, so I make another commit. Then realize I forgot to cleanup bad indents, so I make another commit. Then realize my code doesn't even build, so I make another commit, etc.

29
sh.itjust.works

The only Git GUI that I find actually lets me do the basics in a simple way is GitHub desktop. It allows me to quickly see a diff of the changes, select a few lines or a chunk or all the file, it manages stashes and conflicts for me which is like 98% of my usage. Otherwise I use gitui or the git cli for anything more complex than committing and switching/merging branches.

2
kdmreply
lemmy.world

I’ve started using LazyGit recently and I love it. It runs in CLI and essentially just maps the git commands to keyboard shortcuts. Really easy to use and learn, definitely increased my productivity

7

Magit for Emacs is amazing. It helped me understand git.

1

Kids these days are too soft with their avocado toast and their graphical user interfaces

4
sh.itjust.works

It takes a lot of energy to move from the keyboard to the mouse and back constantly, gross.

25
Honytawkreply
lemmy.zip

But it takes nearly no energy to stay on the mouse.

7

Yes, that's why I've adapted my workflow to be as mouse-centric as possible.

Almost feels like I'm using my PC as a smartphone with a keyboard.

2

Never seen a movie huh?

You think those are made in the Terminal?

1

That’s another nice thing about the CLI: Once you figure out how to do something making a script is usually as easy as getting the commands out of your history.

I’ve yet to see any GUI automation tool that’s as easy to use.

9
meowreply
lemmy.blahaj.zone

I like trackpads because I don't have to move my whole arm to use them.

2
Scubusreply
sh.itjust.works

Bruh, high sensitivity mouse.

I can twitch and my cousin flies off the screen

7

Don't forget us dyslexics though! Cli is rough on that, but gui tends to avoid the errors a typo can cause.

I swear, having to copy/paste stuff in terminal to avoid typing the damn commands five times is way less convenient.

I get it, Linux veterans love the terminal because it is efficient and capable. But there's multiple reasons for a gui interface for common tasks, accessibility being the biggest.

24

A lot of Linux users love the terminal because it's archaic and makes them stand out from the crowd.

Every thread has people conducting autofellatio by mentioning that one time they opened the terminal in front of Windows users and got called hackers.

4
lemm.ee

meta + T is for tiling

meta + enter is for a terminal

16
pawb.social

yes but then I would be using a tiling window manager and wanting to rip my hair out

1
olutukkoreply
lemmy.world

It's not locking behind terminal. It's just not implementing gui. Which is completely valid since that takes time and effort

19
AeonFelisreply
lemmy.world

Also, writing a GUI wrapper for a terminal-only program is much easier than writing a terminal wrapper for a GUI-only program.

6
sopuli.xyz

Anyone worth any kind of respect writes the API for an application/CTA first and then uses the same API to power the GUI so it can also be used as a CLI tool.

Everyone is happy, no elitism or wars.

-3

What do you mean by "CTA"? How don't see how "Call to Action" is relevant in this context, seeing how it's more of a UX design concern than a technical thing. Or does it have some other meaning that does not appear in Google's first page of results and that ChatGPT is not aware of, and yet "Anyone worth any kind of respect" already implements?

3

it's just very hard to make a usable ui, and extremely easy to make a great cli interface

7
bartolomeoreply
suppo.fi

Are there programs that are locked behind a terminal?

4
sopuli.xyz

Are you kidding? There are literally hundreds of commands in the terminal which don't have a symmetrical GUI application baked into the OS.

Why would you create a whole GUI for a simple command such as scp and tail. Literally half of Linux is solely in the terminal

2

Oh ok. I guess we have a different definition of what "locked" means. One could definitely make a GUI for simple commands. Who knows, maybe some students somewhere already have.

2
lemmy.world

I just feel like a heel using a key with a Windows logo printed on it to do anything of use in Linux.

1

Me too. Every once in awhile I have to remind myself that it's not my fault that Lenovo decided to plaster a windows logo on that key. Realistically, that's everybody's key, and it was unfair of Microsoft to do that to us in the first place

2

Say I wanted to make a bunch of folders with sequentially numbered names, and the same sub folders in them.

This would take ages with a GUI but you can do it with one line in the terminal

15
lemmy.world

As a Linux user of 5 years, I like doing things with the GUI first, and then falling back to terminal if/when shit fucks up. It's such a great tool.

15

Which is funny because I'm the other way around. I'll try doing something with the CLI but if it's like a calculation or something and I can't figure it out with awk, etc, I'll defer to a spreadsheet.

10

As a Linux user of 10 years, sometimes I don't touch the terminal for months, sometimes I use it every day, depends on what I'm doing. I haven't done a lot of programming this year so I haven't used the terminal a lot; but when playing with my microcontrollers and SBCs I use the terminal almost constantly.

One thing I will note is that I use the keyboard a lot more than I did when I daily drove Windows. I run my computer by muscle memory a lot more than I used to.

3
lemmy.world

I'm the kind that never opens a file manager other than to move stuff from one directory to another

13
Harryd91reply
lemm.ee

File Manager is the best for bulk renaming too

3
Pantherinareply
feddit.de

I mean if you knew the command XD a single for loop should work

2

Eh you rapidly need to know regular expressions to accomplish bulk renaming in the terminal, where some GUI tools like Bulky are a little more powerful for people without chronic eye fatigue.

3

Yeah I have no idea how to do that too. But I would find it soo nice if Distros would ship bash scripts for all that.

rename EXPRESSION EXPRESSION

With some help on how to do it and actually helpful tldr. btw:

cheat(){
curl cheat.sh/$1
}

Damn Lemmy...

3

I'm a POSIX shell Chad I write shell scripts with parameters in pure POSIX shell for such things /s

1
Cyoreply
lemmy.world

You should try the ranger file manager, thanks to that I almost don't use GUI file managers unless I have a headache

2

I have heard of it, but never got around to it. I suppose if I get tired of grep and find and shell scripts I'll probably head that way myself. Thanks

2

Tbf quite often there just isn't a good gui for what I need or for some reason the GUI just doesn't do what it should

12
sbv
sh.itjust.works

I've bound F12 for a quake-style technical. It's beautiful.

8

Yeah, but Guake doesn't slide down like a Quake terminal should. Maybe it sounds like a minor thing, but I think that if you're trying to imitate a Quake terminal, it at least has to slide down from the top of the screen.

2
feddit.cl

tmux gang be like: ctrl-b, c

screen boomers be like: ctrl-a, c

8
lemmy.ca

Shell is amazing for big, batch jobs or a complex thing done in one or two lines.

GUI is great for poking around at options, visualizing your files and file structure and making edits to one or two things at a time. There are a few batch tasks that work great, like the Batch Renamer in MATÉ DE. You get a preview of how your file will change before you apply it and can easily undo it if you fuck up.

8

I like this format. My version is:

A shell is great for things you know how to do well, or do often.

A GUI is good for things you don't do frequently, or don't know well.

The thing that keeps me choosing terminal tooling, though, is the ability to script. Everything a GUI can do, a CLI tool could. The inverse is not true. And many of the advantages of GUIs can be provided by a curses interface, so I find it just easier to stay in a terminal most of the time.

5
lemmy.world

The window manager is just to fit a load of xterms on the desktop. (12 on my 1st desktop)

7
lemmy.ca

Yakuake for the win! In KDE! (Guake for gnome, I believe)

Press and i got 20 tabs with like 35 terminals open

7
Kai
lemmy.eco.br

fr, once you get used to the terminal you never leave it

6
lemmy.world

I spend more time finding the right buttons to push than creating a command to do it for me.

4
lemmy.world

Yes, the answer to how do I create a new user and new groups should not be well, what distro and window manager are you using?

-2
lemmy.world

For the most part of the CLI methods are unified. If they're not exactly the same they are very very close from distro to distro.

But the GUI method to add users and groups is all over the place.

I need to do a simple action in Windows, one search, The control has been there for several versions of Windows not necessarily unchanged but definitely in the same general location.

OSX same deal you need to add users groups modify network it's all been the same place for ages.

Now someone's trying out Linux, Where's my network configuration, where's my user configuration, where's my group configuration. When the answer to that becomes well what distro, what window manager, we turn away a lot of neophites.

2

That's just an inherent consequence of open source, people can make multiple versions of the same thing, and you can't force distro maintainers to ship all the same tools. It's not worth complaining about, and beginners need this explained to them that with choice, comes... well, choice.

1
lolcatnipreply
reddthat.com

I'm so used to Unix shells that using PowerShell makes me feel like my fingers are broken.

11

I feel like PowerShell is what happens when you give a business analyst a set of requirements, who then sends it to the dev team to implement, but then the CEO says that the requirements are dumb and it should be something different.

9
feddit.de

The main reason Terminals suck is the lack of any guides.

Imagine a CLI interface without commands, just selecting. That would still work everywhere and be easy to maintain, but it would be easy to use.

Or just having cheatsheets available

cheat(){
curl cheat.sh/$1
}

That makes Terminals useful for everyone

1
Pantherinareply
feddit.de

They are mostly way too big. Try to get an easy curl command from the man page

1

I get that, but any extensive cheat sheet would just wrap around to being an inefficient man page

-help is the quick sheet, man is the extensive guide

6

Cheatsheets are community maintained examples of common usage. Manpages are way too complex, help is not always available or useful but good

2
lemmy.world

Super + T == fish terminal;

Super + Return == zsh terminal

0

Dang, I haven't opened my terminal with keyboard shortcuts in years.

I just click the start menu and have a shortcut there.

2

i never understood why people use different shells. i've tried them all but never have the need to swap back and forth especially not during the same day with the same workflow

1