[2018.6.25]fcitx把openbox弄死的不完美凑合解决方法(欢迎提供更好方法)

讨论openbox,awesome,FVWM等WM
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

[2018.6.25]fcitx把openbox弄死的不完美凑合解决方法(欢迎提供更好方法)

#1

帖子 科学之子 » 2016-03-03 17:39

Mon Jun 25 20:17:46 CST 2018
{
54楼包含最新的改进方法(一个守护脚本和用法说明)
}
Sat May 26 17:43:00 CST 2018{
51楼(改进版)有一个无需禁用"XMODIFIERS=@im=fcitx"的方法(即此凑合方法让所有程序都可使用fcitx)
}
Fri Sep 1 23:31:18 CST 2017:
46楼有一个无需禁用"XMODIFIERS=@im=fcitx"的方法(即此凑合方法让所有程序都可使用fcitx)
Wed May 11 19:38:20 CST 2016:
完美方法没找到
37楼有最新的改进版凑合方法
Wed May 11 08:07:10 CST 2016:
试了试,在我的使用环境下,其实应该重装的是im-config
但重装之后虽然输入中文正常,但重启fcitx还是会假死,就像以前一样.
Wed May 11 04:54:28 CST 2016:
如下方法貌似会导致一些"特殊界面"程序无法使用fcitx输入法
比如VirtualBox界面和LibreOffice无法输入中文
猜测是没有设置环境变量的原因?
待会重装fcitx恢复那些文件试试
Thu Mar 10 21:37:49 CST 2016:
/usr/share/im-config/data/22_fcitx.rc里面有一些修改环境变量的部分
把这些修改环境变量的都删掉,只留下启动fcitx的那部分
这样即使使用im-config指定启动也可以正常
以上部分感谢2楼提醒

对于没有im-config目录的情况,建议用grep搜索fcitx进程的路径,如果找到的配置文件无法确定环境变量
参考:23楼
或尝试自行到proc目录查看fcitx运行时的环境变量
grep搜索相应环境变量名


以下是老方法,不推荐使用了
出现openbox被fcitx弄死,试试看禁止fcitx自动运行?
lxsession-edit把fcitx自动运行去掉
im-config设置为none
把~/.config/autostart/fcitx-autostart.desktop备份并删除
然后开机后从终端手动运行如下命令:

代码: 全选

fcitx &
之后ctrl+d把窗口关掉就可以实现后台运行了
虽然麻烦点,但貌似就不会死了
你们也试试看有没有用?
Thu Mar 3 18:00:51 CST 2016补充:
之所以"你们也试试看有没有用? "是因为这个问题的出现是有一定概率,不是每次都出现...
Fri Mar 4 01:16:00 CST 2016补充:
看了看im-config的配置文件
fcitx的自动运行貌似需要复杂的脚本处理
如果觉得手动启动实在麻烦,可以试试把fcitx命令加入到普通的自动运行.
不过这种方法我就没试过了,不知道是否会像默认的自动运行那样死掉.[/s]
上次由 科学之子 在 2018-06-25 20:20,总共编辑 25 次。
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#2

帖子 vickycq » 2016-03-03 17:49

科学之子 写了:也许是自动启动引起的?我这里刚刚进入桌面(此时,退出fcitx时异常概率较低),然后用终端启动fcitx,不论怎么重启fcitx都不会死.
你如何设置 fcitx 不自启?我这里 xfce4 自启中无 fcitx 相关项,.. xdg/autostart 中也没有。最后发现是通过 im-config 自动启动的。修改 /usr/share/im-config/data/22_fcitx.rc 后,终于成功取消了自启。

...然后从终端启动 fcitx,杀掉再启动,立刻崩了
这些用户感谢了作者 vickycq 于这个帖子:
科学之子 (2016-03-03 17:54)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#3

帖子 科学之子 » 2016-03-03 18:04

vickycq 写了:
科学之子 写了:也许是自动启动引起的?我这里刚刚进入桌面(此时,退出fcitx时异常概率较低),然后用终端启动fcitx,不论怎么重启fcitx都不会死.
你如何设置 fcitx 不自启?我这里 xfce4 自启中无 fcitx 相关项,.. xdg/autostart 中也没有。最后发现是通过 im-config 自动启动的。修改 /usr/share/im-config/data/22_fcitx.rc 后,终于成功取消了自启。

