diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30c68c2..b4abead 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -160,6 +160,8 @@ if(FU_BUILD_AGENT)
src/agent/sessionlock.cpp
src/agent/lockscreencontroller.cpp
src/agent/wallpaper.cpp
+ src/agent/locktext.cpp
+ src/agent/lockpreview.cpp
src/agent/enrollcontroller.cpp
)
target_include_directories(face-unlock-agent PRIVATE src/agent)
@@ -176,7 +178,7 @@ if(FU_BUILD_AGENT)
# see each other (and the Theme singleton) without importing anything.
# Under /qt/qml, which the engine searches, or an installed agent finds no
# types (the build directory only works by its FaceUnlock/qmldir).
- set(FU_QML_FILES Theme FaceGlyph LockGlyph Checkmark Bubble TickRing Enroll PillButton LockScreen)
+ set(FU_QML_FILES Theme FaceGlyph LockGlyph Checkmark Bubble TickRing Enroll PillButton LockScreen LockChoice LockPreview)
foreach(f ${FU_QML_FILES})
set_source_files_properties(src/agent/qml/${f}.qml PROPERTIES QT_RESOURCE_ALIAS ${f}.qml)
endforeach()
@@ -199,6 +201,8 @@ if(FU_BUILD_AGENT)
src/agent/qml/Enroll.qml
src/agent/qml/PillButton.qml
src/agent/qml/LockScreen.qml
+ src/agent/qml/LockChoice.qml
+ src/agent/qml/LockPreview.qml
)
target_link_libraries(face-unlock-agent PRIVATE
@@ -242,6 +246,11 @@ if(FU_BUILD_TESTS)
target_link_libraries(test_wallpaper PRIVATE Qt6::Core)
add_test(NAME wallpaper COMMAND test_wallpaper)
+ add_executable(test_lockpreview tests/test_lockpreview.cpp src/agent/lockpreview.cpp)
+ target_include_directories(test_lockpreview PRIVATE src/agent)
+ target_link_libraries(test_lockpreview PRIVATE Qt6::Gui KF6::I18n)
+ add_test(NAME lockpreview COMMAND test_lockpreview)
+
add_executable(test_lockers tests/test_lockers.cpp src/agent/lockers.cpp)
target_include_directories(test_lockers PRIVATE src/agent)
target_link_libraries(test_lockers PRIVATE Qt6::Core)
diff --git a/README.md b/README.md
index 38a5948..95d0184 100644
--- a/README.md
+++ b/README.md
@@ -74,23 +74,33 @@ desktops, on Wayland:
|---|---|---|---|
| KDE Plasma 6 | ✅ | ✅ | ✅ above the lock screen too |
| GNOME | ✅ | ✅ | ✅ above the lock screen too |
-| Hyprland | ✅ hyprlock, swaylock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too |
-| Niri | ✅ swaylock, hyprlock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too |
+| Hyprland | ✅ hyprlock, swaylock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too, as a line of text in hyprlock |
+| Niri | ✅ swaylock, hyprlock, gtklock, waylock, or face-unlock's own | ✅ | ✅ on face-unlock's own lock screen too, as a line of text in hyprlock |
On GNOME a small GNOME extension draws the bubble. Turning face unlock on
switches it on; right after installing, log out and back in once.
-On Hyprland and Niri the lock screen is a program of your choice, and only it
-can open itself. So face-unlock goes into its password check, as with sudo:
-press Enter on the empty password field to scan. hyprlock and swaylock also
-scan by themselves when you come back, and so does gtklock after 4.0.0 (the
-first to open from outside). Those lock screens cover the bubble, which shows
-the tick once they are gone. gtklock shows face unlock's messages.
+On Hyprland and Niri the lock screen is a program of your choice. When you
+turn face unlock on, a window shows your screen both ways and asks which you
+want: face-unlock's lock screen with your wallpaper, or yours, rebuilt from its
+config. You can change it later under **Settings**.
-For the bubble on the lock screen, use face-unlock's own: `face-unlock lock`.
-It shows the wallpaper of your desktop (from swaybg, awww, hyprpaper or
-wpaperd). Under **Settings** you can pick a picture instead, or a folder to take
-one from at random, blurred if you like.
+
+
+
+
+- **face-unlock's lock screen**, with the bubble, the time and the wallpaper of
+ your desktop (from swaybg, awww, hyprpaper or wpaperd). You lock with
+ `face-unlock lock`, and the menu shows where to put that. Under **Settings**
+ you can pick a picture instead, or a folder to take one from at random,
+ blurred if you like.
+- **Keep your lock screen.** Only it can open itself, so face-unlock goes into
+ its password check, as with sudo: press Enter on the empty password field to
+ scan. hyprlock and swaylock also scan by themselves when you come back, and
+ so does gtklock after 4.0.0 (the first to open from outside). They cover the
+ bubble, but hyprlock shows what face unlock is doing as a line of text at the
+ top (face-unlock adds that line to your `hyprlock.conf`), and gtklock shows
+ its messages. swaylock and waylock have no way to show them.
Admin prompts and setting up a face need a polkit agent there (for example
hyprpolkitagent). Hyprland without uwsm does not start the part that watches
diff --git a/doc/face-unlock.1.scd b/doc/face-unlock.1.scd
index da015d3..facc74c 100644
--- a/doc/face-unlock.1.scd
+++ b/doc/face-unlock.1.scd
@@ -247,8 +247,16 @@ so does the bubble, above the lock screen too.
sets *LockedHint*), scans when somebody comes back, and opens them with
SIGUSR1. It only does so once the lock screen handles SIGUSR1: before
it has locked, the signal would kill it. Those lock screens cover the
- bubble, which shows the tick once they are gone. gtklock shows the
- messages of the PAM module.
+ bubble. hyprlock shows it as a line of text instead: a label in
+ _~/.config/hypr/hyprlock.conf_ (a *source* line under a face-unlock
+ comment) reads what the agent writes, and SIGUSR2 makes hyprlock read
+ it again. gtklock shows the messages of the PAM module; swaylock and
+ waylock show none.
+
+ *enable* asks once in a window which way to go: face-unlock's lock
+ screen, or the user's own with that line of text. The window shows the
+ screen both ways, the user's own rebuilt from the config of hyprlock or
+ swaylock. *Which lock screen* under *Settings* opens it again.
For the bubble on the lock screen there is face-unlock's own: *lock*.
It shows the time, a password field (PAM service _face-unlock-lock_
@@ -336,6 +344,13 @@ _$XDG_RUNTIME_DIR/face-unlock/agent.socket_
_$XDG_RUNTIME_DIR/face-unlock/locked_
There while face-unlock's own lock screen is up.
+_$XDG_RUNTIME_DIR/face-unlock/lock-text_
+ What hyprlock shows at the top when the user keeps their own lock
+ screen.
+
+_~/.config/face-unlock/hyprlock.conf_
+ The label for that, which _~/.config/hypr/hyprlock.conf_ sources.
+
_/usr/share/gnome-shell/extensions/face-unlock@loonixtools.github.io/_
The GNOME Shell extension that draws the bubble on GNOME.
diff --git a/po/de.po b/po/de.po
index a4461b5..f52f476 100644
--- a/po/de.po
+++ b/po/de.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.0\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-23 22:32+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: German\n"
@@ -59,8 +59,9 @@ msgstr "Es wurde kein Gesicht hinzugefügt."
msgid "First, set up your face."
msgstr "Richte zuerst dein Gesicht ein."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Einstellung konnte nicht gespeichert werden."
@@ -84,7 +85,16 @@ msgstr ""
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Melde dich einmal ab und wieder an: dann zeigt GNOME die Bubble auch."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Wähle deinen Sperrbildschirm im Fenster."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+"Kein Sperrbildschirm gewählt. Das geht später auch unter Einstellungen."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -93,102 +103,102 @@ msgstr ""
"Der Sperrbildschirm (%s) nimmt dein Gesicht auch. Scannt er nicht, wenn du "
"zurückkommst, drück Enter im leeren Passwortfeld."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Die Gesichtsentsperrung ist an. Sperre den Bildschirm und schau ihn an, um "
"es auszuprobieren."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Sie kann auch sudo und Admin-Abfragen übernehmen. Siehe Einstellungen."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Die Gesichtsentsperrung ist aus. Deine Gesichter bleiben erhalten; löschen "
"kannst du sie unter Gesichter."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Es ist noch kein Gesicht eingerichtet."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "an"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "aus"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s Aufnahmen, %s dazugelernt"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Welches Gesicht? Die IDs zeigt `%s faces`."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Gelöscht."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Aufruf: face-unlock [Befehl]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Befehle:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Gesichtsentsperrung einschalten"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Ausschalten (Gesichter bleiben erhalten)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Gesicht hinzufügen"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Gesichter auflisten"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Ein Gesicht löschen"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "In die Kamera schauen und sehen, was sie sieht"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Bildschirm sperren"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Anzeigen, was eingeschaltet ist"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Diese Hilfe anzeigen"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Die Version anzeigen"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Ohne Befehl wird ein interaktives Menü angezeigt."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -196,42 +206,42 @@ msgstr ""
"Starte das als dein eigener Benutzer, nicht als root. Wenn nötig, wird nach "
"deinem Passwort gefragt."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Unbekannter Befehl: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "nie"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "gerade eben"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "vor 1 Minute"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "vor %d Minuten"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "vor 1 Stunde"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "vor %d Stunden"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "vor 1 Tag"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "vor %d Tagen"
@@ -271,7 +281,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Die Kamera konnte nicht benutzt werden."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Die Erkennungsmodelle fehlen. Installiere das Paket neu."
@@ -375,11 +385,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[j/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "AN"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "AUS"
@@ -420,85 +430,93 @@ msgstr "langsam"
msgid "%s seconds"
msgstr "%s Sekunden"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automatisch"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "deiner"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Gesichtsentsperrung"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Dienst"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "läuft nicht"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Die Gesichtsentsperrung erneut einzuschalten startet ihn."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Gesichter"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "noch keins eingerichtet"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "alle ausgeschaltet"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "keine gefunden"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Kamera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Sperrbildschirm"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Admin-Abfragen"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Sperrbildschirme"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Foto-Prüfung"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Pausiert"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "noch %d Minuten, oder bis das Passwort benutzt wird"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Letzte Entsperrung"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "Der Sperrbildschirm-Dienst läuft nicht."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -506,7 +524,7 @@ msgstr ""
"Unter GNOME zeigt eine kleine GNOME-Erweiterung die Bubble. Beim Einschalten "
"der Gesichtsentsperrung wird sie mit eingeschaltet."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -516,7 +534,7 @@ msgstr ""
"unlock zurückkommst (`face-unlock lock`, mit der Bubble), und öffnet sie. "
"Andere Sperrbildschirme scannen mit Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -524,7 +542,7 @@ msgstr ""
"Entsperrt den Sperrbildschirm, wenn er dein Gesicht sieht. Aus: Dort geht "
"nur dein Passwort."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -532,7 +550,7 @@ msgstr ""
"Scannt, wenn du auf dem Sperrbildschirm eine Taste drückst oder die Maus "
"bewegst, und wenn der Computer aufwacht."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -540,7 +558,7 @@ msgstr ""
"Scannt, sobald der Bildschirm gesperrt wird. Normalerweise aus: Sperrst du "
"selbst, würde er gleich wieder entsperren."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -548,7 +566,17 @@ msgstr ""
"sudo nimmt dein Gesicht statt des Passworts. Passt es nicht, tippst du wie "
"gewohnt dein Passwort."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"Der Sperrbildschirm von face-unlock zeigt die Bubble, und du sperrst mit "
+"`face-unlock lock`. Oder behalte deinen: hyprlock zeigt dann oben eine "
+"Textzeile. Enter öffnet die Auswahl."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -558,11 +586,11 @@ msgstr ""
"Leer: das von deinem Desktop. Oder eine Datei, ein Ordner, aus dem zufällig "
"eins genommen wird, oder `none`. Enter zum Eintippen."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Zeichnet das Bild hinter dem Sperrbildschirm von face-unlock weich."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -571,7 +599,7 @@ msgstr ""
"Der Sperrbildschirm nimmt dein Gesicht in seiner Passwortprüfung. Drück "
"Enter im leeren Feld für einen Scan. Hier gefunden: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -579,18 +607,18 @@ msgstr ""
"Die Passwort-Fenster deines Desktops und von Apps, zum Beispiel beim "
"Installieren. Passt das Gesicht nicht, tippst du dein Passwort."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Du musst blinzeln oder den Kopf leicht drehen. Das hält auch ausgedruckte "
"Fotos auf."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Keine Prüfung. Nur zum Ausprobieren einer Kamera."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -598,22 +626,22 @@ msgstr ""
"Hält Fotos auf Handy, Tablet oder Hochglanzpapier auf. Blinzeln ist nicht "
"nötig. Ein matter Ausdruck kann durchkommen."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Seltener Verwechslungen, aber mit Brille oder bei schlechtem Licht erkennt "
"es dich vielleicht nicht."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Erkennt dich leichter, aber auch jemanden, der dir sehr ähnlich sieht."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "Der Standard. Passt für die meisten."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -621,7 +649,7 @@ msgstr ""
"Deine Augen müssen offen sein und auf den Bildschirm schauen. So entsperrt "
"es nicht, wenn du wegschaust oder schläfst."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -630,11 +658,11 @@ msgstr ""
"neu einrichten. Eine Infrarot-Kamera braucht ihr Licht (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Wie lange die Kamera nach deinem Gesicht sucht, bevor sie aufgibt."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -642,7 +670,7 @@ msgstr ""
"Nach einem sicheren Treffer merkt es sich, wie du gerade aussiehst. So musst "
"du nach neuer Frisur oder Brille nichts neu einrichten."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -650,99 +678,99 @@ msgstr ""
"Kein Scan bei zugeklapptem Laptop, zum Beispiel am Schreibtisch mit externem "
"Bildschirm."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Die Bubble oben am Bildschirm zeigt, was die Kamera gerade macht."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Eine kleine Pille mit einem Schloss, das aufgeht."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr ""
"Eine Insel mit einem Gesicht, das sich umschaut, danach Ringe und ein Haken."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Wie schnell sich die Bubble bewegt."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Zeigt die Bubble auch, wenn sudo oder eine Admin-Abfrage dein Gesicht scannt."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automatisch (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(Infrarot)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(nicht angeschlossen)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "wie Desktop"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "keins"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Bild oder Ordner:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Nicht gefunden: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Einstellungen"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ auswählen ←→ oder Leertaste: ändern q: zurück"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "für alle Nutzer, fragt nach deinem Passwort"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Hoch/Runter: wählen, Leertaste: an/aus, r: umbenennen, d: löschen, a: "
"hinzufügen, q: zurück"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Es ist noch kein Gesicht eingerichtet. Drück a, um eins hinzuzufügen."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Neuer Name:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "„%s“ löschen?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Gesichtsentsperrung ein- oder ausschalten"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Ausprobieren"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Beenden"
@@ -791,6 +819,53 @@ msgstr ""
"Hyprland startet den Sperrbildschirm-Dienst nicht von selbst. Füge das in %s "
"ein:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Um damit zu sperren, trag das in %s ein und setze %s in %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Um damit zu sperren, trag das bei den binds in %s ein und nutze %s in "
+"swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Um damit zu sperren, starte %s dort, wo jetzt dein Sperrbildschirm startet."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Du sperrst jetzt mit dem Sperrbildschirm von face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock zeigt oben, was face unlock gerade tut, ab dem nächsten Sperren."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Konnte die Zeile nicht in %s eintragen."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Dein Sperrbildschirm bleibt, wie er ist. Drück Enter im leeren Passwortfeld, "
+"um zu scannen."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock hat keine %s, also kann es den Text nicht zeigen."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Mit dem Gesicht entsperren"
@@ -803,6 +878,10 @@ msgstr "Scannen, wenn du zurückkommst"
msgid "Scan right after locking"
msgstr "Gleich nach dem Sperren scannen"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Welcher Sperrbildschirm"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Hintergrundbild"
@@ -972,34 +1051,47 @@ msgstr ""
msgid "The face could not be added (%1)."
msgstr "Das Gesicht konnte nicht hinzugefügt werden (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Suche dein Gesicht…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Falsches Passwort"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Gesicht erkannt"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Gesichtsentsperrung für Sperrbildschirm, sudo und Admin-Abfragen"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Ein Gesicht einrichten."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Wie das neue Gesicht heißen soll."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Den Bildschirm sperren."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Die Animationen der Bubble einmal abspielen."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Bubble-Stil für die Demo: full oder minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Fragt, welcher Sperrbildschirm genutzt wird, und gibt die Antwort aus."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Schau zum Entsperren in die Kamera."
@@ -1058,7 +1150,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Name (optional)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Abbrechen"
@@ -1078,14 +1170,66 @@ msgstr "Los geht's"
msgid "Done"
msgstr "Fertig"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Sperrbildschirm wählen"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Dein Sperrbildschirm"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Dein Desktop überlässt den Sperrbildschirm einem Programm deiner Wahl. "
+"Wähle, wie face unlock dort auftaucht. Du kannst das später unter "
+"Einstellungen ändern."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Sperrbildschirm von face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"Die Bubble oben, die Uhrzeit und dein Hintergrundbild. Dein Tastenkürzel und "
+"das Sperren bei Inaktivität rufen dann face-unlock lock auf."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Deinen Sperrbildschirm behalten"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Er bleibt, wie er ist. hyprlock zeigt oben eine Textzeile statt der Bubble. "
+"Enter im leeren Passwortfeld scannt."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Er bleibt, wie er ist, ohne Bubble. Enter im leeren Passwortfeld scannt."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Weiter"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Passwort"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Schau in die Kamera oder tippe dein Passwort"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Tippe dein Passwort"
diff --git a/po/es.po b/po/es.po
index a200849..87d6174 100644
--- a/po/es.po
+++ b/po/es.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Spanish\n"
@@ -58,8 +58,9 @@ msgstr "No se añadió ninguna cara."
msgid "First, set up your face."
msgstr "Primero, configura tu cara."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "No se pudo guardar el ajuste."
@@ -83,7 +84,16 @@ msgstr ""
"Cierra la sesión y vuelve a entrar una vez: entonces GNOME también muestra "
"la burbuja."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Elige tu pantalla de bloqueo en la ventana."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+"No se eligió ninguna pantalla de bloqueo. Puedes hacerlo luego en Ajustes."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -92,104 +102,104 @@ msgstr ""
"La pantalla de bloqueo (%s) también acepta tu cara. Si no escanea cuando "
"vuelves, pulsa Intro en el campo de contraseña vacío."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"El desbloqueo facial está activado. Bloquea la pantalla y mírala para "
"probarlo."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
"También funciona con sudo y las solicitudes de administrador. Consulta "
"Ajustes."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"El desbloqueo facial está desactivado. Tus caras se conservan; bórralas en "
"Caras."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Todavía no hay ninguna cara configurada."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "activado"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "desactivado"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s muestras, %s aprendidas"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "¿Qué cara? Consulta `%s faces` para ver los ID."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Borrado."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Comandos:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Activar el desbloqueo facial"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Desactivarlo (las caras se conservan)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Añadir una cara"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Listar las caras"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Borrar una cara"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Mirar a la cámara y ver lo que ve"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Bloquear la pantalla"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Mostrar qué está activado"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Mostrar esta ayuda"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Mostrar la versión"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Sin comando se muestra un menú interactivo."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -197,42 +207,42 @@ msgstr ""
"Ejecuta esto con tu propio usuario, no como root. Pide tu contraseña cuando "
"la necesita."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Comando desconocido: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "nunca"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "ahora mismo"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "hace 1 minuto"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "hace %d minutos"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "hace 1 hora"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "hace %d horas"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "hace 1 día"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "hace %d días"
@@ -272,7 +282,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "No se pudo usar la cámara."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Faltan los modelos de reconocimiento. Reinstala el paquete."
@@ -376,11 +386,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[s/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "ACTIVADO"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "DESACTIVADO"
@@ -421,85 +431,93 @@ msgstr "lenta"
msgid "%s seconds"
msgstr "%s segundos"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automática"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "la de face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "la tuya"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Desbloqueo facial"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Servicio"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "detenido"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Al volver a activar el desbloqueo facial, se inicia."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Caras"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "ninguna configurada aún"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "todas desactivadas"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "ninguna encontrada"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Cámara"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Pantalla de bloqueo"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Solicitudes de administrador"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Pantallas de bloqueo"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Detección de fotos"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "En pausa"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "%d minutos más, o hasta que se use la contraseña"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Último desbloqueo"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "El agente de la pantalla de bloqueo no se está ejecutando."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -507,7 +525,7 @@ msgstr ""
"En GNOME, una pequeña extensión de GNOME muestra la burbuja. Al activar el "
"desbloqueo facial se activa también."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -517,7 +535,7 @@ msgstr ""
"de face-unlock (`face-unlock lock`, con la burbuja) y los abre. Las demás "
"pantallas de bloqueo escanean con Intro."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -525,7 +543,7 @@ msgstr ""
"Desbloquea la pantalla de bloqueo cuando ve tu cara. Desactivado: ahí solo "
"sirve tu contraseña."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -533,7 +551,7 @@ msgstr ""
"Escanea cuando pulsas una tecla o mueves el ratón en la pantalla de bloqueo, "
"y cuando el equipo se despierta."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -541,7 +559,7 @@ msgstr ""
"Escanea en cuanto se bloquea la pantalla. Desactivado por defecto: si la "
"bloqueas tú, se desbloquearía enseguida."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -549,7 +567,17 @@ msgstr ""
"sudo usa tu cara en lugar de la contraseña. Si no coincide, escribes la "
"contraseña como siempre."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"La pantalla de bloqueo de face-unlock muestra la burbuja, y bloqueas con "
+"`face-unlock lock`. O quédate con la tuya: hyprlock muestra entonces una "
+"línea de texto arriba. Intro abre la elección."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -559,11 +587,11 @@ msgstr ""
"lock`). Vacío: la de tu escritorio. O un archivo, una carpeta de la que se "
"elige una al azar, o `none`. Intro para escribirla."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Desenfoca la imagen detrás de la pantalla de bloqueo de face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -572,7 +600,7 @@ msgstr ""
"La pantalla de bloqueo acepta tu cara en su comprobación de contraseña. "
"Pulsa Intro en el campo vacío para escanear. Encontradas aquí: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -580,18 +608,18 @@ msgstr ""
"Las ventanas de contraseña de tu escritorio y de las aplicaciones, por "
"ejemplo al instalar software. Si no coincide, escribes la contraseña."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Tienes que parpadear o girar un poco la cabeza. Esto también frena las fotos "
"impresas."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Sin comprobación. Solo para probar una cámara."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -599,24 +627,24 @@ msgstr ""
"Frena fotos en un móvil, una tableta o papel brillante. No hace falta "
"parpadear. Una foto impresa en papel mate puede pasar."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Menos coincidencias erróneas, pero puede que no te reconozca con gafas o con "
"poca luz."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr ""
"Te reconoce con más facilidad, pero también a alguien que se parezca mucho a "
"ti."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "El valor por defecto. Adecuado para la mayoría."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -624,7 +652,7 @@ msgstr ""
"Tus ojos tienen que estar abiertos y mirando a la pantalla. Así no se "
"desbloquea mientras miras a otro lado o duermes."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -633,11 +661,11 @@ msgstr ""
"tu cara. Una cámara infrarroja necesita su luz encendida (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Cuánto tiempo busca la cámara tu cara antes de rendirse."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -645,7 +673,7 @@ msgstr ""
"Tras una coincidencia segura, recuerda tu aspecto actual. Así, un corte de "
"pelo nuevo o unas gafas no piden configurar de nuevo."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -653,102 +681,102 @@ msgstr ""
"Sin escaneo mientras el portátil está cerrado, por ejemplo en un escritorio "
"con una pantalla externa."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr ""
"La burbuja en la parte superior de la pantalla muestra lo que hace la cámara."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Una pequeña pastilla con un candado que se abre."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr ""
"Una isla con una cara que mira alrededor, luego anillos y una marca de "
"verificación."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "La velocidad a la que se mueve la burbuja."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Muestra la burbuja también cuando sudo o una solicitud de administrador "
"escanea tu cara."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automática (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(infrarroja)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(no conectada)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "como el escritorio"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "ninguna"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Imagen o carpeta:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "No encontrado: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Ajustes"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ elegir ←→ o Espacio: cambiar q: volver"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "para todos los usuarios, pide tu contraseña"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Arriba/Abajo: elegir, Espacio: activar/desactivar, r: renombrar, d: borrar, "
"a: añadir, q: volver"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Todavía no hay ninguna cara configurada. Pulsa a para añadir una."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Nuevo nombre:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "¿Borrar «%s»?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Activar o desactivar el desbloqueo facial"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Probarlo"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Salir"
@@ -796,6 +824,54 @@ msgstr ""
"Hyprland no inicia por sí solo el agente de la pantalla de bloqueo. Añade "
"esto a %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Para bloquear con ella, añade esto a %s y pon %s en %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Para bloquear con ella, añade esto a los binds de %s y usa %s en swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Para bloquear con ella, ejecuta %s donde ahora se inicia tu pantalla de "
+"bloqueo."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Ahora bloqueas con la pantalla de bloqueo de face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock muestra arriba lo que hace face unlock, a partir del próximo "
+"bloqueo."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "No se pudo añadir la línea a %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Tu pantalla de bloqueo se queda como está. Pulsa Intro en el campo de "
+"contraseña vacío para escanear."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock no tiene %s, así que no puede mostrar el texto."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Desbloquear con tu cara"
@@ -808,6 +884,10 @@ msgstr "Escanear cuando vuelvas"
msgid "Scan right after locking"
msgstr "Escanear justo después de bloquear"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Qué pantalla de bloqueo"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Fondo de pantalla"
@@ -975,36 +1055,49 @@ msgstr ""
msgid "The face could not be added (%1)."
msgstr "No se pudo añadir la cara (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Buscando tu cara…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Contraseña incorrecta"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Cara reconocida"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Desbloqueo facial para la pantalla de bloqueo, sudo y las solicitudes de "
"administrador"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Configurar una cara."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Cómo llamar a la nueva cara."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Bloquear la pantalla."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Reproducir una vez las animaciones de la burbuja."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Estilo de burbuja para la demo: full o minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Pregunta qué pantalla de bloqueo usar e imprime la respuesta."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Mira a la cámara para desbloquear."
@@ -1063,7 +1156,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Nombre (opcional)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Cancelar"
@@ -1083,14 +1176,66 @@ msgstr "Empezar"
msgid "Done"
msgstr "Hecho"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Elige tu pantalla de bloqueo"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Tu pantalla de bloqueo"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Tu escritorio deja la pantalla de bloqueo a un programa que tú eliges. Elige "
+"cómo aparece face unlock ahí. Puedes cambiarlo luego en Ajustes."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Pantalla de bloqueo de face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"La burbuja arriba, la hora y tu fondo de pantalla. Tu atajo y el bloqueo por "
+"inactividad ejecutan entonces face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Mantener tu pantalla de bloqueo"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Se queda como está. hyprlock muestra una línea de texto arriba en lugar de "
+"la burbuja. Intro en el campo de contraseña vacío escanea."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Se queda como está, sin la burbuja. Intro en el campo de contraseña vacío "
+"escanea."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Continuar"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Contraseña"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Mira a la cámara o escribe tu contraseña"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Escribe tu contraseña"
diff --git a/po/face-unlock.pot b/po/face-unlock.pot
index 14daa52..e08cce4 100644
--- a/po/face-unlock.pot
+++ b/po/face-unlock.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -54,8 +54,9 @@ msgstr ""
msgid "First, set up your face."
msgstr ""
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr ""
@@ -75,146 +76,154 @@ msgstr ""
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr ""
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr ""
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
"back, press Enter on the empty password field."
msgstr ""
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr ""
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr ""
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr ""
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr ""
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr ""
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr ""
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr ""
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr ""
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr ""
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr ""
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr ""
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr ""
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr ""
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr ""
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr ""
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr ""
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr ""
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr ""
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr ""
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
msgstr ""
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr ""
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr ""
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr ""
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr ""
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr ""
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr ""
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr ""
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr ""
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr ""
@@ -252,7 +261,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr ""
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr ""
@@ -354,11 +363,11 @@ msgstr ""
msgid "[y/N]"
msgstr ""
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr ""
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr ""
@@ -399,290 +408,305 @@ msgstr ""
msgid "%s seconds"
msgstr ""
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr ""
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr ""
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr ""
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr ""
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr ""
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr ""
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr ""
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr ""
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr ""
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr ""
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr ""
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr ""
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr ""
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr ""
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr ""
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr ""
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr ""
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr ""
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr ""
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr ""
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr ""
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
msgstr ""
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
"screens scan on Enter."
msgstr ""
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
msgstr ""
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
msgstr ""
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
msgstr ""
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
msgstr ""
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
"random, or `none`. Enter to type it."
msgstr ""
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr ""
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
"empty field to scan. Found here: %s."
msgstr ""
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
msgstr ""
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr ""
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
msgstr ""
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr ""
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr ""
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
msgstr ""
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
msgstr ""
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr ""
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
msgstr ""
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
msgstr ""
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr ""
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr ""
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr ""
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr ""
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr ""
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr ""
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr ""
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr ""
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr ""
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr ""
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr ""
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr ""
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr ""
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr ""
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr ""
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr ""
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr ""
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr ""
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr ""
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr ""
@@ -726,6 +750,47 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr ""
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr ""
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr ""
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr ""
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr ""
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr ""
@@ -738,6 +803,10 @@ msgstr ""
msgid "Scan right after locking"
msgstr ""
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr ""
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr ""
@@ -902,34 +971,47 @@ msgstr ""
msgid "The face could not be added (%1)."
msgstr ""
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr ""
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr ""
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr ""
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr ""
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr ""
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr ""
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr ""
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr ""
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr ""
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr ""
@@ -982,7 +1064,7 @@ msgstr ""
msgid "Name (optional)"
msgstr ""
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr ""
@@ -1002,14 +1084,58 @@ msgstr ""
msgid "Done"
msgstr ""
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr ""
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr ""
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr ""
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr ""
diff --git a/po/fr.po b/po/fr.po
index 402331f..fd67a11 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: French\n"
@@ -60,8 +60,9 @@ msgstr "Aucun visage n'a été ajouté."
msgid "First, set up your face."
msgstr "Configurez d'abord votre visage."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Impossible d'enregistrer le réglage."
@@ -85,7 +86,17 @@ msgstr ""
"Déconnectez-vous puis reconnectez-vous une fois : GNOME affichera alors "
"aussi la bulle."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Choisissez votre écran de verrouillage dans la fenêtre."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+"Aucun écran de verrouillage choisi. Vous pouvez le faire plus tard dans "
+"Réglages."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -94,104 +105,104 @@ msgstr ""
"L'écran de verrouillage (%s) accepte aussi votre visage. S'il ne scanne pas "
"à votre retour, appuyez sur Entrée dans le champ du mot de passe vide."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Le déverrouillage facial est activé. Verrouillez l'écran et regardez-le pour "
"essayer."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
"Il fonctionne aussi pour sudo et les demandes d'administration. Voir "
"Réglages."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Le déverrouillage facial est désactivé. Vos visages sont conservés ; "
"supprimez-les dans Visages."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Aucun visage n'est encore configuré."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "activé"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "désactivé"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s échantillons, %s appris"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Quel visage ? Voir `%s faces` pour les identifiants."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Supprimé."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Utilisation : face-unlock [commande]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Commandes :"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Activer le déverrouillage facial"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Le désactiver (les visages sont conservés)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Ajouter un visage"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Lister les visages"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Supprimer un visage"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Regarder la caméra et voir ce qu'elle voit"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Verrouiller l'écran"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Afficher ce qui est activé"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Afficher cette aide"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Afficher la version"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Sans commande, un menu interactif s'affiche."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -199,42 +210,42 @@ msgstr ""
"Lancez ceci avec votre propre utilisateur, pas en root. Le mot de passe est "
"demandé quand il le faut."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Commande inconnue : %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "jamais"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "à l'instant"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "il y a 1 minute"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "il y a %d minutes"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "il y a 1 heure"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "il y a %d heures"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "il y a 1 jour"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "il y a %d jours"
@@ -274,7 +285,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "La caméra n'a pas pu être utilisée."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Les modèles de reconnaissance sont absents. Réinstallez le paquet."
@@ -380,11 +391,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[o/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "ACTIVÉ"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "DÉSACTIVÉ"
@@ -425,85 +436,93 @@ msgstr "lent"
msgid "%s seconds"
msgstr "%s secondes"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automatique"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "celui de face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "le vôtre"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Déverrouillage facial"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Service"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "arrêté"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Réactiver le déverrouillage facial le démarre."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Visages"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "aucun configuré pour l'instant"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "tous désactivés"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "aucune trouvée"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Caméra"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Écran de verrouillage"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Demandes d'administration"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Écrans de verrouillage"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Contrôle anti-photo"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "En pause"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "encore %d minutes, ou jusqu'à l'utilisation du mot de passe"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Dernier déverrouillage"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "L'agent de l'écran de verrouillage ne tourne pas."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -511,7 +530,7 @@ msgstr ""
"Sous GNOME, une petite extension GNOME affiche la bulle. Activer le "
"déverrouillage facial l'active aussi."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -521,7 +540,7 @@ msgstr ""
"de face-unlock (`face-unlock lock`, avec la bulle) et les ouvre. Les autres "
"écrans de verrouillage scannent avec Entrée."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -529,7 +548,7 @@ msgstr ""
"Déverrouille l'écran de verrouillage quand il voit votre visage. Désactivé : "
"seul votre mot de passe fonctionne."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -537,7 +556,7 @@ msgstr ""
"Scanne quand vous appuyez sur une touche ou bougez la souris sur l'écran de "
"verrouillage, et au réveil de l'ordinateur."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -545,7 +564,7 @@ msgstr ""
"Scanne dès que l'écran se verrouille. Désactivé par défaut : si vous "
"verrouillez vous-même, il se déverrouillerait aussitôt."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -553,7 +572,17 @@ msgstr ""
"sudo prend votre visage au lieu du mot de passe. Sinon, vous tapez le mot de "
"passe comme d'habitude."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"L'écran de verrouillage de face-unlock affiche la bulle, et vous verrouillez "
+"avec `face-unlock lock`. Ou gardez le vôtre : hyprlock affiche alors une "
+"ligne de texte en haut. Entrée ouvre le choix."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -563,11 +592,11 @@ msgstr ""
"lock`). Vide : celle de votre bureau. Ou un fichier, un dossier où en "
"prendre une au hasard, ou `none`. Entrée pour la saisir."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Floute l'image derrière l'écran de verrouillage de face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -576,7 +605,7 @@ msgstr ""
"L'écran de verrouillage accepte votre visage dans sa vérification du mot de "
"passe. Appuyez sur Entrée dans le champ vide pour scanner. Trouvés ici : %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -584,18 +613,18 @@ msgstr ""
"Les fenêtres de mot de passe de votre bureau et des applications, par "
"exemple pour installer un logiciel. Sinon, vous tapez le mot de passe."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Vous devez cligner des yeux ou tourner un peu la tête. Cela bloque aussi les "
"photos imprimées."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Aucun contrôle. Seulement pour essayer une caméra."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -603,24 +632,24 @@ msgstr ""
"Bloque les photos sur un téléphone, une tablette ou du papier brillant. Pas "
"besoin de cligner des yeux. Une photo imprimée mate peut passer."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Moins d'erreurs de correspondance, mais il peut ne pas vous reconnaître avec "
"des lunettes ou sous une mauvaise lumière."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr ""
"Vous reconnaît plus facilement, mais aussi quelqu'un qui vous ressemble "
"beaucoup."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "La valeur par défaut. Convient à la plupart des gens."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -628,7 +657,7 @@ msgstr ""
"Vos yeux doivent être ouverts et tournés vers l'écran. Ainsi, rien ne se "
"déverrouille quand vous regardez ailleurs ou dormez."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -637,11 +666,11 @@ msgstr ""
"reconfigurez votre visage. Une caméra infrarouge doit avoir sa lumière "
"allumée (linux-enable-ir-emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Combien de temps la caméra cherche votre visage avant d'abandonner."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -650,7 +679,7 @@ msgstr ""
"nouvelle coupe ou des lunettes ne demandent donc pas de nouvelle "
"configuration."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -658,101 +687,101 @@ msgstr ""
"Pas de scan quand le portable est fermé, par exemple à un bureau avec un "
"écran externe."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "La bulle en haut de l'écran montre ce que fait la caméra."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Une petite pilule avec un cadenas qui s'ouvre."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr ""
"Un îlot avec un visage qui regarde autour de lui, puis des anneaux et une "
"coche."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "La vitesse à laquelle la bulle bouge."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Affiche aussi la bulle quand sudo ou une demande d'administration scanne "
"votre visage."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automatique (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(infrarouge)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(non branchée)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "comme le bureau"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "aucun"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Image ou dossier :"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Introuvable : %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Réglages"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ choisir ←→ ou Espace : changer q : retour"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "pour tous, demande votre mot de passe"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Haut/Bas : choisir, Espace : activer/désactiver, r : renommer, d : "
"supprimer, a : ajouter, q : retour"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Aucun visage n'est encore configuré. Appuyez sur a pour en ajouter un."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Nouveau nom :"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Supprimer « %s » ?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Activer ou désactiver le déverrouillage facial"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Essayer"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Quitter"
@@ -801,6 +830,56 @@ msgstr ""
"Hyprland ne démarre pas l'agent de l'écran de verrouillage tout seul. "
"Ajoutez ceci à %s :"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Pour verrouiller avec, ajoutez ceci à %s, et mettez %s dans %s :"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Pour verrouiller avec, ajoutez ceci aux binds de %s, et utilisez %s dans "
+"swayidle :"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Pour verrouiller avec, lancez %s là où votre écran de verrouillage démarre "
+"aujourd'hui."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr ""
+"Vous verrouillez maintenant avec l'écran de verrouillage de face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock affiche en haut ce que fait face unlock, dès le prochain "
+"verrouillage."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Impossible d'ajouter la ligne à %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Votre écran de verrouillage reste tel quel. Appuyez sur Entrée dans le champ "
+"de mot de passe vide pour scanner."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock n'a pas de %s, il ne peut donc pas afficher le texte."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Déverrouiller avec votre visage"
@@ -813,6 +892,10 @@ msgstr "Scanner à votre retour"
msgid "Scan right after locking"
msgstr "Scanner juste après le verrouillage"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Quel écran de verrouillage"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Fond d'écran"
@@ -980,36 +1063,49 @@ msgstr "La caméra est occupée par un autre scan. Réessayez dans un instant."
msgid "The face could not be added (%1)."
msgstr "Le visage n'a pas pu être ajouté (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Recherche de votre visage…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Mot de passe incorrect"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Visage reconnu"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Déverrouillage facial pour l'écran de verrouillage, sudo et les demandes "
"d'administration"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Configurer un visage."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Le nom du nouveau visage."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Verrouiller l'écran."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Jouer une fois les animations de la bulle."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Style de bulle pour la démo : full ou minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Demande quel écran de verrouillage utiliser et affiche la réponse."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Regardez la caméra pour déverrouiller."
@@ -1069,7 +1165,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Nom (facultatif)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Annuler"
@@ -1089,14 +1185,67 @@ msgstr "Commencer"
msgid "Done"
msgstr "Terminé"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Choisir votre écran de verrouillage"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Votre écran de verrouillage"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Votre bureau confie l'écran de verrouillage à un programme de votre choix. "
+"Choisissez comment face unlock y apparaît. Vous pourrez le changer plus tard "
+"dans Réglages."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Écran de verrouillage de face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"La bulle en haut, l'heure et votre fond d'écran. Votre raccourci et le "
+"verrouillage automatique lancent alors face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Garder votre écran de verrouillage"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Il reste tel quel. hyprlock affiche une ligne de texte en haut au lieu de la "
+"bulle. Entrée dans le champ de mot de passe vide lance un scan."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Il reste tel quel, sans la bulle. Entrée dans le champ de mot de passe vide "
+"lance un scan."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Continuer"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Mot de passe"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Regardez la caméra ou tapez votre mot de passe"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Tapez votre mot de passe"
diff --git a/po/it.po b/po/it.po
index ff1434e..50aabca 100644
--- a/po/it.po
+++ b/po/it.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Italian\n"
@@ -58,8 +58,9 @@ msgstr "Nessun volto aggiunto."
msgid "First, set up your face."
msgstr "Per prima cosa, configura il tuo volto."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Impossibile salvare l'impostazione."
@@ -81,7 +82,16 @@ msgstr "Impossibile attivare l'estensione di GNOME che mostra la bolla."
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Esci e rientra una volta: poi GNOME mostra anche la bolla."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Scegli la tua schermata di blocco nella finestra."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+"Nessuna schermata di blocco scelta. Puoi farlo più tardi in Impostazioni."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,102 +100,102 @@ msgstr ""
"Anche la schermata di blocco (%s) accetta il tuo volto. Se non scansiona "
"quando torni, premi Invio nel campo password vuoto."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Lo sblocco con il volto è attivo. Blocca lo schermo e guardalo per provarlo."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
"Funziona anche con sudo e le richieste di amministratore. Vedi Impostazioni."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Lo sblocco con il volto è disattivato. I tuoi volti restano salvati; "
"eliminali in Volti."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Nessun volto ancora configurato."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "attivo"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "disattivo"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s campioni, %s appresi"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Quale volto? Vedi `%s faces` per gli ID."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Eliminato."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Comandi:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Attiva lo sblocco con il volto"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Disattivalo (i volti restano salvati)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Aggiungi un volto"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Elenca i volti"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Elimina un volto"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Guarda la fotocamera e vedi cosa vede"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Blocca lo schermo"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Mostra cosa è attivo"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Mostra questo aiuto"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Mostra la versione"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Senza comando viene mostrato un menu interattivo."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -193,42 +203,42 @@ msgstr ""
"Esegui questo con il tuo utente, non come root. Chiede la password quando "
"serve."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Comando sconosciuto: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "mai"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "proprio ora"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 minuto fa"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d minuti fa"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 ora fa"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d ore fa"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 giorno fa"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d giorni fa"
@@ -268,7 +278,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Impossibile usare la fotocamera."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Mancano i modelli di riconoscimento. Reinstalla il pacchetto."
@@ -373,11 +383,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[s/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "ATTIVO"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "DISATTIVO"
@@ -418,85 +428,93 @@ msgstr "lenta"
msgid "%s seconds"
msgstr "%s secondi"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automatica"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "quella di face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "la tua"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Sblocco con il volto"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Servizio"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "non in esecuzione"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Riattivare lo sblocco con il volto lo avvia."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Volti"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "nessuno configurato"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "tutti disattivati"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "nessuna trovata"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Fotocamera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Schermata di blocco"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Richieste di amministratore"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Schermate di blocco"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Controllo foto"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "In pausa"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "ancora per %d minuti, o finché non si usa la password"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Ultimo sblocco"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "L'agente della schermata di blocco non è in esecuzione."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -504,7 +522,7 @@ msgstr ""
"Su GNOME una piccola estensione di GNOME mostra la bolla. Attivando lo "
"sblocco con il volto si attiva anche lei."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +532,7 @@ msgstr ""
"face-unlock (`face-unlock lock`, con la bolla) e li apre. Le altre schermate "
"di blocco scansionano con Invio."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -522,7 +540,7 @@ msgstr ""
"Sblocca la schermata di blocco quando vede il tuo volto. Disattivo: lì "
"funziona solo la password."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -530,7 +548,7 @@ msgstr ""
"Esegue la scansione quando premi un tasto o muovi il mouse sulla schermata "
"di blocco, e quando il computer si riattiva."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -538,7 +556,7 @@ msgstr ""
"Esegue la scansione appena lo schermo si blocca. Disattivo di norma: se lo "
"blocchi tu, si sbloccherebbe subito."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -546,7 +564,17 @@ msgstr ""
"sudo usa il tuo volto al posto della password. Se non corrisponde, digiti la "
"password come al solito."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"La schermata di blocco di face-unlock mostra la bolla, e blocchi con `face-"
+"unlock lock`. Oppure tieni la tua: hyprlock mostra allora una riga di testo "
+"in alto. Invio apre la scelta."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +584,11 @@ msgstr ""
"lock`). Vuoto: quella del tuo desktop. Oppure un file, una cartella da cui "
"prenderne una a caso, o `none`. Invio per scriverla."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Sfoca l'immagine dietro la schermata di blocco di face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +597,7 @@ msgstr ""
"La schermata di blocco accetta il tuo volto nel controllo della password. "
"Premi Invio nel campo vuoto per scansionare. Trovate qui: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -577,18 +605,18 @@ msgstr ""
"Le finestre della password del tuo desktop e delle app, per esempio quando "
"installi software. Se non corrisponde, digiti la password."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Devi sbattere le palpebre o girare un po' la testa. Questo ferma anche le "
"foto stampate."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Nessun controllo. Solo per provare una fotocamera."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -596,22 +624,22 @@ msgstr ""
"Ferma le foto su un telefono, un tablet o carta lucida. Non serve sbattere "
"le palpebre. Una foto stampata opaca può passare."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Meno scambi di persona, ma potrebbe non riconoscerti con gli occhiali o con "
"poca luce."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Ti riconosce più facilmente, ma anche qualcuno che ti somiglia molto."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "Il valore predefinito. Va bene per la maggior parte delle persone."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -619,7 +647,7 @@ msgstr ""
"I tuoi occhi devono essere aperti e rivolti allo schermo. Così non si "
"sblocca mentre guardi altrove o dormi."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +656,11 @@ msgstr ""
"nuovo il tuo volto. Una fotocamera a infrarossi ha bisogno della sua luce "
"(linux-enable-ir-emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Per quanto tempo la fotocamera cerca il tuo volto prima di arrendersi."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -641,7 +669,7 @@ msgstr ""
"nuovo taglio di capelli o gli occhiali non richiedono una nuova "
"configurazione."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -649,99 +677,99 @@ msgstr ""
"Nessuna scansione quando il portatile è chiuso, per esempio alla scrivania "
"con uno schermo esterno."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "La bolla in cima allo schermo mostra cosa sta facendo la fotocamera."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Una piccola pillola con un lucchetto che si apre."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Un'isola con un volto che si guarda intorno, poi anelli e una spunta."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Quanto velocemente si muove la bolla."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Mostra la bolla anche quando sudo o una richiesta di amministratore "
"scansiona il tuo volto."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automatica (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(infrarossi)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(non collegata)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "come il desktop"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "nessuno"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Immagine o cartella:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Non trovato: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Impostazioni"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ scegli ←→ o Spazio: cambia q: indietro"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "per tutti gli utenti, chiede la tua password"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Su/Giù: scegli, Spazio: attiva/disattiva, r: rinomina, d: elimina, a: "
"aggiungi, q: indietro"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Nessun volto ancora configurato. Premi a per aggiungerne uno."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Nuovo nome:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Eliminare «%s»?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Attiva o disattiva lo sblocco con il volto"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Provalo"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Esci"
@@ -790,6 +818,52 @@ msgstr ""
"Hyprland non avvia da solo l'agente della schermata di blocco. Aggiungi "
"questo a %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Per bloccare con essa, aggiungi questo a %s e imposta %s in %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Per bloccare con essa, aggiungi questo ai binds in %s e usa %s in swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Per bloccare con essa, esegui %s dove ora parte la tua schermata di blocco."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Ora blocchi con la schermata di blocco di face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock mostra in alto cosa sta facendo face unlock, dal prossimo blocco."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Impossibile aggiungere la riga a %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"La tua schermata di blocco resta com'è. Premi Invio nel campo password vuoto "
+"per la scansione."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock non ha %s, quindi non può mostrare il testo."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Sblocca con il volto"
@@ -802,6 +876,10 @@ msgstr "Scansiona quando torni"
msgid "Scan right after locking"
msgstr "Scansiona subito dopo il blocco"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Quale schermata di blocco"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Sfondo"
@@ -969,36 +1047,49 @@ msgstr ""
msgid "The face could not be added (%1)."
msgstr "Impossibile aggiungere il volto (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Cerco il tuo volto…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Password errata"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Volto riconosciuto"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Sblocco con il volto per la schermata di blocco, sudo e le richieste di "
"amministratore"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Configura un volto."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Come chiamare il nuovo volto."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Blocca lo schermo."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Riproduci una volta le animazioni della bolla."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Stile della bolla per la demo: full o minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Chiede quale schermata di blocco usare e stampa la risposta."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Guarda la fotocamera per sbloccare."
@@ -1058,7 +1149,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Nome (facoltativo)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Annulla"
@@ -1078,14 +1169,66 @@ msgstr "Iniziamo"
msgid "Done"
msgstr "Fatto"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Scegli la schermata di blocco"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "La tua schermata di blocco"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Il tuo desktop lascia la schermata di blocco a un programma a tua scelta. "
+"Scegli come appare face unlock lì. Puoi cambiarlo più tardi in Impostazioni."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Schermata di blocco di face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"La bolla in alto, l'ora e il tuo sfondo. La tua scorciatoia e il blocco per "
+"inattività eseguono poi face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Tieni la tua schermata di blocco"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Resta com'è. hyprlock mostra una riga di testo in alto al posto della bolla. "
+"Invio nel campo password vuoto avvia la scansione."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Resta com'è, senza la bolla. Invio nel campo password vuoto avvia la "
+"scansione."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Continua"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Password"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Guarda la fotocamera o digita la password"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Digita la password"
diff --git a/po/ja.po b/po/ja.po
index 14e9a40..c40cf7a 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Japanese\n"
@@ -57,8 +57,9 @@ msgstr "顔は追加されませんでした。"
msgid "First, set up your face."
msgstr "まず顔を登録してください。"
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "設定を保存できませんでした。"
@@ -81,7 +82,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr ""
"一度ログアウトしてログインし直してください。GNOME でもバブルが表示されます。"
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "ウィンドウでロック画面を選んでください。"
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "ロック画面が選ばれていません。あとで設定から選べます。"
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,98 +99,98 @@ msgstr ""
"ロック画面(%s)でも顔が使えます。戻ってきたときにスキャンしない場合は、空の"
"パスワード欄で Enter を押してください。"
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "顔認証はオンです。画面をロックして、画面を見て試してください。"
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo や管理者の認証にも使えます。「設定」を参照してください。"
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "顔認証はオフです。顔データは残っています。「顔」から削除できます。"
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "まだ顔が登録されていません。"
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "オン"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "オフ"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "サンプル %s 件、学習 %s 件"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "どの顔ですか? ID は `%s faces` で確認できます。"
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "削除しました。"
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "使い方: face-unlock [コマンド]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "コマンド:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "顔認証をオンにする"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "オフにする(顔データは残ります)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "顔を追加"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "顔の一覧"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "顔を削除"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "カメラを見て、カメラに映るものを確認する"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "画面をロック"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "オンになっている機能を表示"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "このヘルプを表示"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "バージョンを表示"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "コマンドなしで起動すると、対話式メニューが表示されます。"
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -189,42 +198,42 @@ msgstr ""
"root ではなく、自分のユーザーで実行してください。必要なときはパスワードを尋ね"
"ます。"
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "不明なコマンド: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "なし"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "たった今"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 分前"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d 分前"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 時間前"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d 時間前"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 日前"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d 日前"
@@ -264,7 +273,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "カメラを使用できませんでした。"
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "認識モデルがありません。パッケージを再インストールしてください。"
@@ -368,11 +377,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[y/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "オン"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "オフ"
@@ -413,85 +422,93 @@ msgstr "遅い"
msgid "%s seconds"
msgstr "%s 秒"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "自動"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "今のもの"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "顔認証"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "サービス"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "停止中"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "顔認証をもう一度オンにすると起動します。"
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "顔"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "まだ登録なし"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "すべてオフ"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "見つかりません"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "カメラ"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "ロック画面"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "管理者の認証"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "ロック画面"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "写真チェック"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "一時停止中"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "あと %d 分、またはパスワードが使われるまで"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "最後のロック解除"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "ロック画面エージェントが動いていません。"
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -499,7 +516,7 @@ msgstr ""
"GNOME では小さな GNOME 拡張機能がバブルを表示します。顔認証をオンにすると一緒"
"に有効になります。"
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -509,7 +526,7 @@ msgstr ""
"き)に戻ってきたときにスキャンして開きます。ほかのロック画面は Enter でスキャ"
"ンします。"
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -517,7 +534,7 @@ msgstr ""
"顔を認識するとロック画面を解除します。オフ: ロック画面ではパスワードだけが使"
"えます。"
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -525,7 +542,7 @@ msgstr ""
"ロック画面でキーを押すかマウスを動かしたとき、そしてコンピューターがスリープ"
"から復帰したときにスキャンします。"
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -533,7 +550,7 @@ msgstr ""
"画面がロックされるとすぐにスキャンします。既定はオフ: 自分でロックすると、す"
"ぐに解除されてしまうためです。"
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -541,7 +558,17 @@ msgstr ""
"sudo でパスワードの代わりに顔を使います。一致しなければ、いつも通りパスワード"
"を入力します。"
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"face-unlock のロック画面はバブルを表示し、`face-unlock lock` でロックします。"
+"今のロック画面を使い続けることもできます: その場合 hyprlock が上部に一行のテ"
+"キストを表示します。Enter で選択画面を開きます。"
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -550,11 +577,11 @@ msgstr ""
"face-unlock のロック画面(`face-unlock lock`)の背景画像。空欄: デスクトップ"
"と同じ画像。またはファイル、ランダムに選ぶフォルダー、`none`。Enter で入力。"
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock のロック画面の背景画像をぼかします。"
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -563,7 +590,7 @@ msgstr ""
"ロック画面のパスワード確認で顔が使えます。空の欄で Enter を押すとスキャンしま"
"す。見つかったもの: %s。"
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -571,16 +598,16 @@ msgstr ""
"デスクトップやアプリのパスワード画面です(ソフトウェアのインストール時な"
"ど)。一致しなければパスワードを入力します。"
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr "まばたきするか、少し顔を動かす必要があります。印刷した写真も防げます。"
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "チェックしません。カメラを試すときだけ使ってください。"
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -588,22 +615,22 @@ msgstr ""
"スマホ、タブレット、光沢紙に映った写真を防ぎます。まばたきは不要です。つや消"
"しの印刷写真は通ることがあります。"
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"誤認識は減りますが、眼鏡をかけているときや暗いときに認識されないことがありま"
"す。"
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "認識されやすくなりますが、あなたによく似た人も認識されやすくなります。"
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "既定値です。ほとんどの人に適しています。"
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -611,7 +638,7 @@ msgstr ""
"目を開けて画面を見ている必要があります。よそ見や居眠りの間にロック解除されま"
"せん。"
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -619,11 +646,11 @@ msgstr ""
"「自動」は最初の通常のカメラを使います。変更したら顔を登録し直してください。"
"赤外線カメラはライトをオンにする必要があります(linux-enable-ir-emitter)。"
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "カメラが顔を探してからあきらめるまでの時間です。"
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -631,7 +658,7 @@ msgstr ""
"確実に一致したとき、今の見た目を覚えます。髪型を変えたり眼鏡をかけたりして"
"も、登録し直す必要はありません。"
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -639,96 +666,96 @@ msgstr ""
"ノートパソコンを閉じているときはスキャンしません。外部モニターにつないで机で"
"使う場合などです。"
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "画面上部のバブルに、カメラの状態が表示されます。"
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "鍵が開く小さなピルです。"
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "あたりを見回す顔のアイランド。そのあとリングとチェックマークが出ます。"
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "バブルが動く速さです。"
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo や管理者の認証で顔をスキャンするときにもバブルを表示します。"
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "自動(%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(赤外線)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(未接続)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "デスクトップと同じ"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "なし"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "画像またはフォルダー:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "見つかりません: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "設定"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 選択 ←→ またはスペース: 変更 q: 戻る"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "全ユーザー共通、パスワードが必要"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"上/下: 選択、スペース: オン/オフ、r: 名前を変更、d: 削除、a: 追加、q: 戻る"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "まだ顔が登録されていません。a を押して追加してください。"
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "新しい名前:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "「%s」を削除しますか?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "顔認証のオン/オフ"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "試す"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "終了"
@@ -775,6 +802,52 @@ msgstr ""
"Hyprland はロック画面エージェントを自動では起動しません。%s に次を追加してく"
"ださい:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "これでロックするには、%s にこれを追加し、%s を %s に書いてください:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"これでロックするには、%s の binds にこれを追加し、swayidle で %s を使ってくだ"
+"さい:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"これでロックするには、今ロック画面を起動している場所で %s を実行してくださ"
+"い。"
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "これから face-unlock のロック画面でロックします。"
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr "次回のロックから、hyprlock が上部に face unlock の状態を表示します。"
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "%s に行を追加できませんでした。"
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"ロック画面はそのままです。空のパスワード欄で Enter を押すとスキャンします。"
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock に %s がないため、テキストを表示できません。"
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "顔でロック解除"
@@ -787,6 +860,10 @@ msgstr "戻ってきたらスキャン"
msgid "Scan right after locking"
msgstr "ロック直後にスキャン"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "使うロック画面"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "壁紙"
@@ -951,34 +1028,47 @@ msgstr "カメラは別のスキャン中です。少ししてからもう一度
msgid "The face could not be added (%1)."
msgstr "顔を追加できませんでした(%1)。"
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "顔を探しています…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "パスワードが違います"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "顔を認識しました"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "ロック画面、sudo、管理者の認証のための顔認証"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "顔を登録します。"
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "新しい顔の名前。"
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "画面をロックします。"
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "バブルのアニメーションを一度再生します。"
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "デモのバブルスタイル: full または minimal。"
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "使うロック画面を尋ね、答えを出力します。"
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "カメラを見てロックを解除してください。"
@@ -1037,7 +1127,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "名前(任意)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "キャンセル"
@@ -1057,14 +1147,66 @@ msgstr "はじめる"
msgid "Done"
msgstr "完了"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "ロック画面を選ぶ"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "ロック画面"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"このデスクトップでは、ロック画面は自分で選んだプログラムです。そこで face "
+"unlock をどう表示するか選んでください。あとで設定から変更できます。"
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "face-unlock のロック画面"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"上部のバブル、時計、壁紙。ショートカットと自動ロックで face-unlock lock を実"
+"行します。"
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "今のロック画面を使う"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"そのまま使えます。hyprlock はバブルの代わりに上部に一行のテキストを表示しま"
+"す。空のパスワード欄で Enter を押すとスキャンします。"
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"そのまま使えます。バブルはありません。空のパスワード欄で Enter を押すとスキャ"
+"ンします。"
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "続ける"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "パスワード"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "カメラを見るか、パスワードを入力してください"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "パスワードを入力してください"
diff --git a/po/ko.po b/po/ko.po
index ea0a6b5..4f83d9c 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Korean\n"
@@ -57,8 +57,9 @@ msgstr "얼굴이 추가되지 않았습니다."
msgid "First, set up your face."
msgstr "먼저 얼굴을 등록하세요."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "설정을 저장하지 못했습니다."
@@ -79,7 +80,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr ""
"한 번 로그아웃했다가 다시 로그인하세요. 그러면 GNOME에서도 버블이 보입니다."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "창에서 잠금 화면을 고르세요."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "잠금 화면을 고르지 않았습니다. 나중에 설정에서 고를 수 있습니다."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -88,142 +97,142 @@ msgstr ""
"잠금 화면(%s)에서도 얼굴을 쓸 수 있습니다. 돌아왔을 때 스캔하지 않으면 빈 비"
"밀번호 칸에서 Enter를 누르세요."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"얼굴 잠금 해제가 켜졌습니다. 화면을 잠그고 화면을 바라보며 사용해 보세요."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo와 관리자 인증 창에서도 쓸 수 있습니다. 설정을 참고하세요."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"얼굴 잠금 해제가 꺼졌습니다. 얼굴 데이터는 남아 있으며, 얼굴 메뉴에서 삭제할 "
"수 있습니다."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "아직 등록된 얼굴이 없습니다."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "켜짐"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "꺼짐"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "샘플 %s개, 학습 %s개"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "어떤 얼굴인가요? ID는 `%s faces`에서 확인하세요."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "삭제했습니다."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "사용법: face-unlock [명령]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "명령:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "얼굴 잠금 해제 켜기"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "끄기 (얼굴 데이터는 유지)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "얼굴 추가"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "얼굴 목록"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "얼굴 삭제"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "카메라를 보고 카메라에 보이는 것을 확인"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "화면 잠그기"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "켜져 있는 기능 보기"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "이 도움말 보기"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "버전 보기"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "명령 없이 실행하면 대화형 메뉴가 나옵니다."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
msgstr "root가 아닌 본인 사용자로 실행하세요. 필요하면 비밀번호를 묻습니다."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "알 수 없는 명령: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "없음"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "방금"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1분 전"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d분 전"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1시간 전"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d시간 전"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1일 전"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d일 전"
@@ -263,7 +272,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "카메라를 사용할 수 없었습니다."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "인식 모델이 없습니다. 패키지를 다시 설치하세요."
@@ -367,11 +376,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[y/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "켜짐"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "꺼짐"
@@ -412,85 +421,93 @@ msgstr "느리게"
msgid "%s seconds"
msgstr "%s초"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "자동"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "지금 쓰는 것"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "얼굴 잠금 해제"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "서비스"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "실행 중 아님"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "얼굴 잠금 해제를 다시 켜면 시작됩니다."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "얼굴"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "아직 없음"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "모두 꺼짐"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "찾을 수 없음"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "카메라"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "잠금 화면"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "관리자 인증 창"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "잠금 화면"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "사진 검사"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "일시 중지됨"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "%d분 더, 또는 비밀번호를 사용할 때까지"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "마지막 잠금 해제"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "잠금 화면 에이전트가 실행 중이 아닙니다."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -498,7 +515,7 @@ msgstr ""
"GNOME에서는 작은 GNOME 확장이 버블을 보여 줍니다. 얼굴 잠금 해제를 켜면 함께 "
"켜집니다."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -507,14 +524,14 @@ msgstr ""
"hyprlock, swaylock 또는 face-unlock 자체 잠금 화면(`face-unlock lock`, 버블 "
"포함)으로 돌아오면 스캔해서 엽니다. 다른 잠금 화면은 Enter로 스캔합니다."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
msgstr ""
"얼굴을 보면 잠금 화면을 해제합니다. 꺼짐: 잠금 화면에서는 비밀번호만 됩니다."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -522,7 +539,7 @@ msgstr ""
"잠금 화면에서 키를 누르거나 마우스를 움직일 때, 그리고 컴퓨터가 깨어날 때 스"
"캔합니다."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -530,7 +547,7 @@ msgstr ""
"화면이 잠기자마자 스캔합니다. 기본값은 꺼짐: 직접 잠그면 곧바로 다시 풀려 버"
"리기 때문입니다."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -538,7 +555,17 @@ msgstr ""
"sudo가 비밀번호 대신 얼굴을 사용합니다. 일치하지 않으면 평소처럼 비밀번호를 "
"입력합니다."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"face-unlock 잠금 화면은 버블을 보여 주며, `face-unlock lock`으로 잠급니다. 지"
+"금 잠금 화면을 그대로 쓸 수도 있습니다: 그러면 hyprlock이 위쪽에 한 줄의 글"
+"을 보여 줍니다. Enter로 선택 창을 엽니다."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -547,11 +574,11 @@ msgstr ""
"face-unlock 잠금 화면(`face-unlock lock`)의 배경 그림. 비워 두면 바탕 화면의 "
"그림. 또는 파일, 무작위로 고를 폴더, `none`. Enter로 입력."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock 잠금 화면의 배경 그림을 흐리게 합니다."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -560,7 +587,7 @@ msgstr ""
"잠금 화면의 비밀번호 확인에서 얼굴을 받습니다. 빈 칸에서 Enter를 누르면 스캔"
"합니다. 찾은 것: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -568,16 +595,16 @@ msgstr ""
"데스크톱과 앱의 비밀번호 창입니다. 예를 들어 소프트웨어를 설치할 때입니다. 일"
"치하지 않으면 비밀번호를 입력합니다."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr "눈을 깜빡이거나 고개를 살짝 돌려야 합니다. 인쇄한 사진도 막아 줍니다."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "검사하지 않습니다. 카메라를 시험할 때만 쓰세요."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -585,22 +612,22 @@ msgstr ""
"휴대폰, 태블릿, 광택지에 있는 사진을 막습니다. 눈을 깜빡일 필요는 없습니다. "
"무광 인쇄 사진은 통과할 수 있습니다."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"잘못 일치하는 경우가 줄지만, 안경을 쓰거나 조명이 나쁘면 알아보지 못할 수 있"
"습니다."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "더 쉽게 알아보지만, 당신과 많이 닮은 사람도 알아볼 수 있습니다."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "기본값입니다. 대부분의 사람에게 알맞습니다."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -608,7 +635,7 @@ msgstr ""
"눈을 뜨고 화면을 보고 있어야 합니다. 그래서 다른 곳을 보거나 자는 동안에는 풀"
"리지 않습니다."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -616,11 +643,11 @@ msgstr ""
"자동은 첫 번째 일반 카메라를 사용합니다. 바꾼 뒤에는 얼굴을 다시 등록하세요. "
"적외선 카메라는 조명을 켜야 합니다 (linux-enable-ir-emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "카메라가 포기하기 전까지 얼굴을 찾는 시간입니다."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -628,7 +655,7 @@ msgstr ""
"확실히 일치하면 지금 모습을 기억합니다. 그래서 머리 모양이 바뀌거나 안경을 써"
"도 다시 등록할 필요가 없습니다."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -636,96 +663,96 @@ msgstr ""
"노트북을 덮었을 때는 스캔하지 않습니다. 예를 들어 외부 모니터를 연결해 책상에"
"서 쓸 때입니다."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "화면 위쪽의 버블이 카메라가 하는 일을 보여 줍니다."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "자물쇠가 열리는 작은 알약입니다."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "주위를 둘러보는 얼굴이 있는 아일랜드, 그다음 링과 체크 표시입니다."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "버블이 움직이는 속도입니다."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo나 관리자 인증 창이 얼굴을 스캔할 때도 버블을 보여 줍니다."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "자동 (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(적외선)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(연결 안 됨)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "바탕 화면과 같음"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "없음"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "그림 또는 폴더:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "찾을 수 없음: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "설정"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 선택 ←→ 또는 스페이스: 변경 q: 뒤로"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "모든 사용자에게 적용, 비밀번호 필요"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"위/아래: 선택, 스페이스: 켜기/끄기, r: 이름 바꾸기, d: 삭제, a: 추가, q: 뒤로"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "아직 등록된 얼굴이 없습니다. a를 눌러 추가하세요."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "새 이름:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "\"%s\" 항목을 삭제할까요?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "얼굴 잠금 해제 켜기/끄기"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "사용해 보기"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "끝내기"
@@ -773,6 +800,50 @@ msgstr ""
"Hyprland는 잠금 화면 에이전트를 스스로 시작하지 않습니다. %s에 다음을 추가하"
"세요:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "이것으로 잠그려면 %s에 이것을 추가하고, %s을(를) %s에 설정하세요:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"이것으로 잠그려면 %s의 binds에 이것을 추가하고, swayidle에서 %s을(를) 쓰세요:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"이것으로 잠그려면 지금 잠금 화면을 시작하는 곳에서 %s을(를) 실행하세요."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "이제 face-unlock 잠금 화면으로 잠급니다."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr "다음 잠금부터 hyprlock이 위쪽에 face unlock이 하는 일을 보여 줍니다."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "%s에 줄을 추가할 수 없습니다."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"잠금 화면은 그대로입니다. 빈 비밀번호 칸에서 Enter를 누르면 스캔합니다."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock에 %s이(가) 없어 글을 보여 줄 수 없습니다."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "얼굴로 잠금 해제"
@@ -785,6 +856,10 @@ msgstr "돌아오면 스캔"
msgid "Scan right after locking"
msgstr "잠근 직후 스캔"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "사용할 잠금 화면"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "배경 화면"
@@ -950,34 +1025,47 @@ msgstr "카메라가 다른 스캔으로 사용 중입니다. 잠시 후 다시
msgid "The face could not be added (%1)."
msgstr "얼굴을 추가하지 못했습니다 (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "얼굴을 찾는 중…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "비밀번호가 틀렸습니다"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "얼굴 인식됨"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "잠금 화면, sudo, 관리자 인증 창을 위한 얼굴 잠금 해제"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "얼굴을 등록합니다."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "새 얼굴의 이름."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "화면을 잠급니다."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "버블 애니메이션을 한 번 재생합니다."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "데모용 버블 스타일: full 또는 minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "사용할 잠금 화면을 묻고 답을 출력합니다."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "잠금을 해제하려면 카메라를 보세요."
@@ -1035,7 +1123,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "이름 (선택)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "취소"
@@ -1055,14 +1143,65 @@ msgstr "시작하기"
msgid "Done"
msgstr "완료"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "잠금 화면 고르기"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "잠금 화면"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"이 데스크톱은 잠금 화면을 직접 고른 프로그램에 맡깁니다. 그곳에서 face unlock"
+"이 어떻게 보일지 고르세요. 나중에 설정에서 바꿀 수 있습니다."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "face-unlock 잠금 화면"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"위쪽의 버블, 시계, 배경 화면. 단축키와 자동 잠금이 face-unlock lock을 실행합"
+"니다."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "지금 잠금 화면 유지"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"그대로 둡니다. hyprlock이 버블 대신 위쪽에 한 줄의 글을 보여 줍니다. 빈 비밀"
+"번호 칸에서 Enter를 누르면 스캔합니다."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"그대로 둡니다. 버블은 없습니다. 빈 비밀번호 칸에서 Enter를 누르면 스캔합니다."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "계속"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "비밀번호"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "카메라를 보거나 비밀번호를 입력하세요"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "비밀번호를 입력하세요"
diff --git a/po/nl.po b/po/nl.po
index 01520cd..07a1bb3 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Dutch\n"
@@ -58,8 +58,9 @@ msgstr "Er is geen gezicht toegevoegd."
msgid "First, set up your face."
msgstr "Stel eerst je gezicht in."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Kon de instelling niet opslaan."
@@ -81,7 +82,15 @@ msgstr "Kon de GNOME-extensie die de bubbel toont niet inschakelen."
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Meld je één keer af en weer aan: dan toont GNOME de bubbel ook."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Kies je vergrendelscherm in het venster."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "Geen vergrendelscherm gekozen. Dat kan later ook onder Instellingen."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,102 +99,102 @@ msgstr ""
"Het vergrendelscherm (%s) neemt je gezicht ook. Scant het niet als je "
"terugkomt, druk dan op Enter in het lege wachtwoordveld."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Gezichtsontgrendeling staat aan. Vergrendel het scherm en kijk ernaar om het "
"te proberen."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Het werkt ook voor sudo en beheerdersvragen. Zie Instellingen."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Gezichtsontgrendeling staat uit. Je gezichten blijven bewaard; verwijder ze "
"onder Gezichten."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Er is nog geen gezicht ingesteld."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "aan"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "uit"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s opnames, %s bijgeleerd"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Welk gezicht? Zie `%s faces` voor de ID's."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Verwijderd."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Gebruik: face-unlock [opdracht]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Opdrachten:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Gezichtsontgrendeling aanzetten"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Uitzetten (gezichten blijven bewaard)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Een gezicht toevoegen"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "De gezichten tonen"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Een gezicht verwijderen"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "In de camera kijken en zien wat hij ziet"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Scherm vergrendelen"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Tonen wat er aan staat"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Deze hulp tonen"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "De versie tonen"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Zonder opdracht verschijnt een interactief menu."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -193,42 +202,42 @@ msgstr ""
"Voer dit uit als je eigen gebruiker, niet als root. Het vraagt om je "
"wachtwoord als dat nodig is."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Onbekende opdracht: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "nooit"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "zojuist"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 minuut geleden"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d minuten geleden"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 uur geleden"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d uur geleden"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 dag geleden"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d dagen geleden"
@@ -268,7 +277,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "De camera kon niet worden gebruikt."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "De herkenningsmodellen ontbreken. Installeer het pakket opnieuw."
@@ -372,11 +381,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[j/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "AAN"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "UIT"
@@ -417,85 +426,93 @@ msgstr "langzaam"
msgid "%s seconds"
msgstr "%s seconden"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automatisch"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "die van face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "de jouwe"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Gezichtsontgrendeling"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Dienst"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "draait niet"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Gezichtsontgrendeling opnieuw aanzetten start hem."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Gezichten"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "nog geen ingesteld"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "allemaal uit"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "geen gevonden"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Camera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Vergrendelscherm"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Beheerdersvragen"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Vergrendelschermen"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Fotocontrole"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Gepauzeerd"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "nog %d minuten, of tot het wachtwoord wordt gebruikt"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Laatste ontgrendeling"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "De agent voor het vergrendelscherm draait niet."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -503,7 +520,7 @@ msgstr ""
"Op GNOME toont een kleine GNOME-extensie de bubbel. Als je "
"gezichtsontgrendeling inschakelt, gaat die ook aan."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -513,7 +530,7 @@ msgstr ""
"van face-unlock (`face-unlock lock`, met de bubbel) en opent ze. Andere "
"vergrendelschermen scannen met Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -521,7 +538,7 @@ msgstr ""
"Ontgrendelt het vergrendelscherm als het je gezicht ziet. Uit: daar werkt "
"alleen je wachtwoord."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -529,7 +546,7 @@ msgstr ""
"Scant als je op het vergrendelscherm een toets indrukt of de muis beweegt, "
"en als de computer ontwaakt."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -537,7 +554,7 @@ msgstr ""
"Scant zodra het scherm vergrendelt. Standaard uit: vergrendel je zelf, dan "
"zou het meteen weer ontgrendelen."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -545,7 +562,17 @@ msgstr ""
"sudo neemt je gezicht in plaats van het wachtwoord. Geen match: je typt "
"zoals gewoonlijk je wachtwoord."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"Het vergrendelscherm van face-unlock toont de bubbel, en je vergrendelt met "
+"`face-unlock lock`. Of houd de jouwe: hyprlock toont dan bovenaan een regel "
+"tekst. Enter opent de keuze."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -555,11 +582,11 @@ msgstr ""
"lock`). Leeg: die van je bureaublad. Of een bestand, een map waaruit er "
"willekeurig een wordt gekozen, of `none`. Enter om te typen."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Vervaagt de afbeelding achter het vergrendelscherm van face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -568,7 +595,7 @@ msgstr ""
"Het vergrendelscherm neemt je gezicht in zijn wachtwoordcontrole. Druk op "
"Enter in het lege veld om te scannen. Hier gevonden: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -576,18 +603,18 @@ msgstr ""
"De wachtwoordvensters van je bureaublad en apps, bijvoorbeeld bij het "
"installeren van software. Geen match: je typt je wachtwoord."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Je moet knipperen of je hoofd een beetje draaien. Dat houdt ook geprinte "
"foto's tegen."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Helemaal geen controle. Alleen om een camera uit te proberen."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -595,22 +622,22 @@ msgstr ""
"Houdt foto's op een telefoon, tablet of glanzend papier tegen. Knipperen is "
"niet nodig. Een matte geprinte foto kan erdoor komen."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Minder verwisselingen, maar met een bril of bij slecht licht herkent het je "
"misschien niet."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Herkent je makkelijker, maar ook iemand die veel op je lijkt."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "De standaard. Goed voor de meeste mensen."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -618,7 +645,7 @@ msgstr ""
"Je ogen moeten open zijn en naar het scherm kijken. Zo ontgrendelt het niet "
"als je wegkijkt of slaapt."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -627,11 +654,11 @@ msgstr ""
"opnieuw in. Een infraroodcamera heeft zijn lampje nodig (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Hoe lang de camera naar je gezicht zoekt voordat hij opgeeft."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -639,7 +666,7 @@ msgstr ""
"Na een zekere match onthoudt het hoe je er nu uitziet. Een nieuw kapsel of "
"een bril vraagt dus niet om opnieuw instellen."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -647,97 +674,97 @@ msgstr ""
"Geen scan als de laptop dicht is, bijvoorbeeld aan een bureau met een extern "
"scherm."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "De bubbel boven aan het scherm laat zien wat de camera doet."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Een kleine pil met een slot dat opengaat."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Een eiland met een gezicht dat rondkijkt, daarna ringen en een vinkje."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Hoe snel de bubbel beweegt."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "Toont de bubbel ook als sudo of een beheerdersvraag je gezicht scant."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automatisch (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(infrarood)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(niet aangesloten)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "zoals bureaublad"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "geen"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Afbeelding of map:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Niet gevonden: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Instellingen"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ kiezen ←→ of Spatie: wijzigen q: terug"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "voor alle gebruikers, vraagt om je wachtwoord"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Omhoog/Omlaag: kiezen, Spatie: aan/uit, r: hernoemen, d: verwijderen, a: "
"toevoegen, q: terug"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Er is nog geen gezicht ingesteld. Druk op a om er een toe te voegen."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Nieuwe naam:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "“%s” verwijderen?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Gezichtsontgrendeling aan- of uitzetten"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Uitproberen"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Afsluiten"
@@ -787,6 +814,54 @@ msgstr ""
"Hyprland start de agent voor het vergrendelscherm niet zelf. Voeg dit toe "
"aan %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Om ermee te vergrendelen, voeg dit toe aan %s en zet %s in %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Om ermee te vergrendelen, voeg dit toe aan de binds in %s en gebruik %s in "
+"swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Om ermee te vergrendelen, start %s waar je vergrendelscherm nu wordt gestart."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Je vergrendelt nu met het vergrendelscherm van face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock toont bovenaan wat face unlock doet, vanaf de volgende keer "
+"vergrendelen."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Kon de regel niet aan %s toevoegen."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Je vergrendelscherm blijft zoals het is. Druk op Enter in het lege "
+"wachtwoordveld om te scannen."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock heeft geen %s, dus het kan de tekst niet tonen."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Ontgrendelen met je gezicht"
@@ -799,6 +874,10 @@ msgstr "Scannen als je terugkomt"
msgid "Scan right after locking"
msgstr "Scannen direct na vergrendelen"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Welk vergrendelscherm"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Achtergrond"
@@ -966,35 +1045,48 @@ msgstr "De camera is bezig met een andere scan. Probeer het zo opnieuw."
msgid "The face could not be added (%1)."
msgstr "Het gezicht kon niet worden toegevoegd (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Zoekt je gezicht…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Verkeerd wachtwoord"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Gezicht herkend"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Gezichtsontgrendeling voor het vergrendelscherm, sudo en beheerdersvragen"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Een gezicht instellen."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Hoe het nieuwe gezicht moet heten."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Het scherm vergrendelen."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "De animaties van de bubbel één keer afspelen."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Bubbelstijl voor de demo: full of minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Vraagt welk vergrendelscherm te gebruiken en print het antwoord."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Kijk in de camera om te ontgrendelen."
@@ -1053,7 +1145,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Naam (optioneel)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Annuleren"
@@ -1073,14 +1165,67 @@ msgstr "Aan de slag"
msgid "Done"
msgstr "Klaar"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Kies je vergrendelscherm"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Je vergrendelscherm"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Je bureaublad laat het vergrendelscherm over aan een programma naar keuze. "
+"Kies hoe face unlock daar verschijnt. Je kunt dit later onder Instellingen "
+"wijzigen."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Vergrendelscherm van face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"De bubbel bovenaan, de tijd en je achtergrond. Je sneltoets en vergrendelen "
+"bij inactiviteit starten dan face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Je eigen vergrendelscherm houden"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Het blijft zoals het is. hyprlock toont bovenaan een regel tekst in plaats "
+"van de bubbel. Enter in het lege wachtwoordveld scant."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Het blijft zoals het is, zonder bubbel. Enter in het lege wachtwoordveld "
+"scant."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Doorgaan"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Wachtwoord"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Kijk naar de camera of typ je wachtwoord"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Typ je wachtwoord"
diff --git a/po/pl.po b/po/pl.po
index e989cba..597ac45 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Polish\n"
@@ -59,8 +59,9 @@ msgstr "Nie dodano żadnej twarzy."
msgid "First, set up your face."
msgstr "Najpierw skonfiguruj swoją twarz."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Nie udało się zapisać ustawienia."
@@ -82,7 +83,15 @@ msgstr "Nie udało się włączyć rozszerzenia GNOME, które pokazuje dymek."
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Wyloguj się i zaloguj ponownie raz: wtedy GNOME też pokaże dymek."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Wybierz ekran blokady w oknie."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "Nie wybrano ekranu blokady. Możesz to zrobić później w Ustawieniach."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,102 +100,102 @@ msgstr ""
"Ekran blokady (%s) też przyjmuje twarz. Jeśli nie skanuje, gdy wracasz, "
"naciśnij Enter w pustym polu hasła."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Odblokowywanie twarzą jest włączone. Zablokuj ekran i spójrz na niego, aby "
"wypróbować."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Działa też dla sudo i okien administratora. Zobacz Ustawienia."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Odblokowywanie twarzą jest wyłączone. Twoje twarze zostają zachowane; "
"usuniesz je w Twarzach."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Nie skonfigurowano jeszcze żadnej twarzy."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "wł."
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "wył."
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "próbki: %s, wyuczone: %s"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Która twarz? Identyfikatory pokazuje `%s faces`."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Usunięto."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Użycie: face-unlock [polecenie]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Polecenia:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Włącz odblokowywanie twarzą"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Wyłącz je (twarze zostają zachowane)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Dodaj twarz"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Pokaż listę twarzy"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Usuń twarz"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Spójrz w kamerę i zobacz, co widzi"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Zablokuj ekran"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Pokaż, co jest włączone"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Pokaż tę pomoc"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Pokaż wersję"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Bez polecenia wyświetla się interaktywne menu."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -194,42 +203,42 @@ msgstr ""
"Uruchom to jako swój użytkownik, nie jako root. Hasło zostanie zapytane, gdy "
"będzie potrzebne."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Nieznane polecenie: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "nigdy"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "przed chwilą"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 minutę temu"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d min temu"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 godzinę temu"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d godz. temu"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 dzień temu"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d dni temu"
@@ -269,7 +278,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Nie udało się użyć kamery."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Brakuje modeli rozpoznawania. Zainstaluj pakiet ponownie."
@@ -373,11 +382,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[t/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "WŁ."
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "WYŁ."
@@ -418,85 +427,93 @@ msgstr "wolna"
msgid "%s seconds"
msgstr "%s s"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automatyczna"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "twój"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Odblokowywanie twarzą"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Usługa"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "nie działa"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Ponowne włączenie odblokowywania twarzą ją uruchomi."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Twarze"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "jeszcze żadnej"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "wszystkie wyłączone"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "nie znaleziono"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Kamera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Ekran blokady"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Okna administratora"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Ekrany blokady"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Wykrywanie zdjęć"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Wstrzymane"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "jeszcze %d min lub do użycia hasła"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Ostatnie odblokowanie"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "Agent ekranu blokady nie działa."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -504,7 +521,7 @@ msgstr ""
"W GNOME dymek pokazuje małe rozszerzenie GNOME. Włączenie odblokowywania "
"twarzą włącza też je."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +531,7 @@ msgstr ""
"unlock (`face-unlock lock`, z dymkiem), i je otwiera. Inne ekrany blokady "
"skanują po Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -522,7 +539,7 @@ msgstr ""
"Odblokowuje ekran blokady, gdy widzi twoją twarz. Wyłączone: działa tam "
"tylko hasło."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -530,7 +547,7 @@ msgstr ""
"Skanuje, gdy naciśniesz klawisz lub poruszysz myszą na ekranie blokady, oraz "
"gdy komputer się wybudzi."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -538,7 +555,7 @@ msgstr ""
"Skanuje od razu po zablokowaniu ekranu. Domyślnie wyłączone: gdy zablokujesz "
"sam, od razu by się odblokował."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -546,7 +563,17 @@ msgstr ""
"sudo przyjmuje twarz zamiast hasła. Gdy nie pasuje, wpisujesz hasło jak "
"zwykle."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"Ekran blokady face-unlock pokazuje dymek, a blokujesz go przez `face-unlock "
+"lock`. Albo zostaw swój: hyprlock pokaże wtedy u góry linię tekstu. Enter "
+"otwiera wybór."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +583,11 @@ msgstr ""
"pulpitu. Albo plik, folder, z którego losowany jest obraz, albo `none`. "
"Enter, aby wpisać."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Rozmywa obraz za ekranem blokady face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +596,7 @@ msgstr ""
"Ekran blokady przyjmuje twarz przy sprawdzaniu hasła. Naciśnij Enter w "
"pustym polu, aby skanować. Znalezione tutaj: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -577,18 +604,18 @@ msgstr ""
"Okna haseł pulpitu i aplikacji, na przykład przy instalowaniu programów. Gdy "
"twarz nie pasuje, wpisujesz hasło."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Musisz mrugnąć albo lekko obrócić głowę. To zatrzymuje też wydrukowane "
"zdjęcia."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Bez żadnej kontroli. Tylko do wypróbowania kamery."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Zatrzymuje zdjęcia na telefonie, tablecie lub błyszczącym papierze. Nie "
"trzeba mrugać. Matowy wydruk może przejść."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Mniej pomyłek, ale może cię nie rozpoznać w okularach albo przy słabym "
"świetle."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Łatwiej cię rozpoznaje, ale też kogoś bardzo do ciebie podobnego."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "Domyślna. Pasuje większości osób."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Twoje oczy muszą być otwarte i patrzeć na ekran. Dzięki temu nie odblokuje, "
"gdy patrzysz w bok lub śpisz."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"nowa. Kamera na podczerwień potrzebuje włączonego światła (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Jak długo kamera szuka twojej twarzy, zanim się podda."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"Po pewnym dopasowaniu zapamiętuje, jak teraz wyglądasz. Nowa fryzura czy "
"okulary nie wymagają więc ponownej konfiguracji."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -648,98 +675,98 @@ msgstr ""
"Bez skanowania, gdy laptop jest zamknięty, na przykład przy biurku z "
"zewnętrznym ekranem."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Dymek u góry ekranu pokazuje, co robi kamera."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Mała pigułka z kłódką, która się otwiera."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Wyspa z twarzą, która się rozgląda, potem pierścienie i ptaszek."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Jak szybko porusza się dymek."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Pokazuje dymek także wtedy, gdy sudo lub okno administratora skanuje twarz."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automatyczna (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(podczerwień)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(niepodłączona)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "jak na pulpicie"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "brak"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Obraz lub folder:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Nie znaleziono: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Ustawienia"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ wybierz ←→ lub Spacja: zmień q: wstecz"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "dla wszystkich użytkowników, pyta o hasło"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Góra/Dół: wybierz, Spacja: wł./wył., r: zmień nazwę, d: usuń, a: dodaj, q: "
"wstecz"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Nie skonfigurowano jeszcze żadnej twarzy. Naciśnij a, aby dodać."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Nowa nazwa:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Usunąć „%s”?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Włącz lub wyłącz odblokowywanie twarzą"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Wypróbuj"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Zakończ"
@@ -784,6 +811,50 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland nie uruchamia sam agenta ekranu blokady. Dodaj to do %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Aby nim blokować, dodaj to do %s i ustaw %s w %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr "Aby nim blokować, dodaj to do binds w %s i użyj %s w swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Aby nim blokować, uruchamiaj %s tam, gdzie teraz startuje twój ekran blokady."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Teraz blokujesz ekranem blokady face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr "hyprlock pokaże u góry, co robi face unlock, od następnej blokady."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Nie udało się dodać linii do %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Twój ekran blokady zostaje bez zmian. Naciśnij Enter w pustym polu hasła, "
+"aby skanować."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock nie ma %s, więc nie może pokazać tekstu."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Odblokowuj twarzą"
@@ -796,6 +867,10 @@ msgstr "Skanuj, gdy wracasz"
msgid "Scan right after locking"
msgstr "Skanuj zaraz po zablokowaniu"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Który ekran blokady"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Tapeta"
@@ -962,34 +1037,47 @@ msgstr "Kamera jest zajęta innym skanowaniem. Spróbuj ponownie za chwilę."
msgid "The face could not be added (%1)."
msgstr "Nie udało się dodać twarzy (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Szukam twojej twarzy…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Złe hasło"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Rozpoznano twarz"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Odblokowywanie twarzą dla ekranu blokady, sudo i okien administratora"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Skonfiguruj twarz."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Jak nazwać nową twarz."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Zablokuj ekran."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Odtwórz raz animacje dymka."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Styl dymka w demo: full lub minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Pyta, którego ekranu blokady użyć, i wypisuje odpowiedź."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Spójrz w kamerę, aby odblokować."
@@ -1048,7 +1136,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Nazwa (opcjonalnie)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Anuluj"
@@ -1068,14 +1156,64 @@ msgstr "Zaczynamy"
msgid "Done"
msgstr "Gotowe"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Wybierz ekran blokady"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Twój ekran blokady"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Twój pulpit zostawia ekran blokady programowi, który wybierasz. Wybierz, jak "
+"face unlock ma się tam pokazywać. Możesz to zmienić później w Ustawieniach."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Ekran blokady face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"Dymek u góry, godzina i twoja tapeta. Twój skrót i blokada po bezczynności "
+"uruchamiają wtedy face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Zostaw swój ekran blokady"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Zostaje bez zmian. hyprlock pokazuje u góry linię tekstu zamiast dymka. "
+"Enter w pustym polu hasła skanuje."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr "Zostaje bez zmian, bez dymka. Enter w pustym polu hasła skanuje."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Dalej"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Hasło"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Spójrz w kamerę albo wpisz hasło"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Wpisz hasło"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index a516b7e..a199f80 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Brazilian Portuguese\n"
@@ -58,8 +58,9 @@ msgstr "Nenhum rosto foi adicionado."
msgid "First, set up your face."
msgstr "Primeiro, configure o seu rosto."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Não foi possível salvar a configuração."
@@ -81,7 +82,17 @@ msgstr "Não foi possível ativar a extensão do GNOME que mostra a bolha."
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Saia e entre de novo uma vez: aí o GNOME também mostra a bolha."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Escolha sua tela de bloqueio na janela."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr ""
+"Nenhuma tela de bloqueio escolhida. Você pode fazer isso depois em "
+"Configurações."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -90,103 +101,103 @@ msgstr ""
"A tela de bloqueio (%s) também aceita seu rosto. Se ela não escanear quando "
"você voltar, pressione Enter no campo de senha vazio."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"O desbloqueio facial está ativado. Bloqueie a tela e olhe para ela para "
"testar."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
"Ele também funciona com sudo e pedidos de administrador. Veja Configurações."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"O desbloqueio facial está desativado. Seus rostos são mantidos; apague-os em "
"Rostos."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Nenhum rosto configurado ainda."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "ativado"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "desativado"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s amostras, %s aprendidas"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Qual rosto? Veja `%s faces` para os IDs."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Apagado."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Uso: face-unlock [comando]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Comandos:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Ativar o desbloqueio facial"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Desativar (os rostos são mantidos)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Adicionar um rosto"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Listar os rostos"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Apagar um rosto"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Olhar para a câmera e ver o que ela vê"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Bloquear a tela"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Mostrar o que está ativado"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Mostrar esta ajuda"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Mostrar a versão"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Sem comando, um menu interativo é exibido."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -194,42 +205,42 @@ msgstr ""
"Execute isto com o seu próprio usuário, não como root. Ele pede a sua senha "
"quando precisa."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Comando desconhecido: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "nunca"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "agora mesmo"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "há 1 minuto"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "há %d minutos"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "há 1 hora"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "há %d horas"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "há 1 dia"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "há %d dias"
@@ -269,7 +280,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Não foi possível usar a câmera."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Os modelos de reconhecimento estão faltando. Reinstale o pacote."
@@ -373,11 +384,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[s/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "ATIVADO"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "DESATIVADO"
@@ -418,85 +429,93 @@ msgstr "lenta"
msgid "%s seconds"
msgstr "%s segundos"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "automática"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "a do face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "a sua"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Desbloqueio facial"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Serviço"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "parado"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Ativar o desbloqueio facial de novo o inicia."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Rostos"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "nenhum configurado ainda"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "todos desativados"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "nenhuma encontrada"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Câmera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Tela de bloqueio"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Pedidos de administrador"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Telas de bloqueio"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Detecção de foto"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Pausado"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "por mais %d minutos, ou até a senha ser usada"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Último desbloqueio"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "O agente da tela de bloqueio não está em execução."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -504,7 +523,7 @@ msgstr ""
"No GNOME, uma pequena extensão do GNOME mostra a bolha. Ativar o desbloqueio "
"facial também a ativa."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +533,7 @@ msgstr ""
"face-unlock (`face-unlock lock`, com a bolha) e os abre. As outras telas de "
"bloqueio escaneiam com Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -522,7 +541,7 @@ msgstr ""
"Desbloqueia a tela de bloqueio quando vê o seu rosto. Desativado: lá só a "
"sua senha funciona."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -530,7 +549,7 @@ msgstr ""
"Faz a leitura quando você aperta uma tecla ou mexe o mouse na tela de "
"bloqueio, e quando o computador acorda."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -538,7 +557,7 @@ msgstr ""
"Faz a leitura assim que a tela é bloqueada. Desativado por padrão: se você "
"mesmo bloquear, ela desbloquearia logo em seguida."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -546,7 +565,17 @@ msgstr ""
"O sudo usa o seu rosto em vez da senha. Se não corresponder, você digita a "
"senha como sempre."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"A tela de bloqueio do face-unlock mostra a bolha, e você bloqueia com `face-"
+"unlock lock`. Ou mantenha a sua: o hyprlock então mostra uma linha de texto "
+"no topo. Enter abre a escolha."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +585,11 @@ msgstr ""
"Vazio: a da sua área de trabalho. Ou um arquivo, uma pasta da qual uma é "
"escolhida ao acaso, ou `none`. Enter para digitar."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Desfoca a imagem atrás da tela de bloqueio do face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +598,7 @@ msgstr ""
"A tela de bloqueio aceita seu rosto na verificação de senha. Pressione Enter "
"no campo vazio para escanear. Encontradas aqui: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -577,18 +606,18 @@ msgstr ""
"As janelas de senha da sua área de trabalho e dos apps, por exemplo ao "
"instalar programas. Se não corresponder, você digita a senha."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Você precisa piscar ou virar um pouco a cabeça. Isso também barra fotos "
"impressas."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Nenhuma verificação. Só para testar uma câmera."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -596,23 +625,23 @@ msgstr ""
"Barra fotos em celular, tablet ou papel brilhante. Não é preciso piscar. Uma "
"foto impressa em papel fosco pode passar."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Menos confusões, mas talvez não reconheça você de óculos ou com pouca luz."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr ""
"Reconhece você com mais facilidade, mas também alguém muito parecido com "
"você."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "O padrão. Serve para a maioria das pessoas."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -620,7 +649,7 @@ msgstr ""
"Seus olhos precisam estar abertos e voltados para a tela. Assim não "
"desbloqueia enquanto você olha para outro lado ou dorme."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -629,11 +658,11 @@ msgstr ""
"rosto de novo. Uma câmera infravermelha precisa da luz ligada (linux-enable-"
"ir-emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Quanto tempo a câmera procura o seu rosto antes de desistir."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -641,7 +670,7 @@ msgstr ""
"Após uma correspondência segura, ele guarda a sua aparência atual. Assim, um "
"corte de cabelo novo ou óculos não exigem nova configuração."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -649,99 +678,99 @@ msgstr ""
"Nenhuma leitura com o notebook fechado, por exemplo numa mesa com uma tela "
"externa."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "A bolha no topo da tela mostra o que a câmera está fazendo."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Uma pequena pílula com um cadeado que se abre."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Uma ilha com um rosto que olha em volta, depois anéis e um visto."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "A velocidade com que a bolha se move."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Mostra a bolha também quando o sudo ou um pedido de administrador lê o seu "
"rosto."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "automática (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(infravermelha)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(não conectada)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "igual à área de trabalho"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "nenhum"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Imagem ou pasta:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Não encontrado: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Configurações"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ escolher ←→ ou Espaço: mudar q: voltar"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "para todos os usuários, pede a sua senha"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Cima/Baixo: escolher, Espaço: ativar/desativar, r: renomear, d: apagar, a: "
"adicionar, q: voltar"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Nenhum rosto configurado ainda. Aperte a para adicionar um."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Novo nome:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Apagar \"%s\"?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Ativar ou desativar o desbloqueio facial"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Testar"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Sair"
@@ -789,6 +818,53 @@ msgstr ""
"O Hyprland não inicia o agente da tela de bloqueio sozinho. Adicione isto a "
"%s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Para bloquear com ela, adicione isto a %s e defina %s em %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Para bloquear com ela, adicione isto aos binds em %s e use %s no swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Para bloquear com ela, rode %s onde sua tela de bloqueio é iniciada hoje."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Agora você bloqueia com a tela de bloqueio do face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"O hyprlock mostra no topo o que o face unlock está fazendo, a partir do "
+"próximo bloqueio."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Não foi possível adicionar a linha a %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Sua tela de bloqueio fica como está. Pressione Enter no campo de senha vazio "
+"para escanear."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "O hyprlock não tem %s, então não pode mostrar o texto."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Desbloquear com o rosto"
@@ -801,6 +877,10 @@ msgstr "Ler quando você voltar"
msgid "Scan right after locking"
msgstr "Ler logo após bloquear"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Qual tela de bloqueio"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Papel de parede"
@@ -968,36 +1048,49 @@ msgstr "A câmera está ocupada com outra leitura. Tente de novo em instantes."
msgid "The face could not be added (%1)."
msgstr "Não foi possível adicionar o rosto (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Procurando seu rosto…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Senha incorreta"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Rosto reconhecido"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Desbloqueio facial para a tela de bloqueio, o sudo e os pedidos de "
"administrador"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Configurar um rosto."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Como chamar o novo rosto."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Bloquear a tela."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Reproduzir as animações da bolha uma vez."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Estilo da bolha para a demonstração: full ou minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Pergunta qual tela de bloqueio usar e imprime a resposta."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Olhe para a câmera para desbloquear."
@@ -1055,7 +1148,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Nome (opcional)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Cancelar"
@@ -1075,14 +1168,66 @@ msgstr "Começar"
msgid "Done"
msgstr "Concluído"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Escolha sua tela de bloqueio"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Sua tela de bloqueio"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Sua área de trabalho deixa a tela de bloqueio para um programa da sua "
+"escolha. Escolha como o face unlock aparece lá. Você pode mudar isso depois "
+"em Configurações."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Tela de bloqueio do face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"A bolha no topo, a hora e seu papel de parede. Seu atalho e o bloqueio por "
+"inatividade passam a rodar face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Manter sua tela de bloqueio"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Ela fica como está. O hyprlock mostra uma linha de texto no topo em vez da "
+"bolha. Enter no campo de senha vazio escaneia."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Ela fica como está, sem a bolha. Enter no campo de senha vazio escaneia."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Continuar"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Senha"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Olhe para a câmera ou digite sua senha"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Digite sua senha"
diff --git a/po/ru.po b/po/ru.po
index 1ed8936..940417d 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Russian\n"
@@ -59,8 +59,9 @@ msgstr "Лицо не добавлено."
msgid "First, set up your face."
msgstr "Сначала настройте своё лицо."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Не удалось сохранить настройку."
@@ -82,7 +83,15 @@ msgstr "Не удалось включить расширение GNOME, кот
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Выйдите и войдите снова один раз: тогда GNOME тоже покажет пузырь."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Выберите экран блокировки в окне."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "Экран блокировки не выбран. Это можно сделать позже в Настройках."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,102 +100,102 @@ msgstr ""
"Экран блокировки (%s) тоже принимает ваше лицо. Если он не сканирует, когда "
"вы возвращаетесь, нажмите Enter в пустом поле пароля."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Разблокировка по лицу включена. Заблокируйте экран и посмотрите на него, "
"чтобы попробовать."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "Она работает и для sudo, и для запросов администратора. См. Настройки."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Разблокировка по лицу выключена. Ваши лица сохранены; удалить их можно в "
"разделе Лица."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Ещё не настроено ни одного лица."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "вкл."
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "выкл."
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "образцов: %s, выучено: %s"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Какое лицо? Номера показывает `%s faces`."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Удалено."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Использование: face-unlock [команда]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Команды:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Включить разблокировку по лицу"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Выключить её (лица сохраняются)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Добавить лицо"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Показать список лиц"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Удалить лицо"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Посмотреть в камеру и увидеть, что она видит"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Заблокировать экран"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Показать, что включено"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Показать эту справку"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Показать версию"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Без команды открывается интерактивное меню."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -194,42 +203,42 @@ msgstr ""
"Запускайте это от своего пользователя, не от root. Пароль будет запрошен, "
"когда он понадобится."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Неизвестная команда: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "никогда"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "только что"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 минуту назад"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d мин назад"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 час назад"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d ч назад"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 день назад"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d дн. назад"
@@ -269,7 +278,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Не удалось использовать камеру."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Нет моделей распознавания. Переустановите пакет."
@@ -373,11 +382,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[д/Н]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "ВКЛ"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "ВЫКЛ"
@@ -418,85 +427,93 @@ msgstr "медленная"
msgid "%s seconds"
msgstr "%s с"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "автоматически"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "ваш"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Разблокировка по лицу"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Служба"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "не запущена"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Повторное включение разблокировки по лицу запустит её."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Лица"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "пока не настроены"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "все выключены"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "не найдена"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Камера"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Экран блокировки"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Запросы администратора"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Экраны блокировки"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Проверка на фото"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Приостановлено"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "ещё %d мин или до ввода пароля"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Последняя разблокировка"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "Агент экрана блокировки не запущен."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -504,7 +521,7 @@ msgstr ""
"В GNOME пузырь показывает небольшое расширение GNOME. Оно включается вместе "
"с разблокировкой по лицу."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -514,7 +531,7 @@ msgstr ""
"блокировки face-unlock (`face-unlock lock`, с пузырём), и открывает их. "
"Другие экраны блокировки сканируют по Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -522,7 +539,7 @@ msgstr ""
"Снимает блокировку экрана, когда видит ваше лицо. Выкл.: там работает только "
"пароль."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -530,7 +547,7 @@ msgstr ""
"Сканирует, когда вы нажимаете клавишу или двигаете мышь на экране "
"блокировки, и когда компьютер просыпается."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -538,7 +555,7 @@ msgstr ""
"Сканирует сразу после блокировки экрана. По умолчанию выкл.: если вы "
"блокируете сами, он тут же разблокировался бы."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -546,7 +563,17 @@ msgstr ""
"sudo принимает ваше лицо вместо пароля. Не совпало: вы вводите пароль как "
"обычно."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"Экран блокировки face-unlock показывает пузырь, а блокировать нужно командой "
+"`face-unlock lock`. Или оставьте свой: тогда hyprlock покажет сверху строку "
+"текста. Enter открывает выбор."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -556,11 +583,11 @@ msgstr ""
"что на рабочем столе. Или файл, папка, из которой берётся случайная, или "
"`none`. Нажмите Enter, чтобы ввести."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Размывает картинку за экраном блокировки face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -569,7 +596,7 @@ msgstr ""
"Экран блокировки принимает ваше лицо при проверке пароля. Нажмите Enter в "
"пустом поле, чтобы сканировать. Найдено здесь: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -577,18 +604,18 @@ msgstr ""
"Окна ввода пароля рабочего стола и приложений, например при установке "
"программ. Не совпало: вы вводите пароль."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Нужно моргнуть или слегка повернуть голову. Это также останавливает "
"распечатанные фото."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Никакой проверки. Только чтобы опробовать камеру."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Останавливает фото на телефоне, планшете или глянцевой бумаге. Моргать не "
"нужно. Матовое распечатанное фото может пройти."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Меньше ошибочных совпадений, но может не узнать вас в очках или при плохом "
"свете."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Узнаёт вас легче, но и того, кто очень на вас похож."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "По умолчанию. Подходит большинству."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Ваши глаза должны быть открыты и смотреть на экран. Так он не "
"разблокируется, пока вы смотрите в сторону или спите."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"заново. Инфракрасной камере нужна включённая подсветка (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Как долго камера ищет ваше лицо, прежде чем сдаться."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"После уверенного совпадения запоминает, как вы выглядите сейчас. Новая "
"стрижка или очки не требуют новой настройки."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -648,99 +675,99 @@ msgstr ""
"Без сканирования, когда ноутбук закрыт, например за столом с внешним "
"монитором."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Пузырь вверху экрана показывает, что делает камера."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Маленькая таблетка с замком, который открывается."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Остров с лицом, которое оглядывается, затем кольца и галочка."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Как быстро движется пузырь."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Показывает пузырь и тогда, когда sudo или запрос администратора сканирует "
"ваше лицо."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "автоматически (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(инфракрасная)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(не подключена)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "как на рабочем столе"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "нет"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Картинка или папка:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Не найдено: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Настройки"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ выбор ←→ или Пробел: изменить q: назад"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "для всех пользователей, запрашивает пароль"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Вверх/Вниз: выбор, Пробел: вкл./выкл., r: переименовать, d: удалить, a: "
"добавить, q: назад"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Ещё не настроено ни одного лица. Нажмите a, чтобы добавить."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Новое имя:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Удалить «%s»?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Включить или выключить разблокировку по лицу"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Попробовать"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Выход"
@@ -786,6 +813,53 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland сам не запускает агент экрана блокировки. Добавьте это в %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Чтобы блокировать им, добавьте это в %s и укажите %s в %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Чтобы блокировать им, добавьте это в binds в %s и используйте %s в swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Чтобы блокировать им, запускайте %s там, где сейчас запускается ваш экран "
+"блокировки."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Теперь вы блокируете экраном блокировки face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"hyprlock покажет сверху, что делает face unlock, со следующей блокировки."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Не удалось добавить строку в %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Ваш экран блокировки остаётся как есть. Нажмите Enter в пустом поле пароля, "
+"чтобы сканировать."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "У hyprlock нет %s, поэтому он не может показать текст."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Разблокировать по лицу"
@@ -798,6 +872,10 @@ msgstr "Сканировать при возвращении"
msgid "Scan right after locking"
msgstr "Сканировать сразу после блокировки"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Какой экран блокировки"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Обои"
@@ -965,35 +1043,48 @@ msgstr "Камера занята другим сканированием. По
msgid "The face could not be added (%1)."
msgstr "Не удалось добавить лицо (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Ищу ваше лицо…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Неверный пароль"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Лицо распознано"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Разблокировка по лицу для экрана блокировки, sudo и запросов администратора"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Настроить лицо."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Как назвать новое лицо."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Заблокировать экран."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Один раз проиграть анимации пузыря."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Стиль пузыря для демо: full или minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Спрашивает, какой экран блокировки использовать, и выводит ответ."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Посмотрите в камеру, чтобы разблокировать."
@@ -1053,7 +1144,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Имя (необязательно)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Отмена"
@@ -1073,14 +1164,67 @@ msgstr "Начать"
msgid "Done"
msgstr "Готово"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Выбор экрана блокировки"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Ваш экран блокировки"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Ваш рабочий стол оставляет экран блокировки программе на ваш выбор. "
+"Выберите, как там будет выглядеть face unlock. Это можно изменить позже в "
+"Настройках."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Экран блокировки face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"Пузырь сверху, время и ваши обои. Ваше сочетание клавиш и блокировка по "
+"бездействию тогда запускают face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Оставить свой экран блокировки"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Он остаётся как есть. hyprlock показывает сверху строку текста вместо "
+"пузыря. Enter в пустом поле пароля запускает сканирование."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Он остаётся как есть, без пузыря. Enter в пустом поле пароля запускает "
+"сканирование."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Продолжить"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Пароль"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Посмотрите в камеру или введите пароль"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Введите пароль"
diff --git a/po/tr.po b/po/tr.po
index 277df5d..cf9f39d 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Turkish\n"
@@ -57,8 +57,9 @@ msgstr "Hiç yüz eklenmedi."
msgid "First, set up your face."
msgstr "Önce yüzünüzü kurun."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Ayar kaydedilemedi."
@@ -80,7 +81,15 @@ msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr ""
"Bir kez oturumu kapatıp yeniden açın: o zaman GNOME de baloncuğu gösterir."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Pencerede kilit ekranınızı seçin."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "Kilit ekranı seçilmedi. Bunu daha sonra Ayarlar'dan yapabilirsiniz."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -89,100 +98,100 @@ msgstr ""
"Kilit ekranı (%s) da yüzünüzü kabul eder. Döndüğünüzde taramazsa boş parola "
"alanında Enter'a basın."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "Yüzle kilit açma açık. Denemek için ekranı kilitleyin ve ona bakın."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "sudo ve yönetici istemlerinde de çalışabilir. Ayarlar'a bakın."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Yüzle kilit açma kapalı. Yüzleriniz saklanıyor; Yüzler bölümünden "
"silebilirsiniz."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Henüz hiç yüz kurulmadı."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "açık"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "kapalı"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s örnek, %s öğrenilen"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Hangi yüz? Kimlikler için `%s faces` komutuna bakın."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Silindi."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Kullanım: face-unlock [komut]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Komutlar:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Yüzle kilit açmayı aç"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Kapat (yüzler saklanır)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Yüz ekle"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Yüzleri listele"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Bir yüzü sil"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Kameraya bak ve onun ne gördüğünü gör"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Ekranı kilitle"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Neyin açık olduğunu göster"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Bu yardımı göster"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Sürümü göster"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Komut verilmezse etkileşimli bir menü gösterilir."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -190,42 +199,42 @@ msgstr ""
"Bunu root olarak değil, kendi kullanıcınızla çalıştırın. Gerektiğinde "
"parolanızı sorar."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Bilinmeyen komut: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "hiçbir zaman"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "az önce"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 dakika önce"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d dakika önce"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 saat önce"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d saat önce"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 gün önce"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d gün önce"
@@ -265,7 +274,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Kamera kullanılamadı."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Tanıma modelleri eksik. Paketi yeniden kurun."
@@ -369,11 +378,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[e/H]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "AÇIK"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "KAPALI"
@@ -414,85 +423,93 @@ msgstr "yavaş"
msgid "%s seconds"
msgstr "%s saniye"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "otomatik"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "sizinki"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Yüzle kilit açma"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Hizmet"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "çalışmıyor"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Yüzle kilit açmayı yeniden açmak onu başlatır."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Yüzler"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "henüz kurulmadı"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "hepsi kapalı"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "bulunamadı"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Kamera"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Kilit ekranı"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Yönetici istemleri"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Kilit ekranları"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Fotoğraf denetimi"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Duraklatıldı"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "%d dakika daha ya da parola kullanılana kadar"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Son kilit açma"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "Kilit ekranı aracısı çalışmıyor."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -500,7 +517,7 @@ msgstr ""
"GNOME'da baloncuğu küçük bir GNOME uzantısı gösterir. Yüzle kilit açmayı "
"açınca o da açılır."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -510,7 +527,7 @@ msgstr ""
"unlock lock`, baloncukla) döndüğünüzde tarar ve onları açar. Diğer kilit "
"ekranları Enter ile tarar."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -518,7 +535,7 @@ msgstr ""
"Yüzünüzü görünce kilit ekranını açar. Kapalı: orada yalnızca parolanız "
"çalışır."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -526,7 +543,7 @@ msgstr ""
"Kilit ekranında bir tuşa bastığınızda ya da fareyi oynattığınızda ve "
"bilgisayar uyandığında tarar."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -534,7 +551,7 @@ msgstr ""
"Ekran kilitlenir kilitlenmez tarar. Varsayılan olarak kapalı: kendiniz "
"kilitlerseniz hemen yeniden açılırdı."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -542,7 +559,17 @@ msgstr ""
"sudo parola yerine yüzünüzü kullanır. Eşleşmezse parolayı her zamanki gibi "
"yazarsınız."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"face-unlock'un kilit ekranı baloncuğu gösterir ve `face-unlock lock` ile "
+"kilitlersiniz. Ya da kendinizinkini koruyun: hyprlock o zaman üstte bir "
+"satır metin gösterir. Enter seçimi açar."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -552,11 +579,11 @@ msgstr ""
"masaüstünüzdeki resim. Ya da bir dosya, rastgele seçilecek bir klasör veya "
"`none`. Yazmak için Enter."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "face-unlock kilit ekranının arkasındaki resmi bulanıklaştırır."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -565,7 +592,7 @@ msgstr ""
"Kilit ekranı parola denetiminde yüzünüzü kabul eder. Taramak için boş alanda "
"Enter'a basın. Burada bulunanlar: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -573,18 +600,18 @@ msgstr ""
"Masaüstünüzün ve uygulamaların parola pencereleri, örneğin yazılım kurarken. "
"Eşleşmezse parolayı yazarsınız."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Göz kırpmanız ya da başınızı biraz çevirmeniz gerekir. Bu, basılı "
"fotoğrafları da durdurur."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Hiç denetim yok. Yalnızca bir kamerayı denemek için."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -592,21 +619,21 @@ msgstr ""
"Telefon, tablet ya da parlak kâğıttaki fotoğrafları durdurur. Göz kırpmanız "
"gerekmez. Mat basılı bir fotoğraf geçebilir."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Daha az yanlış eşleşme, ama gözlükle ya da kötü ışıkta sizi tanımayabilir."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Sizi daha kolay tanır, ama size çok benzeyen birini de."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "Varsayılan. Çoğu kişi için uygun."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -614,7 +641,7 @@ msgstr ""
"Gözleriniz açık ve ekrana dönük olmalı. Böylece başka yere bakarken ya da "
"uyurken kilit açılmaz."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -623,11 +650,11 @@ msgstr ""
"kurun. Kızılötesi kameranın ışığının açık olması gerekir (linux-enable-ir-"
"emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Kameranın vazgeçmeden önce yüzünüzü ne kadar aradığı."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -635,105 +662,105 @@ msgstr ""
"Kesin bir eşleşmeden sonra şu anki görünüşünüzü hatırlar. Böylece yeni saç "
"kesimi ya da gözlük yeniden kurulum gerektirmez."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
msgstr "Dizüstü kapalıyken tarama yok, örneğin harici ekranlı bir masada."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Ekranın üstündeki baloncuk kameranın ne yaptığını gösterir."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Açılan bir kilidi olan küçük bir hap."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr ""
"Etrafına bakan bir yüzü olan bir ada, ardından halkalar ve bir onay işareti."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Baloncuğun ne kadar hızlı hareket ettiği."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"sudo ya da bir yönetici istemi yüzünüzü taradığında da baloncuğu gösterir."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "otomatik (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(kızılötesi)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(bağlı değil)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "masaüstüyle aynı"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "yok"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Resim ya da klasör:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Bulunamadı: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Ayarlar"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ seç ←→ ya da Boşluk: değiştir q: geri"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "tüm kullanıcılar için, parolanızı sorar"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Yukarı/Aşağı: seç, Boşluk: aç/kapat, r: yeniden adlandır, d: sil, a: ekle, "
"q: geri"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Henüz hiç yüz kurulmadı. Eklemek için a tuşuna basın."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Yeni ad:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "\"%s\" silinsin mi?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Yüzle kilit açmayı aç ya da kapat"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Dene"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Çık"
@@ -781,6 +808,57 @@ msgstr ""
"Hyprland kilit ekranı aracısını kendiliğinden başlatmaz. Bunu %s dosyasına "
"ekleyin:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr ""
+"Onunla kilitlemek için bunu %s dosyasına ekleyin ve %s ayarını %s içine "
+"yazın:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Onunla kilitlemek için bunu %s içindeki binds'a ekleyin ve swayidle'da %s "
+"kullanın:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Onunla kilitlemek için kilit ekranınızın şu an başlatıldığı yerde %s "
+"çalıştırın."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Artık face-unlock'un kilit ekranıyla kilitliyorsunuz."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr ""
+"Bir sonraki kilitlemeden itibaren hyprlock, face unlock'un ne yaptığını "
+"üstte gösterir."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Satır %s dosyasına eklenemedi."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Kilit ekranınız olduğu gibi kalır. Taramak için boş parola alanında Enter'a "
+"basın."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock'un %s dosyası yok, bu yüzden metni gösteremez."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Yüzünüzle kilidi açın"
@@ -793,6 +871,10 @@ msgstr "Geri döndüğünüzde tara"
msgid "Scan right after locking"
msgstr "Kilitledikten hemen sonra tara"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Hangi kilit ekranı"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Duvar kâğıdı"
@@ -957,34 +1039,47 @@ msgstr "Kamera başka bir taramayla meşgul. Birazdan yeniden deneyin."
msgid "The face could not be added (%1)."
msgstr "Yüz eklenemedi (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Yüzünüz aranıyor…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Yanlış parola"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Yüz tanındı"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "Kilit ekranı, sudo ve yönetici istemleri için yüzle kilit açma"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Bir yüz kur."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Yeni yüzün adı."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Ekranı kilitle."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Baloncuğun animasyonlarını bir kez oynat."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Demo için baloncuk stili: full ya da minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Hangi kilit ekranının kullanılacağını sorar ve cevabı yazdırır."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Kilidi açmak için kameraya bakın."
@@ -1043,7 +1138,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Ad (isteğe bağlı)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "İptal"
@@ -1063,14 +1158,66 @@ msgstr "Başlayalım"
msgid "Done"
msgstr "Bitti"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Kilit ekranınızı seçin"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Kilit ekranınız"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Masaüstünüz kilit ekranını seçtiğiniz bir programa bırakır. face unlock'un "
+"orada nasıl görüneceğini seçin. Bunu daha sonra Ayarlar'dan "
+"değiştirebilirsiniz."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "face-unlock'un kilit ekranı"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"Üstte baloncuk, saat ve duvar kağıdınız. Kısayolunuz ve boşta kilitleme o "
+"zaman face-unlock lock çalıştırır."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Kilit ekranınızı koruyun"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Olduğu gibi kalır. hyprlock baloncuk yerine üstte bir satır metin gösterir. "
+"Boş parola alanında Enter tarama yapar."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Olduğu gibi kalır, baloncuk olmadan. Boş parola alanında Enter tarama yapar."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Devam"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Parola"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Kameraya bakın ya da parolanızı yazın"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Parolanızı yazın"
diff --git a/po/uk.po b/po/uk.po
index 507adab..41a1198 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Ukrainian\n"
@@ -59,8 +59,9 @@ msgstr "Обличчя не додано."
msgid "First, set up your face."
msgstr "Спершу налаштуйте своє обличчя."
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "Не вдалося зберегти налаштування."
@@ -82,7 +83,15 @@ msgstr "Не вдалося увімкнути розширення GNOME, як
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "Вийдіть і увійдіть знову один раз: тоді GNOME теж покаже бульбашку."
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "Виберіть екран блокування у вікні."
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "Екран блокування не вибрано. Це можна зробити пізніше в Налаштуваннях."
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -91,103 +100,103 @@ msgstr ""
"Екран блокування (%s) теж приймає ваше обличчя. Якщо він не сканує, коли ви "
"повертаєтеся, натисніть Enter у порожньому полі пароля."
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr ""
"Розблокування обличчям увімкнено. Заблокуйте екран і подивіться на нього, "
"щоб спробувати."
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr ""
"Воно працює і для sudo, і для запитів адміністратора. Див. Налаштування."
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr ""
"Розблокування обличчям вимкнено. Ваші обличчя збережено; видалити їх можна в "
"розділі Обличчя."
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "Ще не налаштовано жодного обличчя."
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "увімк."
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "вимк."
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "зразків: %s, вивчено: %s"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "Яке обличчя? Номери показує `%s faces`."
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "Видалено."
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "Використання: face-unlock [команда]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "Команди:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "Увімкнути розблокування обличчям"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "Вимкнути його (обличчя зберігаються)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "Додати обличчя"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "Показати список облич"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "Видалити обличчя"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "Подивитися в камеру і побачити, що вона бачить"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "Заблокувати екран"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "Показати, що увімкнено"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "Показати цю довідку"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "Показати версію"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "Без команди відкривається інтерактивне меню."
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
@@ -195,42 +204,42 @@ msgstr ""
"Запускайте це від свого користувача, не від root. Пароль буде запитано, коли "
"він знадобиться."
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "Невідома команда: %s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "ніколи"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "щойно"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 хвилину тому"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d хв тому"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 годину тому"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d год тому"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 день тому"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d дн. тому"
@@ -270,7 +279,7 @@ msgstr ""
msgid "The camera could not be used."
msgstr "Не вдалося використати камеру."
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "Немає моделей розпізнавання. Перевстановіть пакунок."
@@ -374,11 +383,11 @@ msgstr ""
msgid "[y/N]"
msgstr "[т/Н]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "УВІМК"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "ВИМК"
@@ -419,85 +428,93 @@ msgstr "повільна"
msgid "%s seconds"
msgstr "%s с"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "автоматично"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "ваш"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "Розблокування обличчям"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "Служба"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "не запущена"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "Повторне ввімкнення розблокування обличчям запустить її."
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "Обличчя"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "ще не налаштовано"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "усі вимкнено"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "не знайдено"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "Камера"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "Екран блокування"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "Запити адміністратора"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "Екрани блокування"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "Перевірка на фото"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "Призупинено"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "ще %d хв або до введення пароля"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "Останнє розблокування"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "Агент екрана блокування не запущено."
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
@@ -505,7 +522,7 @@ msgstr ""
"У GNOME бульбашку показує невелике розширення GNOME. Воно вмикається разом "
"із розблокуванням обличчям."
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -515,7 +532,7 @@ msgstr ""
"блокування face-unlock (`face-unlock lock`, з бульбашкою), і відкриває їх. "
"Інші екрани блокування сканують за Enter."
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
@@ -523,7 +540,7 @@ msgstr ""
"Розблоковує екран блокування, коли бачить ваше обличчя. Вимк.: там працює "
"лише пароль."
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
@@ -531,7 +548,7 @@ msgstr ""
"Сканує, коли ви натискаєте клавішу або рухаєте мишею на екрані блокування, і "
"коли комп'ютер прокидається."
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
@@ -539,7 +556,7 @@ msgstr ""
"Сканує одразу після блокування екрана. Типово вимк.: якщо ви блокуєте самі, "
"він одразу б розблокувався."
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
@@ -547,7 +564,17 @@ msgstr ""
"sudo приймає ваше обличчя замість пароля. Не збіглося: ви вводите пароль як "
"зазвичай."
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"Екран блокування face-unlock показує бульбашку, а блокувати потрібно "
+"командою `face-unlock lock`. Або залиште свій: тоді hyprlock покаже вгорі "
+"рядок тексту. Enter відкриває вибір."
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -557,11 +584,11 @@ msgstr ""
"те, що на робочому столі. Або файл, тека, з якої береться випадкове, або "
"`none`. Натисніть Enter, щоб ввести."
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "Розмиває зображення за екраном блокування face-unlock."
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -570,7 +597,7 @@ msgstr ""
"Екран блокування приймає ваше обличчя під час перевірки пароля. Натисніть "
"Enter у порожньому полі, щоб сканувати. Знайдено тут: %s."
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
@@ -578,17 +605,17 @@ msgstr ""
"Вікна введення пароля робочого столу і програм, наприклад під час "
"встановлення програм. Не збіглося: ви вводите пароль."
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr ""
"Треба кліпнути або трохи повернути голову. Це також зупиняє надруковані фото."
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "Жодної перевірки. Лише щоб випробувати камеру."
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
@@ -596,22 +623,22 @@ msgstr ""
"Зупиняє фото на телефоні, планшеті чи глянцевому папері. Кліпати не треба. "
"Матове надруковане фото може пройти."
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr ""
"Менше хибних збігів, але може не впізнати вас в окулярах або при поганому "
"світлі."
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "Впізнає вас легше, але й того, хто дуже на вас схожий."
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "Типове значення. Підходить більшості."
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
@@ -619,7 +646,7 @@ msgstr ""
"Ваші очі мають бути розплющені й дивитися на екран. Так він не "
"розблокується, коли ви дивитеся вбік або спите."
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -628,11 +655,11 @@ msgstr ""
"знову. Інфрачервоній камері потрібне ввімкнене підсвічування (linux-enable-"
"ir-emitter)."
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "Як довго камера шукає ваше обличчя, перш ніж здатися."
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
@@ -640,7 +667,7 @@ msgstr ""
"Після впевненого збігу запам'ятовує, як ви виглядаєте зараз. Нова зачіска чи "
"окуляри не потребують нового налаштування."
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
@@ -648,99 +675,99 @@ msgstr ""
"Без сканування, коли ноутбук закрито, наприклад за столом із зовнішнім "
"монітором."
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "Бульбашка вгорі екрана показує, що робить камера."
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "Маленька пігулка із замком, що відкривається."
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "Острів з обличчям, яке озирається, потім кільця і галочка."
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "Як швидко рухається бульбашка."
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr ""
"Показує бульбашку й тоді, коли sudo або запит адміністратора сканує ваше "
"обличчя."
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "автоматично (%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(інфрачервона)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(не під'єднана)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "як на робочому столі"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "немає"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "Зображення або тека:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "Не знайдено: %s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "Налаштування"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ вибір ←→ або Пробіл: змінити q: назад"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "для всіх користувачів, запитує пароль"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr ""
"Вгору/Вниз: вибір, Пробіл: увімк./вимк., r: перейменувати, d: видалити, a: "
"додати, q: назад"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "Ще не налаштовано жодного обличчя. Натисніть a, щоб додати."
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "Нова назва:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "Видалити «%s»?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "Увімкнути або вимкнути розблокування обличчям"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "Спробувати"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "Вийти"
@@ -786,6 +813,52 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland сам не запускає агент екрана блокування. Додайте це до %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "Щоб блокувати ним, додайте це до %s і вкажіть %s у %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr ""
+"Щоб блокувати ним, додайте це до binds у %s і використовуйте %s у swayidle:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr ""
+"Щоб блокувати ним, запускайте %s там, де зараз запускається ваш екран "
+"блокування."
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "Тепер ви блокуєте екраном блокування face-unlock."
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr "hyprlock покаже вгорі, що робить face unlock, з наступного блокування."
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "Не вдалося додати рядок до %s."
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr ""
+"Ваш екран блокування залишається як є. Натисніть Enter у порожньому полі "
+"пароля, щоб сканувати."
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "У hyprlock немає %s, тому він не може показати текст."
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "Розблоковувати обличчям"
@@ -798,6 +871,10 @@ msgstr "Сканувати, коли ви повертаєтеся"
msgid "Scan right after locking"
msgstr "Сканувати одразу після блокування"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "Який екран блокування"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "Шпалери"
@@ -964,35 +1041,48 @@ msgstr "Камера зайнята іншим скануванням. Спро
msgid "The face could not be added (%1)."
msgstr "Не вдалося додати обличчя (%1)."
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "Шукаю ваше обличчя…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "Неправильний пароль"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "Обличчя розпізнано"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr ""
"Розблокування обличчям для екрана блокування, sudo і запитів адміністратора"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "Налаштувати обличчя."
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "Як назвати нове обличчя."
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "Заблокувати екран."
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "Один раз програти анімації бульбашки."
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "Стиль бульбашки для демо: full або minimal."
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "Питає, який екран блокування використовувати, і виводить відповідь."
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "Подивіться в камеру, щоб розблокувати."
@@ -1052,7 +1142,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "Назва (необов'язково)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "Скасувати"
@@ -1072,14 +1162,66 @@ msgstr "Почати"
msgid "Done"
msgstr "Готово"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "Вибір екрана блокування"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "Ваш екран блокування"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"Ваша стільниця залишає екран блокування програмі на ваш вибір. Виберіть, як "
+"там виглядатиме face unlock. Це можна змінити пізніше в Налаштуваннях."
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "Екран блокування face-unlock"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"Бульбашка вгорі, час і ваші шпалери. Ваше сполучення клавіш і блокування "
+"через бездіяльність тоді запускають face-unlock lock."
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "Залишити свій екран блокування"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"Він залишається як є. hyprlock показує вгорі рядок тексту замість бульбашки. "
+"Enter у порожньому полі пароля запускає сканування."
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr ""
+"Він залишається як є, без бульбашки. Enter у порожньому полі пароля запускає "
+"сканування."
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "Продовжити"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "Пароль"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "Подивіться в камеру або введіть пароль"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "Введіть пароль"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 92d677a..3b060f0 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: face-unlock 1.0.1\n"
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/face-unlock/issues\n"
-"POT-Creation-Date: 2026-09-26 19:35+0200\n"
+"POT-Creation-Date: 2026-09-26 19:36+0200\n"
"PO-Revision-Date: 2026-09-24 12:00+0200\n"
"Last-Translator: Felitendo\n"
"Language-Team: Chinese (simplified)\n"
@@ -53,8 +53,9 @@ msgstr "没有添加人脸。"
msgid "First, set up your face."
msgstr "请先设置你的人脸。"
-#: src/face-unlock:100 src/face-unlock:139 src/lib/menu.sh:500
-#: src/lib/menu.sh:504 src/lib/menu.sh:510 src/lib/menu.sh:512
+#: src/face-unlock:100 src/face-unlock:145 src/lib/menu.sh:517
+#: src/lib/menu.sh:521 src/lib/menu.sh:527 src/lib/menu.sh:529
+#: src/lib/system.sh:290 src/lib/system.sh:296
msgid "Could not save the setting."
msgstr "无法保存设置。"
@@ -74,7 +75,15 @@ msgstr "无法启用显示气泡的 GNOME 扩展。"
msgid "Log out and back in once: then GNOME shows the bubble too."
msgstr "请注销并重新登录一次:之后 GNOME 也会显示气泡。"
-#: src/face-unlock:129
+#: src/face-unlock:131
+msgid "Pick your lock screen in the window."
+msgstr "请在窗口中选择锁屏。"
+
+#: src/face-unlock:132
+msgid "No lock screen picked. You can do it later under Settings."
+msgstr "未选择锁屏。之后可以在设置中选择。"
+
+#: src/face-unlock:135
#, sh-printf-format
msgid ""
"The lock screen (%s) takes your face too. If it does not scan when you come "
@@ -82,139 +91,139 @@ msgid ""
msgstr ""
"锁屏(%s)也接受你的人脸。如果你回来时它没有扫描,请在空的密码框中按 Enter。"
-#: src/face-unlock:132
+#: src/face-unlock:138
msgid "Face unlock is on. Lock the screen and look at it to try."
msgstr "人脸解锁已开启。锁定屏幕并看着它来试试。"
-#: src/face-unlock:134
+#: src/face-unlock:140
msgid "It can do sudo and admin prompts too. See Settings."
msgstr "它也可以用于 sudo 和管理员授权。见“设置”。"
-#: src/face-unlock:150
+#: src/face-unlock:156
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
msgstr "人脸解锁已关闭。你的人脸会保留;可在“人脸”中删除。"
-#: src/face-unlock:164 src/lib/daemon.sh:109
+#: src/face-unlock:170 src/lib/daemon.sh:109
msgid "No face is set up yet."
msgstr "尚未设置任何人脸。"
-#: src/face-unlock:168 src/lib/menu.sh:180 src/lib/menu.sh:664
+#: src/face-unlock:174 src/lib/menu.sh:180 src/lib/menu.sh:685
msgid "on"
msgstr "开"
-#: src/face-unlock:168 src/lib/menu.sh:182 src/lib/menu.sh:192
-#: src/lib/menu.sh:665
+#: src/face-unlock:174 src/lib/menu.sh:182 src/lib/menu.sh:192
+#: src/lib/menu.sh:686
msgid "off"
msgstr "关"
-#: src/face-unlock:170 src/lib/menu.sh:682
+#: src/face-unlock:176 src/lib/menu.sh:703
#, sh-printf-format
msgid "%s samples, %s learned"
msgstr "%s 个样本,已学习 %s 个"
-#: src/face-unlock:176
+#: src/face-unlock:182
#, sh-printf-format
msgid "Which face? See `%s faces` for the ids."
msgstr "哪张人脸?用 `%s faces` 查看 ID。"
-#: src/face-unlock:180
+#: src/face-unlock:186
msgid "Deleted."
msgstr "已删除。"
-#: src/face-unlock:191
+#: src/face-unlock:197
msgid "Usage: face-unlock [command]"
msgstr "用法:face-unlock [命令]"
-#: src/face-unlock:193
+#: src/face-unlock:199
msgid "Commands:"
msgstr "命令:"
-#: src/face-unlock:194
+#: src/face-unlock:200
msgid "Turn face unlock on"
msgstr "开启人脸解锁"
-#: src/face-unlock:195
+#: src/face-unlock:201
msgid "Turn it off (faces are kept)"
msgstr "关闭(保留人脸)"
-#: src/face-unlock:196 src/lib/menu.sh:748
+#: src/face-unlock:202 src/lib/menu.sh:769
msgid "Add a face"
msgstr "添加人脸"
-#: src/face-unlock:197
+#: src/face-unlock:203
msgid "List the faces"
msgstr "列出人脸"
-#: src/face-unlock:198
+#: src/face-unlock:204
msgid "Delete a face"
msgstr "删除人脸"
-#: src/face-unlock:199
+#: src/face-unlock:205
msgid "Look at the camera and see what it sees"
msgstr "看着摄像头,查看它看到的画面"
-#: src/face-unlock:200
+#: src/face-unlock:206
msgid "Lock the screen"
msgstr "锁定屏幕"
-#: src/face-unlock:201
+#: src/face-unlock:207
msgid "Show what is on"
msgstr "显示已开启的功能"
-#: src/face-unlock:202
+#: src/face-unlock:208
msgid "Show this help"
msgstr "显示此帮助"
-#: src/face-unlock:203
+#: src/face-unlock:209
msgid "Show the version"
msgstr "显示版本"
-#: src/face-unlock:205
+#: src/face-unlock:211
msgid "Without a command an interactive menu is shown."
msgstr "不带命令时显示交互式菜单。"
-#: src/face-unlock:224
+#: src/face-unlock:230
msgid ""
"Run this as your own user, not as root. It asks for your password when it "
"needs to."
msgstr "请以你自己的用户运行,不要用 root。需要时会询问你的密码。"
-#: src/face-unlock:247 src/lib/system.sh:101
+#: src/face-unlock:253 src/lib/system.sh:101
#, sh-printf-format
msgid "Unknown command: %s"
msgstr "未知命令:%s"
-#: src/lib/common.sh:171
+#: src/lib/common.sh:173
msgid "never"
msgstr "从未"
-#: src/lib/common.sh:181
+#: src/lib/common.sh:183
msgid "just now"
msgstr "刚刚"
-#: src/lib/common.sh:183
+#: src/lib/common.sh:185
msgid "1 minute ago"
msgstr "1 分钟前"
-#: src/lib/common.sh:186
+#: src/lib/common.sh:188
#, sh-printf-format
msgid "%d minutes ago"
msgstr "%d 分钟前"
-#: src/lib/common.sh:188
+#: src/lib/common.sh:190
msgid "1 hour ago"
msgstr "1 小时前"
-#: src/lib/common.sh:191
+#: src/lib/common.sh:193
#, sh-printf-format
msgid "%d hours ago"
msgstr "%d 小时前"
-#: src/lib/common.sh:193
+#: src/lib/common.sh:195
msgid "1 day ago"
msgstr "1 天前"
-#: src/lib/common.sh:196
+#: src/lib/common.sh:198
#, sh-printf-format
msgid "%d days ago"
msgstr "%d 天前"
@@ -252,7 +261,7 @@ msgstr "尝试次数过多,人脸解锁已暂停。请用密码解锁一次。
msgid "The camera could not be used."
msgstr "无法使用摄像头。"
-#: src/lib/daemon.sh:111 src/lib/menu.sh:265
+#: src/lib/daemon.sh:111 src/lib/menu.sh:267
msgid "The recognition models are missing. Reinstall the package."
msgstr "缺少识别模型。请重新安装软件包。"
@@ -354,11 +363,11 @@ msgstr "尝试次数过多。人脸解锁已暂停,直到你用密码解锁。
msgid "[y/N]"
msgstr "[y/N]"
-#: src/lib/menu.sh:172 src/lib/menu.sh:566
+#: src/lib/menu.sh:172 src/lib/menu.sh:583
msgid "ON"
msgstr "开启"
-#: src/lib/menu.sh:174 src/lib/menu.sh:567
+#: src/lib/menu.sh:174 src/lib/menu.sh:584
msgid "OFF"
msgstr "关闭"
@@ -399,92 +408,100 @@ msgstr "慢"
msgid "%s seconds"
msgstr "%s 秒"
-#: src/lib/menu.sh:202 src/lib/menu.sh:447
+#: src/lib/menu.sh:202 src/lib/menu.sh:452
msgid "automatic"
msgstr "自动"
-#: src/lib/menu.sh:219
+#: src/lib/menu.sh:203
+msgid "face-unlock's"
+msgstr "face-unlock 的"
+
+#: src/lib/menu.sh:204
+msgid "yours"
+msgstr "你自己的"
+
+#: src/lib/menu.sh:221
msgid "Face unlock"
msgstr "人脸解锁"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "Service"
msgstr "服务"
-#: src/lib/menu.sh:223
+#: src/lib/menu.sh:225
msgid "not running"
msgstr "未运行"
-#: src/lib/menu.sh:225
+#: src/lib/menu.sh:227
msgid "Turning face unlock on again starts it."
msgstr "重新开启人脸解锁即可启动它。"
-#: src/lib/menu.sh:236 src/lib/menu.sh:238 src/lib/menu.sh:660
-#: src/lib/menu.sh:749
+#: src/lib/menu.sh:238 src/lib/menu.sh:240 src/lib/menu.sh:681
+#: src/lib/menu.sh:770
msgid "Faces"
msgstr "人脸"
-#: src/lib/menu.sh:236
+#: src/lib/menu.sh:238
msgid "none set up yet"
msgstr "尚未设置"
-#: src/lib/menu.sh:238
+#: src/lib/menu.sh:240
msgid "all turned off"
msgstr "全部关闭"
-#: src/lib/menu.sh:244
+#: src/lib/menu.sh:246
msgid "none found"
msgstr "未找到"
-#: src/lib/menu.sh:246 src/lib/menu.sh
+#: src/lib/menu.sh:248 src/lib/menu.sh
msgid "Camera"
msgstr "摄像头"
-#: src/lib/menu.sh:248 src/lib/menu.sh
+#: src/lib/menu.sh:250 src/lib/menu.sh
msgid "Lock screen"
msgstr "锁屏"
-#: src/lib/menu.sh:252
+#: src/lib/menu.sh:254
msgid "sudo"
msgstr "sudo"
-#: src/lib/menu.sh:253 src/lib/menu.sh
+#: src/lib/menu.sh:255 src/lib/menu.sh
msgid "Admin prompts"
msgstr "管理员授权"
-#: src/lib/menu.sh:255 src/lib/menu.sh
+#: src/lib/menu.sh:257 src/lib/menu.sh
msgid "Lock screens"
msgstr "锁屏"
-#: src/lib/menu.sh:257 src/lib/menu.sh
+#: src/lib/menu.sh:259 src/lib/menu.sh
msgid "Photo check"
msgstr "照片检测"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
msgid "Paused"
msgstr "已暂停"
-#: src/lib/menu.sh:260
+#: src/lib/menu.sh:262
#, sh-printf-format
msgid "for %d more minutes, or until the password is used"
msgstr "还有 %d 分钟,或直到使用密码"
-#: src/lib/menu.sh:262
+#: src/lib/menu.sh:264
msgid "Last unlock"
msgstr "上次解锁"
-#: src/lib/menu.sh:268
+#: src/lib/menu.sh:270
msgid "The lock screen agent is not running."
msgstr "锁屏代理没有运行。"
-#: src/lib/menu.sh:318
+#: src/lib/menu.sh:322
msgid ""
"On GNOME a small GNOME extension shows the bubble. Turning face unlock on "
"switches it on."
msgstr ""
"在 GNOME 上,由一个小的 GNOME 扩展显示气泡。开启人脸解锁时会一并开启它。"
-#: src/lib/menu.sh:322
+#: src/lib/menu.sh:326
msgid ""
"Scans when you come back to hyprlock, swaylock or face-unlock's own lock "
"screen (`face-unlock lock`, with the bubble), and opens them. Other lock "
@@ -493,31 +510,40 @@ msgstr ""
"回到 hyprlock、swaylock 或 face-unlock 自带的锁屏(`face-unlock lock`,带气"
"泡)时扫描并打开它们。其他锁屏按 Enter 扫描。"
-#: src/lib/menu.sh:327
+#: src/lib/menu.sh:331
msgid ""
"Unlocks the lock screen when it sees your face. Off: only your password "
"works there."
msgstr "看到你的脸时解锁锁屏。关闭:锁屏只能用密码。"
-#: src/lib/menu.sh:328
+#: src/lib/menu.sh:332
msgid ""
"Scans when you press a key or move the mouse on the lock screen, and when "
"the computer wakes up."
msgstr "在锁屏上按键或移动鼠标时,以及电脑唤醒时扫描。"
-#: src/lib/menu.sh:329
+#: src/lib/menu.sh:333
msgid ""
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
"it would unlock again right away."
msgstr "屏幕一锁定就扫描。默认关闭:如果是你自己锁的屏,它会马上又解锁。"
-#: src/lib/menu.sh:330
+#: src/lib/menu.sh:334
msgid ""
"sudo takes your face instead of the password. No match: you type the "
"password as usual."
msgstr "sudo 用你的脸代替密码。不匹配时,照常输入密码。"
-#: src/lib/menu.sh:331
+#: src/lib/menu.sh:335
+msgid ""
+"face-unlock's lock screen shows the bubble, and you lock with `face-unlock "
+"lock`. Or keep yours: hyprlock then shows a line of text at the top. Enter "
+"opens the choice."
+msgstr ""
+"face-unlock 的锁屏会显示气泡,用 `face-unlock lock` 锁屏。也可以保留你自己"
+"的:hyprlock 会在顶部显示一行文字。按 Enter 打开选择。"
+
+#: src/lib/menu.sh:336
msgid ""
"The picture behind face-unlock's own lock screen (`face-unlock lock`). "
"Empty: the one on your desktop. Or a file, a folder to take one from at "
@@ -526,11 +552,11 @@ msgstr ""
"face-unlock 锁屏(`face-unlock lock`)背后的图片。留空:用桌面的图片。或者一"
"个文件、从中随机挑选的文件夹,或 `none`。按 Enter 输入。"
-#: src/lib/menu.sh:332
+#: src/lib/menu.sh:337
msgid "Blurs the picture behind face-unlock's own lock screen."
msgstr "模糊 face-unlock 锁屏背后的图片。"
-#: src/lib/menu.sh:333
+#: src/lib/menu.sh:338
#, sh-printf-format
msgid ""
"The lock screen takes your face in its password check. Press Enter on the "
@@ -538,47 +564,47 @@ msgid ""
msgstr ""
"锁屏在检查密码时也接受你的人脸。在空白框中按 Enter 即可扫描。此处找到:%s。"
-#: src/lib/menu.sh:334
+#: src/lib/menu.sh:339
msgid ""
"The password windows of your desktop and apps, for example when you install "
"software. No match: you type the password."
msgstr "桌面和应用的密码窗口,例如安装软件时。不匹配时,输入密码即可。"
-#: src/lib/menu.sh:335
+#: src/lib/menu.sh:340
msgid ""
"You have to blink or turn your head a little. This also stops printed photos."
msgstr "你需要眨眼或稍微转头。这也能挡住打印的照片。"
-#: src/lib/menu.sh:336
+#: src/lib/menu.sh:341
msgid "No check at all. Only for trying out a camera."
msgstr "完全不检测。仅用于试用摄像头。"
-#: src/lib/menu.sh:337
+#: src/lib/menu.sh:342
msgid ""
"Stops photos on a phone, a tablet or glossy paper. You do not have to blink. "
"A matte printed photo can get through."
msgstr "挡住手机、平板或光面纸上的照片。无需眨眼。哑光纸打印的照片可能会通过。"
-#: src/lib/menu.sh:338
+#: src/lib/menu.sh:343
msgid ""
"Fewer wrong matches, but it may not know you with glasses or in bad light."
msgstr "误认更少,但戴眼镜或光线不好时可能认不出你。"
-#: src/lib/menu.sh:339
+#: src/lib/menu.sh:344
msgid "Knows you more easily, but also somebody who looks a lot like you."
msgstr "更容易认出你,但也更容易认出和你长得很像的人。"
-#: src/lib/menu.sh:340
+#: src/lib/menu.sh:345
msgid "The default. Right for most people."
msgstr "默认值。适合大多数人。"
-#: src/lib/menu.sh:341
+#: src/lib/menu.sh:346
msgid ""
"Your eyes have to be open and on the screen. So it does not unlock while you "
"look away or sleep."
msgstr "你的眼睛必须睁开并看着屏幕。这样你看向别处或睡着时不会解锁。"
-#: src/lib/menu.sh:342
+#: src/lib/menu.sh:347
msgid ""
"Automatic takes the first normal camera. After a change, set up your face "
"again. An infrared camera needs its light on (linux-enable-ir-emitter)."
@@ -586,111 +612,111 @@ msgstr ""
"“自动”会使用第一个普通摄像头。更换后请重新设置人脸。红外摄像头需要打开它的补"
"光灯(linux-enable-ir-emitter)。"
-#: src/lib/menu.sh:343
+#: src/lib/menu.sh:348
msgid "How long the camera looks for your face before it gives up."
msgstr "摄像头寻找你的脸多久后放弃。"
-#: src/lib/menu.sh:344
+#: src/lib/menu.sh:349
msgid ""
"After a sure match it keeps how you look now. So a new haircut or glasses "
"need no new setup."
msgstr "确定匹配后,会记住你现在的样子。所以换了发型或戴上眼镜也无需重新设置。"
-#: src/lib/menu.sh:345
+#: src/lib/menu.sh:350
msgid ""
"No scan while the laptop is closed, for example at a desk with an external "
"screen."
msgstr "笔记本合上时不扫描,例如在接了外接显示器的桌前。"
-#: src/lib/menu.sh:346
+#: src/lib/menu.sh:351
msgid "The bubble at the top of the screen shows what the camera is doing."
msgstr "屏幕顶部的气泡显示摄像头正在做什么。"
-#: src/lib/menu.sh:347
+#: src/lib/menu.sh:352
msgid "A small pill with a lock that opens."
msgstr "一个带锁的小药丸,锁会打开。"
-#: src/lib/menu.sh:348
+#: src/lib/menu.sh:353
msgid "An island with a face that looks around, then rings and a tick."
msgstr "一个岛,里面有一张四处张望的脸,然后是圆环和一个对勾。"
-#: src/lib/menu.sh:349
+#: src/lib/menu.sh:354
msgid "How fast the bubble moves."
msgstr "气泡移动的速度。"
-#: src/lib/menu.sh:350
+#: src/lib/menu.sh:355
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
msgstr "sudo 或管理员授权扫描你的脸时也显示气泡。"
-#: src/lib/menu.sh:443
+#: src/lib/menu.sh:448
#, sh-printf-format
msgid "automatic (%s)"
msgstr "自动(%s)"
-#: src/lib/menu.sh:453
+#: src/lib/menu.sh:458
msgid "(infrared)"
msgstr "(红外)"
-#: src/lib/menu.sh:457
+#: src/lib/menu.sh:462
msgid "(not connected)"
msgstr "(未连接)"
-#: src/lib/menu.sh:466
+#: src/lib/menu.sh:471
msgid "same as desktop"
msgstr "与桌面相同"
-#: src/lib/menu.sh:470
+#: src/lib/menu.sh:475
msgid "none"
msgstr "无"
-#: src/lib/menu.sh:487
+#: src/lib/menu.sh:504
msgid "Picture or folder:"
msgstr "图片或文件夹:"
-#: src/lib/menu.sh:492
+#: src/lib/menu.sh:509
#, sh-printf-format
msgid "Not found: %s"
msgstr "未找到:%s"
-#: src/lib/menu.sh:563 src/lib/menu.sh:750
+#: src/lib/menu.sh:580 src/lib/menu.sh:771
msgid "Settings"
msgstr "设置"
-#: src/lib/menu.sh:564
+#: src/lib/menu.sh:581
msgid "↑↓ select ←→ or Space: change q: back"
msgstr "↑↓ 选择 ←→ 或空格:更改 q:返回"
-#: src/lib/menu.sh:565
+#: src/lib/menu.sh:582
msgid "for all users, asks for your password"
msgstr "对所有用户生效,需要你的密码"
#. TRANSLATORS: keep the letters, they are the keys.
-#: src/lib/menu.sh:662
+#: src/lib/menu.sh:683
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
msgstr "上/下:选择,空格:开/关,r:重命名,d:删除,a:添加,q:返回"
-#: src/lib/menu.sh:663
+#: src/lib/menu.sh:684
msgid "No face is set up yet. Press a to add one."
msgstr "尚未设置任何人脸。按 a 添加。"
-#: src/lib/menu.sh:709
+#: src/lib/menu.sh:730
msgid "New name:"
msgstr "新名称:"
-#: src/lib/menu.sh:716
+#: src/lib/menu.sh:737
#, sh-printf-format
msgid "Delete \"%s\"?"
msgstr "删除“%s”?"
-#: src/lib/menu.sh:747
+#: src/lib/menu.sh:768
msgid "Turn face unlock on or off"
msgstr "开启或关闭人脸解锁"
-#: src/lib/menu.sh:751
+#: src/lib/menu.sh:772
msgid "Try it"
msgstr "试一试"
-#: src/lib/menu.sh:752
+#: src/lib/menu.sh:773
msgid "Quit"
msgstr "退出"
@@ -734,6 +760,47 @@ msgid ""
"Hyprland does not start the lock screen agent by itself. Add this to %s:"
msgstr "Hyprland 不会自动启动锁屏代理。请把以下内容加入 %s:"
+#: src/lib/system.sh:267 src/lib/system.sh:270
+#, sh-printf-format
+msgid "To lock with it, add this to %s, and set %s in %s:"
+msgstr "要用它锁屏,请把这行加入 %s,并把 %s 写进 %s:"
+
+#: src/lib/system.sh:275
+#, sh-printf-format
+msgid "To lock with it, add this to the binds in %s, and use %s in swayidle:"
+msgstr "要用它锁屏,请把这行加入 %s 的 binds,并在 swayidle 中使用 %s:"
+
+#: src/lib/system.sh:279
+#, sh-printf-format
+msgid "To lock with it, run %s where your lock screen is started now."
+msgstr "要用它锁屏,请在现在启动锁屏的地方运行 %s。"
+
+#: src/lib/system.sh:292
+msgid "You lock with face-unlock's lock screen now."
+msgstr "现在用 face-unlock 的锁屏锁定。"
+
+#: src/lib/system.sh:299
+msgid ""
+"hyprlock shows what face unlock is doing at the top, from the next time it "
+"locks."
+msgstr "从下次锁屏起,hyprlock 会在顶部显示 face unlock 正在做什么。"
+
+#: src/lib/system.sh:300
+#, sh-printf-format
+msgid "Could not add the line to %s."
+msgstr "无法把这行加入 %s。"
+
+#: src/lib/system.sh:301
+msgid ""
+"Your lock screen stays as it is. Press Enter on the empty password field to "
+"scan."
+msgstr "你的锁屏保持不变。在空密码框中按 Enter 即可扫描。"
+
+#: src/lib/system.sh:302
+#, sh-printf-format
+msgid "hyprlock has no %s, so it cannot show the text."
+msgstr "hyprlock 没有 %s,所以无法显示文字。"
+
#: src/lib/menu.sh
msgid "Unlock with your face"
msgstr "用人脸解锁"
@@ -746,6 +813,10 @@ msgstr "你回来时扫描"
msgid "Scan right after locking"
msgstr "锁定后立即扫描"
+#: src/lib/menu.sh
+msgid "Which lock screen"
+msgstr "使用哪个锁屏"
+
#: src/lib/menu.sh
msgid "Wallpaper"
msgstr "壁纸"
@@ -910,34 +981,47 @@ msgstr "摄像头正忙于另一次扫描。请稍后重试。"
msgid "The face could not be added (%1)."
msgstr "无法添加人脸(%1)。"
+#: src/agent/lockpreview.cpp:349 src/agent/lockpreview.cpp:559
+#: src/agent/locktext.cpp:45
+msgid "Looking for your face…"
+msgstr "正在寻找你的脸…"
+
#: src/agent/lockscreencontroller.cpp:172
msgid "Wrong password"
msgstr "密码错误"
-#: src/agent/main.cpp:185
+#: src/agent/locktext.cpp:48
+msgid "Face recognized"
+msgstr "已识别面容"
+
+#: src/agent/main.cpp:244
msgid "Face unlock for the lock screen, sudo and admin prompts"
msgstr "用于锁屏、sudo 和管理员授权的人脸解锁"
-#: src/agent/main.cpp:188
+#: src/agent/main.cpp:247
msgid "Set up a face."
msgstr "设置一张人脸。"
-#: src/agent/main.cpp:189
+#: src/agent/main.cpp:248
msgid "What to call the new face."
msgstr "新人脸的名称。"
-#: src/agent/main.cpp:190
+#: src/agent/main.cpp:249
msgid "Lock the screen."
msgstr "锁定屏幕。"
-#: src/agent/main.cpp:191
+#: src/agent/main.cpp:250
msgid "Play the bubble's animations once."
msgstr "播放一次气泡动画。"
-#: src/agent/main.cpp:193
+#: src/agent/main.cpp:252
msgid "Bubble style for the demo: full or minimal."
msgstr "演示用的气泡样式:full 或 minimal。"
+#: src/agent/main.cpp:253
+msgid "Ask which lock screen to use, and print the answer."
+msgstr "询问使用哪个锁屏,并输出答案。"
+
#: src/pam/pam_face_unlock.c:356
msgid "Look at the camera to unlock."
msgstr "看着摄像头来解锁。"
@@ -993,7 +1077,7 @@ msgstr ""
msgid "Name (optional)"
msgstr "名称(可选)"
-#: src/agent/qml/Enroll.qml:177
+#: src/agent/qml/Enroll.qml:177 src/agent/qml/LockChoice.qml:255
msgid "Cancel"
msgstr "取消"
@@ -1013,14 +1097,63 @@ msgstr "开始"
msgid "Done"
msgstr "完成"
-#: src/agent/qml/LockScreen.qml:171
+#: src/agent/qml/LockChoice.qml:52
+msgid "Choose your lock screen"
+msgstr "选择锁屏"
+
+#: src/agent/qml/LockChoice.qml:198
+msgid "Your lock screen"
+msgstr "你的锁屏"
+
+#: src/agent/qml/LockChoice.qml:209
+msgid ""
+"Your desktop leaves the lock screen to a program of your choice. Pick how "
+"face unlock shows up there. You can change it later under Settings."
+msgstr ""
+"你的桌面把锁屏交给你选择的程序。请选择 face unlock 在那里如何显示。之后可以在"
+"设置中更改。"
+
+#: src/agent/qml/LockChoice.qml:232
+msgid "face-unlock's lock screen"
+msgstr "face-unlock 的锁屏"
+
+#: src/agent/qml/LockChoice.qml:233
+msgid ""
+"The bubble at the top, the time and your wallpaper. Your shortcut and idle "
+"lock then run face-unlock lock."
+msgstr ""
+"顶部的气泡、时间和你的壁纸。你的快捷键和空闲锁屏会运行 face-unlock lock。"
+
+#: src/agent/qml/LockChoice.qml:240
+msgid "Keep your lock screen"
+msgstr "保留你的锁屏"
+
+#: src/agent/qml/LockChoice.qml:242
+msgid ""
+"It stays as it is. hyprlock shows a line of text at the top instead of the "
+"bubble. Enter on the empty password field scans."
+msgstr ""
+"保持不变。hyprlock 会在顶部显示一行文字,代替气泡。在空密码框中按 Enter 即可"
+"扫描。"
+
+#: src/agent/qml/LockChoice.qml:243
+msgid ""
+"It stays as it is, without the bubble. Enter on the empty password field "
+"scans."
+msgstr "保持不变,没有气泡。在空密码框中按 Enter 即可扫描。"
+
+#: src/agent/qml/LockChoice.qml:260
+msgid "Continue"
+msgstr "继续"
+
+#: src/agent/qml/LockScreen.qml:180
msgid "Password"
msgstr "密码"
-#: src/agent/qml/LockScreen.qml:185
+#: src/agent/qml/LockScreen.qml:194
msgid "Look at the camera or type your password"
msgstr "看向摄像头或输入密码"
-#: src/agent/qml/LockScreen.qml:186
+#: src/agent/qml/LockScreen.qml:195
msgid "Type your password"
msgstr "输入密码"
diff --git a/res/screenshots/lock-choice.png b/res/screenshots/lock-choice.png
new file mode 100644
index 0000000..38cbb0a
Binary files /dev/null and b/res/screenshots/lock-choice.png differ
diff --git a/src/agent/lockers.h b/src/agent/lockers.h
index 7e78668..f513915 100644
--- a/src/agent/lockers.h
+++ b/src/agent/lockers.h
@@ -1,7 +1,8 @@
// SPDX-License-Identifier: GPL-3.0-or-later
//
// The lock screens that are programs of their own and take signals from
-// outside: hyprlock, swaylock and gtklock open on SIGUSR1.
+// outside: hyprlock, swaylock and gtklock open on SIGUSR1, hyprlock reads
+// its labels again on SIGUSR2.
#pragma once
diff --git a/src/agent/lockpreview.cpp b/src/agent/lockpreview.cpp
new file mode 100644
index 0000000..7d64424
--- /dev/null
+++ b/src/agent/lockpreview.cpp
@@ -0,0 +1,647 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+#include "lockpreview.h"
+
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+
+namespace
+{
+QString readFile(const QString &path)
+{
+ QFile f(path);
+ return f.open(QIODevice::ReadOnly | QIODevice::Text) ? QString::fromUtf8(f.readAll()) : QString();
+}
+
+QString expandHome(const QString &path)
+{
+ return path == u"~" ? QDir::homePath() : path.startsWith(u"~/") ? QDir::homePath() + path.mid(1) : path;
+}
+
+QString configHome()
+{
+ return QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation);
+}
+
+// The first file of name under the user's and then the system's config
+// directories, as hyprlock and swaylock look for theirs.
+QString findConfig(const QString &name)
+{
+ QStringList dirs{configHome()};
+ dirs += QStandardPaths::standardLocations(QStandardPaths::GenericConfigLocation);
+ for (const QString &dir : std::as_const(dirs)) {
+ if (QFileInfo::exists(dir + u'/' + name)) {
+ return dir + u'/' + name;
+ }
+ }
+ return {};
+}
+
+bool truthy(const QString &value)
+{
+ return value == u"1" || value.compare(u"true", Qt::CaseInsensitive) == 0 || value.compare(u"yes", Qt::CaseInsensitive) == 0
+ || value.compare(u"on", Qt::CaseInsensitive) == 0;
+}
+
+// ---------------------------------------------------------------------------
+// hyprlang, as far as a lock screen's config needs it
+
+struct Section {
+ QString name;
+ QHash values;
+};
+
+// Sections, $variables, source = (with ~ and wildcards, relative to the
+// file), and # comments, where ## stands for a #.
+class Hyprlang
+{
+public:
+ void parse(const QString &path, int depth = 0);
+
+ QList sections;
+
+private:
+ QString expand(const QString &value) const;
+
+ QHash m_vars;
+ QList m_open;
+};
+
+QString stripComment(const QString &line)
+{
+ QString out;
+ for (qsizetype i = 0; i < line.size(); ++i) {
+ if (line.at(i) == u'#') {
+ if (i + 1 < line.size() && line.at(i + 1) == u'#') {
+ out += u'#';
+ ++i;
+ continue;
+ }
+ break;
+ }
+ out += line.at(i);
+ }
+ return out.trimmed();
+}
+
+void Hyprlang::parse(const QString &path, int depth)
+{
+ if (depth > 8) {
+ return;
+ }
+ const QString dir = QFileInfo(path).absolutePath();
+ const QStringList lines = readFile(path).split(u'\n');
+ for (const QString &raw : lines) {
+ const QString line = stripComment(raw);
+ if (line.isEmpty()) {
+ continue;
+ }
+ if (line == u"}") {
+ if (!m_open.isEmpty()) {
+ m_open.removeLast();
+ }
+ continue;
+ }
+ if (line.endsWith(u'{')) {
+ sections.append({line.chopped(1).trimmed(), {}});
+ m_open.append(sections.size() - 1);
+ continue;
+ }
+ const qsizetype eq = line.indexOf(u'=');
+ if (eq < 0) {
+ continue;
+ }
+ const QString key = line.left(eq).trimmed();
+ const QString value = expand(line.mid(eq + 1).trimmed());
+ if (key.startsWith(u'$')) {
+ m_vars.insert(key.mid(1), value);
+ } else if (key == u"source" && m_open.isEmpty()) {
+ const QFileInfo pattern(QDir(dir).absoluteFilePath(expandHome(value)));
+ const QStringList matches = QDir(pattern.absolutePath()).entryList({pattern.fileName()}, QDir::Files, QDir::Name);
+ for (const QString &match : matches) {
+ parse(pattern.absolutePath() + u'/' + match, depth + 1);
+ }
+ } else if (!m_open.isEmpty()) {
+ sections[m_open.last()].values.insert(key, value);
+ }
+ }
+}
+
+QString Hyprlang::expand(const QString &value) const
+{
+ if (!value.contains(u'$') || m_vars.isEmpty()) {
+ return value;
+ }
+ // Longest first, so $font does not eat the start of $fontsize.
+ QStringList names = m_vars.keys();
+ std::sort(names.begin(), names.end(), [](const QString &a, const QString &b) {
+ return a.size() > b.size();
+ });
+ QString out = value;
+ for (const QString &name : std::as_const(names)) {
+ out.replace(u'$' + name, m_vars.value(name));
+ }
+ return out;
+}
+
+// ---------------------------------------------------------------------------
+// Values
+
+// "rgba(a, b) rgba(c) 45deg": the colours and the angle.
+QVariantMap gradient(const QString &value)
+{
+ QVariantList colors;
+ double angle = 0;
+ QString token;
+ int depth = 0;
+ const auto flush = [&] {
+ const QString t = token.trimmed();
+ token.clear();
+ if (t.endsWith(u"deg")) {
+ angle = t.chopped(3).toDouble();
+ } else if (const QColor c = LockPreview::color(t); c.isValid()) {
+ colors.append(c);
+ }
+ };
+ for (const QChar ch : value) {
+ if (ch == u'(') {
+ ++depth;
+ } else if (ch == u')') {
+ --depth;
+ }
+ if (ch.isSpace() && depth == 0) {
+ flush();
+ } else {
+ token += ch;
+ }
+ }
+ flush();
+ return {{QStringLiteral("colors"), colors}, {QStringLiteral("angle"), angle}};
+}
+
+// "x, y", each in pixels or percent of the screen.
+QPointF layout(const QString &value, const QSizeF &screen)
+{
+ const QStringList parts = value.split(u',');
+ const auto one = [](const QString &part, qreal whole) {
+ const QString s = part.trimmed();
+ return s.endsWith(u'%') ? s.chopped(1).toDouble() / 100.0 * whole : s.toDouble();
+ };
+ return {one(parts.value(0), screen.width()), one(parts.value(1), screen.height())};
+}
+
+// A Pango font description ("Noto Sans Light 12") as family, weight and
+// slant.
+void font(const QString &description, QVariantMap &into)
+{
+ static const QHash weights{
+ {QStringLiteral("thin"), 100}, {QStringLiteral("ultra-light"), 200}, {QStringLiteral("extra-light"), 200},
+ {QStringLiteral("ultralight"), 200}, {QStringLiteral("extralight"), 200}, {QStringLiteral("light"), 300},
+ {QStringLiteral("semi-light"), 350}, {QStringLiteral("book"), 380}, {QStringLiteral("regular"), 400},
+ {QStringLiteral("normal"), 400}, {QStringLiteral("medium"), 500}, {QStringLiteral("semi-bold"), 600},
+ {QStringLiteral("semibold"), 600}, {QStringLiteral("demi-bold"), 600}, {QStringLiteral("demibold"), 600},
+ {QStringLiteral("bold"), 700}, {QStringLiteral("ultra-bold"), 800}, {QStringLiteral("extra-bold"), 800},
+ {QStringLiteral("extrabold"), 800}, {QStringLiteral("heavy"), 900}, {QStringLiteral("black"), 900},
+ };
+ QStringList words = description.section(u',', 0, 0).split(u' ', Qt::SkipEmptyParts);
+ int weight = 400;
+ bool italic = false;
+ while (words.size() > 1) {
+ const QString word = words.last().toLower();
+ bool number = false;
+ word.toDouble(&number);
+ if (number) {
+ words.removeLast();
+ } else if (word == u"italic" || word == u"oblique") {
+ italic = true;
+ words.removeLast();
+ } else if (weights.contains(word)) {
+ weight = weights.value(word);
+ words.removeLast();
+ } else {
+ break;
+ }
+ }
+ into.insert(QStringLiteral("family"), words.isEmpty() ? QStringLiteral("Sans") : words.join(u' '));
+ into.insert(QStringLiteral("weight"), weight);
+ into.insert(QStringLiteral("italic"), italic);
+}
+
+// Pango markup as Qt's StyledText: span becomes font, b and i, the rest of
+// Pango's tags go and their text stays.
+QString styled(const QString &markup)
+{
+ static const QRegularExpression tag(QStringLiteral("<(/?)([a-zA-Z]+)([^>]*)>"));
+ static const QRegularExpression attribute(QStringLiteral("([a-z_]+)\\s*=\\s*[\"']([^\"']*)[\"']"));
+ QString out;
+ QStringList closers;
+ qsizetype last = 0;
+ auto it = tag.globalMatch(markup);
+ while (it.hasNext()) {
+ const auto m = it.next();
+ out += markup.mid(last, m.capturedStart() - last);
+ last = m.capturedEnd();
+ const bool closing = !m.captured(1).isEmpty();
+ const QString name = m.captured(2).toLower();
+ if (name == u"span") {
+ if (closing) {
+ out += closers.isEmpty() ? QString() : closers.takeLast();
+ continue;
+ }
+ QString open;
+ QString close;
+ QString fontAttrs;
+ auto attrs = attribute.globalMatch(m.captured(3));
+ while (attrs.hasNext()) {
+ const auto a = attrs.next();
+ const QString key = a.captured(1);
+ QString value = a.captured(2);
+ if (key == u"foreground" || key == u"fgcolor" || key == u"color") {
+ // Pango's #RRGGBBAA is Qt's #AARRGGBB.
+ if (value.startsWith(u'#') && value.size() == 9) {
+ value = u'#' + value.mid(7, 2) + value.mid(1, 6);
+ }
+ fontAttrs += QStringLiteral(" color=\"%1\"").arg(value);
+ } else if (key == u"font_family" || key == u"face") {
+ fontAttrs += QStringLiteral(" face=\"%1\"").arg(value);
+ } else if ((key == u"weight" || key == u"font_weight") && (value.contains(u"bold") || value.contains(u"heavy") || value.toInt() >= 600)) {
+ open += QStringLiteral("");
+ close.prepend(QStringLiteral(""));
+ } else if ((key == u"style" || key == u"font_style") && value == u"italic") {
+ open += QStringLiteral("");
+ close.prepend(QStringLiteral(""));
+ }
+ }
+ if (!fontAttrs.isEmpty()) {
+ open.prepend(QStringLiteral("").arg(fontAttrs));
+ close += QStringLiteral("");
+ }
+ out += open;
+ closers.append(close);
+ } else if (name == u"b" || name == u"i" || name == u"u") {
+ out += m.captured(0);
+ }
+ }
+ out += markup.mid(last);
+ out.replace(u'\n', QStringLiteral("
"));
+ return out;
+}
+
+// What a command prints, or nothing when it takes too long.
+QString run(const QString &command, QElapsedTimer &budget)
+{
+ // A config full of slow commands (weather, music) must not keep the
+ // window from opening.
+ if (budget.elapsed() > 2000) {
+ return {};
+ }
+ QProcess process;
+ process.start(QStringLiteral("/bin/sh"), {QStringLiteral("-c"), command});
+ if (!process.waitForFinished(700)) {
+ process.kill();
+ process.waitForFinished(100);
+ return {};
+ }
+ return QString::fromUtf8(process.readAllStandardOutput());
+}
+
+// A label's text as hyprlock would show it right after locking.
+QString labelText(QString text, bool trim, QElapsedTimer &budget)
+{
+ const passwd *pw = getpwuid(getuid());
+ text.replace(QStringLiteral("$DESC"), pw ? QString::fromLocal8Bit(pw->pw_gecos) : QString());
+ text.replace(QStringLiteral("$USER"), pw ? QString::fromLocal8Bit(pw->pw_name) : QString());
+ text.replace(QStringLiteral("
"), QStringLiteral("\n"));
+ const QTime now = QTime::currentTime();
+ text.replace(QStringLiteral("$TIME12"), now.toString(QStringLiteral("hh:mm AP")));
+ text.replace(QStringLiteral("$TIME"), now.toString(QStringLiteral("HH:mm")));
+ static const QRegularExpression layoutVar(QStringLiteral("\\$LAYOUT(\\[([^\\]]*)\\])?"));
+ auto layouts = layoutVar.globalMatch(text);
+ while (layouts.hasNext()) {
+ const auto m = layouts.next();
+ const QString first = m.captured(2).section(u',', 0, 0).trimmed();
+ text.replace(m.captured(0), first.isEmpty() ? QStringLiteral("en") : first);
+ }
+ // What only a lock screen that runs knows: nothing has failed yet.
+ static const QRegularExpression runtime(QStringLiteral("\\$(ATTEMPTS(\\[[^\\]]*\\])?|PAMFAIL|FPRINTFAIL|FPRINTPROMPT|FAIL)"));
+ text.remove(runtime);
+ text.replace(QStringLiteral("$PAMPROMPT"), QStringLiteral("Password:"));
+
+ if (text.startsWith(u"cmd[") && text.contains(u']')) {
+ const QString command = text.mid(text.indexOf(u']') + 1);
+ // face-unlock's own line, as it reads during a scan.
+ text = command.contains(u"face-unlock/lock-text") ? i18n("Looking for your face…").toHtmlEscaped() : run(command, budget);
+ }
+ return trim ? text.trimmed() : text;
+}
+
+void place(const Section &s, const QString &position, const QSizeF &screen, QVariantMap &into)
+{
+ const QPointF pos = layout(s.values.value(QStringLiteral("position"), position), screen);
+ into.insert(QStringLiteral("x"), pos.x());
+ into.insert(QStringLiteral("y"), pos.y());
+ into.insert(QStringLiteral("halign"), s.values.value(QStringLiteral("halign"), QStringLiteral("center")));
+ into.insert(QStringLiteral("valign"), s.values.value(QStringLiteral("valign"), QStringLiteral("center")));
+ into.insert(QStringLiteral("rotate"), s.values.value(QStringLiteral("rotate"), QStringLiteral("0")).toDouble());
+}
+
+QColor colorOr(const QString &value, const QColor &fallback)
+{
+ const QColor c = LockPreview::color(value);
+ return c.isValid() ? c : fallback;
+}
+
+// swaylock's colours: RRGGBB or RRGGBBAA, without a #.
+QColor hexColor(const QString &value, const QColor &fallback)
+{
+ QString v = value.trimmed();
+ if (v.startsWith(u'#')) {
+ v = v.mid(1);
+ }
+ bool ok = false;
+ const uint n = v.toUInt(&ok, 16);
+ if (!ok || (v.size() != 6 && v.size() != 8)) {
+ return fallback;
+ }
+ return v.size() == 6 ? QColor((n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff) : QColor((n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff);
+}
+
+QVariantMap wallpaperOnly(const QUrl &wallpaper)
+{
+ return {{QStringLiteral("type"), QStringLiteral("background")},
+ {QStringLiteral("color"), QColor(0x11, 0x11, 0x11)},
+ {QStringLiteral("source"), wallpaper},
+ {QStringLiteral("fill"), QStringLiteral("fill")},
+ {QStringLiteral("blur"), 0.0},
+ {QStringLiteral("dim"), 0.0}};
+}
+} // namespace
+
+QColor LockPreview::color(const QString &value)
+{
+ const QString v = value.trimmed();
+ static const QRegularExpression call(QStringLiteral("^(rgba?)\\((.*)\\)$"));
+ const auto m = call.match(v);
+ if (m.hasMatch()) {
+ const QString inner = m.captured(2).trimmed();
+ const QStringList parts = inner.split(u',');
+ if (parts.size() >= 3) {
+ QColor c(parts.at(0).trimmed().toInt(), parts.at(1).trimmed().toInt(), parts.at(2).trimmed().toInt());
+ if (parts.size() >= 4) {
+ c.setAlphaF(std::clamp(parts.at(3).trimmed().toDouble(), 0.0, 1.0));
+ }
+ return c;
+ }
+ return hexColor(inner, {});
+ }
+ bool ok = false;
+ const qulonglong n = v.startsWith(u"0x", Qt::CaseInsensitive) ? v.mid(2).toULongLong(&ok, 16) : v.toULongLong(&ok, 10);
+ if (!ok) {
+ return {};
+ }
+ return QColor(int((n >> 16) & 0xff), int((n >> 8) & 0xff), int(n & 0xff), int((n >> 24) & 0xff));
+}
+
+QString LockPreview::locker()
+{
+ static const QStringList names{QStringLiteral("hyprlock"), QStringLiteral("swaylock"), QStringLiteral("gtklock"), QStringLiteral("waylock")};
+ // Where a lock screen is started from: the idle daemons first, then the
+ // keys. The first one named there, outside comments.
+ static const QStringList places{QStringLiteral("hypr/hypridle.conf"), QStringLiteral("swayidle/config"), QStringLiteral("niri/config.kdl"),
+ QStringLiteral("hypr/hyprland.lua"), QStringLiteral("hypr/hyprland.conf")};
+ for (const QString &place : places) {
+ for (const QString &line : readFile(configHome() + u'/' + place).split(u'\n')) {
+ const QString code = line.trimmed();
+ if (code.startsWith(u'#') || code.startsWith(u"//") || code.startsWith(u"--")) {
+ continue;
+ }
+ qsizetype first = -1;
+ QString found;
+ for (const QString &name : names) {
+ const qsizetype at = code.indexOf(name);
+ if (at >= 0 && (first < 0 || at < first)) {
+ first = at;
+ found = name;
+ }
+ }
+ if (!found.isEmpty()) {
+ return found;
+ }
+ }
+ }
+ // Started some other way (a script of its own): one that is set up.
+ if (!QStandardPaths::findExecutable(QStringLiteral("hyprlock")).isEmpty() && !findConfig(QStringLiteral("hypr/hyprlock.conf")).isEmpty()) {
+ return QStringLiteral("hyprlock");
+ }
+ for (const QString &name : names) {
+ if (!QStandardPaths::findExecutable(name).isEmpty()) {
+ return name;
+ }
+ }
+ return {};
+}
+
+QVariantList LockPreview::hyprlock(const QString &configPath, const QSizeF &screen, const QString &output, const QUrl &wallpaper)
+{
+ Hyprlang config;
+ config.parse(configPath);
+
+ bool trim = true;
+ for (const Section &s : std::as_const(config.sections)) {
+ if (s.name == u"general" && s.values.contains(QStringLiteral("text_trim"))) {
+ trim = truthy(s.values.value(QStringLiteral("text_trim")));
+ }
+ }
+
+ QElapsedTimer budget;
+ budget.start();
+ QList> placed;
+ bool ourLine = false;
+ bool background = false;
+ for (const Section &s : std::as_const(config.sections)) {
+ const auto value = [&s](const char *key, const char *fallback) {
+ return s.values.value(QString::fromLatin1(key), QString::fromLatin1(fallback));
+ };
+ const QString monitor = value("monitor", "");
+ if (!monitor.isEmpty() && monitor != output && !monitor.startsWith(u"desc:")) {
+ continue;
+ }
+ QVariantMap w;
+ int z = value("zindex", "0").toInt();
+ if (s.name == u"background") {
+ background = true;
+ z = value("zindex", "-1").toInt();
+ const QString path = value("path", "");
+ const int passes = value("blur_passes", "0").toInt();
+ w = wallpaperOnly(path == u"screenshot" ? wallpaper : path.isEmpty() ? QUrl() : QUrl::fromLocalFile(expandHome(path)));
+ w.insert(QStringLiteral("color"), colorOr(value("color", ""), QColor(0x11, 0x11, 0x11)));
+ w.insert(QStringLiteral("blur"), passes > 0 ? std::min(1.0, passes * value("blur_size", "8").toDouble() / 24.0) : 0.0);
+ // hyprlock's blur also darkens, by its brightness.
+ w.insert(QStringLiteral("dim"), passes > 0 ? std::clamp(1.0 - value("brightness", "0.8172").toDouble(), 0.0, 1.0) : 0.0);
+ } else if (s.name == u"label") {
+ const QString text = value("text", "Sample Text");
+ ourLine = ourLine || text.contains(u"face-unlock/lock-text");
+ w.insert(QStringLiteral("type"), QStringLiteral("label"));
+ w.insert(QStringLiteral("text"), styled(labelText(text, trim, budget)));
+ font(value("font_family", "Sans"), w);
+ w.insert(QStringLiteral("size"), value("font_size", "16").toDouble());
+ w.insert(QStringLiteral("color"), colorOr(value("color", ""), Qt::white));
+ w.insert(QStringLiteral("align"), value("text_align", "center"));
+ w.insert(QStringLiteral("shadow"), value("shadow_passes", "0").toInt() > 0);
+ w.insert(QStringLiteral("shadowSize"), value("shadow_size", "3").toDouble());
+ w.insert(QStringLiteral("shadowColor"), colorOr(value("shadow_color", ""), Qt::black));
+ place(s, QStringLiteral("0,0"), screen, w);
+ } else if (s.name == u"input-field") {
+ const QPointF size = layout(value("size", "400,90"), screen);
+ w.insert(QStringLiteral("type"), QStringLiteral("input"));
+ w.insert(QStringLiteral("width"), size.x());
+ w.insert(QStringLiteral("height"), size.y());
+ w.insert(QStringLiteral("thickness"), value("outline_thickness", "4").toDouble());
+ w.insert(QStringLiteral("outer"), gradient(value("outer_color", "0xFF111111")));
+ w.insert(QStringLiteral("inner"), colorOr(value("inner_color", ""), QColor(0xdd, 0xdd, 0xdd)));
+ w.insert(QStringLiteral("fontColor"), colorOr(value("font_color", ""), Qt::black));
+ font(value("font_family", "Sans"), w);
+ w.insert(QStringLiteral("placeholder"), styled(labelText(value("placeholder_text", "Input Password"), trim, budget)));
+ w.insert(QStringLiteral("rounding"), value("rounding", "-1").toDouble());
+ place(s, QStringLiteral("0,0"), screen, w);
+ } else if (s.name == u"shape") {
+ const QPointF size = layout(value("size", "100,100"), screen);
+ w.insert(QStringLiteral("type"), QStringLiteral("shape"));
+ w.insert(QStringLiteral("width"), size.x());
+ w.insert(QStringLiteral("height"), size.y());
+ w.insert(QStringLiteral("color"), colorOr(value("color", ""), QColor(0x11, 0x11, 0x11)));
+ w.insert(QStringLiteral("rounding"), value("rounding", "0").toDouble());
+ w.insert(QStringLiteral("borderSize"), value("border_size", "0").toDouble());
+ w.insert(QStringLiteral("border"), gradient(value("border_color", "0xFF00CFE6")));
+ place(s, QStringLiteral("0,0"), screen, w);
+ } else if (s.name == u"image") {
+ const QString path = value("path", "");
+ if (path.isEmpty()) {
+ continue;
+ }
+ w.insert(QStringLiteral("type"), QStringLiteral("image"));
+ w.insert(QStringLiteral("source"), QUrl::fromLocalFile(expandHome(path)));
+ w.insert(QStringLiteral("size"), value("size", "150").toDouble());
+ w.insert(QStringLiteral("rounding"), value("rounding", "-1").toDouble());
+ w.insert(QStringLiteral("borderSize"), value("border_size", "4").toDouble());
+ w.insert(QStringLiteral("border"), gradient(value("border_color", "0xFFDDDDDD")));
+ place(s, QStringLiteral("0,0"), screen, w);
+ } else {
+ continue;
+ }
+ placed.append({z, w});
+ }
+
+ if (!background) {
+ QVariantMap w = wallpaperOnly({});
+ placed.append({-1, w});
+ }
+ // face-unlock's line, as the menu puts it in (fu_hyprlock_text_on),
+ // for those who have not picked it yet.
+ if (!ourLine) {
+ QVariantMap w{{QStringLiteral("type"), QStringLiteral("label")},
+ {QStringLiteral("text"), i18n("Looking for your face…").toHtmlEscaped()},
+ {QStringLiteral("size"), 20.0},
+ {QStringLiteral("color"), QColor(255, 255, 255, 242)},
+ {QStringLiteral("align"), QStringLiteral("center")},
+ {QStringLiteral("shadow"), true},
+ {QStringLiteral("shadowSize"), 3.0},
+ {QStringLiteral("shadowColor"), QColor(Qt::black)},
+ {QStringLiteral("x"), 0.0},
+ {QStringLiteral("y"), -48.0},
+ {QStringLiteral("halign"), QStringLiteral("center")},
+ {QStringLiteral("valign"), QStringLiteral("top")},
+ {QStringLiteral("rotate"), 0.0}};
+ font(QStringLiteral("Sans"), w);
+ placed.append({10, w});
+ }
+
+ std::stable_sort(placed.begin(), placed.end(), [](const auto &a, const auto &b) {
+ return a.first < b.first;
+ });
+ QVariantList widgets;
+ for (const auto &p : std::as_const(placed)) {
+ widgets.append(p.second);
+ }
+ return widgets;
+}
+
+QVariantList LockPreview::swaylock(const QString &configPath, const QUrl &wallpaper)
+{
+ // One option per line, as on the command line without the dashes.
+ QHash o;
+ for (const QString &raw : readFile(configPath).split(u'\n')) {
+ const QString line = raw.trimmed();
+ if (line.isEmpty() || line.startsWith(u'#')) {
+ continue;
+ }
+ o.insert(line.section(u'=', 0, 0).trimmed(), line.contains(u'=') ? line.section(u'=', 1).trimmed() : QString());
+ }
+
+ // An image may name its output first: [[