Initial commit.
This commit is contained in:
commit
b95ee9c3f7
9
Makefile
Normal file
9
Makefile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
# catpoint
|
||||||
|
|
||||||
|
LDLIBS = -lncursesw
|
||||||
|
|
||||||
|
BIN = catpoint
|
||||||
|
all: $(BIN)
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(BIN)
|
10
README
Normal file
10
README
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Synopsis
|
||||||
|
|
||||||
|
Catpoint is a simple viewer of text files written in curses.
|
||||||
|
Further documentation comes in a series of slides. Just do:
|
||||||
|
|
||||||
|
$ make && ./catpoint showoff/*.txt
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
catpoint file ...
|
103
catpoint.c
Normal file
103
catpoint.c
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
/* $Id: catpoint.c,v 1.2 2013/03/28 12:00:48 lostd Exp $ */
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
|
||||||
|
#include <err.h>
|
||||||
|
#include <curses.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <locale.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int c, i, fd;
|
||||||
|
char **p; /* the slides */
|
||||||
|
|
||||||
|
if (argc == 1)
|
||||||
|
errx(1, "usage: %s file ...", argv[0]);
|
||||||
|
argv++;
|
||||||
|
argc--;
|
||||||
|
|
||||||
|
setlocale(LC_ALL, "");
|
||||||
|
|
||||||
|
p = calloc(argc, sizeof(char *));
|
||||||
|
|
||||||
|
/* map files to mem */
|
||||||
|
for (i = 0; argv[i] != NULL; i++) {
|
||||||
|
fd = open(argv[i], O_RDONLY, 0);
|
||||||
|
if (fd == -1)
|
||||||
|
err(1, "open: %s", argv[i]);
|
||||||
|
p[i] = mmap(NULL, 0x1000, PROT_READ, MAP_PRIVATE, fd, 0);
|
||||||
|
if (p[i] == MAP_FAILED)
|
||||||
|
err(1, "mmap");
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* init curses */
|
||||||
|
initscr();
|
||||||
|
cbreak();
|
||||||
|
noecho();
|
||||||
|
nonl();
|
||||||
|
intrflush(stdscr, FALSE);
|
||||||
|
keypad(stdscr, TRUE);
|
||||||
|
curs_set(FALSE); /* hide cursor */
|
||||||
|
|
||||||
|
/* start */
|
||||||
|
i = 0;
|
||||||
|
show:
|
||||||
|
/* display slide */
|
||||||
|
clear();
|
||||||
|
printw("%s", p[i]);
|
||||||
|
again:
|
||||||
|
c = getch();
|
||||||
|
switch (c) {
|
||||||
|
case 'q':
|
||||||
|
break;
|
||||||
|
/* next */
|
||||||
|
case 'l':
|
||||||
|
case 'j':
|
||||||
|
case KEY_RIGHT:
|
||||||
|
case KEY_DOWN:
|
||||||
|
case KEY_NPAGE:
|
||||||
|
if (i < argc - 1) {
|
||||||
|
i++;
|
||||||
|
goto show;
|
||||||
|
}
|
||||||
|
goto again;
|
||||||
|
/* prev */
|
||||||
|
case 'h':
|
||||||
|
case 'k':
|
||||||
|
case KEY_LEFT:
|
||||||
|
case KEY_UP:
|
||||||
|
case KEY_PPAGE:
|
||||||
|
if (i > 0) {
|
||||||
|
i--;
|
||||||
|
goto show;
|
||||||
|
}
|
||||||
|
goto again;
|
||||||
|
/* first */
|
||||||
|
case 'u':
|
||||||
|
case KEY_BEG:
|
||||||
|
i = 0;
|
||||||
|
goto show;
|
||||||
|
/* last */
|
||||||
|
case 'i':
|
||||||
|
case KEY_END:
|
||||||
|
i = argc - 1;
|
||||||
|
goto show;
|
||||||
|
default:
|
||||||
|
goto again;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* unmap mem */
|
||||||
|
for (i = 0; argv[i] != NULL; i++)
|
||||||
|
munmap(p[i], 0x1000);
|
||||||
|
|
||||||
|
endwin(); /* restore terminal */
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
13
showoff/00-intro.txt
Normal file
13
showoff/00-intro.txt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.----------------------------------------------------------------.
|
||||||
|
| How to transform your presentation into pure art with catpoint |
|
||||||
|
'----------------------------------------------------------------'
|
||||||
|
|
||||||
|
|
||||||
|
Lazaros Koromilas <lostd@2f30.org>
|
||||||
|
|
||||||
|
http://www.2f30.org/~lostd
|
18
showoff/01-files.txt
Normal file
18
showoff/01-files.txt
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
|
||||||
|
Create the slides
|
||||||
|
=================
|
||||||
|
|
||||||
|
o Create a text file for every slide
|
||||||
|
|
||||||
|
00-intro.txt
|
||||||
|
01-files.txt
|
||||||
|
02-config.txt
|
||||||
|
03-run.txt
|
||||||
|
04-graph.txt
|
||||||
|
99-end.txt
|
||||||
|
|
||||||
|
o You can use banner or figlet to generate text art
|
||||||
|
|
||||||
|
o You can use gnuplot to produce graphs using
|
||||||
|
|
||||||
|
set term dumb
|
12
showoff/02-config.txt
Normal file
12
showoff/02-config.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
Configure the environment
|
||||||
|
=========================
|
||||||
|
|
||||||
|
o You can alter your xterm defaults by adding the
|
||||||
|
following lines to your ~/.Xdefaults:
|
||||||
|
|
||||||
|
XTerm*background: white
|
||||||
|
XTerm*foreground: black
|
||||||
|
XTerm*faceName: xft:Monospace:size=16
|
||||||
|
|
||||||
|
o Open an xterm and maximize its window
|
9
showoff/03-run.txt
Normal file
9
showoff/03-run.txt
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
|
||||||
|
Run the presentation
|
||||||
|
====================
|
||||||
|
|
||||||
|
o Go to the directory where the files live
|
||||||
|
|
||||||
|
o Run catpoint with the list of files as arguments
|
||||||
|
|
||||||
|
$ catpoint *.txt
|
22
showoff/04-graph.txt
Normal file
22
showoff/04-graph.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
|
||||||
|
Show graphs
|
||||||
|
===========
|
||||||
|
|
||||||
|
+---------+---------+---------+---------+---------+---------+---------+
|
||||||
|
| Rate +----+ |
|
||||||
|
| |
|
||||||
|
20 ++ +-+ ++
|
||||||
|
| +-+ | | +-+ |
|
||||||
|
| | | | | | | |
|
||||||
|
15 ++ +-+ | | | | | | ++
|
||||||
|
| | | | | | | | | |
|
||||||
|
| | | | | | | | | |
|
||||||
|
10 ++ +-+ | | | | | | | | ++
|
||||||
|
| | | | | | | | | | | |
|
||||||
|
| | | | | | | | | | | |
|
||||||
|
5 ++ +-+ | | | | | | | | | | ++
|
||||||
|
| | | | | | | | | | | | | |
|
||||||
|
| | | | | | | | | | | | | |
|
||||||
|
0 ++--------+---------+---------+---------+---------+---------+--------++
|
||||||
|
60 128 256 512 1024 1514
|
||||||
|
Packet size (bytes)
|
8
showoff/05-export.txt
Normal file
8
showoff/05-export.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
Exporting
|
||||||
|
=========
|
||||||
|
|
||||||
|
o Easily create a basic Black on White PDF export like that:
|
||||||
|
|
||||||
|
$ enscript *.txt -Brf "Courier16" -p - > slides.ps
|
||||||
|
$ ps2pdf slides.ps
|
12
showoff/99-end.txt
Normal file
12
showoff/99-end.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
|
||||||
|
EOF
|
||||||
|
===
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
_____ _ _ _
|
||||||
|
|_ _| |__ __ _ _ __ | | _____| |
|
||||||
|
| | | '_ \ / _` | '_ \| |/ / __| |
|
||||||
|
| | | | | | (_| | | | | <\__ \_|
|
||||||
|
|_| |_| |_|\__,_|_| |_|_|\_\___(_)
|
Loading…
Reference in New Issue
Block a user