出自 Arch Linux 中文维基

sxhkd是一個簡單的 X 熱鍵守護進程,由 bspwm 的開發者設計,能通過執行命令對輸入事件做出反應。

安裝

安裝 sxhkdsxhkd-gitAUR

配置

sxhkd 默認使用 $XDG_CONFIG_HOME/sxhkd/sxhkdrc 作為配置文件。可以使用 -c 選項指定其他配置文件。

配置文件中的每一行都是這樣解釋的:

  • 如果以 # 開頭,則會被忽略。
  • 如果以一個或多個空白命令開頭,則作為命令讀取。
  • 否則,將作為熱鍵進行解析:每個鍵名之間用空格和/或 + 字符分隔。

通用語法:

[MODIFIER + ]*[@]KEYSYM
    COMMAND

其中 MODIFIER 是以下名稱之一: superhypermetaaltcontrolctrlshiftmode_switchlockmod1mod2mod3mod4mod5。如果在 keysym 的開頭添加了 @,命令將在按鍵釋放事件中運行,否則將在按鍵按下事件中運行。KEYSYM名稱是從xev中獲取的。

滑鼠熱鍵可通過使用以下特殊 keysym 名稱之一來定義: button1button2button3、...、button24。熱鍵可以包含STRING_1, ...,STRING_N} 形式的序列,在這種情況下,命令還必須包含一個包含N元素的序列:兩個序列配對生成N熱鍵。如果命令中包含大括號({, }),例如:awk '{print $1}' ,請使用反斜線 \ 來轉義,例如:awk '\{print$1/}'。此外,序列可以包含 A-Z 形式的範圍,其中AZ是字母數字字符。

實際執行的是 SHELL -c COMMAND,這意味著可以在 COMMAND 中使用環境變量。SHELL將是以下列表中第一個定義的環境變量的內容: SXHKD_SHELLSHELL。如果 sxhkd 收到 SIGUSR1 信號,它將重新加載配置文件。

例子

$XDG_CONFIG_HOME/sxhkd/sxhkdrc
# On mouse button 1 press Alt_R+F1
button1
    xte "keydown Alt_R" "keydown F1" "keyup Alt_R" "keyup F1"

# 按下滑鼠 button 2,暫停 3 秒,然後按 Alt_R+F2 button2
    xte "sleep 3" "keydown Alt_R" "keydown F2" "keyup Alt_R" "keyup F2"

將命令綁定到一個按鍵上

這篇文章或章節的翻譯不反映原文。

原因:表述與翻譯存在問題。(在 Talk:Sxhkd# 中討論)

有些用戶可能希望將命令綁定到單個按鍵上,就像在 Windows 中使用 Super 鍵打開"開始"菜單一樣。在 sxhkd 中,這可以通過綁定到由單個 keysym 的按鍵按下和按鍵釋放事件組成的 chord chain 來實現,如下所示:

$XDG_CONFIG_HOME/sxhkd/sxhkdrc
# Program launcher
Super_L; @Super_L
    rofi -show drun

這種複雜的模式是必要的,因為如果沒有明確的 chord chain(即單一的 @Super_L),sxhkd 將在 "任何 "釋放按鍵時觸發綁定,即使該按鍵被用於另一個 chord chain。此外,由於 sxhkd 不支持在修飾符中使用 @ 符號(表示按鍵釋放),因此必須使用按鍵符號來代替修飾符(Super_L 而不是 super)。

用法

配置完成後,您可能希望將 sxhkd 設置為自動啟動;有關詳情,請參閱桌面環境或窗口管理器的相應文章。

如果您的桌面環境支持Desktop Application Autostart Specification,則可以通過在恰當目錄下創建 sxhkd.desktop 文件以啟動 sxhkd:

~/.config/autostart/sxhkd.desktop
[Desktop Entry]
Name=sxhkd
Comment=Simple X hotkey daemon
Exec=/usr/bin/sxhkd
Terminal=false
Type=Application

參見