! If you're a mere user without root privilegies the easiest way to install
! this file is to rename it 'Knews', copy it to a directory, and set the
! environment variable XAPPLRESDIR to point to that directory.  If you're
! root, 'make install' should do the trick.   Note that XAPPLRESDIR won't
! work if you have XUSERFILESEARCHPATH set.
!
! Note: if your using R4, you'll have to change all 'baseTranslations' to
! 'translations'.

Knews.knewsVersion:		0.9.6


! This overrides the NNTPSERVER environment variable (no need to set this)
!
!Knews.nntpServer:		your.nntp.server

! If you set this resource, knews will Do The Right Thing when a
! user first connects to this server, i.e. setting the newsrc file
! to ~/.newsrc instead of ~/.newsrc-%s.
!
!Knews.configNntpServer:	your.nntp.server


! If you set this, this will become the default postingAgent,
! which is written into the config file the first time the
! user connects to configNntpServer.
!
!Knews.configPostingAgent:	inews -h


! This is the command used to edit articles to be posted.
! %s is the filename, %i is the line number where editing starts;
! they are both optional.
!
!Knews.editCommand:	xterm -e $EDITOR +%i %s
!Knews.editCommand:	xemacs +%i %s
!Knews.editCommand:	xterm -e vi +%i %s
!
! You might need a few stty settings for vi:
!
!Knews.editCommand:	xterm -e /bin/sh -c 'stty ^D eof ; vi +%i %s'


! The proper way to set the geometry is to set the following resources,
! and let knews size itself according to the fonts:
!
*grouplist*PreferredLines:	14
*text*PreferredLines:		32
*PreferredColumns:		84
*killist*PreferredLines:	14
*FileSel*PreferredColumns:	16


! The layout of the article tree.  The nodeRows and nodeColumns values
! are in characters, the others in pixels.
!
!*ArtTree.vertical:		True
!*ArtTree.nodeColumns:		16
!*ArtTree.nodeRows:		1
!*ArtTree.rowSpacing:		6
!*ArtTree.columnSpacing:	32
!*ArtTree.pixmapSpacing:	8
!*ArtTree.internalWidth:	16
!*ArtTree.internalHeight:	8
!*ArtTree.internalNodeWidth:	4
!*ArtTree.internalNodeHeight:	0


! Per charset fonts for 8 bit charsets:
!

Knews.us-ascii.bodyFont:	\
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.us-ascii.quoteFont:	\
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.us-ascii.headerFont:	\
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.us-ascii.listFont:	\
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.us-ascii.treeFont:	\
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1

Knews.iso-8859-1.bodyFont:	\
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.iso-8859-1.quoteFont:	\
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1
Knews.iso-8859-1.headerFont:	\
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1

Knews.iso-8859-2.bodyFont:	\
	-*-*-*-*-*-*-*-*-*-*-*-*-iso8859-2

Knews.koi8.bodyFont:		\
	-*-*-*-*-*-*-*-*-*-*-*-*-koi8-r
Knews.koi8-r.bodyFont:		\
	-*-*-*-*-*-*-*-*-*-*-*-*-koi8-r

! Per charset fonts for encoded 16-bit charsets: highly experimental
!

Knews.iso-2022-kr.bodyFont:	\
	-*-*-*-*-*-*-*-*-*-*-*-*-ksc5601*
Knews.iso-2022-kr.encoding:	ksc-5601

Knews.gb2312.bodyFont:		\
	-*-*-*-*-*-*-*-*-*-*-*-*-gb2312*
Knews.gb2312.encoding:		hz-gb-2312

Knews.hz-gb-2312.bodyFont:	\
	-*-*-*-*-*-*-*-*-*-*-*-*-gb2312*
Knews.hz-gb-2312.encoding:	hz-gb-2312

Knews.big5.bodyFont:		\
	-*-*-*-*-*-*-*-*-*-*-*-*-*big5*
Knews.big5.encoding:		big5


! General fonts:
!
*ArtTree*Font: \
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
*ArtText*Font: \
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
*ScrList*Font: \
	-b&h-lucidatypewriter-medium-r-normal-*-*-120-*-*-*-*-iso8859-1