...然后从终端启动 fcitx,杀掉再启动,立刻崩了
"im-config设置为none"是我最后才进行的操作,之前进行两个操作貌似都没用(试了"lxsession-edit把fcitx自动运行去掉"之后就没耐心重启了),但我不确定是哪个操作生效的,所以都写出来了
终端用的是什么?我这里没有死过
我是lxde环境
你是怎么杀掉的?我这里通过托盘图标怎么弄都不死,难道是试验次数还不够?运气太好?
另外,在我的lxde环境下貌似直接W-R就可以了,不必从终端启动
也许可以opnbox绑定快捷键更方便?
我试试看重启机器再试试
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#4

帖子 科学之子 » 2016-03-03 18:07

vickycq 写了:
科学之子 写了:也许是自动启动引起的?我这里刚刚进入桌面(此时,退出fcitx时异常概率较低),然后用终端启动fcitx,不论怎么重启fcitx都不会死.
你如何设置 fcitx 不自启?我这里 xfce4 自启中无 fcitx 相关项,.. xdg/autostart 中也没有。最后发现是通过 im-config 自动启动的。修改 /usr/share/im-config/data/22_fcitx.rc 后,终于成功取消了自启。

...然后从终端启动 fcitx,杀掉再启动,立刻崩了
修改 /usr/share/im-config/data/22_fcitx.rc
您是root权限登录?输入法相关的不是本用户修改就可以吗?
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#5

帖子 vickycq » 2016-03-03 19:56

科学之子 写了:"im-config设置为none"是我最后才进行的操作,之前进行两个操作貌似都没用(试了"lxsession-edit把fcitx自动运行去掉"之后就没耐心重启了),但我不确定是哪个操作生效的,所以都写出来了
话说这个输入法自启问题 还是我在本论坛发的第一个帖子: viewtopic.php?f=123&t=334145
当时对 Linux 桌面还不是很懂。
这几天才发现,竟然还是没搞清楚 fcitx 是如何自启的。还好这次很快就找出了根源:im-config
当年可能也是这个问题。
科学之子 写了:终端用的是什么?
xterm.
貌似 fcitx 从终端启动后貌似会自动 fork 到最上面。所以不论怎么启动 fcitx,用 pstree 查看都会发现 fcitx 是 init(systemd) 的子进程

关于应用程序如何读取环境变量,整体还不太理解。这个问题的关键是 openbox 读取到的环境变量
具体看之前的帖子 viewtopic.php?p=3153965#p3153965 下方的一系列试验
这里我又不明白了,“用 xfce4 菜单启动 xfce4-terminal,XMODIFIERS 错误”,难道在终端里执行 echo $XMODIFIERS 不是看 .bashrc .profile 等文件中的设置么,怎么会错误呢?

增加试验:
用 dmenu 启动 xterm,没有延时,echo $XMODIFIERS 错误,不可使用输入法
在 .bashrc 中增加 export XMODIFIERS=@im=fcitx,再用 openbox 菜单启动 xterm,有很大延时,echo $XMODIFIERS 正确,不可使用输入法
在 .bashrc 中增加 export XMODIFIERS=@im=fcitx,再用 xfce4 菜单启动 xfce4-terminal,XMODIFIERS 正确,可以使用输入法
科学之子 写了:你是怎么杀掉的?我这里通过托盘图标怎么弄都不死,难道是试验次数还不够?运气太好?

代码: 全选

$ pgrep fcitx
16318
16343
$ kill 16318
$ pgrep fcitx
$ 
科学之子 写了:您是root权限登录?输入法相关的不是本用户修改就可以吗?
这个应该改完了对所有用户生效吧,凡是输入法设置为 fcitx 的用户都不会自启

印象中 https://code.google.com/archive/p/fcitx/issues/648 这里 csslayer 讲得很清楚,可惜现在看不到了。只记得貌似是 openbox 和 XIM 发生了错误的关系
这些用户感谢了作者 vickycq 于这个帖子:
科学之子 (2016-03-03 20:09)
评价: 3.7%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#6

