From 87fcb55e1a82bcd2581e934986c0c2222523dadedcb64627b5734a464f92e854 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Tue, 15 Nov 2022 15:29:41 +0000 Subject: [PATCH 1/2] Accepting request 1033837 from home:jengelh:branches:X11:terminals - Update description with the good and bad characteristics. - Add FAQ document from the project wiki. OBS-URL: https://build.opensuse.org/request/show/1033837 OBS-URL: https://build.opensuse.org/package/show/X11:terminals/zutty?expand=0&rev=4 --- FAQ.md | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++ zutty.changes | 6 ++ zutty.spec | 26 +++--- 3 files changed, 260 insertions(+), 10 deletions(-) create mode 100644 FAQ.md diff --git a/FAQ.md b/FAQ.md new file mode 100644 index 0000000..c2d87a8 --- /dev/null +++ b/FAQ.md @@ -0,0 +1,238 @@ +[![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*. diff --git a/zutty.changes b/zutty.changes index c836a00..39d24e6 100644 --- a/zutty.changes +++ b/zutty.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Sun Nov 6 09:45:57 UTC 2022 - Jan Engelhardt + +- Update description with the good and bad characteristics. +- Add FAQ document from the project wiki. + ------------------------------------------------------------------- Tue Oct 25 20:18:33 UTC 2022 - Bart Verhagen - 0.13 diff --git a/zutty.spec b/zutty.spec index 5fc296c..d4c2502 100644 --- a/zutty.spec +++ b/zutty.spec @@ -19,25 +19,31 @@ Name: zutty Version: 0.13 Release: 0 -Summary: A high-end terminal for low-end systems +Summary: Terminal program with GLES renderer and low latency -License: GPL-3.0-or-later+ +License: GPL-3.0-or-later Group: System/X11/Terminals -URL: https://github.com/tomscii/zutty/archive/refs/tags/%version.tar.gz#zutty-%version.tar.gz -Source0: %{name}-%{version}.tar.gz +URL: https://tomscii.sig7.se/zutty/ +#Git-Clone: https://github.com/tomscii/zutty +#Git-Clone: https://github.com/tomscii/zutty.wiki +Source: https://github.com/tomscii/zutty/archive/refs/tags/%version.tar.gz#/zutty-%version.tar.gz +Source3: FAQ.md # Note: Tumbleweed contains waf, but Leap does not (yet), so we use python3 and add waf to the sources. BuildRequires: gcc-c++ python3 pkg-config Mesa-libEGL-devel Mesa-libGLESv3-devel libXmu-devel freetype2-devel - %description -An X terminal emulator rendering through OpenGL ES Compute Shaders. It focuses on low-latency rendering and compatibility with commonly found terminal protocols. - +An X terminal emulator rendering through OpenGL ES shaders. +It has good input latency and VTxxx emulation over most other +terminals, ranging second after xterm (as of 2022). +It uses FreeType, but does not support fontconfig, thus won't find +fonts by their usual names. (See FAQ for details.) %prep -%setup -q +%autosetup +cp -a "%_sourcedir/FAQ.md" . %build -CXXFLAGS="%{?optflags}" LDFLAGS="%{?build_ldflags}" ./waf configure --prefix=/usr --no-werror +CXXFLAGS="%{?optflags}" LDFLAGS="%{?build_ldflags}" ./waf configure --prefix="%_prefix" --no-werror ./waf %install @@ -45,7 +51,7 @@ CXXFLAGS="%{?optflags}" LDFLAGS="%{?build_ldflags}" ./waf configure --prefix=/us %files %{_bindir}/zutty - +%doc FAQ.md %license LICENSE %changelog From b4941bf74077b72b12d9e8f69755a60ad36c93d4595992e91ccf293e27c5a7d9 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Wed, 16 Nov 2022 16:14:24 +0000 Subject: [PATCH 2/2] fixed tarball OBS-URL: https://build.opensuse.org/package/show/X11:terminals/zutty?expand=0&rev=5 --- zutty-0.13.tar.gz | 4 ++-- zutty.spec | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/zutty-0.13.tar.gz b/zutty-0.13.tar.gz index 244eb1c..850546a 100644 --- a/zutty-0.13.tar.gz +++ b/zutty-0.13.tar.gz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:477b94d05ac184e16c269bfa32ef26e5c88242b3c44a5c7ede65a1c19d6ada2b -size 352727 +oid sha256:62cfd2d85d276ed7ac29d94a517612640f24a39e6159e279b78e85a7c8c00e6b +size 348348 diff --git a/zutty.spec b/zutty.spec index d4c2502..03a5176 100644 --- a/zutty.spec +++ b/zutty.spec @@ -20,16 +20,22 @@ Name: zutty Version: 0.13 Release: 0 Summary: Terminal program with GLES renderer and low latency - License: GPL-3.0-or-later Group: System/X11/Terminals + URL: https://tomscii.sig7.se/zutty/ #Git-Clone: https://github.com/tomscii/zutty #Git-Clone: https://github.com/tomscii/zutty.wiki Source: https://github.com/tomscii/zutty/archive/refs/tags/%version.tar.gz#/zutty-%version.tar.gz Source3: FAQ.md # Note: Tumbleweed contains waf, but Leap does not (yet), so we use python3 and add waf to the sources. -BuildRequires: gcc-c++ python3 pkg-config Mesa-libEGL-devel Mesa-libGLESv3-devel libXmu-devel freetype2-devel +BuildRequires: Mesa-libEGL-devel +BuildRequires: Mesa-libGLESv3-devel +BuildRequires: freetype2-devel +BuildRequires: gcc-c++ +BuildRequires: libXmu-devel +BuildRequires: pkg-config +BuildRequires: python3 %description An X terminal emulator rendering through OpenGL ES shaders.