pkexec가 화면 키보드를 표시하지 않습니다

pkexec가 화면 키보드를 표시하지 않습니다

실제 키보드 없이 컴퓨터에서 웹 애플리케이션을 실행하고 있는데 해당 애플리케이션이 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'"

관련 정보