一般ユーザーの場合は、ロケールを設定できません。

一般ユーザーの場合は、ロケールを設定できません。

i3wmを使用していますが、更新した後にロケールに問題があり、i3status正しく実行されません。

私はこの問題についてかなりの進歩を遂げました。ロケールをオン/etc/locale.gen/オフし/etc/default/locale、i3statusをrootとして実行すると機能しますが、システムを(私のユーザーとして)起動するとstatus_command process exited unexpectedly

ファイルに対する完全な権限を付与しようとしましたが、やはり機能しません(777)でした。

locale-gen私は実行するまで、そしてdpkg-reconfigure locales端末を開いたときにプロンプ​​トが表示される前に問題がほとんど解決されたことを知りましたCould not set locale. Please make sure all your LC_* / LANG settings are correct

これで実行しようとしたときにのみこのエラーが発生しますi3status。この問題からi3wmを修復する方法についてのアイデアはありますか?

ルートとしてロケールを入力すると、ファイルに次のように表示されます。

LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

私のユーザーとして実行すると、LANGUAGE変数は設定されません。

LANG=es_US.utf8
LANGUAGE=
LC_CTYPE="es_US.utf8"
LC_NUMERIC="es_US.utf8"
LC_TIME="es_US.utf8"
LC_COLLATE="es_US.utf8"
LC_MONETARY="es_US.utf8"
LC_MESSAGES="es_US.utf8"
LC_PAPER="es_US.utf8"
LC_NAME="es_US.utf8"
LC_ADDRESS="es_US.utf8"
LC_TELEPHONE="es_US.utf8"
LC_MEASUREMENT="es_US.utf8"
LC_IDENTIFICATION="es_US.utf8"
LC_ALL=

答え1

安定!実行中のロケールのレスポンスをルートにコピーしましたが、/etc/default/localeすべてが魅力のように動作します。

答え2

この問題を正しく解決するには、次のことが必要になる可能性があります。

  1. 質問:

    [user@archlinux ~]$ i3status
    Could not set locale. Please make sure all your LC_* / LANG settings are correct.
    
  2. /etc/locale.conf選択した変数「Locale」の値を(少なくとも)含めるように編集します。

    [user@archlinux ~]$ cat /etc/locale.conf
    LANG=en_GB.UTF-8
    LANGUAGE=en_GB.UTF-8
    
  3. ロケールを生成するには、次のコマンドを使用しますlocale-gen

    [user@archlinux ~]$ sudo locale-gen 
    Generating locales...
      en_GB.UTF-8... done
    Generation complete.
    
  4. テストi3statusコマンド(正常に動作する必要があります)...

    [mconway@bigwig ~]$ i3status
    {"version":1}
    [
    [<DATA>]
    [<DATA>]
    ...
    
  5. 「システム」環境変数などを設定/上書きしてハッキングしないでください。LC_ALL=C <command(注意事項はトラブルシューティングLC_ALL/テスト用にのみ使用してください。)

答え3

LC_ALL=C次の電話を追加してこの問題を解決できました。i3status.i3/config

私には何がありますか?

    status_command i3status --config ~/.i3/i3status.conf

私はそれを何に変えましたか:

    status_command LC_ALL=C i3status --config ~/.i3/i3status.conf

関連情報