Re: [dev] antialiased fonts in st

2012-10-06 Thread Kurt H Maier
On Sat, Oct 06, 2012 at 05:06:45PM +0200, Christoph Lohmann wrote:
 Sadly,  I  haven’t  found  a  way to to overwrite the global settings in
 fontconfig for just an application. So the needed antialiasing in  Fire‐
 fox  (The  web  looks ugly without!) will automatically overwrite the st
 settings, where using non‐antialiasing will create more readable  output
 with small monospaced text. Maybe that’s a topic which will come up when
 Wayland is moving things forward.


hahaha wayland

anyway, you can set specific exclusions to certain fonts at certain
sizes.  this involves dicking around in xml.  I told you so. there
should be examples in your /etc/fonts/conf.avail; if not, some minor
googling should help.

within xft itself, this might be happening because you're using
XftFontOpenPattern, which is subject to 'automagic' editing based on
global xft config, which in turn is molested by freetype.  you might try 
taking the match, appending your XFT_ANTIALIAS bool, and then using 
XftFontOpenName instead.  Not sure if this works any more, but iirc 
it did the last time I was under the delusion that xft was worth using.


speaking of which, the simplest way to disable antialiasing is to use
real fonts.



[dev] [st] New patches

2012-10-06 Thread Roberto E. Vargas Caballero
Hello,

This is a new serie of patches for st related to control codes. In
the case of 0003-Add-SI-and-SO-control-codes.patch code does the same that
linux virtual terminal and my real vt520, but xterm and uxterm have other
behaviour, so if someone could give some aditional information about this
issue then please say it. In the patch
0004-Print-control-codes-only-in-graphic-mode.patch I have changed the
priority of checks:


 1: If we are in a STR sequence then handle it and return.
 2: If ascii is a control code then handle it and continue.
 3: Else if we are in a ESC sequence handle it and return.
 4: Print the character. Control codes are printed only in graphic mode.

 After checked some strange sequences in xterm and uxterm this seems the
correct order, but I can not be sure about str sequences because I can not
find documentation about them (I think they were added by xterm).


 It is possible these patches can help with the problem of KarlOskar
Rikås with sandy, because maybe the lost glyph were some control codes, but
I can not be sure because I can not reproduce the problem in my computer.

Roberto Vargas,
From ea7f1156689131e069cfb302d7d97a68f6169565 Mon Sep 17 00:00:00 2001
From: Roberto E. Vargas Caballero k...@shike2.com
Date: Thu, 27 Sep 2012 18:34:07 +0200
Subject: Add documentation to control codes

Add the documentation from the vt100 manual programmer:

Control 	Octal  Action Taken
Character	Code
---
NUL		000	Ignored on input (not stored in input buffer;
			see full duplex protocol).
ENQ		005	Transmit answerback message.
BEL		007	Sound bell tone from keyboard.
BS		010	Move the cursor to the left one character position,
			unless it is at the left margin,
			in which case no action occurs.
HT		011	Move the cursor to the next tab stop,
			or to the right margin if no further tab stops
			are present on the line.
LF		012	This code causes a line feed or
			a new line operation. (See new line mode).
VT		013	Interpreted as LF.
FF		014	Interpreted as LF.
CR		015	Move cursor to the left margin on the current line.
SO		016	Invoke G1 character set, as designated by SCS
			control sequence.
SI		017	Select G0 character set, as selected by ESC ( sequence.
XON		021	Causes terminal to resume transmission.
XOFF		023	Causes terminal to stop transmitted all codes
			except XOFF and XON.
CAN		030	If sent during a control sequence, the sequence is
			immediately terminated and not executed. It also causes
			the error character to be displayed.
SUB		032	Interpreted as CAN.
ESC		033	Invokes a control sequence.
DEL		177	Ignored on input (not stored in input buffer).

---
 st.c |   28 +++-
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/st.c b/st.c
index 64e0aff..aa5f085 100644
--- a/st.c
+++ b/st.c
@@ -1789,32 +1789,42 @@ tputc(char *c, int len) {
 		write(iofd, c, len);
 
 	switch(ascii) {
-	case '\t':
+	case '\t':	/* HT */
 		tputtab(1);
 		return;
-	case '\b':
+	case '\b':	/* BS */
 		tmoveto(term.c.x-1, term.c.y);
 		return;
-	case '\r':
+	case '\r':	/* CR */
 		tmoveto(0, term.c.y);
 		return;
-	case '\f':
-	case '\v':
-	case '\n':
+	case '\f':	/* LF */
+	case '\v':	/* VT */
+	case '\n':	/* LF */
 		/* go to first col if the mode is set */
 		tnewline(IS_SET(MODE_CRLF));
 		return;
-	case '\a':
+	case '\a':	/* BEL */
 		if(term.esc  ESC_STR)
 			break;
-
 		if(!(xw.state  WIN_FOCUSED))
 			xseturgency(1);
 		return;
-	case '\033':
+	case '\033':	/* ESC */
 		csireset();
 		term.esc = ESC_START;
 		return;
+	case '\016':	/* XXX: SO */
+	case '\017':	/* XXX: SI */
+	case '\032':	/* XXX: SUB */
+	case '\030':	/* XXX: CAN */
+	default:
+	/* case '\005':	ENQ (IGNORED) */
+	/* case '\000':	NUL (IGNORED) */
+	/* case '\021':	XON (IGNORED) */
+	/* case '\023':	XOFF (IGNORED) */
+	/* case 0177:	DEL (IGNORED) */
+		break;
 	}
 
 	if(term.esc  ESC_START) {
-- 
1.7.10.4

From 58b67250da632d4213f0dcf82eee5ce0585e5dfb Mon Sep 17 00:00:00 2001
From: Roberto E. Vargas Caballero k...@shike2.com
Date: Fri, 28 Sep 2012 22:04:17 +0200
Subject: Add SUB and CAN control codes

These control codes reset any escape sequence already initialised.
---
 st.c |7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/st.c b/st.c
index aa5f085..8e25d23 100644
--- a/st.c
+++ b/st.c
@@ -1816,8 +1816,11 @@ tputc(char *c, int len) {
 		return;
 	case '\016':	/* XXX: SO */
 	case '\017':	/* XXX: SI */
-	case '\032':	/* XXX: SUB */
-	case '\030':	/* XXX: CAN */
+		break;
+	case '\032':	/* SUB */
+	case '\030':	/* CAN */
+		csireset();
+		return;
 	default:
 	/* case '\005':	ENQ (IGNORED) */
 	/* case '\000':	NUL (IGNORED) */
-- 
1.7.10.4

From a3a3ce413ffad5110640444e70685b37787e8bc5 Mon Sep 17 00:00:00 2001
From: Roberto E. Vargas Caballero k...@shike2.com
Date: Fri, 28 Sep 2012 22:06:02 +0200
Subject: Add SI and SO control codes

SI and SO allows change the G0