nixos-configs/modules/ags/config/greeter.ts

53 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-02-06 13:31:36 -05:00
const { idle } = Utils;
2024-02-05 12:00:25 -05:00
const greetd = await Service.import('greetd');
const name = Widget.Entry({
placeholder_text: 'Username',
on_accept: () => password.grab_focus(),
});
2024-02-05 12:00:25 -05:00
const password = Widget.Entry({
placeholder_text: 'Password',
visibility: false,
on_accept: () => {
2024-02-06 13:31:36 -05:00
greetd.login(
name.text || '',
password.text || '',
'Hyprland',
).catch((err) => {
response.label = JSON.stringify(err);
});
2024-02-05 12:00:25 -05:00
},
});
2024-02-05 12:00:25 -05:00
const response = Widget.Label();
2024-02-05 12:00:25 -05:00
const win = Widget.Window({
2024-02-06 13:31:36 -05:00
name: 'greeter',
2024-02-05 12:00:25 -05:00
css: 'background-color: transparent;',
anchor: ['top', 'left', 'right', 'bottom'],
2024-02-06 13:31:36 -05:00
keymode: 'exclusive',
setup: () => {
idle(() => {
password.grab_focus();
});
},
2024-02-05 12:00:25 -05:00
child: Widget.Box({
vertical: true,
hpack: 'center',
vpack: 'center',
hexpand: true,
vexpand: true,
children: [
name,
password,
response,
],
}),
});
export default { windows: [win] };