我正在我的电脑上工作,试图编写一些设备代码。我检查了 dmesg 以获取一些信息,并看到了:
perf interrupt took too long (2507 > 2500), lowering kernel.perf_event_max_sample_rate to 50000
Run Code Online (Sandbox Code Playgroud)
这个事件是什么意思?原因?忧虑?
我是一名 Rails 开发人员,在 Ubuntu Server 10.04 上开发 Web 应用程序。由于内部要求,我被要求查找最近 10 次系统启动和关闭时间...我不知道在哪里可以找到这些详细信息。有人可以帮我吗?
我想知道Fn我的笔记本电脑中的按键是如何工作的。我认为存在一个内核模块来捕获Fn密钥并调用一些脚本来做某事。在我的笔记本电脑中,Fn+F2无线和蓝牙的开关电源。
这是acpi_listen
, 当我按Fn+时的输出F2
hotkey ATKD 0000005d 00000019
hotkey ATKD 0000007e 00000009
Run Code Online (Sandbox Code Playgroud)
并且,以下是xev
for Fn+ 的输出F2
keycode 238 press
keycode 238 release
keycode 237 press
keycode 237 release
Run Code Online (Sandbox Code Playgroud)
我想每当我按下Fn+F2两个事件都会跳出。我试图找出为这些键执行了哪些操作。任何想法表示赞赏;)
我的笔记本电脑(使用 12.04 LTS)使用 HDMI 连接显示器进行双屏设置。一切正常,但每次连接/断开电缆时,我都必须转到“声音”首选项并手动更改声音输出设备。
有什么方法可以在连接/断开电缆时更改声音输出设备,所以当我连接显示器时,声音输出设置为 HDMI,当我断开连接时,声音又回到笔记本电脑扬声器?
是否有可用于 Upstart 的可用事件列表?
例如start on local-filesystems
,本地文件系统是一个事件,但它何时触发以及还有哪些其他事件?
usr/local/bin/
当我将外部显示器连接到我的笔记本电脑时,我正在尝试运行位于 中的脚本。我试图添加一条新udev
规则,但没有奏效。我在/etc/udev/rules.d
名为vga-monitor-connect.rules
. 该文件的内容是
SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/panel-fix"
Run Code Online (Sandbox Code Playgroud)
我从这个答案中得到了这条线
在网上搜索后,我也尝试了以下规则
KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/rumesh/.Xauthority", RUN+="/usr/local/bin/panel-fix"
Run Code Online (Sandbox Code Playgroud)
然而这也不起作用。
我已经手动运行了脚本,我可以确认它可以工作,所以我的脚本没有问题。
我也想说清楚,我知道的不多,udev
所以我使用的规则可能是错误的。如果有人知道我的问题的正确规则,请留下答案。
我的显卡是Intel GM965集成芯片组
我试图找到一种方法来检测在 Ubuntu 16.04 中打开的窗口(任何窗口)的事件
我希望能够检测到“窗口打开”事件并检查打开的窗口是否是我想要的窗口,然后运行 bash 脚本或 C/C++ 函数。
到目前为止,我发现我可以使用它wmctrl -l
来查找已经打开的窗口。我可以使用这个命令,也许grep
可以找到我寻找的窗口是否打开,然后根据这些信息采取行动。
我不想轮询,因为我不希望应用程序在窗口打开时处于空闲状态。动作应该尽可能“即时”。
是否有我可以监听的事件或信号来实现这一目标?从内核、窗口管理器 (Compiz) 或某些更改的日志文件?
编辑: 澄清一下,我有一个应用程序(不在我的控制之下)它可能随时显示一个窗口,这个窗口没有标题但它确实设置了 WM_CLASS(WM_CLASS 对于应用程序的所有窗口都是相同的)。我想根据显示(或创建)该窗口的事件采取行动,以最好/更容易的为准。
该窗口似乎不是在主应用程序窗口“内”打开的。使用xwininfo -children -id <window-id>
显示主应用程序和搜索窗口位于不同的分支上,连接到“根窗口”。
分支看起来像这样,其中 R 是“根节点”;A 是主应用程序分支的根节点,Y 是具有搜索窗口 W 的分支的根节点:
R
/ \
A Y
/\ \
B C X
\ \
Q W
Run Code Online (Sandbox Code Playgroud)
所以我希望我能找到 YXW 的独特结构
我不确定我是否必须听所有窗口,但我假设我必须检查“根窗口”中发生的情况并尝试找到寻找的窗口。
我试着写一个这样的建议的脚本:
我创建了一个目录和一个新的脚本文件:
mkdir /etc/acpi/local
gksudo gedit /etc/acpi/local/lid.sh.post
Run Code Online (Sandbox Code Playgroud)
/etc/acpi/local/lid.sh.post
包含以下代码的文件:
#!/bin/sh
#########################################################################
## Script written by Ruben Barkow ##
## https://gist.githubusercontent.com/rubo77/1a3320fda5a47fdebde7/raw/87cde3f0554467a132aba3cda7ad3c5e7187571f/lid.sh.post
## Description: This script reacts if laptop lid is opened or ##
## closed in Ubuntu 11.10 (Oneiric Ocelot). ##
## ##
## This script can be freely redistributed, modified and used. ##
## Any redistribution must include the information of authors. ##
## ##
## THIS SCRIPT HAS NO WARRANTY! ##
#########################################################################
grep -q close /proc/acpi/button/lid/*/state
if [ …
Run Code Online (Sandbox Code Playgroud) 我正面临一个非常奇怪的问题。突然间,我的浏览器开始无限刷新。我的第一个猜测是 Firefox 搞砸了。我安装了铬。但是,它也发生在 chrome 中。
除此之外,有时我的主文件夹会自动打开并无限打开。我的下一个猜测是鼠标有问题。更换鼠标 - 但同样的事情。
即使我卸下键盘,也会发生这种情况。
原因是什么?这在我几天前安装 Ubuntu 10.10 后开始发生。早些时候在 Windows 上,一切正常。所以,我有点怀疑这是硬件故障。
如何解决这个问题?
更新:
xev 给出了这样的结果:
KeyPress 事件,serial 36,合成 NO,窗口 0x4200001,root 0xb8,subw 0x0,时间 29897358,(237,791),root:(1252,842),状态 0x10,keycode 65(keysym 0x20,YES 字符串,相同的空间) 1 个字节: (20) " " XmbLookupString 给出 1 个字节: (20) " " XFilterEvent 返回:False
KeyRelease 事件,serial 36,合成 NO,window 0x4200001,root 0xb8,subw 0x0,时间 29897603,(237,791),root:(1252,842),状态 0x10,keycode 65 (keysym 0x20,same_XLookscreen 给出 YES 空间) 1 个字节: (20) " " XFilterEvent 返回:False
今天很奇怪的问题。我打算发布一个关于另一个问题的帖子,并想截取终端窗口的屏幕截图。我准备好了一切,点击Alt+ Printscreen,什么也没发生。
我进入了键盘快捷键,看看重新定义快捷键是否有效。它做了。我试图将它设置回Alt+Printscreen但窗口只是坐在那里听按键。就好像我从未按下过钥匙一样。
无论是Alt和Printscreen按键独立工作就好了......我也试着看的输出xev
,我按下键。它会听到 Alt 按下但之后没有听到 Printscreen。
我已经在 Compiz 和普通的 metacity 中尝试过这个。我还有一个备用键盘,它显示相同的行为(一个键盘是 PS/2,备用是 USB - 所以不是端口问题)。
就好像事件链中有什么东西在事件上吐口水,这样其他人就听不到了。我的问题基本上是:如何找到响应某些事件的进程?
按照要求:
oli@bert:~$ xmodmap -pke | grep -i mode
keycode 82 = KP_Subtract XF86_Prev_VMode KP_Subtract XF86_Prev_VMode
keycode 86 = KP_Add XF86_Next_VMode KP_Add XF86_Next_VMode
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 203 = Mode_switch NoSymbol Mode_switch
Run Code Online (Sandbox Code Playgroud)
和
oli@bert:~$ xmodmap -pke | grep -i print
keycode 107 = Print Sys_Req Print Sys_Req
keycode …
Run Code Online (Sandbox Code Playgroud)