web-dev-qa-db-ja.com

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

何か案は?

6
psychok7

-pオプションはもう存在しません。

Gnome-screensaverのバグ。 http://lists.mplayerhq.hu/pipermail/mplayer-users/2012-November/085566.html

4
user107507

最初にxdotoolをインストールしてから、mplayer configまたはcomand行に追加します

heartbeat-cmd="xdotool key shift"

これにより、上記のコードとしてShiftキーが押されてリリースされますが、xdotoolが使用されます。

3
AkhIL

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"を配置します。

これは、/ if http://bugzilla.mplayerhq.hu/show_bug.cgi?id=1887 isiが解決されるまで行う必要があります。

1
sup

私の推測はこれです: gnome-screensaverは「poke」引数を削除しました

ただし、Mplayerはスクリーンセーバーを

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

そして失敗します。

続行する方法がわかりません。hearbeatコマンドを

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

セッション全体でスクリーンセーバーを無効にします。

代わりにxscreensaverをインストールすることをお勧めします。または、DBUSを使用してスクリーンセーバーを禁止します。 gnome-Shellには、スクリーンセーバーを手動で一時停止する拡張機能があります。

0
ko-dos