*Font: \
	-b&h-lucidatypewriter-bold-r-normal-*-*-120-*-*-*-*-iso8859-1


! The command used for clicking on URLs.  As a simple security
! measure, knews will not allow quotes, parentheses, white space
! or ampersands in the url.  Read the part in copyright.h about
! no warranty.
!
!Knews.urlCommand:	netscape -remote 'openUrl(%s)'
!
! This one will start netscape if it's not already running:
!
!Knews.urlCommand: \
!	if   netscape -remote 'openUrl(%s)'; \
!	then exec /bin/true ;                \
!	else exec netscape '%s';             \
!	fi


! If you change this to reflect your setup, you can use knews to read
! the spooldir simply by specifying the NNTPSERVER as '#spool'.  (This
! is assuming you have knewsd in your path.)  No need to bother with
! this if you have access to a real server.
!
!Knews.#spool:	knewsd  -spool /var/spool/news \
!			-active /usr/local/news/active \
!			-newsgroups /usr/local/news/newsgroups \
!			-overview /var/spool/news/over.view \
!			-post 'exec inews -h'


! Some people want double clicking on a subject to go directly into thread
! mode. This will do it.
!
!*threadlist.translations: #override \
!	<Btn1Down>(2):	notify() view-thread(true)


! The initial directory of the filechooser. Make sure it exists
!
!*FileSel.directory:	News


! The save/pipe popup will start up with the following in the text fields:
!
*shellfield.buffer: \
	tmp=/tmp/.knews.$$; cat >$tmp; xterm -e less $tmp; rm -f $tmp
*filefield.buffer:	~/News/%N


