Skip to content

Commit 04f83fb

Browse files
authored
Remove accountservice dependency (#835)
1 parent bdeace6 commit 04f83fb

5 files changed

Lines changed: 36 additions & 235 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

src/Cards/UserCard.vala

Lines changed: 30 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
1515
// TODO: In Gtk4 remove this gesture and move it to MainWindow
1616
public Gtk.GestureMultiPress click_gesture { get; private set; }
1717

18-
private Act.User act_user;
1918
private Pantheon.AccountsService greeter_act;
2019
private Pantheon.SettingsDaemon.AccountsService settings_act;
2120

@@ -26,8 +25,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
2625

2726
private SelectionCheck logged_in;
2827

29-
private bool needs_settings_set = false;
30-
3128
public UserCard (LightDM.User lightdm_user) {
3229
Object (lightdm_user: lightdm_user);
3330
}
@@ -43,38 +40,19 @@ public class Greeter.UserCard : Greeter.BaseCard {
4340
margin_end = 24,
4441
};
4542
username_label.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL);
43+
lightdm_user.bind_property ("is-locked", username_label, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
4644

4745
password_entry = new Greeter.PasswordEntry ();
46+
bind_property ("connecting", password_entry, "sensitive", INVERT_BOOLEAN);
4847

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

7552
var password_session_button = new Greeter.SessionButton () {
7653
vexpand = true
7754
};
55+
lightdm_user.bind_property ("is-locked", password_session_button, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
7856

7957
var password_grid = new Gtk.Grid () {
8058
column_spacing = 6,
@@ -92,6 +70,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
9270
var login_button_session_button = new Greeter.SessionButton () {
9371
vexpand = true
9472
};
73+
lightdm_user.bind_property ("is-locked", login_button_session_button, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);
9574

9675
var login_box = new Gtk.Box (HORIZONTAL, 6);
9776
login_box.add (login_button);
@@ -121,13 +100,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
121100
transition_type = SLIDE_DOWN,
122101
child = login_stack
123102
};
124-
125-
bind_property (
126-
"show-input",
127-
form_revealer,
128-
"reveal-child",
129-
SYNC_CREATE
130-
);
103+
bind_property ("show-input", form_revealer, "reveal-child", SYNC_CREATE);
131104

132105
main_box = new Gtk.Box (Gtk.Orientation.VERTICAL, 0) {
133106
margin_bottom = 48
@@ -181,13 +154,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
181154

182155
child = card_overlay;
183156

184-
act_user = Act.UserManager.get_default ().get_user (lightdm_user.name);
185-
act_user.bind_property ("locked", username_label, "sensitive", INVERT_BOOLEAN);
186-
act_user.bind_property ("locked", password_session_button, "visible", INVERT_BOOLEAN);
187-
act_user.bind_property ("locked", login_button_session_button, "visible", INVERT_BOOLEAN);
188-
act_user.notify["is-loaded"].connect (on_act_user_loaded);
189-
190-
on_act_user_loaded ();
157+
connect_to_dbus_interfaces ();
191158

192159
card_overlay.focus.connect ((direction) => {
193160
if (direction == LEFT) {
@@ -278,42 +245,32 @@ public class Greeter.UserCard : Greeter.BaseCard {
278245
}
279246
}
280247

281-
private void on_act_user_loaded () {
282-
if (!act_user.is_loaded) {
283-
return;
284-
}
285-
286-
unowned string? act_path = act_user.get_object_path ();
287-
if (act_path != null) {
288-
try {
289-
greeter_act = Bus.get_proxy_sync (
290-
SYSTEM,
291-
"org.freedesktop.Accounts",
292-
act_path,
293-
GET_INVALIDATED_PROPERTIES
294-
);
295-
296-
settings_act = Bus.get_proxy_sync (
297-
SYSTEM,
298-
"org.freedesktop.Accounts",
299-
act_path,
300-
GET_INVALIDATED_PROPERTIES
301-
);
302-
303-
is_24h = greeter_act.time_format != "12h";
304-
} catch (Error e) {
305-
critical (e.message);
306-
}
248+
private void connect_to_dbus_interfaces () {
249+
var account_path = "/org/freedesktop/Accounts/User%d".printf ((int )lightdm_user.uid);
250+
try {
251+
greeter_act = Bus.get_proxy_sync (
252+
SYSTEM,
253+
"org.freedesktop.Accounts",
254+
account_path,
255+
GET_INVALIDATED_PROPERTIES
256+
);
257+
258+
settings_act = Bus.get_proxy_sync (
259+
SYSTEM,
260+
"org.freedesktop.Accounts",
261+
account_path,
262+
GET_INVALIDATED_PROPERTIES
263+
);
264+
265+
is_24h = greeter_act.time_format != "12h";
266+
} catch (Error e) {
267+
critical (e.message);
307268
}
308269

309270
set_background_image ();
310271
set_check_style ();
311272

312-
if (needs_settings_set) {
313-
set_settings ();
314-
}
315-
316-
if (act_user.locked) {
273+
if (lightdm_user.is_locked) {
317274
login_stack.visible_child_name = "disabled";
318275
} else {
319276
if (need_password) {
@@ -346,11 +303,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
346303
}
347304

348305
public void set_settings () {
349-
if (!act_user.is_loaded) {
350-
needs_settings_set = true;
351-
return;
352-
}
353-
354306
set_keyboard_layouts ();
355307
set_mouse_touchpad_settings ();
356308
set_interface_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
)

vapi/accountsservice.vapi

Lines changed: 0 additions & 149 deletions
This file was deleted.

0 commit comments

Comments
 (0)