mirror of
https://github.com/javalsai/lidm.git
synced 2026-02-27 03:50:44 +01:00
* chore(organization): allow nested header and c files * feat: add shell login "middleware" & etc: * lidm now calls `bash` (or other shells, depends on PACKAGE cfg) in login mode as a session wrapper to source most env (can be disabled) * this fixes a lot of env problems with all `/etc/profile` and more Extra: * implemented a musl compatible version of `execvpe` and now lidm should search for PATH everywhere it needs to * `search_path` now also checks if the found binary is properly executable * lidm now uses `confstr` for a decent PATH default if none is found * logs are unbuffered for cases where debug logs appear empty (exit without handlers moment) * chore: one-time evaluate certain makefile vars --------- Co-authored-by: grialion <48643945+grialion@users.noreply.github.com>
58 lines
2.1 KiB
C
58 lines
2.1 KiB
C
#ifndef UIH_
|
|
#define UIH_
|
|
|
|
#include "config.h"
|
|
#include "ofield.h"
|
|
#include "util/vec.h"
|
|
|
|
// [box_start]
|
|
// ↓
|
|
// 0 [┌]───────────────────────────────────────────────┐
|
|
// 1 │ │
|
|
// 2 │ the-art 2025-06-20 21:40:44 │
|
|
// 3 │ | │
|
|
// 4 │ | │
|
|
// 5 │ xorg < Default > | │
|
|
// 6 │ | │
|
|
// 7 │ user javalsai | │
|
|
// 8 │ | │
|
|
// 9 │ password ________________________________ │
|
|
// 10 │ | | │
|
|
// 11 └────────────────────────────────────────────────┘
|
|
// 01234567890123456789012345678901234567890123456789
|
|
// 00000000001111111111222222222233333333334444444444
|
|
// |--| | ↑ |--|[BOX_HMARGIN]
|
|
// [BOX_HMARGIN] [VALUES_COL] |
|
|
// |---|[VALUES_SEPR] |
|
|
// |--------------------------------|[VALUE_MAXLEN]
|
|
|
|
#define HEAD_ROW 2
|
|
#define SESSION_ROW 5
|
|
#define USER_ROW 7
|
|
#define PASSWD_ROW 9
|
|
|
|
#define BOX_WIDTH 50
|
|
#define BOX_HEIGHT 12
|
|
#define BOX_HMARGIN 2
|
|
|
|
#define VALUES_COL 15
|
|
#define VALUES_SEPR 3
|
|
#define VALUE_MAXLEN (BOX_WIDTH - VALUES_COL + 1 - BOX_HMARGIN - 2)
|
|
|
|
enum Input { SESSION, USER, PASSWD };
|
|
extern const uint8_t INPUTS_N;
|
|
|
|
void setup(struct config* config);
|
|
int load(struct Vector* users, struct Vector* sessions);
|
|
void print_err(const char* /*msg*/);
|
|
void print_errno(const char* /*descr*/);
|
|
void print_pam_msg(const char* msg, int msg_style);
|
|
void clear_pam_msg(void);
|
|
|
|
void ui_update_field(enum Input focused_input);
|
|
void ui_update_ffield();
|
|
void ui_update_ofield(struct opts_field* self);
|
|
void ui_update_cursor_focus();
|
|
|
|
#endif
|