that's worse than an electron terminal
something is wrong
that's worse than an electron terminal
something is wrong
2 % tree .
.
└── Contents
├── Info.plist
├── MacOS
│ ├── strip-ansi-escapes
│ ├── wezterm
│ ├── wezterm-gui
│ └── wezterm-mux-server
├── Resources
│ ├── terminal.icns
│ └── wezterm.sh
└── _CodeSignature
└── CodeResources
2 % du -hs Contents/MacOS/*
2.8M Contents/MacOS/strip-ansi-escapes
48M Contents/MacOS/wezterm
119M Contents/MacOS/wezterm-gui
44M Contents/MacOS/wezterm-mux-server
A bit of duplicative bloat, but there's nothing wrong with that for an young project trading a bit of space for an easier build/release process.Unlike other terminal emulators, this project is entirely statically compiled, so the code for the built-in SSH client, serial port support, muxing server/client protocol, shader compilation engines, image decoding libraries, D-BUS clients, threading libraries, HTTP(S) (1.1/2/3) with several types of compression, and of course the GPU shader compilers and APIs.
I built Wezterm on my machine and the binary is about 21MiB in size. About 12MB of that is code, the rest is debug symbols. 2MB of that is the Rust standard library and another 1MB is a LUA runtime. Then there are several image libraries that take about half a megabyte.
The compiled source code itself is only 893KiB in my file. The rest is just dependencies and random ELF segments.
So yes, the terminal emulator is about one Windows 95 installation in size, but that's all quite explainable if you care about the features.
For comparison, I've run `debtree` on gnome-terminal (3.4KiB on disk) and the dependency tree is reported to be 691MiB. Microsoft's Windows Terminal is distributed in 18.6MiB - 66.4MiB (I don't know the compression msixbundles use if any) which is comparable. iTerm2 seems to be about 74MiB decompressed. Even `xterm` (the most barebones terminal emulator I can find) relies on 20MiB of dependencies.
If xterm is all you need, then there's no need to download anything else. If you want more features in a terminal emulator, you're going to have to deal with larger binaries.
On my machine:
* WezTerm 224 MB
* iTerm2 74 MB
* Terminal (default MacOS) 10 MB
And yet, I have read comments proclaiming that iTerm is bloatware.
p.s. I've been using Wezterm for more than a year, and I love it.
The on-disk size != RAM usage, and on-disk size really doesn't matter on modern systems, unless you're on a very resource constrained system, in which case, you probably don't want a feature-heavy GUI anyway.
[nix-shell:~]$ du -hs $(nix-build '<nixpkgs>' -A wezterm)
94M /nix/store/w7hpqwqqp7xq70wjsm8bd1yara0rhk9v-wezterm-20220408-101518-b908e2dd
[nix-shell:~]$ du -hs $(nix-build '<nixpkgs>' -A kitty)
25M /nix/store/9k0jn3219l6l7ywcqyvbifhd38cagfd9-kitty-0.25.2
[nix-shell:~]$ du -hs $(nix-build '<nixpkgs>' -A alacritty)
6.2M /nix/store/cq7zaagwcwn9blynw027bqszhnld2sk2-alacritty-0.10.1
Is the feature set difference between these really that much? At least, between kitty and wezterm?
If you think "but terminal multiplexing and SSH!", then feel free to add 0.9MB for screen (or 1MB for tmux) and 4.8MB for openssh, and you're still way below the size of wezterm.