如何在 xbindkeys 中将各种命令分配给鼠标按钮(与时间相关)?

如何在 xbindkeys 中将各种命令分配给鼠标按钮(与时间相关)?

当我按住鼠标键时,我需要执行不同的命令。

我一直在寻找 Linux 中 XMBC 的替代品,我曾经使用过 xbindkeys,但我从旧配置中错过的是执行分配给按钮的各种命令,每个命令都有不同的延迟。我在中找到了脚本xbindkeys 双击有用,但那些并没有实现我的目标。然后我的选择是使用 bash 或使用 bash 我选择使用 bash 我在下面留下了我的答案。

欢迎更多解答

答案1

这是我的回答,我上传到回购协议但这是一个小脚本,其中包含了发布时间和发布时间之间的差异。我刚才注意到还有改进的空间,但现在是睡觉时间了,如果它对任何人有用,那么现在就让我来吧。

#!/bin/bash
# hold_n_release.sh

BASE="`dirname "$(readlink -f "$0")"`"
BUTTON=$1
DELAY=$2
PROGS=$BASE/hold_n_release.$BUTTON.commands
LOCK=$BASE/tmp/hold_n_release.$BUTTON.lock
LINES=$(wc -l < $PROGS)

if [ -z "$BUTTON" -o -z "$DELAY" -o ! -f $PROGS ]; then
  echo "Usage : hold_n_release <Button> <Delay (sec)> [release]"
  echo "put the commands on a file named $BASE/hold_n_release.<Button>.commands one per line" 
  exit
fi
EPOCH=$(date +'%s')

if [[ "$3" == "release" &&  -e $LOCK ]] ; then
  LASTTIME=`cat $LOCK`
  CHOICE=$(( (EPOCH - LASTTIME) / DELAY + 1 )) 
  # echo $CHOICE
  if [ $CHOICE -le $LINES ]; then
    exec $(sed  -n "$CHOICE{p;q}" $PROGS) &
  fi
else 
  rm -f $LOCK
  echo  "$EPOCH" > $LOCK; 
fi

它需要一个文件,其中每个命令都位于一行中,如下例所示,它是预期的最后一行。

xdotool ctr+c
copyq menu

然后按照以下形式在 xbindkeysrc 中简单使用

#Multicommand hold
"hold_n_release.sh 8 1"
  b:8
#Multicommand release
"hold_n_release.sh 8 1 release"
  b:8 + Release

编辑:Github 用户名

相关内容