Skip to content

Commit 58131df

Browse files
authored
Merge branch 'main' into lenemter/move-focus
2 parents 31b7534 + ac6de86 commit 58131df

7 files changed

Lines changed: 68 additions & 265 deletions

File tree

.github/workflows/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- name: Install Dependencies
3232
run: |
3333
apt update
34-
apt install -y desktop-file-utils libaccountsservice-dev libgdk-pixbuf2.0-dev libgnome-desktop-3-dev libgranite-dev libgtk-3-dev libhandy-1-dev liblightdm-gobject-1-dev ${{ matrix.mutter_pkg }} libx11-dev meson valac
34+
apt install -y desktop-file-utils libgdk-pixbuf2.0-dev libgnome-desktop-3-dev libgranite-dev libgtk-3-dev libhandy-1-dev liblightdm-gobject-1-dev ${{ matrix.mutter_pkg }} libx11-dev meson valac
3535
- name: Build
3636
env:
3737
DESTDIR: out
@@ -49,7 +49,7 @@ jobs:
4949
- uses: actions/checkout@v5
5050
- name: Install Dependencies
5151
run: |
52-
dnf install -y desktop-file-utils accountsservice-devel gdk-pixbuf2-devel gnome-desktop3-devel granite-devel gtk3-devel libhandy-devel lightdm-gobject-devel mutter-devel libX11-devel meson valac
52+
dnf install -y desktop-file-utils gdk-pixbuf2-devel gnome-desktop3-devel granite-devel gtk3-devel libhandy-devel lightdm-gobject-devel mutter-devel libX11-devel meson valac
5353
- name: Build
5454
env:
5555
DESTDIR: out
@@ -68,7 +68,7 @@ jobs:
6868
run: |
6969
zypper addrepo https://download.opensuse.org/repositories/X11:Pantheon/15.6/X11:Pantheon.repo
7070
zypper --gpg-auto-import-keys refresh
71-
zypper --non-interactive install tar git desktop-file-utils accountsservice-devel gdk-pixbuf-devel libgnome-desktop-3-devel granite6-devel gtk3-devel libhandy-devel lightdm-gobject-devel mutter-devel meson vala gcc
71+
zypper --non-interactive install tar git desktop-file-utils gdk-pixbuf-devel libgnome-desktop-3-devel granite6-devel gtk3-devel libhandy-devel lightdm-gobject-devel mutter-devel meson vala gcc
7272
- uses: actions/checkout@v5
7373
- name: Build
7474
env:

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,11 @@
99
You'll need the following dependencies:
1010

1111
* gnome-settings-daemon >= 3.27
12-
* libaccountsservice-dev
1312
* libgdk-pixbuf2.0-dev
1413
* libgranite-dev >= 5.5.0
1514
* libgtk-3-dev
1615
* libhandy-1-dev >= 0.90.0
17-
* liblightdm-gobject-1-dev
16+
* liblightdm-gobject-1-dev >= 1.30.0
1817
* libmutter-13-dev
1918
* libx11-dev
2019
* meson

po/pt.po

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ msgstr ""
88
"Project-Id-Version: pantheon-greeter\n"
99
"Report-Msgid-Bugs-To: \n"
1010
"POT-Creation-Date: 2025-10-02 15:56+0000\n"
11-
"PO-Revision-Date: 2023-04-15 09:59+0000\n"
11+
"PO-Revision-Date: 2025-11-11 13:55+0000\n"
1212
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
13-
"Language-Team: Portuguese <https://l10n.elementary.io/projects/desktop/"
13+
"Language-Team: Portuguese <https://l10n.elementaryos.org/projects/desktop/"
1414
"greeter/pt/>\n"
1515
"Language: pt\n"
1616
"MIME-Version: 1.0\n"
1717
"Content-Type: text/plain; charset=UTF-8\n"
1818
"Content-Transfer-Encoding: 8bit\n"
1919
"Plural-Forms: nplurals=2; plural=n > 1;\n"
20-
"X-Generator: Weblate 4.16.4\n"
20+
"X-Generator: Weblate 5.11.4\n"
2121
"X-Launchpad-Export-Date: 2017-03-09 05:44+0000\n"
2222