帖子 科学之子 » 2016-03-03 21:10

vickycq 写了:
科学之子 写了:"im-config设置为none"是我最后才进行的操作,之前进行两个操作貌似都没用(试了"lxsession-edit把fcitx自动运行去掉"之后就没耐心重启了),但我不确定是哪个操作生效的,所以都写出来了
话说这个输入法自启问题 还是我在本论坛发的第一个帖子: viewtopic.php?f=123&t=334145
当时对 Linux 桌面还不是很懂。
这几天才发现,竟然还是没搞清楚 fcitx 是如何自启的。还好这次很快就找出了根源:im-config
当年可能也是这个问题。
科学之子 写了:终端用的是什么?
xterm.
貌似 fcitx 从终端启动后貌似会自动 fork 到最上面。所以不论怎么启动 fcitx,用 pstree 查看都会发现 fcitx 是 init(systemd) 的子进程

关于应用程序如何读取环境变量,整体还不太理解。这个问题的关键是 openbox 读取到的环境变量
具体看之前的帖子 viewtopic.php?p=3153965#p3153965 下方的一系列试验
这里我又不明白了,“用 xfce4 菜单启动 xfce4-terminal,XMODIFIERS 错误”,难道在终端里执行 echo $XMODIFIERS 不是看 .bashrc .profile 等文件中的设置么,怎么会错误呢?

增加试验:
用 dmenu 启动 xterm,没有延时,echo $XMODIFIERS 错误,不可使用输入法
在 .bashrc 中增加 export XMODIFIERS=@im=fcitx,再用 openbox 菜单启动 xterm,有很大延时,echo $XMODIFIERS 正确,不可使用输入法
在 .bashrc 中增加 export XMODIFIERS=@im=fcitx,再用 xfce4 菜单启动 xfce4-terminal,XMODIFIERS 正确,可以使用输入法
科学之子 写了:你是怎么杀掉的?我这里通过托盘图标怎么弄都不死,难道是试验次数还不够?运气太好?

代码: 全选

$ pgrep fcitx
16318
16343
$ kill 16318
$ pgrep fcitx
$ 
科学之子 写了:您是root权限登录?输入法相关的不是本用户修改就可以吗?
这个应该改完了对所有用户生效吧,凡是输入法设置为 fcitx 的用户都不会自启

印象中 https://code.google.com/archive/p/fcitx/issues/648 这里 csslayer 讲得很清楚,可惜现在看不到了。只记得貌似是 openbox 和 XIM 发生了错误的关系
按照您说的方法启动和结束,并没有死掉

代码: 全选

~$ xterm -version
XTerm(312)
我在lxterminal用tab补全没有您说的这个环境变量
关于环境变量的文件:
http://www.cnblogs.com/mengyan/archive/ ... 69894.html

xfce我不了解,爱莫能助
如无问题建议换lxde,组件少,遇到问题解决起来也简单
当然,我是台式机.
可能对笔记本的特殊电源管理有些问题(诸如合上之后自动黑屏之类),不过我想这些都可以通过安装软件来解决.
记得Lubuntu(基于lxde的ubuntu衍生版)上就有个Xfce的电源管理
onlylove
论坛版主
帖子: 4470
注册时间: 2007-01-14 16:23
送出感谢: 0
接收感谢: 102 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#7

帖子 onlylove » 2016-03-03 21:52

为啥你们的fcitx都能把openbox弄死……
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#8

帖子 科学之子 » 2016-03-04 0:25

onlylove 写了:为啥你们的fcitx都能把openbox弄死……
您用的什么桌面环境?
就我自己的情况而言,只要不通过托盘图标"重启"或"退出" fcitx,也很稳定.
记得以前用lubuntu时修改fcitx配置也有一定概率死.
但现在用debian之后装了lxde-core,修改配置也没碰见卡死的情况,只有重启或退出才会死.
现在禁用fcitx的自动运行,手动运行,不论怎么重启或退出也碰不到死的情况.
onlylove
论坛版主
帖子: 4470
注册时间: 2007-01-14 16:23
送出感谢: 0
接收感谢: 102 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#9

