LINUX.ORG.RU

История изменений

Исправление 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".
$

В целом не так все плохо. Есть даже шанс, что на древних серверах будет работать. :)