GitHunt
BL

blamairia/howdy-patcher

πŸ›‘οΈ Fix Howdy v2.6.1 for modern Linux (Debian 13, Ubuntu 24.04+)

πŸ›‘οΈ Howdy Patcher

Windows Helloβ„’ Style Face Unlock for Debian 13, Ubuntu 24.04+ & Modern Linux

License: MIT
Linux
Debian
Ubuntu
Python

TL;DR: Howdy face recognition broken on modern Linux? Run this script to fix it instantly.


⚑ One-Line Fix

curl -fsSL https://raw.githubusercontent.com/blamairia/howdy-patcher/main/howdy-patcher.sh -o howdy-patcher.sh && chmod +x howdy-patcher.sh && sudo ./howdy-patcher.sh

πŸ”₯ Are You Getting These Errors?

❌ ModuleNotFoundError: No module named 'ConfigParser'

Traceback (most recent call last):
  File "/lib/security/howdy/pam.py", line 10, in <module>
    import ConfigParser
ModuleNotFoundError: No module named 'ConfigParser'

❌ externally-managed-environment during installation

error: externally-managed-environment
Γ— This environment is externally managed

❌ GStreamer camera errors

[ WARN:0@2.941] global cap_gstreamer.cpp:2839 handleMessage OpenCV | GStreamer warning: Embedded video playback halted
[ WARN:0@2.941] global cap_gstreamer.cpp:1698 open OpenCV | GStreamer warning: unable to start pipeline

❌ Sudo works without password after installing Howdy

Your PAM is failing silently and falling back to permit-all!

❌ Face recognition not working on Debian 13 / Ubuntu 24.04

The old Howdy package is incompatible with Python 3.10+

πŸ‘† If you're experiencing ANY of these β€” this patcher fixes them all!


πŸ€” What is Howdy?

Howdy provides Windows Helloβ„’ style facial authentication for Linux. It uses your IR camera to recognize your face and log you in β€” no password needed!

The Problem: The packaged version (v2.6.1) doesn't work on modern systems like Debian 13 "Trixie" or Ubuntu 24.04+ because:

  • It uses Python 2 syntax (ConfigParser) but modern systems only have Python 3 (configparser)
  • The PAM module crashes silently, making sudo work without ANY authentication
  • OpenCV defaults to GStreamer which doesn't work with many IR cameras

The Solution: This patcher automatically fixes all these issues in seconds.


πŸ”§ What Gets Fixed

Issue Before After
Python Module import ConfigParser (Python 2) import configparser (Python 3)
Camera Backend GStreamer (broken) V4L2 (works)
dlib Dependency Blocked by PEP 668 Installed with workaround

πŸš€ Installation

Quick Install

curl -fsSL https://raw.githubusercontent.com/blamairia/howdy-patcher/main/howdy-patcher.sh -o howdy-patcher.sh
chmod +x howdy-patcher.sh
sudo ./howdy-patcher.sh

From Source

git clone https://github.com/blamairia/howdy-patcher.git
cd howdy-patcher
sudo ./howdy-patcher.sh

πŸ“‹ Requirements

  • βœ… Howdy v2.6.1 installed (from .deb package, PPA, or gdebi)
  • βœ… Linux with Python 3.10+ (Debian 13, Ubuntu 24.04, Fedora 39+, etc.)
  • βœ… Root/sudo access
  • βœ… IR Camera (usually /dev/video2)

πŸ’» Supported Distributions

Distribution Version Status
Debian 13 "Trixie" βœ… Tested
Ubuntu 24.04 LTS βœ… Supported
Ubuntu 24.10+ βœ… Supported
Linux Mint 22+ βœ… Supported
Fedora 39+ βœ… Supported
Arch Linux Rolling ⚠️ Use AUR package instead

πŸ”„ After Patching

  1. Find your IR camera:

    v4l2-ctl --list-devices

    Look for "IR" in the name (usually /dev/video2)

  2. Configure Howdy:

    sudo howdy config

    Set device_path = /dev/video2 (your IR camera path)

  3. Add your face:

    sudo howdy add
  4. Test it:

    sudo howdy test   # Visual test with camera feed
    sudo -i           # Real authentication test

πŸ”™ Rollback

The patcher creates a timestamped backup. To restore:

# Find your backup
ls /lib/security/howdy-backup-*

# Restore it
sudo ./restore-howdy.sh /lib/security/howdy-backup-YYYYMMDD-HHMMSS

πŸ“ Manual Fixes

If you prefer to apply fixes manually:

Fix 1: Python 3 Compatibility (pam.py)

sudo sed -i 's/^import ConfigParser$/import configparser as ConfigParser/' /lib/security/howdy/pam.py

Fix 2: V4L2 Camera Backend (video_capture.py)

Edit /lib/security/howdy/recorders/video_capture.py:

# Change this:
self.internal = cv2.VideoCapture(
    self.config.get("video", "device_path")
)

# To this:
self.internal = cv2.VideoCapture(
    self.config.get("video", "device_path"), cv2.CAP_V4L2
)

Fix 3: Install dlib (PEP 668 bypass)

sudo pip3 install dlib --break-system-packages

This patcher was created to solve these open issues:


🀝 Contributing

Contributions welcome! Please open an issue or PR.

Found this helpful? ⭐ Star the repo!


πŸ“„ License

MIT License - see LICENSE file.


πŸ™ Credits

  • Howdy by boltgolt β€” The amazing Windows Helloβ„’ style facial authentication for Linux
  • This patcher was created after encountering these issues on Debian 13 "Trixie"

πŸ” SEO Keywords

howdy not working debian 13 Β· howdy ubuntu 24.04 fix Β· ModuleNotFoundError ConfigParser howdy Β· howdy pam.py error Β· howdy externally-managed-environment Β· howdy GStreamer error Β· howdy facial recognition linux fix Β· windows hello linux debian Β· face unlock ubuntu Β· howdy v4l2 Β· howdy python 3 Β· sudo no password howdy Β· howdy IR camera not working


Note: The dev branch of Howdy has been completely rewritten and includes these fixes natively. This patcher is specifically for users stuck on the packaged v2.6.1 version.

blamairia/howdy-patcher | GitHunt