feat: group the settings and explain the selected one
This commit is contained in:
1 parent
4db3bcef9c
commit
bcbaaf74bc
5 files changed
+631
-264
No files matched your search
@@ -100,7 +100,7 @@ threshold count, so the samples cannot drift towards somebody else one
|
|||||||
borderline unlock at a time.
|
borderline unlock at a time.
|
||||||
|
|
||||||
A match has to hold for two frames. The face has to look at the screen with
|
A match has to hold for two frames. The face has to look at the screen with
|
||||||
its eyes open (*Only while looking at the screen*), and it has to be the same
|
its eyes open (*Only when you look at the screen*), and it has to be the same
|
||||||
face that shows the sign of life: a face that jumps in the picture, disappears
|
face that shows the sign of life: a face that jumps in the picture, disappears
|
||||||
or stops matching starts the whole check again.
|
or stops matching starts the whole check again.
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@ scans when somebody comes back:
|
|||||||
field is a key like any other. This works while a video or an app keeps the
|
field is a key like any other. This works while a video or an app keeps the
|
||||||
screen on, too (ext_idle_notifier_v1, input notification);
|
screen on, too (ext_idle_notifier_v1, input notification);
|
||||||
- when the machine wakes from sleep;
|
- when the machine wakes from sleep;
|
||||||
- right after locking, if *Look right after the screen locks* is on. Off by
|
- right after locking, if *Scan right after locking* is on. Off by
|
||||||
default: whoever locks their screen on purpose is usually still in front of
|
default: whoever locks their screen on purpose is usually still in front of
|
||||||
it.
|
it.
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ emitter has to be switched on with a tool such as linux-enable-ir-emitter.
|
|||||||
In infrared a phone screen shows up black, which makes the photo check's job
|
In infrared a phone screen shows up black, which makes the photo check's job
|
||||||
easier. A face set up with one camera should be set up again for another.
|
easier. A face set up with one camera should be set up again for another.
|
||||||
|
|
||||||
A laptop with its lid shut is not scanned (*Not while the lid is closed*).
|
A laptop with its lid shut is not scanned (*Not when the lid is closed*).
|
||||||
|
|
||||||
# FILES
|
# FILES
|
||||||
|
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: plasma-face-unlock 1.0.0\n"
|
"Project-Id-Version: plasma-face-unlock 1.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/plasma-face-unlock/"
|
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/plasma-face-unlock/"
|
||||||
"issues\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2026-09-22 18:45+0200\n"
|
"POT-Creation-Date: 2026-09-23 22:32+0200\n"
|
||||||
"PO-Revision-Date: 2026-09-22 18:45+0200\n"
|
"PO-Revision-Date: 2026-09-23 22:32+0200\n"
|
||||||
"Last-Translator: Felitendo\n"
|
"Last-Translator: Felitendo\n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Language: de\n"
|
"Language: de\n"
|
||||||
@@ -20,7 +20,9 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Face unlock's service has to be switched on once for this computer. That "
|
"Face unlock's service has to be switched on once for this computer. That "
|
||||||
"needs your password."
|
"needs your password."
|
||||||
msgstr "Der Dienst für die Gesichtsentsperrung muss auf diesem Computer einmal eingeschaltet werden. Dafür wird dein Passwort gebraucht."
|
msgstr ""
|
||||||
|
"Der Dienst für die Gesichtsentsperrung muss auf diesem Computer einmal "
|
||||||
|
"eingeschaltet werden. Dafür wird dein Passwort gebraucht."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:57
|
#: src/plasma-face-unlock:57
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
@@ -31,7 +33,9 @@ msgstr "Prüfen mit: systemctl status %s"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Setting up a face needs the camera picture on screen. Run this inside your "
|
"Setting up a face needs the camera picture on screen. Run this inside your "
|
||||||
"Plasma session."
|
"Plasma session."
|
||||||
msgstr "Zum Einrichten eines Gesichts muss das Kamerabild auf dem Bildschirm zu sehen sein. Starte das in deiner Plasma-Sitzung."
|
msgstr ""
|
||||||
|
"Zum Einrichten eines Gesichts muss das Kamerabild auf dem Bildschirm zu "
|
||||||
|
"sehen sein. Starte das in deiner Plasma-Sitzung."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:71
|
#: src/plasma-face-unlock:71
|
||||||
msgid "The setup window is open. Follow it there."
|
msgid "The setup window is open. Follow it there."
|
||||||
@@ -44,7 +48,9 @@ msgstr "Das Gesicht ist eingerichtet."
|
|||||||
#: src/plasma-face-unlock:83
|
#: src/plasma-face-unlock:83
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "Face unlock is still off. Turn it on with [1] or `%s enable`."
|
msgid "Face unlock is still off. Turn it on with [1] or `%s enable`."
|
||||||
msgstr "Die Gesichtsentsperrung ist noch aus. Schalte sie mit [1] oder `%s enable` ein."
|
msgstr ""
|
||||||
|
"Die Gesichtsentsperrung ist noch aus. Schalte sie mit [1] oder `%s enable` "
|
||||||
|
"ein."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:87
|
#: src/plasma-face-unlock:87
|
||||||
msgid "No face was added."
|
msgid "No face was added."
|
||||||
@@ -54,7 +60,8 @@ msgstr "Es wurde kein Gesicht hinzugefügt."
|
|||||||
msgid "First, set up your face."
|
msgid "First, set up your face."
|
||||||
msgstr "Richte zuerst dein Gesicht ein."
|
msgstr "Richte zuerst dein Gesicht ein."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:100 src/plasma-face-unlock:120 src/lib/menu.sh:338
|
#: src/plasma-face-unlock:100 src/plasma-face-unlock:120 src/lib/menu.sh:406
|
||||||
|
#: src/lib/menu.sh:410 src/lib/menu.sh:416 src/lib/menu.sh:418
|
||||||
msgid "Could not save the setting."
|
msgid "Could not save the setting."
|
||||||
msgstr "Einstellung konnte nicht gespeichert werden."
|
msgstr "Einstellung konnte nicht gespeichert werden."
|
||||||
|
|
||||||
@@ -64,11 +71,15 @@ msgstr "Der Sperrbildschirm-Dienst konnte nicht gestartet werden."
|
|||||||
|
|
||||||
#: src/plasma-face-unlock:106
|
#: src/plasma-face-unlock:106
|
||||||
msgid "No systemd user session, so the lock screen agent was not started."
|
msgid "No systemd user session, so the lock screen agent was not started."
|
||||||
msgstr "Keine systemd-Benutzersitzung, daher wurde der Sperrbildschirm-Dienst nicht gestartet."
|
msgstr ""
|
||||||
|
"Keine systemd-Benutzersitzung, daher wurde der Sperrbildschirm-Dienst nicht "
|
||||||
|
"gestartet."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:113
|
#: src/plasma-face-unlock:113
|
||||||
msgid "Face unlock is on. Lock the screen and look at it to try."
|
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."
|
msgstr ""
|
||||||
|
"Die Gesichtsentsperrung ist an. Sperre den Bildschirm und schau ihn an, um "
|
||||||
|
"es auszuprobieren."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:115
|
#: src/plasma-face-unlock:115
|
||||||
msgid "It can do sudo and admin prompts too. See Settings."
|
msgid "It can do sudo and admin prompts too. See Settings."
|
||||||
@@ -76,22 +87,24 @@ msgstr "Sie kann auch sudo und Admin-Abfragen übernehmen. Siehe Einstellungen."
|
|||||||
|
|
||||||
#: src/plasma-face-unlock:130
|
#: src/plasma-face-unlock:130
|
||||||
msgid "Face unlock is off. Your faces are kept; delete them under Faces."
|
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."
|
msgstr ""
|
||||||
|
"Die Gesichtsentsperrung ist aus. Deine Gesichter bleiben erhalten; löschen "
|
||||||
|
"kannst du sie unter Gesichter."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:144 src/lib/daemon.sh:109
|
#: src/plasma-face-unlock:144 src/lib/daemon.sh:109
|
||||||
msgid "No face is set up yet."
|
msgid "No face is set up yet."
|
||||||
msgstr "Es ist noch kein Gesicht eingerichtet."
|
msgstr "Es ist noch kein Gesicht eingerichtet."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:148 src/lib/menu.sh:157 src/lib/menu.sh:460
|
#: src/plasma-face-unlock:148 src/lib/menu.sh:167 src/lib/menu.sh:563
|
||||||
msgid "on"
|
msgid "on"
|
||||||
msgstr "an"
|
msgstr "an"
|
||||||
|
|
||||||
#: src/plasma-face-unlock:148 src/lib/menu.sh:159 src/lib/menu.sh:169
|
#: src/plasma-face-unlock:148 src/lib/menu.sh:169 src/lib/menu.sh:179
|
||||||
#: src/lib/menu.sh:461
|
#: src/lib/menu.sh:564
|
||||||
msgid "off"
|
msgid "off"
|
||||||
msgstr "aus"
|
msgstr "aus"
|
||||||
|
|
||||||
#: src/plasma-face-unlock:150 src/lib/menu.sh:478
|
#: src/plasma-face-unlock:150 src/lib/menu.sh:581
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "%s samples, %s learned"
|
msgid "%s samples, %s learned"
|
||||||
msgstr "%s Aufnahmen, %s dazugelernt"
|
msgstr "%s Aufnahmen, %s dazugelernt"
|
||||||
@@ -121,7 +134,7 @@ msgstr "Gesichtsentsperrung einschalten"
|
|||||||
msgid "Turn it off (faces are kept)"
|
msgid "Turn it off (faces are kept)"
|
||||||
msgstr "Ausschalten (Gesichter bleiben erhalten)"
|
msgstr "Ausschalten (Gesichter bleiben erhalten)"
|
||||||
|
|
||||||
#: src/plasma-face-unlock:176 src/lib/menu.sh:540
|
#: src/plasma-face-unlock:176 src/lib/menu.sh:646
|
||||||
msgid "Add a face"
|
msgid "Add a face"
|
||||||
msgstr "Gesicht hinzufügen"
|
msgstr "Gesicht hinzufügen"
|
||||||
|
|
||||||
@@ -157,7 +170,9 @@ msgstr "Ohne Befehl wird ein interaktives Menü angezeigt."
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Run this as your own user, not as root. It asks for your password when it "
|
"Run this as your own user, not as root. It asks for your password when it "
|
||||||
"needs to."
|
"needs to."
|
||||||
msgstr "Starte das als dein eigener Benutzer, nicht als root. Wenn nötig, wird nach deinem Passwort gefragt."
|
msgstr ""
|
||||||
|
"Starte das als dein eigener Benutzer, nicht als root. Wenn nötig, wird nach "
|
||||||
|
"deinem Passwort gefragt."
|
||||||
|
|
||||||
#: src/plasma-face-unlock:221 src/lib/system.sh:89
|
#: src/plasma-face-unlock:221 src/lib/system.sh:89
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
@@ -214,13 +229,15 @@ msgstr "Kein Gesicht zu sehen."
|
|||||||
#: src/lib/daemon.sh:108
|
#: src/lib/daemon.sh:108
|
||||||
msgid ""
|
msgid ""
|
||||||
"Face unlock is paused after too many tries. Unlock once with your password."
|
"Face unlock is paused after too many tries. Unlock once with your password."
|
||||||
msgstr "Die Gesichtsentsperrung ist nach zu vielen Versuchen pausiert. Entsperre einmal mit deinem Passwort."
|
msgstr ""
|
||||||
|
"Die Gesichtsentsperrung ist nach zu vielen Versuchen pausiert. Entsperre "
|
||||||
|
"einmal mit deinem Passwort."
|
||||||
|
|
||||||
#: src/lib/daemon.sh:110
|
#: src/lib/daemon.sh:110
|
||||||
msgid "The camera could not be used."
|
msgid "The camera could not be used."
|
||||||
msgstr "Die Kamera konnte nicht benutzt werden."
|
msgstr "Die Kamera konnte nicht benutzt werden."
|
||||||
|
|
||||||
#: src/lib/daemon.sh:111 src/lib/menu.sh:233
|
#: src/lib/daemon.sh:111 src/lib/menu.sh:246
|
||||||
msgid "The recognition models are missing. Reinstall the package."
|
msgid "The recognition models are missing. Reinstall the package."
|
||||||
msgstr "Die Erkennungsmodelle fehlen. Installiere das Paket neu."
|
msgstr "Die Erkennungsmodelle fehlen. Installiere das Paket neu."
|
||||||
|
|
||||||
@@ -315,175 +332,315 @@ msgstr "Lebenszeichen: %s"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"That was too many tries. Face unlock is paused until you unlock with your "
|
"That was too many tries. Face unlock is paused until you unlock with your "
|
||||||
"password."
|
"password."
|
||||||
msgstr "Das waren zu viele Versuche. Die Gesichtsentsperrung ist pausiert, bis du mit deinem Passwort entsperrst."
|
msgstr ""
|
||||||
|
"Das waren zu viele Versuche. Die Gesichtsentsperrung ist pausiert, bis du "
|
||||||
|
"mit deinem Passwort entsperrst."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:140
|
||||||
#: src/lib/menu.sh:130
|
|
||||||
msgid "[y/N]"
|
msgid "[y/N]"
|
||||||
msgstr "[j/N]"
|
msgstr "[j/N]"
|
||||||
|
|
||||||
#: src/lib/menu.sh:149 src/lib/menu.sh:382
|
#: src/lib/menu.sh:159 src/lib/menu.sh:467
|
||||||
msgid "ON"
|
msgid "ON"
|
||||||
msgstr "AN"
|
msgstr "AN"
|
||||||
|
|
||||||
#: src/lib/menu.sh:151 src/lib/menu.sh:383
|
#: src/lib/menu.sh:161 src/lib/menu.sh:468
|
||||||
msgid "OFF"
|
msgid "OFF"
|
||||||
msgstr "AUS"
|
msgstr "AUS"
|
||||||
|
|
||||||
#: src/lib/menu.sh:167
|
#: src/lib/menu.sh:177 src/lib/menu.sh:181
|
||||||
msgid "strict (blink or turn your head)"
|
|
||||||
msgstr "streng (blinzeln oder Kopf drehen)"
|
|
||||||
|
|
||||||
#: src/lib/menu.sh:168
|
|
||||||
msgid "basic (screens and phone edges)"
|
|
||||||
msgstr "einfach (Bildschirme und Handyränder)"
|
|
||||||
|
|
||||||
#: src/lib/menu.sh:170
|
|
||||||
msgid "normal"
|
|
||||||
msgstr "normal"
|
|
||||||
|
|
||||||
#: src/lib/menu.sh:171
|
|
||||||
msgid "strict"
|
msgid "strict"
|
||||||
msgstr "streng"
|
msgstr "streng"
|
||||||
|
|
||||||
#: src/lib/menu.sh:172
|
#: src/lib/menu.sh:178
|
||||||
|
msgid "basic"
|
||||||
|
msgstr "einfach"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:180 src/lib/menu.sh:185
|
||||||
|
msgid "normal"
|
||||||
|
msgstr "normal"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:182
|
||||||
msgid "relaxed"
|
msgid "relaxed"
|
||||||
msgstr "locker"
|
msgstr "locker"
|
||||||
|
|
||||||
#: src/lib/menu.sh:173
|
#: src/lib/menu.sh:183
|
||||||
msgid "island with the face"
|
msgid "island with the face"
|
||||||
msgstr "Insel mit Gesicht"
|
msgstr "Insel mit Gesicht"
|
||||||
|
|
||||||
#: src/lib/menu.sh:174
|
#: src/lib/menu.sh:184
|
||||||
msgid "small pill with a lock"
|
msgid "small pill with a lock"
|
||||||
msgstr "kleine Pille mit Schloss"
|
msgstr "kleine Pille mit Schloss"
|
||||||
|
|
||||||
#: src/lib/menu.sh:175
|
#: src/lib/menu.sh:186
|
||||||
|
msgid "fast"
|
||||||
|
msgstr "schnell"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:187
|
||||||
|
msgid "slow"
|
||||||
|
msgstr "langsam"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:188
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "%s seconds"
|
msgid "%s seconds"
|
||||||
msgstr "%s Sekunden"
|
msgstr "%s Sekunden"
|
||||||
|
|
||||||
#: src/lib/menu.sh:176 src/lib/menu.sh:313
|
#: src/lib/menu.sh:189 src/lib/menu.sh:381
|
||||||
msgid "automatic"
|
msgid "automatic"
|
||||||
msgstr "automatisch"
|
msgstr "automatisch"
|
||||||
|
|
||||||
#: src/lib/menu.sh:193
|
#: src/lib/menu.sh:206
|
||||||
msgid "Face unlock"
|
msgid "Face unlock"
|
||||||
msgstr "Gesichtsentsperrung"
|
msgstr "Gesichtsentsperrung"
|
||||||
|
|
||||||
#: src/lib/menu.sh:197
|
#: src/lib/menu.sh:210
|
||||||
msgid "Service"
|
msgid "Service"
|
||||||
msgstr "Dienst"
|
msgstr "Dienst"
|
||||||
|
|
||||||
#: src/lib/menu.sh:197
|
#: src/lib/menu.sh:210
|
||||||
msgid "not running"
|
msgid "not running"
|
||||||
msgstr "läuft nicht"
|
msgstr "läuft nicht"
|
||||||
|
|
||||||
#: src/lib/menu.sh:199
|
#: src/lib/menu.sh:212
|
||||||
msgid "Turning face unlock on again starts it."
|
msgid "Turning face unlock on again starts it."
|
||||||
msgstr "Die Gesichtsentsperrung erneut einzuschalten startet ihn."
|
msgstr "Die Gesichtsentsperrung erneut einzuschalten startet ihn."
|
||||||
|
|
||||||
#: src/lib/menu.sh:210 src/lib/menu.sh:212 src/lib/menu.sh:457
|
#: src/lib/menu.sh:223 src/lib/menu.sh:225 src/lib/menu.sh:560
|
||||||
#: src/lib/menu.sh:541
|
#: src/lib/menu.sh:647
|
||||||
msgid "Faces"
|
msgid "Faces"
|
||||||
msgstr "Gesichter"
|
msgstr "Gesichter"
|
||||||
|
|
||||||
#: src/lib/menu.sh:210
|
#: src/lib/menu.sh:223
|
||||||
msgid "none set up yet"
|
msgid "none set up yet"
|
||||||
msgstr "noch keins eingerichtet"
|
msgstr "noch keins eingerichtet"
|
||||||
|
|
||||||
#: src/lib/menu.sh:212
|
#: src/lib/menu.sh:225
|
||||||
msgid "all turned off"
|
msgid "all turned off"
|
||||||
msgstr "alle ausgeschaltet"
|
msgstr "alle ausgeschaltet"
|
||||||
|
|
||||||
#: src/lib/menu.sh:218
|
#: src/lib/menu.sh:231
|
||||||
msgid "none found"
|
msgid "none found"
|
||||||
msgstr "keine gefunden"
|
msgstr "keine gefunden"
|
||||||
|
|
||||||
#: src/lib/menu.sh:220 /tmp/tmp.q9gMIu3Tjj/settings.sh:9
|
#: src/lib/menu.sh:233 /tmp/tmp.jqZ9OxnSvo/settings.sh:12
|
||||||
msgid "Camera"
|
msgid "Camera"
|
||||||
msgstr "Kamera"
|
msgstr "Kamera"
|
||||||
|
|
||||||
#: src/lib/menu.sh:222
|
#: src/lib/menu.sh:235 /tmp/tmp.jqZ9OxnSvo/settings.sh:1
|
||||||
msgid "Lock screen"
|
msgid "Lock screen"
|
||||||
msgstr "Sperrbildschirm"
|
msgstr "Sperrbildschirm"
|
||||||
|
|
||||||
#: src/lib/menu.sh:223
|
#: src/lib/menu.sh:236
|
||||||
msgid "sudo"
|
msgid "sudo"
|
||||||
msgstr "sudo"
|
msgstr "sudo"
|
||||||
|
|
||||||
#: src/lib/menu.sh:224
|
#: src/lib/menu.sh:237 /tmp/tmp.jqZ9OxnSvo/settings.sh:7
|
||||||
msgid "Admin prompts"
|
msgid "Admin prompts"
|
||||||
msgstr "Admin-Abfragen"
|
msgstr "Admin-Abfragen"
|
||||||
|
|
||||||
#: src/lib/menu.sh:225 /tmp/tmp.q9gMIu3Tjj/settings.sh:6
|
#: src/lib/menu.sh:238 /tmp/tmp.jqZ9OxnSvo/settings.sh:9
|
||||||
msgid "Photo check"
|
msgid "Photo check"
|
||||||
msgstr "Foto-Prüfung"
|
msgstr "Foto-Prüfung"
|
||||||
|
|
||||||
#: src/lib/menu.sh:228
|
#: src/lib/menu.sh:241
|
||||||
msgid "Paused"
|
msgid "Paused"
|
||||||
msgstr "Pausiert"
|
msgstr "Pausiert"
|
||||||
|
|
||||||
#: src/lib/menu.sh:228
|
#: src/lib/menu.sh:241
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "for %d more minutes, or until the password is used"
|
msgid "for %d more minutes, or until the password is used"
|
||||||
msgstr "noch %d Minuten, oder bis das Passwort benutzt wird"
|
msgstr "noch %d Minuten, oder bis das Passwort benutzt wird"
|
||||||
|
|
||||||
#: src/lib/menu.sh:230
|
#: src/lib/menu.sh:243
|
||||||
msgid "Last unlock"
|
msgid "Last unlock"
|
||||||
msgstr "Letzte Entsperrung"
|
msgstr "Letzte Entsperrung"
|
||||||
|
|
||||||
#: src/lib/menu.sh:309
|
#: src/lib/menu.sh:287
|
||||||
|
msgid ""
|
||||||
|
"Unlocks the lock screen when it sees your face. Off: only your password "
|
||||||
|
"works there."
|
||||||
|
msgstr ""
|
||||||
|
"Entsperrt den Sperrbildschirm, wenn er dein Gesicht sieht. Aus: Dort geht "
|
||||||
|
"nur dein Passwort."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:288
|
||||||
|
msgid ""
|
||||||
|
"Scans when you press a key or move the mouse on the lock screen, and when "
|
||||||
|
"the computer wakes up."
|
||||||
|
msgstr ""
|
||||||
|
"Scannt, wenn du auf dem Sperrbildschirm eine Taste drückst oder die Maus "
|
||||||
|
"bewegst, und wenn der Computer aufwacht."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:289
|
||||||
|
msgid ""
|
||||||
|
"Scans as soon as the screen locks. Off by default: if you lock it yourself, "
|
||||||
|
"it would unlock again right away."
|
||||||
|
msgstr ""
|
||||||
|
"Scannt, sobald der Bildschirm gesperrt wird. Normalerweise aus: Sperrst du "
|
||||||
|
"selbst, würde er gleich wieder entsperren."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:290
|
||||||
|
msgid ""
|
||||||
|
"sudo takes your face instead of the password. No match: you type the "
|
||||||
|
"password as usual."
|
||||||
|
msgstr ""
|
||||||
|
"sudo nimmt dein Gesicht statt des Passworts. Passt es nicht, tippst du wie "
|
||||||
|
"gewohnt dein Passwort."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:291
|
||||||
|
msgid ""
|
||||||
|
"The password windows of Plasma and apps, for example when you install "
|
||||||
|
"software. No match: you type the password."
|
||||||
|
msgstr ""
|
||||||
|
"Die Passwort-Fenster von Plasma und Apps, zum Beispiel beim Installieren. "
|
||||||
|
"Passt das Gesicht nicht, tippst du dein Passwort."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:292
|
||||||
|
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:293
|
||||||
|
msgid "No check at all. Only for trying out a camera."
|
||||||
|
msgstr "Keine Prüfung. Nur zum Ausprobieren einer Kamera."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:294
|
||||||
|
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 ""
|
||||||
|
"Hält Fotos auf Handy, Tablet oder Hochglanzpapier auf. Blinzeln ist nicht "
|
||||||
|
"nötig. Ein matter Ausdruck kann durchkommen."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:295
|
||||||
|
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:296
|
||||||
|
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:297
|
||||||
|
msgid "The default. Right for most people."
|
||||||
|
msgstr "Der Standard. Passt für die meisten."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:298
|
||||||
|
msgid ""
|
||||||
|
"Your eyes have to be open and on the screen. So it does not unlock while you "
|
||||||
|
"look away or sleep."
|
||||||
|
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:299
|
||||||
|
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 ""
|
||||||
|
"Automatisch nimmt die erste normale Kamera. Nach einem Wechsel dein Gesicht "
|
||||||
|
"neu einrichten. Eine Infrarot-Kamera braucht ihr Licht (linux-enable-ir-"
|
||||||
|
"emitter)."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:300
|
||||||
|
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:301
|
||||||
|
msgid ""
|
||||||
|
"After a sure match it keeps how you look now. So a new haircut or glasses "
|
||||||
|
"need no new setup."
|
||||||
|
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:302
|
||||||
|
msgid ""
|
||||||
|
"No scan while the laptop is closed, for example at a desk with an external "
|
||||||
|
"screen."
|
||||||
|
msgstr ""
|
||||||
|
"Kein Scan bei zugeklapptem Laptop, zum Beispiel am Schreibtisch mit externem "
|
||||||
|
"Bildschirm."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:303
|
||||||
|
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:304
|
||||||
|
msgid "A small pill with a lock that opens."
|
||||||
|
msgstr "Eine kleine Pille mit einem Schloss, das aufgeht."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:305
|
||||||
|
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:306
|
||||||
|
msgid "How fast the bubble moves."
|
||||||
|
msgstr "Wie schnell sich die Bubble bewegt."
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:307
|
||||||
|
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:377
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "automatic (%s)"
|
msgid "automatic (%s)"
|
||||||
msgstr "automatisch (%s)"
|
msgstr "automatisch (%s)"
|
||||||
|
|
||||||
#: src/lib/menu.sh:319
|
#: src/lib/menu.sh:387
|
||||||
msgid "(infrared)"
|
msgid "(infrared)"
|
||||||
msgstr "(Infrarot)"
|
msgstr "(Infrarot)"
|
||||||
|
|
||||||
#: src/lib/menu.sh:323
|
#: src/lib/menu.sh:391
|
||||||
msgid "(not connected)"
|
msgid "(not connected)"
|
||||||
msgstr "(nicht angeschlossen)"
|
msgstr "(nicht angeschlossen)"
|
||||||
|
|
||||||
#: src/lib/menu.sh:379 src/lib/menu.sh:542
|
#: src/lib/menu.sh:464 src/lib/menu.sh:648
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: src/lib/menu.sh:380
|
#: src/lib/menu.sh:465
|
||||||
msgid "Up/Down: select, Space or Right: change, q: back"
|
msgid "↑↓ select ←→ or Space: change q: back"
|
||||||
msgstr "Hoch/Runter: wählen, Leertaste oder Rechts: ändern, q: zurück"
|
msgstr "↑↓ auswählen ←→ oder Leertaste: ändern q: zurück"
|
||||||
|
|
||||||
#: src/lib/menu.sh:381
|
#: src/lib/menu.sh:466
|
||||||
msgid "Settings marked * are for the whole computer and ask for your password."
|
msgid "for all users, asks for your password"
|
||||||
msgstr "Mit * markierte Einstellungen gelten für den ganzen Computer und fragen nach deinem Passwort."
|
msgstr "für alle Nutzer, fragt nach deinem Passwort"
|
||||||
|
|
||||||
#: src/lib/menu.sh:458
|
#: src/lib/menu.sh:561
|
||||||
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
|
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"
|
msgstr ""
|
||||||
|
"Hoch/Runter: wählen, Leertaste: an/aus, r: umbenennen, d: löschen, a: "
|
||||||
|
"hinzufügen, q: zurück"
|
||||||
|
|
||||||
#: src/lib/menu.sh:459
|
#: src/lib/menu.sh:562
|
||||||
msgid "No face is set up yet. Press a to add one."
|
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."
|
msgstr "Es ist noch kein Gesicht eingerichtet. Drück a, um eins hinzuzufügen."
|
||||||
|
|
||||||
#: src/lib/menu.sh:502
|
#: src/lib/menu.sh:607
|
||||||
msgid "New name:"
|
msgid "New name:"
|
||||||
msgstr "Neuer Name:"
|
msgstr "Neuer Name:"
|
||||||
|
|
||||||
#: src/lib/menu.sh:509
|
#: src/lib/menu.sh:614
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "Delete \"%s\"?"
|
msgid "Delete \"%s\"?"
|
||||||
msgstr "„%s“ löschen?"
|
msgstr "„%s“ löschen?"
|
||||||
|
|
||||||
#: src/lib/menu.sh:539
|
#: src/lib/menu.sh:645
|
||||||
msgid "Turn face unlock on or off"
|
msgid "Turn face unlock on or off"
|
||||||
msgstr "Gesichtsentsperrung ein- oder ausschalten"
|
msgstr "Gesichtsentsperrung ein- oder ausschalten"
|
||||||
|
|
||||||
#: src/lib/menu.sh:543
|
#: src/lib/menu.sh:649
|
||||||
msgid "Try it"
|
msgid "Try it"
|
||||||
msgstr "Ausprobieren"
|
msgstr "Ausprobieren"
|
||||||
|
|
||||||
#: src/lib/menu.sh:544
|
#: src/lib/menu.sh:650
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Beenden"
|
msgstr "Beenden"
|
||||||
|
|
||||||
@@ -499,7 +656,8 @@ msgstr "Auf diesem System gibt es keine PAM-Konfiguration für %s."
|
|||||||
|
|
||||||
#: src/lib/system.sh:47
|
#: src/lib/system.sh:47
|
||||||
msgid "This needs root, and neither sudo, run0 nor doas is installed."
|
msgid "This needs root, and neither sudo, run0 nor doas is installed."
|
||||||
msgstr "Dafür braucht es root, aber weder sudo noch run0 noch doas ist installiert."
|
msgstr ""
|
||||||
|
"Dafür braucht es root, aber weder sudo noch run0 noch doas ist installiert."
|
||||||
|
|
||||||
#: src/lib/system.sh:56
|
#: src/lib/system.sh:56
|
||||||
msgid "This command has to run as root."
|
msgid "This command has to run as root."
|
||||||
@@ -516,86 +674,98 @@ msgid "Not a service this can be used for: %s"
|
|||||||
msgstr "Dafür kann es nicht verwendet werden: %s"
|
msgstr "Dafür kann es nicht verwendet werden: %s"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Unlock the lock screen"
|
msgid "Unlock with your face"
|
||||||
msgstr "Sperrbildschirm entsperren"
|
msgstr "Mit dem Gesicht entsperren"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Look when somebody comes back to the screen"
|
msgid "Scan when you come back"
|
||||||
msgstr "Schauen, wenn jemand zum Bildschirm zurückkommt"
|
msgstr "Scannen, wenn du zurückkommst"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Look right after the screen locks"
|
msgid "Scan right after locking"
|
||||||
msgstr "Gleich nach dem Sperren schauen"
|
msgstr "Gleich nach dem Sperren scannen"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Use for sudo in a terminal"
|
msgid "Password prompts"
|
||||||
msgstr "Für sudo im Terminal verwenden"
|
msgstr "Passwort-Abfragen"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Use for admin prompts"
|
msgid "sudo in a terminal"
|
||||||
msgstr "Für Admin-Abfragen verwenden"
|
msgstr "sudo im Terminal"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "How closely a face has to match"
|
msgid "Recognition"
|
||||||
msgstr "Wie genau ein Gesicht passen muss"
|
msgstr "Erkennung"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Only while looking at the screen"
|
msgid "How closely the face has to match"
|
||||||
msgstr "Nur beim Blick auf den Bildschirm"
|
msgstr "Wie genau das Gesicht passen muss"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "How long one look lasts"
|
msgid "Only when you look at the screen"
|
||||||
msgstr "Wie lange ein Blick dauert"
|
msgstr "Nur wenn du auf den Bildschirm schaust"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh
|
||||||
|
msgid "How long a scan lasts"
|
||||||
|
msgstr "Wie lange ein Scan dauert"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Learn from every unlock"
|
msgid "Learn from every unlock"
|
||||||
msgstr "Bei jeder Entsperrung dazulernen"
|
msgstr "Bei jeder Entsperrung dazulernen"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Not while the lid is closed"
|
msgid "Not when the lid is closed"
|
||||||
msgstr "Nicht bei geschlossenem Deckel"
|
msgstr "Nicht bei zugeklapptem Laptop"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Show the bubble at the top"
|
msgid "Bubble"
|
||||||
msgstr "Die Bubble oben anzeigen"
|
msgstr "Bubble"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Bubble style"
|
msgid "Show the bubble"
|
||||||
msgstr "Bubble-Stil"
|
msgstr "Bubble anzeigen"
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Bubble for sudo and admin prompts too"
|
msgid "Style"
|
||||||
msgstr "Bubble auch für sudo und Admin-Abfragen"
|
msgstr "Stil"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:91
|
#: src/lib/menu.sh
|
||||||
|
msgid "Animation speed"
|
||||||
|
msgstr "Animationsgeschwindigkeit"
|
||||||
|
|
||||||
|
#: src/lib/menu.sh
|
||||||
|
msgid "Also for sudo and admin prompts"
|
||||||
|
msgstr "Auch bei sudo und Admin-Abfragen"
|
||||||
|
|
||||||
|
#: src/agent/bubblecontroller.cpp:98
|
||||||
msgid "Blink once"
|
msgid "Blink once"
|
||||||
msgstr "Einmal blinzeln"
|
msgstr "Einmal blinzeln"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:93
|
#: src/agent/bubblecontroller.cpp:100
|
||||||
msgid "Look at the screen"
|
msgid "Look at the screen"
|
||||||
msgstr "Auf den Bildschirm schauen"
|
msgstr "Auf den Bildschirm schauen"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:95
|
#: src/agent/bubblecontroller.cpp:102
|
||||||
msgid "Move closer"
|
msgid "Move closer"
|
||||||
msgstr "Näher kommen"
|
msgstr "Näher kommen"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:97
|
#: src/agent/bubblecontroller.cpp:104
|
||||||
msgid "Too dark"
|
msgid "Too dark"
|
||||||
msgstr "Zu dunkel"
|
msgstr "Zu dunkel"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:117
|
#: src/agent/bubblecontroller.cpp:124
|
||||||
msgid "Use your password"
|
msgid "Use your password"
|
||||||
msgstr "Nutze dein Passwort"
|
msgstr "Nutze dein Passwort"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:123
|
#: src/agent/bubblecontroller.cpp:130
|
||||||
msgid "Not recognized"
|
msgid "Not recognized"
|
||||||
msgstr "Nicht erkannt"
|
msgstr "Nicht erkannt"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:125
|
#: src/agent/bubblecontroller.cpp:132
|
||||||
msgid "Try again and blink"
|
msgid "Try again and blink"
|
||||||
msgstr "Nochmal, und blinzeln"
|
msgstr "Nochmal, und blinzeln"
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:127
|
#: src/agent/bubblecontroller.cpp:134
|
||||||
msgid "Camera unavailable"
|
msgid "Camera unavailable"
|
||||||
msgstr "Kamera nicht verfügbar"
|
msgstr "Kamera nicht verfügbar"
|
||||||
|
|
||||||
@@ -653,7 +823,8 @@ msgstr "Die Kamera konnte nicht benutzt werden: %1"
|
|||||||
|
|
||||||
#: src/agent/enrollcontroller.cpp:197
|
#: src/agent/enrollcontroller.cpp:197
|
||||||
msgid "The face recognition models are missing. Reinstall the package."
|
msgid "The face recognition models are missing. Reinstall the package."
|
||||||
msgstr "Die Modelle für die Gesichtserkennung fehlen. Installiere das Paket neu."
|
msgstr ""
|
||||||
|
"Die Modelle für die Gesichtserkennung fehlen. Installiere das Paket neu."
|
||||||
|
|
||||||
#: src/agent/enrollcontroller.cpp:199
|
#: src/agent/enrollcontroller.cpp:199
|
||||||
msgid "That took too long. Try again, in good light."
|
msgid "That took too long. Try again, in good light."
|
||||||
@@ -661,11 +832,15 @@ msgstr "Das hat zu lange gedauert. Versuch es nochmal, bei gutem Licht."
|
|||||||
|
|
||||||
#: src/agent/enrollcontroller.cpp:201
|
#: src/agent/enrollcontroller.cpp:201
|
||||||
msgid "The face unlock service is not running. Turn face unlock on first."
|
msgid "The face unlock service is not running. Turn face unlock on first."
|
||||||
msgstr "Der Dienst für die Gesichtsentsperrung läuft nicht. Schalte die Gesichtsentsperrung zuerst ein."
|
msgstr ""
|
||||||
|
"Der Dienst für die Gesichtsentsperrung läuft nicht. Schalte die "
|
||||||
|
"Gesichtsentsperrung zuerst ein."
|
||||||
|
|
||||||
#: src/agent/enrollcontroller.cpp:203
|
#: src/agent/enrollcontroller.cpp:203
|
||||||
msgid "The camera is busy with another scan. Try again in a moment."
|
msgid "The camera is busy with another scan. Try again in a moment."
|
||||||
msgstr "Die Kamera ist gerade mit einem anderen Scan beschäftigt. Versuch es gleich nochmal."
|
msgstr ""
|
||||||
|
"Die Kamera ist gerade mit einem anderen Scan beschäftigt. Versuch es gleich "
|
||||||
|
"nochmal."
|
||||||
|
|
||||||
#: src/agent/enrollcontroller.cpp:205
|
#: src/agent/enrollcontroller.cpp:205
|
||||||
msgid "The face could not be added (%1)."
|
msgid "The face could not be added (%1)."
|
||||||
@@ -701,7 +876,9 @@ msgstr "Blinzle oder dreh den Kopf ein wenig."
|
|||||||
|
|
||||||
#: src/pam/pam_plasma_face_unlock.c:312
|
#: src/pam/pam_plasma_face_unlock.c:312
|
||||||
msgid "Face unlock is paused after too many tries. Use your password."
|
msgid "Face unlock is paused after too many tries. Use your password."
|
||||||
msgstr "Die Gesichtsentsperrung ist nach zu vielen Versuchen pausiert. Nutze dein Passwort."
|
msgstr ""
|
||||||
|
"Die Gesichtsentsperrung ist nach zu vielen Versuchen pausiert. Nutze dein "
|
||||||
|
"Passwort."
|
||||||
|
|
||||||
#: src/pam/pam_plasma_face_unlock.c:316
|
#: src/pam/pam_plasma_face_unlock.c:316
|
||||||
msgid "Face not recognised."
|
msgid "Face not recognised."
|
||||||
@@ -731,47 +908,38 @@ msgstr "Die Einrichtung wurde nicht abgeschlossen"
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Look at the camera, then move your head slowly in a circle. Your face is "
|
"Look at the camera, then move your head slowly in a circle. Your face is "
|
||||||
"turned into numbers on this computer and never stored as a picture."
|
"turned into numbers on this computer and never stored as a picture."
|
||||||
msgstr "Schau in die Kamera und beweg dann den Kopf langsam im Kreis. Dein Gesicht wird auf diesem Computer in Zahlen umgewandelt und nie als Bild gespeichert."
|
msgstr ""
|
||||||
|
"Schau in die Kamera und beweg dann den Kopf langsam im Kreis. Dein Gesicht "
|
||||||
|
"wird auf diesem Computer in Zahlen umgewandelt und nie als Bild gespeichert."
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:123
|
#: src/agent/qml/Enroll.qml:123
|
||||||
msgid ""
|
msgid ""
|
||||||
"Lock the screen and look at it to try it out. You can add a second look, "
|
"Lock the screen and look at it to try it out. You can add a second look, "
|
||||||
"with glasses for example, from the menu."
|
"with glasses for example, from the menu."
|
||||||
msgstr "Sperre den Bildschirm und schau ihn an, um es auszuprobieren. Einen zweiten Look, zum Beispiel mit Brille, kannst du im Menü hinzufügen."
|
msgstr ""
|
||||||
|
"Sperre den Bildschirm und schau ihn an, um es auszuprobieren. Einen zweiten "
|
||||||
|
"Look, zum Beispiel mit Brille, kannst du im Menü hinzufügen."
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:156
|
#: src/agent/qml/Enroll.qml:157
|
||||||
msgid "Name (optional)"
|
msgid "Name (optional)"
|
||||||
msgstr "Name (optional)"
|
msgstr "Name (optional)"
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:171
|
#: src/agent/qml/Enroll.qml:172
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Abbrechen"
|
msgstr "Abbrechen"
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:177
|
#: src/agent/qml/Enroll.qml:178
|
||||||
msgid "Finish now"
|
msgid "Finish now"
|
||||||
msgstr "Jetzt abschließen"
|
msgstr "Jetzt abschließen"
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:182
|
#: src/agent/qml/Enroll.qml:183
|
||||||
msgid "Try again"
|
msgid "Try again"
|
||||||
msgstr "Nochmal versuchen"
|
msgstr "Nochmal versuchen"
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:182
|
#: src/agent/qml/Enroll.qml:183
|
||||||
msgid "Get started"
|
msgid "Get started"
|
||||||
msgstr "Los geht's"
|
msgstr "Los geht's"
|
||||||
|
|
||||||
#: src/agent/qml/Enroll.qml:187
|
#: src/agent/qml/Enroll.qml:188
|
||||||
msgid "Done"
|
msgid "Done"
|
||||||
msgstr "Fertig"
|
msgstr "Fertig"
|
||||||
|
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
|
||||||
msgid "Animation speed"
|
|
||||||
msgstr "Animationsgeschwindigkeit"
|
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
|
||||||
msgid "fast"
|
|
||||||
msgstr "schnell"
|
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
|
||||||
msgid "slow"
|
|
||||||
msgstr "langsam"
|
|
||||||
+160
-50
@@ -8,7 +8,7 @@ msgstr ""
|
|||||||
"Project-Id-Version: plasma-face-unlock 1.0.0\n"
|
"Project-Id-Version: plasma-face-unlock 1.0.0\n"
|
||||||
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/plasma-face-unlock/"
|
"Report-Msgid-Bugs-To: https://github.com/LoonixTools/plasma-face-unlock/"
|
||||||
"issues\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2026-09-22 23:12+0200\n"
|
"POT-Creation-Date: 2026-09-23 22:32+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -55,8 +55,8 @@ msgstr ""
|
|||||||
msgid "First, set up your face."
|
msgid "First, set up your face."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/plasma-face-unlock:100 src/plasma-face-unlock:120 src/lib/menu.sh:352
|
#: src/plasma-face-unlock:100 src/plasma-face-unlock:120 src/lib/menu.sh:406
|
||||||
#: src/lib/menu.sh:356 src/lib/menu.sh:362 src/lib/menu.sh:364
|
#: src/lib/menu.sh:410 src/lib/menu.sh:416 src/lib/menu.sh:418
|
||||||
msgid "Could not save the setting."
|
msgid "Could not save the setting."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -84,16 +84,16 @@ msgstr ""
|
|||||||
msgid "No face is set up yet."
|
msgid "No face is set up yet."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/plasma-face-unlock:148 src/lib/menu.sh:167 src/lib/menu.sh:476
|
#: src/plasma-face-unlock:148 src/lib/menu.sh:167 src/lib/menu.sh:563
|
||||||
msgid "on"
|
msgid "on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/plasma-face-unlock:148 src/lib/menu.sh:169 src/lib/menu.sh:179
|
#: src/plasma-face-unlock:148 src/lib/menu.sh:169 src/lib/menu.sh:179
|
||||||
#: src/lib/menu.sh:477
|
#: src/lib/menu.sh:564
|
||||||
msgid "off"
|
msgid "off"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/plasma-face-unlock:150 src/lib/menu.sh:494
|
#: src/plasma-face-unlock:150 src/lib/menu.sh:581
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "%s samples, %s learned"
|
msgid "%s samples, %s learned"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -123,7 +123,7 @@ msgstr ""
|
|||||||
msgid "Turn it off (faces are kept)"
|
msgid "Turn it off (faces are kept)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/plasma-face-unlock:176 src/lib/menu.sh:559
|
#: src/plasma-face-unlock:176 src/lib/menu.sh:646
|
||||||
msgid "Add a face"
|
msgid "Add a face"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -323,30 +323,26 @@ msgstr ""
|
|||||||
msgid "[y/N]"
|
msgid "[y/N]"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:159 src/lib/menu.sh:396
|
#: src/lib/menu.sh:159 src/lib/menu.sh:467
|
||||||
msgid "ON"
|
msgid "ON"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:161 src/lib/menu.sh:397
|
#: src/lib/menu.sh:161 src/lib/menu.sh:468
|
||||||
msgid "OFF"
|
msgid "OFF"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:177
|
#: src/lib/menu.sh:177 src/lib/menu.sh:181
|
||||||
msgid "strict (blink or turn your head)"
|
msgid "strict"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:178
|
#: src/lib/menu.sh:178
|
||||||
msgid "basic (screens and phone edges)"
|
msgid "basic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:180 src/lib/menu.sh:185
|
#: src/lib/menu.sh:180 src/lib/menu.sh:185
|
||||||
msgid "normal"
|
msgid "normal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:181
|
|
||||||
msgid "strict"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: src/lib/menu.sh:182
|
#: src/lib/menu.sh:182
|
||||||
msgid "relaxed"
|
msgid "relaxed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -372,7 +368,7 @@ msgstr ""
|
|||||||
msgid "%s seconds"
|
msgid "%s seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:189 src/lib/menu.sh:327
|
#: src/lib/menu.sh:189 src/lib/menu.sh:381
|
||||||
msgid "automatic"
|
msgid "automatic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -392,8 +388,8 @@ msgstr ""
|
|||||||
msgid "Turning face unlock on again starts it."
|
msgid "Turning face unlock on again starts it."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:223 src/lib/menu.sh:225 src/lib/menu.sh:473
|
#: src/lib/menu.sh:223 src/lib/menu.sh:225 src/lib/menu.sh:560
|
||||||
#: src/lib/menu.sh:560
|
#: src/lib/menu.sh:647
|
||||||
msgid "Faces"
|
msgid "Faces"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -409,11 +405,11 @@ msgstr ""
|
|||||||
msgid "none found"
|
msgid "none found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:233 /tmp/tmp.PgsbSPb4Sv/settings.sh:9
|
#: src/lib/menu.sh:233 /tmp/tmp.jqZ9OxnSvo/settings.sh:12
|
||||||
msgid "Camera"
|
msgid "Camera"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:235
|
#: src/lib/menu.sh:235 /tmp/tmp.jqZ9OxnSvo/settings.sh:1
|
||||||
msgid "Lock screen"
|
msgid "Lock screen"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -421,11 +417,11 @@ msgstr ""
|
|||||||
msgid "sudo"
|
msgid "sudo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:237
|
#: src/lib/menu.sh:237 /tmp/tmp.jqZ9OxnSvo/settings.sh:7
|
||||||
msgid "Admin prompts"
|
msgid "Admin prompts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:238 /tmp/tmp.PgsbSPb4Sv/settings.sh:6
|
#: src/lib/menu.sh:238 /tmp/tmp.jqZ9OxnSvo/settings.sh:9
|
||||||
msgid "Photo check"
|
msgid "Photo check"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -442,57 +438,163 @@ msgstr ""
|
|||||||
msgid "Last unlock"
|
msgid "Last unlock"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:323
|
#: src/lib/menu.sh:287
|
||||||
|
msgid ""
|
||||||
|
"Unlocks the lock screen when it sees your face. Off: only your password "
|
||||||
|
"works there."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:288
|
||||||
|
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:289
|
||||||
|
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:290
|
||||||
|
msgid ""
|
||||||
|
"sudo takes your face instead of the password. No match: you type the "
|
||||||
|
"password as usual."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:291
|
||||||
|
msgid ""
|
||||||
|
"The password windows of Plasma and apps, for example when you install "
|
||||||
|
"software. No match: you type the password."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:292
|
||||||
|
msgid ""
|
||||||
|
"You have to blink or turn your head a little. This also stops printed photos."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:293
|
||||||
|
msgid "No check at all. Only for trying out a camera."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:294
|
||||||
|
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:295
|
||||||
|
msgid ""
|
||||||
|
"Fewer wrong matches, but it may not know you with glasses or in bad light."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:296
|
||||||
|
msgid "Knows you more easily, but also somebody who looks a lot like you."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:297
|
||||||
|
msgid "The default. Right for most people."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:298
|
||||||
|
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:299
|
||||||
|
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:300
|
||||||
|
msgid "How long the camera looks for your face before it gives up."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:301
|
||||||
|
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:302
|
||||||
|
msgid ""
|
||||||
|
"No scan while the laptop is closed, for example at a desk with an external "
|
||||||
|
"screen."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:303
|
||||||
|
msgid "The bubble at the top of the screen shows what the camera is doing."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:304
|
||||||
|
msgid "A small pill with a lock that opens."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:305
|
||||||
|
msgid "An island with a face that looks around, then rings and a tick."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:306
|
||||||
|
msgid "How fast the bubble moves."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:307
|
||||||
|
msgid "Shows the bubble when sudo or an admin prompt scans your face, too."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh:377
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "automatic (%s)"
|
msgid "automatic (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:333
|
#: src/lib/menu.sh:387
|
||||||
msgid "(infrared)"
|
msgid "(infrared)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:337
|
#: src/lib/menu.sh:391
|
||||||
msgid "(not connected)"
|
msgid "(not connected)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:393 src/lib/menu.sh:561
|
#: src/lib/menu.sh:464 src/lib/menu.sh:648
|
||||||
msgid "Settings"
|
msgid "Settings"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:394
|
#: src/lib/menu.sh:465
|
||||||
msgid "Up/Down: select, Space or Right: change, q: back"
|
msgid "↑↓ select ←→ or Space: change q: back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:395
|
#: src/lib/menu.sh:466
|
||||||
msgid "Settings marked * are for the whole computer and ask for your password."
|
msgid "for all users, asks for your password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:474
|
#: src/lib/menu.sh:561
|
||||||
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
|
msgid "Up/Down: select, Space: on/off, r: rename, d: delete, a: add, q: back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:475
|
#: src/lib/menu.sh:562
|
||||||
msgid "No face is set up yet. Press a to add one."
|
msgid "No face is set up yet. Press a to add one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:520
|
#: src/lib/menu.sh:607
|
||||||
msgid "New name:"
|
msgid "New name:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:527
|
#: src/lib/menu.sh:614
|
||||||
#, sh-printf-format
|
#, sh-printf-format
|
||||||
msgid "Delete \"%s\"?"
|
msgid "Delete \"%s\"?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:558
|
#: src/lib/menu.sh:645
|
||||||
msgid "Turn face unlock on or off"
|
msgid "Turn face unlock on or off"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:562
|
#: src/lib/menu.sh:649
|
||||||
msgid "Try it"
|
msgid "Try it"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh:563
|
#: src/lib/menu.sh:650
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -525,35 +627,39 @@ msgid "Not a service this can be used for: %s"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Unlock the lock screen"
|
msgid "Unlock with your face"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Look when somebody comes back to the screen"
|
msgid "Scan when you come back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Look right after the screen locks"
|
msgid "Scan right after locking"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Use for sudo in a terminal"
|
msgid "Password prompts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Use for admin prompts"
|
msgid "sudo in a terminal"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "How closely a face has to match"
|
msgid "Recognition"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Only while looking at the screen"
|
msgid "How closely the face has to match"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "How long one look lasts"
|
msgid "Only when you look at the screen"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh
|
||||||
|
msgid "How long a scan lasts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
@@ -561,15 +667,19 @@ msgid "Learn from every unlock"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Not while the lid is closed"
|
msgid "Not when the lid is closed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Show the bubble at the top"
|
msgid "Bubble"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Bubble style"
|
msgid "Show the bubble"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/lib/menu.sh
|
||||||
|
msgid "Style"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
@@ -577,7 +687,7 @@ msgid "Animation speed"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/lib/menu.sh
|
#: src/lib/menu.sh
|
||||||
msgid "Bubble for sudo and admin prompts too"
|
msgid "Also for sudo and admin prompts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: src/agent/bubblecontroller.cpp:98
|
#: src/agent/bubblecontroller.cpp:98
|
||||||
|
|||||||
+5
-3
@@ -5,8 +5,9 @@
|
|||||||
# the shell code (pfu_msg), the agent (i18n in C++ and QML) and the PAM module
|
# the shell code (pfu_msg), the agent (i18n in C++ and QML) and the PAM module
|
||||||
# (dgettext), so a word is translated once wherever it shows up.
|
# (dgettext), so a word is translated once wherever it shows up.
|
||||||
#
|
#
|
||||||
# The settings labels live in an array in menu.sh and reach gettext at run
|
# The settings labels and headings live in an array in menu.sh and reach
|
||||||
# time, so xgettext cannot see them; they are pulled out here first.
|
# gettext at run time, so xgettext cannot see them; they are pulled out here
|
||||||
|
# first.
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
@@ -17,7 +18,8 @@ trap 'rm -rf -- "$tmp"' EXIT
|
|||||||
version="$(make -s version)"
|
version="$(make -s version)"
|
||||||
|
|
||||||
# The labels, as calls xgettext understands, pointing back at menu.sh.
|
# The labels, as calls xgettext understands, pointing back at menu.sh.
|
||||||
awk -F'|' '/^\t"(user|sys|pam)\|/ { sub(/"$/, "", $5); print "pfu_msg \"" $5 "\"" }' src/lib/menu.sh > "$tmp/settings.sh"
|
awk -F'|' '/^\t"(user|sys|pam)\|/ { sub(/"$/, "", $5); print "pfu_msg \"" $5 "\"" }
|
||||||
|
/^\t"group\|/ { sub(/"$/, "", $2); print "pfu_msg \"" $2 "\"" }' src/lib/menu.sh > "$tmp/settings.sh"
|
||||||
|
|
||||||
common=(--from-code=UTF-8 --add-comments=TRANSLATORS --package-name=plasma-face-unlock --package-version="$version"
|
common=(--from-code=UTF-8 --add-comments=TRANSLATORS --package-name=plasma-face-unlock --package-version="$version"
|
||||||
--msgid-bugs-address=https://github.com/LoonixTools/plasma-face-unlock/issues)
|
--msgid-bugs-address=https://github.com/LoonixTools/plasma-face-unlock/issues)
|
||||||
|
|||||||
+162
-75
@@ -174,8 +174,8 @@ _pfu_small_onoff() {
|
|||||||
# How a setting's value reads in the menu.
|
# How a setting's value reads in the menu.
|
||||||
pfu_value_label() {
|
pfu_value_label() {
|
||||||
case "$1:$2" in
|
case "$1:$2" in
|
||||||
Liveness:heavy) pfu_msg "strict (blink or turn your head)" ;;
|
Liveness:heavy) pfu_msg "strict" ;;
|
||||||
Liveness:light) pfu_msg "basic (screens and phone edges)" ;;
|
Liveness:light) pfu_msg "basic" ;;
|
||||||
Liveness:off) pfu_msg "off" ;;
|
Liveness:off) pfu_msg "off" ;;
|
||||||
Strictness:normal) pfu_msg "normal" ;;
|
Strictness:normal) pfu_msg "normal" ;;
|
||||||
Strictness:strict) pfu_msg "strict" ;;
|
Strictness:strict) pfu_msg "strict" ;;
|
||||||
@@ -250,29 +250,85 @@ pfu_ui_status() {
|
|||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Settings
|
# Settings
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Format: scope|Key|type|default|label-msgid|choices
|
# Format: scope|Key|type|default|label-msgid|choices|needs
|
||||||
# scope user (this user's file), sys (the system file, through sudo) or
|
# scope user (this user's file), sys (the system file, through sudo),
|
||||||
# pam (the service of that name, through sudo)
|
# pam (the service of that name, through sudo), or group for a
|
||||||
# type bool, choice (cycles through the choices) or camera
|
# heading, with only the label after it
|
||||||
|
# type bool, choice (steps through the choices) or camera
|
||||||
|
# needs a bool setting this one does nothing without; it is dimmed while
|
||||||
|
# that is off
|
||||||
PFU_SETTINGS=(
|
PFU_SETTINGS=(
|
||||||
"user|LockScreen|bool|yes|Unlock the lock screen"
|
"group|Lock screen"
|
||||||
"user|ScanOnWake|bool|yes|Look when somebody comes back to the screen"
|
"user|LockScreen|bool|yes|Unlock with your face"
|
||||||
"user|ScanOnLock|bool|no|Look right after the screen locks"
|
"user|ScanOnWake|bool|yes|Scan when you come back||LockScreen"
|
||||||
"pam|sudo|bool|no|Use for sudo in a terminal"
|
"user|ScanOnLock|bool|no|Scan right after locking||LockScreen"
|
||||||
"pam|polkit-1|bool|no|Use for admin prompts"
|
"group|Password prompts"
|
||||||
"sys|Liveness|choice|light|Photo check|light,heavy,off"
|
"pam|sudo|bool|no|sudo in a terminal"
|
||||||
"sys|Strictness|choice|normal|How closely a face has to match|normal,strict,relaxed"
|
"pam|polkit-1|bool|no|Admin prompts"
|
||||||
"sys|Attention|bool|yes|Only while looking at the screen"
|
"group|Recognition"
|
||||||
|
"sys|Liveness|choice|light|Photo check|off,light,heavy"
|
||||||
|
"sys|Strictness|choice|normal|How closely the face has to match|relaxed,normal,strict"
|
||||||
|
"sys|Attention|bool|yes|Only when you look at the screen"
|
||||||
"sys|Camera|camera|auto|Camera"
|
"sys|Camera|camera|auto|Camera"
|
||||||
"sys|ScanSeconds|choice|5|How long one look lasts|3,4,5,6,8,10"
|
"sys|ScanSeconds|choice|5|How long a scan lasts|3,4,5,6,8,10"
|
||||||
"sys|Adapt|bool|yes|Learn from every unlock"
|
"sys|Adapt|bool|yes|Learn from every unlock"
|
||||||
"sys|SkipLidClosed|bool|yes|Not while the lid is closed"
|
"sys|SkipLidClosed|bool|yes|Not when the lid is closed"
|
||||||
"user|Bubble|bool|yes|Show the bubble at the top"
|
"group|Bubble"
|
||||||
"user|BubbleStyle|choice|full|Bubble style|full,minimal"
|
"user|Bubble|bool|yes|Show the bubble"
|
||||||
"user|AnimationSpeed|choice|normal|Animation speed|normal,fast,slow"
|
"user|BubbleStyle|choice|full|Style|full,minimal|Bubble"
|
||||||
"user|BubbleForPrompts|bool|yes|Bubble for sudo and admin prompts too"
|
"user|AnimationSpeed|choice|normal|Animation speed|slow,normal,fast|Bubble"
|
||||||
|
"user|BubbleForPrompts|bool|yes|Also for sudo and admin prompts||Bubble"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# pfu_setting_help <Key> <value>
|
||||||
|
# What a setting does, shown under the list for the selected one.
|
||||||
|
pfu_setting_help() {
|
||||||
|
case "$1:$2" in
|
||||||
|
LockScreen:*) pfu_msg "Unlocks the lock screen when it sees your face. Off: only your password works there." ;;
|
||||||
|
ScanOnWake:*) pfu_msg "Scans when you press a key or move the mouse on the lock screen, and when the computer wakes up." ;;
|
||||||
|
ScanOnLock:*) pfu_msg "Scans as soon as the screen locks. Off by default: if you lock it yourself, it would unlock again right away." ;;
|
||||||
|
sudo:*) pfu_msg "sudo takes your face instead of the password. No match: you type the password as usual." ;;
|
||||||
|
polkit-1:*) pfu_msg "The password windows of Plasma and apps, for example when you install software. No match: you type the password." ;;
|
||||||
|
Liveness:heavy) pfu_msg "You have to blink or turn your head a little. This also stops printed photos." ;;
|
||||||
|
Liveness:off) pfu_msg "No check at all. Only for trying out a camera." ;;
|
||||||
|
Liveness:*) pfu_msg "Stops photos on a phone, a tablet or glossy paper. You do not have to blink. A matte printed photo can get through." ;;
|
||||||
|
Strictness:strict) pfu_msg "Fewer wrong matches, but it may not know you with glasses or in bad light." ;;
|
||||||
|
Strictness:relaxed) pfu_msg "Knows you more easily, but also somebody who looks a lot like you." ;;
|
||||||
|
Strictness:*) pfu_msg "The default. Right for most people." ;;
|
||||||
|
Attention:*) pfu_msg "Your eyes have to be open and on the screen. So it does not unlock while you look away or sleep." ;;
|
||||||
|
Camera:*) pfu_msg "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)." ;;
|
||||||
|
ScanSeconds:*) pfu_msg "How long the camera looks for your face before it gives up." ;;
|
||||||
|
Adapt:*) pfu_msg "After a sure match it keeps how you look now. So a new haircut or glasses need no new setup." ;;
|
||||||
|
SkipLidClosed:*) pfu_msg "No scan while the laptop is closed, for example at a desk with an external screen." ;;
|
||||||
|
Bubble:*) pfu_msg "The bubble at the top of the screen shows what the camera is doing." ;;
|
||||||
|
BubbleStyle:minimal) pfu_msg "A small pill with a lock that opens." ;;
|
||||||
|
BubbleStyle:*) pfu_msg "An island with a face that looks around, then rings and a tick." ;;
|
||||||
|
AnimationSpeed:*) pfu_msg "How fast the bubble moves." ;;
|
||||||
|
BubbleForPrompts:*) pfu_msg "Shows the bubble when sudo or an admin prompt scans your face, too." ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# _pfu_wrap <width> <text>
|
||||||
|
# Word wrap, into PFU_WRAP_LINES.
|
||||||
|
PFU_WRAP_LINES=()
|
||||||
|
|
||||||
|
_pfu_wrap() {
|
||||||
|
local width="$1" word line=''
|
||||||
|
local -a words
|
||||||
|
PFU_WRAP_LINES=()
|
||||||
|
read -r -a words <<< "$2"
|
||||||
|
for word in "${words[@]}"; do
|
||||||
|
if [[ -n $line ]] && (( ${#line} + 1 + ${#word} > width )); then
|
||||||
|
PFU_WRAP_LINES+=("$line")
|
||||||
|
line="$word"
|
||||||
|
else
|
||||||
|
line="${line:+$line }$word"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[[ -n $line ]] && PFU_WRAP_LINES+=("$line")
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
# _pfu_setting_value <scope> <Key> <default>
|
# _pfu_setting_value <scope> <Key> <default>
|
||||||
# The current value, in PFU_SETTING_VALUE.
|
# The current value, in PFU_SETTING_VALUE.
|
||||||
PFU_SETTING_VALUE=''
|
PFU_SETTING_VALUE=''
|
||||||
@@ -285,34 +341,32 @@ _pfu_setting_value() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# _pfu_next_choice <current> <a,b,c>
|
# _pfu_step <current> <step> <choice>...
|
||||||
_pfu_next_choice() {
|
# The choice <step> (1 or -1) away from the current one, round at the ends.
|
||||||
local current="$1" list="$2" first='' found=0 c
|
_pfu_step() {
|
||||||
local -a choices
|
local current="$1" step="$2" i
|
||||||
IFS=',' read -r -a choices <<< "$list"
|
shift 2
|
||||||
for c in "${choices[@]}"; do
|
local -a all=("$@")
|
||||||
[[ -z $first ]] && first="$c"
|
|
||||||
if (( found )); then
|
|
||||||
printf '%s\n' "$c"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
[[ $c == "$current" ]] && found=1
|
|
||||||
done
|
|
||||||
printf '%s\n' "$first"
|
|
||||||
}
|
|
||||||
|
|
||||||
# _pfu_next_camera <current>
|
|
||||||
_pfu_next_camera() {
|
|
||||||
local current="$1" i
|
|
||||||
pfu_cameras_load
|
|
||||||
local -a all=(auto "${PFU_CAM_PATHS[@]}")
|
|
||||||
for i in "${!all[@]}"; do
|
for i in "${!all[@]}"; do
|
||||||
if [[ ${all[i]} == "$current" ]]; then
|
if [[ ${all[i]} == "$current" ]]; then
|
||||||
printf '%s\n' "${all[(i + 1) % ${#all[@]}]}"
|
printf '%s\n' "${all[(i + step + ${#all[@]}) % ${#all[@]}]}"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
printf 'auto\n'
|
printf '%s\n' "${all[0]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# _pfu_next_choice <current> <a,b,c> <step>
|
||||||
|
_pfu_next_choice() {
|
||||||
|
local -a choices
|
||||||
|
IFS=',' read -r -a choices <<< "$2"
|
||||||
|
_pfu_step "$1" "$3" "${choices[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# _pfu_next_camera <current> <step>
|
||||||
|
_pfu_next_camera() {
|
||||||
|
pfu_cameras_load
|
||||||
|
_pfu_step "$1" "$2" auto "${PFU_CAM_PATHS[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
_pfu_camera_label() {
|
_pfu_camera_label() {
|
||||||
@@ -337,14 +391,14 @@ _pfu_camera_label() {
|
|||||||
printf '%s %s' "$value" "$(pfu_msg "(not connected)")"
|
printf '%s %s' "$value" "$(pfu_msg "(not connected)")"
|
||||||
}
|
}
|
||||||
|
|
||||||
# _pfu_setting_change <scope> <Key> <type> <current> <choices>
|
# _pfu_setting_change <scope> <Key> <type> <current> <choices> <step>
|
||||||
_pfu_setting_change() {
|
_pfu_setting_change() {
|
||||||
local scope="$1" key="$2" type="$3" current="$4" choices="$5" next
|
local scope="$1" key="$2" type="$3" current="$4" choices="$5" step="$6" next
|
||||||
|
|
||||||
case "$type" in
|
case "$type" in
|
||||||
bool) if pfu_is_true "$current"; then next=no; else next=yes; fi ;;
|
bool) if pfu_is_true "$current"; then next=no; else next=yes; fi ;;
|
||||||
choice) next="$(_pfu_next_choice "$current" "$choices")" ;;
|
choice) next="$(_pfu_next_choice "$current" "$choices" "$step")" ;;
|
||||||
camera) next="$(_pfu_next_camera "$current")" ;;
|
camera) next="$(_pfu_next_camera "$current" "$step")" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$scope" in
|
case "$scope" in
|
||||||
@@ -374,25 +428,42 @@ _pfu_setting_change() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# pfu_ui_settings
|
# pfu_ui_settings
|
||||||
# A cursor list rather than a numbered menu. The frame is assembled in memory
|
# A cursor list in groups, with what the selected setting does under it. The
|
||||||
# and written once, and everything constant is resolved before the loop.
|
# frame is assembled in memory and written once, and everything constant is
|
||||||
|
# resolved before the loop.
|
||||||
pfu_ui_settings() {
|
pfu_ui_settings() {
|
||||||
local count=${#PFU_SETTINGS[@]}
|
local -a scopes=() keys=() types=() defaults=() labels=() choices=() needs=() values=() rows=()
|
||||||
local -a scopes=() keys=() types=() defaults=() labels=() choices=() values=()
|
local spec scope key type default label choice need locale i j frame row pad dirty=1 cursor=0 shown
|
||||||
local spec scope key type default label choice locale i frame row pad dirty=1 cursor=0 shown
|
local width=0 wrap cols
|
||||||
|
|
||||||
locale="$(pfu_ui_locale)"
|
locale="$(pfu_ui_locale)"
|
||||||
for spec in "${PFU_SETTINGS[@]}"; do
|
for spec in "${PFU_SETTINGS[@]}"; do
|
||||||
IFS='|' read -r scope key type default label choice <<< "$spec"
|
IFS='|' read -r scope key type default label choice need <<< "$spec"
|
||||||
scopes+=("$scope"); keys+=("$key"); types+=("$type"); defaults+=("$default"); choices+=("$choice")
|
# A heading has its label where the key would be.
|
||||||
|
[[ $scope == group ]] && label="$key" key=''
|
||||||
|
scopes+=("$scope"); keys+=("$key"); types+=("$type"); defaults+=("$default")
|
||||||
|
choices+=("$choice"); needs+=("$need")
|
||||||
pfu_msg_into "$locale" "$label"
|
pfu_msg_into "$locale" "$label"
|
||||||
labels+=("$PFU_MSG_RESULT")
|
labels+=("$PFU_MSG_RESULT")
|
||||||
|
if [[ $scope != group ]]; then
|
||||||
|
rows+=($(( ${#keys[@]} - 1 )))
|
||||||
|
(( ${#PFU_MSG_RESULT} > width )) && width=${#PFU_MSG_RESULT}
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
local count=${#rows[@]}
|
||||||
|
|
||||||
local title hint legend l_on l_off
|
cols="$(tput cols 2>/dev/null)" || cols=80
|
||||||
|
[[ $cols =~ ^[0-9]+$ ]] || cols=80
|
||||||
|
wrap=$(( cols - 4 ))
|
||||||
|
(( wrap > 72 )) && wrap=72
|
||||||
|
local rule
|
||||||
|
printf -v rule '%*s' "$wrap" ''
|
||||||
|
rule="${rule// /─}"
|
||||||
|
|
||||||
|
local title hint shared l_on l_off
|
||||||
pfu_msg_into "$locale" "Settings"; title="$PFU_MSG_RESULT"
|
pfu_msg_into "$locale" "Settings"; title="$PFU_MSG_RESULT"
|
||||||
pfu_msg_into "$locale" "Up/Down: select, Space or Right: change, q: back"; hint="$PFU_MSG_RESULT"
|
pfu_msg_into "$locale" "↑↓ select ←→ or Space: change q: back"; hint="$PFU_MSG_RESULT"
|
||||||
pfu_msg_into "$locale" "Settings marked * are for the whole computer and ask for your password."; legend="$PFU_MSG_RESULT"
|
pfu_msg_into "$locale" "for all users, asks for your password"; shared="$PFU_MSG_RESULT"
|
||||||
pfu_msg_into "$locale" "ON"; l_on="$PFU_MSG_RESULT"
|
pfu_msg_into "$locale" "ON"; l_on="$PFU_MSG_RESULT"
|
||||||
pfu_msg_into "$locale" "OFF"; l_off="$PFU_MSG_RESULT"
|
pfu_msg_into "$locale" "OFF"; l_off="$PFU_MSG_RESULT"
|
||||||
|
|
||||||
@@ -404,17 +475,26 @@ pfu_ui_settings() {
|
|||||||
while true; do
|
while true; do
|
||||||
if (( dirty )); then
|
if (( dirty )); then
|
||||||
PFU_KV_CACHE=()
|
PFU_KV_CACHE=()
|
||||||
for i in "${!keys[@]}"; do
|
declare -A current=()
|
||||||
|
for i in "${rows[@]}"; do
|
||||||
_pfu_setting_value "${scopes[i]}" "${keys[i]}" "${defaults[i]}"
|
_pfu_setting_value "${scopes[i]}" "${keys[i]}" "${defaults[i]}"
|
||||||
values[i]="$PFU_SETTING_VALUE"
|
values[i]="$PFU_SETTING_VALUE"
|
||||||
|
current[${keys[i]}]="$PFU_SETTING_VALUE"
|
||||||
done
|
done
|
||||||
dirty=0
|
dirty=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
frame="$clearseq"$'\n'"${PFU_C_BOLD}${PFU_C_BLUE} ${title}${PFU_C_RESET}"$'\n\n'
|
frame="$clearseq"$'\n'"${PFU_C_BOLD}${PFU_C_BLUE} ${title}${PFU_C_RESET}"$'\n'
|
||||||
|
|
||||||
local marker selected="${PFU_C_BLUE}▸${PFU_C_RESET} " star
|
local selected=${rows[cursor]} marker before after dim
|
||||||
for i in "${!keys[@]}"; do
|
for i in "${!keys[@]}"; do
|
||||||
|
if [[ ${scopes[i]} == group ]]; then
|
||||||
|
frame+=$'\n'" ${PFU_C_BOLD}${labels[i]}${PFU_C_RESET}"
|
||||||
|
# The next row says whose settings these are.
|
||||||
|
[[ ${scopes[i + 1]} != user ]] && frame+=" ${PFU_C_DIM}${shared}${PFU_C_RESET}"
|
||||||
|
frame+=$'\n'
|
||||||
|
continue
|
||||||
|
fi
|
||||||
case "${types[i]}" in
|
case "${types[i]}" in
|
||||||
bool)
|
bool)
|
||||||
if pfu_is_true "${values[i]}"; then
|
if pfu_is_true "${values[i]}"; then
|
||||||
@@ -426,22 +506,27 @@ pfu_ui_settings() {
|
|||||||
camera) shown="$(_pfu_camera_label "${values[i]}")" ;;
|
camera) shown="$(_pfu_camera_label "${values[i]}")" ;;
|
||||||
*) shown="$(pfu_value_label "${keys[i]}" "${values[i]}")" ;;
|
*) shown="$(pfu_value_label "${keys[i]}" "${values[i]}")" ;;
|
||||||
esac
|
esac
|
||||||
star=' '
|
# Arrows on the selected choice: left and right step through it.
|
||||||
[[ ${scopes[i]} != user ]] && star='*'
|
before=' ' after=''
|
||||||
pad=$(( 44 - ${#labels[i]} ))
|
if (( i == selected )) && [[ ${types[i]} != bool ]]; then
|
||||||
(( pad < 0 )) && pad=0
|
before="${PFU_C_BLUE}◂${PFU_C_RESET} " after=" ${PFU_C_BLUE}▸${PFU_C_RESET}"
|
||||||
if (( i == cursor )); then marker="$selected"; else marker=' '; fi
|
fi
|
||||||
printf -v row ' %s%s%s%*s %s' "$marker" "${labels[i]}" "${PFU_C_DIM}${star}${PFU_C_RESET}" "$pad" '' "$shown"
|
dim=''
|
||||||
|
[[ -n ${needs[i]} ]] && ! pfu_is_true "${current[${needs[i]}]}" && dim="$PFU_C_DIM"
|
||||||
|
pad=$(( width + 2 - ${#labels[i]} ))
|
||||||
|
if (( i == selected )); then marker="${PFU_C_BLUE}▸${PFU_C_RESET} "; else marker=' '; fi
|
||||||
|
printf -v row ' %s%s%s%s%*s%s%s%s' "$marker" "$dim" "${labels[i]}" "$PFU_C_RESET" "$pad" '' "$before" "$dim$shown$PFU_C_RESET" "$after"
|
||||||
frame+="$row"$'\n'
|
frame+="$row"$'\n'
|
||||||
# A gap between the groups: the lock screen, other prompts, how it
|
|
||||||
# checks, the bubble.
|
|
||||||
case "${keys[i]}" in
|
|
||||||
ScanOnLock|polkit-1|SkipLidClosed) frame+=$'\n' ;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
frame+=$'\n'" ${PFU_C_DIM}${legend}${PFU_C_RESET}"$'\n'
|
# What the selected setting does, in a box of fixed height so the
|
||||||
frame+=" ${PFU_C_DIM}${hint}${PFU_C_RESET}"$'\n'
|
# screen does not jump while moving through the list.
|
||||||
|
_pfu_wrap "$wrap" "$(pfu_setting_help "${keys[selected]}" "${values[selected]}")"
|
||||||
|
frame+=$'\n'" ${PFU_C_DIM}${rule}${PFU_C_RESET}"$'\n'
|
||||||
|
for j in 0 1 2; do
|
||||||
|
frame+=" ${PFU_WRAP_LINES[j]:-}"$'\n'
|
||||||
|
done
|
||||||
|
frame+=$'\n'" ${PFU_C_DIM}${hint}${PFU_C_RESET}"$'\n'
|
||||||
_pfu_ui_take_notices
|
_pfu_ui_take_notices
|
||||||
frame+="$PFU_UI_NOTICE_TEXT"
|
frame+="$PFU_UI_NOTICE_TEXT"
|
||||||
printf '%s' "$frame"
|
printf '%s' "$frame"
|
||||||
@@ -451,8 +536,10 @@ pfu_ui_settings() {
|
|||||||
case "$key" in
|
case "$key" in
|
||||||
up|k) cursor=$(( (cursor - 1 + count) % count )) ;;
|
up|k) cursor=$(( (cursor - 1 + count) % count )) ;;
|
||||||
down|j) cursor=$(( (cursor + 1) % count )) ;;
|
down|j) cursor=$(( (cursor + 1) % count )) ;;
|
||||||
space|enter|right|l)
|
space|enter|right|l|left|h)
|
||||||
_pfu_setting_change "${scopes[cursor]}" "${keys[cursor]}" "${types[cursor]}" "${values[cursor]}" "${choices[cursor]}"
|
local step=1
|
||||||
|
[[ $key == left || $key == h ]] && step=-1
|
||||||
|
_pfu_setting_change "${scopes[selected]}" "${keys[selected]}" "${types[selected]}" "${values[selected]}" "${choices[selected]}" "$step"
|
||||||
dirty=1
|
dirty=1
|
||||||
;;
|
;;
|
||||||
q|Q|escape) return 0 ;;
|
q|Q|escape) return 0 ;;
|
||||||
|
|||||||
Reference in new issue
Block a user