The world's most popular non-default computer lockscreen.
Go to file
Pandora 599158e2ee
fix compiling on ARM
thanks toshi
2017-12-08 22:26:20 -05:00
m4 blurring stuff should work perfectly fine now 2017-12-05 22:07:38 -05:00
pam first commit towards fixing this 2017-12-05 12:53:54 -05:00
.clang-format commit missing .clang-format 2015-03-17 08:50:50 +01:00
.gitignore first commit towards fixing this 2017-12-05 12:53:54 -05:00
.travis.yml first commit towards fixing this 2017-12-05 12:53:54 -05:00
CHANGELOG Update CHANGELOG and I3LOCK_VERSION 2017-11-25 08:13:28 +01:00
I3LOCK_VERSION update readme; fix version number 2017-12-06 13:19:40 -05:00
LICENSE update debian packaging, update copyright 2011-07-13 17:06:46 +02:00
Makefile.am add support for JPEG images 2017-12-07 21:51:44 -08:00
README.md add support for JPEG images 2017-12-07 21:51:44 -08:00
blur.c fix compiling for 32-bit machines / machine without SSE2 2017-12-07 16:09:13 -05:00
blur.h fix compiling for 32-bit machines / machine without SSE2 2017-12-07 16:09:13 -05:00
blur_simd.c fix compiling on ARM 2017-12-08 22:26:20 -05:00
configure.ac add support for JPEG images 2017-12-07 21:51:44 -08:00
cursors.h clang-format -i **/*.[ch] 2015-03-16 18:47:16 +01:00
i3lock.1 update manpage 2017-11-28 10:00:37 -05:00
i3lock.c add support for JPEG images 2017-12-07 21:51:44 -08:00
i3lock.h clang-format -i **/*.[ch] 2015-03-16 18:47:16 +01:00
jpg.c add support for JPEG images 2017-12-07 21:51:44 -08:00
jpg.h add support for JPEG images 2017-12-07 21:51:44 -08:00
lock.sh fix some leaks; update lock.sh 2017-12-05 13:27:43 -05:00
randr.c Rename xinerama.[ch] to randr.[ch] 2017-11-18 10:51:35 +01:00
randr.h Rename xinerama.[ch] to randr.[ch] 2017-11-18 10:51:35 +01:00
screenshot.png update lock.sh, readme 2017-05-30 22:11:26 -04:00
tinyexpr.c Made clock position freely modifiable 2017-05-19 15:52:29 +02:00
tinyexpr.h Made clock position freely modifiable 2017-05-19 15:52:29 +02:00
todo.md update todo 2017-11-21 10:03:25 -05:00
unlock_indicator.c fix msse3 2017-12-05 17:47:21 -05:00
unlock_indicator.h first commit towards fixing this 2017-12-05 12:53:54 -05:00
xcb.c merge upstream 2017-10-27 10:11:31 -04:00
xcb.h merge upstream 2017-10-27 10:11:31 -04:00

README.md

i3lock - improved screen locker

This is just a re-patched version of i3lock with the commits from i3lock-color; all the credit for the color functionality goes to eBrnd !

