sxhkd - Arch Linux 中文维基

跳至內容

# sxhkd

出自 Arch Linux 中文维基

相關文章

- Xbindkeys
- Xmodmap

翻譯狀態：

- 本文（或部分內容）譯自 Sxhkd，最近一次同步於 2024-7-3，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

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

## 安裝

安裝 sxhkd包 或 sxhkd-gitAUR。

## 配置

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

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

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

通用語法：

    [MODIFIER + ]*[@]KEYSYM
        COMMAND

其中 `MODIFIER` 是以下名稱之一： `super`、`hyper`、`meta`、`alt`、`control`、`ctrl`、`shift`、`mode_switch`、`lock`、`mod1`、`mod2`、`mod3`、`mod4`、`mod5`。如果在 keysym 的開頭添加了 `@`，命令將在按鍵釋放事件中運行，否則將在按鍵按下事件中運行。`KEYSYM`名稱是從`xev`中獲取的。

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

實際執行的是 `SHELL -c COMMAND`，這意味著可以在 `COMMAND` 中使用環境變量。`SHELL`將是以下列表中第一個定義的環境變量的內容： `SXHKD_SHELL`、`SHELL`。如果 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

## 參見

- 官方網站 - 包括配置選項、綁定示例和原始碼。
- Arch Linux forum thread

分類：​

- 鍵盤配置
- X 伺服器

隱藏分類：​

- 使用「模板:糟糕的翻譯」標記的頁面或章節

sxhkd
新增話題