Commit Graph
751 Commits
Author SHA1 Message Date
Cytops 747955ce3b Use %p instead of %P for strftime (#1070)
## What are the changes about?
%P is a GNU extension and returns an empty string on musl, changed to %p
_Replace this with a brief description of your changes_
literally just "sed -i '1964s/"%P"/"%p"/' src/main.zig"
No ai used its a one line fix
## What existing issue(s) does this resolve?
N/A

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

I have tested on Musl alpine and Glibc artix they now render the same with the same config.lua

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1070
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-10-30 23:41:18 +01:00
AnErrupTion 3ab7f6d967 ly-core: Fix FreeBSD build
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-10-21 10:47:10 +02:00
Matheus Campos 4e0f23f084 Use zig 0.17 in the Nix devShell and update the readme (#1067)
## What are the changes about?

Update the nixpkgs input in flake.lock, since zig_0_17 is not available in the previous revision, use it in the devShell, bump the zig version in the readme to 0.17.x, and replace the nix build instructions (the flake has no packages output) with nix develop.

## What existing issue(s) does this resolve?

N/A

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1067
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-10-04 18:27:23 +02:00
AnErrupTion 501964d012 readme: Add section about Nix flake
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-10-04 09:30:45 +02:00
AnErrupTion 2a2e0d738c config: Fix documentation & missing binds
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-10-04 09:11:23 +02:00
Matheus Campos 83903cf378 feat: add flake for development environment (#1066)
## What are the changes about?

This PR adds a flake.nix and flake.lock to provide a reproducible development environment for ly using Nix.

The development shell provides the dependencies required to build ly:

- zig
- pam
- xcb

## What existing issue(s) does this resolve?

N/A

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1066
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-10-03 19:18:42 +02:00
AnErrupTion f1fc335bb8 Update to Zig 0.17.0 (#1028)
Now compiles!
(Tested with Zig 0.17.0-dev.2375+d8aab4878)

## What are the changes about?

Updates dependencies & code for Zig 0.17.0 compatibility.

## What existing issue(s) does this resolve?

N/A

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1028
2026-10-03 17:53:36 +02:00
matcxzandMatheus C. 55de3bc26c fix: prevent underflow when session list is empty (#1060)
## What are the changes about?
Fixes an integer underflow in `min_session_index`, which was computed by subtracting 1 from the session list length without checking for zero. Caused a panic (Debug/ReleaseSafe) or wraparound (ReleaseFast) on installs with no available sessions.

## What existing issue(s) does this resolve?
N/A

## Pre-requisites
- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Co-authored-by: Matheus C. <245040149+matheusc457@users.noreply.github.com>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1060
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-09-30 17:19:38 +02:00
koru f802d3bcb5 docs: Update formatting in readme and contributing.md (#1061)
Just some `readme.md` and `contributing.md` formatting update and tidy
up.

Signed-off-by: koru <koru@cock.li>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1061
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-09-29 18:13:29 +02:00
koru 44304503bd lang: Update Russian translation (#1062)
Signed-off-by: koru <koru@cock.li>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1062
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-09-29 08:36:56 +02:00
GalaxyShard 60be7ada9e Update & improve Esperanto translation (#1055)
This PR adds translations for new strings added since I initially created the translation. Additionally, some strings were rephrased for consistency and to use more colloquial terms and grammatical structures (based on other apps in Esperanto and komputeko, a dictionary of tech terminology), and I also fixed a few translation errors (sorry about those!).

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1055
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-09-08 10:20:31 +02:00
RacerBG 863162b5f7 Update Bulgarian Translation (#1054)
Signed-off-by: RacerBG <racerbg@noreply.codeberg.org>
Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1054
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-09-05 08:25:18 +02:00
AnErrupTion 809728e06a autrh: Check if faillock file exists, not just dir
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-27 10:54:16 +02:00
AnErrupTion 255af0f1d4 config: Don't error out on missing fields
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-26 15:53:20 +02:00
AnErrupTion a6e5f87e24 auth: Check faillock for locked account (closes #898)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-26 15:24:14 +02:00
AnErrupTion c90aec373e auth: Implement password reset after expiration (closes #992)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-26 09:36:02 +02:00
AnErrupTion 35fa91058b migrator: One TODO is gone! Yippee!
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-26 09:13:39 +02:00
AnErrupTion d10df78886 auth: Add password reset prerequisites
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-25 23:10:37 +02:00
AnErrupTion 95641008fe setup.sh: Set STARTUP, late load Xsession (closes #1049)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-25 20:32:36 +02:00
AnErrupTion 00440cca2e crawler: remove any trailing colon for XDG_CURRENT_DESKTOP
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-25 19:55:54 +02:00
AnErrupTion 39ea43c3cb ui: Let the info line render after empty password error
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-25 19:54:34 +02:00
urly3 432560a1cd fix: freebsd still requires 1-indexed tty (#1048)
## What are the changes about?

I thought it was working as intended but appears I just got lucky when testing.
VT_ACTIVATE still wants them 1-indexed, so increase the parsed value respectively.

My apologies!

## What existing issue(s) does this resolve?

N/A

## Pre-requisites

- [ x ] I have tested & confirmed the changes work locally
- [ x ] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1048
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-25 11:29:52 +02:00
AnErrupTion c7591a15eb auth: Simplify PAM appdata
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 22:47:10 +02:00
AnErrupTion 32dd0967ba config: Add grab_focus_tty (closes #1039)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 21:32:11 +02:00
AnErrupTion 95a1bca7de config: Fix dur file comment
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 17:58:21 +02:00
AnErrupTion 0a0d6704c8 Delete config.ini
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:51:01 +02:00
AnErrupTion 1117ef5a3b Reference Lua config + fix install bug
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:50:29 +02:00
AnErrupTion 6ef332d73e config: Add getRandomColor(), fix crash (closes #791)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:41:28 +02:00
AnErrupTion b68a41b1ea sysvinit: Use $PREFIX_DIRECTORY
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:12:48 +02:00
AnErrupTion 5618446377 systemd: Use agetty from sbin (closes #1045)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:11:57 +02:00
AnErrupTion 76a5f73ee5 config: Update config.lua
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 16:09:10 +02:00
AnErrupTion 4e7a599c8a config: Rename dur_file to dur (closes #1032)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 15:44:21 +02:00
Titanium Brain b9742203ee Use Lua as a config file language (#1010)
## What are the changes about?

Adds zlua for running Lua code as the configuration file.
Missing as of this time:
- ~~Parsing custom binds and labels~~
- ~~Fix memory leaks~~
- ~~Investigate issue with animation colours~~
- ~~Add examples and default config~~

## What existing issue does this resolve?

[#976](https://codeberg.org/fairyglade/ly/issues/976)

## Pre-requisites

- [ ] I have tested & confirmed the changes work locally
- [ ] I have run `zig fmt` throughout my changes

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1010
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-24 15:35:01 +02:00
urly3 882815343f feat: per tty last user caching (closes #1040) (#1044)
An update to #1042

## What are the changes about?

This no longer creates a new file and instead appends the new save data to the existing file in a backwards compatible way.
It can differentiate by using a prefix to the string (which would usually be the username) of "ly/tty".
Usernames on supported systems aren't able to include a forward slash, and if they could, the chances of those colliding..

The rest follows the last PR:
Fix using saved user list where it shouldn't
Now saves users that weren't previously in the save file (fixes TODO)
Since we save only valid state, the save file is self-cleaning of bad/outdated data

## What existing issue(s) does this resolve?

#1040

## Pre-requisites

- [ x ] I have tested & confirmed the changes work locally (freebsd, void linux)
- [ x ] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1044
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-24 15:32:41 +02:00
RadsammyT 0a29dc2fef feat(gameoflife): allow for variations to game of life (closes #1023) (#1041)
## What are the changes about?

Allows the game of life animation to be ran with configurable rules, specifically: the neighbors required for birth and survival.
### Example: [B3/S12345 (Maze)](https://conwaylife.com/wiki/OCA:Maze)
(where numbers after B are neighbors required for birth, and S for survival)
<video src="/attachments/49120c5e-ce21-4025-852e-924befbc2621" title="Screencast_20260814_233338" controls></video>

Introduces two keys to the config:
```ini
# Sets the multiple amounts of neighbors needed for a cell to survive.
# Each numerical digit from 0 to 8 inclusive in this string becomes
# one of the targets required for this cell to survive.
# Example: a string of "23" makes the cell survive on 2 or 3 neighbors
gameoflife_param_survival = "23"

# Sets the multiple amounts of neighbors needed for a cell to be born.
# Each numerical digit from 0 to 8 inclusive in this string becomes
# one of the targets required for this cell to be born.
# Example: a string of "3" makes the cell be born on 3 neighbors
gameoflife_param_birth = "3"
```

## What existing issue(s) does this resolve?

Solves !1023

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1041
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-24 15:32:16 +02:00
jR4dh3y bd28c0e679 Add optional bigclock digit outline (closes #1030) (#1031)
## What are the changes about?

Add optional `bigclock_outline_fg`. When set, each big-clock digit gets a 1-cell outline drawn under the glyph so it stays readable over busy animations. Default is `null` (previous behavior).

When the outline is enabled, the gap under the clock is slightly larger so the stroke is not glued to the login box.

## What existing issue(s) does this resolve?

Fixes #1030

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

### Testing

- `zig build -Doptimize=ReleaseSafe` (zig 0.16.0)
- Greeter with `bigclock = en` and `bigclock_outline_fg = 0x20000000` over a `dur_file` animation
- Default `null` leaves stock look unchanged

### AI usage (per contributing.md)

Assisted by an LLM (xAI Grok) for exploration and drafting. I directed the design (optional outline only, no panel/box, stock layout otherwise), reviewed the Zig, fixed an `i2` overflow in the outline loop, verified the build/local greeter, and wrote this PR text.

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1031
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-24 15:31:52 +02:00
urly3 fa8332dddd feature: getActiveTerminal for FreeBSD (#1047)
## What are the changes about?

Implements getActiveTerminal for FreeBSD via fstat

## What existing issue(s) does this resolve?

#1046

## Pre-requisites

- [ x ] I have tested & confirmed the changes work locally
- [ x ] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1047
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-24 15:30:46 +02:00
AnErrupTion f17ccf9ea7 build.zig: Support rc build descriptions
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 15:29:17 +02:00
AnErrupTion 11da43d7d9 Start Ly v1.6.0 development cycle
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-08-24 15:20:13 +02:00
AnErrupTion 1d071223ab README: Remove runtime shutdown dependency
Signed-off-by: AnErrupTion <anerruption@disroot.org>
v1.5.0-rc1
2026-08-23 15:35:38 +02:00
dragsbruh db7f8ac5d3 [Docs] Fix instructions to disable agetty-tty2 for runit in readme (#1043)
## What are the changes about?

updated instructions in readme.md for runit to properly disable `agetty-tty2` and unlink services

## What existing issue(s) does this resolve?

on void linux, when `runit-void` package is upgraded it re-adds the symlinks for agetty, including `agetty-tty2`, if its not properly disabled (`down` file in svdir)

https://github.com/void-linux/void-packages/blob/master/srcpkgs/runit-void/INSTALL

so everytime that package is updated, both `agetty-tty2` and `ly` start making `ly` unusable until you manually unlink it

## Pre-requisites

- [x] I have tested & confirmed the changes work locally
- [x] I have read and fully adhere to the rules set in the contributing guidelines found in `CONTRIBUTING.md`

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1043
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
2026-08-21 19:10:29 +02:00
AnErrupTion a22805d44b Auth: Handle symlinks for session log
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-31 23:52:19 +02:00
AnErrupTion b6fba46b08 GPA: Add more tracking in Debug
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-28 01:38:48 +02:00
AnErrupTion 7c2ae2738c positionSingleWidget: Resist integer overflows
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-10 13:02:58 +02:00
AnErrupTion 84950136c9 positionWidgets: Less integer overflows possible
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-10 00:15:07 +02:00
AnErrupTion d00780d6ce zig: Remove usage of [*c]
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-08 01:29:57 +02:00
AnErrupTion 014a00d33e Improve templates
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-07 22:35:06 +02:00
AnErrupTion fb544b3357 Change default box_position_v to 0.5
This can potentially be confusing to users.

Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-07 12:22:43 +02:00
AnErrupTion 5ccd91c132 Prepare for Zig 0.17.0
Still requires Zig 0.16.x for now.

Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-07 11:51:05 +02:00
AnErrupTion 78c7c2e2e8 Decouple save file path from config directory (closes #1025)
Signed-off-by: AnErrupTion <anerruption@disroot.org>
2026-07-06 22:11:52 +02:00