LINUX.ORG.RU

5
Всего сообщений: 88

Эмуляция нажатия кнопки клавиатуры

Не подскажите, в какую сторону смотреть для решения задачи - под иксами эмулировать нажатие кнопки на клавиатуре в заданной раскладке? Такое делает, в частности, teamviewer - он передает на управляемую сторону не код клавиши, а именно символ, потому что с андроида прекрасно вводятся «{», «[» и «х», висящие на одной физической кнопке.

 ,

man-from-36 ()

Очищается буфер обмена

Буфер обмена очищается при закрытии программы, из которой был скопирован тест в буфер обмена.

Есть возможность изменить это поведение?

Use case: переименование документов. Открываем файл ‘‘invoice.pdf’’ в evince, копируем текст (‘‘Счёт № 123 от 08 июня 2020 г.’’), закрываем evince, переименовываем файл (F2), вставляем из буфера скопированный ранее текст.

PS: быстро нагуглить ответ не получилось. Смотрю в сторону применения стороннего софта: https://wiki.archlinux.org/index.php/Clipboard

 ,

Harliff ()

Недостатки и достоинства X

Здравствуйте, дорогие форумчане. Обращаюсь к вам с просьбой помочь в учебной деятельности. Делаю реферат по X, нужны конкретные плюсы и минусы X, если можно это так назвать. Перелопатила кучу ресурсов, как отечественных, так и зарубежных, но преподаватель говорит, что информации всё равно недостаточно. Буду очень признательна и благодарна!

Перемещено leave из linux-org-ru

 , ,

Nastya77 ()

Как запустить второй xorg-server при помощи systemd?

https://unix.stackexchange.com/questions/346383/run-second-x-server-from-with...
privileges needed by X are ruled by systemd

$ sudo systemd-run --property PAMName=login --property User=user --property StandardInput=tty --property TTYPath=/dev/tty10 sh -c 'chvt 10 && startx /usr/bin/xterm -- :10'
Running as unit: run-r95a95f92511b45f2a9f135a40fb1f038.service

$ systemctl status run-r95a95f92511b45f2a9f135a40fb1f038.service
● run-r95a95f92511b45f2a9f135a40fb1f038.service - /bin/sh -c chvt 10 && startx /usr/bin/xterm -- :10
   Loaded: loaded (/run/systemd/transient/run-r95a95f92511b45f2a9f135a40fb1f038.service; transient)
Transient: yes
   Active: active (running) since Tue 2020-03-17 08:11:34 MSK; 17s ago
 Main PID: 21859 ((sh))
    Tasks: 1 (limit: 4915)
   Memory: 160.0K
      CPU: 1ms
   CGroup: /system.slice/run-r95a95f92511b45f2a9f135a40fb1f038.service
           └─21859 (sh)

Mar 17 08:11:34 sabayon.local systemd[1]: Started /bin/sh -c chvt 10 && startx /usr/bin/xterm -- :10.

но сервер-то не запускается (и логфайл /var/log/Xorg.10.log не создаётся)!

Ну и мне надо при старте системы, а не из командной строки.

 ,

Einstok_Fair ()

xinit не работает

Столкнулся с такой проблемой:

Build Date: 24 January 2020  09:37:05PM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Tue Feb 11 00:47:56 2020
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
OpenGL ES 2.0 (OpenGL ES 2.0)

waiting for X server to begin accepting connections (II) Server terminated successfully (0). Closing log file.

xinit: giving up
xinit: unable to connect to X server: Connection reset by peer
xinit: server error
Couldn't get a file descriptor referring to the console

Получается, что иксы просто завершаются и xinit не успевает к ним подключится. Как это решить?

 , ,

nillerusr ()

А что там нынче с пробросом X-сессии по SSH?

Сходу смог пробросить приложение, X11Forwarding, вот это всё. А что насчёт сессии?

 , ,

Dispetcher14 ()

Зачем нужен USE=X ?

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by x11-libs/gtk+-3.24.11::gentoo
# required by x11-themes/adwaita-icon-theme-3.32.0::gentoo
# required by x11-libs/gtk+-2.24.32-r1::gentoo
# required by x11-themes/gtk-engines-adwaita-3.28::gentoo
>=x11-libs/cairo-1.16.0-r3 X

Я-то думал, что наступил повсеместный Wayland и теперь X никому не нужен...

Мёржится это всё одной из этих строк:
[ebuild N ] x11-libs/cairo-1.16.0-r3::gentoo USE=«X glib svg (-aqua) -debug (-gles2-only) -opengl -static-libs -utils -valgrind» ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild N ] x11-libs/gtk+-3.24.11:3::gentoo USE=«X introspection (-aqua) -broadway -cloudprint -colord -cups -examples -gtk-doc {-test} -vim-syntax -wayland -xinerama» ABI_X86="(64) -32 (-x32)" 0 KiB

Где прописан этот X, чтобы его стереть?

 , ,

Einstok_Fair ()

как сделать локальное (по окнам) переключение раскладок средствами X?

здравствуйте

в kde есть очень удобная опция настройки раскладок клавиатуры

в Layout Switching Policy можно выбрать Global , Window … итд

как можно сделать то же самое но без kde?

 , , ,

brothermechanic ()

Можно ли остановить Xorg, не переходя на тот TTY, где он запущен?

Допустим, я перехожу на TTY 2, запускаю startx, потом перехожу на TTY 1 и останавливаю Xorg (убив Xorg или тот процесс, который был запущен при запуске startx). При этом произойдёт переход на TTY 2. Можно ли сделать то же самое, но без перехода на TTY 2, то есть остаться на TTY 1?

 ,

MaGIc2laNTern ()

IndirectGLX + software openGL rendering - не работает на современных линуксах

Народ, возникла следующая проблема:

у меня есть необходимость запускать X приложения на машинах, на которых нет запущенного X сервера. Т.е. эта та пресловутая сетевая прозрачность X протокола. Это часть работает хорошо и полностью устраивает, но иногда этим приложением нужно отрисовать что-то используя openGL. Это не игры, а инженерная графика, и в принципе производительность устраивала, даже учитывая что все это отрисовывалось программно, без 3д ускорения.

Т.е. схема такая:

узел, где запускается приложение (node) ----> сервер с Xorg (server)

и сервер и узел - это линукс машины x86_64. на сервере вообще нет видео карты, Xserver там использует драйвер xorgxrdp, далее картинка уходит в xrdp и клиенту на винде по rdp протоколу.

эта схема работала хорошо до версии (включая) Xorg 1.19.3, т.е. X клиенты могли отображать 3д через openGL на X сервере используя протокол GLX. Кроме того эта схема работает, если в качестве сервера используем windows машину с запущенным X сервером например стареньким Xming - причем в этом случае мы можем даже ускорять openGL через драйвер wgl и видеокарту хоста.

но потом система на сервере обновилась (драму можно прочитать тут CentOS 7 - недоступность промежуточных подрелизов) и отвалилась openGL графика.

Это выражается в том, что любое приложение которое хочет вывести графику через openGL - выводит в это место черный квадрат.

Эта проблема присутствует на следующих системах которые я протестировал: CentOS 7.6, fedora - 27,28,29, ubuntu 18.4,18.10, debian 9, на всех этих системах Xorg новее чем 1.19.3.

Cистемы на которых все работает: CentOS до 7.4 включительно (7.5 не проверял), openSuse 42.3 и на wnindows/Xming и другие x серверы для виндовс.

Как эту проблему смоделировать, без дополнительных ПК или виртуальных машин:

  1. убедиться, что IndirectGLX разрешен, в последних версиях Xorg его по умолчанию выключили. Т.е. если glxinfo -i выводит ошибку - то IGLX выключен. Что-бы включить - либо в командную строку Xorg добавляем +iglx, либо бросаем drop-in файл в /etc/X11/xorg.con.d/ с произвольным именем, например 10-iglx.conf с содержанием:
    Section "ServerFlags"
        Option "IndirectGLX" "on"
    EndSection
    
  2. запускаем любое приложение использующее openGL, например glx gears, следующим образом:
    $ LIBGL_ALWAYS_INDIRECT=1 LIBGL_ALWAYS_SOFTWARE=1 glxgears 
    
    в итоге видим черный квадрат на проблемных системах.

    естественно речь не идет о системах с пропиетарным драйвером nVidia, там libGL другой и вся система по другому работает

так же на проблемных системах команда

$ xdpyinfo
в списке расширений не показывает расширение SGI-GLX, которое присутствует на тех системах где работает.

ну и glxinfo -i на проблемных системах выводит пустые строки на против OpenGL, ниже часть вывода:

$ glxinfo - i
<...>
OpenGL vendor string:
OpenGL renderer string:
OpenGL version string:
OpenGL extentions:
[тут всего 4 расширения]
<...>

Соответственно вопрос - знает ли кто как это поправить? Куда писать про проблему - в багтрекер Xorg, mesa, coentos?

 , , , ,

vyv ()

xvfb и x11vnc

На линуксовой машине (Debian Stretch) в Докере на 99-м экране запускается Xvfb, под которым открывается окно, которое ожидает нажатия OK:

xvfb-run -n 99 bash winetricks vcrun2005
Требуется нажать кнопку с машины под управлением Windows.

Вхожу в тот же контейнер вторым bash-ем и запускаю x11vnc. Получаю ошибку:

# x11vnc -auth /home/root/.Xauthority -display :99 -rfbauth
26/02/2019 16:30:16 passing arg to libvncserver: -rfbauth
26/02/2019 16:30:16 x11vnc version: 0.9.13 lastmod: 2011-08-10  pid: 8655
No protocol specified
26/02/2019 16:30:16 XOpenDisplay(":99") failed.
26/02/2019 16:30:16 Trying again with XAUTHLOCALHOSTNAME=localhost ...
No protocol specified

26/02/2019 16:30:16 ***************************************
26/02/2019 16:30:16 *** XOpenDisplay failed (:99)

*** x11vnc was unable to open the X DISPLAY: ":99", it cannot continue.
*** There may be "Xlib:" error messages above with details about the failure.

В чём проблема? Куда копать?

P.S. На x11vnc -find -rfbauth ругается «unrecognized option(s)»

Ответ нашел сам: надо явно указать файл authority для xvfb; кроме того, -rfbauth иногда нужно явно указывать имя дефолтного файла /root/.vnc/passwd

Остался без ответа второй вопрос: когда VNC-сервер запустится, как подключиться к нему с виндовой машины при помощи TightVNC? Указал IP хоста, дефолтный порт, но до ввода пароля (который в /root/.vnc/passwd контейнера) не доходит, пишет «No connection could be made because the target machine actively refused it.» Какие нужны дополнительные действия?

Пока нашёл следующее:

Запуская докер добавить к «docker run» что-то вроде "-p 5900:5900". Если контейнер уже запущен, выяснить его адрес на хосте командой

docker inspect keen_beaver | grep IPAddress
и настроить фаервол (подставить нужный IP):
sudo /sbin/iptables -t nat -A DOCKER -p tcp --dport 5900 -j DNAT --to-destination 172.17.0.3:5900

После этого VNC-сервер будет виден на порту 5900.

И да, на этом порту что-то видно — curl servername:5900 отваливается не через 2 секунды, а через 22, и с ошибкой не «Connection refused», а «Timed out». Telnet тоже на этом порту что-то видит, но не получает ответа.

Но подключиться не получается. TightVNC пишет «A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.» noVNC выдаёт «Failed to connect to server» в браузере и коды 404 и 111 «Connection refused» в консоли.

В чём может быть дело?

Ответ 2: начало нормально отвечать после перезагрузки хоста.

Ещё выяснилось, что необходимо запускать x11vnc с ключами "-visual TrueColor" и "-forever" Первый нужен клиентам, не понимающим 8-битный цвет, второй — чтобы сервер не отключался при закрытии соединения с клиентом.

 , ,

olegd ()

fvwm key binding

Доброго дня. При быстром переключении между окнами и в приложениях слетают горячие клавиши в fvwm, часто при запущеном xfreerdp (может мне так кажеться и freerdp непричем), на разных железяках, ос дебиан и слака, так что иксы и железо видимо можно исключить. Перезапуск fvwm не помогает надо выйти из иксов. Конфиг переписал практически с нуля, проблемма осталась.

Собственно куда копать уважаемые fvwm'щики? или может хотябы можно как то пнуть фввм или иксы чтобы не приходилось выходить из сессии? обычно запущено больше десятка приложений, очень напрягает.

 , , ,

jasaA ()

Как работает графический дисплейный менеджер для X?

Проще оказалось проверить самому. Да, по X-серверу на пользователя.

Я так понимаю, он сам работает в иксах.

Что происходит при логине/переключении пользователя? Стартует другой X-сервер, которому отдаётся контроль над VT? Каждому пользователю запускается по X-серверу?

 , ,

utf8nowhere ()

DE вместе с Иксами стартуют только после нажатия anykey

Перенес настроенную систему Arch+KDE с ноутбука на десктоп. Очистил /home/user/.cache. На всякий случай переустановил xorg с удалением конфигов, xf86-video-intel и sddm.

Система загружается быстро, но лишь до момента появления в выводе graphical.target. Далее должна загрузиться графика - иксы с sddm в качестве DM. Но не происходит ничего, пока не переключусь в другой tty (ctrl+alt+fX) или не нажму любую клавишу. Тогда начинается загрузка sddm. Логин происходит успешно.

systemd-analyze blame; systemd-analyze critical-chain; systemctl list-dependencies graphical.target; Xorg.0.log

systemd-analyze:

Startup finished in 1.540s (kernel) + 977ms (userspace) = 2.517s
graphical.target reached after 968ms in userspace

Проблема решена. Arch, Plasma 5.13.2 чёрный экран (комментарий)

 , ,

nd91 ()

А посоветуйте wm...

Шалом, котаны.

Посоветуйте, пожалуйста, wm со следующими характеристиками:
- Не xml-config
- Не Qt
- Не тайлинг
- Опционально наличие графической конфигурялки

О чём знаю: icewm, fluxbox, jwm.

Интересуют даже экзотические варианты.

Заранее благодарю.

 , , ,

IPR ()

How to run second X-Server

Такой вопрос: Как на разных консолях запустить одновременно 2 x-serverа? Неплохо было бы с DM, да еще бы рулить это все, через unit-сервесы systemd

ОС: Linux ROSA R8.1 KDE/Mate x86, systemd, sddm

 , , ,

vvpnet ()

Удаленно снять скриншот? Xlib: connection to refused by server

Имеется рабочая станция, настроенная продавцом на работу в режиме: на самой станции ОС-гипервизор, в нем CentOS 5, видимо, с пробросом видеокарты. Со стороны система просто загружается и выводит приглашение на монитор, как обычно.

Пытаюсь настроить получение скриншота с системы (с клиентской - с CentOS 5-ого) по SSH по следующему алгоритму: непосредственно за компьютером логинюсь и смотрю переменные окружения:

$ printenv | grep DIS
$ DISPLAY=192.168.93.254:1

Далее на удаленной машине выполняю:

$ ssh name@vmhost 'xwd -root -display 192.168.93.254:1 | /usr/bin/convert - png:-' > /tmp/current.png

Xlib: connection to "192.168.93.254:1.0" refused by server
Xlib: No protocol specified
Пробую согласно Xlib: connection to ":0.0" refused by server Xlib: No protocol specified, но на шаге:
# xauth list 192.168.93.254:1
никакого вывода нет. Тупик. Подскажите, куда дальше копать?

 , , ,

omegatype ()

Определить idle или нет

Доброго времени суток. Пишу небольшой скрипт для себя с помощью python-xlib и потребовалось узнать мне, в какие моменты пк простаивает, чтобы это можно было отслеживать.

В гугле нашёл много ссылок на один и тот же кусок кода, в оригинале аж 2007-го года, который использует библиотеку C, но у меня сомнения:

1) неужели за это время не придумали ничего более удобного?

