I can't recommend switching to mise highly enough: https://mise.en.dev/
Thank you for the recommendation, I might then also be able to ditch sdkman as well.
if [ "$SESSION_TYPE" != 'remote/ssh' ]; then
if [ "${TERM_PROGRAM}" != 'tmux' ]; then
( if [ $[RANDOM % 10] == "0" ]; then fortune -n 40 -s; else echo "Hi, $(whoami)!"; fi ) | cowsay | lolcat && printf '\n'
else
if [ "${TMUX_PANE}" == '%0' ]; then
fortune | cowsay -f small | lolcat && printf '\n'
fi
fi
fi
It's a whole chain of interpreters firing up (sub-shells, Perl for the cow, Ruby for the lol, I think.) :DBut what would life be without a little bit of fun?
— Kurt Vonnegut
$ for i in {1..5}; do /usr/bin/time zsh -i -c exit; done
0.01 real 0.00 user 0.00 sys
0.01 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sysYou need to figure out what is going on because that certainly isn't normal.
Literally seeing 0.0% on Linux
I started using it expecting to love it, but in reality it didn't seem to gain me anything but in fact was worse in several major ways. Also less configurable than Iterm2. :/
The only thing I demand to be fast on my terminal is grep reverse search (ctrl+r) and of course typing a character. But if your terminal can't keep up with your typing speed there is something deeply wrong with it.
I don't remember when I did it, but it looks like I must have gone through this at some point (maybe due to using GNU Make a lot? Or perhaps it was some other tool) - my zsh setup does a bunch of autocomplete setup only in the interactive case, and it seems to help a bit with startup time, at least on macOS:
% for i in {1..5}; do /usr/bin/time zsh -i -c exit; done # zsh in interactive mode
0.05 real 0.03 user 0.02 sys
0.02 real 0.01 user 0.01 sys
0.02 real 0.01 user 0.00 sys
0.02 real 0.01 user 0.00 sys
0.02 real 0.01 user 0.00 sys
% for i in {1..5}; do /usr/bin/time zsh -c exit; done # zsh in non-interactive mode
0.01 real 0.00 user 0.01 sys
0.01 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
0.00 real 0.00 user 0.00 sys
For the interactive case, I don't really mind (within limits - the worst case, on macOS after a reboot, takes several seconds, and that's tedious). I also start new interactive terminal sessions fairly rarely.Apparently for some of the simplicity-produces-speed arguments, users have found complex/featurefull. tools that are still quick. I’m not sure how to evaluate this (I like simplicity just because it is easier to fit simple tools in my head) but we should note the counter argument (and applaud the follow-up).
As it turns out, avoiding unnecessary fork() is good hygiene everywhere.
"Most of these optimizations are about leaving stuff out. It's about being intentional and only adding things you're going to use."
I don't use X11 or a similar graphics layer, only textmode. Thus I don't use a terminal emulator
I don't use zsh. I use NetBSD sh
Smaller and faster
This is what I am comfortable with
Others may have their own preferences; to each their own
I might not understand others' preferences but that's their business, not mine
I can't understand Ghostty either except as some kind of trendy memetic thing, the $GME of the TTY world.
Developers that are very heavily invested in terminal and (over) optimize their terminal configuration are a small but very vocal minority.
zeflonex2•2d ago
I really dont get the hype around terminal tools
Most of the time the GUI experience is the same or better than terminal tools
johng•2d ago
bee_rider•33m ago
If you were raised on programs where most of the features were accessible at a button-click, without going through a bunch of hamburgers, modern GUIs won’t feel familiar, CLI will.
brudgers•1d ago
In practical design, GUI applications inevitably deprecate keyboard abstractions in favor of graphical abstractions and graphical abstractions require parsing visual representations and are less conducive to "muscle memory" whenever pointer control is relative rather than absolute (which these days is approximately always [1]).
Keyboard oriented applications feel more like a language and human brains tend to map well to language and touch typing while GUI's rely on something akin (or identical) to hand-eye coordination. Hand-eye coordination is harder than touch typing and every GUI application requires developing a unique mental model.
[1] in the ancient days of digitizing tablets with absolute coordinates, it was possible to "touch mouse." But that's not how we do things today (and it would not work well with infinite scrolling, etc.)
doubled112•1d ago
dismalaf•1d ago
Of course, other tasks are nicer with a GUI and/or mouse/tablet/touchscreen (art creation for example).
johnthescott•1d ago
my take is terminal is just quicker than "gui".
hilariously•1h ago
utopiah•1h ago
If you start 1 command and get 1 output, the terminal isn't particularly powerful.
One you do start combining commands then it's a totally different thing.
If your GUI does everything you need, then a terminal isn't necessarily useful. If your GUI doesn't provide a feature though, you are most likely stuck. You might be able to learn it's own API in a specific language, e.g. Lisp for Gimp, Python for Blender, etc. If though your terminal application doesn't provide what you need you can pipe its output to another terminal application and thus get something that none of those applications individual can. Once you have done it with 2 applications you can do that with 3, 4, etc. You can label those applications and re-use that tomorrow, share with someone else, etc.
The terminal isn't about starting one application.
msla•1h ago
hatradiowigwam•1h ago
I started to take your comment seriously until that line. You're avoiding leveling up and learning how to use the CLI. Whatever reason you are avoiding it for, understand that's what is at play here.
wang_li•33m ago
otikik•1h ago
throw1234567891•1h ago
alfonsodev•52m ago
liveoneggs•40m ago
regexorcist•15m ago
reddit_clone•9m ago
Here are some advantages.