6 # Copyright (C) 2010 Red Hat Inc.
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 2 of the License, or
11 # (at your option) any later version.
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
28 use Glib qw(TRUE FALSE);
36 techtalk-pse - superior technical demonstration software
40 cd /path/to/talk/; techtalk-pse
42 techtalk-pse /path/to/talk/
46 Tech Talk "Platinum Supreme Edition" (PSE) is Linux Presentation
47 Software designed by technical people to give technical software
48 demonstrations to other technical people. It is designed to be simple
49 to use (for people who know how to use an editor and the command line)
50 and powerful, so that you can create informative, technically accurate
51 and entertaining talks and demonstrations.
53 Tech Talk PSE is good at opening editors at the right place, opening
54 shell prompts with preloaded history, compiling and running things
55 during the demonstration, displaying text, photos, figures and video.
57 Tech Talk PSE is I<bad> at slide effects, chart junk and bullet
60 This manual page covers all the documentation you will need to use
61 Tech Talk PSE. The next section covers running the tool from the
62 command line. After that there is a L</TUTORIAL> section to get you
63 started. Then there is a detailed L</REFERENCE> section. Finally
64 there is a discussion on L<WHAT MAKES A GOOD TALK>.
66 =head1 RUNNING THE TOOL FROM THE COMMAND LINE
68 A Tech Talk PSE talk is not a single file, but a directory full of
69 files. (If you want to start a new talk, see the L</TUTORIAL> section
70 below). To display or run the talk, change into the directory
71 containing all those files and run the C<techtalk-pse> command:
73 cd /path/to/talk/; techtalk-pse
75 You can also run C<techtalk-pse> without changing directory, instead
76 specifying the path to the talk:
78 techtalk-pse /path/to/talk/
90 Display brief help and exit.
98 Start at the last slide.
100 You cannot use this with the B<-n> / B<--start> option.
106 =item B<-n SLIDE> | B<--start SLIDE>
108 Start at the named slide. I<SLIDE> is the shortest unique prefix of
109 the slide name, so to start at a slide named
110 I<00010-introduction.html>, you could use I<-n 00010> or I<-n 00010-intro>,
111 or give the full filename I<-n 00010-introduction.html>.
113 The default is to start at the first slide in the talk.
121 Don't display the initial "splash" screen which advertises Tech Talk
122 PSE to your audience. Just go straight into the talk.
130 Display verbose messages, useful for debugging or tracing
131 what the program is doing.
139 Display version number and exit.
143 GetOptions ("help|?" => \$help,
146 "splash!" => \$splash,
147 "start=s" => \$start,
148 "verbose" => \$verbose,
149 "version" => \$version,
156 pod2usage (1) if $help;
158 print "@PACKAGE@ @VERSION@\n";
161 die "techtalk-pse: cannot use --start and --last options together\n"
162 if defined $last && defined $start;
164 die "techtalk-pse: too many arguments\n" if @ARGV >= 2;
170 chdir $d or die "techtalk-pse: chdir: $d: $!";
172 # XXX In future allow people to specify an archive and unpack
174 die "techtalk-pse: argument is not a directory"
178 # MozEmbed initialization.
179 Gtk2::MozEmbed->set_profile_path ("$ENV{HOME}/.@PACKAGE@", "Tech Talk PSE");
189 foreach (glob ("*")) {
190 if (/^(\d+)([A-Z])?(?:-.*)\.(html|sh|txt)$/) {
191 print STDERR "reading $_\n" if $verbose;
196 warn "techtalk-pse: $_: command file is not executable (+x)\n"
197 if $ext eq "sh" && ! -x $_;
199 my $h = { name => $_, seq => $1, pos => $2, ext => $3 };
202 $groups{$seq} = [] unless exists $groups{$seq};
203 push @{$groups{$seq}}, $h;
205 print STDERR "ignoring $_\n" if $verbose;
210 print STDERR "read ", 0+@files, " files\n" if $verbose;
212 warn "techtalk-pse: no files found, continuing anyway ...\n"
215 # Work out what slide we're starting on.
217 if (defined $current) {
218 die "start slide not implemented yet XXX"
221 $current = $files[0];
223 # else $current is undefined
226 my $w = Gtk2::AboutDialog->new;
227 $w->set_authors ("Richard W.M. Jones");
229 "Superior technical demonstration software\n".
232 "↑ — Go back one slide\n".
233 "↓ — Go forward one slide\n"
235 $w->set_program_name ("Tech Talk Platinum Supreme Edition (PSE)");
236 $w->set_version ("@VERSION@");
237 $w->set_website ("http://people.redhat.com/~rjones");
238 $w->set_license ("GNU General Public License v2 or above");
239 $w->signal_connect (destroy => sub { Gtk2->main_quit });
258 =head1 WHAT MAKES A GOOD TALK
262 The Cognitive Style of PowerPoint, Tufte, Edward R.
266 Richard W.M. Jones L<http://people.redhat.com/~rjones/>
270 Copyright (C) 2010 Red Hat Inc.
272 This program is free software; you can redistribute it and/or modify
273 it under the terms of the GNU General Public License as published by
274 the Free Software Foundation; either version 2 of the License, or
275 (at your option) any later version.
277 This program is distributed in the hope that it will be useful,
278 but WITHOUT ANY WARRANTY; without even the implied warranty of
279 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
280 GNU General Public License for more details.
282 You should have received a copy of the GNU General Public License
283 along with this program; if not, write to the Free Software
284 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.