在 12.04 (Unity) 中,我想为窗口的“始终在最前面”选项指定一个快捷方式。可能类似于Ctrl+ Shift+Home表示打开,Ctrl+ Shift+End表示关闭,或其他任何方式。Compiz 设置管理器中是否有选项可以执行此操作?
这(旧)邮政声称
对于 compiz,启用额外的 WM 操作。检查属性,然后在切换 Always-On-Top 操作的关键字段中插入ALT+ 。A
但我没能找到它。
答案1
它应该可以在 9.04 版及以后的每个 Ubuntu 操作系统上运行,无需安装任何东西、修改或创建任何快捷方式。
尝试Alt+ Space, T
Alt+Space 第一个快捷键会弹出鼠标右键菜单
T选择“始终在最前面”功能。
答案2
由于还没有人提到这一点,我只会留下一个在 Ubuntu 12.04 上对我有用的解决方案。
您可以设置常规键盘快捷键并使用控制端切换“始终在最前面”选项。
去 系统设置 > 键盘 > 快捷键 > 自定义快捷键。 打+并为你的快捷方式命名。然后输入以下命令。
wmctrl -r :ACTIVE: -b toggle,above
如果你还没有,你可以安装控制端从 repos 使用
sudo apt-get install wmctrl
您应该看到一些与此类似的东西。
点击“应用”,您就可以开始了!
答案3
我尝试使用wmctrl
命令 toggle,但它在我的 Ubuntu 设置上不起作用。toggle 可以打开,但不能关闭。(我想这可能是因为我使用的是 gnome 桌面环境,据我wmctrl
所知,它有点问题)。
无论如何,经过大量研究并研究如何在 bash 中编写正确的代码后,我创建了一个命令,该命令使用wmctrl
逻辑层内的命令在当前 GNOME 桌面上有效地切换“始终在最上面”状态。我在 Ask Unix/Linux 上发布了这个答案,但我想也在这里发布它,以防有人遇到同样的问题。
命令如下:
bash -c 'wmctrl -r :ACTIVE: -b $([[ $(xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") _NET_WM_STATE) =~ "ABOVE" ]] && echo "remove" || echo "add"),above'
它使用 检查活动窗口状态属性“_NET_WM_STATE” xprops
,如果它包含文本“ABOVE”,则表示“始终在最上面”选项处于活动状态。然后它只需根据需要wmctrl
使用参数add
或运行命令即可。remove
命令分解(每个命令插入到下一个命令中,替换■
占位符):
获取活动窗口 ID:
xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"
xprop
使用 id获取窗口状态:xprop -id $(■) _NET_WM_STATE
检查状态是否包含“ABOVE”,表示窗口设置为“始终在顶部”:
[[ $(■) =~ "ABOVE" ]]
如果为真,则返回“remove”,否则返回“add”:
■ && echo "remove" || echo "add"
wmctrl
使用返回值作为参数运行命令:wmctrl -r :ACTIVE: -b $(■),above
将整个内容发送到,
bash
以便您可以使用命令替换${ ... }
、bash 布尔评估[[ ... ]]
和正则表达式匹配运算符=~
:bash -c '■'
尤其是最后一步,我花了很长时间才弄清楚。直到我意识到默认情况下键盘快捷键不会在 bash 中运行,我才明白为什么我在测试命令时在控制台中运行正常,但直接作为键盘快捷键运行时却默默失败。这让我很困惑!
注意:因为您需要在发送给 bash 的命令周围加上引号,所以我在编写命令时必须小心谨慎,不要超过一层(使用双引号)。如果在引号中进一步嵌套字符串,则需要使用大量令人困惑的反斜杠来转义引号。
进一步详细说明:如何创建键盘快捷键(感谢@rajesh_chaurasiya)
sudo apt-get install wmctrl
如果你还没有安装 wmctrl,请使用进入系统设置 > 键盘快捷键。点击
+
按钮添加自定义快捷键。选择一个名称,例如“切换始终在顶部”(可以是任何您喜欢的名称)。
在命令字段中添加此答案顶部的完整命令。
记录按键绑定以完成快捷方式。
答案4
我认为另一个更好的解决方案是添加Alt
+A
作为快捷方式来切换窗口的“始终在最前面”属性。这可以通过以下方式完成gconf-编辑器。只需按照这个视频。
编辑 : 摘自视频
如果你使用的是 12.04 && 12.10,你必须安装 gconf-editor
sudo apt-get install gconf-editor
gconf-editor
在终端中输入。点击应用程序
前往 metacity
窗口键绑定
在右侧框内单击鼠标右键,然后单击
new key
string
从下拉列表中选择。添加单词
toggle_above
写下你想要的任何命令。例如:A,然后按 OK
完毕 :-)