故事背景:最近在做资产上报相关功能,要支持中文输入,如果正常快捷方式启动程序没问题,但是升级或者卸载重新安装,自启的时候是使用su usr -C XX.sh启动,root下启动没办法获取用户的环境变量,下面开始咱们探险之路。。。

探索之路:通过export打印root和用户下的环境变量对比,以及google相关linux下输入法相关问题,找到了QT_IM_MODULE这个变量,不同的系统会是ibus或者fctix或者其他等等,,,

解决方案:因为程序第一次安装的时候需要用户手动启动,我们需要在代码里面添加获取当前用户下的QT_IM_MODULE的值,然后写入全局一个文件,然后在钩子脚本里面去获取这个全局变量的值,在启动脚本里面通过设置export QT_IM_MODULE=XX就可以了,下面展示代码

代码有话说:

1、程序里面需要添加的代码:

//添加全局中文输入法环境变量

QString qstrInputMethod = path;

qstrInputMethod += "/.local/sdforcnos/sdforcnos.inputMethod";

char *pInputEnv = getenv("QT_IM_MODULE");

if(pInputEnv != NULL)

{

QString qstrCMD = QString("echo %1 > %2").arg(pInputEnv).arg(qstrInputMethod);

system(qstrCMD.toStdString().c_str());

printf("---%s-----------QT_IM_MODULE=%s\n", qstrCMD.toStdString().c_str(), pInputEnv);

}

2、钩子脚本需要的代码:

if [ -e "/home/${user}/.local/sdforcnos/sdforcnos.inputMethod" ];then

inputEnv=`cat /home/${user}/.local/sdforcnos/sdforcnos.inputMethod`

if [ ! -z "$inputEnv" ]; then

export QT_IM_MODULE="$inputEnv"

fi

fi

su $user -c "/usr/bin/startsd &"

总结

到此这篇关于linux下中文输入法问题的文章就介绍到这了,更多相关linux中文输入法问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

linux系统输入法进程怎么关闭,快速解决linux下中文输入法问题相关推荐

  1. 解决Ubuntu下中文输入法顿号打不出来的情况

    ubuntu下中文顿号'.'打不出来的解决方法 今天早上写报告的时候在Ubuntu下搜狗拼音法输入时,顿号'.'一直打不出来,一直是'|',试了切换中英文输入也不行,打开搜狗拼音设置发现是 中/英标点 ...

  2. Linux系统守护进程详解

    文中有不对或者有不清楚的地方,请大家告诉我,谢谢!   Linux系统守护进程详解 不要关闭下面这几个服务: acpid, haldaemon, messagebus, klogd, network, ...

  3. Linux系统编程——进程基础知识

    Linux系统编程--进程基础知识 1.程序和进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁-) 进程,是一个抽象的概念,与操作系统原理联系紧密.进程 ...

  4. linux 查看防火墙对应的进程,Linux系统防火墙进程查看的实用方法

    Linux系统防火墙进程查看的实用方法 作者 HonestQiao 2008年03月17日 16:00 启动防火墙 1) 重启后生效 开启: chkconfig iptables on 关闭: chk ...

  5. Linux系统不响应SYN包的解决办法

    Linux系统不响应SYN包的解决办法 关于syn为什么没有回应的问题真是郁闷了好久. 现象就是在客户端发出syn包的时候,服务器端对客户端的syn包不做任何回应. 在网上逛了逛,终于找到有人也发生了 ...

  6. Linux系统的进程和计划任务

    文章目录 进程和计划任务 1程序 1.1什么是程序 2进程 2.1什么是进程 2.2进程具有的特征: 线程 3进程管理相关命令 3.1ps命令 3.2top命令 3.2.1第一部分 3.2.2第二部分 ...

  7. Linux 系统编程 -进程概念篇

    Linux系统编程-进程篇 冯诺依曼体系结构 冯诺依曼的两个重要思想 当代计算机的三级缓存 操作系统 操作系统的概念 操作系统的组成 操作系统作用 Linux下的操作系统体系 进程 进程概念 进程特性 ...

  8. linux系统gpk-update-icon进程占用CPU资源100%

    1. 症状:linux系统gpk-update-icon进程占用CPU资源100%,监控到用户进程跑到100% 2.原因分析: gpk-update-icon进程在GUI模式下会自动通知rpm软件包更 ...

  9. Linux系统的进程管理

    Linux系统的进程管理 一.系统进程介绍 1.进程概念 2.进程特点 3.进程类型 二.查看系统进程 1.PS命令 2.查看系统进程 3.ps aux结果说明 4.top命令 ①top命令使用方法 ...

  10. 使用shell脚本对Linux系统和进程资源进行监控

    今天发现一个网站,快课网,感觉还不错,里面有编程,面试,算法等等相关内容. 链接如下:http://www.cricode.com/ 首页便看到这篇文章,正好对Linux和shell等持续关注,转载学 ...

最新文章

  1. 人脸识别经典算法:特征脸方法(Eigenface)
  2. springboot读取linux文件_SpringBoot读取Resource下文件的几种方式
  3. LoadRunner8.1破解汉化过程
  4. 列运算_MIT—线性代数笔记06 列空间和零空间
  5. 文字处理技术:吾知道他们听不懂,为何讲了一把WP布局
  6. Linux 搭建mysql读写分离
  7. 谷歌官方Android镜像下载(中文站)
  8. 期货日内交易如何判断方向
  9. php smarty 加减,php Smarty配置方法
  10. qmoc文件_Qt(2):MOC文件解析
  11. C语言:memcmp()---字符串比较
  12. 微信云开发——日记小程序
  13. ryzen linux 搭配显卡,AMD Ryzen 2600CPU搭配什么显卡比较合理?
  14. 谷歌关闭SameSite功能
  15. 免费在线接线图软件 + 示例
  16. [Swift]LeetCode611. 有效三角形的个数 | Valid Triangle Number
  17. 基于flowable的审批系统安装及部署
  18. java实验二_Java实验2
  19. 分享一下自己的心得等级保护和分级保护
  20. arduino与RF

热门文章

  1. 树形DP(Simple Tree,玲珑杯 Round#8 B lonlife 1080)
  2. MAC——本机域名[localhost]配置
  3. Pandas学习——分组
  4. 广告创作的灵魂---创意
  5. 程序员木讷?我反手就是一串代码把姑娘撩到幸福地流泪
  6. 一线顶级互联网公司offer的成功经验【转自IT面试】
  7. BigDecimal的equals方法做等值比较问题
  8. 小武实习的debug日记2
  9. C++设计模式 | Singleton单例模式
  10. 实验吧——WEB-天下武功唯快不破