mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-21 11:44:55 +00:00
Compare commits
2 Commits
v1.3.0
...
mookums/mu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab462e91c2 | ||
|
|
6d3808553e |
@@ -111,7 +111,7 @@ fn installsystemd(self: *std.Build.Step, progress: *std.Progress.Node) !void {
|
|||||||
var service_dir = std.fs.openDirAbsolute("/usr/lib/systemd/system", .{}) catch unreachable;
|
var service_dir = std.fs.openDirAbsolute("/usr/lib/systemd/system", .{}) catch unreachable;
|
||||||
defer service_dir.close();
|
defer service_dir.close();
|
||||||
|
|
||||||
try std.fs.cwd().copyFile("res/ly.service", service_dir, "ly.service", .{ .override_mode = 644 });
|
try std.fs.cwd().copyFile("res/ly@.service", service_dir, "ly@.service", .{ .override_mode = 644 });
|
||||||
}
|
}
|
||||||
|
|
||||||
fn installopenrc(self: *std.Build.Step, progress: *std.Progress.Node) !void {
|
fn installopenrc(self: *std.Build.Step, progress: *std.Progress.Node) !void {
|
||||||
|
|||||||
@@ -92,9 +92,10 @@ Install Ly and the provided systemd service file
|
|||||||
# zig build installsystemd
|
# zig build installsystemd
|
||||||
```
|
```
|
||||||
|
|
||||||
Enable the service
|
Enable the service (this will spawn on tty2 and tty9)
|
||||||
```
|
```
|
||||||
# systemctl enable ly.service
|
# systemctl enable ly@tty2.service
|
||||||
|
# systemctl enable ly@tty9.service
|
||||||
```
|
```
|
||||||
|
|
||||||
If you need to switch between ttys after Ly's start you also have to
|
If you need to switch between ttys after Ly's start you also have to
|
||||||
@@ -103,6 +104,8 @@ disable getty on Ly's tty to prevent "login" from spawning on top of it
|
|||||||
# systemctl disable getty@tty2.service
|
# systemctl disable getty@tty2.service
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you have multiple ttys setup with systemd, the tty option will be used as your default tty.
|
||||||
|
|
||||||
### OpenRC
|
### OpenRC
|
||||||
**NOTE**: On Gentoo, Ly will disable the `display-manager-init` service in order to run.
|
**NOTE**: On Gentoo, Ly will disable the `display-manager-init` service in order to run.
|
||||||
|
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=TUI display manager
|
Description=TUI display manager (on %I)
|
||||||
After=systemd-user-sessions.service plymouth-quit-wait.service
|
After=systemd-user-sessions.service plymouth-quit-wait.service
|
||||||
After=getty@tty2.service
|
After=getty@%I.service
|
||||||
Conflicts=getty@tty2.service
|
Conflicts=getty@%I.service
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=idle
|
Type=idle
|
||||||
ExecStart=/usr/bin/ly
|
ExecStart=/usr/bin/ly
|
||||||
StandardError=journal
|
StandardError=journal
|
||||||
StandardInput=tty
|
StandardInput=tty
|
||||||
TTYPath=/dev/tty2
|
TTYPath=/dev/%I
|
||||||
TTYReset=yes
|
TTYReset=yes
|
||||||
TTYVHangup=yes
|
TTYVHangup=yes
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
Alias=display-manager.service
|
WantedBy=multi-user.target
|
||||||
|
# Alias=display-manager.service
|
||||||
@@ -6,6 +6,10 @@ pub const termbox = @cImport({
|
|||||||
@cInclude("termbox.h");
|
@cInclude("termbox.h");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
pub const vt = @cImport({
|
||||||
|
@cInclude("linux/vt.h");
|
||||||
|
});
|
||||||
|
|
||||||
pub const pam = @cImport({
|
pub const pam = @cImport({
|
||||||
@cInclude("security/pam_appl.h");
|
@cInclude("security/pam_appl.h");
|
||||||
});
|
});
|
||||||
@@ -44,6 +48,7 @@ pub const passwd = extern struct {
|
|||||||
pw_shell: [*:0]u8,
|
pw_shell: [*:0]u8,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pub const VT_GETSTATE: c_int = 0x5603;
|
||||||
pub const VT_ACTIVATE: c_int = 0x5606;
|
pub const VT_ACTIVATE: c_int = 0x5606;
|
||||||
pub const VT_WAITACTIVE: c_int = 0x5607;
|
pub const VT_WAITACTIVE: c_int = 0x5607;
|
||||||
|
|
||||||
|
|||||||
@@ -526,6 +526,11 @@ pub fn main() !void {
|
|||||||
defer shared_err.deinit();
|
defer shared_err.deinit();
|
||||||
|
|
||||||
{
|
{
|
||||||
|
// This will set the current active VT as our TTY.
|
||||||
|
var vtstat: interop.vt.vt_stat = undefined;
|
||||||
|
_ = std.c.ioctl(std.c.STDIN_FILENO, interop.VT_GETSTATE, &vtstat);
|
||||||
|
config.tty = @intCast(vtstat.v_active);
|
||||||
|
|
||||||
const login_text = try allocator.dupeZ(u8, login.text.items);
|
const login_text = try allocator.dupeZ(u8, login.text.items);
|
||||||
defer allocator.free(login_text);
|
defer allocator.free(login_text);
|
||||||
const password_text = try allocator.dupeZ(u8, password.text.items);
|
const password_text = try allocator.dupeZ(u8, password.text.items);
|
||||||
|
|||||||
Reference in New Issue
Block a user