是否有用于为Gnome 3设置用户个人资料图标/平铺图片的API?

时间:2011-11-20 21:14:46

标签: gnome gnome-3 gnome-shell

我正在尝试以编程方式为Gnome3 / GDM中的用户帐户设置Gnome 3 / GDM 3用户配置文件/平铺/面部图片。这是我第一次尝试Linux的简单程序,我不熟悉API,我的搜索产生的信息很少。似乎可以将数据写入.face文件,但这似乎没有生效(或者我的文件类型/规格可能是错误的)。我从this forum post发现信息存储在/ var / lib / AccountsService / users下的用户特定目录中,但是我希望我的程序以常规用户权限运行并且(直接)写入此文件需要提升权限(尽管没有特权的用户可以通过Gnome设置GUI为其帐户指定图像)。

理想情况下,我也希望对KDE / KDM和Gnome 2版本也这样做。任何信息将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

好的,这是我可以阐明的部分:

在任何Unix'y操作系统上,可以总是回退到GECOS字段更新功能putpwent。传统上,“真实姓名”是用户记录中GECOS字段的第一部分,直到第一个,。不同系统在,之后存储不同的扩展信息,包括部门名称,家庭和办公室电话号码等。

在Gnome 2中,“他们”曾经使用〜/ .face作为你的个人面部图标。但是,在各种情况下,一个用户无法查看另一个用户的主文件夹(包括root:网络文件系统,加密环回家等等),所以这在某些时候(我相信3.0)被放弃了赞成/ var / lib / AccountsService / icons / $ YOURNAMEHERE位置。

根据Gnome 3的精神,新系统(您最有可能想要使用的系统)是Accounts Services DBus服务。您可以通过DBus获取用户对象,并对其进行更改。界面为org.freedesktop.Accounts / org.freedesktop.Accounts.User,其中包含SetRealNameSetIconFile等方法。对于诸如位置,语言,电子邮件......等其他方法,还有一堆“其他方法”。

PS :您也可以使用libaccountsservice与其进行互动,而无需自行调用DBus。 EG:void act_user_set_real_name (ActUser *user, const char *real_name)void act_user_set_icon_file (ActUser *user, const char *icon_file)从该库中导出。

但是,我知道K(或K的哪个版本)可能正在查看此DBus服务。所以,如果你真的想设置K信息,恐怕我不知道......

对于它的价值,你也可以让用户自己调整

       gnome-control-center user-accounts