我正在尝试使用 shell 命令和 banshee --query-title 和 --query-artist 命令将歌曲信息(艺术家 - 标题)复制到 xbindkeys 中的剪贴板。
首先我打开 xbindkeys
$ xbindkeys-config
我将它们设置如下:
Name: Copy Song
Key: Control+Mod2 + apostrophe | m:0x14 + c:49
Action: artist=$(banshee --query-artist);title=$(banshee --query-title);echo ${artist:7} - ${title:7} | xsel
但这存在两个问题。
第一个问题,当我执行它说的操作时sh: 1: Bad substitution
,我在终端中测试这个命令并且它运行良好,但是当我在 xbindkeys 中运行它时它却不运行。
如果我将其改为
Action: artist=$(banshee --query-artist);title=$(banshee --query-title);echo $artist- $title | xsel
它工作正常,除了它没有剥离字符串中不需要的部分,而是The Beatles - I Want To Tell You
我得到的:artist: The Beatles - title: I Want To Tell You
第二个问题它不会像预期的那样复制到剪贴板(ctrl + v),而是复制到鼠标中键剪贴板(这很烦人),我尝试使用xclip
但结果是一样的。
如何解决这两个问题?
答案1
设法解决这两个问题。
为了剪贴板问题,我安装了 ClipIt sudo apt-get install clipip
,并在偏好设置中已检查 使用 ctrl+c和未选中使用主要(选择)
问题在于shell 命令没有正确获取子字符串我改用sed
:
artist=$(banshee --query-artist);title=$(banshee --query-title);echo $artist - $title | sed -e "s/title: //g" | sed -e "s/artist: //g" | xsel
这可能很糟糕,但是却有效。
如果有人有更优雅的版本,请随时发布。