Initial commit. - catpoint - Catpoint simple presenting software. | |
git clone git://bitreich.org/catpoint/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrin… | |
Log | |
Files | |
Refs | |
Tags | |
README | |
LICENSE | |
--- | |
commit b95ee9c3f701ede5263139276897ae482ba70331 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Thu, 27 Aug 2015 23:54:58 +0200 | |
Initial commit. | |
Diffstat: | |
A Makefile | 9 +++++++++ | |
A README | 10 ++++++++++ | |
A catpoint.c | 103 +++++++++++++++++++++++++++++… | |
A showoff/00-intro.txt | 13 +++++++++++++ | |
A showoff/01-files.txt | 18 ++++++++++++++++++ | |
A showoff/02-config.txt | 12 ++++++++++++ | |
A showoff/03-run.txt | 9 +++++++++ | |
A showoff/04-graph.txt | 22 ++++++++++++++++++++++ | |
A showoff/05-export.txt | 8 ++++++++ | |
A showoff/99-end.txt | 12 ++++++++++++ | |
10 files changed, 216 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/Makefile b/Makefile | |
@@ -0,0 +1,9 @@ | |
+# catpoint | |
+ | |
+LDLIBS = -lncursesw | |
+ | |
+BIN = catpoint | |
+all: $(BIN) | |
+ | |
+clean: | |
+ rm -f $(BIN) | |
diff --git a/README b/README | |
@@ -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 ... | |
diff --git a/catpoint.c b/catpoint.c | |
@@ -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); | |
+} | |
diff --git a/showoff/00-intro.txt b/showoff/00-intro.txt | |
@@ -0,0 +1,13 @@ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ .----------------------------------------------------------------. | |
+ | How to transform your presentation into pure art with catpoint | | |
+ '----------------------------------------------------------------' | |
+ | |
+ | |
+ Lazaros Koromilas <[email protected]> | |
+ | |
+ http://www.2f30.org/~lostd | |
diff --git a/showoff/01-files.txt b/showoff/01-files.txt | |
@@ -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 | |
diff --git a/showoff/02-config.txt b/showoff/02-config.txt | |
@@ -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 | |
diff --git a/showoff/03-run.txt b/showoff/03-run.txt | |
@@ -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 | |
diff --git a/showoff/04-graph.txt b/showoff/04-graph.txt | |
@@ -0,0 +1,22 @@ | |
+ | |
+ Show graphs | |
+ =========== | |
+ | |
+ +---------+---------+---------+---------+---------+---------+---------+ | |
+ | Rate +----+ | | |
+ | | | |
+ 20 ++ +-+ ++ | |
+ | +-+ | | +-+ | | |
+ | | | | | | | | | |
+ 15 ++ +-+ | | | | | | ++ | |
+ | | | | | | | | | | | |
+ | | | | | | | | | | | |
+ 10 ++ +-+ | | | | | | | | ++ | |
+ | | | | | | | | | | | | | |
+ | | | | | | | | | | | | | |
+ 5 ++ +-+ | | | | | | | | | | ++ | |
+ | | | | | | | | | | | | | | | |
+ | | | | | | | | | | | | | | | |
+ 0 ++--------+---------+---------+---------+---------+---------+--------++ | |
+ 60 128 256 512 1024 1514 | |
+ Packet size (bytes) | |
diff --git a/showoff/05-export.txt b/showoff/05-export.txt | |
@@ -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 | |
diff --git a/showoff/99-end.txt b/showoff/99-end.txt | |
@@ -0,0 +1,12 @@ | |
+ | |
+ EOF | |
+ === | |
+ | |
+ | |
+ | |
+ | |
+ _____ _ _ _ | |
+ |_ _| |__ __ _ _ __ | | _____| | | |
+ | | | '_ \ / _` | '_ \| |/ / __| | | |
+ | | | | | | (_| | | | | <\__ \_| | |
+ |_| |_| |_|\__,_|_| |_|_|\_\___(_) |