6 KiB
i3lock - improved screen locker
A re-patched version of i3lock with color functionality by eBrnd, started by PandorasFox (2015-2020), and now maintained by Raymo111
i3lock is a simple screen locker like slock. After starting it, you will see a white screen (you can configure the color/an image). You can return to your screen by entering your password.
Many little improvements have been made to i3lock over time:
- i3lock forks, so you can combine it with an alias to suspend to RAM (run "i3lock && echo mem > /sys/power/state" to get a locked screen after waking up your computer from suspend to RAM)
- You can specify either a background color or an image (JPG or PNG), which will be displayed while your screen is locked.
- You can specify whether i3lock should bell upon a wrong password.
- i3lock uses PAM and therefore is compatible with LDAP etc. On OpenBSD, i3lock uses the bsd_auth(3) framework.
Additional features in i3lock-color
You can also specify additional options, as detailed in the manpage. This includes, but is not limited to:
- Color options for:
- verification ring
- interior ring color
- ring interior line color
- key highlight color
- backspace highlight color
- text colors for most/all strings
- Changing all of the above depending on PAM's authentication status
- Blurring the current screen and using that as the lock background
- Showing a clock in the indicator
- refreshing on a timer, instead of on each keypress
- Positioning the various UI elements
- Changing the ring radius and thickness, as well as text size
- Passthrough media keys
- A new bar indicator, which replaces the ring indicator with its own set of options
- An experimental thread for driving the redraw ticks, so that things like the bar/clock still update when PAM is blocking
Building
Before you build - check and see if there's a packaged version available for your distro (there usually is, either in a community repo/PPA).
If there's no packaged version available - think carefully, since you're using a forked screen locker at your own risk.
If you want to build a non-debug version, you should tag your build before configuring. For example: git tag -f "git-$(git rev-parse --short HEAD)"
will add a tag with the short commit ID, which will be used for the version info. Issues asking about ASAN/complaints about i3lock-color being slow / etc will likely be closed.
i3lock now uses GNU autotools for building; you'll need to do something like autoreconf -i && ./configure && make
to build.
Required Packages
- pkg-config
- libxcb
- libxcb-util
- libpam-dev
- libcairo-dev
- libfontconfig-dev
- libxcb-composite0
- libxcb-composite0-dev
- libxcb-xinerama
- libxcb-randr
- libev
- libx11-xcb-dev
- libxkbcommon >= 0.5.0
- libxkbcommon-x11 >= 0.5.0
- libjpeg-turbo >= 1.4.90
Required Packages (Fedora 31)
- cairo-devel
- libev
- libev-devel
- libjpeg-devel
- libjpeg-turbo
- libxcb
- libxkbcommon
- libxkbcommon-x11
- libxkbcommon-x11-devel
- pam-devel
- pkg-config
- xcb-util-devel
- xcb-util-image
- xcb-util-image-devel
- xcb-util-xrm-devel
Arch Package
FreeBSD port
Running i3lock
Simply invoke the 'i3lock' command. To get out of it, enter your password and press enter.
A sample script is included in this repository. See the script in action
On OpenBSD the i3lock
binary needs to be setgid auth
to call the authentication helpers, e.g. /usr/libexec/auth/login_passwd
.
Building i3lock
First install the dependencies listed in requirements section, then run these commands (might need to be adapted to your OS):
autoreconf --force --install
rm -rf build/
mkdir -p build && cd build/
../configure \
--prefix=/usr \
--sysconfdir=/etc \
--disable-sanitizers
make
Upstream
Please submit pull requests for i3lock things to https://github.com/i3/i3lock and pull requests for additional features on top of regular i3lock at https://github.com/Raymo111/i3lock-color.