Используйте эту команду, чтобы открыть Aptana, используя openjdk вместо sun jre AptanaStudio -vm /usr/lib/jvm/java-6-openjdk/bin.
Openjdk является стандартным jdk в Ubuntu. В качестве опции вы можете установить jdk Oracle, если вы загрузите его с веб-сайта Oracle.
Эти инструкции предназначены для создания «дополнительного» экрана для вашей Linux-машины с помощью планшета или любого компьютера через клиента VNC.
Я сделал эти шаги в Mageia3 32Bit (не пробовал 64-разрядный), но должен (например, Ubuntu).
Убедитесь, что у вас есть все необходимые пакеты со следующей командой терминала:
sudo apt-get install gcc autoconf automake x11-font-util libtool libxi-devel ibopenssl-devel libxfont1-devel libpam-devel x11-util-macros x11-xtrans-devel x11-server-xvfb x11-server-xdmx x11-server-devel x11-server-source
После того, как у вас есть все вышеперечисленные пакеты , выполните следующие команды:
cd /usr/share/x11-server-sources/
./autogen.sh
./configure --with-fontrootdir=/usr/share/fonts --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/usr/share/X11/xkb/compiled --enable-dmx
make
Если вы не получите никаких ошибок, исправьте Xdmx (просто положите, он был «сломан» в течение некоторого времени):
открыть /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c
, а также изменить строку 730: измените это:
POINTER_ABSOLUTE | POINTER_SCREEN, &mask);
на следующее:
POINTER_RELATIVE | POINTER_DESKTOP, &mask);
IF линия 730 различна, используйте этот раздел, чтобы найти правильную строку: Orginal section - строка для изменения, отмеченная *
case ButtonPress:
case ButtonRelease:
detail = dmxGetButtonMapping(dmxLocal, detail);
valuator_mask_zero(&mask);
QueuePointerEvents(p, type, detail,
* POINTER_RELATIVE | POINTER_DESKTOP, &mask);
return;
Проверьте свою версию Xdmx, запустив ./configure --version
в /usr/share/x11-server-source/
, для Xdmx 1.13 и старше вам также придется внести эти изменения (для версии 1.14 и новее вы можете перейдите к шагу «сделать» ниже):
открыть /usr/share/x11-server-sources/dix/getevents.c
, строка 1395: изменить это:
if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */
К этому:
if (flags & ( POINTER_SCREEN | POINTER_DESKTOP) ) { /* valuators are in screen coords */
(Исходный раздел - строка для изменения отмечена *)
/* valuators are in driver-native format (rel or abs) */
if (flags & POINTER_ABSOLUTE) {
* if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */
sx = valuator_mask_get(&mask, 0);
sy = valuator_mask_get(&mask, 1);
открыть /usr/share/x11-server-sources/Xext/xtest.c
, строка 311: изменить это:
flags = POINTER_ABSOLUTE | POINTER_SCREEN;
к этому:
flags = POINTER_ABSOLUTE | POINTER_DESKTOP;
(исходный раздел - строка для изменения отмечена *)
case MotionNotify:
dev = PickPointer(client);
valuators[0] = ev->u.keyButtonPointer.rootX;
valuators[1] = ev->u.keyButtonPointer.rootY;
numValuators = 2;
firstValuator = 0;
if (ev->u.u.detail == xFalse)
* flags = POINTER_ABSOLUTE | POINTER_DESKTOP;
break;
/usr/share/x11-server-sources/include/input.h
, строка 73: добавьте эту строку после строки, начинающейся с #define POINTER_EMULATED
:
#define POINTER_DESKTOP (1 << 7)
После внесения вышеуказанных изменений заново выполните (в /usr/share/x11-server-sources/
):
make
У вас должен быть новый Xdmx-файл в /usr/share/x11-server-sources/hw/dmx/
. Нам нужно установить это глобально для удобства, поэтому я рекомендую переименовать существующий:
sudo mv /bin/Xdmx /bin/Xdmx-old
и скопировать новый вместо него:
cp /usr/share/x11-server-sources/hw/dmx/Xdmx /bin
вы готовы выполнить первую пробную версию, следующие команды позволяют сохранить ваш основной / существующий дисплей (:0
) и открыть новый дисплей с поддержкой нескольких мониторов. Я использую icewm с этими командами, чтобы сделать его немного более легким (я использую KDE на моем основном дисплее :0
и открываю любое приложение с большим количеством мониторов на новом многоголовом дисплее). Вы можете наиболее определенно скомпоновать эти команды для удобства использования (это то, что я сделал). Любая из этих команд может быть выполнена на консольном и / или терминальном окне любого дисплея, единственное требование состоит в том, чтобы они выполнялись в порядке.
Эта команда создает ваш новый дисплей в качестве буфера кадров для вашего VNC-дисплея :2
(при необходимости отрегулируйте размер экрана):
Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &
Это начинает новый легкий сеанс X на вашем физическом /usr/share/x11-server-source/
startx 'icewm' -- :1
Эта команда запускает мультидисплей между вашим физическим экраном и виртуальным экраном и запускает icewm для оконного менеджера:
startx 'icewm' -- :1
g24]
Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm
Теперь откройте окно терминала и запустите сервер vnc (измените пароль по желанию):
x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe &
Осталось только активировать ваш клиент VNC и подключитесь к VNC - вам может потребоваться отключить или добавить исключение в ваш брандмауэр на порт 5900, чтобы вы могли подключиться к нему. Другое дело иметь в виду, что некоторые клиенты VNC не отображают позицию удаленного курсора, я подтверждаю, что «Mocha VNC» для iOS отлично работает, если вы отключите опцию «локальная мышь».
Наслаждайтесь перетаскивая окна между вашим основным монитором и вашим новым виртуальным вторым монитором (в то же время имея возможность использовать планшет, чтобы щелкнуть / набрать что-то на втором мониторе).
Чтобы закрыть Xdmx, дважды нажмите Ctrl + Alt + Backspace .
Автоматизация:
Я использую этот скрипт bash для запуска всего процесса (также убивает Xvfb при выходе):
Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &
xinit dual -- :1
ps | grep Xvfb | awk '{print $1}' | xargs kill
Тогда у меня есть пользовательский ~/.xinitrc
с этим:
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
if [[ $1 == "" ]]
then
exec startkde
elif [[ $1 == "xterm" ]]
then
exec xterm
elif [[ $1 == "dual" ]]
then
exec Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm & x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe
else
exec $1
fi
Устранение неполадок:
sh: /usr/local/bin/xkbcomp: No such file or directory
, вам может потребоваться выполнить: cd /usr/local/bin" and "ln -s /bin/xkbcomp
], затем снова попробуйте Xdmx. sudo chvt X
(где X - номер консоли / xsession), чтобы переключиться на мой основной экран. Также, когда вы переключаетесь обратно на Xdmx, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.