标签: xbindkeys

如何正确地将键盘键映射到鼠标按钮?

问题摘要:我希望Super_LX11将我的鼠标按钮之一注册为 Windows 左按钮。


在我的窗口管理器中,我可以通过按住“Windows 左键”(Left Super)并用鼠标左键拖动窗口来移动窗口。我希望能够在不触摸键盘的情况下做到这一点,所以我想将左超级键映射到鼠标按钮 11,这样我就可以按住鼠标按钮 11 并单击+拖动窗口。

最明显的解决方案是像这样使用 xbindkeys 和 xte ( .xbindkeysrc):

"xte 'keydown Super_L'"
  b:11

"xte 'keyup Super_L'"
  b:11 + release
Run Code Online (Sandbox Code Playgroud)

这像这样工作:

  • 当我按下鼠标按钮 11 时,Super_L也被按下
  • 当我释放鼠标按钮 11 时,Super_L也被释放

但是有一个问题:如果我还按住另一个鼠标按钮(例如鼠标按钮 11),我将无法使用Super_L+移动窗口Mouse1。使用上面的解决方案,鼠标按钮 11 仍然被注册为按下和释放,因此没有窗口管理器操作工作。

我一直在使用这两种桂皮和真棒WM,并尝试这个绝对没有的的Super_L同时鼠标左键10或11键盘组合工作被按下。

一个低于标准的黑客

我目前正在通过使鼠标 11 单击按住Super_L按钮一段时间来解决此问题。这样我就可以点击鼠标按钮,然后在短时间内拖动东西:

"xte 'keydown Super_L' 'usleep 250000' 'keyup Super_L'"
  b:11
Run Code Online (Sandbox Code Playgroud)

另一种尝试

按照 totti 的建议,我尝试了以下xbindkeys配置:

"xte 'mouseup 10' 'keydown Super_L'" …
Run Code Online (Sandbox Code Playgroud)

linux mouse keyboard xorg xbindkeys

16
推荐指数
2
解决办法
1万
查看次数

xbindkeys 转义引号

如何在 .xbindkeysrc 命令中转义引号?这些都不起作用。

"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system ("pacmd "$1" "$2" "$3+2500)}'"

"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system ("pacmd "\$1" "\$2" "\$3+2500)}'"

"pacmd dump|awk --non-decimal-data '\$1~/set-sink-volume/{system (\"pacmd \"\$1\" \"\$2\" \"\$3+2500)}'"

"pacmd dump|awk --non-decimal-data '$1~/set-sink-volume/{system (\"pacmd \"$1\" \"$2\" \"$3+2500)}'"
Run Code Online (Sandbox Code Playgroud)

(这些命令会提高 PulseAudio 音量级别)

bash pulse-audio escape-characters xbindkeys

6
推荐指数
1
解决办法
855
查看次数

如何在 Linux 上滚动半页?

我正在寻找一种能够滚动半页的方法,最好使用组合键,如向上/向下移动页面。在 Windows 中,这可以通过 autohotkey 来实现,对于操作系统来说,似乎没有像我发现的那样简单的解决方案。

我只是切换到使用 Ubuntu 14.04(来自 win7)。通过谷歌搜索,在我看来,实现这一目标的最简单方法是创建几个 xdotool/xbindkeys 脚本,它们分别模拟半页的鼠标滚动或向上和向下箭头点击。然后我会将这些绑定到自定义热键。

然而,由于我刚刚切换到 Ubuntu,我意识到我可能会遗漏一些东西。因此我想知道,在 Linux 中启用半页滚动的首选方式是什么?

更新: 我创建了一个脚本,它模拟滚动鼠标滚轮几次:

#!/bin/bash
xdotool click 4
xdotool click 4
xdotool click 4
xdotool click 4
Run Code Online (Sandbox Code Playgroud)

它运行良好,但仍然存在两个问题:

  1. 它总是滚动鼠标所在的窗口。我试图让它滚动活动窗口,但没有运气。

  2. 由于它发送鼠标滚轮滚动,这些被其他程序解释,因此我无法将控制作为热键,因为它会缩放。这是所有热键都被理想化的程序中的一个问题,我想指定滚动距离而不模拟鼠标滚轮滚动。

linux scrolling ubuntu xbindkeys xdotools

4
推荐指数
1
解决办法
3612
查看次数

tmux:尝试绑定 utf8 键

我在 Fedora 17 i686 上使用带有 konsole 的 tmux 1.6。

我有一个 azerty 键盘(带有重音字符),我想绑定 'ù' 键。

我做了以下 ~/.tmux.conf:

setw -g utf8 on
bind-key ù split-window -h
Run Code Online (Sandbox Code Playgroud)

但是,当我运行 tmux 时,出现以下错误:

/home/glines/.tmux.conf: 2: unknown key: ù
Run Code Online (Sandbox Code Playgroud)

有没有办法绑定这个键?

对于您的帮助,提前致谢。

bind tmux utf-8 xbindkeys

3
推荐指数
1
解决办法
1848
查看次数

尝试在登录时启动进程,但没有 .xinitrc 文件可以使用

所以我安装并正确使用xbindkeys。问题是我每次启动系统时都必须手动启动这个过程。我在维基上阅读了更多内容,发现有一种方法可以用来自动启动这个过程 - 编辑~/.xinitrc. 因此,我进入该目录并没有找到这样的文件。然后我跳转到xinitrc wiki阅读有关此文件的更多信息。

显然,该文件显然是由startx/xinit运行以启动基本工作环境或桌面环境(如果已安装并在脚本中明确编码)的程序读取的脚本。从这个维基页面它读到:

在没有 ~/.xinitrc 的情况下,startx/xinit 默认解析全局文件 /etc/X11/xinit/xinitrc,它启动了一个带有 Twm 窗口管理器、Xclock 和 Xterm 的基本环境。

考虑到我已将其cinnamon安装为每次登录时启动的默认桌面环境,这似乎令人困惑- 但显然没有使用.xinitrc来指示这一点。除非我的显示经理在幕后开始使用肉桂,否则我不太确定这一切是如何运作的。

重点:我提出所有这些的原因是因为上面的第二个链接(方法)要求我编辑一个不存在的文件,但据说自我的桌面以来最后一个链接(本维基)需要相同的文件,非基本,在登录时启动。这里发生了什么?

linux xorg arch-linux xbindkeys

3
推荐指数
1
解决办法
2540
查看次数

如何自动启动 xbindkeys?

我在 Gnome 3 中使用 xbindkeys 来管理我的热键,但它没有守护进程,所以我将它添加到 .xinitrc。

~$ cat .xinitrc 
ck-launch-session gnome-session
nohup xbindkeys &
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这根本不起作用。每次启动时,我仍然必须手动启动 xbindkeys。我在这里做错了什么?

我的系统:

~$ uname -a
Linux [...] 3.0.28-1-lts #1 SMP PREEMPT Mon Apr 16 21:05:30 CEST 2012 x86_64 Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz GenuineIntel GNU/Linux
Run Code Online (Sandbox Code Playgroud)

linux arch-linux gnome3 xbindkeys

2
推荐指数
1
解决办法
1万
查看次数