Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- name: Install Dependencies
run: |
apt update
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
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
- name: Build
env:
DESTDIR: out
Expand All @@ -49,7 +49,7 @@ jobs:
- uses: actions/checkout@v5
- name: Install Dependencies
run: |
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
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
- name: Build
env:
DESTDIR: out
Expand All @@ -68,7 +68,7 @@ jobs:
run: |
zypper addrepo https://download.opensuse.org/repositories/X11:Pantheon/15.6/X11:Pantheon.repo
zypper --gpg-auto-import-keys refresh
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
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
- uses: actions/checkout@v5
- name: Build
env:
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@
You'll need the following dependencies:

* gnome-settings-daemon >= 3.27
* libaccountsservice-dev
* libgdk-pixbuf2.0-dev
* libgranite-dev >= 5.5.0
* libgtk-3-dev
* libhandy-1-dev >= 0.90.0
* liblightdm-gobject-1-dev
* liblightdm-gobject-1-dev >= 1.30.0
* libmutter-13-dev
* libx11-dev
* meson
Expand Down
108 changes: 30 additions & 78 deletions src/Cards/UserCard.vala
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
// TODO: In Gtk4 remove this gesture and move it to MainWindow
public Gtk.GestureMultiPress click_gesture { get; private set; }

private Act.User act_user;
private Pantheon.AccountsService greeter_act;
private Pantheon.SettingsDaemon.AccountsService settings_act;

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

private SelectionCheck logged_in;

private bool needs_settings_set = false;

public UserCard (LightDM.User lightdm_user) {
Object (lightdm_user: lightdm_user);
}
Expand All @@ -43,38 +40,19 @@ public class Greeter.UserCard : Greeter.BaseCard {
margin_end = 24,
};
username_label.get_style_context ().add_class (Granite.STYLE_CLASS_H2_LABEL);
lightdm_user.bind_property ("is-locked", username_label, "sensitive", SYNC_CREATE | INVERT_BOOLEAN);

password_entry = new Greeter.PasswordEntry ();
bind_property ("connecting", password_entry, "sensitive", INVERT_BOOLEAN);

bind_property (
"connecting",
password_entry,
"sensitive",
INVERT_BOOLEAN
);

var fingerprint_image = new Gtk.Image.from_icon_name (
"fingerprint-symbolic",
BUTTON
);

bind_property (
"use-fingerprint",
fingerprint_image,
"no-show-all",
INVERT_BOOLEAN | SYNC_CREATE
);

bind_property (
"use-fingerprint",
fingerprint_image,
"visible",
SYNC_CREATE
);
var fingerprint_image = new Gtk.Image.from_icon_name ("fingerprint-symbolic", BUTTON);
bind_property ("use-fingerprint", fingerprint_image, "no-show-all", SYNC_CREATE | INVERT_BOOLEAN);
bind_property ("use-fingerprint", fingerprint_image, "visible", SYNC_CREATE);

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

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

var login_box = new Gtk.Box (HORIZONTAL, 6);
login_box.add (login_button);
Expand Down Expand Up @@ -121,13 +100,7 @@ public class Greeter.UserCard : Greeter.BaseCard {
transition_type = SLIDE_DOWN,
child = login_stack
};

bind_property (
"show-input",
form_revealer,
"reveal-child",
SYNC_CREATE
);
bind_property ("show-input", form_revealer, "reveal-child", SYNC_CREATE);

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

child = card_overlay;

act_user = Act.UserManager.get_default ().get_user (lightdm_user.name);
act_user.bind_property ("locked", username_label, "sensitive", INVERT_BOOLEAN);
act_user.bind_property ("locked", password_session_button, "visible", INVERT_BOOLEAN);
act_user.bind_property ("locked", login_button_session_button, "visible", INVERT_BOOLEAN);
act_user.notify["is-loaded"].connect (on_act_user_loaded);

on_act_user_loaded ();
connect_to_dbus_interfaces ();

card_overlay.focus.connect ((direction) => {
if (direction == LEFT) {
Expand Down Expand Up @@ -278,42 +245,32 @@ public class Greeter.UserCard : Greeter.BaseCard {
}
}

private void on_act_user_loaded () {
if (!act_user.is_loaded) {
return;
}

unowned string? act_path = act_user.get_object_path ();
if (act_path != null) {
try {
greeter_act = Bus.get_proxy_sync (
SYSTEM,
"org.freedesktop.Accounts",
act_path,
GET_INVALIDATED_PROPERTIES
);

settings_act = Bus.get_proxy_sync (
SYSTEM,
"org.freedesktop.Accounts",
act_path,
GET_INVALIDATED_PROPERTIES
);

is_24h = greeter_act.time_format != "12h";
} catch (Error e) {
critical (e.message);
}
private void connect_to_dbus_interfaces () {
var account_path = "/org/freedesktop/Accounts/User%d".printf ((int )lightdm_user.uid);
try {
greeter_act = Bus.get_proxy_sync (
SYSTEM,
"org.freedesktop.Accounts",
account_path,
GET_INVALIDATED_PROPERTIES
);

settings_act = Bus.get_proxy_sync (
SYSTEM,
"org.freedesktop.Accounts",
account_path,
GET_INVALIDATED_PROPERTIES
);

is_24h = greeter_act.time_format != "12h";
} catch (Error e) {
critical (e.message);
}

set_background_image ();
set_check_style ();

if (needs_settings_set) {
set_settings ();
}

if (act_user.locked) {
if (lightdm_user.is_locked) {
login_stack.visible_child_name = "disabled";
} else {
if (need_password) {
Expand Down Expand Up @@ -346,11 +303,6 @@ public class Greeter.UserCard : Greeter.BaseCard {
}

public void set_settings () {
if (!act_user.is_loaded) {
needs_settings_set = true;
return;
}

set_keyboard_layouts ();
set_mouse_touchpad_settings ();
set_interface_settings ();
Expand Down
5 changes: 2 additions & 3 deletions src/meson.build
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
actservice_dep = dependency('accountsservice')
gobject_dep = dependency('gobject-2.0')
glib_dep = dependency('glib-2.0')
gdk_wl_dep = dependency('gdk-wayland-3.0')
Expand All @@ -7,7 +6,7 @@ gnome_desktop_dep = dependency('gnome-desktop-3.0')
gtk_dep = dependency('gtk+-3.0')
granite_dep = dependency('granite', version: '>= 5.5.0')
hdy_dep = dependency('libhandy-1', version: '>= 1.1.90')
lightdm_dep = dependency('liblightdm-gobject-1')
lightdm_dep = dependency('liblightdm-gobject-1', version: '>= 1.30.0')
m_dep = meson.get_compiler('c').find_library('m')
wl_client_dep = dependency('wayland-client')
x11_dep = dependency('x11')
Expand All @@ -32,7 +31,7 @@ executable(
'Widgets/PasswordEntry.vala',
'Widgets/SessionButton.vala',
config_header,
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 ],
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 ],
install : true,
install_dir: install_path
)
149 changes: 0 additions & 149 deletions vapi/accountsservice.vapi

This file was deleted.