Hey, it seems that the brightness-level-on-{ac,battery} properties are stored as int and loaded as uint in settings/xfpm-settings.c val = xfconf_channel_get_uint (channel, PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, 80); if (!xfconf_channel_set_int (channel, PROPERTIES_PREFIX BRIGHTNESS_LEVEL_ON_AC, val) ) { g_critical ("Unable to set value %d for property %s\n", val, BRIGHTNESS_LEVEL_ON_AC); } Right now, when the property are changed, they are correctly saved in xfconf, but the xfconf_channel_get_uint() then fails and always return the default value (so 80% for AC and 20% for battery). Using xfconf_channel_get_int() instead fixes the problem, though it might be more consistent to use an uint since brightness can't be negative (but that means changing more stuff as it seems that not only the set()s are int.
Created attachment 3840 uses uint for brightness everywhere
Created attachment 3841 Missed some places
Created attachment 3842 accidently attached the old patch twice
*** Bug 8017 has been marked as a duplicate of this bug. ***
Applied in 6c96bfa.