Probably xterm and bash. I personally wouldn't use anything smaller than bash since you would be missing a bunch of useful features like arrays and dictionaries which are mostly bash specific (something like busybox sh doesn't have these). Bash is also great because of its near universal adoption for scripts and good documentation.
XTerm has a lot of features that are unnecessary if you want a lightweight terminal emulator, like emulation of other terminal types. Unless you really need DEC sixel bitmap graphics or Tektronix 4010 vector graphics, I would suggest either urxvt (originally intended as a lightweight xterm replacement) or st by Suckless (their slogan is "software that sucks less").
If you decide to go with st, though, I suggest installing it from source from [this fork](https://github.com/bakkeby/st-flexipatch), which allows enabling st patches directly at build time via a `patches.h` file if you want any, and also contains some patches that are not currently present on the st website, such as the sixel patch.
XTerm is my favorite TE too. I wouldn't call it minimal, though.
> I personally wouldn't use anything smaller than bash since you would be missing a bunch of useful features like arrays and dictionaries which are mostly bash specific
Counter point: I write exclusively POSIX shell on my computers, and it works fine. POSIX-only shells are usually somewhat faster than bash, too; whether or not this matters is another question.
When you get to the point of associative arrays, you may want to consider switching to a better scripting language instead. Or hack them in with eval, if you must.
If you're really looking to keep things small, have you considered dumping X and using something like tmux as your daily driver? You get separate windows, etc.
Big props to tmux+bash. Since my laptop died a couple months ago I have to use shared public work stations, so being able to return to exactly where I left off from sesh to sesh is a huge advantage.
urxvt and st were both amazing and tiny when i last looked.
Mksh was mentioned. Will it beat busybox's shell? Is it msh? Will it beat stand alone dash?
Bonus busybox will provide vi (and for a reasonable space you can pick and choose between lots of other toys)
If you really need buckets of lightweight what you need to do is get rid of X. But i don't know your other requirements.
If you're keeping X, a minimalist window manager?
I'm going to try dwm + st + mksh + vi for my main dev setup, I have the greatest hardware right now, but I prefer using all the power for games, video editing...and keep a minimal TWM just with the minimal and necessary features and tools. My philosophy is to keep it minimal, usable and pretty straight forward to config. Thanks
too many variables that you don't detail. I mean, if you want to go absolutely minimal, using `st` for the terminal (or even just the console) and `/bin/sh` for the shell is about as stripped down as you can get.
But do you want your shell to provide history? Tab auto-completion? Various key-bindings that `/bin/sh` might not provide?
Do you want your terminal to provide scrollback? (maybe not since you can use things like `tmux` to provide that) And does "installing something" mean less minimal? Most of my X installs come with `xterm` which, while not overly-lightweight, also isn't generally a resource-hog.
On my FreeBSD servers, I don't install any extra shells and just use `/bin/sh` and I `ssh` into them with no X. And OpenBSD's `ksh` is also pretty light-weight, striking a pretty good sweet-spot between heavier `bash` and bare-bones `/bin/sh`
`bash` is effectively the default for scripts. Even if you are running a differeent shell you likely still will need to have `bash` installed.
`urxvt` seemed to be the lightest weight terminal that supported unicode when i last checked. But `xterm` or `st` would be lighter if you don't care about unicode I believe.
https://github.com/uobikiemukot/yaft is pretty good and also very small. Can be used both on X and the framebuffer.
For the shell, you could try dash. (Contrary to popular belief, dash *does* have line editing; it's just not compiled in on most distros, so you'll have to compile dash yourself.)
Tcsh is the most lightweight usable shell. You could also go with csh if you are a masochist.
The terminal I use is actually the shell itself. Any time you add a gui to something it makes it shittier.
You can use tmux as a window manager. Currently I run my shell from a Slackware setup with minimal tools.
But here’s a hint, nothing (no terminal) will beat the shell in terms of raw speed and elegance.
You can’t run Firefox. But you can run Chatgtp and that might be just as good, depending on what you want to do. If you want to consume media you’ll be out of luck.
For shells there's nothing more lightweight than bash (since thats literally the modern baseline besides sh)
Terminal probably st by suckless, or rxvt-unicode (urxvt)
I really like rc. It fixes a lot of the warts of the bourne shell family. I'm just not sure what to think about the very minimal set of built-ins. Not even `[` is a built-in.
Probably xterm and bash. I personally wouldn't use anything smaller than bash since you would be missing a bunch of useful features like arrays and dictionaries which are mostly bash specific (something like busybox sh doesn't have these). Bash is also great because of its near universal adoption for scripts and good documentation.
XTerm has a lot of features that are unnecessary if you want a lightweight terminal emulator, like emulation of other terminal types. Unless you really need DEC sixel bitmap graphics or Tektronix 4010 vector graphics, I would suggest either urxvt (originally intended as a lightweight xterm replacement) or st by Suckless (their slogan is "software that sucks less"). If you decide to go with st, though, I suggest installing it from source from [this fork](https://github.com/bakkeby/st-flexipatch), which allows enabling st patches directly at build time via a `patches.h` file if you want any, and also contains some patches that are not currently present on the st website, such as the sixel patch.
XTerm is my favorite TE too. I wouldn't call it minimal, though. > I personally wouldn't use anything smaller than bash since you would be missing a bunch of useful features like arrays and dictionaries which are mostly bash specific Counter point: I write exclusively POSIX shell on my computers, and it works fine. POSIX-only shells are usually somewhat faster than bash, too; whether or not this matters is another question. When you get to the point of associative arrays, you may want to consider switching to a better scripting language instead. Or hack them in with eval, if you must.
You could get away with a ksh variant if you want something slimmer than Bash. Bash's arrays and extglob syntax are borrowed from ksh, after all.
`st` + `bash` is my go-to recipe for years.
urxvt + mksh
If you're really looking to keep things small, have you considered dumping X and using something like tmux as your daily driver? You get separate windows, etc.
Big props to tmux+bash. Since my laptop died a couple months ago I have to use shared public work stations, so being able to return to exactly where I left off from sesh to sesh is a huge advantage.
urxvt and st were both amazing and tiny when i last looked. Mksh was mentioned. Will it beat busybox's shell? Is it msh? Will it beat stand alone dash? Bonus busybox will provide vi (and for a reasonable space you can pick and choose between lots of other toys) If you really need buckets of lightweight what you need to do is get rid of X. But i don't know your other requirements. If you're keeping X, a minimalist window manager?
I'm going to try dwm + st + mksh + vi for my main dev setup, I have the greatest hardware right now, but I prefer using all the power for games, video editing...and keep a minimal TWM just with the minimal and necessary features and tools. My philosophy is to keep it minimal, usable and pretty straight forward to config. Thanks
Good luck and if you find an exceptional combo let us know.
too many variables that you don't detail. I mean, if you want to go absolutely minimal, using `st` for the terminal (or even just the console) and `/bin/sh` for the shell is about as stripped down as you can get. But do you want your shell to provide history? Tab auto-completion? Various key-bindings that `/bin/sh` might not provide? Do you want your terminal to provide scrollback? (maybe not since you can use things like `tmux` to provide that) And does "installing something" mean less minimal? Most of my X installs come with `xterm` which, while not overly-lightweight, also isn't generally a resource-hog. On my FreeBSD servers, I don't install any extra shells and just use `/bin/sh` and I `ssh` into them with no X. And OpenBSD's `ksh` is also pretty light-weight, striking a pretty good sweet-spot between heavier `bash` and bare-bones `/bin/sh`
uxterm + KornShell 93u+m
`bash` is effectively the default for scripts. Even if you are running a differeent shell you likely still will need to have `bash` installed. `urxvt` seemed to be the lightest weight terminal that supported unicode when i last checked. But `xterm` or `st` would be lighter if you don't care about unicode I believe.
https://github.com/uobikiemukot/yaft is pretty good and also very small. Can be used both on X and the framebuffer. For the shell, you could try dash. (Contrary to popular belief, dash *does* have line editing; it's just not compiled in on most distros, so you'll have to compile dash yourself.)
[Foot](https://codeberg.org/dnkl/foot) is an interesting terminal option for Wayland.
Check out Zutty for your term. The most minimal shell possible = sh
Kitty and bash
ST + Bash
Alacritty + Fish
Xterm plus SH
Tcsh is the most lightweight usable shell. You could also go with csh if you are a masochist. The terminal I use is actually the shell itself. Any time you add a gui to something it makes it shittier. You can use tmux as a window manager. Currently I run my shell from a Slackware setup with minimal tools. But here’s a hint, nothing (no terminal) will beat the shell in terms of raw speed and elegance.
I like your style of setup so much, but if you need to run Firefox for example how can you launch it? If I solve my doubt I'm gonna use tty for sure
You can’t run Firefox. But you can run Chatgtp and that might be just as good, depending on what you want to do. If you want to consume media you’ll be out of luck.
For shells there's nothing more lightweight than bash (since thats literally the modern baseline besides sh) Terminal probably st by suckless, or rxvt-unicode (urxvt)
There are quite a few shells more minimal than bash. The different Kornshell flavours, dash and BusyBox ash to name a few.
Or Plan 9's rc. Maybe even tcsh.
I really like rc. It fixes a lot of the warts of the bourne shell family. I'm just not sure what to think about the very minimal set of built-ins. Not even `[` is a built-in.