Commit Graph

262 Commits (ef4f9e40570d020571d277bde5703e32b126b9e4)

Author SHA1 Message Date
Vytautas Šaltenis 52541fb7ee Discard half-entered passwd after some inactivity
When you start typing a password and then wander off, let's discard that
attempt after a few minutes of inactivity (and turn off the monitors if
dpms is on).

This is a real actual case of making the software cat-proof: when my cat
treads over the keyboard at night, I don't want the monitors to shine
for the rest of the night.
2014-03-23 10:01:59 +01:00
Vytautas Šaltenis c7cd4cd3b5 Delay to turn off the screen after wrong passwd
Also add flag for number of seconds to wait for it.

When user cancels the password or enters a wrong one, i3lock will wait
for some time before putting the monitors back to sleep. By default it's
30 seconds, but this flag allows to control that.
2014-03-23 09:32:44 +01:00
TheKK 15ddf304be Replace '1' with "EXIT_FAILURE" 2014-03-16 16:25:15 +01:00
Vytautas Šaltenis 2509c987d1 Extract start/stop timer code to reusable funcs 2014-03-11 09:11:20 +01:00
Vytautas Šaltenis d91fdc368e Extract if(dpms) calls to wrapper functions 2014-03-11 09:09:02 +01:00
Philippe Virouleau 6c34f6aa40 Turn on the screen on successful authentication
As described in ticket #1114, the screen may be left turned off on successful
authentication. This commit fixes this behaviour by turning the screen back on
after the authentication.

Fixes #1114
2013-11-12 08:24:14 +01:00
Michael Stapelberg ac8bbad523 Re-raise i3lock when obscured in a separate process
This is cleaner than commit a305e62 (running authentication in a
separate process) because we don’t lose the feature that X11 will buffer
KeyPresses for us while the process blocks on PAM. See
http://cr.i3wm.org/patch/305 for the amount of code (and new known bugs)
that would have to be introduced to make a305e62 work.
2013-11-10 20:43:08 +01:00
Michael Stapelberg d7fd058f0c Revert "Run authentification in different process"
This reverts commit a305e622a6.

In the next commit, the same functionality will be achieved in a cleaner
way.
2013-11-10 20:42:53 +01:00
Michael Stapelberg df760b6e9e Revert "Bug fix: Call clear_input() when the password is wrong."
This reverts commit 33d953fbdf,
in preparation for reverting commit a305e62
2013-11-10 20:42:39 +01:00
oblique 33d953fbdf Bug fix: Call clear_input() when the password is wrong.
clear_input() calls start_clear_indicator_timeout() to clear the
indicator after 1 second. This had as a result the screen to be cleared
when the "verifying…" message was showed, so the "wrong!" message didn't
show up when the password was wrong.

First bad commit: a305e62
2013-10-20 22:34:22 +02:00
koebi a305e622a6 Run authentification in different process
When having i3bar in “hide” mode, it could previously be brought up
while the authentication was running. This is not 100% fixed with this
change, but a lot better, as the normal “raise i3lock to the top”
behavior is not blocked now anymore.

fixes #895
2013-09-19 06:18:41 +02:00
Vincent Bernat 94c9274bd3 Small improvements to manual page.
Use a bulleted list for the IMPROVEMENTS section. Fix some
grammar. Remove the use of "fuck" which may offend some people.
2013-09-09 04:34:16 +02:00
Michael Stapelberg 2f17b73e20 Bugfix: update the initial keyboard modifier state (Thanks lee, Ran)
This should make the numpad work correctly.
2013-09-01 10:01:38 +02:00
Michael Stapelberg ad47d80e22 Add -e to --help 2013-08-31 20:42:06 +02:00
Vincent Bernat 5627a11174 Add `-e` option to not validate empty password.
When the XF86ScreenSaver key is used to put a laptop to sleep (or to
trigger the screensaver), the key may "bounce" on resume. This is
annoying as i3lock will try to validate several empty passwords and
wait several seconds before accepting a legit password.

Some users may want to validate an empty password: PAM may rely on
other sources to unlock the screen, like the presence of a token or
the proximity of some Bluetooth device. Hence, we don't forbid this
possibility and provide an command-line option for users not willing
to validate empty passwords.
2013-08-31 20:41:12 +02:00
Bas Pape 3e136769be Use cairo_status_to_string for descriptive errors. 2013-07-30 20:08:21 +02:00
Michael Stapelberg a72e0de842 add xcb-atom to pkg-config calls 2013-06-09 11:48:39 +02:00
Michael Stapelberg 712fed5cf2 update changelog for 2.5 2013-06-09 11:41:33 +02:00
Axel Wagner e69b98561b Set window name 2013-04-11 22:54:48 +02:00
Sebastian Ullrich e0213cb1f5 Fix centering the indicator in the no-xinerama case 2013-03-29 10:14:01 +01:00
Michael Stapelberg d4d589a7dd fix ctrl-u handling 2013-03-29 10:13:01 +01:00
Sebastian Ullrich 1495903e5d Fix resetting the password after failed authentications
This has been broken by commit 661344.
2013-03-29 10:02:35 +01:00
Philip Dexter 661344463a Add ctrl+u password reset 2013-03-24 14:30:07 +01:00
Baptiste Daroussin d8a1da69fb Use ev_loop_fork after fork, this fix forking on kqueue based OSes 2013-03-20 21:28:14 +01:00
Michael Stapelberg 006f9d3d7d README: refer to cr.i3wm.org for patches 2013-02-10 15:18:54 +01:00
Quentin Glidic b1a6e2ebe3 Limit the debug print to the actual password size
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2013-02-07 17:15:16 +01:00
Vivien Didelot 2c9e46dfee RGB color notation is 3-byte hexadecimal
Signed-off-by: Vivien Didelot <vivien.didelot@gmail.com>
2012-12-06 09:40:23 +01:00
Moritz Augsburger d6b9e33e28 Allow passwordless PAM conversations (e.g. fingerprint) 2012-11-04 19:01:52 +01:00
Moritz Augsburger e84a1203a6 Allow XKB_KEY_XF86ScreenSaver as synonm for enter
This keysym is generated on convertible tablets by pressing a hardware
lock/unlock button.
2012-11-04 19:01:48 +01:00
Michael Stapelberg fba88476dd remove support for NOLIBCAIRO, cairo-xcb is widespread by now 2012-10-26 20:42:26 +02:00
Michael Stapelberg fe4f4a8674 README: remove unhelpful comment about pkg-config 2012-10-26 20:40:20 +02:00
Michael Stapelberg e1d86a3279 use libxkbcommon for input handling
Thanks to Ran Benita and Daniel Stone (the libxkbcommon authors) for
answering my questions and reviewing this code.

