Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Raspberry Pi终端环境中的Unicode和256色_Linux_Unicode_Raspberry Pi_Xterm - Fatal编程技术网

Linux Raspberry Pi终端环境中的Unicode和256色

Linux Raspberry Pi终端环境中的Unicode和256色,linux,unicode,raspberry-pi,xterm,Linux,Unicode,Raspberry Pi,Xterm,我正在和一群运行Raspbian的Raspberry Pi 2合作,为性能安装构建交互式谜题。这些谜题是要在命令行上玩的。我的背景是web开发,所以虽然我对Linux命令行非常熟悉,但我没有很多定制本地终端环境的经验。我有许多不同的要求,我永远不能同时完全满足所有的要求。即: 我想从内核控制台加载游戏,而不启动LXDE。这主要是因为在终端环境中,我可以捕捉到有人试图退出游戏时使用的任何击键,并设置密码来阻止它。另外,我还没有决定是否可以在LXDE中启动一个终端窗口,并隐藏所有的窗口浏览器,使游戏

我正在和一群运行Raspbian的Raspberry Pi 2合作,为性能安装构建交互式谜题。这些谜题是要在命令行上玩的。我的背景是web开发,所以虽然我对Linux命令行非常熟悉,但我没有很多定制本地终端环境的经验。我有许多不同的要求,我永远不能同时完全满足所有的要求。即:

  • 我想从内核控制台加载游戏,而不启动LXDE。这主要是因为在终端环境中,我可以捕捉到有人试图退出游戏时使用的任何击键,并设置密码来阻止它。另外,我还没有决定是否可以在LXDE中启动一个终端窗口,并隐藏所有的窗口浏览器,使游戏看起来像是CLI而已

  • 我需要256色显示器

  • 这个游戏是用英语玩的,但是包含一些西里尔字母,所以我需要unicode支持。使用的字符示例:

    • 0x1440
    • 0x1437
    • 0x143d
  • 我可以使用
    TERM=xterm-256color
    在xterm中获得256色显示,但前提是我在LXDE的窗口中启动它。Unicode支持也是如此。当我尝试从内核控制台启动xterm时,我可以传递许多选项来定制终端的显示(
    -fg
    -bg
    -fa
    ),但不能使其显示256色或unicode字符。我尝试过使用
    .Xresource
    文件并将其与
    xrdb-merge~/.Xresource
    一起加载,但它似乎没有任何效果。目前,我有一个
    .xinitrc
    文件,其中包含

    `which xterm` \
    -fg white \
    -bg black \
    -fa *-fixed-*-*-*-18-*
    -en en_US.UTF-8
    -tn xterm-256color
    
    我只需运行
    xinit
    即可启动xterm。当我这样做时,
    xterm
    启动并尊重前景、背景和字体属性,但只显示8种颜色,不显示unicode字符。对于如何满足上述三个要求,有人能提供一些见解吗?我也会接受一个答案,说明我如何可以简单地从LXDE窗口启动游戏,但完全不使用chrome的全屏窗口,并阻止用户退出该环境(机器上不会连接鼠标)


    谢谢

    很遗憾,有人在这里发布了答案,并指出我发布的
    .xinitrc
    中有一个打字错误(在几行之后缺少
    \
    字符)。经过反复检查,这确实是问题的一部分。不过,他或她或其他人显然记下了答案,所以我不能相信

    问题的另一部分是,我试图显示的unicode字符不是西里尔字母,而是块的一部分,而块不是我使用的任何终端字体的一部分。经过一番挖掘,我发现了似乎是唯一一种包含这些字符的单间距字体。我将其安装到/usr/local/share/font,并修改了我的.xinitrc文件:

    `which xterm` \
    -fg white \
    -bg black \
    -fa 'Everson Mono' \
    -en en_US.UTF-8 \
    -tn xterm-256color
    

    …现在我可以用
    xinit
    加载xterm并运行我的应用程序,一切都正常了。

    很遗憾,有人在这里发布了答案,并指出我发布的
    .xinitrc
    中有一个打字错误(几行后缺少
    \
    字符)。经过反复检查,这确实是问题的一部分。不过,他或她或其他人显然记下了答案,所以我不能相信

    问题的另一部分是,我试图显示的unicode字符不是西里尔字母,而是块的一部分,而块不是我使用的任何终端字体的一部分。经过一番挖掘,我发现了似乎是唯一一种包含这些字符的单间距字体。我将其安装到/usr/local/share/font,并修改了我的.xinitrc文件:

    `which xterm` \
    -fg white \
    -bg black \
    -fa 'Everson Mono' \
    -en en_US.UTF-8 \
    -tn xterm-256color
    
    …现在我可以用xinit加载xterm并运行我的应用程序,一切都正常了