<div dir="ltr"><div><div><div><div><div>Hi Martin,<br><br></div>Using the sugar-backlight-helper with a polkit file to change the brightness file sounds like a very good idea.  That would significantly reduce the complexity of the change.<br><br></div>Please feel free to make the changes and send through a patch.<br><br></div>I will try and fix up the iconography issues.<br><br></div>Thanks,<br></div>Sam<br></div><br><div class="gmail_quote">On Wed, May 6, 2015 at 9:43 AM James Cameron <<a href="mailto:quozl@laptop.org">quozl@laptop.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for the research.<br>
<br>
On Tue, May 05, 2015 at 06:27:59PM -0400, Martin Abente wrote:<br>
> [...]<br>
> It would not be too difficult to re-implement the same mechanism for<br>
> Sugar. In fact I have re-implemented the exact same functionality<br>
> provided by "gsd-backlight-helper" in<br>
> Python.  <a href="https://github.com/tchx84/" target="_blank">https://github.com/tchx84/</a><br>
> sugar-backlight-helper/blob/master/sugar-backlight-helper.py<br>
<br>
Have to remove .py from the link.<br>
<br>
> @James, can you also give it a try?<br>
<br>
Worked fine for me on Ubuntu 14.04.2 on commodity hardware.  Small<br>
changes to README.md sent in pull request.<br>
<br>
> (this also works for the XO btw).<br>
<br>
Yes, and it will be useful for integration with the proposed frame<br>
device icon for the display.<br>
<br>
The F9 and F10 keys will continue to be intercepted by olpc-kbdshim.c,<br>
which calls olpc-brightness shell script in subprocess.<br>
<br>
However, a similar user experience with the audio device icon will<br>
occur, where the Sugar UI will ignore changes made by olpc-brightness.<br>
See #1677 and <a href="http://dev.laptop.org" target="_blank">dev.laptop.org</a> #9913.<br>
<br>
So Sugar will need a way to be informed of brightness changes made by<br>
other processes; which on commodity hardware will be brightness<br>
controls handled by other system programs, and on XO laptops will be<br>
olpc-kbdshim and powerd.<br>
<br>
To detect changes to a sysfs file; not sure how this is done, but for<br>
the time being we can read it occasionally.  To make that more<br>
efficient, I've added --get-path option to the helper.  See pull<br>
request #2.<br>
<br>
> Regarding the use of a separate tool to deal with permissions, I<br>
> wonder if GSD deliberately separated that tool to simplify the<br>
> integration with PolKit. The question is: should we do something<br>
> similar with sugar? I personally think is a valid option, but I<br>
> wonder if there is another way of using PolKit to grant permissions<br>
> directly to Sugar for writing to the device. I don't have much<br>
> experience with PolKit.<br>
<br>
Security design is that the program that needs the secure access<br>
should be as small as possible.<br>
<br>
Otherwise, you widen the attack vector to everything in Sugar shell.<br>
<br>
> @Sam, @James, if we think we can go this direction, I can will some<br>
> changes on top of Sam's previous work tomorrow.<br>
<br>
Adding sugar-backlight-helper to the sugar sources seems to be the<br>
right direction.  This adds a dependency on polkit, but you could make<br>
it a soft dependency and not install the helper if polkit is not<br>
available.<br>
<br>
--<br>
James Cameron<br>
<a href="http://quozl.linux.org.au/" target="_blank">http://quozl.linux.org.au/</a><br>
</blockquote></div>