mplayer 不会禁用屏幕保护程序

mplayer 不会禁用屏幕保护程序

所以我升级到了 Ubuntu 12.10,并从存储库安装了 smplayer。问题是,当我播放电影时(即使是全屏播放),屏幕保护程序就会出现。我必须禁用 smplayer 中启用的屏幕保护程序,但似乎不起作用

apt-cache policy mplayer
mplayer:
  Installed: 2:1.0~rc4.dfsg1+svn34540-1ubuntu2
  Candidate: 2:1.0~rc4.dfsg1+svn34540-1ubuntu2
  Version table:
 *** 2:1.0~rc4.dfsg1+svn34540-1ubuntu2 0
        500 http://pt.archive.ubuntu.com/ubuntu/ quantal/universe amd64 Packages
        100 /var/lib/dpkg/status

apt-cache policy gnome-screensaver
gnome-screensaver:
  Installed: 3.6.0-0ubuntu2
  Candidate: 3.6.0-0ubuntu2
  Version table:
 *** 3.6.0-0ubuntu2 0
        500 http://pt.archive.ubuntu.com/ubuntu/ quantal-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     3.6.0-0ubuntu1 0
        500 http://pt.archive.ubuntu.com/ubuntu/ quantal/main amd64 Packages

有任何想法吗?

答案1

-p 选项不再存在。

这是 gnome-screensaver 中的一个错误。 http://lists.mplayerhq.hu/pipermail/mplayer-users/2012-November/085566.html

答案2

首先安装 xdotool 然后添加到 mplayer 配置或命令行

heartbeat-cmd="xdotool key shift"

这将发送 Shift 键按下和释放,如上面的代码所示,但使用 xdotool。

答案3

我不确定 smplayer 是否读取 ~.mplayer/config,但你需要

sudo apt-get install libxtst-dev

(可能更多,我已经安装了一些开发包)

将其粘贴到名为 sendXshift.c 的文件中

/* program to send shift-down, shift-up through X test extension to indicate that the X session isn't idle */

#include <stdio.h>
#include <stdlib.h>

#include <X11/Xlib.h>
#include <X11/extensions/Xext.h>
#include <X11/extensions/XTest.h>

int main(){
  Display *dpy;
  Status stat;
  int i1,i2,i3,i4;
  Bool stat1;`

  dpy = XOpenDisplay(NULL);

  if (dpy == NULL){
    printf("open display failed\n");
    exit(1);
  }

  stat1 = XTestQueryExtension(dpy,&i1,&i2,&i3,&i4);
  if (stat1 == 0){
printf("Xtest not supported\n");
XCloseDisplay(dpy);
exit(1);
  }
  // shift down:
  XTestFakeKeyEvent(dpy,0x32,True,CurrentTime);
  // shift up:
  XTestFakeKeyEvent(dpy,0x32,False,CurrentTime);

  XCloseDisplay(dpy);


}

并用 进行编译cc -o sendXshift sendXshift.c -lX11 -lXtst,使其可执行,然后放入heartbeat-cmd="/PATH/TO/COMPILED/FILE/sendXshift"

这应该直到/如果http://bugzilla.mplayerhq.hu/show_bug.cgi?id=1887解决了。

答案4

我的猜测是这样的:gnome-screensaver 删除了“poke”参数

然而,Mplayer 试图通过以下方式打开屏幕保护程序

heartbeat-cmd="gnome-screensaver-command -p"

并失败了。

我不知道如何继续,将 heartbeat 命令设置为

heartbeat-cmd="gnome-screensaver-command --exit"

将禁用整个会话的屏幕保护程序。

最好安装屏幕保护程序而是。或者使用 DBUS 来禁止屏幕保护程序。对于 gnome-shell,有扩展可以手动暂停屏幕保护程序。

相关内容