AnErrupTion
e6966a628c
Fix wrong session index + save file corruption
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-12-06 14:25:01 +01:00
AnErrupTion
a9ff0a6d07
Only support dur format v7, set -1 color to black
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-12-06 10:05:41 +01:00
AnErrupTion
92beb24c80
Fix save file initialisation & incorrect saved session index
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-12-05 19:49:27 +01:00
hynak
7e18d906c4
[Feature] Add support for .dur file format and animations ( closes #719 ) ( #833 )
...
Adds support for durdraw's .dur file format. Supports ascii, animations, and 16/256 color display.
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/833
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: hynak <hynak@noreply.codeberg.org>
Co-committed-by: hynak <hynak@noreply.codeberg.org>
2025-12-05 19:46:42 +01:00
AnErrupTion
3bfdc75a70
Add option to run command after inactivity delay ( closes #747 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-12-03 20:39:27 +01:00
AnErrupTion
1c99574f73
Add option to run command before UI is initialised ( closes #798 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-12-02 22:23:10 +01:00
radsammyt
6cb53b6e38
Refactor active_input field-jumping logic ( #873 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/873
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: radsammyt <radsammyt@noreply.codeberg.org>
Co-committed-by: radsammyt <radsammyt@noreply.codeberg.org>
2025-12-01 20:07:59 +01:00
AnErrupTion
d82fa82a87
Always add hostname last in the info line
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 23:50:39 +01:00
AnErrupTion
c2b3d794e8
Fix fallback UID range + add error if UID range not found
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 23:36:47 +01:00
AnErrupTion
e29bda3250
Add systemd-homed UID range
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 23:02:23 +01:00
AnErrupTion
4df2382698
Add possibility to disable auth_fails animation ( closes #835 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 22:19:38 +01:00
AnErrupTion
fe354a4809
Add fallback UID range options at compile-time
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 09:47:50 +01:00
AnErrupTion
8c964d9ce5
Don't crash when failing to crawl a session directory ( closes #870 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 09:30:33 +01:00
AnErrupTion
10854e643a
Don't crash when failing to parse arguments
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-30 09:14:10 +01:00
ebits
1980b2e479
Feature: Added option for hibernate between sleep and brightness down ( #867 ) ( closes #866 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/867
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: ebits <tspamiitesh@gmail.com>
Co-committed-by: ebits <tspamiitesh@gmail.com>
2025-11-28 19:05:17 +01:00
AnErrupTion
f0758d812e
Fix potential out of bounds issue when automatically changing session
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-11-19 22:15:07 +01:00
AnErrupTion
3c0c84d067
Fix build error
...
I really should test PRs before merging them, shouldn't I?
2025-11-15 20:02:59 +01:00
notiant
cc07c4870a
Add option to hide CapsLock and NumLock states ( #864 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/864
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: notiant <codeberg.cizj4@simplelogin.com>
Co-committed-by: notiant <codeberg.cizj4@simplelogin.com>
2025-11-15 16:32:42 +01:00
ferreo
0cf752f3b8
[Feature] Add autologin support ( #841 ) ( closes #200 )
...
This is the simplest change I could come up with to add working autologin, only bit I really dislike is the event but it seemed like the cleanest way without refactoring.
Co-authored-by: ferreo <harderthanfire@gmail.com>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/841
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: ferreo <ferreo@noreply.codeberg.org>
Co-committed-by: ferreo <ferreo@noreply.codeberg.org>
2025-10-25 23:09:24 +02:00
AnErrupTion
38173d8557
Add edge margin to numlock & capslock
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-25 20:39:34 +02:00
AnErrupTion
95d1d9378c
Add edge margin to top-right clock
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-23 22:53:58 +02:00
AnErrupTion
6f62106fcc
Merge changes
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-23 22:16:24 +02:00
AnErrupTion
80c27224e9
Create xauth directory if it doesn't exist
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-23 22:15:16 +02:00
ebits
106f157a2c
[Feature] Add edge margin option ( #856 ) ( closes #848 )
...
Allows setting a balanced margin on all sides.
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/856
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: ebits <tspamiitesh@gmail.com>
Co-committed-by: ebits <tspamiitesh@gmail.com>
2025-10-23 19:07:54 +02:00
AnErrupTion
1c05664c85
Fix xauth file name UB
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 16:18:05 +02:00
AnErrupTion
1fbcb10110
Open new log file after every fork() where necessary
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 15:29:47 +02:00
AnErrupTion
44c8acff16
Open new log file handle after fork()
...
This would also need to be done in the
nested fork() calls.
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 12:03:48 +02:00
AnErrupTion
3faf3dec42
Fix login issue
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 08:41:36 +02:00
AnErrupTion
02f5aa702d
Implement /etc/login.defs in interop, TODO for FreeBSD
...
We should be able to parse the "minuid" and "maxuid"
values in /etc/rc.conf to get the UID range of the
system, with default values of 1000 to 32000 (as
they don't seem to be present by default).
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 00:28:12 +02:00
AnErrupTion
ed88458efd
Fix platform-specific bugs for FreeBSD compilation
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-18 00:05:53 +02:00
AnErrupTion
657daafec8
Fix crash after reading saved credentials for first time
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-17 22:58:50 +02:00
AnErrupTion
e36872baa6
Don't spam battery status error if already tried once
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-15 16:32:57 +02:00
Matthew Rothlisberger
1f2453f0fb
Disable battery status display by default ( #852 )
...
A couple things to fix in the new battery status display configuration.
I think this should be disabled by default. My reasoning:
- Historically a conservative approach is taken with new capabilities in Ly; even the clock is disabled by default
- The existing default creates a regression (error message) for anyone without `/sys/class/power_supply/BAT0` on their system (all non-portable PCs, and laptops that use a different identifier)
- The battery status check causes animations to momentarily hang at a regular interval
Other changes:
- Comment for `battery_id` aligned with similar config switch comments (description / useful information / effect of null setting)
- `battery_id` moved to its correct alphabetical position in the config file
- Setting aligned between `Config.zig` and `config.ini` (the prototypical config file should reflect the actual default)
- Configurations prefixed with `hide_` alphabetized
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/852
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: Matthew Rothlisberger <mattjrothlis@gmail.com>
Co-committed-by: Matthew Rothlisberger <mattjrothlis@gmail.com>
2025-10-15 13:58:04 +02:00
AnErrupTion
e577c454da
Fix merge conflict
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-14 21:10:17 +02:00
AnErrupTion
b3f1e91cf6
Remember last session for each user ( closes #619 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-14 21:05:54 +02:00
AnErrupTion
aef1dd9c1a
Add more logs when logging into an X11 session
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-14 20:09:39 +02:00
AnErrupTion
3d977d2ff7
Fix compatibility with Zig 0.15.2
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-14 20:05:50 +02:00
AnErrupTion
a34a5a97bd
Execute shell in case exec_cmd is null
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-14 20:02:55 +02:00
AnErrupTion
4f4855b5e9
Implement dummy active TTY getter for FreeBSD
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-10-12 22:47:03 +02:00
nyraa
cb4f1952cd
Move version string to bottom-left corner ( #846 )
...
In #834 , it was decided to move the version string to the bottom-left corner, and a new PR was opened to address it.
Co-authored-by: nyraa <112930946+nyraa@users.noreply.github.com>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/846
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: nyraa <nyraa@noreply.codeberg.org>
Co-committed-by: nyraa <nyraa@noreply.codeberg.org>
2025-10-11 09:24:15 +02:00
ebits
81a17f2904
Fix: Default battery status to row 1 when hide_key_hints and hide_version_string is true ( fixes #844 ) ( #845 )
...
Default battery status behaviour to usize 0 when hide_key_hints and hide_version_string is true as a fix to issue [#844 ](https://codeberg.org/fairyglade/ly/issues/844 )
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/845
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: ebits <tspamiitesh@gmail.com>
Co-committed-by: ebits <tspamiitesh@gmail.com>
2025-10-11 08:47:13 +02:00
ebits
339e39d496
Adding the battery status for the top bar alongside brightness controls ( closes #821 ) ( #826 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/826
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: ebits <tspamiitesh@gmail.com>
Co-committed-by: ebits <tspamiitesh@gmail.com>
2025-10-09 18:48:46 +02:00
mctaylors
44faa263b1
change(config): add -n flag to prevent accidental backlight disabling ( #840 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/840
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: mctaylors <cantsendmails@mctaylors.ru>
Co-committed-by: mctaylors <cantsendmails@mctaylors.ru>
2025-10-05 19:26:09 +02:00
AnErrupTion
7a0520687d
Add fallback TTY option ( closes #838 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-29 21:30:51 +02:00
AnErrupTion
cee0e0ca4b
Log more detailed config error messages ( closes #801 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-26 09:54:38 +02:00
AnErrupTion
3edd1ff1be
Log error name when zigini fails to parse config
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-25 13:35:28 +02:00
AnErrupTion
145ad5142c
Clean up redundant authentication & session code
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-25 08:32:30 +02:00
AnErrupTion
d8b0ae34f3
Remove semi-colons in default locale
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-25 08:30:13 +02:00
AnErrupTion
ee97f3b5e1
Automatically detect TTY ( closes #795 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-09-07 17:44:50 +02:00
AnErrupTion
5924db58e1
Use std.mem.span + remove useless dupeZ()
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-30 13:17:19 +02:00
AnErrupTion
36e220e2ff
Remove usage of std.c.stat() for xauth code
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-30 02:09:51 +02:00
AnErrupTion
0a9ceca822
Don't dupeZ() in main
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-30 01:09:12 +02:00
AnErrupTion
f9553655a3
Separate platform code from C interop code
...
Also, don't use isBSD() because we'll only support FreeBSD for
now. Other BSDs may not necessarily support Unicode characters
or the same ioctl constants as we do (or even ioctl at all).
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-30 00:27:04 +02:00
AnErrupTion
230874abd1
Don't forget to flush... :)
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 22:54:05 +02:00
AnErrupTion
38c3ecd089
Remove unused import
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 22:42:34 +02:00
AnErrupTion
a7d6b06d21
Add partial logging in authentication process ( closes #822 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 09:28:29 +02:00
AnErrupTion
f988bd334b
Update termbox2
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 00:45:28 +02:00
AnErrupTion
aa0222948a
Update config migrator
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 00:35:11 +02:00
AnErrupTion
69d39dc035
Remove config.load
...
config.save already makes it redundant. Besides, who would want
to save the current username & session, but not want to load it
at the next boot?
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 00:32:49 +02:00
AnErrupTion
6d7dbb9f27
Fix typo & remove unused import
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-29 00:07:32 +02:00
AnErrupTion
7cfb947187
Reduce libc usage & move more stuff to interop
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-28 01:39:19 +02:00
AnErrupTion
ff9b6279d3
Update to Zig 0.15.0 ( closes #829 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-27 23:44:39 +02:00
djsigmann
73ecac67bf
Prevent Ly from zombifying when X.org is terminated ( #807 ) ( fixes #787 )
...
If a compositor is running when exiting Xorg, the user is met with an unresponsive black screen without the ability to switch to a different TTY (the usual `Ctrl+Alt+F{1..6}` chord doesn't do anything).
In addition, ly is displayed as a zombie process under `ps` and cannot be killed (observed by utilizing a preexisting ssh connection to the host).
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/807
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: djsigmann <djsigmann@protonmail.com>
Co-committed-by: djsigmann <djsigmann@protonmail.com>
2025-08-05 21:45:09 +02:00
AnErrupTion
7353e75d78
Merge branch 'master' of codeberg.org:fairyglade/ly
2025-08-05 08:26:38 +02:00
AnErrupTion
cd0accfb28
Show error name instead of error if shutdown/reboot fails
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-05 08:26:13 +02:00
João Lucas
b71789912d
Add enable_session_log option to control session logging ( #809 ) ( fixes #808 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/809
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: João Lucas <jlucaso@hotmail.com>
Co-committed-by: João Lucas <jlucaso@hotmail.com>
2025-08-04 00:00:18 +02:00
Matthew Rothlisberger
a7ff18aa16
Add option for eight-color terminal output ( #802 )
...
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/802
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: Matthew Rothlisberger <mattjrothlis@gmail.com>
Co-committed-by: Matthew Rothlisberger <mattjrothlis@gmail.com>
2025-08-03 23:37:53 +02:00
AnErrupTion
c3d180c213
Add basic general log file
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-03 15:59:47 +02:00
AnErrupTion
3f891d7f0d
Workaround for session process not exiting immediately
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-03 14:56:16 +02:00
AnErrupTion
e404d5bdb3
Clean-up: std.posix.kill() returns nothing
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-03 14:55:50 +02:00
AnErrupTion
dee055748c
Format code properly
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-03 13:47:53 +02:00
RadsammyT
b382d74969
bigclock: add 12-hour & seconds support ( #805 )
...
Added P,A,M characters to bigclock and added 12hr and seconds support to bigclock via `bigclock_12hr` and `bigclock_seconds` in the config.

Image has bigclock_12hr and bigclock_seconds enabled.
Farsi characters for P,A,M are blank since I don't know what it would look like in their language. (should i have just used the english characters as a placeholder?)
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/805
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: RadsammyT <radsammyt@gmail.com>
Co-committed-by: RadsammyT <radsammyt@gmail.com>
2025-08-03 11:16:04 +02:00
AnErrupTion
4fbbb6f0f2
Reduce nesting a bit
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-02 22:59:34 +02:00
AnErrupTion
ef64029795
Only clear TTY under certain circumstances
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-02 22:57:47 +02:00
AnErrupTion
b35c055e7b
Fix clock string length issues ( fixes #716 )
...
Co-authored-by: Plash <plash@noreply.codeberg.org>
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-02 13:08:07 +02:00
AnErrupTion
c05c32c5be
Fix possible overflow with 5-digit+ UIDs (c.f. #684 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-08-02 00:57:22 +02:00
João Lucas
8030cf5244
fix: Reorder default PATH to prioritize /usr/local directories to solve
...
problem with archlinux
2025-07-26 19:27:36 +02:00
RadsammyT
5c3da10386
fix: confined labels cutting off
...
`drawConfinedLabel` didn't take into account the starting x axis
when checking to break for exceeding `max_length`.
This should fix the box title not appearing on
terminals with larger column counts.
2025-07-16 22:03:51 -04:00
AnErrupTion
1d4e32ba82
List all users in the system ( fixes #373 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-10 10:06:19 +02:00
AnErrupTion
04920e1b1b
Implement custom session support ( fixes #757 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-08 22:39:14 +02:00
AnErrupTion
48e5369f56
Fix character width calculation
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-08 16:32:20 +02:00
AnErrupTion
918e9ad5ac
Only show lang.err_lock_state once
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-08 12:47:24 +02:00
AnErrupTion
ce17d346e8
Remove lang.err_console_dev
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-08 12:45:47 +02:00
Matthew Rothlisberger
99f3ab96ba
changes fire parameters
2025-07-07 21:02:58 -04:00
Matthew Rothlisberger
2a8e221e80
improves fire gradient in true color mode
2025-07-07 21:02:58 -04:00
Matthew Rothlisberger
1c5686ea54
further improves fire behavior
2025-07-07 21:02:58 -04:00
Matthew Rothlisberger
ab23631e66
reimplements PSX Doom fire animation; adds flame height control
2025-07-07 21:02:58 -04:00
AnErrupTion
1bcbb08202
Add config.console_dev as a removed property in migrator
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-07 21:46:49 +02:00
AnErrupTion
d08b9a916e
Remove config.console_dev option + handle ioctl errors
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-07 21:45:54 +02:00
AnErrupTion
e5eb8b7f6f
Merge branch 'master' of codeberg.org:fairyglade/ly
2025-07-06 09:26:38 +02:00
AnErrupTion
41f4378bfe
Fix XDG_RUNTIME_DIR not being set properly ( fixes #781 )
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-07-06 09:25:06 +02:00
thoxy
e7aad8de88
remove gameoflife_randomize_colors argument in main for gameoflife
2025-06-17 12:40:49 +02:00
thoxy
9b00df4337
Merge branch 'master' into master
2025-06-17 12:36:17 +02:00
thoxy
a5e38e2ce5
Remove color randomization from Game of Life animation
2025-06-17 12:35:22 +02:00
Dusan
14aae40fda
Use existing label value for x
2025-06-10 14:34:20 +02:00
Dusan
3504180e95
Option to hide version string
2025-06-10 06:12:48 +02:00
thoxy
b4952cdc51
Merge branch 'master' into master
2025-05-31 18:04:56 +02:00
thoxy
5e8e0af59c
Remove redundant comments and type annotations
2025-05-31 17:56:16 +02:00
AnErrupTion
a8b8292318
Add name of unknown error instead of generic string
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-05-31 11:04:46 +02:00
AnErrupTion
36a27f6167
Fix big clock UB in ReleaseSafe
...
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2025-05-31 10:32:03 +02:00