尝试编写一个可以使用滚动锁定切换的bash脚本并替换按键

时间:2014-06-20 03:15:44

标签: bash autohotkey

基本上我试图重现我在windows for linux中使用的this autohotkey脚本。我使qwerty键盘像dvorak一样,除非按下Alt,Control或Windows键,我还希望能够启用或禁用此功能,如果启用或禁用滚动锁定。可以这样做吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此脚本:

#!/bin/bash
caps="$(xset -q | grep Caps | sed -E "s/ //g;s/[0-9]*//g" | cut -d ":" -f 3)"
lang="us"
setxkbmap us
while true; do
  newCaps="$(xset -q | grep Caps | sed -E "s/ //g;s/[0-9]*//g" | cut -d ":" -f 3)"
  if [ "$caps" != "$newCaps" ]; then
    caps="$newCaps"
    if [ "$lang" == "us" ]; then
      setxkbmap dvorak
      lang="dvorak"
    else
      setxkbmap us
      lang="us"
    fi
  fi
done

似乎只有在按下xset后按下某个其他键时,此Caps Lock才会捕获Caps Lock的新状态。