覆盖系统范围的快捷方式,以用于特定于应用程序的快捷方式


11

有没有办法赋予应用程序中定义的键盘快捷方式优先于具有相同按键绑定的系统范围的快捷方式?

所需的行为:某些键被按下,检查聚焦应用程序想要做什么(如果有的话,这样做)。如果不是,请检查某些键是否存在系统快捷方式,然后执行此操作。

当前发生的情况: 我已F11在键盘快捷键的设置菜单中将其设置为“切换全屏”。在Chrome中,F11应激活Chrome自己的全屏模式,但会被系统范围的快捷方式覆盖,即Chrome变为全屏(GNOME面板和标题栏消失),但不进入Chrome的全屏模式(选项卡,地址栏和书签栏也会消失)。

(附带说明:Firefox没有相同的问题,但这似乎是因为FF全屏与窗口管理器全屏触发相同/由其触发)


我想到的第一个问题是:与OS有关按键,应用程序或X / Wayland的话题是什么?在我看来,X将处理按键,并在需要时对其进行处理,然后再将其传递到应用程序正在等待您的窗口。第二个问题是X如何知道应用程序是否已更改状态,以及如何知道是否由于按键而直接发生了更改?我倾向于四肢走动,说你对此不走运。
HellionWisp

Answers:


2

免责声明:这并不是您想要的,但是我花了很多时间在此上不张贴它,也许其他人可以使用它。

我知道Ctrl + F11可以全屏显示,但Chromium却是Chromium的全屏显示!

  1. 思路

我以为如果我使用xdotool并将命令直接发送到Chrome窗口,可能会欺骗窗口管理器-无济于事。

然后,我想我也许可以在Google Chrome中更改键盘快捷键,但这似乎是硬编码的-另一个死角。

  1. 这给我们留下了

安装xdotool以模拟键盘按键

sudo apt-get install xdotool

将Ubuntu Keyboard快捷方式重新配置为任意类型,我们从不键入但可以在脚本中使用

设置 -> 设备 -> 键盘

向下滚动并将全屏模式切换Ctrl + Alt + 1,然后点击+并添加自定义键盘快捷键

键盘快捷键-全屏

然后点击+并添加自定义键盘快捷键

自定义快捷方式对话框

编辑脚本

nano /home/user/fullscreen.sh


#!/bin/bash
export DISPLAY=:0
windowname=$(xdotool getactivewindow getwindowname | cut -d "-" -f 2)
if [[ $windowname != *"Chromium"* ]]
then
xdotool keydown Ctrl keydown Alt key 1 keyup Alt keyup Ctrl
else
xdotool search --onlyvisible --class "Chromium" windowfocus 
sleep 0.2
xdotool key F11
fi

使它可执行

chmod +x /home/user/fullscreen.sh

  1. 结论

似乎不可能欺骗窗口管理器和走私键,但是肯定有解决方法。在这种情况下,Google将全屏键盘快捷键设为不可配置,因此与标记相差甚远

现在,使用Ctrl + F11,窗口管理器可以控制全屏行为(铬除外)。


1
认为您是对的,这是我们所希望的最好的-遗憾的是Chrome / ium不支持自定义键盘快捷键。值得注意的是:选择键盘快捷键对于这个技巧很重要!我已经将Ctrl + F11绑定到其他东西。尝试使用Shift + Alt + F11组合键,该按钮不起作用。Alt + F11正常工作。(我想这是试图做SHIFT + CTRL + ALT + F11)
弗雷德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.