2323
#: compositor/WindowManager.vala:337
@@ -41,11 +41,13 @@ msgstr "Usar definições anteriores"
4141

4242
#: src/Application.vala:127
4343
msgid "Classic session automatically selected"
44-
msgstr ""
44+
msgstr "Sessão clássica selecionada automaticamente"
4545

4646
#: src/Application.vala:128
4747
msgid "Accessibility features may be unavailable in the Secure session"
4848
msgstr ""
49+
"As funcionalidades de acessibilidade podem não estar disponíveis na sessão "
50+
"segura"
4951

5052
#: src/MainWindow.vala:44
5153
msgid "Log in as Guest"

src/Cards/UserCard.vala

Lines changed: 55 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
1212
// TODO: In Gtk4 remove this gesture and move it to MainWindow
1313
public Gtk.GestureMultiPress click_gesture { get; private set; }
1414

15-
private Act.User act_user;
1615
private Pantheon.AccountsService greeter_act;
1716
private Pantheon.SettingsDaemon.AccountsService settings_act;
1817

@@ -23,8 +22,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
2322

2423
private SelectionCheck logged_in;
2524

26-
private bool needs_settings_set = false;
27-
2825
public UserCard (LightDM.User lightdm_user) {
2926
Object (lightdm_user: lightdm_user);
3027
}
@@ -40,38 +37,19 @@ public class Greeter.UserCard : Greeter.BaseCard {
4037
margin_end = 24,
4138
};
4239
username_label.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL);
40+
lightdm_user.bind_property ("is-locked", username_label, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
4341

4442
password_entry = new Greeter.PasswordEntry ();
43+
bind_property ("connecting", password_entry, "sensitive", INVERT_BOOLEAN);
4544

46-
bind_property (
47-
"connecting",
48-
password_entry,
49-
"sensitive",
50-
INVERT_BOOLEAN
51-
);
52-
53-
var fingerprint_image = new Gtk.Image.from_icon_name (
54-
"fingerprint-symbolic",
55-
BUTTON
56-
);
57-
58-
bind_property (
59-
"use-fingerprint",
60-
fingerprint_image,
61-
"no-show-all",
62-
INVERT_BOOLEAN | SYNC_CREATE
63-
);
64-
65-
bind_property (
66-
"use-fingerprint",
67-
fingerprint_image,
68-
"visible",
69-
SYNC_CREATE
70-
);
45+
var fingerprint_image = new Gtk.Image.from_icon_name ("fingerprint-symbolic", BUTTON);
46+
bind_property ("use-fingerprint", fingerprint_image, "no-show-all", SYNC_CREATE | INVERT_BOOLEAN);
47+
bind_property ("use-fingerprint", fingerprint_image, "visible", SYNC_CREATE);
7148

7249
var password_session_button = new Greeter.SessionButton () {
7350
vexpand = true
7451
};
52+
lightdm_user.bind_property ("is-locked", password_session_button, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
7553

7654
var password_grid = new Gtk.Grid () {
7755
column_spacing = 6,
@@ -89,6 +67,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
8967
var login_button_session_button = new Greeter.SessionButton () {
9068
vexpand = true
9169
};
70+
lightdm_user.bind_property ("is-locked", login_button_session_button, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
9271

9372
var login_box = new Gtk.Box (HORIZONTAL, 6);
9473
login_box.add (login_button);
@@ -118,13 +97,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
11897
transition_type = SLIDE_DOWN,
11998
child = login_stack
12099
};
121-
122-
bind_property (
123-
"show-input",
124-
form_revealer,
125-
"reveal-child",
126-
SYNC_CREATE
127-
);
100+
bind_property ("show-input", form_revealer, "reveal-child", SYNC_CREATE);
128101

129102
main_box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0) {
130103
margin_bottom = 48
@@ -178,13 +151,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
178151

179152
child = card_overlay;
180153

181-
act_user = Act.UserManager.get_default ().get_user (lightdm_user.name);
182-
act_user.bind_property ("locked", username_label, "sensitive", INVERT_BOOLEAN);
183-
act_user.bind_property ("locked", password_session_button, "visible", INVERT_BOOLEAN);
184-
act_user.bind_property ("locked", login_button_session_button, "visible", INVERT_BOOLEAN);
185-
act_user.notify["is-loaded"].connect (on_act_user_loaded);
186-
187-
on_act_user_loaded ();
154+
connect_to_dbus_interfaces ();
188155

189156
click_gesture = new Gtk.GestureMultiPress (this);
190157

@@ -263,42 +230,32 @@ public class Greeter.UserCard : Greeter.BaseCard {
263230
}
264231
}
265232

266-
private void on_act_user_loaded () {
267-
if (!act_user.is_loaded) {
268-
return;
269-
}
270-
271-
unowned string? act_path = act_user.get_object_path ();
272-
if (act_path != null) {
273-
try {
274-
greeter_act = Bus.get_proxy_sync (
275-
SYSTEM,
276-
"org.freedesktop.Accounts",
277-
act_path,
278-
GET_INVALIDATED_PROPERTIES
279-
);
280-
281-
settings_act = Bus.get_proxy_sync (
282-
SYSTEM,
283-
"org.freedesktop.Accounts",
284-
act_path,
285-
GET_INVALIDATED_PROPERTIES
286-
);
287-
288-
is_24h = greeter_act.time_format != "12h";
289-
} catch (Error e) {
290-
critical (e.message);
291-
}
233+
private void connect_to_dbus_interfaces () {
234+
var account_path = "/org/freedesktop/Accounts/User%d".printf ((int )lightdm_user.uid);
235+
try {
236+
greeter_act = Bus.get_proxy_sync (
237+
SYSTEM,
238+
"org.freedesktop.Accounts",
239+
account_path,
240+
GET_INVALIDATED_PROPERTIES
241+
);
242+
243+
settings_act = Bus.get_proxy_sync (
244+
SYSTEM,
245+
"org.freedesktop.Accounts",
246+
account_path,
247+
GET_INVALIDATED_PROPERTIES
248+
);
249+
250+
is_24h = greeter_act.time_format != "12h";
251+
} catch (Error e) {
252+
critical (e.message);
292253
}
293254

294255
set_background_image ();
295256
set_check_style ();
296257

297-
if (needs_settings_set) {
298-
set_settings ();
299-
}
300-
301-
if (act_user.locked) {
258+
if (lightdm_user.is_locked) {
302259
login_stack.visible_child_name = "disabled";
303260
} else {
304261
if (need_password) {
@@ -331,11 +288,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
331288
}
332289

333290
public void set_settings () {
334-
if (!act_user.is_loaded) {
335-
needs_settings_set = true;
336-
return;
337-
}
338-
339291
set_keyboard_layouts ();
340292
set_mouse_touchpad_settings ();
341293
set_interface_settings ();
@@ -402,12 +354,12 @@ public class Greeter.UserCard : Greeter.BaseCard {
402354

403355
private void set_interface_settings () {
404356
var interface_settings = new GLib.Settings ("org.gnome.desktop.interface");
405-
interface_settings.set_value ("cursor-blink", settings_act.cursor_blink);
406-
interface_settings.set_value ("cursor-blink-time", settings_act.cursor_blink_time);
407-
interface_settings.set_value ("cursor-blink-timeout", settings_act.cursor_blink_timeout);
408-
interface_settings.set_value ("cursor-size", settings_act.cursor_size);
409-
interface_settings.set_value ("locate-pointer", settings_act.locate_pointer);
410-
interface_settings.set_value ("text-scaling-factor", settings_act.text_scaling_factor);
357+
interface_settings.set_boolean ("cursor-blink", settings_act.cursor_blink);
358+
interface_settings.set_int ("cursor-blink-time", settings_act.cursor_blink_time);
359+
interface_settings.set_int ("cursor-blink-timeout", settings_act.cursor_blink_timeout);
360+
interface_settings.set_int ("cursor-size", settings_act.cursor_size);
361+
interface_settings.set_boolean ("locate-pointer", settings_act.locate_pointer);
362+
interface_settings.set_double ("text-scaling-factor", settings_act.text_scaling_factor);
411363
set_or_reset_settings_key (interface_settings, "document-font-name", settings_act.document_font_name);
412364
set_or_reset_settings_key (interface_settings, "font-name", settings_act.font_name);
413365
set_or_reset_settings_key (interface_settings, "monospace-font-name", settings_act.monospace_font_name);
@@ -420,46 +372,45 @@ public class Greeter.UserCard : Greeter.BaseCard {
420372
settings_daemon_settings.set_value ("last-coordinates", coordinates);
421373

422374
settings_daemon_settings.set_enum ("prefer-dark-schedule", settings_act.prefer_dark_schedule);
423-
settings_daemon_settings.set_value ("prefer-dark-schedule-from", settings_act.prefer_dark_schedule_from);
424-
settings_daemon_settings.set_value ("prefer-dark-schedule-to", settings_act.prefer_dark_schedule_to);
375+
settings_daemon_settings.set_double ("prefer-dark-schedule-from", settings_act.prefer_dark_schedule_from);
376+
settings_daemon_settings.set_double ("prefer-dark-schedule-to", settings_act.prefer_dark_schedule_to);
425377

426378
var touchscreen_settings = new GLib.Settings ("org.gnome.settings-daemon.peripherals.touchscreen");
427379
touchscreen_settings.set_boolean ("orientation-lock", settings_act.orientation_lock);
428380

429381
var background_settings = new GLib.Settings ("org.gnome.desktop.background");
430-
if (lightdm_user.background != null) {
431-
background_settings.set_value ("picture-uri", lightdm_user.background);
432-
} else {
433-
background_settings.reset ("picture-uri");
434-
}
435-
436-
background_settings.set_value ("picture-options", settings_act.picture_options);
437-
background_settings.set_value ("primary-color", settings_act.primary_color);
382+
background_settings.set_enum ("picture-options", settings_act.picture_options);
383+
set_or_reset_settings_key (background_settings, "picture-uri", lightdm_user.background);
384+
set_or_reset_settings_key (background_settings, "primary-color", settings_act.primary_color);
438385
}
439386

440387
private void set_wingpanel_settings () {
441388
var wingpanel_schema = SettingsSchemaSource.get_default ().lookup ("io.elementary.desktop.wingpanel", true);
442-
if (wingpanel_schema == null || !wingpanel_schema.has_key ("use-transparency")) {
443-
return;
389+
if (wingpanel_schema != null && wingpanel_schema.has_key ("use-transparency")) {
390+
var wingpanel_settings = new GLib.Settings ("io.elementary.desktop.wingpanel");
391+
wingpanel_settings.set_boolean ("use-transparency", settings_act.wingpanel_use_transparency);
444392
}
445393

446-
var wingpanel_settings = new GLib.Settings ("io.elementary.desktop.wingpanel");
447-
wingpanel_settings.set_value ("use-transparency", settings_act.wingpanel_use_transparency);
394+
var wingpanel_power_schema = SettingsSchemaSource.get_default ().lookup ("io.elementary.desktop.wingpanel.power", true);
395+
if (wingpanel_power_schema != null && wingpanel_power_schema.has_key ("show-percentage")) {
396+
var wingpanel_power_settings = new GLib.Settings ("io.elementary.desktop.wingpanel.power");
397+
wingpanel_power_settings.set_boolean ("show-percentage", settings_act.wingpanel_show_percentage);
398+
}
448399
}
449400

450401
private void set_night_light_settings () {
451402
var night_light_settings = new GLib.Settings ("org.gnome.settings-daemon.plugins.color");
452-
night_light_settings.set_value ("night-light-enabled", settings_act.night_light_enabled);
403+
night_light_settings.set_boolean ("night-light-enabled", settings_act.night_light_enabled);
453404

454405
var latitude = new Variant.double (settings_act.last_coordinates.latitude);
455406
var longitude = new Variant.double (settings_act.last_coordinates.longitude);
456407
var coordinates = new Variant.tuple ({latitude, longitude});
457408
night_light_settings.set_value ("night-light-last-coordinates", coordinates);
458409

459-
night_light_settings.set_value ("night-light-schedule-automatic", settings_act.night_light_schedule_automatic);
460-
night_light_settings.set_value ("night-light-schedule-from", settings_act.night_light_schedule_from);
461-
night_light_settings.set_value ("night-light-schedule-to", settings_act.night_light_schedule_to);
462-
night_light_settings.set_value ("night-light-temperature", settings_act.night_light_temperature);
410+
night_light_settings.set_boolean ("night-light-schedule-automatic", settings_act.night_light_schedule_automatic);
411+
night_light_settings.set_double ("night-light-schedule-from", settings_act.night_light_schedule_from);
412+
night_light_settings.set_double ("night-light-schedule-to", settings_act.night_light_schedule_to);
413+
night_light_settings.set_uint ("night-light-temperature", settings_act.night_light_temperature);
463414
}
464415

465416
private void set_power_settings () {
@@ -472,7 +423,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
472423

473424
private void update_style () {
474425
var interface_settings = new GLib.Settings ("org.gnome.desktop.interface");
475-
interface_settings.set_value ("gtk-theme", "io.elementary.stylesheet." + accent_to_string (settings_act.accent_color));
426+
interface_settings.set_string ("gtk-theme", "io.elementary.stylesheet." + accent_to_string (settings_act.accent_color));
476427

477428
SettingsPortal.get_default ().prefers_color_scheme = greeter_act.prefers_color_scheme;
478429
}

src/PantheonAccountsServicePlugin.vala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ interface Pantheon.SettingsDaemon.AccountsService : Object {
6767

6868
/* Wingpanel */
6969
public abstract bool wingpanel_use_transparency { get; set; }
70+
public abstract bool wingpanel_show_percentage { get; set; }
7071

7172
/* Prefer Dark Schedule (part of interface settings)*/
7273
/* Last coordinates are reused for Night Light settings */

src/meson.build

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
actservice_dep = dependency('accountsservice')
21
gobject_dep = dependency('gobject-2.0')
32
glib_dep = dependency('glib-2.0')
43
gdk_wl_dep = dependency('gdk-wayland-3.0')
@@ -7,7 +6,7 @@ gnome_desktop_dep = dependency('gnome-desktop-3.0')
76
gtk_dep = dependency('gtk+-3.0')
87
granite_dep = dependency('granite', version: '>= 5.5.0')
98
hdy_dep = dependency('libhandy-1', version: '>= 1.1.90')
10-
lightdm_dep = dependency('liblightdm-gobject-1')
9+
lightdm_dep = dependency('liblightdm-gobject-1', version: '>= 1.30.0')
1110
m_dep = meson.get_compiler('c').find_library('m')
1211
wl_client_dep = dependency('wayland-client')
1312
x11_dep = dependency('x11')
@@ -32,7 +31,7 @@ executable(
3231
'Widgets/PasswordEntry.vala',
3332
'Widgets/SessionButton.vala',
3433
config_header,
35-
dependencies: [ actservice_dep, gobject_dep, glib_dep, gdk_wl_dep, gdk_x11_dep, gtk_dep, granite_dep, hdy_dep, lightdm_dep, m_dep, pantheon_desktop_shell_dep, wl_client_dep, x11_dep ],
34+
dependencies: [ gobject_dep, glib_dep, gdk_wl_dep, gdk_x11_dep, gtk_dep, granite_dep, hdy_dep, lightdm_dep, m_dep, pantheon_desktop_shell_dep, wl_client_dep, x11_dep ],
3635
install : true,
3736
install_dir: install_path
3837
)

0 commit comments

Comments
 (0)