-
Notifications
You must be signed in to change notification settings - Fork 0
/
myMain.conf
591 lines (503 loc) · 37.8 KB
/
myMain.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
#UNMENU_RELEASE $Revision$ $Date$
ADD_ON_REFRESH = 0
#=======================================================
#============== myMain Configuration File ==============
#=======================================================
# 1. DO NOT UPDATE THIS FILE UNLESS ABSOLUTELY NECESSARY. IT MAY BE OVERWRITTEN BY THE NEXT VERSION.
# 2. Instead, copy lines you want to modify to myMain_local.conf and make changes there. The local config file has priority.
# 3. Refer to the top of the myMain_local.conf for configuration instructions.
#---------------- VIEW DEFINITIONS ---------------------
#--------------------------------------------------------------------------
# Create the views for myMain. Several come predefined ... but feel free
# to add more or tweak these. Look at the Tokens and PseudoColumns defined
# later in this config file to see the column options.
#--------------------------------------------------------------------------
#SetView(name, options, collist)
# options: -------1 - display the total row. If set to zero, sorts apply to all rows but no total is shown.
# ------1- - gather performance data. Run bwm-ng a couple of times. Takes extra time.
# -----1-- - gather smart data. Run smartctl on EVERY drive. Takes extra time.
# ----1--- - gather temperature data (slows things down). Runs smartctl on every spun up drive. Take extra time.
# ---1----
# --1-----
# -1------ - Greenbar
# 1------- - Drop grid formatting / special fonts
SetView(default, 01001001, "_staticon disk dev _sname _autoid share reads writes errors disk_size disk_pctused disk_free usage tempc _spin _info myserver")
SetView(performance, 01001011, "_staticon disk dev _sname share RxSpeed TxSpeed reads writes errors disk_size disk_pctused disk_free usage tempc _spin _info")
SetView(quick, 01000001, "_staticon disk dev _sname share reads writes errors disk_size disk_pctused disk_free slot usage _spin _info")
SetView(vanilla, 10001001, "_status disk fullid tempc disk_size disk_free reads writes errors")
SetView(smart, 01000100, "_status _disk dev share _autoid smart_family smart_model smart_firmware smart_ata_ver smart_overall smart_fail_lst start_stop_count power_on_hours power_cycle_count airflow_temperature_cel temperature_celsius _spin _info")
SetView(inventory, 01000000, "_staticon slot disk dev partalign share manulogo modelname disk_size interface modelnum serial borndate purchdate usage myslots")
SetView(detail, 01000001, "_staticon disk share disk_size_1024c disk_free_1024c disk_pctused_raw disk_size_1000c disk_free_1000c")
SetView(adhoc, 01000001, "_staticon disk")
#----------------------------------------------------------------------------
# The default sort of any view (even it this column is not shown) is "num".
# This will show the array in the normal order. If you want to change the
# sort you can by defining a value of the view name with the word "sort"
# appended.
#----------------------------------------------------------------------------
SetConstant(inventorysort, "slot+num") # sets sort order for the inventory view
SetConstant(ImageHost, "") # e.g., "192.168.1.20"
#---------------- MANUAL DISK TOKENS ---------------------
#------------------------------------------------------------------------------
# These attributes are not available by automated means (except the modelname
# which is only available by running smartctl and then only for disks that are
# defined in the smartctl database). Feel free to add other tokens that you
# care about. You need to assign each value for each of your disks (see
# below).
#------------------------------------------------------------------------------
LoadToken(slot, slot, center, "Slot")
#LoadToken(id, id, center, "ID")
LoadToken(share, share, center, "Share")
LoadToken(interface, interface, center, "Interface")
LoadToken(modelname, modelname, left, "Model Name")
LoadToken(cache, cache, center, "Cache (MB)")
LoadToken(speed, speed, center, "RPM")
LoadToken(borndate_raw, borndate_raw, center, "Manufactured")
LoadToken(borndate, borndate_raw, center, "Manufactured")
LoadToken(purchdate_raw, purchdate_raw, center, "Purchased")
LoadToken(purchdate, purchdate_raw, center, "Purchased")
LoadToken(usage, usage, left, "Usage Notes")
LoadToken(mysize, mysize, center, "Size")
LoadToken(location, location, center, "Location")
LoadToken(mount, mount, center, "Mount")
LoadToken(store, store, center, "store")
LoadToken(invoice, invoice, left, "Invoice")
LoadToken(cost, cost, center, "Cost")
LoadToken(warranty, warranty, center, "Warranty (yrs)")
LoadToken(notes, notes, left, "Disk Notes")
LoadToken(partalign, partalign, center, "Align")
LoadToken(smartopt, smartopt, center, "Smart Option")
LoadToken(hpa, hpa, center, "HPA")
LoadToken(displayhpa, hpa, center, "HPA")
#---------------- SET DISK VALUES ---------------------
#--------------------------------------------------------------------
# You can define values for each of the manual disk tokens here. In
# addition, you can OVERRIDE system computed values. There are some
# some examples of this shown below.
#
# You can also set a special token called "smart_nospinup". Setting
# to 1 will allow temperature data to be read on spun down drives.
# It is intended to be set for drives (like the WDs) that don't spinup
# when running the smartctl command.
#
# Some smart attribute values are set and there is nothing you can do
# about them. (e.g., a reallocated sector.). Turning them yellow or
# red is of no value. You can accept these attributes by appending
# the string "_ok" to the end of a smart attribute and adding it for
# a disk. Set it equal to the "ok'ed" value. So if you okay 1
# reallocated sector, and another one happens, it will turn red again.
# There is an example below.
#
# It is also possible to adjust temperature values. For example, if a drive
# is reporting temps that are 4 degrees C colder than actual, you can tell
# myMAIN to automatically add 4 to the temperature setting for that drive.
# Name the attribute "temperature_celsius_delta".
#--------------------------------------------------------------------
#SetDriveValue(index, attribute, value) (index can be a serial number, md# (e.g., md1), or device (i.e., sda). Using the serial number is recommended.
#---------------- SYSTEM TOKENS ---------------------
#LoadToken(token, sortcolumn, colalign, colheader)
#--------------------------------------------------------------------------------
# Tokens are attributes that can be used as columns or PseudoColumns in views.
# These tokens are automatically available with myMain. You can change the
# column alignment, column headers, and even the sort field if you like.
# (If the sortcolumn is set to !, the column will not be sortable at all.)
#
# The sort column can list 2 columns with a + in between for multicolumn sorting.
#
# Be careful changing the order of the token rows. It is important that names that
# substrings of other strings come AFTER the longer string. (e.g., "status_raw" comes
# before "status").
#
# Note that the _raw flavors of columns are included for completeness, but
# normally those values are used for sorting purposes. They lack any
# formatting.
#--------------------------------------------------------------------------------
LoadToken(autoid, autoid, center, "ID")
LoadToken(serial, serial, left, "Serial #")
LoadToken(status_raw, status_raw, center, "St")
LoadToken(status, status, center, "St")
LoadToken(staticon, staticon, center, "St")
LoadToken(md, num, center, "MD")
LoadToken(dev, dev, center, "Dev")
LoadToken(reads_raw, reads_raw, right, "Reads")
LoadToken(reads, reads_raw, right, "Reads")
LoadToken(writes_raw, writes_raw, right, "Writes")
LoadToken(writes, writes_raw, right, "Writes")
LoadToken(errors, errors, center, "Err")
LoadToken(disk_size_1000c, disk_size_raw, right, "Size (000s)")
LoadToken(disk_size_1024c, disk_size_raw, right, "Size (k)")
LoadToken(disk_free_1000c, disk_free_raw, right, "Free (000s)")
LoadToken(disk_free_1024c, disk_free_raw, right, "Free (k)")
LoadToken(disk_used_1000c, disk_used_raw, right, "Used (000s)")
LoadToken(disk_used_1024c, disk_used_raw, right, "Used (k)")
LoadToken(disk_size, disk_size_raw, right, "Size")
LoadToken(disk_pctused_raw, disk_pctused_raw, center, "% Used")
LoadToken(disk_pctused, disk_pctused_raw, center, "% Used")
LoadToken(disk_free_raw, disk_free_raw, center, "Free")
LoadToken(disk_free, disk_free_raw, center, "Free")
LoadToken(disk_used_raw, disk_used_raw, center, "Used")
LoadToken(disk_used, disk_used_raw, center, "Used")
LoadToken(disk, num, center, "Disk")
LoadToken(spinstat, spinind, center, "Spin")
LoadToken(spinind, spinind, center, "Spin") #0 or 1
LoadToken(tempc, tempc, center, "Temp")
LoadToken(RxSpeed, RxSpeed_raw, center, "Read I/O")
LoadToken(TxSpeed, TxSpeed_raw, center, "Write I/O")
LoadToken(RxTxSpeed, RxTxSpeed_raw, center, "Disk I/O")
LoadToken(modelnum, modelnum, left, "Model")
LoadToken(manulogo, manu, center, "Manu")
LoadToken(manu, manu, center, "Manu")
LoadToken(role, role, center, "Role")
LoadToken(num, num, center, "Index")
LoadToken(fullid, fullid, left, "Drive Model & Serial #")
LoadToken(smart_family, smart_family, left, "Model Family")
LoadToken(smart_model, smart_model, left, "Device Model")
LoadToken(smart_firmware, smart_firmware, left, "Firmware")
LoadToken(smart_ata_ver, smart_ata_ver, center, "ATA")
LoadToken(smart_overall, smart_overall, center, "Overall")
LoadToken(filedate, filedate, left, "File Date")
LoadToken(file, file, left, "File")
LoadToken(myserver, !GRAPHIC, center, "My Server")
LoadToken(myslots, !GRAPHIC, center, "My Server")
#---------------- S.M.A.R.T. TOKENS ---------------------
#------------------------------------------------------------------------
# All the names of smart attributres (in lower case) are available to be
# tokens. These are the most common ones you might want to use.
#------------------------------------------------------------------------
LoadToken(start_stop_count, start_stop_count, center, "Start Stop Count")
LoadToken(reallocated_sector_ct, reallocated_sector_ct, center, "Realloc Sectors")
LoadToken(power_on_hours, power_on_hours, center, "Power on Hrs")
LoadToken(spin_retry_count, spin_retry_count, center, "Spin Retry Count")
LoadToken(power_cycle_count, power_cycle_count, center, "Power Cycle Count")
LoadToken(reported_uncorrect, reported_uncorrect, center, "Reported Uncorrect")
LoadToken(high_fly_writes, high_fly_writes, center, "Hi Fly Writes")
LoadToken(load_cycle_count, high_fly_writes, center, "Load Cycle Count")
LoadToken(airflow_temperature_cel, airflow_temperature_cel, center, "Air Temp (min/max)")
LoadToken(temperature_celsius, temperature_celsius, center, " Temp ")
LoadToken(current_pending_sector, current_pending_sector, center, "Pend Sectors")
LoadToken(offline_uncorrectable, offline_uncorrectable, center, "Offline Uncorrect")
LoadToken(udma_crc_error_count, udma_crc_error_count, center, "UDMA CRC Errors")
#----------------------------------------------------------------------------
# Displays a list of all smart errors and warnings (EXCEPT TEMPERATURE
# which should be shown as separate columns). It suppresses warnings
# displayed in other columns defined in the view. This is a great column to
# use as it elminates the need to display each smart attribute column you
# want to monitor for errors. The logic used for adding items to this list
# will be tweaked over time.
#---------------------------------------------------------------------------
LoadToken(smart_fail_lst, smart_fail_lst, left, "Add'l Issues/Failures")
#-------------------------------------------------------------------------
# The more detailed smart attributes are also available. Just define the
# tokens. Replace the "1" in the token with the attribute number you
# want. There would be a ton of them if you wanted to define them all!
#
# Note these are commented out by default. You should never need them.
#-------------------------------------------------------------------------
#LoadToken(smart_attr_1_name, smart_attr_1_name, left, "Attr Name")
#LoadToken(smart_attr_1_flag, smart_attr_1_flag, left, "Attr Flag (Raw Read Error Rate)")
#LoadToken(smart_attr_1_value, smart_attr_1_value, left, "Value (Raw Read Error Rate)")
#LoadToken(smart_attr_1_worst, smart_attr_1_worst, left, "Worst (Raw Read Error Rate)")
#LoadToken(smart_attr_1_thresh, smart_attr_1_thresh, left, "Thresh (Raw Read Error Rate)")
#LoadToken(smart_attr_1_type, smart_attr_1_type, left, "Type (Raw Read Error Rate)")
#LoadToken(smart_attr_1_updated, smart_attr_1_updated, left, "Updated (Raw Read Error Rate)")
#LoadToken(smart_attr_1_when_failed, smart_attr_1_when_failed, left, "When Failed (Raw Read Error Rate)")
#LoadToken(smart_attr_1_raw, smart_attr_1_raw, left, "Rawe (Raw Read Error Rate)")
#LoadToken(smart_attr_1_raw, smart_attr_1, left, "Raw Read Error Rate")
#---------------- PSEUDOCOLUMNS ---------------------
#------------------------------------------------------------------
# These are PseudoColumns that allow you to create hyperlinks and
# combination fields. You can freely add new ones. Note that you
# also need to LoadTokens for each PseudoColumn. PseudoColumns
# must begin with an underscore "_".
#
# The word "total" can be appended to the PseudoColumns name to
# define what happens in the total row.
# You can use the reserved strings MYMAIN and UTILITY inside of
# pseudocolumn definitions:
#
# MYMAINDD=myMain?sort=order&dev=%dev&disk=%disk
# MYMAIN=myMain?sort-order&disk=%disk
# UTILITYDD=utility?sort-order&dev=%dev&disk=%disk
# UTILITY=utility?sort-order&dev=%dev&disk=%disk
#------------------------------------------------------------------
LoadPseudoCol(_info, "<!--#IF NOBLANK(%reads_raw)--><a href=\"UTILITYDD&cmd=smartctl&smart=%smartopt&file=%file\" target=\"_blank\"><span title='Smart report'>sm</span></a> \
<a href=\"UTILITYDD&cmd=hdparm\" target=\"_blank\"><span title='hdparm drive information'>hd</span></a> \
<a href=\"UTILITYDD&cmd=syslogRobJ&style=%SyslogStyle\" target=\"_blank\"><span title='Syslog entries for disk'>sy</span></a> \
<a href=\"UTILITYDD&cmd=smarthistory\" target=\"_blank\"><span title='Smarthistory tool'>sh</span></a><!--#FI-->")
LoadPseudoCol(_infototal, "<a href=\"UTILITYDD&cmd=samba\" target=\"_blank\"><span title='Display Active Samba Configuration'>Smb</span></a> \
<a href=\"UTILITYDD&cmd=syslog&style=%SyslogStyle\" target=\"_blank\"><span title='Display Syslog'>Sy</span></a>")
LoadPseudoCol(_temp, "<a href=\"MYMAINDD&cmd=spin&temp=%tempc\">%tempc</a>")
LoadPseudoCol(_temptotal, "<a href=\"MYMAIN&cmd=spinupall\">Up</a> <a href=\"MYMAIN&cmd=spindownall\">Dn</a>")
LoadPseudoCol(_spin, "<a href=\"MYMAINDD&cmd=spin&spinind=%spinind\">%spinstat</a>")
LoadPseudoCol(_spintotal, "<a href=\"MYMAIN&cmd=spinupall\"><span title='Spin Up All Drives'>Up</span></a> <a href=\"MYMAIN&cmd=spindownall\"><span title='Spin Down All Drives'>Dn</span></a>")
LoadPseudoCol(_status, "<a href=\"MYMAINDD&cmd=highlight&color=yellow\">%status</a> %displayhpa")
LoadPseudoCol(_staticon, "<a href=\"MYMAINDD&cmd=highlight&color=yellow\">%staticon</a> %displayhpa")
LoadPseudoCol(_autoid, "<a href=\"MYCONFIGDD&mode=drive&serial=%serial&disk_size=%disk_size&disk=%disk&manu=%manu\" target='_blank'><span title='Click to Configure Disk'>%autoid</span></a>")
LoadPseudoCol(_disk, "%disk %filedate")
LoadPseudoCol(_sname, "%manu %disk_size") #simple short name columns combining the manufacturer and the disk size
LoadPseudoCol(_snamelogo, "%manulogo %disk_size") #simple short name columns combining the manufacturer and the disk size
LoadPseudoCol(_sdxmdx, "%dev (%md)")
LoadPseudoCol(_mdxsdx, "%md (%dev)")
LoadPseudoCol(_shareinfo, "<span title='%disk %dev'>%share</span>")
LoadToken(_info, !, center, "Info")
LoadToken(_temp, tempc, center, "Temp")
LoadToken(_spin, spinstat+num, center, "Spin")
LoadToken(_status, status, center, "St")
LoadToken(_staticon, staticon, center, "St")
LoadToken(_autoid, autoid, center, "Id")
LoadToken(_snamelogo, manu+disk_size_raw, left, "Type") #multicolumn sort
LoadToken(_sname, manu+disk_size_raw, left, "Type") #multicolumn sort
LoadToken(_sdxmdx, dev, center, "Dev (md)")
LoadToken(_mdxsdx, dev, center, "Md (dev)")
LoadToken(_disk, num, center, "Disk")
LoadToken(_shareinfo, share+num, center, "Share")
#---------------- GUI SETTINGS / OTHER CUSTOMIZATIONS ---------------------
SetConstant(SyslogStyle, 24) # First Digit-Bottom, Second Digit-Full Screen: 1=Font colors, 2=Font color (type in paren), 3=Background colors, 4=Background color (type in paren)
SetConstant(IdLen, 4) # number of digits for disk id (used in drive settings screen)
SetConstant(Permissive, 0) # Not permissive smart reports by default (set to 0 or 1)
# List of smart attributes to NOT show in the list of smart problems on the smart view
SetConstant(SmartIgnoreList, "~head_flying_hours~total_lbas_written~total_lbas_read~attribute_241~attribute_242~")
SetConstant(BulletHtml, "<b>»</b> ") # bullet used in smart_fail_lst
SetConstant(SortAscHtml, "<img src='%ImageURL%/stock/up.png' border='0' style='height:0.85em;'>")
SetConstant(SortDescHtml, "<img src='%ImageURL%/stock/down.png' border='0' style='height:0.9em;'>")
SetConstant(PassedHtml, "<img src='%ImageURL%/stock/status_ok.png' border='0' style='height:2.5em;' title='Overall health passed'>")
SetConstant(FailedHtml, "<img src='%ImageURL%/stock/status_dsbl.png' border='0' style='height:2.5em;' title='Overall health failed'>")
SetConstant(NetworkHtmlRec, "<img src='%ImageURL%/stock/bolt.png' border='0' style='height:1.5em;' title='Average network traffic received'>")
SetConstant(NetworkHtmlXmit, "<img src='%ImageURL%/stock/bolt.png' border='0' style='height:1.5em;' title='Average network traffic sent'>")
# URL constants for graphics
SetConstant(SpinHtml, "<img src='%ImageURL%/stock/spinning.gif' border='0' title='Spinning'>")
SetConstant(NospinHtml, "<span title='Not spinning'>—</span>") # long dash - shows drive is not spinning
SetConstant(ICON_BT, "<img src='%ImageURL%/stock/status_bt.gif' border='0' style='height:2em;' title='Boot disk'>")
SetConstant(ICON_MT, "<img src='%ImageURL%/stock/status_mt.gif' border='0' style='height:1.5em;' title='Mounted (non-array) Disk'>")
SetConstant(ICON_UN, "<img src='%ImageURL%/stock/status_un.gif' border='0' style='height:1.5em;' title='Unmounted (non-array) Disk'>")
SetConstant(ICON_CACHE, "<img src='%ImageURL%/stock/status_cache.png' border='0' style='height:2em;' title='Cache Disk'>")
SetConstant(ICON_RAW, "<img src='%ImageURL%/stock/status_raw.gif' border='0' style='height:2em;' title='Raw / Unpartitioned Disk'>")
SetConstant(ICON_NP, "<img src='%ImageURL%/stock/status_np.png' border='0' style='height:1.5em;' title='NP-No disk present, no disk configured'>")
SetConstant(ICON_OK, "<img src='%ImageURL%/stock/status_ok.png' border='0' style='height:1.5em;' title='OK-Good array disk'>")
SetConstant(ICON_NP_MISSING, "<img src='%ImageURL%/stock/status_np_missing.png' border='0' style='height:1.5em;' title='DANGER: Array Disk Missing or Simulated'>")
SetConstant(ICON_INVALID, "<img src='%ImageURL%/stock/status_invalid.png' border='0' style='height:2em;' title='INVALID-Invalid Disk (Rebuilding Disk)'>")
SetConstant(ICON_DSBL, "<img src='%ImageURL%/stock/status_dsbl.png' border='0' style='height:2em;' title='DSBL-Disabled, old disk still present'>")
SetConstant(ICON_DSBL_NP, "<img src='%ImageURL%/stock/status_dsbl_np.png' border='0' style='height:2em;'title='DSBL_NP-Disabled, no disk present'>")
SetConstant(ICON_DSBL_NEW, "<img src='%ImageURL%/stock/status_dsbl_new.png' border='0' style='height:2em;'title='DSBL_NEW-Disabled, new disk present'>")
SetConstant(ICON_WRONG, "<img src='%ImageURL%/stock/status_wrong.png' border='0' style='height:2em;' title='Disk in wrong slot, correct with unRAID GUI'>")
SetConstant(ICON_NEW, "<img src='%ImageURL%/stock/status_new.gif' border='0' style='height:2em;' title='NEW-New Disk'>")
SetConstant(ICON_PRECLEAR, "<img src='%ImageURL%/stock/preclear.png' border='0' style='height:2em;' title='Preclear Disk'>")
SetConstant(Refresh, "<img src='%ImageURL%/stock/refresh.png' border='0' style='height:1.52em;' title='Refresh'>")
SetConstant(RefreshAll, "<img src='%ImageURL%/stock/refreshall.png' border='0' style='height:1.52em;' title='Refresh with smart spinup (see all smart reports)'>")
SetConstant(RefreshRaw, "<img src='%ImageURL%/stock/refresh.png' border='0' style='height:1.52em;' title='Refresh Raw (ignore overrides)'>")
SetConstant(RefreshAllRaw, "<img src='%ImageURL%/stock/refreshall.png' border='0' style='height:1.52em;' title='Refresh with smart spinup raw (ignore overrides)'>")
SetConstant(RefreshQuick, "<img src='%ImageURL%/stock/refreshall.png' border='0' style='height:1.52em;' title='Refresh quickly (no requery temperature)'>")
SetConstant(SEAGATE, "<img src='%ImageURL%/stock/Seagate.png' border='0' style='height:1.25em;'>")
SetConstant(HITACHI, "<img src='%ImageURL%/stock/Hitachi.png' border='0' style='height:1em;'>")
SetConstant(SAMSUNG, "<img src='%ImageURL%/stock/Samsung.png' border='0' style='height:1em;'>")
SetConstant(MAXTOR, "<img src='%ImageURL%/stock/Maxtor.png' border='0' style='height:1em;'>")
SetConstant(WD, "<img src='%ImageURL%/stock/WD.png' border='0' style='height:1em;'>")
SetConstant(KINGSTON, "<img src='%ImageURL%/stock/Kingston.png' border='0' style='height:1.4em;'>")
SetConstant(HpaHtml, "<span title='Warning: Detected non-standard drive size - may contain an HPA. Set drive hpa_ok attribute to 1 to ignore.'>HPA?</span>")
#---------------------------------------------------------------------------
# There files are referenced in the images, not images/stock directory.
# Install will place a copy of the "_sample" versions from the stock
# directory, but you can overwrite it with your own, customized pictures.
# Vary the image width so that your picture is about the same height as the
# number of drives in your array.
#---------------------------------------------------------------------------
SetConstant(MYSERVER, "<img src='%ImageURL%/MyServer.jpg' border='0' width='150'>")
SetConstant(MYSLOTS, "<img src='%ImageURL%/MySlots.jpg' border='0' width='150'>")
SetConstant(MYMAINLOGO, "<img src='%ImageURL%/myMainLogo.jpg' border='0' width='150' title='myMain Plugin - Enjoy! ©bjp999, 2010. Click here to configure.'>")
#----------------------------------------------------------------------------
# Many of the smart attributes have a 0 value. It can make it harder to see
# the non-zero values. This setting lets you override the 0s with another
# string.
#----------------------------------------------------------------------------
SetConstant(ZeroSmartAttr, "—")
SetConstant(BlueTemp, 15) #if < this value
SetConstant(YellowTemp, 40) #if >= this value (Sorry to duplicate from unmenu.conf, but didn't want to parse that too)
SetConstant(OrangeTemp, 45) #if >= this value (Sorry to duplicate from unmenu.conf, but didn't want to parse that too)
SetConstant(RedTemp, 50) #if >= this value (Sorry to duplicate from unmenu.conf, but didn't want to parse that too)
SetConstant(DefaultColorHtml, "")
SetConstant(YellowHtml, "background:yellow")
SetConstant(OrangeHtml, "background:orange")
SetConstant(RedHtml, "background:red")
SetConstant(BlueHtml, "background:#00ffff")
SetConstant(ColorOverrideHtml, "background:#F8F8FF")
SetConstant(DefaultColorGBHtml, "background:#98FB98")
SetConstant(YellowGBHtml, "background:#CCFF33") # Colors mixed using http://www.colortools.net/color_combination.html
SetConstant(OrangeGBHtml, "background:#CCCC33")
SetConstant(RedGBHtml, "background:#CC6633")
SetConstant(BlueGBHtml, "background:#33FFCC")
SetConstant(ColorOverrideGBHtml, "background:#CCFFCC")
SetConstant(FullColorHtml, "color:red;font-weight:bold") #font used for "disk_pctused" if value is "full"
SetConstant(EmptyColorHtml, "color:blue; font-weight:bold") #font used for "disk_pctused" if value is "empty"
SetConstant(TotalColorHtml, "background:#7b68ee; color:White; font-weight:bold"); #font for "total" row
SetConstant(HeaderColorHtml, "background:#e0ffff") #html used for header row
#SetConstant(smartlogfolder, "/boot/unmenu/smartlog") #folder for extra smart logs to be shown on smart view
#-----------------------
# Used to check for HPA
#-----------------------
SetConstant(ValidPartitionSizes, "OCX30G=29313144,MX200G=199148512,200G=195360952,MX250G=245117344,MX300G=293057320,SG300G=293036152,320G=312571192,400G=390711352,500G=488385527,640G=625131832, \
8G=8257000,MX40G=40146592,60G=58615672,WD74G=72613024,80G=78150712,100G=93778744,M120G=117246496,WD120G=117220792,MX160G=160086496,160G=156290872, \
3T=2930266532,4T=3907018532,")
#----------------------------------------------------------------------------
# Define extra fileset to be loaded under the view. There are two flavors -
# one is to set up a hyperlink table, and the other is to provide a URL.
# You can define a "default" set like this ...
#----------------------------------------------------------------------------
#---------------------------------------------------------------------
# This makes the syslog tail of 10 lines show up as the default extra
# fieldset.
#---------------------------------------------------------------------
#SetConstant(extrafs1, "url=sys_log_tail?nl=10\"")
SetConstant(extrafs1, "syslog=normal,15")
#SetConstant(extrafs1, "syslog=highlighted,50\"")
#SetConstant(extrafs1, "syslog=errored,50\"")
#----------------------------------------------------------------------
# You can also setup view-specific settings that override the default.
# This defines 2 extra fieldsets for the "default" view.
#----------------------------------------------------------------------
#SetConstant(extrafsdefault1, "linkset=def")
#SetConstant(extrafsdefault2, "url=sys_log_tail?nl=10\"")
#-------------------------------------------------------
# This removes the default fieldset for the quick view.
#-------------------------------------------------------
SetConstant(extrafsquick1, "end") #do not use any extra fieldsets on the quick view
#----------------------------------------------------------------------------
# Here is a fancier one. It adds a url to the bottom of the smart view that
# explains each of the attributes. Unfortunately the technique results in
# positioning of the page at the top of the lower fieldset - so I added a
# feature to, after a configurable delay, that it will reposition to the
# top. If the delay is too short, however, it won't work.
#----------------------------------------------------------------------------
SetConstant(extrafssmart1, "url=http://en.wikipedia.org/wiki/Self-Monitoring,_Analysis,_and_Reporting_Technology#Known_ATA_S.M.A.R.T._attributes")
SetConstant(extrafssmart1height, "2350") #default is 500
SetConstant(extrafssmart1scroll, "yes") #default is "no" - "yes" doesn't seem to always work
SetConstant(extrafssmart1topms, 1000) #default is -1 = don't force to top
#----------------------------------------------------------------------
# Define the "def" hyperlink table (linkset=def). You can define more
# hyperlink tables.
#----------------------------------------------------------------------
SetConstant(defrows, 4);
SetConstant(deflink-0-0, "http://lime-technology.com/forum")
SetConstant(defname-0-0, "unRaid Forum")
SetConstant(deflink-1-0, "http://lime-technology.com/wiki/index.php?title=Troubleshooting")
SetConstant(defname-1-0, "TroubleShooting")
SetConstant(deflink-2-0, "http://lime-technology.com/wiki/index.php?title=FAQ")
SetConstant(defname-2-0, "unRaid FAQ")
SetConstant(deflink-3-0, "http://lime-technology.com/wiki/index.php?title=Best_of_the_Forums")
SetConstant(defname-3-0, "Best of the Forums")
SetConstant(deflink-0-1, "http://en.wikipedia.org/wiki/Self-Monitoring,_Analysis,_and_Reporting_Technology")
SetConstant(defname-0-1, "Smart Attributes Explained")
SetConstant(deflink-1-1, "http://www.linuxjournal.com/article/6983")
SetConstant(defname-1-1, "Smartctl Output Explained")
SetConstant(deflink-2-1, "http://www.tomshardware.com/reviews/hdd-terabyte-1tb,2077.html")
SetConstant(defname-2-1, "Winter 2008 Drive Guide")
SetConstant(deflink-3-1, "http://lime-technology.com/forum/index.php?topic=2135.msg15724#msg15724")
SetConstant(defname-3-1, "UnRaid Preventative Maint")
SetConstant(deflink-0-2, "http://www.newegg.com/Product/Product.aspx?Item=N82E16822136151")
SetConstant(defname-0-2, "Newegg WD 1T GP")
SetConstant(deflink-1-2, "http://www.newegg.com/Product/Product.aspx?Item=N82E16822148274")
SetConstant(defname-1-2, "Newegg Seagate 1T")
SetConstant(deflink-2-2, "http://www.newegg.com/Product/Product.aspx?Item=N82E16822148337")
SetConstant(defname-2-2, "Newegg Seagate 1.5T")
SetConstant(deflink-3-2, "http://www.newegg.com/Product/Product.aspx?Item=N82E16815121009")
SetConstant(defname-3-2, "Newegg SuperMicro PCI")
SetConstant(deflink-0-3, "http://www.google.com")
SetConstant(defname-0-3, "Google")
SetConstant(deflink-1-3, "http://www.yahoo.com")
SetConstant(defname-1-3, "Yahoo")
SetConstant(deflink-2-3, "http://www.amazon.com")
SetConstant(defname-2-3, "Amazon")
SetConstant(deflink-3-3, "http://www.ebay.com")
SetConstant(defname-3-3, "eBay")
SetConstant(deflink-0-4, "http://www.zipzoomfly.com/jsp/Home.jsp")
SetConstant(defname-0-4, "ZipZoomFly")
SetConstant(deflink-1-4, "http://shop4.outpost.com/")
SetConstant(defname-1-4, "Frys")
SetConstant(deflink-2-4, "http://www.monoprice.com/home/index.asp")
SetConstant(defname-2-4, "MonoPrice")
SetConstant(deflink-3-4, "http://www.jab-tech.com/120mm-Fans-c-81.html")
SetConstant(defname-3-4, "Jab-Tech")
LoadColDoc(_staticon, "Status graphic (see staticon) hyperlinked to highlight drive")
LoadColDoc(_status, "Status (see status) hyperlinked to highlight drive")
LoadColDoc(status_raw, "UnRaid reported disk status (e.g., 'DISK_OK')")
LoadColDoc(status, "UnRaid reported disk status, with 'DISK_ removed (e.g., 'OK')")
LoadColDoc(staticon, "Status icon based on unRaid disk status")
LoadColDoc(fullid, "UnRaid reported 'Model / Serial #'")
LoadColDoc(modelnum, "UnRaid reported disk model")
LoadColDoc(serial, "UnRaid reported disk serial number")
LoadColDoc(dev, "Linux device (e.g. 'sda')")
LoadColDoc(disk, "UnRaid disk# (e.g. 'disk3')")
LoadColDoc(_disk, "UnRaid disk# (e.g. 'disk3'). Used this one for smart view.");
LoadColDoc(md, "UnRaid md# (e.g. 'md1')")
LoadColDoc(partalign, "Partition alignment (63 or 64).")
LoadColDoc(smart, "Option to send to smartctl (default is '-d ata'")
LoadColDoc(HPA, "Host protected area (HPA) indication")
LoadColDoc(_sdxmdx, "Device (md#), e.g. 'sda (md3)'");
LoadColDoc(_mdxsdx, "Md# (device), e.g. 'md3 (sda)'");
LoadColDoc(manu, "Manufacturer name (user maintained)")
LoadColDoc(manulogo, "Graphic of manufacturer name")
LoadColDoc(_sname, "Short name (manufacturer and disk size)");
LoadColDoc(_snamelogo, "Short name (manufacturer graphic and disk size)");
LoadColDoc(share, "User entered list of user shares or custom Samba shares")
LoadColDoc(_shareinfo, "Like share but hover to see disk and Linux device")
LoadColDoc(role, "Disk role ('array disk', 'non-array disk', 'cache', 'boot')")
LoadColDoc(tempc, "Disk temperature in degrees C")
LoadColDoc(_temp, "Disk temperature in degrees C, hyperlinked to spinup/spindown drive");
LoadColDoc(slot, "User entered slot (physical location in server)")
LoadColDoc(_spin, "Spin graphic hyperlinked to spinup/spindown drive");
LoadColDoc(spinstat, "Spin graphic")
LoadColDoc(spinind, "Spin indicator (1=spinning, 0=not spinning)")
LoadColDoc(_autoid, "MyMain disk id hyperlinked to drive configuration screen")
LoadColDoc(autoid, "MyMain determined disk id (last digits of unRaid reported serial number)")
LoadColDoc(myserver, "Graphic of user's server")
LoadColDoc(myslots, "Graphic of user's slots")
LoadColDoc(_info, "Column with links to run various disk tools (smartctl, hdparm, etc.)")
LoadColDoc(num, "Disk number (0=parity, 1=disk1, etc.), used for default sorting")
LoadColDoc(interface, "User entered controller or interface (e.g., 'SAS', 'PCI', 'USB', 'MB')")
LoadColDoc(modelname, "User entered disk model (e.g., 'Barracuda LP', 'Caviar GP', 'Deskstar 7K2000')")
LoadColDoc(cache, "User entered disk cache size (in MB)")
LoadColDoc(borndate, "User entered date on disk sticker (e.g., '1/12/2010')")
LoadColDoc(purchdate, "User entered date purchase was made (e.g., '1/12/2010')")
LoadColDoc(location, "User entered disk location (e.g., 'unRaid', 'Sage', 'My Computer', 'shelf')")
LoadColDoc(mount, "User entered mount location (e.g., 'disk1', 'C:') - useful for unRaid disks being tracked in myMain")
LoadColDoc(store, "User entered store where disk was purchased (e.g., 'Newegg')")
LoadColDoc(invoice, "User entered invoice number")
LoadColDoc(cost, "User entered cost of drive")
LoadColDoc(warranty, "User entered warranty on drive in years")
LoadColDoc(usage, "User entered disk usage on drive")
LoadColDoc(notes, "User entered disk notes on drive")
LoadColDoc(reads, "UnRaid reported disk reads")
LoadColDoc(writes, "UnRaid reported disk writes")
LoadColDoc(errors, "UnRaid reported errors")
LoadColDoc(disk_size_1000c, "Disk size (1000 = 1K)")
LoadColDoc(disk_size_1024c, "Disk size (1024 = 1K)")
LoadColDoc(disk_free_1000c, "Disk free space (1000 = 1K)")
LoadColDoc(disk_free_1024c, "Disk free space (1024 = 1K)")
LoadColDoc(disk_used_1000c, "Disk used space (1000 = 1K)")
LoadColDoc(disk_used_1024c, "Disk used space (1024 = 1K)")
LoadColDoc(disk_size, "Disk size (e.g, '1T', '750G')")
LoadColDoc(disk_pctused, "Disk percent used")
LoadColDoc(disk_free, "Disk percent free")
LoadColDoc(disk_used, "Disk percent used")
LoadColDoc(mysize, "User entered disk size (needed for non-array disks being tracked by myMain), does not sum")
LoadColDoc(RxSpeed, "Disk read speed, with network receive speed in total line (from bwm-ng)")
LoadColDoc(TxSpeed, "Disk write speed, with network transmit speed in total line (from bwm-ng)")
LoadColDoc(RxTxSpeed, "Disk read/write speed (from bwm-ng)")
LoadColDoc(smart_family, "Smart reported - Drive Family")
LoadColDoc(smart_model, "Smart reported - Drive Model")
LoadColDoc(smart_firmware, "Smart reported - Drive firmware version")
LoadColDoc(smart_ata_ver, "Smart reported - Drive ATA version")
LoadColDoc(smart_overall, "Smart reported - Overall assessment")
LoadColDoc(start_stop_count, "Smart reported - Start Stop Count")
LoadColDoc(reallocated_sector_ct, "Smart reported - Reallocated Sectors")
LoadColDoc(power_on_hours, "Smart reported - Power on Hrs")
LoadColDoc(spin_retry_count, "Smart reported - Spin Retry Count")
LoadColDoc(power_cycle_count, "Smart reported - Power Cycle Count")
LoadColDoc(reported_uncorrect, "Smart reported - Reported Uncorrect")
LoadColDoc(high_fly_writes, "Smart reported - High Fly Writes")
LoadColDoc(load_cycle_count, "Smart reported - Load Cycle Count")
LoadColDoc(airflow_temperature_cel, "Smart reported - Airflow Temp (min/max)")
LoadColDoc(temperature_celsius, "Smart reported - Temperature Celsius")
LoadColDoc(current_pending_sector, "Smart reported - Current Pending Sectors")
LoadColDoc(offline_uncorrectable, "Smart reported - Offline Uncorrectable")
LoadColDoc(udma_crc_error_count, "Smart reported - UDMA CRC Errors")
LoadColDoc(smart_fail_lst, "Smart reported - Add'l Issues/Failures")