Linux的虚拟终端(tty)实现中文显示和中文输入以及图片查看

Linux的虚拟终端(tty)实现中文显示和中文输入以及图片查看

前言

因为Linux系统的tty好像是不能直接支持中文显示的,所以要在另外一个程序中运行tty,我的操作系统是kali-linux5.4.0,基于debian的发行版,所以应该会ubuntu、debian是一样的操作

1.先要安装fbterm,才能在tty下显示中文字符,而且只有进入了fbterm,才能切换中文

aptitude install fbterm
如果你的linux版本的库里面没有fbterm,请参考该文章

安装好后,直接在tty界面下输入fbterm就可以进入

2.安装yong输入法

直接百度搜索小小输入法(就是yong输入法),下载压缩包,解压
住:7z文件的解压命令:7za x 你的压缩文件明 -r -o/xxx/xxx
x代表压缩文件,并且按原始目录解压,-r代表递归解压缩所有子文件夹,-o指定目录,-o后面没有空格,直接接目录
进入到解压好的文件目录
运行yong-tool.sh即可
./yong-tool.sh --install

相关的参数
–install
–uninstall
–select

安装好了之后,注销一下重新进入,终端输入:

yong &
让其在后台运行

或者在这个目录下添加一个可执行文件,名称随意

/etc/X11/Xsession.d

里面的内容就是yong &

注:yong输入法不能在xfce4的终端下运行,但是可以在fbterm虚拟终端下运行,运行yong输入法时不能切换ibus输入法工具,所以要切换回原来的ibus,需要卸载yong输入法,注销后重新登录

./yong-tool.sh --uninstall

需要用到yong输入法时,重新安装、登录即可。

3.安装fbv可以在tty下查看图片,支持多张图片查看(fbterm下不能使用fbv,因为fbterm不是tty)

fbv xxx.png xxx.jpeg

我这里写出安装fbv的坑,后来人可以借鉴以下!!!

下载安装fbv压缩包的网址——>s-tech.elsat.net.pl/fbv

1.安装fbv时需要几个依赖工具

可以在解压后的包里面参考这个

cat README
里面有这样几段话
2. REQUIREMENTS
Linux, configured to provide the framebuffer device interface
(/dev/fb0 or /dev/fb/0)
libungif for GIF support
libjpeg for JPEG support
libpng for PNG support

  • 第一个插件 libungif:
    我用的kali5.4.0系统,刚开始用apt直接安装libungif-bin,发现fbv在运行./configure的时候是没有检测到libungif的,所以要从源安装,在这里去下载tar.gz文件,安装过程不再赘述
  • 第二个插件libjpeg
    直接apt安装即可,aptitude install libjpeg-dev
  • 第三个插件libpng
    aptitude install libpng-dev,然后还有一个必然的插件libpng16-16
    。注:这里开始出现了坑
2.开始安装fbv

安装好上三个插件后再运行./configure发现都支持了,然后运行make指令
这时候据出现了错误,导致编译失败

error: dereferencing pointer to incomplete type
if (setjmp (png_ptr->jmpbuf))
                                 ^

并且问题是出在png.c这个源文件的if (setjmp (png_ptr->jmpbuf))语句,报错类型是指针指向不完整的结构类型,作为一个程序员就要找到原因所在:

首先查看png_ptr这个指针的定义,看到这个指针的在每个函数的声明为:
png_structp png_ptr;
在vim里面搜索png_structp的定义,发现没有,但是在包含头文件中有这一行
#include<png.h>;包含了这样一个库函数,这些库函数所在的文件目录为/usr/include这个文件夹中
所以我们去看一下png.h这个头文件中是不是png_structp这个结构体不完整
结果发现这个头文件有对png_structp的模板定义,
所以猜测是不是png_ptr这个png_structp的指针没有jmpbuf成员,
所以在png.h中搜索jmpbuf,发现了这个宏定义,是这样的:
#define png_jmpbuf(png_ptr)

好的,问题就出在这里,我们之前下的libpng库是——>libpng16-16,如果系统是之前的下的是libpng12-dev不会出现这个问题,最新的libpng16对jmpbuf重新定义了一下,而fbv已经很久没有更新了所以我们需要把解压后的fbv文件夹中的png.c中的所有if(setjmp (png_ptr->jmpbuf))改成png.h中定义的指针调用改成即可:

if(setjmp(png_jmpbuf(png_ptr)))

注:png_ptr是在png.c中定义的结构指针,名字可能随着以后fbv的更新而有所不同哦(但开发人员应该不会去改),程序员自己细品

现在重新make,发现成功了,然后make install即可,结束!!!

更新

安装fbgrab在tty下可以截图

aptitude install fbgrab

注:fbgrab只能在tty下截图,比如fbgrab -c 1 xxx.png,-c表示选择第几个tty,这里是tty1

参考博客

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值