commit 48100e372a1e9b29c83b18900e98f065a81fe503b1d8e100a8981f072b6b39a0 Author: Bart Verhagen Date: Wed Jul 3 12:32:00 2024 +0000 Accepting request 1183502 from home:bverhagen:zutty Version update to 0.16 OBS-URL: https://build.opensuse.org/request/show/1183502 OBS-URL: https://build.opensuse.org/package/show/X11:terminals/zutty?expand=0&rev=11 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc 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-0.16.tar.gz b/zutty-0.16.tar.gz new file mode 100644 index 0000000..c4d54a9 --- /dev/null +++ b/zutty-0.16.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c794ba769f4bd973d0b836c7c138dd2f827ace8359f772d3a136eee671adaa40 +size 361065 diff --git a/zutty-0.16.tar.gz.asc b/zutty-0.16.tar.gz.asc new file mode 100644 index 0000000..79f058b --- /dev/null +++ b/zutty-0.16.tar.gz.asc @@ -0,0 +1,17 @@ +Zutty 0.16 +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEtxSivUbXxZ/Sqe0Kc6id0Tk1kS0FAmZi2SAACgkQc6id0Tk1 +kS0HRRAAiVpaN45b+zbYmkPaDuws/9Nyl+NKM2xE+qOKpKCQNCAhEMSTkmTpwGQY +XW8a/3BGsBQcI1VD6DUrwkL5bRYeiYO4Bn04KWtcRtbBoSiic7Hc5/EyF4Nx8lG/ +6zRd2xLsJutTJiMBmoBuYotv6I3JqKpHo75ibl90JNV5D5u8Zqdzb1CS0tdvRA+s +3UFfoVZpJV5ZM4NpGxsKQKip4tSxsPIcj/+Vxw6oJp+gpoUxMcwX13mtg0YjfvnP +afiksL+Na3dTZONZoKxeCHSrZH/Ot6/ssm5AfR+BBuOpVxlLWAyGEWhwtvFRYL+e +Y/TgvaYyoZix6fy+S8NA7mEAxU5bTw/+1WIUkehPmnP/ivdEEY/VysTWHTXbbwkZ +405sUxeRPeHkAQVCwz5Vr1Rd2oGGI72O220bgrdkD5th+X4lEHKX6PDhhBMyW//T +z5f7wQM/HaNB9J/2kQeJi/nqGvFHfMvhjgHR3khfJNpyLPB6yDtYrtx71A6cq+wl +AqZ2xmWr4q7FRmJHYNk6oTDVp61U/gDYH2bUeINYBfCZFkvyD0F9OiGyhhZAxINJ +xYrelymL3+/1AY2vbee7TNGf6D9TrJeR84opfqqddJ6nqyhG//MuV4YmRJz5wmtL +dxbddbSKgDp4uuR76OKlN7if1kmeV+Abx8v3vunwuwPyXj6OvY8= +=IPOB +-----END PGP SIGNATURE----- diff --git a/zutty.changes b/zutty.changes new file mode 100644 index 0000000..14322cb --- /dev/null +++ b/zutty.changes @@ -0,0 +1,52 @@ +------------------------------------------------------------------- +Mon Jun 24 23:22:06 UTC 2024 - Bart Verhagen - 0.16 + +- Update to 0.16: + * Update documentation + * Add resource options bellIsAudible & bellIsUrgent) + * Use FreeType underline metrics when rendering a scaled font + * Some light GLSL refactoring + * Place shader code into separate source files + * GPU performance optimization: use RGBA8 format instead of RGBA32F + * Cut measured latency by zeroing the EGL swap interval + * Significantly improve/correct rasterization of scaled fonts + * Add XTQMODKEYS (partial, only for supporting modifyOtherKeys) + * Implement DECSCUSR (w/o blinking): block, bar & underline cursors) + * Repository migration + * Add NetBSD-specific font search path + * Fix regression in last commit + * Preserve RGB color across SGR attribute settings + * Remove deprecated key from desktop entry file + * Fix clearing glyph area before rendering overlay font glyph + +------------------------------------------------------------------- +Mon Jan 29 13:47:31 UTC 2024 - Andrea Manzini + +- Update to 0.15: + * Implement DECSCUSR (w/o blinking): block, bar & underline cursors + * Add XTQMODKEYS (partial, only for supporting modifyOtherKeys) + +------------------------------------------------------------------- +Mon Mar 20 19:09:06 UTC 2023 - Avindra Goolcharan + +- Update to 0.14: + * Update repo urls (846c013) + * Correct modifyOtherKeys=2 behaviour for certain Shift-modified keys (5331995) + * Upgrade WAF to version 2.0.25 (8db89ee) + * Add mouse protocol encoding for buttons 6-7 (wheel left/right) and 8-11 (310d913) + * Ignore several more esoteric keysyms (db2f40a) + * Ignore, but do not prematurely cancel sequence on bad parameter value (bc6e089) +- lint spec with spec-cleaner + +------------------------------------------------------------------- +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 + +- Packaged zutty terminal emulator version 0.13 +- Add support for openSUSE Tumbleweed +- Add support for openSUSE Leap 15.2 - 15.4 diff --git a/zutty.spec b/zutty.spec new file mode 100644 index 0000000..c836d9e --- /dev/null +++ b/zutty.spec @@ -0,0 +1,65 @@ +# +# spec file for package zutty +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: zutty +Version: 0.16 +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://git.hq.sig7.se/zutty.git +# from https://git.hq.sig7.se/zutty.git/snapshot/0.16.tar.gz +Source: zutty-0.16.tar.gz +Source1: zutty-0.16.tar.gz.asc +Source3: FAQ.md +# Note: Tumbleweed contains waf, but Leap does not (yet), so we use python3 and add waf to the sources. +BuildRequires: Mesa-libEGL-devel +BuildRequires: Mesa-libGLESv3-devel +BuildRequires: freetype2-devel +BuildRequires: gcc-c++ +BuildRequires: libXmu-devel +BuildRequires: pkgconfig +BuildRequires: python3 + +%description +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 +%autosetup -n %{name}-%{version}-a578956 +cp -a "%{_sourcedir}/FAQ.md" . + +%build +CXXFLAGS="%{?optflags}" LDFLAGS="%{?build_ldflags}" ./waf configure --prefix="%{_prefix}" --no-werror +./waf +strip build/src/zutty + +%install +./waf install --destdir=%{buildroot} + +%files +%{_bindir}/zutty +%doc FAQ.md +%license LICENSE + +%changelog +