DVX_GUI/config/README.md

9.8 KiB

DVX Shipped Settings and Shared Files

The settings files DVX ships and the files it shares with every program. The build copies them into bin/ (text files converted to DOS line endings, CR+LF, with sed): the settings into bin/system/, the themes and wallpapers into bin/shared/. At its first start DVX copies DVX.INI to the user folder (USER, or the folder DVXUSER names), where every change is saved; the shipped copy is never written. File types work the same way, except that the user's ASSOC.INI holds only their changes to the shipped list.

Files

Source File Build Output Description
dvx.ini bin/system/DVX.INI The settings a new user starts with
ASSOC.INI bin/system/ASSOC.INI File associations: which program opens each document type (shellAssoc.h; changed on the Control Panel's File Types page, in the user's ASSOC.INI)
DOSPROG.BMP bin/system/DOSPROG.BMP The icon of a DOS program (EXE, COM, BAT) in Program Manager when it has no picture of its own (SHELL_DOS_ICON, shellProg.h)
themes/cde.thm bin/shared/themes/cde.thm CDE color theme
themes/geos.thm bin/shared/themes/geos.thm GEOS Ensemble theme
themes/hotdog.thm bin/shared/themes/hotdog.thm Hot Dog Stand theme
themes/win31.thm bin/shared/themes/win31.thm Windows 3.1 theme
wpaper/blueglow.jpg bin/shared/wpaper/blueglow.jpg Wallpaper image
wpaper/swoop.jpg bin/shared/wpaper/swoop.jpg Wallpaper image
wpaper/triangle.jpg bin/shared/wpaper/triangle.jpg Wallpaper image
keys/*.KEY bin/system/KEYS/*.KEY DVX's repository key: packages it signs (DVX's own, and everything the package server publishes) are trusted as DVX's

The desktop sounds (bin/shared/sounds/) are made by mksounds and the fonts (bin/shared/fonts/) by mkfont (src/tools).

dvx.ini Format

Standard INI format with [section] headers and key = value pairs. Comments start with ;. The shell loads the user's copy at startup via prefsLoad(platformDvxIniPath()).

[video] Section

Key Default Description
width 640 Requested horizontal resolution
height 480 Requested vertical resolution
bpp 16 Preferred color depth (8, 15, 16, 24, 32)

The system picks the closest available VESA mode. If that mode cannot be set, or a Shift key is held while DVX starts (or DVX /SAFE), the shell starts in safe video mode (640x480, 16 bpp or the closest the card has) and asks whether to write that mode here.

[mouse] Section

Key Default Values Description
wheel normal normal, reversed Scroll wheel direction
wheelspeed 3 1-10 Lines scrolled per wheel notch
doubleclick 500 200-900 Double-click speed (ms)
acceleration medium off, low, medium, high Mouse acceleration
speed 8 2-32 Mickeys per 8 pixels of pointer travel (lower = faster pointer)

[shell] Section

Key Default Description
desktop apps/kpunch/progman/progman.app Path to the desktop app loaded at startup
welcome (none) Program started after the desktop; the shipped file names the Welcome window, which deletes the key when the user ticks "Don't show this again"

[colors] Section

All 20 system colors as R,G,B triplets (0-255). Missing keys use compiled-in defaults.

Key Description
desktop Desktop background
windowFace Window frame and widget face
windowHighlight Bevel highlight (top/left)
windowShadow Bevel shadow (bottom/right)
activeTitleBg Focused window title bar background
activeTitleFg Focused window title bar text
inactiveTitleBg Unfocused window title bar background
inactiveTitleFg Unfocused window title bar text
contentBg Content area background
contentFg Content area text
menuBg Menu background
menuFg Menu text
menuHighlightBg Menu selection background
menuHighlightFg Menu selection text
buttonFace Button face color
scrollbarBg Scrollbar background
scrollbarFg Scrollbar foreground
scrollbarTrough Scrollbar track color
cursorColor Mouse cursor foreground
cursorOutline Mouse cursor outline

[desktop] Section

Key Default Values Description
wallpaper (none) file path Path to wallpaper image
mode stretch stretch, tile, center Wallpaper display mode
saver (none) file name Screen saver: a program in SHARED\SAVERS or the user's SAVERS
saverWait 10 1-60 Minutes with no key or mouse input before the screen saver starts

[network] Section

Read by the networking library (dvxnet) when the stack starts; the Control Panel's Network page edits it.

Key Default Values Description
dhcp true true, false Get the address from a DHCP server
address (none) dotted IPv4 Static address (dhcp = false)
netmask (none) dotted IPv4 Static subnet mask (dhcp = false)
gateway (none) dotted IPv4 Static default gateway (optional)
dns1, dns2 (none) dotted IPv4 Name servers; they win over the DHCP server's
hostname DVX text Name sent to the DHCP server and returned by gethostname()
vector auto auto, 0x60-0x80 Packet driver interrupt

[printer] Section

Read by the printing library (print.lib) for every print; the Control Panel's Printer page edits the port and model, File > Page Setup (and the Printer page's Page Setup button) the rest. A page setup that cannot work (margins leaving no room, values out of range) is ignored as a whole in favour of the defaults.

Key Default Values Description
port LPT1 LPT1, LPT2, LPT3, COM1, COM2, COM3, COM4, FILE Where printed output goes
baud 9600 300, 1200, 2400, 4800, 9600, 19200, 38400 A serial printer's speed (port COM1-COM4)
handshake dtrdsr none, xonxoff, rtscts, dtrdsr How a serial printer holds the computer back: XON / XOFF characters, or its ready line on the computer's CTS or DSR (Apple's ImageWriter cable)
file PRINTER.PRN file path The file used with port = FILE
model text text, epson9, epson24, laserjet, laserjet300, epson9color, epson24color, deskjet500c, deskjetcolor, postscript, postscriptcolor, imagewriter, imagewritercolor Printer model; all but text print pictures; epson9color, epson24color, deskjet500c, deskjetcolor, postscriptcolor, and imagewritercolor in color
linesPerPage 0 0, 10-200 Lines per page; 0 = the model's usual length (66, laser 60)
columns 80 20-255 Characters across the page
marginTop, marginBottom 3 lines Top and bottom margins (header / footer in their middle line)
marginLeft, marginRight 5 characters Left and right margins
tabWidth 8 1-16 Tab stops for printed text
wrap true true, false Wrap long lines at a word, or cut them off
header, footer &f, Page &p text &f file name, &p page, &n pages, &d date, &t time, &l &c &r left / centre / right, && an ampersand

Theme Files (.thm)

Theme files use the same INI format as dvx.ini but contain only a [colors] section with the 20 color keys. The Control Panel can load and save themes via dvxLoadTheme() / dvxSaveTheme().

Bundled themes:

File Description
cde.thm CDE (Common Desktop Environment) -- warm tan/blue palette
geos.thm GEOS Ensemble -- cyan/grey palette
hotdog.thm Hot Dog Stand -- the infamous yellow/red/black palette
win31.thm Windows 3.1 -- grey/navy palette

Dependency Files (.dep)

Plain text files listing module base names that must be loaded before this module. One name per line. Empty lines and # comments are ignored. Names are case-insensitive.

Library Dependencies

Dep File Module Dependencies
libdvx.dep libdvx.lib libtasks
texthelp.dep texthelp.lib libtasks, libdvx
listhelp.dep listhelp.lib libtasks, libdvx
dvxshell.dep dvxshell.lib libtasks, libdvx, texthelp, listhelp
basrt.dep basrt.lib libtasks, libdvx
serial.dep serial.lib libtasks, libdvx

Widget Dependencies

Dep File Widget Dependencies
textinpt.dep textinpt.wgt texthelp
combobox.dep combobox.wgt texthelp, listhelp
spinner.dep spinner.wgt texthelp
terminal.dep terminal.wgt texthelp
dropdown.dep dropdown.wgt listhelp
listbox.dep listbox.wgt listhelp
listview.dep listview.wgt listhelp
treeview.dep treeview.wgt listhelp

Wallpaper Images

File Description
wpaper/blueglow.jpg Blue gradient glow
wpaper/swoop.jpg Curved swoosh pattern
wpaper/triangle.jpg Geometric triangle pattern

Wallpapers support BMP, PNG, JPEG, and GIF formats. They are pre-rendered to screen dimensions in native pixel format at load time.

The Repository Key

DVX trusts as its own the packages signed by the keys in SYSTEM\KEYS, and refuses an update of DVX itself (kpunch.dvx) signed by any other. The key pair is made once, on a computer the package server never touches:

bin/host/dvxpkg keygen "DVX Repository" KPUNCH

KPUNCH.KEY (the public half) goes in config/keys/, so every build ships it. KPUNCH.SEC stays offline, with the operator who approves packages (server/README.md); config/keys/.gitignore keeps a stray copy of it out of the repository.