我正在使用 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
为了正确解决此问题,您最可能需要执行以下操作......
问题:
[user@archlinux ~]$ i3status Could not set locale. Please make sure all your LC_* / LANG settings are correct.
编辑
/etc/locale.conf
,使其包含(至少)您选择的变量“区域设置”值:[user@archlinux ~]$ cat /etc/locale.conf LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8
使用以下命令生成区域设置
locale-gen
:[user@archlinux ~]$ sudo locale-gen Generating locales... en_GB.UTF-8... done Generation complete.
测试
i3status
命令(应该可以正常工作)...[mconway@bigwig ~]$ i3status {"version":1} [ [<DATA>] [<DATA>] ...
请勿通过设置/覆盖“系统”环境变量等方式进行黑客攻击
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