Add 'contrib/spleen/' from commit '5eab6333fa27e2b6954c6927859d462a004e57bb'

git-subtree-dir: contrib/spleen
git-subtree-mainline: 3582acbad3
git-subtree-split: 5eab6333fa

Reviewed by:	imp [earlier]
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D20653
This commit is contained in:
Ed Maste 2023-05-04 11:46:25 -04:00
commit 0d66206fff
10 changed files with 156017 additions and 0 deletions

5
contrib/spleen/AUTHORS Normal file
View File

@ -0,0 +1,5 @@
Spleen is developed by:
Frederic Cambus <fred AT statdns DOT com>
Site: https://www.cambus.net

264
contrib/spleen/ChangeLog Normal file
View File

@ -0,0 +1,264 @@
Spleen 1.9.3 (2023-04-07)
- Add a 'fon' target to generate FON files for all sizes using FontForge
- Mention the FON version in the README, in notes for Windows users
Spleen 1.9.2 (2023-02-15)
- Add Spleen ASCii logo header (Thanks H7!)
- Add SPDX short license identifier in sources and fonts
- Fix link to the Spleen package in AUR
- Use printf instead of echo for *BSD and Linux cross-compatibility
- Generate a specimen file for Spleen and include it in the repository
- Adjust trivias: the Haiku kernel debugger doesn't use Spleen anymore
- Update README to add a link to the MacPorts package
- Point the OpenBSD package link to openports.pl
Spleen 1.9.1 (2021-06-13)
- Tweak wsfont export program to account for the new block in the 6x12 version
- Mention that Haiku now uses Spleen 12x24 in the trivia section
- Fix paths to wsfont generators
- Add an 'otb' target to generate OTB files for all sizes using fonttosfnt
- Also remove generated .otb files in the 'clean' target
- Generate .dfont files again in release tarballs
- Generate OTB versions in release tarballs
- Also remove generated .dfont files in the 'clean' target
Spleen 1.9.0 (2021-03-12)
- Set WEIGHT_NAME property to "Medium" for all sizes
- Increment STARTPROPERTIES to account for WEIGHT_NAME addition
- Enlarge vertical line for consistency with other small sizes (5x8 version)
- Add full support for the Latin-1 Supplement Unicode block (6x12 version)
Spleen 1.8.2 (2020-07-31)
- Fix size of the lower case 'ae' character in the 16x32 and 32x64 versions
- Fix size of the lower case 'oe' character in the 16x32 and 32x64 versions
- Add 'AE' and 'ae' characters with acute accent
- Add 'AE' and 'ae' characters with macron
- Add 'A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'R', 'r', 'U', 'u' with
inverted breve
- Add 'A', 'a', 'O', 'o' characters with dot above
- Add 'O' and 'o' characters with ogonek
- Add 'O' and 'o' characters with ogonek and macron
- Shorten parentheses, square brackets, braces, slash, backslash in the
8x16 version, fixing alignment issues
- Shift vertical line and double vertical line characters one pixel
up (8x16 version)
Spleen 1.8.1 (2020-07-16)
- Center tilde vertically for all sizes, as modern fonts do
- Add black triangles in the 25E2-25E5 range
- Add single angle quotation mark characters
- Add white and black circle characters
- Add inverse bullet and inverse white circle characters
- Add 'A', 'a', 'O', 'o', 'U', 'u' characters with caron
- Add 'I', 'i', 'G', 'g', 'j' characters with caron
- Add 'H', 'h', 'K', 'k', characters with caron
- Add 'E' and 'e' characters with cedilla
- Add 'A', 'a', 'E', 'e', 'I', 'i', 'O', 'o', 'R', 'r', 'U', 'u' with
double grave
- Add "almost equal to" character
- Add 'G' and 'g' characters with acute accent
- Add 'O' and 'o' characters with stroke and acute
- Add double vertical bar and double exclamation mark characters
- Add stand alone breve, dot above, ogonek, small tilde, and double
acute accent
Spleen 1.8.0 (2020-06-29)
- Add Initial 6x12 version, containing printable ASCII characters, the
Braille Patterns Unicode block, and light Box Drawing characters
- Improve ampersand character, making it more consistent with other
sizes (5x8 version)
- Add instructions on how to use Spleen in the NetBSD console
Spleen 1.7.1 (2020-06-21)
- Add some Powerline characters (arrows symbols and padlock) (5x8 version)
- Fix duplicate character names for Powerline symbols
- Uppercase ISO in the FONT property so fonts can be processed through
ucs2any(1)
- Add "Black Diamond" and "Lozenge" characters for all sizes
- Add "Black Heart Suit" and "Black Diamond Suit" characters for all sizes
- Remove strain pixel on the '5' digit (5x8 version)
- Improve the Esszet character (8x16, 12x24, 16x32, and 32x64 versions)
Spleen 1.7.0 (2020-02-13)
- Improve generated PSF files so that box-drawing characters are correctly
displayed
- Add the FONT_VERSION XFLD property for all BDF sizes
- Generate OpenType (OTF) versions for the 8x16, 12x24, 16x32 and 32x64 sizes
- Stop generating .dfont files, OTF versions should be used instead
- Add links to Debian and Ubuntu packages.
Spleen 1.6.0 (2019-12-02)
- Make it clear that .dfont files are provided in release tarballs
- Initial SFD version converted from the 8x16 BDF file
- Add a 'otf' target in the Makefile to generate an OTF version
- Mention the OTF version in the README, in notes for Windows users
Spleen 1.5.0 (2019-10-01)
- Shift the middle bar of the digit '3' one pixel up, for better
alignment (12x24 version)
- Tweak the digit '7' for consistency with other sizes (5x8 version)
- Make the 'Z', 'z' and derived characters more balanced, as is the
case with other sizes (12x24 version)
- Tweak the digit '2' for consistency with other sizes (12x24 version)
- Make the slash inside the digit '0' one pixel thiner (32x64 version)
- Add light box drawings characters in the 5x8 version
- Add full support for the Braille Patterns Unicode block in the 5x8 version
- Add branch, LN, and padlock icons for Powerline users
- Also provide a fonts.alias file, along with fonts.alias-spleen
Spleen 1.4.0 (2019-09-24)
- Add left and right single quotation mark characters, both identical to
an apostrophe
- Add left and right double quotation mark characters, both identical to
ASCII quotation mark
- Add bullet and horizontal ellipsis characters
- Add the eight trigrams
- Add full support for the Block Elements Unicode block
Spleen 1.3.0 (2019-09-12)
- Add full support for the Box Drawing Unicode block
- Add arrows symbols for Powerline users
Spleen 1.2.0 (2019-09-06)
- Add link to instructions on how to enable bitmap fonts support on Ubuntu
- Add a Makefile target to generate a specimen file
- Add full support for the Braille Patterns Unicode block
- Add light box drawings characters for the 16x32 and 32x64 versions
Spleen 1.1.0 (2019-08-29)
- Added instructions on how to use Spleen in the FreeBSD console
- Optimize generated screenshots with OptiPNG
- Remove the dfont target in Makefile, generated files do not work on
modern macOS versions
- Add full support for the Latin Extended-A Unicode block
- Add euro symbol
- Character at position CB is 'E' with diaeresis, not with tilde (12x24 version)
- Character at position D6 is 'O' with diaeresis, not with tilde (12x24 version)
- Character at position DC is 'U' with diaeresis, not with tilde (12x24 version)
- Fix tilde alignment in the 'o' with tilde character (32x64 version)
- Fix middle bar thickness in the upper case 'eth' character (12x24 version)
- Fix ring alignment for the 'A' and 'a' characters (16x32 and 32x64 versions)
- Remove strain pixel on the '3' and 'k' characters (32x64 version)
- Remove fillers for characters other than ISO 8859-1 ones (5x8 version)
Spleen 1.0.5 (2019-06-01)
- Initial support for the Latin Extended-A Unicode block, all sizes but
5x8 now have all Polish characters available
- Shift the middle bar of the upper case 'G' one pixel down (12x24 version)
- Shift lower case 'k' character right, for better alignment (12x24, 16x32,
and 32x64 versions)
- Make upper case 'X' thicker (16x32 and 32x64 versions)
- Make upper case 'V' thicker (32x64 version)
- Make lower case 'g' character smoother (16x32 and 32x64 versions)
- Add some artefacts on each side of the lower case 'i'
- Also add artefacts on each side of accented lower case 'i' characters
Spleen 1.0.4 (2019-02-07)
- Remove quotation marks around XLFD font names
- Remove strain pixels on the inner upper part of parentheses (16x32 version)
- Harmonize the 'v' and 'V' characters across all sizes
- Remove artefacts from the 'c' in the copyright sign (8x16, 12x24, 16x32, and
32x64 versions)
- Make the upper left corner of the 'R' sharp in the registered sign (16x32,
and 32x64 versions)
- Add initial Makefile, allowing to easily generate formats other than BDF
- Remove all .dfont files from the repository, formats other than BDF are now
only distributed in release tarballs
- Provide generated fonts in PCF, PSF, and .dfont formats
Spleen 1.0.3 (2018-12-01)
- Remove extra pixel from the '@' character (12x24 version)
- Harmonize '@' character spacing with other sizes (16x32 and 32x64 versions)
- Revert change to the upper case 'K' character (5x8 version)
Spleen 1.0.2 (2018-11-26)
- Tweak 'f' and 't' characters to make them more consistent (8x16 version)
- Make the upper case 'K' middle bar shorter, helps differentiating it from
upper case 'H' (5x8, 12x24, 16x32)
- Fix alignment of parentheses with square brackets and braces (32x64 version)
- Fix SIZE, MIN_SPACE, and SWIDTH properties for all fonts
- Make the at sign higher (8x16, 12x24, 16x32, and 32x64 versions)
- Harmonize angle quotes (8x16, 12x24, 16x32, and 32x64 versions)
- Flip lower case 'n' with tilde horizontally, to match the normal 'n'
character (8x16, 12x24, 16x32, and 32x64 versions)
- Remove artefacts from 'C', 'c' and 'F' characters for all fonts
- Remove artefact from the upper case 'G' character (8x16, 12x24, 16x32,
and 32x64 versions)
- Remove artefacts from 'C' and 'c' derived characters (8x16, 12x24,
16x32, and 32x64 versions)
- Set DEFAULT_CHAR to 32, as we don't have a 0 char
Spleen 1.0.1 (2018-09-28)
- Documentation updates: add XLFD font names and operating system packages
section
- Improve ampersand character, make superscript digits thicker, shift
percent sign, asterisk, plus, minus, and equal signs one pixel up, for
alignment (8x16 version)
- Shift asterisk character up by one pixel, to align it with minus and plus
signs (12x24 version)
- Improve percent sign alignment and make it more consistent with other
sizes (16x32 and 32x64 versions)
Spleen 1.0.0 (2018-09-18)
- Initial release

