From 556d821d15f55319991921c11af38db893da305a Mon Sep 17 00:00:00 2001 From: Hustler One Date: Thu, 5 Sep 2024 01:21:44 +0200 Subject: [PATCH 1/2] maintainers: add hustlerone --- maintainers/maintainer-list.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 94e88dc9b387..329f1c151027 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -8617,6 +8617,13 @@ name = "Luna Perego"; keys = [ { fingerprint = "09E4 B981 9B93 5B0C 0B91 1274 0578 7332 9217 08FF"; } ]; }; + hustlerone = { + email = "nine-ball@tutanota.com"; + matrix = "@hustlerone:matrix.org"; + github = "hustlerone"; + name = "Hustler One"; + githubId = 167621692; + }; huyngo = { email = "huyngo@disroot.org"; github = "Huy-Ngo"; From 29449deaf7812708d5921608f1a3197f39c3fda1 Mon Sep 17 00:00:00 2001 From: Hustler One Date: Fri, 6 Sep 2024 18:14:53 +0200 Subject: [PATCH 2/2] Add more options to unl0kr --- nixos/modules/system/boot/unl0kr.nix | 70 +++++++++++++++++++++++++--- pkgs/by-name/un/unl0kr/package.nix | 2 +- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/nixos/modules/system/boot/unl0kr.nix b/nixos/modules/system/boot/unl0kr.nix index bb3916ed4599..3b64f580aaf4 100644 --- a/nixos/modules/system/boot/unl0kr.nix +++ b/nixos/modules/system/boot/unl0kr.nix @@ -1,27 +1,85 @@ -{ config, lib, pkgs, ... }: +{ + config, + lib, + pkgs, + ... +}: let cfg = config.boot.initrd.unl0kr; + settingsFormat = pkgs.formats.ini { }; in { options.boot.initrd.unl0kr = { enable = lib.mkEnableOption "unl0kr in initrd" // { + description = ''Whether to enable the unl0kr on-screen keyboard in initrd to unlock LUKS.''; + }; + + allowVendorDrivers = lib.mkEnableOption "load optional drivers" // { + description = ''Whether to load additional drivers for certain vendors (I.E: Wacom, Intel, etc.)''; + }; + + settings = lib.mkOption { description = '' - Whether to enable the unl0kr on-screen keyboard in initrd to unlock LUKS. + Configuration for `unl0kr`. + + See `unl0kr.conf(5)` for supported values. + + Alternatively, visit `https://gitlab.com/postmarketOS/buffybox/-/blob/unl0kr-2.0.0/unl0kr.conf` ''; + + example = lib.literalExpression '' + { + general.animations = true; + theme = { + default = "pmos-dark"; + alternate = "pmos-light"; + }; + } + ''; + default = { }; + type = lib.types.submodule { freeformType = settingsFormat.type; }; }; }; config = lib.mkIf cfg.enable { - meta.maintainers = []; + meta.maintainers = with lib.maintainers; [ hustlerone ]; assertions = [ { assertion = cfg.enable -> config.boot.initrd.systemd.enable; message = "boot.initrd.unl0kr is only supported with boot.initrd.systemd."; } + { + assertion = !config.boot.plymouth.enable; + message = "unl0kr will not work if plymouth is enabled."; + } + { + assertion = !config.hardware.amdgpu.initrd.enable; + message = "unl0kr has issues with video drivers that are loaded on stage 1."; + } ]; + boot.initrd.availableKernelModules = + lib.optionals cfg.enable [ + "hid-multitouch" + "hid-generic" + "usbhid" + + "i2c-designware-core" + "i2c-designware-platform" + "i2c-hid-acpi" + + "usbtouchscreen" + "evdev" + ] + ++ lib.optionals cfg.allowVendorDrivers [ + "intel_lpss_pci" + "elo" + "wacom" + ]; + boot.initrd.systemd = { + contents."/etc/unl0kr.conf".source = settingsFormat.generate "unl0kr.conf" cfg.settings; storePaths = with pkgs; [ "${pkgs.gnugrep}/bin/grep" libinput @@ -42,9 +100,7 @@ in "systemd-vconsole-setup.service" "udev.service" ]; - before = [ - "shutdown.target" - ]; + before = [ "shutdown.target" ]; script = '' # This script acts as a Password Agent: https://systemd.io/PASSWORD_AGENTS/ @@ -56,7 +112,7 @@ in do for file in `ls $DIR/ask.*`; do socket="$(cat "$file" | ${pkgs.gnugrep}/bin/grep "Socket=" | cut -d= -f2)" - ${pkgs.unl0kr}/bin/unl0kr | ${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password 1 "$socket" + ${pkgs.unl0kr}/bin/unl0kr -v -C "/etc/unl0kr.conf" | ${config.boot.initrd.systemd.package}/lib/systemd/systemd-reply-password 1 "$socket" done done ''; diff --git a/pkgs/by-name/un/unl0kr/package.nix b/pkgs/by-name/un/unl0kr/package.nix index 4f3589bd5973..8bedd9fc689f 100644 --- a/pkgs/by-name/un/unl0kr/package.nix +++ b/pkgs/by-name/un/unl0kr/package.nix @@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: { mainProgram = "unl0kr"; homepage = "https://gitlab.com/cherrypicker/unl0kr"; license = licenses.gpl3Plus; - maintainers = []; + maintainers = with maintainers; [ hustlerone ]; platforms = platforms.linux; }; })