2) если всё же так, как мне это впихнуть в свой цикл?

Я использую в цикле next_event(), который ориентируется на Xlib.X.PropertyChangeMask: т.е. он реагирует на изменения в заголовках окон, например, и, когда пк неактивен, по идее вообще никаких event'ов происходить не будет.

Сразу лучше скажу зачем мне это: я хочу знать, сколько времени было открыто то или иное окно, но я не хочу засорять эти данные тем временем, когда пк бездействовал.

 , , , ,

conformist ()

Лог заголовков активного окна

Существует ли какая-то программа, которая вела бы лог, на каком окне в данный момент фокус? И могла бы суммировать, сколько времени какое окно было активно.

Пока нашёл только самописные программы вроде https://bbs.archlinux.org/viewtopic.php?id=200866

 

olegd ()

Профилирование X11

Это фактически продолжение темы: Тормозит ресайз окон в KDE5.

Тормоза достигли просто космических масштабов. Сейчас при ресайзе Gwenview X съедает одно ядро полностью и всё страшно лагает. Не понимаю - это только у меня так или это общая болезнь kde+nvidia.

Пытаюсь понять кого винить: блоб nvidia, kde или X11.

Все настройки стандартные. Разве что в xorg.conf:

Option         "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

В Xorg.0.log, dmesg, etc - ничего подозрительного. Разве что в ~/.local/share/sddm/xorg-session.log:

тонны:
file:///usr/lib64/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null

и тонны (у kate):
QXcbConnection: XCB error: 3 (BadWindow), sequence: 33242, resource id: 38202169, major code: 3 (GetWindowAttributes), minor code: 0
QXcbConnection: XCB error: 3 (BadWindow), sequence: 33246, resource id: 38202170, major code: 3 (GetWindowAttributes), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 33247, resource id: 38202170, major code: 14 (GetGeometry), minor code: 0

Багрепорты на трекере KDE создавал - там винят nvidia.

Возможно есть какой-то ман по профилированию иксов. Не подключатся же к ним через perf...

PS: пробовал xfce - такие-же тормоза. Железе тоже отпадает, ибо на десяточке всё идеально.

Последний багрепорт: https://bugs.kde.org/show_bug.cgi?id=385955, https://bugs.freedesktop.org/show_bug.cgi?id=103362

 , ,

RazrFalcon ()