#1135·howdy

[Guide] Installation for Fedora 44

Author: GiorgioUrbaniCreated Aug 2, 2026Updated Aug 14, 2026

As the newest Fedora release is missing the pre-compiled RPM packages required to run this project and the referenced COPR repository is abandoned, I've put together a quick guide on installing Howdy and its dependencies from sources.

Install the available required packages:

sudo dnf install --setopt=install_weak_deps=False git curl meson bzip2 python3-devel make cmake gcc-c++ pam-devel inih-devel opencv opencv-devel python3-opencv python3-pip redhat-rpm-config

Clone the master branch and build&install:

bash
git clone https://github.com/boltgolt/howdy
cd howdy
meson setup build
meson compile -C build
sudo meson install -C build

Compile missing libraries via pip and downloading facial recognition models:

bash
sudo pip install dlib elevate --break-system-packages
sudo mkdir -p /usr/local/share/dlib-data
sudo curl -Lo /usr/local/share/dlib-data/shape_predictor_5_face_landmarks.dat.bz2 http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2
sudo curl -Lo /usr/local/share/dlib-data/dlib_face_recognition_resnet_model_v1.dat.bz2 http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2
sudo bzip2 -d /usr/local/share/dlib-data/shape_predictor_5_face_landmarks.dat.bz2
sudo bzip2 -d /usr/local/share/dlib-data/dlib_face_recognition_resnet_model_v1.dat.bz2

Copy and link files to the global directory:

bash
sudo ln -sf /usr/local/lib64/security/pam_howdy.so /usr/lib64/security/pam_howdy.so
sudo cp -r /usr/local/lib64/python3.14/site-packages/dlib* /usr/lib64/python3.14/site-packages/
sudo cp -r /usr/local/lib64/python3.14/site-packages/_dlib* /usr/lib64/python3.14/site-packages/
sudo restorecon -Rv /usr/lib64/python3.14/site-packages/dlib*
sudo restorecon -Rv /usr/lib64/python3.14/site-packages/_dlib*

Optional cleanup:

bash
rm -rf ~/howdy
sudo rm -rf /usr/local/lib64/python3.14/site-packages/dlib* /usr/local/lib64/python3.14/site-packages/_dlib*

Optional adding a launcher for Howdy:

sudo nano /usr/local/lib64/howdy-gtk/init.py Add after import sys in the line below:

from gi.repository import GLib
GLib.set_prgname('howdy-gtk')

Ctrl+o Ctrl+x

nano ~/.local/share/applications/howdy-gtk.desktop Put:

[Desktop Entry]
Type=Application
Icon=/usr/local/share/howdy-gtk/logo.png
Name=Howdy
Comment=Windows Hello style authentication for Linux
Categories=Settings
Exec=sh -c "xhost +SI:localuser:root && pkexec env DISPLAY=$DISPLAY GDK_BACKEND=x11 PATH=/usr/local/bin:/usr/bin:/bin SUDO_USER=$USER /usr/local/bin/howdy-gtk"
Terminal=false
StartupNotify=false
StartupWMClass=howdy-gtk

Ctrl+o Ctrl+x

Configure and test Howdy:

sudo howdy config Edit device_path Typically device_path = /dev/video2, but check the docs if it doesn't work. Ctrl+o Ctrl+x

sudo howdy test If IR emitter doesn't work: Download latest beta: https://github.com/EmixamPP/linux-enable-ir-emitter/releases Installing and configuration: https://github.com/EmixamPP/linux-enable-ir-emitter/blob/master/README.md

If work:

Enable Howdy in PAM for sudo, polkit and GDM (if used):

sudo cp /usr/lib/pam.d/polkit-1 /etc/pam.d/polkit-1

Add auth sufficient pam_howdy.so to the top of these files:

bash
sudo nano /etc/pam.d/polkit-1
sudo nano /etc/pam.d/sudo
sudo nano /etc/pam.d/gdm-password (below firs line in this case!)

Ctrl+o Ctrl+x

Remember: If you set up IR emitter enabler add its trigger before Howdy. For example:

auth	optional	pam_exec.so /usr/local/bin/linux-enable-ir-emitter run --config <CONFIG_PATH>
auth	sufficient	pam_howdy.so

Add a face:

You can add a face using the GUI tool (either by opening the launcher we just created or by running sudo howdy-gtk), or you can stick to the command line by running: sudo howdy add

Once your face is added, everything should work smoothly. Well, it should, but it won't, because we're on Fedora SELinux will block Howdy on the login screen, so we need to create and apply a custom SELinux policy. Log out and log it and run: sudo ausearch -m AVC -ts recent | audit2allow -M howdy_login Apply: sudo semodule -i howdy_login.pp

That's all! Your Howdy setup should work perfectly now. At least until it breaks.