You can configure tpad by editing the file tpad.conf. This file uses the Tcl(n) syntax. Tcl provides a good reconfigurability but when editing tpad.conf you must be care not to make any syntax error otherwise tpad won't start. It is advisable to make a backup copy of tpad.conf before modifying it or to make changes to a copy of tpad.conf and check the syntax by running it with the Tcl interpreter before overwriting the real tpad.conf with it. To do those things you should use commands similar to the following:
$ cp tpad.conf tpad.conf.default $ cp tpad.conf tpad.conf.copy ... editing tpad.conf.copy $ tclsh8.4 tpad.conf.copy $ mv tpad.conf.copy tpad.conf
If you want to make changes only for a single user, instead of modifying the global configuration file, you can copy it as a hidden per user configuration file named ~/.tpadrc and make changes only there. If something goes wrong and tpad doesn't start anymore, you can simply delete ~/.tpadrc and start again.
When you run tpad it will first search for ~/.tpadrc; if it can't find this, it will try to load the global configuration file tpad.conf, so ~/.tpadrc completely overrides tpad.conf. This means all the options are required. You should not comment out any of the options below otherwise tpad won't start.
This is the default global configuration file shipped with this version (default values are those of the FreeBSD package; there are minor differences under Linux).
## Configuration file for tpad version 1.3 # WinXP (TM) enhanced Notepad clone written in Tcl/Tk. # Copyright (C) 2004 Antonio Bonifati # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details: # <http://www.fsf.org/copyleft/gpl.html> # # Requires at least Tcl/Tk 8.4. # Please report any bug found to the author: # # Antonio Bonifati <ant@venus.deis.unical.it> # http://monitor.deis.unical.it/ant # Snail mail: # Via Ernesto Moneta, 11 # 87012 Castrovillari (CS) # Italy # ## last revised on: $Date: 2004/08/30 $ # # You can safely change constants and default values # of variables below as long as you make no syntax errors. # See Tcl(n) for a summary of Tcl language syntax. # ## initialize tpad static vars or constants variable version 1.3 ;# don't change this # file types listbox entries variable types { {{All Files} * } {{Text Files} {.txt .text} } {{HTML Files} {.html .htm .shtml .xhtml}} {{XML Files} .xml } {{TCL Files} {.tcl .tk} } {{C Source Files} {.c .h} } } variable tearoff no ;# include tearoff in pulldown menus (no, yes) variable palette gray85 ;# color scheme (see tk_setPalette(n)) variable fg black ;# text and entry foreground color variable bg white ;# text and entry background color variable selfg white ;# selection foreground color variable selbg navy ;# selection background color # font to use for the editor (a fixed size font is recommended) variable editfont Courier variable statusfont Helvetica ;# font to use for the status bar # lpr(1) like command and options to use for off line printing variable lpr {lpr} variable logfac yes ;# turn on log creation facility (no, yes) variable timefmt %c ;# date and time format variable titlefmt {%1$s:%2$s} ;# title bar format variable insertofftime 300 ;# cursor off time (milliseconds) variable insertontime 600 ;# cursor on time (milliseconds) # Warning: there seems to be a bug with the undo implementation # in Tk 8.4.6 or previous, which causes segmentation faults when # this parameter is set to more than one. # This is not tpad's fault and I hope will be fixed soon. variable maxundo 1 ;# maximum number of compound undo actions # command to run an external browser to read the HTML help variable browsercmd mozilla # path to where the HTML documentation lives variable helpath {/usr/local/share/doc/tpad} # initial placing of non-modal dialogs ({},pointer,widget,none) variable placing widget # max entries of the "open recent" list (0 for no list) variable maxopenrec 10 # file where the "open recent" list is saved ({} for non-permanent list) variable openrecfile {~/.tpad_history} variable fmtkind BSD ;# kind of fmt(1) (GNU, BSD, none) variable fmt {fmt} ;# fmt(1) path (ignored if fmtkind is none) variable xmlwf {xmlwf} ;# xmlwf(1) path (empty if you don't have it) # note that you will also need to install Tcllib for this plugin to work variable tidy {} ;# tidy(1) path (empty if you don't have it) # fortune(1) path; make it empty if you don't have a BSD-like # fortune command; note that Linux fortune is ok variable fortune {fortune} # display fortune tip at startup (no, yes); ignored if fortune is empty variable tip yes # you will need to change this only if you move or rename the fortune # database file and its index (which has the added extension .dat) # ignored if fortune is empty variable fortunefile {/usr/local/share/tpad/tpad-tips} set tk_strictMotif 0 ;# strict Motif compliance (0, 1) ## end of static vars or constants initialization ## initialize tpad instance vars to default values variable wrap none ;# wrap mode (none, word) variable pattern {} ;# search pattern variable substr {} ;# substitution string variable dir down ;# search direction (up, down) variable case no ;# case sensitive search (no, yes) variable regexp no ;# match using Regular Expressions (no, yes) variable status yes ;# display status bar (no, yes) variable ascii no ;# display ascii table (no, yes) variable format no ;# display text formatter window (no, yes) variable wf no ;# display xmlwf window (no, yes) variable ht no ;# display HTML Tidy window (no, yes) variable inputEnc system ;# default encoding to use when reading files variable outputEnc system ;# default encoding to use when writing files ## end of tpad instance vars initialization # initialize ascii plugin static vars or constants namespace eval ascii { variable font Courier ;# font to use for table characters } # end of ascii plugin static vars or constants initialization # initialize BSD fmt(1) plugin vars to default values namespace eval BSDfmt { variable width 65 ;# line width alias goal length variable excess 10 ;# excess chars so that maximum=width+excess variable center no ;# center the text (no, yes) variable nonroff no ;# don't ignore nroff command lines (no, yes) variable mail no ;# try to format mail headers (no, yes) variable spaces no ;# collapse whitespaces inside lines (no, yes) variable ending {.?!} ;# sentence ending chars variable replace no ;# replace spaces with tabs at the start (no, yes) variable para no ;# allow indented paragraphs (no, yes) } # end of BSD fmt(1) plugin vars initialization # initialize GNU fmt(1) plugin vars to default values namespace eval GNUfmt { variable width 75 ;# maximum line length variable uniform no ;# uniform spacing (no, yes) variable prefix {} ;# format only lines beginning with this prefix variable crown no ;# crown margin mode (no, yes) variable tagged no ;# tagged paragraph (no, yes) variable split no ;# split long lines, but do not refill (no, yes) } # end of GNU fmt(1) plugin vars initialization # initialize xmlwf(1) plugin vars to default values namespace eval xmlwf { variable font Helvetica ;# font to use for error messages variable external no ;# parse external entities (no, yes) variable parameter no ;# process parameter entities (no, yes) variable standalone no ;# error if not standalone (no, yes) variable namespace no ;# process (describe) namespaces (no, yes) } # end of xmlwf(1) plugin vars initialization # initialize tidy(1) plugin vars to default values namespace eval tidy { variable errorFg white variable errorBg #b03060 variable warningFg white variable warningBg #303080 variable smallFont {Helvetica -9} ;# used for the show/hide options button variable showopts yes ;# whether or not display options at startup (no, yes) # if not empty this value overrides the environment variable HTML_TIDY; # if empty and HTML_TIDY is defined, the value of HTML_TIDY # will be assigned to it; please always use an absolute path variable config {} ;# additional config file, {} if none or default variable indent no ;# indent contents of elements (no, yes) variable wrap yes ;# wrap output (no, yes) # default right margin for line wrapping variable column 68 variable preserve no ;# preserve source file entities as is (no, yes) variable xml no ;# input is wellformed xml (no, yes) variable omit no ;# omit optional endtags (no, yes) variable upper no ;# force tags to upper case (no, yes) variable clean no ;# replace font, nobr & center tags by CSS (no, yes) variable asxml no ;# convert html to wellformed xml (no, yes) variable numeric no ;# output numeric rather than named entities (no, yes) } # end of tidy(1) plugin vars initialization
Even though you don't know Tcl, you should not have too much trouble to change the configuration file to suit your needs. Here are some notes about every constant or variable to help you a bit. The possible values a variable may assume are bracketed. If you get stuck at something contact me, but first please read this page and the Tcl documentation referenced here, and try to fix things yourself :-)
When speaking of boolean values, no is the same as 0 and yes is the same as 1. If you need to set a variable to a string which has more than one word in it, remember to use the open braces around (e.g. {word1 word2}) otherwise Tcl will complain.
value | meaning |
---|---|
{} | place subwindows in the middle of the screen |
pointer | place subwindows centered on the pointer |
widget | place subwindows centered over tpad main window |
none | no placement, leave it to the window manager |
As you can see there are also some options related to plugins. They are grouped under a unique "namespace" named after the plugin name. I will not describe the meaning of these options here in detail, to avoid repetitions with the respective tool documentation. For example, you can find a more detailed description of the text formatter by running one of these commands, depending on your flavor of Unix:
$ fmt -h $ man fmt $ info fmt
A common problem after having upgraded tpad is that the old configuration files are left in place and must be upgraded manually. tpad will fail on startup if one of these conditions is true:
Case 3 is commonly encountered after a tpad upgrade and requires a configuration upgrade.
Since the config file may change from version to version, the following configuration upgrading procedure is recommended, for both global and user level config files:
Last modified: Sunday, 21-Dec-2014 23:37:52 UTC