실제 키보드 없이 컴퓨터에서 웹 애플리케이션을 실행하고 있는데 해당 애플리케이션이 Chrome에서 열립니다. 다음 명령을 사용합니다.
pkexec --user <user> google-chrome-stable --force-renderer-accessibility --app "http://my/url"
그러면 올바른 URL이 표시되지만 텍스트 필드를 선택할 때 화면 키보드가 표시되지 않습니다. pkexec를 제거하면 화면 키보드가 표시됩니다. pkexec에서도 작동하게 하려면 어떻게 해야 합니까?
저는 Debian 9.4를 사용하고 있으며 OSK는 그놈 온스크린 키보드입니다.
gedit iso chrome으로 테스트할 때 제대로 작동하는 것으로 나타났습니다.
pkexec --user <user> gedit
두 실행 파일 모두 비슷한 정책 파일을 가지고 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
"-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
"http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
<policyconfig>
<action id="org.freedesktop.policykit.pkexec.run-chrome">
<message>Authentication is required to run Chrome</message>
<description>Run Chrome</description>
<defaults>
<allow_any>auth_admin</allow_any>
<allow_inactive>auth_admin</allow_inactive>
<allow_active>auth_admin</allow_active>
</defaults>
<annotate key="org.freedesktop.policykit.exec.path">/usr/bin/google-chrome-stable</annotate>
<annotate key="org.freedesktop.policykit.exec.allow_gui">TRUE</annotate>
</action>
키보드를 표시하기 위한 dbus 호출이 더 이상 pkexec
. dbus-monitor를 보면 명령을 실행할 때 호출이 들어옵니다.
google-chrome-stable --force-renderer-accessibility --app "http://my/url"
pkexec --user <user>
그러나 명령에 추가하면 더 이상 다음과 같은 dbus 메시지를 보내지 않습니다.
method call time=1710323137.837430 sender=:1.101 -> destination=org.gnome.Caribou.Keyboard serial=2172 path=/org/gnome/Caribou/Keyboard; interface=org.gnome.Caribou.Keyboard; member=Show
답변1
해결책을 찾았습니다. 환경 변수를 복사해야 하는 것 같습니다.
pkexec --user <user> env QT_ACCESSIBILITY=$QT_ACCESSIBILITY bash -c "google-chrome-stable --force-renderer-accessibility --app='http://my/url'"