X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=FAQ;h=2ee5ec7a2c7012a8300c2ba6d904dd7c0aebf879;hb=f210ea26c444607980d5de17ed7d4e62bb813631;hp=c8e76a53b4a5d9e1710da89864c704a3a0ec5e77;hpb=27b28f1dc264e9947ea22bd64fd8f00ac98442f5;p=st.git diff --git a/FAQ b/FAQ index c8e76a5..2ee5ec7 100644 --- a/FAQ +++ b/FAQ @@ -42,10 +42,10 @@ Taken from the terminfo manpage: always transmit. In the st case smkx=E[?1hE= and rmkx=E[?1lE>, so it is mandatory that -applications which want to test against keypad keys, have to send these +applications which want to test against keypad keys send these sequences. -But buggy applications like bash and irssi for example don't do this. A fast +But buggy applications (like bash and irssi, for example) don't do this. A fast solution for them is to use the following command: $ printf '\033[?1h\033=' >/dev/tty @@ -53,7 +53,7 @@ solution for them is to use the following command: or $ echo $(tput smkx) >/dev/tty -In the case of bash readline is used. Readline has a different note in its +In the case of bash, readline is used. Readline has a different note in its manpage about this issue: enable-keypad (Off) @@ -84,8 +84,75 @@ If you are using zsh, then read the zsh FAQ Putting these lines into your .zshrc will fix the problems. -## How can use meta in 8bit mode? +## How can I use meta in 8bit mode? - St support meta in 8bit mode, but the default terminfo entry doesn't - use this capability. If you want it, you have to use st-meta value + St supports meta in 8bit mode, but the default terminfo entry doesn't + use this capability. If you want it, you have to use the 'st-meta' value in TERM. + +## I cannot compile st in OpenBSD + +OpenBSD lacks of librt, despite it begin mandatory in POSIX +. +If you want to compile st for OpenBSD you have to remove -lrt from config.mk, and +st will compile without any loss of functionality, because all the functions are +included in libc on this platform. + +## Backspace key does not work + +This is an issue that was discussed in suckless mailing list +: + + Well, I am going to comment why I want to change the behaviour + of this key. When ascii was defined in 1968 communication + with computers were done using punched cards, or hardcopy + terminals (basically a typewritter machine connected with + the computer using a serial port). Due to this, ascii defines + DELETE as 7F, because in the puched cards, it means all the + holes of the card punched, so it is a kind of 'phisical + delete'. In the same way, BACKSPACE key was a non destructive + back space, as in typewriter machines. So, if you wanted + to delete a character, you had to BACKSPACE and then DELETE. + Other use of BACKSPACE was accented characters, for example + 'a BACKSPACE `'. The VT100 had no BACKSPACE key, it was + generated using the CONTROL key as another control character + (CONTROL key sets to 0 b7 b6 b5, so it converts H (code + 0x48) into BACKSPACE (code 0x08)), but it had a DELETE key + in a similar position where BACKSPACE key is located today + in common PC keyboards. All the terminal emulators emulated + correctly the difference between these keys, and backspace + key generated a BACKSPACE (^H) and delete key generated a + DELETE (^?). + + But the problem arised when Linus Torvald wrote Linux, and + he did that the virtual terminal (the terminal emulator + integrated in the kernel) returns a DELETE when backspace + was pressed, due to the fact of the key in that position + in VT100 was a delete key. This created a lot of problems + (you can see it in [1] and [2]), and how Linux became the + king, a lot of terminal emulators today generate a DELETE + when backspace key is pressed in order to avoid problems + with linux. It causes that the only way of generating a + BACKSPACE in these systems is using CONTROL + H. I also + think that emacs had an important point here because CONTROL + + H prefix is used in emacs in some commands (help commands). + + From point of view of the kernel, you can change the key + for deleting a previous character with stty erase. When you + connect a real terminal into a machine you describe the + type of terminal, so getty configure the correct value of + stty erase for this terminal, but in the case of terminal + emulators you don't have any getty that can set the correct + value of stty erase, so you always get the default value. + So it means that in case of changing the value of the + backspace keyboard, you have to add a 'stty erase ^H' into + your profile. Of course, other solution can be that st + itself modify the value of stty erase. I have usually the + inverse problem, when I connect with non Unix machines, and + I have to press control + h to get a BACKSPACE, or the + inverse, when a user connects to my unix machines from a + different system with a correct backspace key. + + [1] http://www.ibb.net/~anne/keyboard.html + [2] http://www.tldp.org/HOWTO/Keyboard-and-Console-HOWTO-5.html +