无法为普通用户设置区域设置

无法为普通用户设置区域设置

我正在使用 i3wm,更新后,我遇到了区域设置问题,无法i3status正确运行。

我在这个问题上取得了重大进展。重新配置语言环境 on/etc/locale.gen和 on /etc/default/locale,现在当我以 root 身份运行 i3status 时,它可以工作,但是当我启动系统(作为我的用户)时,它会抛出status_command process exited unexpectedly.

我尝试授予这些文件完全权限(777),但 id 也不起作用。

我知道问题几乎已经解决,直到我运行locale-gen,并且dpkg-reconfigure locales,一旦我打开终端,在出现提示之前Could not set locale. Please make sure all your LC_* / LANG settings are correct

现在我只有在尝试运行时才会出现此错误i3status。关于如何从这个问题中恢复 i3wm 有什么想法吗?

当我以 root 身份输入 locale 时,文件显示:

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

固定的!我只需复制以 root 身份运行 locale 的响应/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,使其包含(至少)您选择的变量“区域设置”值:

    [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

我能够通过添加fromLC_ALL=C的调用来解决这个问题:i3status.i3/config

我有什么:

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

我用什么替换了它:

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

相关内容