В gnome-shell много JavaScript, который уже написан для легкого повторного использования. Бонус, вы автоматически получите исправления ошибок и улучшения производительности, внесенные в код (если они произойдут).
Я бы порекомендовал вам повторно использовать или хотя бы посмотреть класс Avatar в ui / userWidget.js . Мало того, что код уже написан, но он поддерживает аватар в актуальном состоянии, и любая тема оболочки GNOME, имеющая собственные стили, вероятно, также будет работать автоматически.
Вы можете использовать этот класс так:
const UserWidget = imports.ui.userWidget;
let user = AccountsService.UserManager.get_default().get_user(username);
let avatar = new UserWidget.Avatar(user);
let boxicon = new St.BoxLayout();
// Notice that UserWidget.Avatar is a container class for the actual actor
boxicon.add_child(avatar.actor);
Есть также другие классы для метки имени пользователя и родительский класс, который объединяет их оба. Помните о классах или функциях с префиксом подчеркивания, например _doStuff()
, так как это обычный способ пометить вещи как «частные» или внутренние, и могут быть изменены без уведомления.
EDIT
Кроме того, если вы не используете или не ориентируетесь на последний выпуск, используйте выпадающее меню в GitLab, чтобы выбрать ветку для вашего выпуска, или просмотрите историю файла, чтобы увидеть, изменилось ли что-нибудь важное.