Commit Graph

174 Commits

Author SHA1 Message Date
bvr-yr 1356f113cc
config: add -c, --config commandline options (#202)
* config: add -c, --config commandline options

* argc

* don't allow missing custom config file
2024-03-18 15:04:39 +00:00
Staz Modrzynski 2ae79757d5
core: Add missing destructors causing segfaults (#199)
Co-authored-by: Staz M <staz@staz.io>
2024-03-17 15:44:37 +00:00
bvr-yr 23224d40e4
input-field: various fixes (#198)
* input-field: some fixes

* simplify; correctly check passlen(utf8) in draw return

* correctly erase utf-8 on backspace

* render on up events too

* omglul

me dumb

* revert fade speed change
2024-03-17 00:32:43 +00:00
bvr-yr 3e38762e84
widgets: add Image (#191) 2024-03-16 16:44:44 +02:00
Maximilian Seidler 7ee406bf9b
core: fade out improvements (#194)
* core: allow fade out for grace unlock

* core: disable input once fade out started

* core: render when fade out started

* core: allow fade out for other compositors

Works fine in sway altough it fades to a black screen not to the desktop.
Still looks kinda good.

* Revert "core: allow fade out for other compositors"

This reverts commit adfeb543ad.

* misc: rename lock and unlock functions
2024-03-15 18:49:07 +00:00
Maximilian Seidler e040c56ad2
core: fix libc++ compatibility (#195)
* core: add missing header

libc++ compatibility #193

* input-field: fix wrong clock type
2024-03-15 14:43:29 +00:00
Abhinav Anil 56e7bc1e51
input-field: fix missing `fail_text` when `placeholder_text` is empty (#192)
* input-field: fix missing fail text when placeholder is empty

* comments
2024-03-15 14:26:02 +00:00
Abhinav Anil 1c92c6109c
renderer: add fade out animation and property to disable (#188)
* renderer, Nix/HM module: add fade out animation and prop

* fix: fade duration and disable on non hyprland session

* fix: revert needsFrame condition, update duration to 500ms

* fix: make shadows obey widget opacity
2024-03-14 13:23:41 +00:00
Maximilian Seidler ae889b47a0
core: mmap keymap buffer with MAP_PRIVATE (#190) 2024-03-14 13:12:43 +00:00
bvr-yr 988d5b3957
label: add `$FAIL` and `$ATTEMPTS` (#186)
* label: add `$ATTEMPTS` variable

* labels: also add `$FAIL`

* SHOUT
2024-03-13 21:25:06 +00:00
Maximilian Seidler 9466f59327
asyncResourceGatherer: skip processing screenshot paths and remove initThread (#189)
* asyncResourceGatherer: skip processing screenshot paths

* asyncResourceGatherer: remove initThread
2024-03-13 21:23:21 +00:00
bvr-yr f3a41161ec
input-field: add capslock and numlock options (#182)
* input-field: add capslock and numlock options

* fixups

* Nix/HM module: add {caps,num}lock options

---------

Co-authored-by: Mihai Fufezan <fufexan@protonmail.com>
2024-03-13 01:10:42 +00:00
bvr-yr 6027f12d3b
input-field: fix alignment on multi-monitors (#175)
* input-field: fix alignment on multi-monitors

* clang-format

* remove redundant
2024-03-11 18:14:12 +00:00
bvr-yr 6c9d6f05a0
input-field: `check_color` + some fixes (#172) 2024-03-11 15:17:14 +00:00
Vaxry 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
Vaxry 624f497272 shaders: fix missing premult for colorize in final blur
fixes #136
2024-03-06 00:06:04 +00:00
Vaxry cdb8e7774f core: don't restore on terminate 2024-03-06 00:00:58 +00:00
Vaxry 7d5cb1dbb3 misc: fix warning about iso strings 2024-03-05 23:33:28 +00:00
Vaxry f0bcadc6ad restore: limit to once every 4s 2024-03-05 23:32:31 +00:00
Vaxry 81ec54c0e8 shadow: fix build 2024-03-05 20:31:31 +00:00
Vaxry 9b54840e12 shadows: disable by default 2024-03-05 20:28:29 +00:00
Vaxry a4dc596cb8 renderer: add shadowable props 2024-03-05 20:27:28 +00:00
Vaxry 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
Vaxry f9fe60c7eb pam: fallback auth to su 2024-03-03 02:27:32 +00:00
Vaxry 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
Vaxry 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
Vaxry 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
Vaxry 8876ceccc2 format: fix format string 2024-02-26 19:51:12 +00:00
Vaxry 0d5115ab6b core: use lowercase syms for tracking keypresses
fixes #86
2024-02-26 18:34:34 +00:00
Vaxry b8966fe05f asyncresourcegatherer: clarify callback thread safety 2024-02-26 18:27:27 +00:00
Vaxry 582e8c86b4 label: use a callback from asyncGatherer to render 2024-02-26 18:25:52 +00:00
Vaxry 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
Vaxry 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
Vaxry 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
Vaxry 9ba88d0ace gbm: prefer linear modifiers
ref #62
2024-02-22 23:02:42 +00:00
Vaxry 272fc359ad gbm: pick only valid modifiers 2024-02-22 03:05:56 +00:00
Vaxry 57ce4f759c config: add no_fade_in
fixes #55
2024-02-22 00:36:01 +00:00
Vaxry 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
Vaxry af9e8d1758 core: do not process keys on pending password verif
fixes #54
2024-02-21 23:05:52 +00:00
Vaxry 3f8b6b5c95 framebuffer: ask for 2101010 by default 2024-02-21 22:30:37 +00:00
Vaxry 1b57d52179 background: add blurring 2024-02-21 22:21:16 +00:00
Vaxry 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
Vaxry 6355216f48 config: add general:grace
fixes #48
2024-02-21 16:48:59 +00:00
Vaxry 06b07c53e5 label: add executing commands 2024-02-21 14:12:20 +00:00
Vaxry b1ffd73534 input-field: add dots_center 2024-02-21 11:42:18 +00:00
Vaxry 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
Vaxry a92e3fbe36 input: fix outerColor alpha being nuked 2024-02-20 16:34:59 +00:00
Vaxry 40802b9672 renderer: minor alpha improvements 2024-02-20 16:29:23 +00:00
Vaxry b9c88e8600 debug: log surface configure sizes 2024-02-20 16:16:46 +00:00
Vaxry 11a6213c36 background: fix typo in calcs 2024-02-20 16:02:40 +00:00
Vaxry 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
Vaxry d37786be5c core: always roundtrip on unlock 2024-02-20 03:31:10 +00:00
Vaxry e57f146bad core: fixup deadlock in timersThr exit cond 2024-02-20 03:18:17 +00:00
Vaxry b23b0a6d32 core: add wait timeout to main thread 2024-02-20 03:07:34 +00:00
Vaxry 394dc81ff3 core: wait for poll threads to exit to avoid a coredump 2024-02-20 03:05:51 +00:00
Vaxry 98606beaad core: fixup number of pollfds in poll thread 2024-02-20 03:01:58 +00:00
Vaxry 868e85e362 config: add general:hide_cursor 2024-02-20 02:54:19 +00:00
Vaxry b8fcfe8352 core: avoid idling forever after exit 2024-02-20 02:47:14 +00:00
Vaxry 1b5b3e7df8 input-field: password rendering improvements 2024-02-20 02:47:03 +00:00
Vaxry 87a7255954 core: fix UAF faults around lock surfaces 2024-02-20 01:38:02 +00:00
Vaxry 0bcdca6e7b core: more thread safety 2024-02-20 01:30:47 +00:00
Vaxry cb81a977c4 widget: handle linebreaks 2024-02-20 01:12:06 +00:00