История изменений
Исправление Zubok, (текущая версия) :
Например может не быть xkb :) Может не быть xrandr, xinerama, composite, xdamage, xtest. Просто все живут на xorg, в котором это все есть.
В таких условиях современные тулкиты в принципе могут работать. За все не скажу, но вот GTK, Qt могут работать и без Render, без MIT-SHM, без Composite, без XTEST и т. д. Это на уровне тулкита решается. Но есть приложения, которые хотят Randr. Разумеется, xrandr не заработает, но раз X server не умеет в RandR, то и делать там нечего. Это можно проверить, отключив расширения на Xephyr:
$ Xephyr :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 23
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RECORD
RENDER
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo
[...]
$ Xephyr -extension COMPOSITE -extension RENDER -extension XTEST -extension MIT-SHM -extension DAMAGE -extension RANDR -extension GLX -extension XFIXES :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 13
BIG-REQUESTS
DOUBLE-BUFFER
Generic Event Extension
MIT-SCREEN-SAVER
Present
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XInputExtension
XKEYBOARD
XVideo
[...]
Работают:
$ DISPLAY=:1 inkscape
$ DISPLAY=:1 firefox-esr
$ DISPLAY=:1 qpdfview
$ DISPLAY=:1 qimgv
Отсутствие Render, MIT-SHM для них не помеха. Автоматом переходят на программную отрисовку. Qt все равно Render не использует, а GTK использует, если он есть, ну а если нет, то вот - тоже работает. MIT-SHM отсутствует - закидываем через PutImage через сокет, а не через Shared Memory.
Не работают приложения, которые не могут работать без расшиений по своему смыслу, хотя считаю, что у xdotool есть возможность выполнять большую часть функцию без XTEST. Зачем он с порога отказывается запускаться, я не знаю (UPD: А, не, вру, функции, которые не требут XTESTб работают).
$ DISPLAY=:1 xrandr
RandR extension missing
$
$ DISPLAY=:1 xdotool type a
Warning: XTEST extension unavailable on '(null)'. Some functionality may be disabled; See 'man xdotool' for more info.
Xlib: extension "XTEST" missing on display ":1".
Xlib: extension "XTEST" missing on display ":1".
$
В целом не так все плохо. Есть даже шанс, что на древних серверах будет работать. :)
Исправление Zubok, :
Например может не быть xkb :) Может не быть xrandr, xinerama, composite, xdamage, xtest. Просто все живут на xorg, в котором это все есть.
В таких условиях современные тулкиты в принципе могут работать. За все не скажу, но вот GTK, Qt могут работать и без Render, без MIT-SHM, без Composite, без XTEST и т. д. Это на уровне тулкита решается. Но есть приложения, которые хотят Randr. Разумеется, xrandr не заработает, но раз X server не умеет в RandR, то и делать там нечего. Это можно проверить, отключив расширения на Xephyr:
$ Xephyr :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 23
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RECORD
RENDER
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo
[...]
$ Xephyr -extension COMPOSITE -extension RENDER -extension XTEST -extension MIT-SHM -extension DAMAGE -extension RANDR -extension GLX -extension XFIXES :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 13
BIG-REQUESTS
DOUBLE-BUFFER
Generic Event Extension
MIT-SCREEN-SAVER
Present
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XInputExtension
XKEYBOARD
XVideo
[...]
Работают:
$ DISPLAY=:1 inkscape
$ DISPLAY=:1 firefox-esr
$ DISPLAY=:1 qpdfview
$ DISPLAY=:1 qimgv
Отсутствие Render, MIT-SHM для них не помеха. Автоматом переходят на программную отрисовку. Qt все равно Render не использует, а GTK использует, если он есть, ну а если нет, то вот - тоже работает. MIT-SHM отсутствует - закидываем через PutImage через сокет, а не через Shared Memory.
Не работают приложения, которые не могут работать без расшиений по своему смыслу, хотя считаю, что у xdotool есть возможность выполнять большую часть функцию без XTEST. Зачем он с порога отказывается запускаться, я не знаю.
$ DISPLAY=:1 xrandr
RandR extension missing
$
$ DISPLAY=:1 xdotool type a
Warning: XTEST extension unavailable on '(null)'. Some functionality may be disabled; See 'man xdotool' for more info.
Xlib: extension "XTEST" missing on display ":1".
Xlib: extension "XTEST" missing on display ":1".
$
В целом не так все плохо. Есть даже шанс, что на древних серверах будет работать. :)
Исходная версия Zubok, :
Например может не быть xkb :) Может не быть xrandr, xinerama, composite, xdamage, xtest. Просто все живут на xorg, в котором это все есть.
В таких условиях современные тулкиты в принципе могут работать. За все не скажу, но вот GTK, Qt могут работать и без Render, без MIT-SHM, без Composite, без XTEST и т. д. Это на уровне тулкита решается. Но есть приложения, которые хотят Randr. Разумеется, xrandr не заработает, но раз X server не умеет в RandR, то и делать там нечего. Это можно проверить, отключив расширения на Xephyr:
$ Xephyr :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 23
BIG-REQUESTS
Composite
DAMAGE
DOUBLE-BUFFER
GLX
Generic Event Extension
MIT-SCREEN-SAVER
MIT-SHM
Present
RANDR
RECORD
RENDER
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XFIXES
XINERAMA
XInputExtension
XKEYBOARD
XTEST
XVideo
[...]
$ Xephyr -extension COMPOSITE -extension RENDER -extension XTEST -extension MIT-SHM -extension DAMAGE -extension RANDR -extension GLX -tension XFIXES :1
$ DISPLAY=:1 xdpyinfo
[...]
number of extensions: 13
BIG-REQUESTS
DOUBLE-BUFFER
Generic Event Extension
MIT-SCREEN-SAVER
Present
SECURITY
SHAPE
SYNC
X-Resource
XC-MISC
XInputExtension
XKEYBOARD
XVideo
[...]
Работают:
$ DISPLAY=:1 inkscape
$ DISPLAY=:1 firefox-esr
$ DISPLAY=:1 qpdfview
$ DISPLAY=:1 qimgv
Отсутствие Render, MIT-SHM для них не помеха. Автоматом переходят на программную отрисовку. Qt все равно Render не использует, а GTK использует, если он есть, ну а если нет, то вот - тоже работает. MIT-SHM отсутствует - закидываем через PutImage через сокет, а не через Shared Memory.
Не работают приложения, которые не могут работать без расшиений по своему смыслу, хотя считаю, что у xdotool есть возможность выполнять большую часть функцию без XTEST. Зачем он с порога отказывается запускаться, я не знаю.
$ DISPLAY=:1 xrandr
RandR extension missing
$
$ DISPLAY=:1 xdotool type a
Warning: XTEST extension unavailable on '(null)'. Some functionality may be disabled; See 'man xdotool' for more info.
Xlib: extension "XTEST" missing on display ":1".
Xlib: extension "XTEST" missing on display ":1".
$
В целом не так все плохо. Есть даже шанс, что на древних серверах будет работать. :)