With this commit, input handling should be more correct with using less
code (in i3lock, that is).
2012-10-26 20:39:59 +02:00
Michael Stapelberg 1d08065fe0 bugfix: free(reply) to avoid memory leak 2012-10-26 20:21:53 +02:00
Michael Stapelberg 2cadf22c67 s/pam_message/pam_response/ (Thanks Tucos)
The previous code didn’t cause any issues since both types (currently!)
have the same size.
2012-10-15 22:40:29 +02:00
Michael Stapelberg 603c90e985 promote the "could not load image" message from debug to normal 2012-09-26 11:21:48 +02:00
Michael Stapelberg 1e55f0dc6f only use mlock() on Linux, FreeBSD (for example) requires root 2012-08-22 20:49:10 +02:00
Fernando Tarlá Cardoso Lemos 65795be0a9 getopt_long returns int, don't cast to char.
On ARM, casting -1 to char turns it into something else. Fixes
argument parsing on ARM. Thanks Chipaca for reporting.
2012-06-29 16:30:23 +02:00
Michael Stapelberg fdf6d7af2a update changelog for 2.4.1 2012-06-02 14:45:12 +02:00
Michael Stapelberg 1da637c419 skip shift when getting the modifier mask (Thanks SardemFF7) 2012-05-30 16:53:16 +02:00
Michael Stapelberg dd02dff44a revert shift lock handling (broke uppercase letters)
With some layouts, this broke uppercase letters in your passwords.

I think that explicit shiftlock handling is unnecessary. X11 seems to do
it on its own. Here is what leads me to that conclusion:

  $ setxkbmap de
  $ xmodmap -e 'keycode 66 = Shift_Lock'
  $ xev

Now enter a character, say "a", then press CapsLk (which is now
Shift_Lock), then press "a" again. The event state is 0x1, thereby
undistinguishable from normal shift.
2012-05-30 16:08:12 +02:00
Michael Stapelberg 9b29ae7afd Bugfix: Correctly center unlock indicator after reconfiguring screens (Thanks xn)
Fixes: #712
2012-05-19 21:13:03 +02:00
Michael Stapelberg f9416f6bc6 remove debian/
The Debian packaging is now hosted on Debian servers at
git://git.debian.org/users/stapelberg/i3lock.git

This makes life easier for Debian people. It makes life harder
for you if you want to build a Debian package of the current
git version. Here is how you could do that now:

Build a tarball of the current git version:
mkdir ../i3lock-dpkg
VERSION=i3lock-$(git describe --tags)
git archive --prefix=$VERSION/ --output=../i3lock-dpkg/$VERSION.tar.bz2 HEAD

get the packaging:
cd ../i3lock-dpkg
gbp-clone git://git.debian.org/users/stapelberg/i3lock.git
cd i3lock
git-import-orig ../$VERSION.tar.bz2
dpkg-buildpackage
2012-04-08 00:23:46 +02:00
Michael Stapelberg 544f535bbf add .gitignore 2012-04-07 19:41:50 +02:00
Michael Stapelberg 79398d9102 add CHANGELOG file 2012-04-01 13:14:25 +02:00
Michael Stapelberg dc2b6e5f39 Use (void) instead of () for functions without args (Thanks fernandotcl)
See also:
http://article.gmane.org/gmane.linux.kernel/1268792

The C compiler will handle (void) as "no arguments" and () as "variadic
function" (equivalent to (...)) which might lead to subtle errors, such
as the one which was fixed with commit 0ea64ae4.
2012-04-01 12:28:28 +02:00
Michael Stapelberg 3c2436cb71 Bugfix: fallback when the image cannot be loaded
If the specified file does not exist or is invalid, previously, the unlock
indicator wouldn’t show up at all, because the invalid surface was still used.

With this commit, i3lock will react like if you didn’t specify an image at all.
2012-03-28 21:00:49 +02:00
Michael Stapelberg be21951062 Only output text when in debug mode (fixes problems with xautolock) 2012-03-26 19:54:47 +02:00
Michael Stapelberg 2053e9880a Bugfix: Fix background color when using cairo (Thanks Pascal) 2012-03-26 18:59:41 +02:00
Michael Stapelberg 9eae4e992a debian: update changelog for 2.3.1 2012-03-15 17:02:00 +01:00
Michael Stapelberg 324149ea77 fix compilation on some systems (Thanks badboy) 2012-03-15 13:50:51 +01:00