一个晴朗的早晨,我发现 Firefox 中用于创建新选项卡的 Ctrl+T 快捷键不再起作用。使用 Ctrl+Shft+T 恢复已关闭的选项卡的情况也是如此。在安全模式下打开 Firefox 并重新安装 Firefox 后,我注意到行为没有改变。
但是对于终端来说,问题是一样的,Ctrl+Shft+T 必须创建一个新选项卡,现在不再起作用了。我认为这是某种系统范围内的快捷键冲突,或者某些应用程序配置错误。我无法找出确切的原因。
请帮助调试并解决此问题。谢谢。
有关我的系统的一些信息
rahul@rahul-lap:$ uname -a
Linux rahul-lap 5.3.0-29-generic #31-Ubuntu SMP Fri Jan 17 17:27:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
rahul@rahul-lap:$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
rahul@rahul-lap:$ cat /etc/os-release
NAME="Ubuntu"
VERSION="19.10 (Eoan Ermine)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.10"
VERSION_ID="19.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=eoan
UBUNTU_CODENAME=eoan
rahul@rahul-lap:$ setxkbmap -query
rules: evdev
model: pc105
layout: us,us
variant: ,
答案1
我遇到了类似的问题。虽然这不一定能解决您的问题,但此评论不适合放在评论部分,无论如何可能都会有所帮助。
运行 xev 并按 Ctrl-T 显示以下内容:
KeyPress event, serial 40, synthetic NO, window 0x9e00001,
root 0x160, subw 0x0, time 3445511468, (-677,97), root:(1251,126),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 40, synthetic NO, window 0x9e00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 40, synthetic NO, window 0x9e00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 40, synthetic NO, window 0x0,
keys: 2 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyRelease event, serial 40, synthetic NO, window 0x9e00001,
root 0x160, subw 0x0, time 3445521451, (-677,97), root:(1251,126),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
它应该显示另一个 KeyPress 事件,而不是 FocusOut。就我而言,我刚刚安装并运行了 qstardict,它显然使用 Ctrl-T 来做某事。退出应用程序可修复所有应用程序中的 Ctrl-T 问题。
现在,只是为了完成,如果您怀疑不同的进程可能正在处理 Ctrl-T,这里有一种简单的方法可以继续:
退出尽可能多的正在运行的应用程序。还有其他选项,但您可以使用 perf 来获取所有正在运行的后台进程的列表。(使用sudo apt-get install linux-perf
安装。)运行sudo perf record -e context-switches -a sleep 2
并在 2 秒内按下 Ctrl-T。然后您可以执行sudo perf script | awk '{print $1}' | sort -n | uniq > running_bg_processes_1
。然后执行另一个 perf 记录(不按 Ctrl-T)和另一个 perf 脚本管道传输到另一个文件。然后查看文件之间的差异。您可能需要多次执行此操作。如果每次都看到差异,那么该进程可能就是您的候选进程。如果您没有看到任何一致的差异,则列出的进程中至少有一个是罪魁祸首,因此您可以从那里进一步缩小范围。例如,您可以 strace 所有剩余进程,看看在按下 Ctrl-T 之后是否有活动。
答案2
我发现的一个临时解决方法是运行
dconf reset -f /org/gnome/
但是,如果有人能够正确指导调试可能发生的情况,我们将不胜感激。
答案3
我遇到过类似的问题,解决方案出乎意料。我仔细检查了一下我的键盘。前一天我女儿坐在键盘前吃饼干。我发现 4 号键被面包屑堵住了。我把面包屑拿走了。耶,它成功了 :) 是的,这是一个真实的故事 ;)