i3lock ist der Lockscreen meiner Wahl unter dem Fenstermanager Notion. Durch einen Fork namens i3lock-color und einem Script in github erreicht er nun auch das passende Aussehen für dieses Jahrtausend
i3lock ist ein Hilfsprogramm von i3 um einen minimalen Sperrbildschirm unter den“spartanischen“ Fenstermanagern zu bieten. Ich hatte Ihn schon einmal 2013 in einem Artikel vorgestellt. Leider ist er in seiner Standardausführung nicht nur minimal, sondern auch potthässlich. Irgendwann stieß ich auf einen Beitrag welcher kurz das Script von Dolores Portalatin aufgriff und einen Screenshot zeigte. Natürlich ist diese Version in meine Konfiguration eingeflossen und hat die Standardversion von i3lock ersetzt.
Kompiliert werden sollte/muss eine gepatchte Version von i3lock, i3lock-color um auch die auftretenden Farbangaben selber definieren zu können. Um unter Debian die Abhängigkeiten zu installieren sollte ein apt-get build-dep i3lock ausreichen.
Nach dem kompilieren und installieren muss das Repository i3lock-fancy von Dolores Portalatin von github auf dem lokalen Rechner geklont und nach Anleitung verfahren werden. Ich habe das Script in meinem Workspace liegen und nicht systemweit installiert. Da ich meinen Laptop per Tastaturkürzel sperre, nutze ich mein eigenes Script für den systemd unter Debian. Hier wird i3lock für den suspend automatisch verwendet und nicht via xautolock. xautolock lässt sich auf dem schnellsten Rechner 3-4 Sekunden Zeit bis es nach einem Suspend greift. In dieser Zeit könnte ich den Prozess von xautolock stoppen. xautolock würde ich bei mir per .xinitr starten und nicht via systemd. Aber das ist Geschmackssache.
Bitte auf die Pfade achten
/etc/systemd/system/i3lock.service
[Unit] Description=i3lock Before=sleep.target [Service] User=cmg Type=forking Environment=DISPLAY=:0 ExecStart=/home/cmg/bin/lock [Install] WantedBy=sleep.target
Am Schluss den Dienst aktivieren und starten systemctl enable i3lock.service
Created symlink from /etc/systemd/system/sleep.target.wants/i3lock.service to /etc/systemd/system/i3lock.service
Für Archlinux gibt es ein Paket i3lock-fancy-git im AUR.
Danke für das kleine Fundstück. :)
Leider wirkt es beim Locken ein wenig behäbig. Ca 2sek bis das Bildschirm gesperrt ist.
Versuche mal, als reinen Test, die Generierung des verwischten Bildschirmes wegzulassen.
Ich gehe davon aus, dass es dann schneller ist, wenn würde dann mal ein statisches Bild auslegen an Deiner Stelle.
Ledier bietet i3lock-fancy diese Funktion nicht. Mit `i3lock-fancy –pixelate` ist es vielleicht eine halbe sek. schneller. i3lock, kommt sofort.
Du sollst auch das Script https://github.com/meskarune/i3lock-fancy/#static-image umschreiben, welches aufgerufen wird ;)
Sprich $IMAGE gibst Du selbst an. Nimm ein Bild und nehme Zeile 56 bis Zeile 76 selbst vor.
Die Generierung des Bildes wird gelöscht und oben dann in Zeile 10 die Variable IMAGE selbst gesetzt
Du sollst auch das Script https://github.com/meskarune/i3lock-fancy/#static-image umschreiben, welches aufgerufen wird ;)
Sprich $IMAGE gibst Du selbst an. Nimm ein Bild und nehme Zeile 56 bis Zeile 76 selbst vor.
Die Generierung des Bildes wird gelöscht und oben dann in Zeile 10 die Variable IMAGE selbst gesetzt
Hey,
danke für den Artikel; kleiner, aber schmerzhafter Fehler für Laien wie mich:
aus
ExecStart=/usr/bin/i3lock[Install]
WantedBy=sleep.target
wird
ExecStart=/usr/bin/i3lock
[Install]
WantedBy=sleep.target
..sonst kommt ein mahnender Hinweis von systemctl
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit’s
.wants/ or .requires/ directory.
2) A unit’s purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, …).
4) In case of template units, the unit is meant to be enabled with some
instance name specified.
Da hast Du Recht.
Dankeschön.