, поэтому я обновился до 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
Есть идеи?
сначала установите xdotool, затем добавьте в конфигурацию или командную строку mplayer
heartbeat-cmd="xdotool key shift"
Это отправит нажатие и отпускание клавиши Shift, как указано выше, но с использованием xdotool.
Я не уверен, что 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 .
Мое предположение таково: gnome-screensaver удалил аргумент "poke" .
Mplayer, однако, пытается нажать на заставку через
heartbeat-cmd="gnome-screensaver-command -p"
и терпит неудачу.
Я не уверен, как поступить, если установить для команды hearbeat значение
heartbeat-cmd="gnome-screensaver-command --exit"
, экранная заставка отключится на весь сеанс.
Лучше установить вместо него xscreensaver . Или используйте DBUS для блокировки заставки. Для gnome-shell существуют расширения для ручной приостановки заставки.
Опция -p больше не существует.
Это ошибка в гном-заставке. http://lists.mplayerhq.hu/pipermail/mplayer-users/2012-November/085566.html