SHA256
1
0
forked from pool/zutty
zutty/FAQ.md

239 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[![Zutty icon](https://raw.githubusercontent.com/tomscii/zutty/master/icons/zutty_32x32.png)](https://raw.githubusercontent.com/tomscii/zutty/master/icons/zutty_128x128.png)
What you never thought you'd need to know about Zutty
### Q: What operating systems does Zutty run on?
**A**: Zutty is primarily developed and extensively tested on Linux,
and (to a lesser extent) on OpenBSD.
Zutty is portable: provided that necessary prerequisites are present,
it builds from source and runs without the need for any code fixes or
configuration changes on default installs of recent stable versions
of FreeBSD and OpenBSD.
Zutty will probably work on other UNIX-like systems as well; making
the necessary (small) adjustments is left as an exercise to interested
users. If you have a patch to make Zutty run somewhere not listed
above, I want to hear from you!
If you use Windows or MacOS, I'm afraid Zutty is not going to be
useful for you. I have no interest to work on making Zutty available
on closed source, proprietary operating systems.
### Q: I compiled Zutty successfully but the program cannot start, why is that?
I am getting an error like this:
E [charvdev.cc:181] Error: Compiling fragment shader:
0:1(10): error: GLSL ES 3.10 is not supported. Supported versions are: 1.00 ES, and 3.00 ES
**A**: Your graphics hardware or driver is not sufficient, you need
support for GLSL ES 3.1 or better.
The actual support level of the OpenGL (ES) implementation is only
detectable at runtime, i.e., having the right EGL and GLES libraries
to compile with (which is what the configure script is able to check)
does not guarantee that the OpenGL implementation supports the
required level at runtime. Note that compiling and running a dedicated
test program as part of the configure phase would not solve this: the
Zutty binary can be packaged, distributed and run on other machines
with different graphics hardware (or the hardware of the same machine
could be changed).
You could buy hardware that has sufficient support; the SBC on which I
primarily run Zutty set me back the equivalent of about $50.
Alternatively, see the next question.
### Q: Can I use Zutty without supported graphics hardware?
**A**: Yes. If you can tolerate higher resource usage (primarily CPU
usage), you could try the `llvmpipe` software renderer. Note that you
need a sufficiently recent version that includes support for compute
shaders. Mesa 20.2.6 (present in Debian Bullseye) is ok. Please note
that using Zutty with such a setup is experimental and be prepared for
subpar performance.
### Q: Font XYZ does not load in Zutty or looks crappy, what should I do?
**A**: As a preliminary note: Zutty does work perfectly fine with a
wide range of fonts, both fixed and scalable, loadable from several
font file formats (see
[Screenshots](https://github.com/tomscii/zutty/wiki/Screenshots)). However,
fonts are a highly diverse bunch, so this does not mean that any
random font you found on the 'net will magically work! I personally
have all the fonts I could ever want, so if you insist on using a font
that does not work with Zutty out of the box, *it is on you to do the
extra work to make that happen*. Please keep this in mind.
Now to the specifics. If you get an error message like this:
E [fontpack.cc:218] Error: No Regular variant of the requested font 'Cozette' could be identified.
In that case, Zutty is telling you that the [font file selection
process](https://tomscii.sig7.se/zutty/doc/USAGE.html#Font%20selection)
did not succeed in identifying a suitable font file. Please carefully
read and understand the
[documentation](https://tomscii.sig7.se/zutty/doc/USAGE.html#Making%20fonts%20discoverable)
on how you might make it work.
In case of certain filename endings (extensions) not recognized by
Zutty, you might have to add them to the filter in `src/fontpack.cc`
(search for `.pcf.gz` in `fontFileFilter`) and recompile. Then get
ready to debug all sorts of weird issues related to this new format.
You are on your own.
On the other hand, Zutty might have started up, having found suitably
named font files, but you feel that the font rendering is off, for
example all letters are "stuck to the ceiling" or overly wide, have
wide gaps in between, or rendered with some such distortion. It is up
to you to debug why it does not work like all the fonts that do. You
have the source code of Zutty and all dependencies, so *please do not
expect me to do it for you!*
If you don't have the time to do that, don't know C++, don't know how
to debug, or have any other lame excuse, please do yourself a favour
and use some of the well documented font alternatives [known to
work](https://tomscii.sig7.se/zutty/doc/USAGE.html#Recommended%20fonts)
with Zutty.
*Do not submit bug reports* in the Zutty issue tracker unless you have
a well understood font loading or rendering issue due to an actual,
demonstrable bug in Zutty. Tickets amounting to "Font XYZ does not
work" will be closed with a reference to this FAQ item.
### Q: What about Wayland?
**A**: Zutty has been written (in the year 2020) against plain Xlib.
Yeah, *I know*. That said, according to user reports, Zutty works fine
with XWayland, so just install `xorg-xwayland` (if you haven't
already) and you should be good to go!
### Q: Why would I try (or care about) Zutty? There are lots of terminal emulators, how is Zutty better than others?
**A**: Zutty is not necessarily better than any other program. I do
not have "world domination" on my TODO list, so you are free to ignore
Zutty and use another program.
That said, I believe Zutty has a number of interesting properties. It
is a terminal with accurate VT support, high performance, low latency,
a small codebase and is potentially compatible with a wide array of
contemporary graphics hardware. This combination is, as far as I am
aware, a unique proposition. You might be interested in my articles
that add substance to these claims,
[here](https://tomscii.sig7.se/2020/12/A-totally-biased-comparison-of-Zutty)
and
[here](https://tomscii.sig7.se/2021/01/Typing-latency-of-Zutty).
### Q: Why would I *not* want to use Zutty?
**A**: Lots of reasons! If you want any of these, Zutty is not for
you, and will probably remain so in the future:
- availability on MacOS or Windows
- transparent backgrounds
- scrollbar, menu bar, interactive configuration, etc.
- ligatures
- right-to-left text
- curvy underlines and similar fancy markup
- bitmap images (SIXEL, ReGIS, ...)
- overriding certain symbols / picking and mixing from different fonts
On the other hand, certain features are missing, but only due to the
very limited time I can spend working on Zutty. For details, see the
[README](https://tomscii.sig7.se/zutty/README.html#Omissions%20and%20limitations).
### Q: Can I subscribe to announcements of new versions? Is there a mailing list?
**A**: There is no mailing list, but you can keep track of changes to
Zutty by subscribing to one of the Atom feeds provided by GitHub.
Here's one for
[releases](https://github.com/tomscii/zutty/releases.atom) and
another for
[commits](https://github.com/tomscii/zutty/commits/master.atom),
depending on your level of interest.
### Q: I don't have a GitHub account, can I collaborate with you on Zutty?
**A**: You are free to send me bug reports, patches, or just general
correspondence via e-mail (but please see the next few questions to
set your expectations). Please use my email address in the latest
published commit. I am perfectly fine with this more traditional kind
of open-source collaboration, which used to be the standard before
GitHub (and similar sites) got popular.
### Q: Can I donate / sponsor / pay you to support the development of Zutty? Can I incentivize work on certain bugs or features?
**A**: No, you cannot do that. This is by intention, to preserve my
intellectual freedom and independence, and to ensure that Zutty
remains what it is: a hobby project. I want to be able to say no to
(or ignore) any request, from any person -- having accepted payments
from someone would possibly make this awkward.
### Q: As a user, how can I help you with Zutty?
**A**: First of all, thank you for your interest in Zutty. If you run
into issues, or have ideas on how to meaningfully improve Zutty, you
are welcome to *collaborate* (investing a share of your own time and
mental resources, as opposed to just demanding a slice of mine) to
understand and solve the problem, or discuss a possible improvement.
When asking for an enhancement or new feature, please motivate why you
think it's important (for you, at least) and please cite prior art
(what other terminals are out there already supporting it? what do the
relevant standards say? etc).
I appreciate well thought-out, well written, clear feedback on what
could be better, as well as high quality bug reports, and I try hard
to respond to all such correspondence. Pro tip: I am not a robot. It
helps a lot if you contact me in a friendly way, with some basic
courtesy and respect.
### Q: As a developer, how can I help you with Zutty?
**A**: First of all, thank you for your interest in improving Zutty.
To be honest, I am not overly interested in receiving unsolicited
patches or pull requests, unless you have a clear fix to an actual
(demonstrable) bug. In general, if you have ideas for improvement,
try to convey them without coding them up -- try to put them into well
readable, concise English prose instead! If you found a bug, send me a
high quality report with all the necessary details (and your analysis,
if any) so I can easily reproduce and fix it. If you want to send a
patch with your proposed fix, that's fine, but absolutely not a
requirement!
If you do want to contribute code, make sure you have read the
[Contribution guide](https://tomscii.sig7.se/zutty/doc/HACKING.html#Contribution%20guide),
and please note that my standards for accepting code for inclusion are
*very* high. Your PR will be, in all likelihood, completely rewritten
or ignored.
### Q: How do I correctly pronounce Zutty? What does it mean?
**A**: The IPA notation is `[zuːc̟]`. I'm afraid you won't be able to
pronounce that, unless you happen to natively speak a
[language](https://en.wikipedia.org/wiki/Hungarian_phonology#Consonants)
featuring the
[voiceless palatal plosive](https://en.wikipedia.org/wiki/Voiceless_palatal_plosive).
If you decide to try, make sure to go for the alveolo-palatal variant.
Hint: Zutty does *not* rhyme with *kitty* (or how English-speaking
people commonly pronounce PuTTY).
The word *zutty* itself is an
[onomatopoetic](https://en.wikipedia.org/wiki/Onomatopoeia)
interjection in the Hungarian language, similar in its meaning to the
English *whoops* in referring to some sudden, quick action, but
lacking the element of (often negative) surprise. This fairly obscure
word is borrowed to stand for *zero-cost unicode teletype*.