Loading maintainers/maintainer-list.nix +7 −0 Original line number Diff line number Diff line Loading @@ -8832,6 +8832,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"; Loading nixos/modules/system/boot/unl0kr.nix +63 −7 Original line number Diff line number Diff line { 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 Loading @@ -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/ Loading @@ -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 ''; Loading pkgs/by-name/un/unl0kr/package.nix +1 −1 Original line number Diff line number Diff line Loading @@ -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; }; }) Loading
maintainers/maintainer-list.nix +7 −0 Original line number Diff line number Diff line Loading @@ -8832,6 +8832,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"; Loading
nixos/modules/system/boot/unl0kr.nix +63 −7 Original line number Diff line number Diff line { 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 Loading @@ -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/ Loading @@ -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 ''; Loading
pkgs/by-name/un/unl0kr/package.nix +1 −1 Original line number Diff line number Diff line Loading @@ -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; }; })