|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
#######
#
# E-scripts on vcs, terminal emulation, etc.
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
# An introduction to eev can be found here:
#
# (find-eev-quick-intro)
# http://angg.twu.net/eev-intros/find-eev-quick-intro.html
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/console.e>
# or at <http://angg.twu.net/e/console.e.html>.
# See also <http://angg.twu.net/emacs.html>,
# <http://angg.twu.net/.emacs[.html]>,
# <http://angg.twu.net/.zshrc[.html]>,
# <http://angg.twu.net/escripts.html>,
# and <http://angg.twu.net/>.
#
#######
Etc:
# «.setbell» (to "setbell")
# «.less» (to "less")
# «.screen» (to "screen")
# «.screen_demo_eeg2» (to "screen_demo_eeg2")
# «.screen-src» (to "screen-src")
# «.screen-src-gdbk» (to "screen-src-gdbk")
# «.console-tools-src» (to "console-tools-src")
# «.svgatextmode» (to "svgatextmode")
# «.svgatextmode0» (to "svgatextmode0")
# «.avoiding_tty_reset» (to "avoiding_tty_reset")
# «.framebuffer» (to "framebuffer")
# «.fbset» (to "fbset")
# «.toggle_meta» (to "toggle_meta")
# «.ncurses-src» (to "ncurses-src")
# «.ncurses_demos» (to "ncurses_demos")
# «.ncurses_1» (to "ncurses_1")
# «.key_charseq» (to "key_charseq")
Keyboard:
# «.kbrequest_who» (to "kbrequest_who")
# «.kbrequest-innards» (to "kbrequest-innards")
# «.kbdrate_measuring» (to "kbdrate_measuring")
# «.kbdrate_setting» (to "kbdrate_setting")
# «.reduce_my_keymap» (to "reduce_my_keymap")
# «.abnt2-keymap» (to "abnt2-keymap")
Console fonts:
# «.console512» (to "console512")
# «.chars256to511» (to "chars256to511")
# «.vgafont_via_outbs» (to "vgafont_via_outbs")
# «.glyphs512» (to "glyphs512")
# «.RH_consolechar_bug» (to "RH_consolechar_bug")
# «.hardware-fonts» (to "hardware-fonts")
# «.vt-palette» (to "vt-palette")
# «.ttyname» (to "ttyname")
# «.non-utf-8» (to "non-utf-8")
# «.default-keymap» (to "default-keymap")
# «.vtutil4» (to "vtutil4")
# «.terminfo» (to "terminfo")
# «.tput» (to "tput")
# «.ansi.lua» (to "ansi.lua")
# «.TERM» (to "TERM")
# «.xon-xoff» (to "xon-xoff")
# «.ansi-color-apply» (to "ansi-color-apply")
# «.stderr-as-a-symlink» (to "stderr-as-a-symlink")
#####
#
# Setting the bell duration and frequency
# 2000nov22
#
#####
# «setbell» (to ".setbell")
# Note to greppers: beep -> setbell.
# (find-man "4 console_codes" "frequency")
# (find-zshnode "Shell Builtin Commands" "\necho")
# (find-node "(bash)Bash Builtins" "`echo'")
# (find-kfile "drivers/char/console.c" "default bell parameters: 750HZ, 1/8th of a second")
# (find-k26file "drivers/char/vt.c" "default bell parameters: 750HZ, 1/8th of a second")
#*
# (find-angg ".zshrc.local.mcgill" "setbell")
function setbell () {
echo -ne "\033[10;$1]\033[11;$2]"
}
sleep 1; echo -e '\a'
setbell 600 200
sleep 1; echo -e '\a'
setbell 22 40
sleep 1; echo -e '\a'
# Default:
setbell 750 125
sleep 1; echo -e '\a'
#*
#####
#
# less
# 2000jun22
#
#####
# «less» (to ".less")
# (find-angg ".zshrc" "less")
# (find-man "less" "--RAW-CONTROL-CHARS")
# (find-man "less" "LESSCHARDEF")
# ascii 8bcccbcc18b95.b
# dos 8bcccbcc12bc5b95.b.
# ebcdic 5bc6bcc7bcc41b.9b7.9b5.b..8b6.10b6.b9.7b
# 9.8b8.17b3.3b9.7b9.8b8.6b10.b.b.b.
# iso8859 8bcccbcc18b95.33b.
# koi8-r 8bcccbcc18b95.b128.
# latin1 8bcccbcc18b95.33b.
# next 8bcccbcc18b95.bb125.bb
perl -e '
for ($i = 0; $i <= 255; $i++) {
printf "%d: %c\n", $i, $i
}
' > /tmp/chars
# Display all chars except CSI and the obvious control chars:
LESSCHARDEF=8bcccbcc18b95.b27.b99.b \
less -f /tmp/chars
# (find-angg ".zshrc" "less")
# Linux VTs are slow at backward scrolling; use -C.
# (eeman "less" "-C")
# (eeman "less" "-c")
# Give nice prompts at the last line:
# (eeman "less" "-M")
#####
#
# The scripts about Screen were moved to screen.e.
#
#####
# «screen» (to ".screen")
# «screen_demo_eeg2» (to ".screen_demo_eeg2")
# «screen-src» (to ".screen-src")
# «screen-src-gdbk» (to ".screen-src-gdbk")
# (find-es "screen" "screen")
# (find-es "screen" "screen_demo_eeg2")
# (find-es "screen" "screen-src")
# (find-es "screen" "screen-src-gdbk")
#####
#
# console-tools source (for 512-chars fonts)
#
#####
# «console-tools-src» (to ".console-tools-src")
pdsc /big/slinks2/dists/slink/main/source/utils/console-tools_1998.08.11-3.dsc
cd /usr/src/console-tools-1998.08.11/
# (code-c-d "ct" "/usr/src/console-tools-1998.08.11/")
# (find-ctfile "")
# (find-ctfile "screenfonttools/showcfont.c")
# (find-ctfile "screenfonttools/consolechars.c")
# (find-ctfile "NEWS")
# (find-fline "/usr/include/linux/kd.h" "PIO_FONTX")
# (find-k2file "drivers/char/vt.c" "PIO_FONTX")
kglimpse kd.h
#####
#
# svgatextmode
# 2000jul24
#
#####
# «svgatextmode» (to ".svgatextmode")
# (find-status "svgatextmode")
# (find-vldifile "svgatextmode.list")
# (find-vldifile "" "svgatextmode.list")
# (find-vldifile "svgatextmode.preinst")
# (find-vldifile "svgatextmode.postinst")
# (find-vldifile "svgatextmode.prerm")
# (find-vldifile "svgatextmode.postrm")
# (find-fline "/usr/doc/svgatextmode/")
# (find-fline "/usr/doc/svgatextmode/PROBLEMS_QuickStart")
# (eeman "SVGATextMode")
# (find-fline "/etc/init.d/svgatextmode")
# (find-fline "/etc/TextConfig")
# Use one of the two commands/pipelines below to create a new TextConfig...
# (find-fline "~/replace/TextConfig.sis6326-angg")
#
cp -v /etc/TextConfig ~/replace/TextConfig.sis6326-angg
cat /etc/TextConfig \
| egrep -v '^[ ]*(#|$)' \
| tee ~/replace/TextConfig.sis6326-angg
SVGATextMode
SVGATextMode -t ~/replace/TextConfig.sis6326-angg
# (find-fline "~/replace/TextConfig.sis6326-angg" "SiS")
# Modes grabbed with grabmode at angg with a SiS6326, 2000jul24:
#
#"132x44" 39.985 1056 1104 1280 1312 396 404 406 436 -Hsync +Vsync font 8x9 # 30.476kHz/69.90Hz
#"132x49" 39.985 1056 1104 1280 1312 392 404 406 436 -Hsync +Vsync font 8x8 # 30.476kHz/69.90Hz
SVGATextMode -t ~/replace/TextConfig.sis6326-angg -f sis132x44
######
#
# svgatextmode (and kbrequest)
# 99aug31
#
######
# «svgatextmode0» (to ".svgatextmode0")
# (find-man "5 inittab" "kbrequest")
# (find-es "k22" "sysrq")
# (find-fline "~/bin/mystm")
apti svgatextmode
cd /etc/rc2.d/
mv -v S40svgatextmode _S40svgatextmode
cd /etc/rc3.d/
mv -v S40svgatextmode _S40svgatextmode
cd /etc/rcS.d/
mv -v S60svgatextmode _S60svgatextmode
# (find-vldifile "svgatextmode.list")
# (find-fline "/usr/doc/svgatextmode/")
# (find-fline "/usr/doc/svgatextmode/FAQ.gz" 850)
# (find-fline "/etc/TextConfig")
# (eeman "SVGATextMode")
egrep -v '^[ ]*(#|$)' /etc/TextConfig
SVGATextMode -s | egrep '^[0-9]' | sort | l
# This is to make a local TextConfig file:
# (find-fline "~/replace/TextConfig.angg")
(cat <<'---'
# (find-es "console" "svgatextmode")
ChipSet "S3"
ClockChip "S3Virge"
DefaultMode "80x50x9"
---
grep '^"' /etc/TextConfig) \
> ~/replace/TextConfig.angg
# Testing it:
SVGATextMode -t ~/replace/TextConfig.angg
# To call it on "kbrequest"s:
# (find-fline "/home/root/bin/kbrequest")
# (find-fline "/etc/inittab" "kbrequest")
# svgatextmode is a big package, but we need very little from it; only
# /sbin/SVGATextMode, if we don't care about grabmode, /etc/TextConfig
# or docs.
#
strace -f -o ~/s \
SVGATextMode -t ~/replace/TextConfig.angg
getstrings < ~/s
# (find-fline "~/replace/TextConfig.angg")
SVGATextMode -t ~/replace/TextConfig.angg 132x50x8
SVGATextMode -t ~/replace/TextConfig.angg 160x60
SVGATextMode -t ~/replace/TextConfig.angg 160x60x9
# 160 cols: dangerous?
#####
#
# What process gets the kbrequest?
#
#####
# «kbrequest_who» (to ".kbrequest_who")
# (find-fline "/etc/inittab" "kbrequest")
# (find-fline "/home/root/bin/kbrequest")
# (find-man "5 inittab" "kbrequest")
# (find-vldifile "sysvinit.list")
# (find-fline "/usr/doc/sysvinit/")
pdsc /big/slinks1/dists/slink/main/source/base/sysvinit_2.76-3.dsc
cd /usr/src/sysvinit-2.76/
# (find-fline "/usr/src/sysvinit-2.76/src/init.c" "kbrequest")
# (find-fline "/usr/src/sysvinit-2.76/src/init.c" "Tell kbrequest")
# (find-fline "/usr/src/sysvinit-2.76/src/init.c" "!= KBREQUEST")
SVGATextMode 80x50x8
pdsc /big/slinks1/dists/slink/main/source/base/kbd_0.96a-14.dsc
cd /usr/src/kbd-0.96a/
agrep -i spawn $(find *)
#####
#
# kbrequest - how it works
# 2005oct17
#
#####
# «kbrequest-innards» (to ".kbrequest-innards")
# (find-fline "/etc/inittab" ":ctrlaltdel:")
# (find-fline "/etc/inittab" "kbrequest")
# (find-man "5 inittab" "ctrlaltdel")
# (find-man "5 inittab" "kbrequest")
# (eek "M-h M-d sysvinit")
# http://www.piterpunk.hpg.ig.com.br/dicas.html#23
# http://lists.debian.org/debian-user/1998/09/msg02246.html
# http://ftp.debian.org/debian/pool/main/s/sysvinit/sysvinit_2.86.ds1-4.dsc
# http://ftp.debian.org/debian/pool/main/s/sysvinit/sysvinit_2.86.ds1-4.diff.gz
# http://ftp.debian.org/debian/pool/main/s/sysvinit/sysvinit_2.86.ds1.orig.tar.gz
#*
rm -Rv ~/usrc/sysvinit-2.86.ds1/
mkdir ~/usrc/sysvinit-2.86.ds1/
cd ~/usrc/
dpkg-source -x \
$S/http/ftp.debian.org/debian/pool/main/s/sysvinit/sysvinit_2.86.ds1-4.dsc
rm -v sysvinit_2.86.ds1.orig.tar.gz
cd ~/usrc/sysvinit-2.86.ds1/
#*
# (code-c-d "sysvinit" "~/usrc/sysvinit-2.86.ds1/")
# (find-sysvinitfile "")
# (find-sysvinitsh "grep -i kbrequest $(find *)")
# (find-sysvinitfile "src/init.c" "kbrequest")
# (find-sysvinitfile "src/init.h" "#define KBREQUEST")
# (find-sh "dumpkeys" "Boot")
# (find-sh "dumpkeys" "KP_Period" "Boot")
# (find-sh "dumpkeys" "Remove" "Boot")
# (find-sh "dumpkeys" "KeyboardSignal")
# (find-sysvinitfile "src/init.c" "We got signaled.")
# (find-sysvinitfile "src/init.c" "got SIGINT" "ctrlaltdel entry")
# (find-sysvinitfile "src/init.c" "got SIGWINCH" "kbrequest entry")
# (find-fline "/usr/include/linux/keyboard.h")
# (find-fline "/usr/include/linux/keyboard.h" "#define K_BOOT")
# (find-k26file "drivers/char/keyboard.c")
# (find-k26file "drivers/char/keyboard.c" "ctrl_alt_del()")
# (find-k26file "drivers/char/keyboard.c" "fn_boot_it,")
# (find-k26file "drivers/char/console_macros.h")
#####
#
# kbd repeat rate and delay: measuring
# 2000apr10
#
#####
# «kbdrate_measuring» (to ".kbdrate_measuring")
# (find-es "expect" "expect_bugs_potato")
expect -c '
while 1 {
set usecs [lindex [time {expect -re .}] 0]
set msecs [expr $usecs/1000.0]
send_user "$msecs "
}
'
#####
#
# kbd repeat rate and delay: setting (low level)
# 2000apr09
#
#####
# «kbdrate_setting» (to ".kbdrate_setting")
pdsc $SDEBIAN/dists/potato/main/source/base/util-linux_2.10f-3.dsc
cd /usr/src/util-linux-2.10f/
debian/rules binary |& tee odrb
# (code-c-d "ul" "/usr/src/util-linux-2.10f/")
# (find-ulfile "")
# (find-ulfile "debian/rules")
# (find-ulfile "odrb")
# (find-ulfile "odrb" "kbdrate")
# (find-ulfile "Makefile")
# (find-ulfile "kbd/")
# (find-ulfile "kbd/kbdrate.c")
pdsc $SDEBIAN/dists/potato/main/source/base/util-linux_2.10f-3.dsc
cd /usr/src/util-linux-2.10f/
./configure |& tee oc
cd /usr/src/util-linux-2.10f/kbd/
cc -c -pipe -m486 -fomit-frame-pointer -I. -I../lib -Wall \
-DNCH=1 -DSBINDIR=\"/sbin\" -DUSRSBINDIR=\"/usr/sbin\" \
-DLOGDIR=\"/var/log\" -DVARPATH=\"/var\" \
-DLOCALEDIR=\"/usr/share/locale\" \
-g kbdrate.c -o kbdrate.o
cc kbdrate.o -o kbdrate
# gdb jumps source lines with -O2, let's try without optimization
# Urgh, the "print"s are showing wrong values. Bug
# (gdb "gdb /usr/src/util-linux-2.10f/kbd/kbdrate")
#*
br main
set args -r 30.0 -d 250
run
#*
# (find-fline "~/MTA/vtutilsh.c" "_setkbdrepeat")
# Why the "sleep(1)"?
# Maybe because it's harder to program sub-second delays.
# I changed it to 100ms, that seems more than enough.
# (find-fline "~/MTA/vtutilsh.c" "Tcl_Sleep")
# (find-fline "~/.zshrc" "setkbdrepeat")
cd ~/MTA/
make
./vtutil setkbdrepeat 0 100
cd ~/MTA/
./vtutil setkbdrepeat 128 1000
cd ~/MTA/
./vtutil setkbdrepeat 127 1000
kbdrate -r 30.0 -d 250
# (find-es "forth" "pforth-custom0")
# (find-k22file "arch/i386/boot/setup.S" "keyboard repeat rate")
# (find-fline "/usr/src/util-linux-2.10f/kbd/kbdrate.c" "valid_rates[]")
# (find-k22file "drivers/char/keyboard.c")
# (find-k22file "drivers/char/pc_keyb.c")
#####
#
# Reducing my keymaps by using includes
# 2001feb01
#
#####
# «reduce_my_keymap» (to ".reduce_my_keymap")
# (find-fline "/usr/share/keymaps/i386/qwerty/")
#*
rm -Rv /tmp/keymaps/
mkdir /tmp/keymaps/
cp -v /usr/share/keymaps/i386/qwerty/defkeymap* /tmp/keymaps/
cd /tmp/keymaps/
gzip -dv *
#*
cd /tmp/keymaps/
# tkdiff -b defkeymap.kmap ~/MTA/defkeymap850b.map
diff -b defkeymap.kmap ~/MTA/defkeymap850b.map \
| grep -v 'compose' | grep '^>' \
| tee ~/o
# shift alt keycode 12 = Meta_underscore
# shift alt keycode 13 = Meta_plus
# shift alt keycode 39 = Meta_colon
# control keycode 51 = Control_q
# shift control alt keycode 59 = Console_13
# shift alt keycode 59 = Console_13
# shift control alt keycode 60 = Console_14
# shift alt keycode 60 = Console_14
# alt keycode 103 = Spawn_Console
#*
cd /tmp/keymaps/
cat defkeymap.kmap | grep ^keycode | grep -v '= *$'
#*
#####
#
# libggi
# 2000jul24
#
#####
# (find-fline "/usr/doc/svgatextmode/No_more_display_corruption")
grep-status -P ggi | tee ~/o
# (find-fline "~/o")
xserver-ggi
libggi-samples
libggi-target-aa
libggi-target-fbdev
libggi-target-svgalib
libggi-target-vcsa
libggi-target-x
libggi2
libggidemos
libgii0
#####
#
# Avoiding a terminal reset on vtutil's "open /dev/tty"
# 00jan28
#
#####
# «avoiding_tty_reset» (to ".avoiding_tty_reset")
# (find-fline "~/MTA/vtutil" "file0")
# loadkeys and setfont issue ioctls to the terminal:
dmissing loadkeys
dmissing setfont
# (find-vldifile "kbd.list")
# (find-fline "/usr/doc/kbd/")
# (find-vldifile "console-tools.list")
# (find-fline "/usr/doc/console-tools/")
# (find-vldifile "kbd-compat.list")
# (find-fline "/usr/doc/kbd-compat/")
slinksgrep kbd
slinksgrep console-tools
slinksgrep kbd-compat
pdsc /big/slinks1/dists/slink/main/source/base/kbd_0.96a-14.dsc
# (code-c-d "kbd" "/usr/src/kbd-0.96a/")
# (find-kbdfile "")
# (find-kbdfile "src/")
# (find-kbdfile "consolefonts/" "cp850")
# (find-fline "/big/slinks1/dists/slink/main/source/base/kbd_0.96a-14.diff.gz")
#####
#
# framebuffer
# 2000may07
#
#####
# «framebuffer» (to ".framebuffer")
# Note: I gave up using framebuffers very soon and I haven't even
# learned how to choose vts of fbs at boot time (much less after
# booting).
cd /big/potato/
find * | grep fb
Pgrepp m/libggi/ |& l
apti xserver-fbdev fbset
# (find-vldifile "xserver-fbdev.list")
# (find-fline "/usr/share/doc/xserver-fbdev/")
# (find-fline "/usr/share/doc/xserver-fbdev/README.Debian")
# (eeman "1 openvt")
# (eeman "8 fbset")
# (find-vldifile "fbset.list")
# (find-fline "/usr/doc/fbset/")
# (eeman "5 fb.modes")
# (eeman "8 modeline2fb")
# (eeman "8 fbset")
# (eeman "8 con2fbmap")
# (find-vldifile "lg-issue36.list")
# (find-fline "/usr/doc/lg-issue36/")
# (find-fline "/usr/share/doc/lg/issue36/ayers.html")
lynx /usr/share/doc/lg/issue36/ayers.html
# (find-k22file "drivers/video/")
# (find-k22file "Documentation/fb/")
# (find-k22file "Documentation/fb/vesafb.txt")
# (find-k22file "Documentation/fb/vesafb.txt" "hex values")
# (find-k22file "Documentation/Configure.help" "CONFIG_FB\n")
# It seems that that CONFIG_FB is only offered at the kernel config
# when we ask for the alpha drivers...
# (find-k22file ".config" "CONFIG_FB")
# (find-vldifile "lilo.list")
# (find-fline "/usr/doc/lilo/")
# But the prompts given by "vga=ask" aren't giving me any choices of
# graphic modes. What am I doing wrong?
# (find-k22file "arch/i386/boot/video.S" "Scan for video modes")
# (find-htetfile "Framebuffer-HOWTO.txt.gz")
# (find-htetfile "Framebuffer-HOWTO.txt.gz" " 4.1.")
# (find-htetfile "Framebuffer-HOWTO.txt.gz" "s.\n\n 17.")
# (find-htetfile "Framebuffer-HOWTO.txt.gz" "S3 Virge")
# (find-fline "$S/ftp/ccssu.crimea.ua/pub/linux/kernel/v2.2/unofficial/s3new.diff.gz")
lynx http://www.tahallah.demon.co.uk/programming/prog.html
# (find-vldifile "libggi-target-fbdev.list")
# (find-fline "/usr/doc/libggi-target-fbdev/")
#####
#
# fbset
# 2023mar04
#
#####
# «fbset» (to ".fbset")
# (find-status "fbset")
# (find-vldifile "fbset.list")
# (find-udfile "fbset/")
# (find-fline "~/LOGS/2023mar04.emacs" "fbset -i")
# (find-fline "~/eev-videos/")
cd ~/eev-videos/
mpv --vo=fb 2021projeto-de-ensino.mp4
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
sudo dpkg-reconfigure console-setup
[vo] Video output fb note found!
#####
#
# Toggling the effect of "meta"
# 2000oct22
#
#####
# «toggle_meta» (to ".toggle_meta")
#*
cd /usr/src/linux-2.2/drivers/char/
agrep -i meta *.[ch]
#*
# (find-k22file "drivers/char/console.c")
# (find-k22file "drivers/char/console_macros.h")
# (find-k22file "drivers/char/keyboard.c")
# (find-k22file "drivers/char/keyboard.c" "if (vc_kbd_mode(kbd, VC_META))")
# (find-k22file "drivers/char/vt.c" "case KDSKBMETA:")
# (eeman "4 console_ioctl" "KDGKBMETA")
# (eeman "xterm" "eightBitInput")
# (eeman "xvt" "-8")
# (eeman "rxvt" "meta")
#####
#
# understanding the ABNT2 keymap
# 2000nov08
#
#####
# «abnt2-keymap» (to ".abnt2-keymap")
# (eeman "1 loadkeys")
# (eeman "5 keymaps")
# (eeman "5 keymaps" "strings as usual")
# (eeman "5 keymaps" "compose as usual for")
#*
dumpkeys --long-info | tee ~/o
#*
# (find-fline "~/o")
# (find-fline "~/o" "dead_tilde")
# (find-fline "/usr/share/keymaps/i386/")
# (find-fline "/usr/share/keymaps/i386/qwerty/br-abnt2.kmap.gz")
# (find-fline "/usr/share/keymaps/i386/include/")
# (find-fline "/usr/share/keymaps/i386/include/qwerty-layout.inc.gz")
# (find-fline "/usr/share/keymaps/i386/include/linux-with-alt-and-altgr.inc.gz")
#####
#
# console (512 chars fonts)
#
#####
# «console512» (to ".console512")
apti console-tools console-tools-libs
# (find-status "console-tools")
# (find-vldifile "console-tools.list")
# (find-udfile "console-tools/")
# (find-status "console-tools-libs")
# (find-vldifile "console-tools-libs.list")
# (find-fline "/usr/doc/console-tools-libs/")
# (find-fline "/usr/doc/console-tools-libs/file-formats/")
# (find-fline "/usr/doc/console-tools-libs/examples/unicode/")
cd /usr/doc/console-tools-libs/examples/unicode/
unicode_start
zcat utflist.cp437.gz | l -r
unicode_stop
# (find-vldifile "kbd-data.list")
# (find-fline "/usr/doc/kbd-data/")
# (find-fline "/usr/share/consolefonts/")
cd /tmp/
cp -v /usr/share/consolefonts/{cp,def}* .
gzip -dv *.gz
consolechars -f cp850-8x8
# can't
/usr/share/consolefonts/
apti kbd kbd-data
# (find-fline "/usr/doc/kbd/")
# (find-fline "/usr/doc/kbd-data/")
# (find-fline "/usr/doc/kbd-data/console.docs.gz")
# (find-vldifile "kbd.list")
# (find-vldifile "kbd-data.list")
cd /usr/doc/console-tools-libs/examples/unicode/
setfont
setfont -u def.uni
echo -e '\033%8'
ls -N
echo -e '\033%@'
strace-to ~/s consolechars -H 8 -f ~/replace/ega1.8
strace-to ~/s consolechars -H 8 -f cp850-8x8
strace-to ~/s consolechars -H 8 -f ~/replace/ega1.8
strace-to ~/s consolechars -H 8 -f cp850-8x8
apti console-tools console-tools-libs
cd /tmp/
cp -v /usr/share/consolefonts/Goha* .
gzip -dv *.gz
consolechars -f Goha-16
showcfont
consolechars -f Goha-12
showcfont
i=50; while [[ $i -ge 1 ]]; do echo $i; i=$[$i-1]; done
apti kbd
#####
#
# How do I generate chars on the range 256..511?
#
#####
# «chars256to511» (to ".chars256to511")
# showcfont only works right if the output is a terminal, so we use
# expect to capture the output from it.
expect -c '
spawn showcfont
match_max 6000
expect -n eof
set channel [open "~/o512" w]
puts -nonewline $channel $expect_out(buffer)
close $channel
'
l -fr ~/o512
# (find-fline "~/o512")
# (hexl-find-file "~/o512")
# Trick: ef 80..87 80..bf
proc vtchar {n} {
format "%c%c%c" 239 [expr "(($n & (511 & -63)) / 64) + 128"] \
[expr "($n & 63) + 128"]
}
puts "\033%G[vtchar 64]\033%@"
/usr/share/consolefonts/Goha-14.psf.gz
/usr/share/consolefonts/Goha-16.psf.gz
/usr/share/consolefonts/GohaClassic-12.psf.gz
/usr/share/consolefonts/GohaClassic-14.psf.gz
/usr/share/consolefonts/GohaClassic-16.psf.gz
# (find-slink "console-tools")
# (find-slink "console-tools-data")
# (find-slink "kbd")
man chvt
man deallocvt
man fgconsole
man kbd_mode
man psfaddtable
man psfgettable
man setleds
man setmetamode
man showkey
man unicode_start
man unicode_stop
man vt-is-UTF8
man showcfont
man charset
man codepage
man fix_bs_and_del
man mk_modmap
man screendump
man dumpkeys
man loadkeys
man psfstriptable
cd /tmp/
psfgettable Goha-12*
#####
#
# Changing the VGA font via "outb"s
# 2000oct22
#
#####
# «vgafont_via_outbs» (to ".vgafont_via_outbs")
#*
cd /usr/src/linux-2.2/drivers/char/
agrep -i font *.[ch] |& l -S
#*
cd /usr/src/linux-2.2/drivers/video/
agrep -i font *.[ch] |& l -S
#*
# (find-k22file "drivers/video/vgacon.c")
# (find-k22file "drivers/video/vgacon.c" " * PIO_FONT support.")
# (find-k22file "drivers/video/Makefile" "vgacon")
# (find-k22file "Documentation/Configure.help" "CONFIG_VGA_CONSOLE")
# (find-fline "~/k22conf" "CONFIG_VGA_CONSOLE")
# (find-k22file "drivers/char/console.c" "con_font_op")
#####
#
# 512 char fonts in emacs
#
#####
# «glyphs512» (to ".glyphs512")
; (find-man "4 console_codes" "ESC % @")
; (find-man "4 console_codes" "ESC % G")
; (find-man "7 charsets" "1110xxxx")
; Nome errado; é utf8, não unichar (acho).
; Aliás, eu roubei essa encodificação do showcfont.
(defun unicharhi (n)
(format "\e%%G\xef%c%c\e%%@"
(+ 128 (logand (lsh n -6) 7))
(+ 128 (logand n 63))))
(defun setglyph (charn color fontpos)
(let ((s (cond ((>= fontpos 255) (unicharhi fontpos))
((< fontpos 32) (unicharhi fontpos))
(t (format "%c" fontpos)))))
(if color (setq s (format "\e[%sm%s\e[m" color s)))
(aset standard-display-table charn
(vector (create-glyph s)))))
(defun setglyphs (a b c &rest r)
(setglyph a b c)
(if r (apply 'setglyph r)))
% partial, "I; nabla, ??.
% (setglyphs ?Ï nil 277 ?¿ nil 278)
(setglyph 5 "1;44" 13)
(setglyph ?Ï nil 277) ; partial; "I
(setglyph ?¿ nil 278) ; nabla; ??
(ascstr 128 255)
# (find-fline "~/MTA/newtest.tcl" "set hchars")
# (find-es "console" "chars256to511")
# (find-node "(elisp)Bitwise Operations")
# (find-node "(elisp)Conditionals")
# (logand 511 -63)
# (logand (lsh n -4)
# Truque: ef 80..87 80..bf
proc vtchar {n} {
format "%c%c%c" 239 [expr "(($n & (511 & -63)) / 64) + 128"] \
[expr "($n & 63) + 128"]
}
puts "\033%G[vtchar 64]\033%@"
# (find-man "4 console")
# (find-man "4 console_ioctl")
# (find-man "4 console_ioctls")
# (find-man "4 console_codes")
# (find-man "4 console_codes" "ECMA-48 Set Graphics Rendition")
; Um problema: quando a gente vai pro X e volta a gente sempre perde a
; informação de que os vcs estavam em modo de 512 chars.
(ascstr 0 32)
#####
#
# ncurses source
# 2001may23
#
#####
# «ncurses-src» (to ".ncurses-src")
dmissingp libncurses5-dbg
#*
pdsc $SDEBIAN/dists/potato/main/source/libs/ncurses_5.0-6.dsc
cd /usr/src/ncurses-5.0/
debian/rules binary |& tee odrb
# (code-c-d "ncurs" "/usr/src/ncurses-5.0/")
# (code-c-d "ncursdoc" "/usr/doc/libncurses5-dev/")
# (find-ncursfile "")
# (find-ncursfile "odrb")
# (find-ncursfile "debian/libncurses5-dbg/usr/lib/")
# (find-ncursfile "README" "_g.a")
# (find-ncursfile "lib/")
#*
#####
#
# ncurses: running the demos
# 2000dec06
#
#####
# «ncurses_demos» (to ".ncurses_demos")
grep-status -P curses | awk '/Package/ { print $2 }' | sort
# (find-status "libncurses5-dev")
# (find-vldifile "libncurses5-dev.list")
# (find-fline "/usr/doc/libncurses5-dev/")
#*
rm -Rv /tmp/curs5/
mkdir /tmp/curs5/
cd /usr/share/doc/libncurses5-dev/
cp -diPpvR * /tmp/curs5/
cd /tmp/curs5/
mv examples/* .
rmdir examples
gzip -dv *.gz
# *
cd /tmp/curs5/
sh configure |& tee oc
sed 's/@ \?echo [^;]\+; //' < Makefile > Makefile-v
make -f Makefile-v |& tee om
for i in *.c; do gcc -I. -DHAVE_CONFIG_H -E $i > $(basename $i .c).E; done
find * -perm +111
# (find-fline "/tmp/curs5/")
# (find-fline "/tmp/curs5/Makefile")
# (find-fline "/tmp/curs5/Makefile-v")
# (find-fline "/tmp/curs5/om")
# (find-fline "/tmp/curs5/rain.c")
# (find-fline "/tmp/curs5/rain.E" "(wmove(")
#*
cd /tmp/curs5/
./blue
./bs
./cardfile
./ditto
./dots
./filter
./firework
./firstlast
./gdc
./hanoi
./hashtest
./keynames
./knight
./lrtest
./ncurses
./newdemo
./rain
./tclock
./testaddch
./testcurs
./testscanw
./view view.c
./worm
./xmas
#*
# (gdbk-gdb t "/tmp/curs5/" "dots" t)
show env TERM
set env TERM linux
# tbr main
tbr dots.c:107
run
#*
# (find-status "libncurses5")
# (find-vldifile "libncurses5.list")
# (find-fline "/usr/doc/libncurses5/")
# (find-status "ncurses-base")
# (find-status "ncurses-bin")
# (find-status "ncurses-term")
# (find-vldifile "ncurses-base.list")
# (find-vldifile "ncurses-bin.list")
# (find-vldifile "ncurses-term.list")
#####
#
# ncurses: first programs
# 2000dec07
#
#####
# «ncurses_1» (to ".ncurses_1")
# (find-htetfile "NCURSES-Programming-HOWTO.gz")
# (eeman "3ncurses waddch")
# (eeman "3ncurses waddnstr")
# (eeman "3ncurses wmove")
# (eeman "3ncurses refresh")
# (find-fline "/tmp/curs5/blue.c")
# (find-fline "/tmp/curs5/blue.c" " PC_COLORS")
# (find-fline "/usr/include/ncurses.h" "#define A_ALTCHARSET")
# (find-ncursdocfile "ncurses-intro.doc.gz")
# (find-ncursdocfile "ncurses-intro.doc.gz" " initscr()")
# (find-ncursdocfile "ncurses-intro.doc.gz" " Tuning for Speed")
# (find-ncursdocfile "ncurses-intro.doc.gz" "ACS_")
# (find-fline "/usr/include/curses.h")
# (find-fline "/usr/include/ncurses.h")
#*
cd /tmp/curs5/
l +/refresh $(agrep -l refresh *.c)
#*
# (eev-bounded)
cd /tmp/
cat > test.c <<'---'
#include <curses.h>
#include <stdio.h>
main(int argc, char **argv) {
int i, j, c, color;
initscr();
for(i=0; i<16; ++i) {
for(j=0; j<16; ++j) {
c=i*16+j;
mvaddch(i+2, j+8, c | A_ALTCHARSET );
}
}
if (argv[1][0]&1) refresh();
if (argv[1][0]&2) fflush(stdout);
endwin();
}
---
gcc -lcurses -g -o test test.c
# strace -o ~/s ./test 0
read; ./test 0
read; ./test 1
read; ./test 2
read; ./test 3
#*
# (find-status "libncurses5-dev")
# (find-vldifile "libncurses5-dev.list")
# (find-udfile "libncurses5-dev/")
#*
links /usr/share/doc/libncurses5-dev/html/index.html
#*
#####
#
# keys as char sequences
# 2001may26
#
#####
# «key_charseq» (to ".key_charseq")
# (find-fline "/etc/")
# (code-c-d "termcap" "" "/usr/src/bash-2.04/lib/termcap/grot/termcap")
# (find-termcapnode "")
# (find-man "5 terminfo" "These are the string capabilities:")
# (find-man "5 terminfo" "key_")
# (find-termcapnode "Interrogate" "`tgetstr'")
# (find-termcapnode "Capabilities" "keypad")
# (find-termcapnode "Keypad")
# (find-ncursdocfile "")
# (find-ncursdocfile "ncurses-intro.doc.gz")
How do I get the sequence of characters corresponding to a key in a
given terminal? For example, in "man 5 terminfo" there's a line in a
table saying "key_down kcud1 kd down-arrow key", but
# (eeman "5 terminfo" "key_")
# (eeman "1 tput")
tput kcud1 | hexdump -c
ltrace tput kcud1
# (to "ncurses_demos")
# (find-fline "/tmp/curs5/")
# (find-fline "/tmp/curs5/om" "keynames")
#*
rm -Rv /tmp/keynames/
mkdir /tmp/keynames/
cd /usr/doc/libncurses5-dev/examples/
cp -v test.priv.h keynames.c /tmp/keynames/
cd /tmp/keynames/
gcc -o keynames -I. -lcurses -g keynames.c
# (find-fline "/tmp/keynames/")
#*
cd /tmp/keynames/
# (eeman "tgetstr")
cat > tgetstr.c <<'---'
#include <curses.h>
#include <term.h>
int main(int argc, char **argv) {
char buffer[100], *p=buffer;
printf("%s -> %s\n", argv[1], tgetstr(argv[1], &p));
return 0;
}
---
gcc -o tgetstr -lncurses tgetstr.c
# gcc -o tgetstr -L/usr/src/ncurses-5.0/lib -lncurses_g -g tgetstr.c
./tgetstr kcud1
./tgetstr kd
./tgetstr key_down
#*
cd /tmp/keynames/
# Oops, impossible to link this against ncurses_g... it uses curses!
# (find-node "(gcc)Link Options" "`-L'")
# vfwstrace-to ~/s \
gcc -o keynames_g -I. -L/usr/src/ncurses-5.0/lib -lncurses_g -g keynames.c
#*
# (find-ncursfile "lib/")
# (find-fline "/usr/doc/libncurses5-dev/examples/")
# (find-fline "/tmp/curs5/")
# (find-fline "/tmp/curs5/om")
#####
#
# living with consolechar's bug in RedHat 6.1
# 2001feb06
#
#####
# «RH_consolechar_bug» (to ".RH_consolechar_bug")
# The problem is that on the RH6.1's of my university "consolechars"
# (version 1999.03.02, kernel 2.2.12-20) does not adjust the number of
# lines of characters in the screen to compensate for fonts with
# smaller of taller chars; by stracing it I discovered that its main
# ioctl calls were:
#
# 2250 ioctl(4, KDGKBTYPE, 0xbfffdc17) = 0
# 2250 ioctl(4, 0x4b72, 0xbfffdae0) = 0
#
# Where 0x4B72 is KDFONTOP, which according to the changelog in
# console-tools is the "new way" of doing things; it is not mentioned
# in the console_ioctl{,s} manpages, though. Ugh.
#
# (find-fline "/usr/include/linux/")
# (find-fline "/usr/include/linux/kd.h" "KDFONTOP 0x4B72")
# (find-fline "/usr/doc/console-tools/changelog.gz")
# (eeman "console_ioctl")
# (eeman "console_ioctls")
#
# (find-k22file "drivers/char/vt.c" "case KDFONTOP:")
# (find-k22file "drivers/char/console.c" "\nint con_font_op")
# (find-k22file "include/linux/kd.h" "struct console_font_op {")
#
# What is even stranger is that on my Potato box consolechars works by
# using the same ioctls (maybe with different parameters), and it
# changes the number of screen lines correctly.
#
# I know that things used to work when I used PIO_FONTX, so I'll write
# a quick C program to use as a workaround...
# The program became an independent C file:
# (find-angg "MTA/pio_fontx.c")
# (find-angg "MTA/vtutilsh.c" "setfont")
# (find-node "(gcc)Macro Varargs")
# (find-node "(libc)Error Messages")
# (find-fline "/usr/doc/console-tools/file-formats/psf" "psf_header =")
# (find-fline "/usr/include/")
#*
cd ~/MTA/
rm -v pio_fontx pio_fontx.o
make pio_fontx psfs
#*
# (find-angg "TH/Files.tcl" "do_not_translate")
# (find-angg "MTA/Makefile" "psfs")
cd ~/MTA/
./pio_fontx ega1.16.psf
read
./pio_fontx math1.8.psf
#*
#####
#
# default hardware fonts
# 2004sep30
#
#####
# «hardware-fonts» (to ".hardware-fonts")
# (find-angg "vtutil4/")
# (find-angg "vtutil4/piofontx.c")
# (find-man "4 console_ioctl" " PIO_FONTRESET")
# (find-man "8 consolechars")
# Where's the code that deals with the "vga=1" in the kernel command line?
# Where's the vesa call?
# Are there hardware fonts in several sizes?
####
#
# vt palette
# 2004apr18
#
####
# «vt-palette» (to ".vt-palette")
# (find-man "4 console_codes" "ESC ] P nrrggbb: set palette")
# (find-k24file "drivers/char/console.c" "palette escape sequence")
# (find-k24file "drivers/char/console.c" "reset palette")
# (find-k24file "drivers/char/console.c" "default_red")
# (find-vtutil4file "vtfontlib.lua" "vcsa_colors =")
# (find-man "4 console_codes" "set red foreground")
#*
function vtsetred () { echo -ne '\033]P1'$1 }
function vtsetblue () { echo -ne '\033]P4'$1 }
function vtresetpalette () { echo -ne '\033]R' }
function vtshowcolors () {
echo -ne '
\033[0;30m black \033[1;30m Black
\033[0;31m red \033[1;31m Red
\033[0;32m green \033[1;32m Green
\033[0;33m brown \033[1;33m Brown
\033[0;34m blue \033[1;34m Blue
\033[0;35m magenta \033[1;35m Magenta
\033[0;36m cyan \033[1;36m Cyan
\033[0;37m white \033[1;37m White
\033[0m'
}
#*
clear
vtshowcolors
# (find-k24file "drivers/char/console.c" "default_red")
# Try new intensities for red (VT color 1 - default aa0000)
read; echo -ne '\033]P1ff0000'
read; echo -ne '\033]P1ee0000'
read; echo -ne '\033]P1dd0000'
read; echo -ne '\033]P1cc0000'
read; echo -ne '\033]P1bb0000'
read; echo -ne '\033]R'
#*
clear
# (find-k24file "drivers/char/console.c" "default_blue")
# Try new intensities for blue (VT color 4 - default 0000aa)
vtshowcolors
read; echo -ne '\033]P40000ff'
read; echo -ne '\033]P41111ff'
read; echo -ne '\033]P42222ff'
read; echo -ne '\033]P40000ee'
read; echo -ne '\033]P40000dd'
read; echo -ne '\033]P40000cc'
read; echo -ne '\033]P40000bb'
read; echo -ne '\033]R'
#*
clear
vtshowcolors
read; echo -ne '\033]R'; # reset the palette
read; echo -ne '\033]P1ff0000'; # fix the red
read; echo -ne '\033]P42222ff'; # fix the blue
read; echo -ne '\033]Pc7777ff'; # fix the bright blue
#*
#####
#
# ttyname
# 2004oct02
#
#####
# «ttyname» (to ".ttyname")
# (find-angg "bin/ttyname.c")
# (find-man "3 ttyname")
# (find-node "(libc)Is It a Terminal" "char * ttyname")
#*
eegcc <<<'int main() { printf("%s\n", ttyname(0)); return 0; }'
eec
echo | eec
#*
#####
#
# Recent Debian VTs start in UTF-8 mode by default
# 2008apr06
#
#####
# «non-utf-8» (to ".non-utf-8")
# (find-man "4 console_codes" "UTF-8 mode")
# (find-man "4 console_codes" "ESC % @" "Select default")
# (find-man "4 console_codes" "ESC % G" "Select UTF-8")
# (find-luamanualw3m "#2.1" "\\ddd")
#*
# Compare the two modes:
lua51 -e '
pc = function (...)
for i=1,#arg do
if type(arg[i]) == "string" then printf("%s", arg[i]) end
if type(arg[i]) == "number" then printf("%c", arg[i]) end
if type(arg[i]) == "table" then
for j=arg[i][1],arg[i][2] do pc(j) end
end
end
end
pc("Hello! ", 64, " foo", 10)
pc("Default: ", 27, "%@", {160,254}, "\n")
pc("UTF-8: ", 27, "%G", {160,254}, "\n")
-- for i=160,254 do pc(i) end
pc("\nFoo!\n")
'
#*
####
#
# the default keymap in debian systems
# 2004apr15
#
####
# «default-keymap» (to ".default-keymap")
# (find-progoutput "dpkg -l")
# (find-status "console-common")
# (find-vldifile "console-common.list")
# (find-vldifile "console-common.config")
# (find-fline "/usr/doc/console-common/")
dpkg-reconfigure console-common
# (find-vldifile "" "console-common.list")
# (find-fline "/usr/sbin/install-keymap")
# (find-man "8 install-keymap")
# (find-fline "/usr/share/console/getkmapchoice.pl")
# (find-fline "/usr/share/console/ps2-to-riscpc")
# (find-fline "/usr/share/console/lists/keymaps")
# (find-fline "/usr/share/doc/console-common/TODO")
# (find-fline "/usr/share/doc/console-common/copyright")
# (find-fline "/usr/share/doc/console-common/changelog.gz")
# (find-fline "/etc/console/")
# (find-fline "/etc/init.d/keymap.sh")
# (find-status "console-data")
# (find-vldifile "console-data.list")
# (find-fline "/usr/doc/console-data/")
# (find-status "console-tools")
# (find-vldifile "console-tools.list")
# (find-fline "/usr/doc/console-tools/")
console-tools-
#####
#
# vtutil4
# 2008nov04
#
#####
# «vtutil4» (to ".vtutil4")
# (find-vtutil4 "")
# (find-vtutil4 "Makefile")
# (find-vtutil4file "Makefile" "ega1.8.pctoiso.modify.8")
# (find-vtutil4file "Makefile" "%.8.pctoiso.modify.8:")
# (find-vtutil4 "vtutil51.lua")
# (find-vtutil4 "vtfontlib.lua")
# (find-vtutil4file "vtfontlib.lua" "Modifyfont =")
# (find-vtutil4 "mathchars.lua")
# (find-tkdiff "~/vtutil4/ega1.8.pctoiso.modify.8.grid" "~/vtutil4/ega1.8.pctoiso.8.grid")
* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd ~/vtutil4/ && lua51 -e 'dofile "vtutil51.lua"' -i
= MIMAGES
PP(keys(MIMAGES))
PP(MIMAGES)
PP(mathcharstuff# (find-vtutil4 "mathchars.lua")
+--------+--------+--------+--------+--------+--------+
|o o | oooooo | | | | |
|o o | o | ooo | o o | ooo | |
| o o | o | o | o o | o o | oo |
| ooooo | oooo | oooo | o o | o o | o o |
| o o | o | o | o o | o o | o o |
| o o | o | ooo | ooo | o o | oo |
| o | oooooo | | | | |
| | | | | | |
+--------+--------+--------+--------+--------+--------+
# (find-vtutil4file "vtutil51.lua")
#####
#
# terminfo
# 2012feb11
#
#####
# «terminfo» (to ".terminfo")
# (find-esgrep "grep -niH -e terminfo *.e")
# (find-man "5 terminfo" "These are the string capabilities:")
# (find-man "5 terminfo" "cursor_invisible")
# (find-man "5 terminfo" "key_")
# (find-man "1 tic")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-sh "infocmp xterm" "civis=")
# (find-fline "/lib/terminfo/x/xterm")
# (find-man "stty")
#####
#
# Tput
# 2012oct27
#
#####
# «tput» (to ".tput")
# (find-es "x" "xterm-colors")
# (find-angg "eev/video1.sh")
# http://en.wikipedia.org/wiki/Tput
# (find-man "1 tput")
# (find-man "5 terminfo")
# (find-man "5 terminfo" "setaf")
# (find-man "5 terminfo" "setab")
# (find-man "5 terminfo" "COLOR_BLACK")
# (find-man "5 terminfo" "bold")
# (find-man "xterm")
* (eepitch-ansiterm)
* (eepitch-kill)
* (eepitch-ansiterm)
RED=$(tput setaf 1)
BLACK=$(tput setaf 0)
echo "a $RED bc $BLACK de"
echo "a${RED}bc${BLACK}de"
# Normal and standout colors
NC=$(tput setaf 0; tput setab 7)
SC=$(tput setaf 3; tput setab 1)
echo "Hello ${SC}world${NC}!"
"
echo $(tput setaf 3; tput setab 1)Hello$(tput reset)
echo $(tput setaf 1)Hello$(tput setaf 0)
#####
#
# ansi.lua
# 2014mar06
#
#####
# «ansi.lua» (to ".ansi.lua")
# (find-man "1 less")
# (find-man "1 less" "-R or --RAW-CONTROL-CHARS" "ANSI")
# (find-man "4 console_codes" "ESC % @")
# (find-man "4 console_codes" "ECMA-48 Set Graphics Rendition")
# (find-man "4 console_codes" "ECMA-48 Set Graphics Rendition" "31")
#*
# (eev-bounded)
cat > /tmp/a.lua <<'%%%'
inp = io.read()
e = function (s) return "\27["..s.."m" end
A = {[""]=e"0", r=e"31"}
f = function (a)
local b = a:sub(2,-2)
local c = assert(A[b], "not found: "..a)
return c
-- return "\27["..c.."m"
end
out = inp:gsub("({[!-~]-})", f)
print(out)
%%%
cat > /tmp/a.txt <<'%%%'
foo{r}bar{}poo
%%%
lua51 /tmp/a.lua < /tmp/a.txt |& l -R
#*
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-man "xterm")
xterm -bg black -fg white
#####
#
# TERM
# 2020may09
#
#####
# «TERM» (to ".TERM")
# https://github.com/mintty/mintty/issues/881
# https://www.facebook.com/notes/daniel-colascione/term-is-terminally-broken/10154219967001102/
# https://iterm2.com/misc/TerminalFeaturesCandidates1.pdf
# https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg00958.html
#####
#
# XON/XOFF, i.e., C-s and C-q, and other C-keys
# 2024mar29
#
#####
# «xon-xoff» (to ".xon-xoff")
# (find-man "1 xterm")
# (find-man "1 xterm" "\nSEE ALSO")
# (find-man "1 xterm" "control/D (used as an end of file in many shells)")
# (find-man "1 xterm" "XON / XOFF keys (control/S and" "control/Q)")
# (find-enode "Shell Mode" "C-c C-c" "comint-interrupt-subjob")
# (find-enode "Shell Mode" "C-c C-\\" "comint-quit-subjob")
# (find-man "sh")
# (find-man "dash")
# (find-man "expect")
#####
#
# ansi-color-apply
# 2024apr13
#
#####
# «ansi-color-apply» (to ".ansi-color-apply")
# (find-man "4 console_codes" "ECMA-48 Set Graphics Rendition")
# (find-efunctiondescr 'ansi-color-apply)
# (find-efunction 'ansi-color-apply)
# (find-estring (ansi-color-apply "a \e[31m b \e[0m c"))
#####
#
# stderr-as-a-symlink (from Gé Weijers in lua-l)
# 2025sep18
#
#####
# «stderr-as-a-symlink» (to ".stderr-as-a-symlink")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
ls -l /proc/self/fd/2
ls -l /proc/self/fd/2 2>/dev/null
ls -l /proc/self/fd/2 2>somefile
# https://unix.stackexchange.com/questions/49779/can-i-change-the-font-of-the-text-mode-console
# (find-fline "/etc/default/console-setup")
# (find-man "5 console-setup")
# (find-man "1 setupcon")
# (find-fline "/etc/default/console-setup")
/etc/default/console-setup
# (find-fline "/usr/share/consolefonts/" "Lat15-Fixed16")
setfont -C /dev/tty5 /usr/share/consolefonts/Lat15-Fixed16
setfont -C /dev/tty5 /usr/share/consolefonts/Lat15-Terminus12x6.psf.gz
setupcon -h
setupcon -f
setupcon -f --print-commands-only
# (find-fline "/usr/share/consolefonts/")
# (find-fline "/usr/share/consolefonts/Lat15-Fixed16.psf.gz")
file /usr/share/consolefonts/Lat15-Fixed16.psf.gz
zcat /usr/share/consolefonts/Lat15-Fixed16.psf.gz > /tmp/foo.psf
# (find-fline "/tmp/foo.psf")
# (find-status "console-setup-linux")
# (find-vldifile "console-setup-linux.list")
# (find-udfile "console-setup-linux/")
# (find-apt-get-source-links "console-setup-linux")
# (find-fline "/tmp/d/")
# (code-c-d "consolesetup" "/tmp/d/console-setup-1.205/")
# (find-consolesetupfile "")
# (find-consolesetupsh "find * | sort")
# (find-consolesetupsh "find * | sort | grep raw")
# (find-consolesetupfile "Fonts/")
# (find-consolesetupfile "Fonts/" "Lat15-VGA8.raw")
# (find-consolesetupfile "Fonts/Lat15-VGA8.raw")
# (find-fline "/tmp/d/osourceb")
# (find-man "1 bdf2psf")
# (find-status "bdf2psf")
# (find-vldifile "bdf2psf.list")
# (find-udfile "bdf2psf/")
http://www.xs4all.nl/~hanb/configs/dot-screenrc
https://github.com/8l/fbui
https://www.ethanheilman.com/x/28/index.html The Terminal Escape Sequences Ocean is Deep and Dark: Debugging a Virtual Terminal
https://github.com/susam/pcface PC Face is a collection of programmer-friendly resources that allow drawing CP437 characters on a graphical canvas
https://bert.org/2023/02/27/recreating-ansi-art-from-a-screenshot/
https://owengage.com/writing/2023-04-08-getting-the-ctrl-d/
https://news.ycombinator.com/item?id=35502925 Getting the ^D (owengage.com)
https://news.ycombinator.com/item?id=42179541 Sequin: A powerful little tool for inspecting ANSI escape sequences (github.com/charmbracelet)
# Local Variables:
# coding: utf-8-unix
# End: