Linux node5458.myfcloud.com 6.10.2-x86_64-linode165 #1 SMP PREEMPT_DYNAMIC Tue Jul 30 15:03:21 EDT 2024 x86_64
Apache
: 45.79.123.194 | : 3.15.240.124
16 Domain
7.4.33
addify5
shells.trxsecurity.org
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
Backdoor Scanner
Backdoor Create
Alfa Webshell
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
kbd-1.15.5 /
[ HOME SHELL ]
Name
Size
Permission
Action
ANSI-dvorak.gif
3.72
KB
-rw-r--r--
AUTHORS
741
B
-rw-r--r--
COPYING
1.95
KB
-rw-r--r--
ChangeLog
15.69
KB
-rw-r--r--
README
637
B
-rw-r--r--
dvorak-l.xmodmap
2.28
KB
-rw-r--r--
dvorak-r.xmodmap
2.28
KB
-rw-r--r--
dvorak.diffs
1.37
KB
-rw-r--r--
dvorak.txt
1.14
KB
-rw-r--r--
dvorak.xmodmap
2.11
KB
-rw-r--r--
font-formats-1.html
5.35
KB
-rw-r--r--
font-formats-2.html
1.44
KB
-rw-r--r--
font-formats-3.html
6.84
KB
-rw-r--r--
font-formats-4.html
2.15
KB
-rw-r--r--
font-formats-5.html
517
B
-rw-r--r--
font-formats.html
1.29
KB
-rw-r--r--
kbd.FAQ-1.html
4.09
KB
-rw-r--r--
kbd.FAQ-10.html
2.58
KB
-rw-r--r--
kbd.FAQ-11.html
2.2
KB
-rw-r--r--
kbd.FAQ-12.html
8.02
KB
-rw-r--r--
kbd.FAQ-13.html
4.39
KB
-rw-r--r--
kbd.FAQ-14.html
3.39
KB
-rw-r--r--
kbd.FAQ-15.html
6.76
KB
-rw-r--r--
kbd.FAQ-16.html
2.95
KB
-rw-r--r--
kbd.FAQ-17.html
1.67
KB
-rw-r--r--
kbd.FAQ-18.html
2.46
KB
-rw-r--r--
kbd.FAQ-19.html
1.32
KB
-rw-r--r--
kbd.FAQ-2.html
2.92
KB
-rw-r--r--
kbd.FAQ-20.html
1.68
KB
-rw-r--r--
kbd.FAQ-21.html
1.67
KB
-rw-r--r--
kbd.FAQ-22.html
2.38
KB
-rw-r--r--
kbd.FAQ-23.html
965
B
-rw-r--r--
kbd.FAQ-3.html
2.06
KB
-rw-r--r--
kbd.FAQ-4.html
7.68
KB
-rw-r--r--
kbd.FAQ-5.html
16.87
KB
-rw-r--r--
kbd.FAQ-6.html
2.68
KB
-rw-r--r--
kbd.FAQ-7.html
5.58
KB
-rw-r--r--
kbd.FAQ-8.html
9.19
KB
-rw-r--r--
kbd.FAQ-9.html
2.54
KB
-rw-r--r--
kbd.FAQ.html
5.11
KB
-rw-r--r--
utfdemo
4.15
KB
-rw-r--r--
utflist
25.1
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : font-formats-1.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Font-formats recognized by the Linux kbd package: PSF fonts</TITLE> <LINK HREF="font-formats-2.html" REL=next> <LINK HREF="font-formats.html#toc1" REL=contents> </HEAD> <BODY> <A HREF="font-formats-2.html">Next</A> Previous <A HREF="font-formats.html#toc1">Contents</A> <HR> <H2><A NAME="s1">1. PSF fonts</A></H2> <P>PSF fonts come in two types: old (psf1) and new (psf2). A PSF font consists of (1) <A HREF="#psfheader">The header</A>, (2) <A HREF="#psffont">The font</A>, (3) <A HREF="#psfunimap">Unicode information</A>. <P> <H2><A NAME="psfheader"></A> <A NAME="ss1.1">1.1 The header</A> </H2> <P>For psf1 this is <BLOCKQUOTE><CODE> <PRE> #define PSF1_MAGIC0 0x36 #define PSF1_MAGIC1 0x04 #define PSF1_MODE512 0x01 #define PSF1_MODEHASTAB 0x02 #define PSF1_MODEHASSEQ 0x04 #define PSF1_MAXMODE 0x05 #define PSF1_SEPARATOR 0xFFFF #define PSF1_STARTSEQ 0xFFFE struct psf1_header { unsigned char magic[2]; /* Magic number */ unsigned char mode; /* PSF font mode */ unsigned char charsize; /* Character size */ }; </PRE> </CODE></BLOCKQUOTE> <P>For psf2 this is <BLOCKQUOTE><CODE> <PRE> #define PSF2_MAGIC0 0x72 #define PSF2_MAGIC1 0xb5 #define PSF2_MAGIC2 0x4a #define PSF2_MAGIC3 0x86 /* bits used in flags */ #define PSF2_HAS_UNICODE_TABLE 0x01 /* max version recognized so far */ #define PSF2_MAXVERSION 0 /* UTF8 separators */ #define PSF2_SEPARATOR 0xFF #define PSF2_STARTSEQ 0xFE struct psf2_header { unsigned char magic[4]; unsigned int version; unsigned int headersize; /* offset of bitmaps in file */ unsigned int flags; unsigned int length; /* number of glyphs */ unsigned int charsize; /* number of bytes for each character */ unsigned int height, width; /* max dimensions of glyphs */ /* charsize = height * ((width + 7) / 8) */ }; </PRE> </CODE></BLOCKQUOTE> <P>The meaning is fairly clear from the field names. The fonts here are bitmap fonts (not, for example, vector fonts), and each glyph has a <CODE>height</CODE> and a <CODE>width</CODE>. The bitmap for a glyph is stored as <CODE>height</CODE> consecutive pixel rows, where each pixel row consists of <CODE>width</CODE> bits followed by some filler bits in order to fill an integral number of (8-bit) bytes. Altogether the bitmap of a glyph takes <CODE>charsize</CODE> bytes. <P>For psf1 the width is constant 8, so that the height equals the charsize. <P>The number of glyphs in the font equals <CODE>length</CODE>. For psf1 the length is constant 256, unless the <CODE>PSF1_MODE512</CODE> bit is set in the <CODE>mode</CODE> field, in which case it is 512. <P>The font is followed by a table associating Unicode values with each glyph in case (for psf1) the <CODE>PSF1_MODEHASTAB</CODE> bit is set in the <CODE>mode</CODE> field, or (for psf2) the <CODE>PSF2_HAS_UNICODE_TABLE</CODE> bit is set in the <CODE>flags</CODE> field. <P>The starting offset of the bitmaps in the font file is given by <CODE>headersize</CODE>. (This allows the header to grow, probably depending on <CODE>version</CODE>, without changes in the code.) <P>The integers in the psf2 header struct are little endian 4-byte integers. <P> <H2><A NAME="psffont"></A> <A NAME="ss1.2">1.2 The font</A> </H2> <P>The actual bitmaps. <P> <H2><A NAME="psfunimap"></A> <A NAME="ss1.3">1.3 Unicode information</A> </H2> <P>The bitmaps may be followed by a Unicode description of the glyphs. This Unicode description of a position has grammar <BLOCKQUOTE><CODE> <PRE> <unicodedescription> := <uc>*<seq>*<term> <seq> := <ss><uc><uc>* <ss> := psf1 ? 0xFFFE : 0xFE <term> := psf1 ? 0xFFFF : 0xFF </PRE> </CODE></BLOCKQUOTE> where <CODE><uc></CODE> is a 2-byte little endian Unicode value (psf1), or a Unicode value coded in UTF-8 (psf2), and <CODE>*</CODE> denotes zero or more occurrences of the preceding item. <P>The semantics is as follows. The leading <CODE><uc>*</CODE> part gives Unicode symbols that are all represented by this font position. The following sequences are sequences of Unicode symbols - probably a symbol together with combining accents - also represented by this font position. <P>Example: At the font position for a capital A-ring glyph, we may have (psf1): <BLOCKQUOTE><CODE> <PRE> 00C5,212B,FFFE,0041,030A,FFFF </PRE> </CODE></BLOCKQUOTE> where the Unicode values here are LATIN CAPITAL LETTER A WITH RING ABOVE and ANGSTROM SIGN and LATIN CAPITAL LETTER A and COMBINING RING ABOVE. Some font positions may be described by sequences only, namely when there is no precomposed Unicode value for the glyph. <P> <H2><A NAME="ss1.4">1.4 Historical</A> </H2> <P>PSF stands for PC Screen Font. The psf1 format without Unicode map was designed by H. Peter Anvin in 1989 or so for his DOS screen font editor <CODE>FONTEDIT.EXE</CODE>. In Oct 1994 he added the Unicode map and the programs <CODE>psfaddtable</CODE>, <CODE>psfgettable</CODE>, <CODE>psfstriptable</CODE> to manipulate it - see <CODE>kbd-0.90</CODE>. Andries Brouwer added support for sequences of Unicode values and the psf2 format in Sep 1999 in order to handle Tibetan - see <CODE>kbd-1.00</CODE>. <P> <HR> <A HREF="font-formats-2.html">Next</A> Previous <A HREF="font-formats.html#toc1">Contents</A> </BODY> </HTML>
Close