web-dev-qa-db-ja.com

Ubuntuスタートアップでのim-launch

sh -c 'if ! [ -e "/usr/bin/ibus-daemon" ] && [ "x$XDG_SESSION_TYPE" = "xwayland" ] ; then exec env IM_CONFIG_CHECK_ENV=1 im-launch true; fi'を実行するUbuntu 19.10をインストールした後、このim-launchスタートアップエントリを見つけました

私の質問は、このエントリの目的は何ですか?それを無効にするとどうなるのですか?

5
Afsal

_-e_ファイルを確認_/usr/bin/ibus-daemon_が存在するかどうか存在は真を意味し、存在は偽を意味します。

_!_は、上記の値がtrueの場合、上記の値がfalseであることを確認します。何も実行しません。

_[ "x$XDG_SESSION_TYPE" = "xwayland" ]_これは、ログイン画面でのログイン方法に基づいて、以下のいずれかの値になります。 x11またはウェイランドを選択するセッション。

_"xx11" = "xwayland" "xwayland" = "xwayland"_

$ XDG_SESSION_TYPEの出力例

_administrator@pratap:~$ echo $XDG_SESSION_TYPE
x11
_

もう一つの例:

_administrator@pratap:~$ echo $XDG_SESSION_TYPE
wayland
administrator@pratap:~$ 
_

最初の式がfalseでx $ XDG_SESSION_TYPE = xwaylandの場合、コマンド_env IM_CONFIG_CHECK_ENV=1 im-launch true_を実行します

最初の式がtrueであるか、x $ XDG_SESSION_TYPEがxwaylandと等しくない場合は、何もしません。

_man test_を参照

_! EXPRESSION
              EXPRESSION is false
_

そして

_   -e FILE
          FILE exists
_

このコマンドの機能について詳しく読むことができます_then exec env IM_CONFIG_CHECK_ENV=1 im-launch true;_

_man env_およびman _im-launch_を参照


Ubuntu 19.10ではデフォルトで_/usr/bin/ibus-daemon_が存在します。そのため、コマンドは実行されません。

_env IM_CONFIG_CHECK_ENV=1 im-launch true
_

ファイル_/usr/bin/ibus-daemon_があり、セッションが_x11_の場合

ここにIMについての何かがあります

enter image description here

ファイルがない場合は_/usr/bin/ibus-daemon_で、セッションはwaylandです

これは上記とは異なるものです。つまり、envが適用され、その後連鎖反応が続きます。

enter image description here

したがって、スタートアップリストからこれを無効または有効にしても、このファイルの存在が_/usr/bin/ibus-daemon_でなく、セッションがwayland条件を満たしている場合を除き、何も起こりません。

8
PRATAP