i3lock-color in action. Why are you reading this?

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 a PNG image which will be displayed while your screen is locked.

    • You can also specify additional color options with the following command-line options:

      • --insidevercolor=rrggbbaa -- Inside of the circle while the password is being verified
      • --insidewrongcolor=rrggbbaa -- Inside of the circle when a wrong password was entered
      • --insidecolor=rrggbbaa -- Inside of the circle while typing/idle
      • --ringvercolor=rrggbbaa -- Outer ring while the password is being verified
      • --ringwrongcolor=rrggbbaa -- Outer ring when a wrong password was entered
      • --ringcolor=rrggbbaa -- Outer ring while typing/idle
      • --linecolor=rrggbbaa -- Line separating outer ring from inside of the circle
      • --separatorcolor=rrggbbaa -- Lines delimiting the highlight segments
      • --textcolor=rrggbbaa -- Text ("verifying", "wrong!")
      • --keyhlcolor=rrggbbaa -- Keypress highlight segments
      • --bshlcolor=rrggbbaa -- Backspace highlight segments
      • --line-uses-ring, -r -- the line between the inside and outer ring uses the ring color for its color
      • --line-uses-inside, -s -- the line between the inside and outer ring uses the inside color for its color
    • The following additional options have been added:

    • -S, --screen -- specifies which display to draw the unlock indicator on

    • -k, --clock -- enables the clock display.

      • --indicator -- forces the indicator to always show, even if there's no activity.
      • --composite -- enables checking for compositors and trying to grab the compositor window, since that causes issues with some compositors.
        • NOTE: This can potentially allow sensitive information to display over the screen locker, so take care when you use this option.
    • -B=sigma, --blur -- enables Gaussian blur. Sigma is the blur radius.

      • Note: You can still composite images over the blur (but still under the indicator) with -i. - Eventually there might be an imagepos arg, similar to time and datepos.
    • --indpos="x+(w/2):y+(h/2)" -- position of the unlock indicator. Expressions using the variables x (current screen's x value), y (current screen's y value), w (screen width), h (screen height), and r (indicator radius) can be used.

    • --timestr="%H:%M:%S" -- allows custom overriding of the time format string. Accepts strftime formatting. Default is "%H:%M:%S".

    • --timepos="ix:iy-20" -- position of the time. All the variables in indpos can be used here, as well as the additional values ix (indicator x position), iy (indicator y position), cw (clock width), and ch (clock height).

    • --timecolor=rrggbbaa -- color of the time string

    • --timefont="sans-serif" -- font used for the time display

    • --timesize=32 -- font size for the time display

    • --datestr="%A, %m %Y" -- allows custom overriding of the date format string. Accepts strftime formatting. Default is "%A, %m %Y".

    • --datepos="ix:iy-20" -- position of the date. All the variables in indpos and timepos can be used here, as well as the additional values tx (time x) and ty (time y).

    • --datecolor=rrggbbaa -- color of the date string

    • --datefont="sans-serif" -- font used for the date display

    • --datesize=14 -- font size for the date display

    • --veriftext="verifying…" -- text to be shown while verifying

    • --wrongtext="wrong!" -- text to be shown upon an incorrect password being entered

    • --statusfont="sans-serif" -- font used for the status text

    • --textsize=28 -- font size for the status text

    • --modsize=14 -- font size for the modifier keys listing

    • --radius=90 -- the radius of the circle indicator

    • --ring-width=7 -- the width of the indicator ring

    • The readme's list of options might be a bit out of date - please check the manpage, or look at the list of options in i3lock.c.

  • 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.

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.

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
  • libxcb-composite0
  • libxcb-composite0-dev
  • libxcb-xinerama
  • libxcb-randr
  • libev
  • libx11-dev
  • libx11-xcb-dev
  • libxkbcommon >= 0.5.0
  • libxkbcommon-x11 >= 0.5.0
  • libjpeg-turbo >= 1.4.90

(On centos/RHEL/etc, the packages tend to look like cairo-devel instead of libcairo-dev. Use yum provides \*/<header.h> to figure out what packages you need.)

Ubuntu
sudo apt-get install pkg-config libxcb1 libpam-dev libcairo-dev libxcb-composite0 libxcb-composite0-dev libxcb-xinerama0-dev libev-dev libx11-dev libx11-xcb-dev libxkbcommon0 libxkbcommon-x11-0 libxcb-dpms0-dev libxcb-image0-dev libxcb-util0-dev libxcb-xkb-dev libxkbcommon-x11-dev libxkbcommon-dev

For JPEG lock image support, you'll also need libjpeg-turbo8 version 1.4.90 or newer (Ubuntu 17.04 or later)

Aur Package

Stable

Git

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. Here is a short clip of that 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.

Upstream

Please submit pull requests for i3lock things to https://github.com/i3/i3lock and pull requests for color things to me at https://github.com/chrjguill/i3lock-color.