diff --git a/modules/ags/config/greeter.ts b/modules/ags/config/greeter.ts
index 2d0df2e2..aac71ab8 100644
--- a/modules/ags/config/greeter.ts
+++ b/modules/ags/config/greeter.ts
@@ -1,3 +1,4 @@
+const { idle } = Utils;
 const greetd = await Service.import('greetd');
 
 const name = Widget.Entry({
@@ -9,18 +10,31 @@ const password = Widget.Entry({
     placeholder_text: 'Password',
     visibility: false,
     on_accept: () => {
-        greetd.login(name.text || '', password.text || '', 'Hyprland')
-            .catch((err) => {
-                response.label = JSON.stringify(err);
-            });
+        greetd.login(
+            name.text || '',
+            password.text || '',
+            'Hyprland',
+
+        ).catch((err) => {
+            response.label = JSON.stringify(err);
+        });
     },
 });
 
 const response = Widget.Label();
 
 const win = Widget.Window({
+    name: 'greeter',
     css: 'background-color: transparent;',
     anchor: ['top', 'left', 'right', 'bottom'],
+    keymode: 'exclusive',
+
+    setup: () => {
+        idle(() => {
+            password.grab_focus();
+        });
+    },
+
     child: Widget.Box({
         vertical: true,
         hpack: 'center',