24
contrib/spleen/LICENSE Normal file
View File

@ -0,0 +1,24 @@
Copyright (c) 2018-2023, Frederic Cambus
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

236
contrib/spleen/README.md Normal file
View File

@ -0,0 +1,236 @@
```
::::::::::::::::::::
::: :::
_____ _______ __. ________ ________ ________. :::
_) _//__ __/ __ / |.\ __ /.\ __ /.\ _. | :::
.\____ /.\ )/ / || )/ | )/ | \| | :::
| )/ | __/| \ _____| _____| | |_ :::
|____ |_____| |_____/____\\ |____\\ | |____/ :::
- -- -- \_____| -H7--------------------------- `----' ----- ::: - -
::: :::
::::::::::::::::::::
```
# Spleen
Spleen is a monospaced bitmap font available in 6 sizes:
- 5x8
- 6x12
- 8x16
- 12x24
- 16x32
- 32x64
Each size is provided in the Glyph Bitmap Distribution Format (BDF), and
release tarballs contain the fonts in the following formats: `PCF`, `PSF`
(for the Linux console), `OTB`, `OTF`, `.dfont` for macOS users, and `FON`
for Windows users.
All font sizes contain all ISO/IEC 8859-1 characters (Basic Latin and Latin-1
Supplement Unicode block), Latin Extended-A characters, as well as Box Drawing,
Block Elements, and Braille Patterns Unicode blocks, except for the 5x8 and the
6x12 versions.
Due to character size constraints, the 5x8 version only contains printable
ASCII characters, the Braille Patterns Unicode block, and light Box Drawing
characters. Please also note that there is no OpenType version for this size.
As of Spleen 1.8.0, there is now a 6x12 version containing the same Unicode
blocks as the 5x8 version and the Latin-1 Supplement Unicode block.
Spleen also has support for Powerline symbols out of the box.
The font name is a reference to Baudelaire.
## Screenshots
The following screenshots show Spleen 16x32 displaying code and prose.
![Spleen - Hello][1]
![Spleen - L'etranger][2]
ASCII characters for all sizes:
Spleen 5x8:
![Spleen - ASCII characters - 5x8][3]
Spleen 6x12:
![Spleen - ASCII characters - 6x12][4]
Spleen 8x16:
![Spleen - ASCII characters - 8x16][5]
Spleen 12x24:
![Spleen - ASCII characters - 12x24][6]
Spleen 16x32:
![Spleen - ASCII characters - 16x32][7]
Spleen 32x64:
![Spleen - ASCII characters - 32x64][8]
## XLFD font names
```
-misc-spleen-medium-r-normal--8-80-72-72-c-50-iso10646-1
-misc-spleen-medium-r-normal--12-120-72-72-c-60-iso10646-1
-misc-spleen-medium-r-normal--16-160-72-72-c-80-iso10646-1
-misc-spleen-medium-r-normal--24-240-72-72-c-120-iso10646-1
-misc-spleen-medium-r-normal--32-320-72-72-c-160-iso10646-1
-misc-spleen-medium-r-normal--64-640-72-72-c-320-iso10646-1
```
## Packages
Spleen packages are available for:
- [OpenBSD][9]
- [NetBSD][10]
- [FreeBSD][11]
- [Arch Linux][12]
- [Void Linux][13]
- [Nix][14]
- [Debian][15]
- [Ubuntu][16]
- [MacPorts][17]
## Manual installation
### *BSD and Linux
Clone the repository, convert the files to the Portable Compiled Format
(PCF) using **bdftopcf** and run **mkfontdir** in the directory.
Alternatively, release tarballs provide PCF files for each size.
### macOS
macOS users should use the `.dfont` files provided in the release tarballs.
### Windows
Windows users should use the `.fon` or `.otf` files provided in the release
tarballs.
## Usage
### *BSD and Linux
Update the font path to include **Spleen**:
xset +fp /usr/local/share/fonts/spleen/
Update **.Xdefaults** and add one of the following directives:
xterm*faceName: spleen:pixelsize=8:antialias=false
xterm*faceName: spleen:pixelsize=12:antialias=false
xterm*faceName: spleen:pixelsize=16:antialias=false
xterm*faceName: spleen:pixelsize=24:antialias=false
xterm*faceName: spleen:pixelsize=32:antialias=false
xterm*faceName: spleen:pixelsize=64:antialias=false
Launch **xterm**.
Ubuntu has bitmap fonts support disabled by default, instructions to enable
it are available [here][18].
### Linux console
Release tarballs provide PSF files for each size, `setfont` can be used
to load and set the desired font.
### NetBSD console
NetBSD has .fnt files for each size which can be loaded using wsfontload(8).
For example, to load Spleen 16x32:
wsfontload -N spleen-16x32 -w 16 -h 32 /usr/share/wscons/fonts/spleen-16x32.fnt
wsconsctl -dw font=spleen-16x32
### FreeBSD console
The FreeBSD package contains .fnt files which can be loaded using
vidcontrol(1).
For example, to load Spleen 16x32:
vidcontrol -f /usr/local/share/fonts/spleen/spleen-16x32.fnt
### OpenType versions
Spleen release tarballs now contains OTF versions generated automatically
from the BDF files, using [bdf2sfd][19]. Each font has a different name,
allowing them to be installed alongside.
They should be used in the exact size specified below, with anti-aliasing
disabled.
- Spleen 6x12: 9 Pt (12 pixels)
- Spleen 8x16: 12 Pt (16 pixels)
- Spleen 12x24: 18 Pt (24 pixels)
- Spleen 16x32: 24 Pt (32 pixels)
- Spleen 32x64: 48 Pt (64 pixels)
## License
Spleen is released under the BSD 2-Clause license. See `LICENSE` file for
details.
## Author
Spleen is developed by Frederic Cambus.
- Site: https://www.cambus.net
## Resources
- [Spleen - Monospaced bitmap fonts][20] (2018)
- [New console font Spleen made default][21] (2019)
- [NetBSD, CTWM, and Spleen][22] (2021)
GitHub: https://github.com/fcambus/spleen
## Trivia
- Spleen is the default font for OpenBSD consoles since January 2019
- Spleen was imported in the NetBSD src tree in March 2019
- Spleen 12x24 was used in the Haiku [kernel debugger][23] (on high resolution
displays) from May 2021 to June 2022
- [msTERM][24], a Terminal program for MailStation devices uses Spleen 5x8
- [FBInk][25], a library to print text & images to an eInk Linux framebuffer
embeds Spleen 16x32
[1]: https://www.cambus.net/content/2018/09/spleen-hello.png
[2]: https://www.cambus.net/content/2018/09/spleen-etranger.png
[3]: https://www.cambus.net/files/spleen/spleen-5x8.png
[4]: https://www.cambus.net/files/spleen/spleen-6x12.png
[5]: https://www.cambus.net/files/spleen/spleen-8x16.png
[6]: https://www.cambus.net/files/spleen/spleen-12x24.png
[7]: https://www.cambus.net/files/spleen/spleen-16x32.png
[8]: https://www.cambus.net/files/spleen/spleen-32x64.png
[9]: https://openports.pl/path/fonts/spleen
[10]: https://pkgsrc.se/fonts/spleen
[11]: https://www.freshports.org/x11-fonts/spleen/
[12]: https://aur.archlinux.org/packages/spleen-font/
[13]: https://github.com/void-linux/void-packages/tree/master/srcpkgs/font-spleen
[14]: https://github.com/NixOS/nixpkgs/tree/master/pkgs/data/fonts/spleen
[15]: https://packages.debian.org/search?keywords=spleen
[16]: https://packages.ubuntu.com/search?keywords=spleen
[17]: https://ports.macports.org/port/font-spleen/
[18]: https://wiki.ubuntu.com/Fonts#Enabling_Bitmapped_Fonts
[19]: https://github.com/fcambus/bdf2sfd
[20]: https://www.cambus.net/spleen-monospaced-bitmap-fonts/
[21]: https://undeadly.org/cgi?action=article;sid=20190110064857
[22]: https://www.cambus.net/netbsd-ctwm-and-spleen/
[23]: https://git.haiku-os.org/haiku/commit/?id=29a109bd6c01ce71bb61177ee9ff0417e74c1e18
[24]: https://github.com/jcs/msTERM
[25]: https://github.com/NiLuJe/FBInk

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

20465
contrib/spleen/spleen-8x16.bdf Normal file

File diff suppressed because it is too large Load Diff