View Single Post
Posts: 64 | Thanked: 74 times | Joined on Mar 2011 @ Bim
#199
Originally Posted by nicolai View Post
No, and the power menu is a totally different thing.
The profile buttons are controlled by the /etc/systemui/systemui.xml
file and it works as follows.
This entry controls the "silent" profile button:

<menuitem priority="300" name="powerup_memainmenu_silent" visible="general">
<keyfile>/home/user/.profiled/current</keyfile> <icon>statusarea_silent</icon> <return>8</return>
<po>osso-powerup-shutdown</po>
<callback service="com.nokia.profiled" path="/com/nokia/profiled" interface="com.nokia.profiled" method="set_profile" bus="session" autostart="true">
<argument type="string">silent</argument>
</callback>

</menuitem>

This button is visible, when the "visible" condition holds.
The value for this visible condition is read from the keyfile
/home/user/.profiled/current. When you change your profile,
the name of the new profile is written in this file.
The action for this button is the dbus call which changes to
silent profile.
So, that means, the "silent" profile button is visible when the
contents of your /home/user/.profiled/current is:
general
And the dbus-command is send when you press this button.
A similiar entry exists for the general profile button.

You can add extra entries for your own profiles,
but this is impractical if you use many profiles.

For example, you have a third profile "home" and you want to
have this in your power menu when the current profile is "silent",
then you need to add this entry:

<menuitem priority="200" name="home" visible="silent">
<keyfile>/home/user/.profiled/current</keyfile>
<icon>general_profile</icon>
<return>9</return>
<po>osso-powerup-shutdown</po>
<callback service="com.nokia.profiled" path="/com/nokia/profiled" interface="com.nokia.profiled" method="set_profile" bus="session" autostart="true">
<argument type="string">home</argument>
</callback>
</menuitem>

And if you want to have a button for your home profile when
the current profile is "general", you need to add another one:

<menuitem priority="200" name="home" visible="general">
<keyfile>/home/user/.profiled/current</keyfile>
<icon>general_profile</icon>
<return>9</return>
<po>osso-powerup-shutdown</po>
<callback service="com.nokia.profiled" path="/com/nokia/profiled" interface="com.nokia.profiled" method="set_profile" bus="session" autostart="true">
<argument type="string">home</argument>
</callback>
</menuitem>

And if you want to have the "silent" profile button when the
current one is "home":
<menuitem priority="200" name="powerup_memainmenu_silent" visible="home">
<keyfile>/home/user/.profiled/current</keyfile>
<icon>statusarea_silent</icon>
<return>9</return>
<po>osso-powerup-shutdown</po>
<callback service="com.nokia.profiled" path="/com/nokia/profiled" interface="com.nokia.profiled" method="set_profile" bus="session" autostart="true">
<argument type="string">silent</argument>
</callback>
</menuitem>

And for the "general" profile button.
<menuitem priority="200" name="powerup_memainmenu_general" visible="home">
<keyfile>/home/user/.profiled/current</keyfile>
<icon>general_profile</icon>
<return>9</return>
<po>osso-powerup-shutdown</po>
<callback service="com.nokia.profiled" path="/com/nokia/profiled" interface="com.nokia.profiled" method="set_profile" bus="session" autostart="true">
<argument type="string">general</argument>
</callback>
</menuitem>

And of course for every additional profile you have to
even more entries, this grows quadratic.
n*(n-1) entries, where n is the number of profiles :-)

Nicolai
Thanks for a great app

Would it be possible to replace the General/Silent power key menu button with one that calls the profile selector instead?
somewhat like when you hit profiles in the status menu