在Arch Based的Linux上使用Howdy臉部辨識
前言 howdy是Linux上功能類似於windows hello的軟體 我的環境是EndeavourOS搭配hyprland與end4-dots的設定檔 本篇會講解如何安裝Howdy與設定它 安裝howdy 使用yay或是paru等工具安裝howdy-gitAUR yay -S howdy-git 過程中如果在安裝python-dlibAUR時報錯 可以手動安裝python-dlib-gitAUR並再次安裝howdy-git yay -S python-dlib-git yay -S howdy-git 同時安裝v4l-utils包以供後續設定使用 sudo pacman -S v4l-utils 配置 確認紅外線鏡頭 使用以下指令列出所有鏡頭 ls -l /dev/v4l/by-path 可能會列出好幾個不同設備 像我的是這樣子 可以透過ffplay -f v4l2 -i /dev/v4l/by-path/PATH來一個一個確認 例: ffplay -f v4l2 -i /dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.2-video-index0 正確的那個會使紅外線鏡頭亮起 並且在畫面上會出現一個黑白的鏡頭畫面 設定howdy使用的鏡頭 找到正確的設備之後就可以開始設定howdy了 使用sudo howdy config進行設定 可以將detection_notice設定為true使開始辨識時顯示通知 找到device_path並填入剛剛找到的路徑,例如: device_path = /dev/v4l/by-path/pci-0000:00:14.0-usb-0:5:1.2-video-index0 測試並加入臉部數據 設定好後,使用sudo howdy test可以測試配置是否正確,如果有遇到像是這樣的報錯 qt.qpa.xcb: could not connect to display :1 qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin. qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. 可以嘗試改成使用sudo -E howdy test來測試 ...
為end-4/dots-hyprland設定howdy解鎖鎖定畫面
前言 End-4/dots-hyprland是一個hyprland配置 目前最新版本也叫做illogical-impulseQuickshell 以下都簡稱為end-4 這篇是在講如何讓end-4 quickshell的screen locker可以跟hyprlock一樣可使用howdy而不影響到sddm 設定pam檔案 修改/etc/pam.d/hyprlock檔案,或者是在/etc/pam.d額外新增一個配置檔案 直接修改hyprlock檔案可以同時讓hyprlock使用howdy 在最上方新增howdy的驗證方法 auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient /lib/security/pam_howdy.so 上面那行是為了當臉部辨識失敗之後可以手動輸入密碼解鎖用 你的整份檔案應該會像這樣 # PAM configuration file for hyprlock # the 'login' configuration file (see /etc/pam.d/login) auth sufficient pam_unix.so try_first_pass likeauth nullok auth sufficient /lib/security/pam_howdy.so 修改end4-dots的quickshell設定檔 end-4的quickshell預設是使用/etc/pam.d/login而不是/etc/pam.d/hyprlock作為驗證方法 所以要修改~/.config/quickshell/ii/modules/common/panels/lock/LockContext.qml檔案 在檔案末尾找到PamContext區塊(有兩個) 在id: pam與id: fingerPam底下都新增一行config: "hyprlock" 註釋(或刪除)id:fingerPam底下的 configDirectory: "pam"與 config: "fprintd.conf"兩行 你的檔案應該會長的像是: ...... PamContext { id: pam config: "hyprlock" //新增這行 OnPamMessage:{ ...... } ...... } PamContext { id: fingerPam config: "hyprlock" //新增這行 //configDirectory: "pam" //config: "fprintd.conf" OnCompleted: result =>{ ...... } ...... } 缺點是當更新end-4/dots時便會被覆蓋 需要更新後再次手動修改 ...
First Content
Hello World Hello World