I added some code to my monstrously mangled macro that I run that lets me do what you want. You'd need to mold it into something else like a
Lua script, hotkey (ick), or config files.
The actual command to toggle enhanced gamma is:
/notify AdvancedDisplayOptionsWindow ADOW_EnableLinearGammaCheckbox leftmouseup
You can also directly slide the gamma slider up and down , but I don't have that handy.
-----------------------------------------------------------------------
The code snippets are designed to be controlled over EQBC chat.
This sub is responsible for getting the desired gamma mode (M) which is saved in a file. It then compares that to the current mode and if they do not match, use /notify to toggle the state.
Sub CheckGamma
/if (!${Gamma}) /return
/declare M int ${Ini[gamma.ini,Zone,${Zone.ID},0]}
/declare V int 0
/if (${Window[AdvancedDisplayOptionsWindow/ADOW_EnableLinearGammaCheckbox].Checked}) /varset V 1
/if (${V}!=${M}) /notify AdvancedDisplayOptionsWindow ADOW_EnableLinearGammaCheckbox leftmouseup
|/echo CheckGamma: Set: ${M} Value: ${V}
/return
I have an Event for zoning. In this Sub I do a bunch of stuff and call CheckGamma for the new zone.
Sub Event_Zoned(string line)
|-- stuff
/if (${Gamma}) /call CheckGamma
/return
This section of code handles decoding the users input from EQBC chat. You can turn the feature ON | OFF | High | Low . After the command is processed call CheckGamma to make any actual changes.
/if ( ${c1.Equal[gamma]} ) {
/varset c2 ${Request.Arg[2," "].Lower}
/if (${c2.Equal[on]}) {
/varset Gamma 1
/call to_channel "setting Gamma ON"
}
/if (${c2.Equal[off]}) {
/varset Gamma 0
/call to_channel "setting Gamma OFF"
}
/if (${c2.Equal[high]}) {
/ini "gamma.ini" "Zone" "${Zone.ID}" 1
}
/if (${c2.Equal[low]}) {
/ini "gamma.ini" "Zone" "${Zone.ID}" 0
}
/call CheckGamma
}