Попытка к xmodmap этот файл.Xmodmap на резюме. Попробованный, как выполнить команду после того, как резюме от приостанавливает? путем добавления нескольких ключевых отображений с помощью xmodmap-e без успеха (каждый раз это только приняло бы первую строку). Я чувствую, что это должно смочь использовать.Xmodmap для хранения кода простым. Ubuntu 14.04.Спасибо.
Мой.Xmodmap (с исполняемым разрешением) в/home/dadtwo/
clear control
clear mod4
keycode 133 = Control_L NoSymbol Control_L
keycode 37 = Super_L NoSymbol Super_L
add control = Control_L
add mod4 = Super_L
Моя 10_keyboard-подкачка (с исполняемым разрешением) расположенный в/etc/pm/sleep.d
#!/bin/sh
# Remap Swap Super_L and Control_L
case "${1}" in
resume|thaw)
DISPLAY=:0.0 ; export DISPLAY
su $dadtwo -c "sleep 3; /usr/bin/xmodmap /home/dadtwo/.Xmodmap"&
;;
esac
В /var/log/pm-suspend.log говорится "/usr/bin/xmodmap: не мог открыть дисплей ':0.0'"
ldd $(type -p xmodmap)
шоу это xmodmap
использование libX11.so.6
связываться с X-сервером. Поэтому нельзя использовать xmodmap
прежде чем X-сервер работает.
$ ldd $(type -p xmodmap)
linux-vdso.so.1 => (0x00007ffc5c1f3000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f8abffa6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8abfbe1000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f8abf9c2000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8abf7be000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8ac02db000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f8abf5ba000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f8abf3b4000)
На моей Ubuntu 14.04.5, (YMMV), при помощи pgrep X
, и ps -fp$(pgrep X)
и после PPID
поле назад два шага, я вижу:
$ ps -fp1851,1801,1603
UID PID PPID C STIME TTY TIME CMD
root 1603 1 0 Jul27 ? 00:00:00 gdm
root 1801 1603 0 Jul27 ? 00:00:00 /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Displays/_0
root 1851 1801 1 Jul27 tty7 04:30:37 /usr/bin/X :0 -background none -verbose -logverbose 7 -core -auth /var/run/gdm/auth-for-gdm-ZKZ4jH/database -seat seat0 -nolisten t
Который говорит мне что X-сервер (X
), PID 1851 (в моей системе, в это время, YMMV) был запущен PID 1801 (/usr/lib/gdm/gdm-simple-slave
), который, в свою очередь, был запущен PID 1603 (gdm
).
gdm
только запускается gdm-simple-slave
(который запускается X
) После входа в систему таким образом, это не будет работать перед входом в систему.
Выполнение xmodmap
любой прежде X
запускается, или без помещения export DISPLAY=:0
в Ваш сценарий перед xmodmap
, И сделавший man xhost;xhost +local:
на Ваших X сессиях.
Перефразированный ответ:
Читать man xhost
.
После входа в систему откройте окно терминала и взгляд:
$ echo $DISPLAY
:0
Позвольте процессы, работающие на этой системе, но не работающие под X
серверный процесс для общения с X
серверный процесс:
$ xhost +local:
non-network local connections being added to access control list
Это продлится, пока Вы не возвратите его (xhost -local:
) ИЛИ до X
выходы сервера, таким образом, если это работает на Вас, помещают его в Ваш пользовательский запуск где-нибудь.
Столько, сколько xhost +locakl:
в действительности, можно выполнить Ваш xmodmap
в любом контексте (например, от /etc/pm/power.d/
) путем выполнения:
env DISPLAY=:0 xmodmap ....
или, если Вы хотите использовать несколько xmodmap
команды,
export DISPLAY=:0
xmodmap ...
xmodmap ...
Примечание: Разрешение соединений с Вашим X
сервер "несетевыми локальными соединениями" ДЕЙСТВИТЕЛЬНО делает Вашу систему менее безопасной.