帖子 onlylove » 2016-03-04 0:31

科学之子 写了:
onlylove 写了:为啥你们的fcitx都能把openbox弄死……
您用的什么桌面环境?
就我自己的情况而言,只要不通过托盘图标"重启"或"退出" fcitx,也很稳定.
记得以前用lubuntu时修改fcitx配置也有一定概率死.
但现在用debian之后装了lxde-core,修改配置也没碰见卡死的情况,只有重启或退出才会死.
现在禁用fcitx的自动运行,手动运行,不论怎么重启或退出也碰不到死的情况.
所以你们为什么要重启或者退出fcitx呢
#include <stdio.h>
void main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you.\n");
}
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#10

帖子 科学之子 » 2016-03-04 0:59

onlylove 写了:
科学之子 写了:
onlylove 写了:为啥你们的fcitx都能把openbox弄死……
您用的什么桌面环境?
就我自己的情况而言,只要不通过托盘图标"重启"或"退出" fcitx,也很稳定.
记得以前用lubuntu时修改fcitx配置也有一定概率死.
但现在用debian之后装了lxde-core,修改配置也没碰见卡死的情况,只有重启或退出才会死.
现在禁用fcitx的自动运行,手动运行,不论怎么重启或退出也碰不到死的情况.
所以你们为什么要重启或者退出fcitx呢
完美主义 :em09
而且如果能消除这个故障的话,也会变得更稳定,编辑重要文件时也更靠谱.
感觉手动启动也没什么不好的,还能加快boot速度,节省一些内存 :em05
比如有时只是开机看一下天气预报,完全不需要输入法,openbox快捷键一按就能出来了.
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#11

帖子 vickycq » 2016-03-04 0:59

onlylove 写了:所以你们为什么要重启或者退出fcitx呢
我这多是因为 sogoupinyin 不稳定,常常CPU占用率奇高不下(忘了是占满一个核心 还是两个核心各50%了)只好杀掉。再启动时,就会导致 openbox 崩溃,无法响应鼠标键盘事件。
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
科学之子
帖子: 2270
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 846 次
接收感谢: 30 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#12

帖子 科学之子 » 2016-03-04 1:11

vickycq 写了:
onlylove 写了:所以你们为什么要重启或者退出fcitx呢
我这多是因为 sogoupinyin 不稳定,常常CPU占用率奇高不下(忘了是占满一个核心 还是两个核心各50%了)只好杀掉。再启动时,就会导致 openbox 崩溃,无法响应鼠标键盘事件。
:Noting
要是不用搜狗拼音,我的方法是否管用?
我用的是fcitx-pinyin
禁用fcitx默认的自动运行,手动启动就没问题了.

从发帖到现在,试过N此,而且也(为了测试)重启过几次机器,没有一次死过.
头像
tang.zhe
帖子: 1429
注册时间: 2010-07-15 13:31
送出感谢: 73 次
接收感谢: 21 次

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#13

帖子 tang.zhe » 2016-03-04 8:31

科学之子 写了: ...
之后ctrl+d把窗口关掉就可以实现后台运行了
...
ctrl+d是什么快捷键,查不到?
头像
TeliuTe
论坛版主
帖子: 7470
注册时间: 2007-11-25 13:29
系统: 14/16/18/Fedroa22/w7
来自: 新疆博乐
送出感谢: 30 次
接收感谢: 102 次
联系:

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#14

帖子 TeliuTe » 2016-03-04 10:54

我的14.04的openbox和sougou很少遇到问题,
12.04的貌似有阵桌面(用startx登入的)经常自动退出,系统更新了几次,现在很少碰到,
当服务器的机子不怎么动,中文也用的也很少,只是root程序出不来中文,临时从普通程序里复制过去
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: 出现openbox被fcitx弄死,试试看禁止fcitx自动运行?

#15

帖子 vickycq » 2016-03-04 11:40

TeliuTe 写了:...只是root程序出不来中文,临时从普通程序里复制过去
root 权限程序如何启动的,可能环境变量问题
例如 sudo 环境可能设置了 env_reset 导致没有以下环境变量
(假设输入法为 fcitx)

代码: 全选

export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
回复

回到 “窗口管理器”