Pineapple News stores most of its program settings inside a text file that has the following full path:
/boot/home/config/settings/PineappleNews.ini
Currently, during the beta release of the program, there are some options that can only be changed by directly editing this file. Eventually all settings will be accessible from preference windows, but that won't happen until some point in the future.
You can edit the file by double-clicking on it in Tracker, which should launch it in StyledEdit, the BeOS text editor. Like any other file type you can change the association in the FileTypes preferences app to launch it and other initialization files of its type in some other text editor. If you find yourself editing it a lot you should make a link to it on your Be Menu.
Be careful when you are editing this file! If you mess it up too much then Pineapple News might not run anymore. If that happens the program will display a message telling you which lines in the file it doesn't like so you'll know where to look for the problem. If worse comes to worst you can always delete the file which will cause Pineapple News to create a "virgin" copy the next time it starts up.
You'll note that the file contains lots of mixed-case text, which might lead you to believe that you have to preserve that case or get into trouble. Don't worry, the section and item names are not case-sensitive, so "Path", "PATH", and "path" are all equivalent, and the comments are not important, you can remove them if you want. The only place where case is an issue is if you're entering a path string, for instance. BeOS has a case-sensitive file system so in that situation you do have to preserve case.
Note that you should only edit this file while Pineapple News is not running. The reason is that it doesn't just read the file, it writes it also on program shutdown, so your changes could be lost. Any changes you make won't take effect until the program is stopped and restarted anyway so you might as well do the "stop" part before editing.
The format of the file is simple. This is an example:
; Comments look like this
[SectionName]
Item1 = Value1
Item2 = Some String Value ;Comments are okay here too
Here we see one section, its name enclosed in angle brackets, that has two items. The actual file has several sections. Each item must appear in the proper section or it will not be used.
Note that synonym words are often accepted. For example many of the values stored in the initialization file are "booleans," which is a computer-science term that means "a variable that can have one of two values." The two states can be represented in many different ways: 0 or 1, True or False, Yes or No, On or Off, and so on. All forms are acceptable and all do exactly the same thing.
For the more adventurous among you that might be all the information you need. Most of the item names are self-explanatory and all have comments explaining their function. In case there is some remaining doubt the rest of this help topic documents all sections and items.
There's no point in detailing every option in this section. Suffice to say that each specifies an RGB color value, given as three decimal integers separated by spaces, that set colors for most of the elements of the user interface. You can guess which part by the names. If you have trouble you can change one, restart the program, and see what looks different.
This is an area of the program that sorely needs work. Sooner or later I'll get around to creating a preferences window that lets you set all this stuff, including foreground colors and fonts.
Bottom, Left, Right, and Top These four floating-point values collectively specify the location and size of newly-created message edit windows. They are updated by the program to reflect the size and position of the edit window that was most recently closed.
ApplyToDownload A boolean that specifies whether the killfile should be applied while downloading messages from newsgroups. If set to true then any message from an author in the killfile will not get downloaded. This is an advanced feature and only takes effect if you have registered Pineapple News. In order to determine which articles are from killfiled authors the program must make use of the XOVER command while talking to your news server to get overview data about posted messages. This command is not part of the formal NNTP specification but most news sites have implemented it in the last several years. If your news server doesn't support XOVER then this feature won't work and you should leave it turned off.
RemoveTime This is the amount of time that an author will spend in the killfile before being automatically removed. It's specified as a number of days, for example, "120 days" would be approximately two months. If you set it to zero then the default is for authors to never be removed from the killfile. Note that old entries are only removed from the killfile when the program first starts up.
Charset This sets the character set that will be used in posts that you write. The default is ISO-8859-1. Some of the other legal values are ISO-8859-2, US-ASCII, andUTF-8. You can read more about this in the help topic Character Sets.
LineLength This value sets the maximum length (in characters) of lines as they will appear in posts you make once they get to your server. The default is 72, as per Internet standard practice. The number of characters per line will also be reflected in the edit window you use to create them, if you use a fixed width font. Currently this value can only be changed by editing the INI file.
The progress window pops open when communication with your news server is taking place, then closes again when the transfer is complete. At least that's the way it normally works. You can change that behavior along with a lot of other things in this section.
Delay This setting controls how long the window waits at the end of a transfer before closing itself. It is specified as an integer and a unit value, so some example values would be "2 seconds", "100 milliseconds", and so on. If it is set to zero then the window will close itself immediately at the end of transfers.
Left and Top These values specify the location for the window.
Tab This setting specifies which of the three tabs of the progress window will be made active when it first appears. Possible values are Progress, Actions, or Errors. The setting is updated by the window itself with whatever the active tab was when it was most recently closed.
TransferStart This is a bool value that says whether the transfer window will appear on its own at the beginning of transfers or not. Possible values are Yes or No (or True/False, On/Off, 0/1, etc., whatever floats your boat). The default is Yes. The value is updated automatically by a menu option on the transfer menu so you shouldn't have to edit it directly.
Most items in this section can be accessed from the "Registration ..." item on the help menu.
Key This is where the registration key you get when you purchase Pineapple News is saved. It must exactly match the key you were given when you paid for the program. Keys are case-sensitive and all letters must be uppercase, meaning that you can't type 'e' when you mean 'E'.
Name Your registered username. It must match EXACTLY with what you got in your e-mail when you registered the program, or you won't be able to use the extra features you paid for. If your name contains non-ASCII characters then they should be added here in the UTF8 character set.
HideName By default, Pineapple News puts your registered username into the headers of all usenet messages it creates. Some people don't like that, so I added this setting so that it can be turned off. This is a boolean value that defaults to "Off". Change it to "On" to keep your registered name out of the message headers.
Filename This is the fully-qualified filename for the signature file. The default value is /boot/home/sig.txt. It must be a standard text file. If you use extended characters (i.e. anything beyond 7-bit US-ASCII) they should be in UTF8 format.
Enabled Set this to Yes to automatically insert the signature file into new messages. The default is No, meaning that the signature file is not used. If the filename given doesn't point to a valid signature file this value is ignored.
Reply Set this to Yes to automatically append your signature to replies. The default is No. The value is ignored unless a valid signature file is specified and Enabled is set to Yes.
CharsetDefault This is the default character set that will be applied to newly created newsgroups. Each newsgroup has a character set associated with it so that if a message is encountered that does not specify a character set the group's default will be used. For more information see the help topic Character Sets.
DaysToKeepMessages This is the number of days between when a message is downloaded and when Pineapple News will delete it automatically. The default is 10. Note that it only applies to messages inside newsgroups, if you create a storage folder and drag messages inside it those messages will never be deleted. If you don't want automatic message deletion then set this value to 0.
DownloadArticles An integer that specificies the maximum number of articles that will be downloaded at a time. If set to zero then there will be no limit. This setting has no effect unless DownloadLimit is set to Yes.
DownloadDefault This setting specifies the download type that will be assigned to newly-subscribed newsgroups. Possible settings are NoDownload, HeadersOnly, or HeadersAndBodies. The default is HeadersOnly. This setting is updated by the radio buttons in the middle of the newsgroup selection window.
DownloadHeaders An integer that specificies the maximum number of headers that will be downloaded at a time. If set to zero then there will be no limit. This setting has no effect unless DownloadLimit is set to Yes.
DownloadLimit A boolean that specifies whether downloads are limited to a certain number of articles and headers or not. Set it to Yes to limit downloads, No to get all articles or headers.
Path This is the directory where Pineapple News will keep all of its article files, including saved articles in storage folders you create. The default is /boot/home/PineappleData.
SavePath This is the directory where binary attachments will be saved. The default is /boot/home. There's not much need to edit it manually because if you select a new directory in the file panel when saving a binary attachment then that new directory will be saved here.
TransferLogging This setting indicates whether the program will write transfer information to the file NNTP.log or not. It can have one of three settings: None, which means no logging will take place; ActionsOnly, which will log only NNTP commands and their responses; or ActionsAndTransfers, which logs every single line sent and received. For more information see the help topic NNTP Logging.
AllowHTML If Yes then messages that have an HTML section will be displayed in a NetPositive replicant, rendered as it would any other web page. If false then a message's text section, if any, will be displayed instead. If this value is false and a message you're viewing doesn't have a text section then the HTML will be displayed as raw text, tags and all. Note that this setting will have no effect if LoadNetPositive is set to false (see below).
ColumnLabelxxxx There are ten settings of this type, 0001 to 0010. They set the label strings of the ten types of headers that might appear in the columns of the headers view, in the area at the top of the message view, and in the view menu. By changing the value of these strings you could for instance change the name of the Author column to GuyWhoWroteTheArticle. The strings can only be changed by directly editing their values in the INI file.
ColumnDisplayxxxx Ten booleans, 0001 to 0010, that say whether each column type will appear in the headers view or not. Settable from the View menu.
ColumnMessagexxxx Ten booleans, 0001 to 0010, that say whether each column type will appear in the bar at the top of the message view or not. Settable from the View menu.
ColumnPositionxxxx For columns that are displayed in the headers view these ten values give the pixel offset where the column begins. You can change these values indirectly by dragging the column headers to different sizes or positions in the headers view.
ColumnSortxxxx For columns that are displayed in the headers view these ten integers give the column's location in the sort order. The first sort column will have the value 1, second will be 2, and so on. If a column does not participate in the sort order then its value will be 0. You can sort on a column by clicking on it in the headers view. You can add a secondary (or tertiary, etc.) sort column by shift-clicking on it.
ColumnSortForwardxxxx For columns that participate in the headers sort order this bool says whether they sort "forward," descending, or "reverse," ascending. You can change the sort order of any column that participates in the sort order by holding down the Ctrl key and clicking on it. A special exception exists: clicking on what is already the primary sort column toggles its SortForward value, no modifier keys necessary.
ColumnWidthxxxx For columns that are displayed in the headers view these ten values give the columns' width in pixels. You can change these values indirectly by dragging the column headers to different sizes.
LoadNetPositive If Yes then a NetPositive replicant view will be created at program start-up and used for displaying HTML posts. If you prefer to view HTML posts as raw text, set it to No to save yourself a little memory and CPU time. Also, there may be some sort of bug somewhere that occurs if you try to run Pineapple News and NetPositive at the same time that causes NetPositive to crash. Personally I haven't seen this but if you experience such a thing then setting this value to No might help.
ShowMessageHeaders If this value is Yes then the message view displays all headers for every message. It is settable on the View menu so you shouldn't need to edit it here.
ShowReadMessages If Yes then the headers view displays message headers for messages that have already been read, No means you'll only see headers for unread messages. Settable from the View menu.
Threaded If set to Yes then the headers view displays messages in a hierarchical view, replies indented underneath the message being replied to. No means that all messages will be displayed at top-level. Settable from the View menu.
ThreadExpanded Boolean value that says whether threads in the headers view are displayed expanded by default or not. Settable from the View menu.
Left, Top, Right, and Bottom Collectively these four floating-point values indicate the location and size of the main program window onscreen. They are updated by the window when its position is changed or it is dragged to a new size.
InputFocus Indicates which of the three main views will be given the input focus when the program starts up. Possible values are Storage, Headers, and Message. This value is updated whenever you switch input focus via the keyboard or the mouse.
SplitterHorizontal and SplitterVertical These two settings indicate the positions inside the main window where it will be split into the left (storage), top right (headers), and lower right (message) panes. You can drag the splitters in the main window with the mouse to change these values so there should be no reason to edit them directly.
TextFontFamily and TextFontStyle These strings specify the font name and font style used to display article files and for editing articles you post. You can find the strings necessary to type in here by playing with the Fonts preferences app. An example for TextFontFamily would be "Zurich", and one possible value for TextFontStyle would be "Roman". They must exactly match the font names and styles available on your computer or else they will not be used and you'll get the default fixed-width font instead. Eventually the program will put up a menu to let you select fonts so there will be no possibility for error but alas, I'm not there yet.
TextFontSize This setting was added at the insistence of one of my early beta testers. It sets the font size for the message view and the edit window where you create posts to be sent. The default is 10, which I like but many people find to be too small, so you might want to make it bigger. This is basically just an ugly hack which will have to suffice until I can write code to allow users to select their own font, font size, and colors for all windows.