! The search popup will start with these in the text fields:
!
*regexpfield.buffer:	You haven't configured the app-def file.
*headerfield.buffer:	Content-Type
*wildcardfield.buffer:	*image/*


! These will make the key F1 in the 'shell-command' text field do the obvious
! thing. The same could be done for other function keys.
!
*shellfield.translations:	#override \n\
	<Key> F1:	beginning-of-line() kill-to-end-of-line() \
		insert-string("You haven't configured the app-def file.")
*filefield.translations:	#override \n\
	<Key> F1:	beginning-of-line() kill-to-end-of-line() \
		insert-string("You haven't configured the app-def file.")


! 'less'-like bindings for the article text scrollbar:
!
*textscrbar.accelerators: #override \n\
	c <Key> p:	abs-scroll(-13) \n\
	c <Key> n:	abs-scroll(13) \n\
	c <Key> f:	page-scroll(0.95) \n\
	c <Key> b:	page-scroll(-0.95)
*textscrbar.stepSize:	13


! These will make the tab key act the same as the 'Read group'/'Next unread'
! push button and the delete/backspace act the same as 'Previous'/'Rescan':
!
*knapp7.accelerators: #override \n\
	   <Key> Tab:		set() notify() reset() \n\
	~c <Key> n:		set() notify() reset()
*knapp8.accelerators: #override \n\
	   <Key> Delete:	set() notify() reset() \n\
	   <Key> BackSpace:	set() notify() reset()


! Accelerators for the horizontal and vertical scrollbars for the tree.
!
*tophbar.accelerators: #override \n\
	c <Key> Left:	abs-scroll(-32) \n\
	c <Key> KP_4:	abs-scroll(-32) \n\
	c <Key> Right:	abs-scroll(32) \n\
	c <Key> KP_6:	abs-scroll(32)

*topvbar.accelerators: #override \n\
	c <Key> Up:	abs-scroll(-32) \n\
	c <Key> KP_8:	abs-scroll(-32) \n\
	c <Key> Down:	abs-scroll(32) \n\
	c <Key> KP_2:	abs-scroll(32)


! An example: this will make ^S popup the search popup ('knapp11' is the
! 'Search' button).
!
*knapp11.accelerators: #override \n\
	c <Key> s:		set() notify() reset()

! Here are a few experimental translations.
!
!     ~s <Key> A    means A without shift
!      s <Key> A    means shift-A
!     ~c <Key> A    means A without control
!      c <Key> A    means control-A
!        <Key> A    means A with or without shift and control
!
! The kill-append stuff is intended as an illustration; the
! colors could be more imaginative.
!
Knews.baseTranslations:	#override \n\
	      <Key> space:	do-the-right-thing() \n\
	~c ~s <Key> Left:	tree-left-or-exit-mode(read) \n\
	~c ~s <Key> KP_4:	tree-left-or-exit-mode(read) \n\
	~c ~s <Key> Right:	tree-right-or-enter-mode(read) \n\
	~c ~s <Key> KP_6:	tree-right-or-enter-mode(read) \n\
	~c ~s <Key> Up:		tree-or-list-up(read) \n\
	~c ~s <Key> KP_8:	tree-or-list-up(read) \n\
	~c ~s <Key> Down:	tree-or-list-down(read) \n\
	~c ~s <Key> KP_2:	tree-or-list-down(read) \n\
	 c    <Key> KP_5:	read-article(full) \n\
	~c    <Key> KP_5:	read-article() \n\
	      <Key> KP_3:	list-down(0.9) \n\
	      <Key> KP_9:	list-up(0.9) \n\
	~c ~s <Key> g:		popup-find-group() \n\
	~c    <Key> l:		view-thread(toggle) \n\
	~c    <Key> f:		followup() \n\
	~c    <Key> r:		reply() \n\
	~c    <Key> p:		post-new() \n\
	~c    <Key> u:		uudecode() \n\
	~c ~s <Key> |:	pipe("tmp=/tmp/.knews.$$; cat >$tmp; \
			xterm -e less $tmp; rm -f $tmp", heb, window) \n\
	~c ~s <Key> F1:		kill-append(message-id, subthread, Red) \n\
	~c ~s <Key> F2:		kill-append(message-id, subthread, Green) \n\
	~c ~s <Key> F3:		kill-append(message-id, subthread, Blue) \n\
	~c ~s <Key> F4:		kill-append(message-id, subthread, Yellow) \n\
	~c  s <Key> F1:		kill-append(message-id, thread, Red) \n\
	~c  s <Key> F2:		kill-append(message-id, thread, Green) \n\
	~c  s <Key> F3:		kill-append(message-id, thread, Blue) \n\
	~c  s <Key> F4:		kill-append(message-id, thread, Yellow) \n\
	 c ~s <Key> k:		kill-append(message-id, subthread) \n\
	 c  s <Key> k:		kill-append(message-id, thread)


! Same for the second window, if it exists
!
Knews.second.baseTranslations:	#override \n\
	      <Key> space:	do-the-right-thing() \n\
	~c ~s <Key> Left:	tree-left-or-exit-mode(read) \n\
	~c ~s <Key> KP_4:	tree-left-or-exit-mode(read) \n\
	~c ~s <Key> Right:	tree-right-or-enter-mode(read) \n\
	~c ~s <Key> KP_6:	tree-right-or-enter-mode(read) \n\
	~c ~s <Key> Up:		tree-or-list-up(read) \n\
	~c ~s <Key> KP_8:	tree-or-list-up(read) \n\
	~c ~s <Key> Down:	tree-or-list-down(read) \n\
	~c ~s <Key> KP_2:	tree-or-list-down(read) \n\
	 c    <Key> KP_5:	read-article(full) \n\
	~c    <Key> KP_5:	read-article() \n\
	      <Key> KP_3:	list-down(0.9) \n\
	      <Key> KP_9:	list-up(0.9) \n\
	~c ~s <Key> g:		popup-find-group() \n\
	~c    <Key> l:		view-thread(toggle) \n\
	~c    <Key> f:		followup() \n\
	~c    <Key> r:		reply() \n\
	~c    <Key> p:		post-new() \n\
	~c    <Key> u:		uudecode() \n\
	~c ~s <Key> |:	pipe("tmp=/tmp/.knews.$$; cat >$tmp; \
			xterm -e less $tmp; rm -f $tmp", heb, window) \n\
	~c ~s <Key> F1:		kill-append(message-id, subthread, Red) \n\
	~c ~s <Key> F2:		kill-append(message-id, subthread, Green) \n\
	~c ~s <Key> F3:		kill-append(message-id, subthread, Blue) \n\
	~c ~s <Key> F4:		kill-append(message-id, subthread, Yellow) \n\
	~c  s <Key> F1:		kill-append(message-id, thread, Red) \n\
	~c  s <Key> F2:		kill-append(message-id, thread, Green) \n\
	~c  s <Key> F3:		kill-append(message-id, thread, Blue) \n\
	~c  s <Key> F4:		kill-append(message-id, thread, Yellow) \n\
	 c ~s <Key> k:		kill-append(message-id, subthread) \n\
	 c  s <Key> k:		kill-append(message-id, thread)



! Some miscellaneous resources:
!

*textscrbar.allowOff:		True
*Foreground:			Black
*Background:			Bisque
*BorderColor:			Black
*rubberColor:			Red
*quoteColor:			Medium Blue
*headerColor:			#000090
*innerColor:			Red
*clickableColor:		#0000e0
*knapplayout.abort.Foreground:	Red
*alertColor:			Red

! The highlight color of the lists, dynamically set to grey or white:
!*ScrList.highlightColor:	blah

*ArtTree.useLineShadows:	True
*Knapp.BorderWidth:		1
*MenuKnapp.BorderWidth:		1
*TextField.BorderWidth:		2
*BorderWidth:			0
*Toggle.shadowWidth:		2
*toplayout.skipAdjust:		True
*Knapp.Justify:			center
*MenuKnapp.Justify:		center
*quotetoggle.set:		True

*arttree.baseTranslations:	#augment \n\
	<Btn1Down>:	set-selected() \n\
	<Btn3Down>:	toggle-outer()
*grouplist.baseTranslations:	#augment \n\
	<Btn2Down>:	dnd-start() \n\
	<Btn2Motion>:	dnd-do() \n\
	<Btn2Up>:	dnd-end() \n\
	<Btn3Down>:	schedule-thread-ahead()
*killist.baseTranslations:	#augment \n\
	<Btn2Down>:	dnd-start() \n\
	<Btn2Motion>:	dnd-do() \n\
	<Btn2Up>:	dnd-end()
*threadlist.baseTranslations:	#augment \n\
	~c <Btn2Down>:		select() mark-read-thread() \n\
	~c <Btn2Motion>:	select() mark-read-thread() \n\
	 c <Btn2Down>:		select() mark-unread-thread() \n\
	   <Btn3Down>:		select() tag-thread()


! Various labels.
!

*knapplayout.knapp0.label:	Quit\nDone
*knapplayout.knapp1.label: \
		Connect...\nDisconnect\nView thread\nBack\nSubscribe
*knapplayout.knapp2.label:	All groups\nAll threads\nUnsubscribe
*knapplayout.misc.label:	Misc
*knapplayout.post.label:	Post
*knapplayout.kill.label:	Kill...
*knapplayout.knapp6.label:	Update\nCatchup
*knapplayout.knapp7.label:	Read Group\nNext unread\nGoto group
*knapplayout.knapp8.label:	Rescan\nPrevious
*knapplayout.abort.label:	Abort
*knapplayout.save.label:	Save...
*knapplayout.search.label:	Search...

*close.label:		Close

*miscmenu1.fullheader.label:	Full Header
*miscmenu1.rot13.label:		Rot 13
*miscmenu1.cleartags.label:	Clear tags
*miscmenu1.uudecode.label:	Uudecode
*miscmenu1.taghot.label:	Tag hot articles
*miscmenu1.addtompcache.label:	Add To M/P cache
*miscmenu1.msgidlookup.label:	Message-Id Lookup
*miscmenu1.showcache.label:	Show Cache Stats
*miscmenu1.markread.label:	Mark Read
*miscmenu1.markunread.label:	Mark Unread
*miscmenu1.headertoggle.label:	Full Header
*miscmenu1.thrinfo.label:	Keep Thread Info

*miscmenu2.unsubscribe.label:	Unsubscribe
*miscmenu2.catchup.label:	Catchup
*miscmenu2.findgroup.label:	Find Group
*miscmenu2.askhowmany.label:	Ask How Many

*markreadmenu.article.label:		Article
*markreadmenu.subject.label:		Subject
*markreadmenu.thread.label:		Thread
*markreadmenu.subthread.label:		Subthread
*markreadmenu.tagged.label:		Tagged
*markreadmenu.allarticles.label:	All articles
*markreadmenu.tocurrent.label:		To current
*markreadmenu.nontagged.label:		Non-tagged
*markreadmenu.cold.label:		Cold

*markunreadmenu.article.label:		Article
*markunreadmenu.subject.label:		Subject
*markunreadmenu.thread.label:		Thread
*markunreadmenu.subthread.label:	Subthread
*markunreadmenu.tagged.label:		Tagged
*markunreadmenu.allarticles.label:	All articles
*markunreadmenu.killed.label:		Killed

*postmenu.followup.label:	Post a followup
*postmenu.mailreply.label:	Reply by mail
*postmenu.followupreply.label:	Followup and reply
*postmenu.postnew.label:	Post a new article
*postmenu.cancel.label:		Cancel article
*postmenu.forward.label:	Forward by mail
*postmenu.quotetoggle.label:	Include quoted text

*killeditor.title:		knews: kill file editor
*killeditor.iconName:		kill editor
*killeditor*fieldknapp.label:	Message-Id\nSubject\nFrom\nXref
*killeditor*scopeknapp.label:	Article\nSubject\nThread\nSubthread
*killeditor*actionknapp.label:	Kill\nHot\nHotish
*killeditor*add.label:		Add new
*killeditor*delete.label:	Delete
*killeditor*clear.label:	Clear
*killeditor*update.label:	Update
*fieldmenu.messageid.label:	Message-Id
*fieldmenu.subject.label:	Subject
*fieldmenu.from.label:		From
*fieldmenu.xref.label:		Xref
*scopemenu.article.label:	Article
*scopemenu.subject.label:	Subject
*scopemenu.thread.label:	Thread
*scopemenu.subthread.label:	Subthread
*actionmenu.kill.label:		Kill
*actionmenu.hot.label:		Hot
*actionmenu.hotish.label:	Hotish

*fieldmessage.buffer:	Header:
*scopemessage.buffer:	Scope:
*groupmessage.buffer:	Group regexp:
*exprmessage.buffer:	Regexp/Message-Id:
*colormessage.buffer:	Color:

*saveshell*message.buffer:	Save to file or pipe to shell
*saveshell*shellmessage.buffer:	Shell-command:
*saveshell*filemessage.buffer:	File:
*saveshell*choose.label:	Choose...
*saveshell*ok.label:		Save\nPipe
*saveshell*bogusfrom.label:	Bogus From header
*saveshell*bogussubj.label:	Bogus Subject header
*saveshell*header.label:	Header
*saveshell*body.label:		Body
*saveshell*empty.label:		Empty Line
*saveshell*artwin.label:	Article window
*saveshell*article.label:	Article
*saveshell*subject.label:	Subject
*saveshell*thread.label:	Thread
*saveshell*subthread.label:	Subthread
*saveshell*tagged.label:	Tagged articles

*searchshell.title:			knews: search
*searchshell.iconName:			search
*searchshell*regexptitle.buffer:	Regular expression searching
*searchshell*xpattitle.buffer:		XPAT wildcard searching
*searchshell*regexpmessage.buffer:	Regexp:
*searchshell*wildcardmessage.buffer:	Wildcard:
*searchshell*headermessage.buffer:	Header:
*searchshell*search.label:		Search
*searchshell*submit.label:		Submit
*searchshell*next.label:		Next
*searchshell*first.label:		First
*searchshell*stop.label:		Stop
*searchshell*clear.label:		Clear
*searchshell*fromtoggle.label:		From: header
*searchshell*subjecttoggle.label:	Subject: header
*searchshell*headtoggle.label:		Article head
*searchshell*bodytoggle.label:		Article body
*searchshell*unreadtoggle.label:	Only unread
*searchshell*allscope.label:		All articles
*searchshell*threadscope.label:		Thread
*searchshell*subthreadscope.label:	Subthread
*searchshell*taggedscope.label:		Tagged

*FileSel*choose.label:	Choose
*FileSel*cancel.label:	Cancel
