Linux

從 Linux 控制台檢測 zsh 中的密鑰狀態

  • November 17, 2018

zsh 可以在沒有依賴圖形會話的工具的情況下檢測關鍵狀態嗎?

我已經將 getty@tty1 服務覆蓋為自動登錄,並zlogin執行搖擺。當通過取消設置按住 shift 鍵時,我想阻止執行圖形界面rcs。是否有類似於 grub 的keystatus的東西?

終端不傳輸此資訊。您需要呼叫特定於 Linux 控制台的外部實用程序(或編寫 zsh 可載入模組)。它需要呼叫Linux 控制台 ioctl之一,專門TIOCLINUX用於獲取轉換狀態。與鍵盤相關的實用程序在kbd中,但我認為沒有報告修飾符狀態的實用程序。

您可以在 Stack Overflow 上的類似問題中找到此類實用程序的程式碼。

如果您不想依賴額外的實用程序,kbd 包包括kbdinfo可以報告 LED 狀態的工具。

# Start X if Caps Lock is on
if kbdinfo gkbled capslock; then
 setleds -D -caps
 exec startx
fi

引用自:https://unix.stackexchange.com/questions/482355