Commit graph

160 commits

Author SHA1 Message Date
21d9efe5c9 signal: ignore signals after critical 2024-03-10 21:42:42 +00:00
bvr-yr
066e0ae88f
core: force update labels on SIGUSR2 (#169)
* core: force update labels on `SIGUSR2`

* allow 0ms and force
2024-03-10 21:38:01 +00:00
Maximilian Seidler
0f44f76368
misc: path handling improvements (#163)
* misc: use weakly_canonical for absolutePath

* misc: make absolutePath not optional

* misc: use currentDir as the argument to absolutePath

* config: avoid circular imports
2024-03-10 14:37:25 +00:00
Maximilian Seidler
766d470308
input-field: display utf-8 codepoint length (#164) 2024-03-10 14:33:01 +00:00
Abi Hafshin Alfarouq
160fe3553f
core: Handle slow pam verification (#157)
* Handle slow pam verification

For example when using systemd-homed with fido auth

* fix code style
2024-03-09 16:46:22 +00:00
Maximilian Seidler
8086d896e6
background: handle missing assets (#158)
* background: fix background not rendering when resource gatherer is busy

* asyncResourceGatherer: check cairo_surface_status

* background: clear resource id when texture is invalid
2024-03-09 16:45:44 +00:00
bvr-yr
149b6737c2
input-field: fail display improvments (#154)
* input-field: fail display improvments

* update Home Manager

* add `$ATTEMPTS` variable, change defaults

* nix wording

* log failed attempts
2024-03-09 16:44:58 +00:00
Maximilian Seidler
5eaa7c0834
core: terminate the poll thread (#150)
* core: terminate the poll thread

* core: use sigaction instead of signal

* core: use VA_RESTART for the unlock signal
2024-03-08 22:54:34 +00:00
Maximilian Seidler
b4a1c8ccbb
label: Fix label updates (#152)
* label: render output via stringPort instead of surface

* label: retry onAssetCallback

Calling `render` might not update the asset when the surfaces frameCallback is already set.

* Revert "label: fix rendering with multiple timers that fire at the same time (#147)"

This reverts commit e9a57f0dae.
2024-03-08 22:48:59 +00:00
Maximilian Seidler
e9a57f0dae
label: fix rendering with multiple timers that fire at the same time (#147) 2024-03-07 21:32:32 +00:00
Maximilian Seidler
1d39a530a4
label: higher precision resource id's (#148) 2024-03-07 21:31:58 +00:00
Kenton Groombridge
b17d666548
core: add commandline switch to lock immediately (#145)
Fixes: https://github.com/hyprwm/hyprlock/issues/143
2024-03-07 18:39:27 +00:00
Maximilian Seidler
90e94dee86
core: Allow and fix empty passwords (#140)
* Revert "core: don't auth on empty password (#126)"

This reverts commit 6a085d7f8e.

* core: properly handle pam_conv
2024-03-07 13:22:11 +00:00
Maximilian Seidler
3d6162e06e
input-field: Add fade out timeout #3 (#142)
* input-field: add fade out timeout

* input-field: let dots reset themselfs

Now the dots kind of fade into the placeholder text on a failure.

* Nix/HM module: add input-field:fade_timeout option
2024-03-06 21:12:49 +00:00
624f497272 shaders: fix missing premult for colorize in final blur
fixes #136
2024-03-06 00:06:04 +00:00
cdb8e7774f core: don't restore on terminate 2024-03-06 00:00:58 +00:00
7d5cb1dbb3 misc: fix warning about iso strings 2024-03-05 23:33:28 +00:00
f0bcadc6ad restore: limit to once every 4s 2024-03-05 23:32:31 +00:00
81ec54c0e8 shadow: fix build 2024-03-05 20:31:31 +00:00
9b54840e12 shadows: disable by default 2024-03-05 20:28:29 +00:00
a4dc596cb8 renderer: add shadowable props 2024-03-05 20:27:28 +00:00
2fa0da47ab core: restart on a critical signal or SIGHUP
ref #76
2024-03-05 19:04:01 +00:00
Maximilian Seidler
738cc241e3
asyncResourceGatherer: support for home relative paths (#96) 2024-03-05 14:49:52 +00:00
bvr-yr
d1f542a75f
input-field: add dots rounding option (#130)
* refactor: move dot props to struct, rename to camelCase

* input-field: add dots rounding option

* render: minor fix for odd input-field width

* add dots_rounding option to Home Manager
2024-03-04 17:59:36 +00:00
matteo4375
49ef1d306c
input-field: Add rounding option (#127)
* input-field: add rounding option

* add rounding option to nix home manager module
2024-03-04 01:54:27 +00:00
BranchManager
6a085d7f8e
core: don't auth on empty password (#126) 2024-03-04 00:26:38 +00:00
p4rfait
19d7844f04
hidden-input-field: add seed for random colors in hidden input field outline (#125) 2024-03-03 22:55:27 +00:00
f9fe60c7eb pam: fallback auth to su 2024-03-03 02:27:32 +00:00
ada7ce8e56 renderer: various fixes to transformations and backgrounds
fixes #111
2024-03-03 02:19:31 +00:00
Maximilian Seidler
4286cfb29c
core: Fix unlock sync (#119)
* core: error on repeated unlock

* core: change termination points

This seems to fix sporadic freezes when unlocking.
2024-03-02 14:21:41 +00:00
Aaron Blasko
fa2a875e33
Adding a pam configuration file (#115) 2024-03-02 01:49:44 +02:00
Maximilian Seidler
64bdc477b2
Revert "core: dispatch on exit instead of roundtrip" (#114)
This reverts commit 2c7027d2b5.
Without the roundtrip it was possible that session_lock_surface_destroy gets called before unlock_and_destroy is processed.
2024-03-01 22:45:38 +00:00
Maximilian Seidler
a7ec195842 grace: ignore key up and fix typo 2024-03-01 19:52:50 +02:00
53eab43296 grace: unlock on key press
fixes #110
2024-03-01 13:53:53 +00:00
Maximilian Seidler
ac757cf7ab
input-field: show autentication failReason without additional input (#98)
This makes it so that
1. The renderer is triggered when the onPasswordCheckTimer callback is fired. Previously you had to give an
   additional input for the renderer to be triggered and the fail reason to show.
2. The updateDots function now sets dots.currentAmout to 0, when a failID is present.
   That leads to the draw function to return false and the failReason to be displayed until another input happens.
2024-02-29 14:34:27 +00:00
LOSEARDES77
a279ee7613
core: add help message (#88)
* core: add help message

* core: create help method

* remove short option for display arg

* fix alignment
2024-02-27 15:10:15 +00:00
2c7027d2b5 core: dispatch on exit instead of roundtrip 2024-02-27 13:25:57 +00:00
EastArctica
fd8b81aec8
core: use raw key values for tracking keypresses (#92) 2024-02-26 21:18:52 +00:00
8876ceccc2 format: fix format string 2024-02-26 19:51:12 +00:00
0d5115ab6b core: use lowercase syms for tracking keypresses
fixes #86
2024-02-26 18:34:34 +00:00
b8966fe05f asyncresourcegatherer: clarify callback thread safety 2024-02-26 18:27:27 +00:00
582e8c86b4 label: use a callback from asyncGatherer to render 2024-02-26 18:25:52 +00:00
1f268e0a39 core: create surface on monitor connect 2024-02-26 17:59:27 +00:00
bvr-yr
a7cffd0f77
render: remove alpha check for input-field (#90) 2024-02-26 17:37:19 +00:00
4acf8981b3 core: fix repeated key events triggering presses
fixes #66
2024-02-26 02:28:33 +00:00
bvr-yr
94ac7fef1a
input-field: dots improvements (#84)
* input-field: dots improvements

* fix stuff
2024-02-26 00:33:19 +00:00
WindyDay
146965e7fb
core: unlock on sigusr1 (#82)
* Add SIGUSR1 to unlock

* minor style improvements

---------

Co-authored-by: Vaxry <vaxry@vaxry.net>
2024-02-25 14:08:12 +00:00
Maurice Kraus
0ad65916b8
renderer: restrict maximum dot amount w.r.t to input width (#56) 2024-02-24 14:14:10 +00:00
Gonçalo Negrier Duarte
57e8000660
core: fix libc++ compatibility (#75)
src/config/ConfigManager.cpp:91:6: error: no type named 'mutex' in namespace 'std'
   91 | std::mutex   configMtx;
      | ~~~~~^
src/config/ConfigManager.cpp:94:10: error: no member named 'lock_guard' in namespace 'std'
   94 |     std::lock_guard<std::mutex> lg(configMtx);
      |     ~~~~~^
/var/tmp/portage/gui-apps/hyprlock-9999/work/hyprlock-9999/src/config/ConfigManager.cpp:94:26: error: no member named 'mutex' in namespace 'std'
   94 |     std::lock_guard<std::mutex> lg(configMtx);
      |                     ~~~~~^

Closes: https://github.com/hyprwm/hyprlock/issues/43

Signed-off-by: Gonçalo Negrier Duarte <gonegrier.duarte@gmail.com>
2024-02-24 02:54:15 +00:00
Jan Beich
8969351cba
core: Add libc++ compatibility (#73)
src/renderer/AsyncResourceGatherer.cpp:98:22: error: no viable overloaded '+='
   98 |             progress += 1.0 / (preloads + 1.0);
      |             ~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~~~
src/renderer/widgets/IWidget.cpp:41:44: error: no member named 'current_zone' in namespace 'std::chrono'
   41 |     const auto current_zone = std::chrono::current_zone();
      |                               ~~~~~~~~~~~~~^
2024-02-23 21:29:08 +00:00
4c68780143 format: sanitize username for null
ref #64
2024-02-23 13:04:13 +00:00
Jan Beich
f85287a523
core: Unbreak build on FreeBSD (#71)
* Add OpenPAM support (used by BSDs except OpenBSD)

--   Package 'pam', required by 'virtual:world', not found
CMake Error at /usr/local/share/cmake/Modules/FindPkgConfig.cmake:619 (message):
  The following required packages were not found:

   - pam

src/core/Password.cpp:6:10: fatal error: 'security/pam_misc.h' file not found
    6 | #include <security/pam_misc.h>
      |          ^~~~~~~~~~~~~~~~~~~~~

* Add missing headers

src/renderer/widgets/IWidget.cpp: In member function 'virtual IWidget::SFormatResult IWidget::formatString(std::string)':
src/renderer/widgets/IWidget.cpp:51:41: error: 'getlogin' was not declared in this scope
   51 |     replaceAll(in, "$USER", std::string{getlogin()});
      |                                         ^~~~~~~~
src/renderer/widgets/IWidget.cpp:51:51: error: no matching function for call to 'std::__cxx11::basic_string<char>::basic_string(<brace-enclosed initializer list>)'
   51 |     replaceAll(in, "$USER", std::string{getlogin()});
      |                                                   ^
src/renderer/DMAFrame.cpp: In member function 'bool CDMAFrame::onBufferDone()':
src/renderer/DMAFrame.cpp:181:17: error: 'close' was not declared in this scope; did you mean 'pclose'?
  181 |                 close(fd[plane_tmp]);
      |                 ^~~~~
      |                 pclose
src/renderer/DMAFrame.cpp:196:13: error: 'close' was not declared in this scope; did you mean 'pclose'?
  196 |             close(fd[plane]);
      |             ^~~~~
      |             pclose
src/core/Password.cpp: In lambda function:
src/core/Password.cpp:44:31: error: 'strdup' was not declared in this scope
   44 |         reply->resp         = strdup(pass.c_str());
      |                               ^~~~~~
src/core/hyprlock.cpp: In member function 'void CHyprlock::spawnAsync(const std::string&)':
src/core/hyprlock.cpp:768:9: error: 'sigemptyset' was not declared in this scope
  768 |         sigemptyset(&set);
      |         ^~~~~~~~~~~
src/core/hyprlock.cpp:769:21: error: 'SIG_SETMASK' was not declared in this scope
  769 |         sigprocmask(SIG_SETMASK, &set, NULL);
      |                     ^~~~~~~~~~~
src/core/hyprlock.cpp:769:9: error: 'sigprocmask' was not declared in this scope
  769 |         sigprocmask(SIG_SETMASK, &set, NULL);
      |         ^~~~~~~~~~~
2024-02-23 12:54:14 +00:00
9ba88d0ace gbm: prefer linear modifiers
ref #62
2024-02-22 23:02:42 +00:00
272fc359ad gbm: pick only valid modifiers 2024-02-22 03:05:56 +00:00
57ce4f759c config: add no_fade_in
fixes #55
2024-02-22 00:36:01 +00:00
7ca13a801b renderer: fix misc blur shenanigans
fixes #58
2024-02-22 00:31:33 +00:00
Maurice Kraus
2fc23cbfc8
config: add source parsing (#28)
* config: add source parsing

* config: add nested source parsing

* config: streamlined absolutePath impl
2024-02-21 23:52:12 +00:00
af9e8d1758 core: do not process keys on pending password verif
fixes #54
2024-02-21 23:05:52 +00:00
3f8b6b5c95 framebuffer: ask for 2101010 by default 2024-02-21 22:30:37 +00:00
1b57d52179 background: add blurring 2024-02-21 22:21:16 +00:00
2836f02ded background: add screenshot 2024-02-21 21:39:14 +00:00
Vaxry
9d8ee2a1d0
core: Nvidia and stuff fixes (#44)
* nvidia and stuff fixes

* no no null confures

* drop stupid roundtrip
2024-02-21 16:56:25 +00:00
6355216f48 config: add general:grace
fixes #48
2024-02-21 16:48:59 +00:00
06b07c53e5 label: add executing commands 2024-02-21 14:12:20 +00:00
b1ffd73534 input-field: add dots_center 2024-02-21 11:42:18 +00:00
5c7b23eefb input: allow KP_Enter for submitting
fixes #32
2024-02-21 11:35:31 +00:00
Siavash Askari Nasr
277a377eb2
input: Clear password buffer with escape key (#37) 2024-02-21 11:01:52 +00:00
Maurice Kraus
7b15d34f0a
core: add support for 90/270 degree rotated monitors (#26) 2024-02-20 19:20:08 +00:00
bvr-yr
d28e009c55
input-field: allow configure dots size (#24) 2024-02-20 17:12:43 +00:00
a92e3fbe36 input: fix outerColor alpha being nuked 2024-02-20 16:34:59 +00:00
40802b9672 renderer: minor alpha improvements 2024-02-20 16:29:23 +00:00
b9c88e8600 debug: log surface configure sizes 2024-02-20 16:16:46 +00:00
11a6213c36 background: fix typo in calcs 2024-02-20 16:02:40 +00:00
6ff808cebf input-field: add hide_input 2024-02-20 14:42:10 +00:00
Siavash Askari Nasr
1049ac9a0b
label: Use local time for $TIME variable (#17)
Before this change, system's time zone was not used to return the time
2024-02-20 11:29:39 +00:00
d37786be5c core: always roundtrip on unlock 2024-02-20 03:31:10 +00:00
e57f146bad core: fixup deadlock in timersThr exit cond 2024-02-20 03:18:17 +00:00
b23b0a6d32 core: add wait timeout to main thread 2024-02-20 03:07:34 +00:00
394dc81ff3 core: wait for poll threads to exit to avoid a coredump 2024-02-20 03:05:51 +00:00
98606beaad core: fixup number of pollfds in poll thread 2024-02-20 03:01:58 +00:00
868e85e362 config: add general:hide_cursor 2024-02-20 02:54:19 +00:00
b8fcfe8352 core: avoid idling forever after exit 2024-02-20 02:47:14 +00:00
1b5b3e7df8 input-field: password rendering improvements 2024-02-20 02:47:03 +00:00
87a7255954 core: fix UAF faults around lock surfaces 2024-02-20 01:38:02 +00:00
0bcdca6e7b core: more thread safety 2024-02-20 01:30:47 +00:00
cb81a977c4 widget: handle linebreaks 2024-02-20 01:12:06 +00:00
12da91b9ca Timer: add 2024-02-20 00:59:35 +00:00
13124c6a96 renderer: add missing widget.cpp 2024-02-20 00:59:02 +00:00
9074ff702d core/input: add feedback for password verification 2024-02-20 00:53:49 +00:00
96f2818915 core: fixup timer thread operations 2024-02-20 00:31:11 +00:00
d45b0e35b1 background: properly contain 2024-02-20 00:26:13 +00:00
7370fc624f label: add time and dynamic timers 2024-02-20 00:11:19 +00:00
c60b7b8aef input-field: add placeholder 2024-02-19 22:58:59 +00:00
3585324e4f input-field: add halign valign and pos 2024-02-19 22:45:59 +00:00
80e6970e33 input-field: cleanup props in constructor 2024-02-19 22:39:13 +00:00
LOSEARDES77
05cd68e17d
input-field: add font color config option (#11) 2024-02-19 22:35:13 +00:00
debfe716e8 asyncResourceGatherer: reset pending flag on process
fixes #7
2024-02-19 21:10:31 +00:00
013dfadee7 inputField: minor cleanup
still anim sucks a bit
2024-02-19 21:09:00 +00:00
6a31b2f182 widgets: allow background to take a color 2024-02-19 20:50:58 +00:00
81ca6f068b egl: log error in eglCreatePlatformWindowSurface 2024-02-19 20:45:04 +00:00