Patch title: Release 93 bulk changes
Abstract:
File: /fullpliant/embedded/configure.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/linux/kernel/device.pli"


  # now build the famous /etc/X11/XF86Config file
  s open "target:/etc/X11/XF86Config" out+mkdir+safe
  
  if not (c:env:"hardware":"screen":"horizontal_resolution" 
    rx := 1024
  if not (c:env:"hardware":"screen":"vertical_resolution" pa
    ry := 768
  if not (c:env:"hardware":"video":"vram_mb" parse (var Int 
    vram := undefined
  if not (c:env:"hardware":"video":"bpp" parse (var Int bpp)
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/fullpliant/this_computer.pli"
module "/pliant/linux/kernel/device.pli"


  # now build the famous /etc/X11/XF86Config file
  s open "target:/etc/X11/XF86Config" out+mkdir+safe
  
  if not (c:env:"hardware":"screen":"horizontal_resolution" 
    rx := 1024
  if not (c:env:"hardware":"screen":"vertical_resolution" pa
    ry := 768
  if not (c:env:"hardware":"video":"vram_mb" parse (var Int 
    vram := undefined
  if not (c:env:"hardware":"video":"bpp" parse (var Int bpp)
    bpp := 32
    bpp := 24
  
  if vram=defined
    if bpp=32 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt c:env:"hardware":"video":"can_do_24_bpp"=
    while bpp>8 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt bpp>16 16 8
  
  c "hardware" "screen" "horizontal_resolution" := string rx
  c "hardware" "screen" "vertical_resolution" := string ry
  c "hardware" "video" "bpp" := string bpp
  
  s writeline "Section [dq]Files[dq]"
  s writeline "  RgbPath [dq]/usr/X11R6/lib/X11/rgb[dq]"
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/misc:
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/75dpi
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/100dp
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/Type1
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/Speed
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/misc[
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/75dpi
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/100dp
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Keyboard[dq]"
  s writeline "  Protocol [dq]Standard[dq]"
  var Str layout := c:env:"hardware":"keyboard":"xfree86_lay
  if layout=""
    layout := c:env:"hardware":"keyboard":"layout"
  if not (layout parse any "(" any ")" any)
    layout := "xfree86("+layout+")"
  s writeline "  XkbKeymap [dq]"+layout+"[dq]"
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Pointer[dq]"
  s writeline "  Protocol [dq]"+(shunt c:env:"hardware":"mou
  s writeline "  Device [dq]"+(file_os_name c:env:"hardware"
  s writeline "  "+(shunt c:env:"hardware":"mouse":"button">
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Monitor[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"screen":
  s writeline "  VendorName [dq]"+c:env:"hardware":"screen":
  s writeline "  ModelName [dq]"+c:env:"hardware":"screen":"
  s writeline "  HorizSync "+c:env:"hardware":"screen":"hori
  s writeline "  VertRefresh "+c:env:"hardware":"screen":"ve
  s writeline ""
  if c:env:"hardware":"screen":"xfree86_frequency"<>""
    s writeline c:env:"hardware":"screen":"xfree86_frequency
  else
    s writeline "# 640x400 @ 70 Hz, 31.5 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     25.175 640  66
    s writeline "# 640x480 @ 60 Hz, 31.5 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     25.175 640  66
    s writeline "# 800x600 @ 56 Hz, 35.15 kHz hsync"
    s writeline "ModeLine [dq]800x600[dq]     36     800  82
    s writeline "# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsy
    s writeline "Modeline [dq]1024x768[dq]    44.9  1024 104
  
    s writeline "# 640x400 @ 85 Hz, 37.86 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     31.5   640  67
    s writeline "# 640x480 @ 72 Hz, 36.5 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     31.5   640  68
    s writeline "# 640x480 @ 75 Hz, 37.50 kHz hsync"
    s writeline "ModeLine  [dq]640x480[dq]    31.5   640  65
    s writeline "# 800x600 @ 60 Hz, 37.8 kHz hsync"
    s writeline "Modeline [dq]800x600[dq]     40     800  84
  
    s writeline "# 640x480 @ 85 Hz, 43.27 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     36     640  69
    s writeline "# 1152x864 @ 89 Hz interlaced, 44 kHz hsync
    s writeline "ModeLine [dq]1152x864[dq]    65    1152 116
  
    s writeline "# 800x600 @ 72 Hz, 48.0 kHz hsync"
    s writeline "Modeline [dq]800x600[dq]     50     800  85
    s writeline "# 1024x768 @ 60 Hz, 48.4 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    65    1024 103
  
    s writeline "# 640x480 @ 100 Hz, 53.01 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     45.8   640  67
    s writeline "# 1152x864 @ 60 Hz, 53.5 kHz hsync"
    s writeline "Modeline  [dq]1152x864[dq]   89.9  1152 121
    s writeline "# 800x600 @ 85 Hz, 55.84 kHz hsync"
    s writeline "Modeline  [dq]800x600[dq]    60.75  800  86
  
    s writeline "# 1024x768 @ 70 Hz, 56.5 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    75    1024 104
    s writeline "# 1280x1024 @ 87 Hz interlaced, 51 kHz hsyn
    s writeline "Modeline [dq]1280x1024[dq]   80    1280 129
  
    s writeline "# 800x600 @ 100 Hz, 64.02 kHz hsync"
    s writeline "Modeline  [dq]800x600[dq]    69.65  800  86
    s writeline "# 1024x768 @ 76 Hz, 62.5 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    85    1024 103
    s writeline "# 1152x864 @ 70 Hz, 62.4 kHz hsync"
    s writeline "Modeline  [dq]1152x864[dq]   92    1152 120
    s writeline "# 1280x1024 @ 61 Hz, 64.2 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  110    1280 132
  
    s writeline "# 1024x768 @ 85 Hz, 70.24 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]   98.9  1024 1056
    s writeline "# 1152x864 @ 78 Hz, 70.8 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   110   1152 1240
  
    s writeline "# 1280x1024 @ 70 Hz, 74.59 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  126.5 1280 1312
    s writeline "# 1600x1200 @ 60Hz, 75.00 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  162   1600 1664
    s writeline "# 1152x864 @ 84 Hz, 76.0 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   135    1152 146
  
    s writeline "# 1280x1024 @ 74 Hz, 78.85 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  135    1280 131
  
    s writeline "# 1024x768 @ 100Hz, 80.21 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]   115.5  1024 105
    s writeline "# 1280x1024 @ 76 Hz, 81.13 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  135    1280 131
  
    s writeline "# 1600x1200 @ 70 Hz, 87.50 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  189    1600 166
    s writeline "# 1152x864 @ 100 Hz, 89.62 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   137.65 1152 118
    s writeline "# 1280x1024 @ 85 Hz, 91.15 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  157.5  1280 134
    s writeline "# 1600x1200 @ 75 Hz, 93.75 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  202.5  1600 166
    s writeline "# 1600x1200 @ 85 Hz, 105.77 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  220    1600 161
    s writeline "# 1280x1024 @ 100 Hz, 107.16 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  181.75 1280 131
  
    s writeline "# 1800x1440 @ 64Hz, 96.15 kHz hsync"
    s writeline "ModeLine [dq]1800X1440[dq]  230    1800 189
    s writeline "# 1800x1440 @ 70Hz, 104.52 kHz hsync"
    s writeline "ModeLine [dq]1800X1440[dq]  250    1800 189
  
    s writeline "# 512x384 @ 78 Hz, 31.50 kHz hsync"
    s writeline "Modeline [dq]512x384[dq]    20.160 512  528
    s writeline "# 512x384 @ 85 Hz, 34.38 kHz hsync"
    s writeline "Modeline [dq]512x384[dq]    22     512  528
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Device[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"video":"
  s writeline "  VendorName [dq]"+c:env:"hardware":"video":"
  s writeline "  BoardName [dq]"+c:env:"hardware":"video":"m
  # if c:env:"hardware":"screen":"constructor"="IBM" and c:e
  #   s writeline "  Clockchip [dq]ibm_rgb5xx[dq]"
  if c:env:"hardware":"video":"xfree86_chip_id"<>""
    s writeline "  ChipId "+c:env:"hardware":"video":"xfree8
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Screen[dq]"
  s writeline "  Driver [dq]"+(shunt c:env:"hardware":"video
  s writeline "  Device [dq]"+c:env:"hardware":"video":"cons
  s writeline "  Monitor [dq]"+c:env:"hardware":"screen":"co
  s writeline "  Subsection [dq]Display[dq]"
  s writeline "    Depth "+string:bpp
  s writeline "    Modes [dq]"+string:rx+"x"+string:ry+"[dq]
  s writeline "    ViewPort 0 0"
  s writeline "  EndSubsection"
  s writeline "EndSection"



  s open "target:/etc/X11/XF86Config" out+mkdir+safe
  
  if not (c:env:"hardware":"screen":"horizontal_resolution" 
    rx := 1024
  if not (c:env:"hardware":"screen":"vertical_resolution" pa
    ry := 768
  if not (c:env:"hardware":"video":"vram_mb" parse (var Int 
    vram := undefined
  if not (c:env:"hardware":"video":"bpp" parse (var Int bpp)
  
  if vram=defined
    if bpp=32 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt c:env:"hardware":"video":"can_do_24_bpp"=
    while bpp>8 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt bpp>16 16 8
  
  c "hardware" "screen" "horizontal_resolution" := string rx
  c "hardware" "screen" "vertical_resolution" := string ry
  c "hardware" "video" "bpp" := string bpp
  
  s writeline "Section [dq]Files[dq]"
  s writeline "  RgbPath [dq]/usr/X11R6/lib/X11/rgb[dq]"
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/misc:
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/75dpi
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/100dp
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/Type1
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/Speed
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/misc[
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/75dpi
  s writeline "  FontPath [dq]/usr/X11R6/lib/X11/fonts/100dp
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Keyboard[dq]"
  s writeline "  Protocol [dq]Standard[dq]"
  var Str layout := c:env:"hardware":"keyboard":"xfree86_lay
  if layout=""
    layout := c:env:"hardware":"keyboard":"layout"
  if not (layout parse any "(" any ")" any)
    layout := "xfree86("+layout+")"
  s writeline "  XkbKeymap [dq]"+layout+"[dq]"
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Pointer[dq]"
  s writeline "  Protocol [dq]"+(shunt c:env:"hardware":"mou
  s writeline "  Device [dq]"+(file_os_name c:env:"hardware"
  s writeline "  "+(shunt c:env:"hardware":"mouse":"button">
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Monitor[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"screen":
  s writeline "  VendorName [dq]"+c:env:"hardware":"screen":
  s writeline "  ModelName [dq]"+c:env:"hardware":"screen":"
  s writeline "  HorizSync "+c:env:"hardware":"screen":"hori
  s writeline "  VertRefresh "+c:env:"hardware":"screen":"ve
  s writeline ""
  if c:env:"hardware":"screen":"xfree86_frequency"<>""
    s writeline c:env:"hardware":"screen":"xfree86_frequency
  else
    s writeline "# 640x400 @ 70 Hz, 31.5 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     25.175 640  66
    s writeline "# 640x480 @ 60 Hz, 31.5 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     25.175 640  66
    s writeline "# 800x600 @ 56 Hz, 35.15 kHz hsync"
    s writeline "ModeLine [dq]800x600[dq]     36     800  82
    s writeline "# 1024x768 @ 87 Hz interlaced, 35.5 kHz hsy
    s writeline "Modeline [dq]1024x768[dq]    44.9  1024 104
  
    s writeline "# 640x400 @ 85 Hz, 37.86 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     31.5   640  67
    s writeline "# 640x480 @ 72 Hz, 36.5 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     31.5   640  68
    s writeline "# 640x480 @ 75 Hz, 37.50 kHz hsync"
    s writeline "ModeLine  [dq]640x480[dq]    31.5   640  65
    s writeline "# 800x600 @ 60 Hz, 37.8 kHz hsync"
    s writeline "Modeline [dq]800x600[dq]     40     800  84
  
    s writeline "# 640x480 @ 85 Hz, 43.27 kHz hsync"
    s writeline "Modeline [dq]640x400[dq]     36     640  69
    s writeline "# 1152x864 @ 89 Hz interlaced, 44 kHz hsync
    s writeline "ModeLine [dq]1152x864[dq]    65    1152 116
  
    s writeline "# 800x600 @ 72 Hz, 48.0 kHz hsync"
    s writeline "Modeline [dq]800x600[dq]     50     800  85
    s writeline "# 1024x768 @ 60 Hz, 48.4 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    65    1024 103
  
    s writeline "# 640x480 @ 100 Hz, 53.01 kHz hsync"
    s writeline "Modeline [dq]640x480[dq]     45.8   640  67
    s writeline "# 1152x864 @ 60 Hz, 53.5 kHz hsync"
    s writeline "Modeline  [dq]1152x864[dq]   89.9  1152 121
    s writeline "# 800x600 @ 85 Hz, 55.84 kHz hsync"
    s writeline "Modeline  [dq]800x600[dq]    60.75  800  86
  
    s writeline "# 1024x768 @ 70 Hz, 56.5 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    75    1024 104
    s writeline "# 1280x1024 @ 87 Hz interlaced, 51 kHz hsyn
    s writeline "Modeline [dq]1280x1024[dq]   80    1280 129
  
    s writeline "# 800x600 @ 100 Hz, 64.02 kHz hsync"
    s writeline "Modeline  [dq]800x600[dq]    69.65  800  86
    s writeline "# 1024x768 @ 76 Hz, 62.5 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]    85    1024 103
    s writeline "# 1152x864 @ 70 Hz, 62.4 kHz hsync"
    s writeline "Modeline  [dq]1152x864[dq]   92    1152 120
    s writeline "# 1280x1024 @ 61 Hz, 64.2 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  110    1280 132
  
    s writeline "# 1024x768 @ 85 Hz, 70.24 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]   98.9  1024 1056
    s writeline "# 1152x864 @ 78 Hz, 70.8 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   110   1152 1240
  
    s writeline "# 1280x1024 @ 70 Hz, 74.59 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  126.5 1280 1312
    s writeline "# 1600x1200 @ 60Hz, 75.00 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  162   1600 1664
    s writeline "# 1152x864 @ 84 Hz, 76.0 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   135    1152 146
  
    s writeline "# 1280x1024 @ 74 Hz, 78.85 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  135    1280 131
  
    s writeline "# 1024x768 @ 100Hz, 80.21 kHz hsync"
    s writeline "Modeline [dq]1024x768[dq]   115.5  1024 105
    s writeline "# 1280x1024 @ 76 Hz, 81.13 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  135    1280 131
  
    s writeline "# 1600x1200 @ 70 Hz, 87.50 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  189    1600 166
    s writeline "# 1152x864 @ 100 Hz, 89.62 kHz hsync"
    s writeline "Modeline [dq]1152x864[dq]   137.65 1152 118
    s writeline "# 1280x1024 @ 85 Hz, 91.15 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  157.5  1280 134
    s writeline "# 1600x1200 @ 75 Hz, 93.75 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  202.5  1600 166
    s writeline "# 1600x1200 @ 85 Hz, 105.77 kHz hsync"
    s writeline "Modeline [dq]1600x1200[dq]  220    1600 161
    s writeline "# 1280x1024 @ 100 Hz, 107.16 kHz hsync"
    s writeline "Modeline [dq]1280x1024[dq]  181.75 1280 131
  
    s writeline "# 1800x1440 @ 64Hz, 96.15 kHz hsync"
    s writeline "ModeLine [dq]1800X1440[dq]  230    1800 189
    s writeline "# 1800x1440 @ 70Hz, 104.52 kHz hsync"
    s writeline "ModeLine [dq]1800X1440[dq]  250    1800 189
  
    s writeline "# 512x384 @ 78 Hz, 31.50 kHz hsync"
    s writeline "Modeline [dq]512x384[dq]    20.160 512  528
    s writeline "# 512x384 @ 85 Hz, 34.38 kHz hsync"
    s writeline "Modeline [dq]512x384[dq]    22     512  528
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Device[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"video":"
  s writeline "  VendorName [dq]"+c:env:"hardware":"video":"
  s writeline "  BoardName [dq]"+c:env:"hardware":"video":"m
  # if c:env:"hardware":"screen":"constructor"="IBM" and c:e
  #   s writeline "  Clockchip [dq]ibm_rgb5xx[dq]"
  if c:env:"hardware":"video":"xfree86_chip_id"<>""
    s writeline "  ChipId "+c:env:"hardware":"video":"xfree8
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Screen[dq]"
  s writeline "  Driver [dq]"+(shunt c:env:"hardware":"video
  s writeline "  Device [dq]"+c:env:"hardware":"video":"cons
  s writeline "  Monitor [dq]"+c:env:"hardware":"screen":"co
  s writeline "  Subsection [dq]Display[dq]"
  s writeline "    Depth "+string:bpp
  s writeline "    Modes [dq]"+string:rx+"x"+string:ry+"[dq]
  s writeline "    ViewPort 0 0"
  s writeline "  EndSubsection"
  s writeline "EndSection"



  s open "target:/etc/X11/XF86Config" out+mkdir+safe
  
  if not (c:env:"hardware":"screen":"horizontal_resolution" 
    rx := 1024
  if not (c:env:"hardware":"screen":"vertical_resolution" pa
    ry := 768
  if not (c:env:"hardware":"video":"vram_mb" parse (var Int 
    vram := undefined
  if not (c:env:"hardware":"video":"bpp" parse (var Int bpp)
    bpp := 32
    bpp := 24
  
  if vram=defined
    if bpp=32 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt c:env:"hardware":"video":"can_do_24_bpp"=
    while bpp>8 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt bpp>16 16 8
  
  c "hardware" "screen" "horizontal_resolution" := string rx
  c "hardware" "screen" "vertical_resolution" := string ry
  c "hardware" "video" "bpp" := string bpp
  
  # small recommended extensions
  s writeline "Section [dq]Module[dq]"
  s writeline "  Load [dq]int10[dq]"
  s writeline "  Load [dq]dbe[dq]"
  s writeline "  Load [dq]record[dq]"
  s writeline "  Load [dq]glx[dq]"
  s writeline "  Load [dq]extmod[dq]"
  # s writeline "  SubSection [dq]extmod[dq]"
  # s writeline "    Option [dq]omit xfree86-dga[dq]"
  # s writeline "  EndSubSection"
  s writeline "  Load [dq]type1[dq]"
  s writeline "  Load [dq]freetype[dq]"
  # larger ones
  s writeline "  Load [dq]Glcore[dq]"
  # s writeline "  Load [dq]pex5[dq]"
  # s writeline "  Load [dq]xie[dq]"
  s writeline "EndSection"


  s writeline ""
  s writeline "Section [dq]InputDevice[dq]"
  s writeline "  Identifier [dq]Keyboard1[dq]"
  s writeline "  Driver [dq]Keyboard[dq]"
  s writeline "  Option [dq]AutoRepeat[dq] [dq]500 30[dq]"
  s writeline "  Option [dq]XkbRules[dq] [dq]xfree86[dq]"
  s writeline "  Option [dq]XkbModel[dq] [dq]pc101[dq]"
  var Str layout := c:env:"hardware":"keyboard":"xfree86_lay
  if layout=""
    layout := c:env:"hardware":"keyboard":"layout"
  if (layout parse any "(" any:(var Str layout0) ")" any)
    layout := layout0
  s writeline "  Option [dq]XkbLayout[dq] [dq]"+layout+"[dq]
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]InputDevice[dq]"
  s writeline "  Identifier [dq]Mouse1[dq]"
  s writeline "  Driver [dq]mouse[dq]"
  s writeline "  Option [dq]Protocol[dq] [dq]"+(shunt c:env:
  s writeline "  Option [dq]Device[dq] [dq]"+(file_os_name c
  if c:env:"hardware":"mouse":"button"="2"
    s writeline "  Option [dq]Emulate3Buttons[dq]"
    s writeline "  Option [dq]Emulate3Timeout[dq] [dq]50[dq]
  if (c:env:"hardware":"mouse":"resolution" parse (var Int r
    s writeline "  Option [dq]Resolution[dq] [dq]"+c:env:"ha
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Monitor[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"screen":
  s writeline "  HorizSync "+c:env:"hardware":"screen":"hori
  s writeline "  VertRefresh "+c:env:"hardware":"screen":"ve
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Device[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"video":"
  s writeline "  Driver [dq]"+c:env:"hardware":"video":"xfre
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Screen[dq]"
  s writeline "  Identifier [dq]Screen 1[dq]"
  s writeline "  Device [dq]"+c:env:"hardware":"video":"cons
  s writeline "  Monitor [dq]"+c:env:"hardware":"screen":"co
  s writeline "  DefaultDepth "+string:bpp
  s writeline "  Subsection [dq]Display[dq]"
  s writeline "    Depth "+string:bpp
  s writeline "    Modes [dq]"+string:rx+"x"+string:ry+"[dq]
  s writeline "    ViewPort 0 0"
  s writeline "  EndSubsection"
  
  if vram=defined
    if bpp=32 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt c:env:"hardware":"video":"can_do_24_bpp"=
    while bpp>8 and rx*ry*(bpp\8)>vram*2^20
      bpp := shunt bpp>16 16 8
  
  c "hardware" "screen" "horizontal_resolution" := string rx
  c "hardware" "screen" "vertical_resolution" := string ry
  c "hardware" "video" "bpp" := string bpp
  
  # small recommended extensions
  s writeline "Section [dq]Module[dq]"
  s writeline "  Load [dq]int10[dq]"
  s writeline "  Load [dq]dbe[dq]"
  s writeline "  Load [dq]record[dq]"
  s writeline "  Load [dq]glx[dq]"
  s writeline "  Load [dq]extmod[dq]"
  # s writeline "  SubSection [dq]extmod[dq]"
  # s writeline "    Option [dq]omit xfree86-dga[dq]"
  # s writeline "  EndSubSection"
  s writeline "  Load [dq]type1[dq]"
  s writeline "  Load [dq]freetype[dq]"
  # larger ones
  s writeline "  Load [dq]Glcore[dq]"
  # s writeline "  Load [dq]pex5[dq]"
  # s writeline "  Load [dq]xie[dq]"
  s writeline "EndSection"


  s writeline ""
  s writeline "Section [dq]InputDevice[dq]"
  s writeline "  Identifier [dq]Keyboard1[dq]"
  s writeline "  Driver [dq]Keyboard[dq]"
  s writeline "  Option [dq]AutoRepeat[dq] [dq]500 30[dq]"
  s writeline "  Option [dq]XkbRules[dq] [dq]xfree86[dq]"
  s writeline "  Option [dq]XkbModel[dq] [dq]pc101[dq]"
  var Str layout := c:env:"hardware":"keyboard":"xfree86_lay
  if layout=""
    layout := c:env:"hardware":"keyboard":"layout"
  if (layout parse any "(" any:(var Str layout0) ")" any)
    layout := layout0
  s writeline "  Option [dq]XkbLayout[dq] [dq]"+layout+"[dq]
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]InputDevice[dq]"
  s writeline "  Identifier [dq]Mouse1[dq]"
  s writeline "  Driver [dq]mouse[dq]"
  s writeline "  Option [dq]Protocol[dq] [dq]"+(shunt c:env:
  s writeline "  Option [dq]Device[dq] [dq]"+(file_os_name c
  if c:env:"hardware":"mouse":"button"="2"
    s writeline "  Option [dq]Emulate3Buttons[dq]"
    s writeline "  Option [dq]Emulate3Timeout[dq] [dq]50[dq]
  if (c:env:"hardware":"mouse":"resolution" parse (var Int r
    s writeline "  Option [dq]Resolution[dq] [dq]"+c:env:"ha
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Monitor[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"screen":
  s writeline "  HorizSync "+c:env:"hardware":"screen":"hori
  s writeline "  VertRefresh "+c:env:"hardware":"screen":"ve
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Device[dq]"
  s writeline "  Identifier [dq]"+c:env:"hardware":"video":"
  s writeline "  Driver [dq]"+c:env:"hardware":"video":"xfre
  s writeline "EndSection"
  
  s writeline ""
  s writeline "Section [dq]Screen[dq]"
  s writeline "  Identifier [dq]Screen 1[dq]"
  s writeline "  Device [dq]"+c:env:"hardware":"video":"cons
  s writeline "  Monitor [dq]"+c:env:"hardware":"screen":"co
  s writeline "  DefaultDepth "+string:bpp
  s writeline "  Subsection [dq]Display[dq]"
  s writeline "    Depth "+string:bpp
  s writeline "    Modes [dq]"+string:rx+"x"+string:ry+"[dq]
  s writeline "    ViewPort 0 0"
  s writeline "  EndSubsection"
  if false # bpp=24 or bpp=32
    s writeline "  Subsection [dq]Display[dq]"
    s writeline "    Depth "+(string 32+24-bpp)
    s writeline "    Modes [dq]"+string:rx+"x"+string:ry+"[dq]"
    s writeline "    ViewPort 0 0"
    s writeline "  EndSubsection"
  s writeline "EndSection"


  s menu "browser"
  s writeline "EndSection"


  s menu "browser"
  s application "Firefox" "/usr/bin/mozilla-firefox"
  s application "Firebird" "/usr/bin/mozilla-firebird"
  s application "mozilla"
  s application "firefox" # "Firefox" "/usr/lib/mozilla-firefox/firefox-bin"
  s application "mozilla" # "Mozilla" "/usr/lib/mozilla/mozilla-bin"
  s application "konqueror"
  s application "galeon"
  s application "Netscape 4" "/usr/lib/netscape/477/navigato
    
  s menu "htmleditor"
  s application "OpenOffice" "/usr/lib/openoffice/program/sw
  s application "mozilla"
  s application "quanta"
  s application "Amaya" "/usr/local/Amaya/LINUX-ELF/bin/amay
  
  s menu "wordprocessor"
  s application "OpenWriter" "/usr/lib/openoffice/program/sw
  s application "scribus"
  s application "abiword"
  s application "kword"
  s application "StarWriter" "/usr/local/staroffice/soffice"
    
  s menu "chart"
  s application "guppi"
  s application "StarChart" "/usr/local/staroffice/soffice"
  s application "kchart"
  
  s menu "spreadsheet"
  s application "OpenCalc" "/usr/lib/openoffice/program/scal
  s application "gnumeric"
  s application "kspread"
  s application "StarCalc" "/usr/local/staroffice/soffice"
  s blank_line
  s sub_menu "chart"
  
  s menu "image"
  s application "gimp"
  s application "StarImage" "/usr/local/staroffice/soffice"
  
  s menu "vector"
  s application "OpenDraw" "/usr/lib/openoffice/program/sdra
  s application "inkscape"
  s application "sketch"
  s application "karbon"
  s application "kontour"
  s application "StarDraw" "/usr/local/staroffice/soffice"
  s application "sodipodi"
  
  s menu "diagram"
  s application "dia"
  s application "kivio"
  
  s menu "presenter"
  s application "OpenImpress" "/usr/lib/openoffice/program/s
  s application "kpresenter"
  s application "StarImpress" "/usr/local/staroffice/soffice
  
  s menu "drawing"
  s sub_menu "image"
  s sub_menu "vector"
  s sub_menu "diagram"
  s sub_menu "presenter"
  
  s menu "database"
  s application "gaby"
  s application "StarBase" "/usr/local/staroffice/soffice"
  s application "knoda"
    
  s menu "texteditor"
  s application "kwrite"
  s application "kate"
  s application "tkdesk"
  s application "adie"
  
  s menu "filemanager"
  s application "konqueror"
  s application "tkdesk"
  s application "PathFinder"


  # /home/
  plugin home
    (var AsciiFile f) load "target:/etc/passwd"
    f set "root" ":" "root:*:0:0:root:/root:/bin/sh"
  s application "konqueror"
  s application "galeon"
  s application "Netscape 4" "/usr/lib/netscape/477/navigato
    
  s menu "htmleditor"
  s application "OpenOffice" "/usr/lib/openoffice/program/sw
  s application "mozilla"
  s application "quanta"
  s application "Amaya" "/usr/local/Amaya/LINUX-ELF/bin/amay
  
  s menu "wordprocessor"
  s application "OpenWriter" "/usr/lib/openoffice/program/sw
  s application "scribus"
  s application "abiword"
  s application "kword"
  s application "StarWriter" "/usr/local/staroffice/soffice"
    
  s menu "chart"
  s application "guppi"
  s application "StarChart" "/usr/local/staroffice/soffice"
  s application "kchart"
  
  s menu "spreadsheet"
  s application "OpenCalc" "/usr/lib/openoffice/program/scal
  s application "gnumeric"
  s application "kspread"
  s application "StarCalc" "/usr/local/staroffice/soffice"
  s blank_line
  s sub_menu "chart"
  
  s menu "image"
  s application "gimp"
  s application "StarImage" "/usr/local/staroffice/soffice"
  
  s menu "vector"
  s application "OpenDraw" "/usr/lib/openoffice/program/sdra
  s application "inkscape"
  s application "sketch"
  s application "karbon"
  s application "kontour"
  s application "StarDraw" "/usr/local/staroffice/soffice"
  s application "sodipodi"
  
  s menu "diagram"
  s application "dia"
  s application "kivio"
  
  s menu "presenter"
  s application "OpenImpress" "/usr/lib/openoffice/program/s
  s application "kpresenter"
  s application "StarImpress" "/usr/local/staroffice/soffice
  
  s menu "drawing"
  s sub_menu "image"
  s sub_menu "vector"
  s sub_menu "diagram"
  s sub_menu "presenter"
  
  s menu "database"
  s application "gaby"
  s application "StarBase" "/usr/local/staroffice/soffice"
  s application "knoda"
    
  s menu "texteditor"
  s application "kwrite"
  s application "kate"
  s application "tkdesk"
  s application "adie"
  
  s menu "filemanager"
  s application "konqueror"
  s application "tkdesk"
  s application "PathFinder"


  # /home/
  plugin home
    (var AsciiFile f) load "target:/etc/passwd"
    f set "root" ":" "root:*:0:0:root:/root:/bin/sh"
    unix_user "lp" 7 7 f
    unix_user "nobody" 65534 65534 f
    unix_user "me" 4096 100 f
    each u user
      if u:computer=fullname and u:uid=defined
        unix_user keyof:u u:uid 100 f
    f store


    unix_user "nobody" 65534 65534 f
    unix_user "me" 4096 100 f
    each u user
      if u:computer=fullname and u:uid=defined
        unix_user keyof:u u:uid 100 f
    f store


  # tkdesk
  plugin tkdesk
    (var AsciiFile pref) load "target:/home/me/.tkdesk/Popups"
    pref set_all "{{View (acroread)}" "" "{{View (xpdf)} {dsk_exec xpdf %s}}"
    pref store

  # xbiff2
  plugin xbiff2
    if c:env:"pliant":"mail":"pop3_provider"<>""
      (var AsciiFile rc) load "target:/home/me/.xbiff2rc"
      rc set "set Config(popserver)" "{" "set Config(popserv
      rc set "set Config(poplogin)" "{" "set Config(poplogin
      rc set "set Config(poppasswd)" "{" "set Config(poppass
      rc store


export embedded_configure
  # xbiff2
  plugin xbiff2
    if c:env:"pliant":"mail":"pop3_provider"<>""
      (var AsciiFile rc) load "target:/home/me/.xbiff2rc"
      rc set "set Config(popserver)" "{" "set Config(popserv
      rc set "set Config(poplogin)" "{" "set Config(poplogin
      rc set "set Config(poppasswd)" "{" "set Config(poppass
      rc store


export embedded_configure