https://wiki.archlinux.org/api.php?action=feedcontributions&user=Callofdutyops&feedformat=atom
ArchWiki - User contributions [en]
2024-03-28T15:20:34Z
User contributions
MediaWiki 1.41.0
https://wiki.archlinux.org/index.php?title=Shadowsocks_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=511165
Shadowsocks (简体中文)
2018-02-16T20:04:27Z
<p>Callofdutyops: /* 性能优化 */ typo fix</p>
<hr />
<div>[[Category:简体中文]]<br />
[[Category:Networking (简体中文)]]<br />
[[en:Shadowsocks]]<br />
[[ja:Shadowsocks]]<br />
{{TranslationStatus (简体中文)|Shadowsocks|2018-1-25|472909}}<br />
{{提示|由于shadowsocks多为中文用户使用,该中文页面大量内容领先于英文页面。}}<br />
[https://github.com/clowwindy/shadowsocks/ Shadowsocks]是一个轻量级[[Wikipedia:SOCKS_(protocol)#SOCKS5|socks5]]代理,最初用 Python 编写。<br />
==安装==<br />
可[[install|安装]] {{pkg|shadowsocks-libev}} 或者 {{pkg|shadowsocks}}。<br />
==配置==<br />
shadowsocks以[[Wikipedia:JSON|json]]为配置文件格式,以下是安装包中的样例:<br />
{{hc|/etc/shadowsocks/config.json|{<br />
"server":"remote-shadowsocks-server-ip-addr",<br />
"server_port":443,<br />
"local_address":"127.0.0.1",<br />
"local_port":1080,<br />
"password":"your-passwd",<br />
"timeout":300,<br />
"method":"chacha20-ietf",<br />
"fast_open":false,<br />
"workers":1<br />
}<br />
}}<br />
{{提示|shadowsocks: 若需同时指定多个服务端ip,使用如下例的语法{{ic|"server":["1.1.1.1","2.2.2.2"],}}}}<br />
{{提示|要找出在你的机器上运行最快的方式,可以运行[https://github.com/shadowsocks/shadowsocks-libev/blob/0437e05aa8ec7f36f1eeb8c366dfd2b2b3b0288b/scripts/iperf.sh 这个脚本]}}<br />
{| class="wikitable"<br />
! Name !! Explanation<br />
|-<br />
|server<br />
|服务端监听地址(IPv4或IPv6)<br />
|-<br />
|server_port<br />
|服务端端口,一般为{{ic|443}}<br />
|-<br />
|local_address<br />
|本地监听地址,缺省为{{ic|127.0.0.1}} 可用-b参数设置<br />
|-<br />
|local_port<br />
|本地监听端口,一般为{{ic|1080}}<br />
|-<br />
|password<br />
|用以加密的密匙<br />
|-<br />
|timeout<br />
|超时时间(秒)<br />
|-<br />
|method<br />
|参阅 [https://github.com/shadowsocks/shadowsocks/wiki/Encryption 加密]<br />
|-<br />
|fast_open<br />
|是否启用[https://github.com/clowwindy/shadowsocks/wiki/TCP-Fast-Open TCP-Fast-Open]<br />
|-<br />
|wokers<br />
|worker数量,如果不理解含义请不要改<br />
|}<br />
<br />
<br />
=== 客户端 ===<br />
==== 命令行 ====<br />
运行 {{ic|ss-local}} 启动客户端;若需指定配置文件的位置:<br />
{{bc|# sslocal -c /etc/shadowsocks/config.json}}<br />
{{注意|有用户报告无法成功在运行时加载{{ic|config.json}}}},或可尝试手动运行:<br />
{{bc|# sslocal -s ''服务器地址'' -p ''服务器端口'' -l ''本地端端口'' -k ''密码'' -m ''加密方法''}}<br />
配合nohup和&可以使之后台运行,关闭终端也不影响:<br />
{{bc|#nohup sslocal -s ''服务器地址'' -p ''服务器端口'' -l ''本地端端口'' -k ''密码'' -m ''加密方法'' &}}<br />
增加 {{ic|-v}} 参数获取详细log信息<br />
----<br />
<br />
====以守护进程形式运行客户端====<br />
{{注意|shadowsocks和shadowsocks-libev的systemd 系统单元使用相同的配置文件路径 ({{ic|/etc/shadowsocks}})}}<br />
Shadowsocks的[[systemd_(简体中文)|systemd]]服务可在{{ic|/etc/shadowsocks/}}里调用不同的{{ic|''conf-file''.json}}(以{{ic|''conf-file''}}为区分标志),例:<br />
在{{ic|/etc/shadowsocks/}}中创建了{{ic|foo.json}}配置文件,那么执行以下语句就可以调用该配置:<br />
# systemctl start shadowsocks@foo<br />
若需开机自启动:<br />
# systemctl enable shadowsocks@foo<br />
{{提示|可用{{ic|journalctl -u shadowsocks@foo}}来查询日志;}}<br />
<br />
====图形界面客户端====<br />
安装 {{Pkg|shadowsocks-qt5}}。<br />
<br />
====配置代理====<br />
shadowsocks客户端启动后,其他程序并不会直接应用socks5连接,可使用以下方法对其进行配置。<br />
<br />
* 全局代理<br />
使用[[Iptables (简体中文)]]等工具,桌面环境用户可使用桌面设置中网络设置里的代理功能。<br />
{{注意|使用全局代理会使所有的连接通过shadowsocks服务器中转,一般不建议使用全局代理。另外,gnome桌面的代理设置无法正常使用。}}<br />
<br />
* 程序设置自身代理<br />
不少程序都能在其设置中添加代理,只需要在其设置中找到网络相关配置,添加socks v5代理,参照本地配置文件中的ip和port填写即可(例如浏览器的配置可参考下文[[#浏览器配置]])。<br />
<br />
* 使用工具进行临时代理<br />
例如{{Pkg|proxychains-ng}}(参看[[Proxy settings#Using a SOCKS proxy]])和{{AUR|redsocks-git}}。<br />
例如使用[[proxychanis]]代理的例子(假设你已经在{{ic|/etc/proxychains.conf}}中配置好socks5):<br />
proxychains firefox<br />
<br />
* 转换为http代理<br />
直接走socks代理有时未必是用户的期望,可使用privoxy等软件转化socks代理为http代理。可使用{{Pkg|privoxy}}和{{Pkg|squid}}等工具。<br />
以[[Privoxy]]为例,编辑privoxy配置文件,添加socks5转发(不要漏下1080后面的点):<br />
forward-socks5 / 127.0.0.1:1080 .<br />
默认监听的是本机的8188端口,即{{ic|localhost:8188}},可更改为监听其他端口,如<br />
listen-address 127.0.0.1:8010<br />
{{提示|如果希望网络上其他主机也能使用该privoxy配置,可以更改127.0.0.1为0.0.0.0或直接删除127.0.0.1。}}<br />
<br />
使用[[systemd]]启动或重启{{ic|privoxy.service}}服务,就可以使用了。假设转化后的http代理为127.0.0.1:8010,则在终端中启动(以启动chromium为例):<br />
$ chromium %U --proxy-server=127.0.0.1:8010<br />
<br />
=====浏览器配置=====<br />
{{提示|浏览器直接使用[[Wikipedia:SOCKS|SOCKS]]代理时,你可能需要使用[[privoxy]]等辅助程序,因为一般浏览器会泄漏你的DNS请求,从而减少你的匿名,参看前文[[#配置代理]]中转化为http代理一节。}}<br />
<br />
*firefox<br />
**使用扩展如[https://getfoxyproxy.org/ foxyproxy]或[https://github.com/FelisCatus/SwitchyOmega switchyomega]等。<br />
**直接在首选项-常规-网络代理中设置“手动代理配置”或者“自动代理配置的URL(PAC)”。<br />
使用“手动代理配置”,在”socks主机“栏填上shadowsocks设置的本地ip(默认127.0.0.1)和端口(默认1080),点选”SOCKS v5“,然后保存即可。<br />
使用“自动代理配置的URL(PAC)”,可使用[https://github.com/JinnLynn/genpac genpac]工具生成,或者使用现成的pac如[https://github.com/search?utf8=%E2%9C%93&q=gfwlist+pac&type= gfwlist to pac],将该页面url填入并保存即可。<br />
<br />
* Chrome/Chromium<br />
使用插件如[https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif switchomega](使用方法参看[https://github.com/FelisCatus/SwitchyOmega/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 SwitchyOmega-wiki]<br />
<br />
===服务端===<br />
{{提示|普通用户无需配置服务端。}}<br />
==== 以命令行启动进程 ====<br />
可使用以下方法运行:<br />
{{注意|如果安装的是{{Pkg|shadowsocks-libev}}则使用{{ic|ss-server}}替代{{ic|ssserver}}。}}<br />
<br />
* 在配置文件目录内运行<br />
# 在服务器上{{ic|cd}}到{{ic|config.json}}所在目录:<br />
# 运行{{ic|ssserver}}<br />
如果想在后台一直运行,可改执行:{{ic|nohup ssserver > log &}};<br />
<br />
* 手动指定配置参数<br />
{{bc|# ssserver -s ''监听地址(通常为0.0.0.0)'' -p ''监听端口'' -k ''密码'' -m ''加密方法'' -t ''超时时间(秒)''}}<br />
配合nohup和&可使之后台运行,关闭终端也不影响,例如:<br />
# nohup ssserver -s 0.0.0.0 -p 443 -k a29rw4pacnj2ahmf -m aes-192-cfb -t 600 &<br />
<br />
==== 以守护进程形式运行 ====<br />
首先在{{ic|/etc/shadowsocks/foo.json}}(foo是文件名,可随意更改)配置文件内填写好相关参数,然后可以使用以下方法使其以守护进程形式在后台运行:<br />
<br />
* 使用{{ic|-d}}参数<br />
# ssserver -c /etc/shadowsocks/foo.json -d start #启动<br />
# ssserver -c /etc/shadowsocks/foo.json -d stop #停止<br />
# ssserver -c /etc/shadowsocks/foo.json -d restart #重启<br />
<br />
* 使用systemd <br />
<br />
# systemctl start shadowsocks-server@foo #立即启动<br />
# systemctl enable shadowsocks-server@foo #开机自启动<br />
{{注意|如果使用{{Pkg|shadowsocks-libev}},则使用{{ic|shadowsocks-libev-server}}替代{{ic|shadowsocks-server}}。}}<br />
{{提示|如果使用的服务端端口号小于1024,需要修改{{ic|usr/lib/systemd/system/shadowsocks-server@.service}}使得{{ic|1=user=root}},之后使用{{ic|systemctl daemon-reload}}重新载入守护进程配置,即可开启监听。当然也可以用'''root'''权限运行shadowsocks,来开启端口号小于1024的监听。}}<br />
<br />
==== 多端口运行 ====<br />
{{注意|{{Pkg|shadowsocks}}和{{AUR|shadowsocks-go-server}}等支持多端口,而{{Pkg|shadowsocks-libev}}不支持,可到[https://github.com/shadowsocks/shadowsocks/wiki/Configure-Multiple-Users Configure-Multiple-Users]查看哪些版本支持多端口。}}<br />
将配置文件中的{{ic|server_port}}和{{ic|password}}配置删去,添加上{{ic|"port_password"}}字段配置端口及其密码,示例:<br />
{{hc|/etc/shadowsocks/foo.json|<br />
{<br />
"server": yourip,<br />
"_comment": {<br />
"25":"me",<br />
"9999": "girl",<br />
"520": "godness"<br />
},<br />
"port_password": {<br />
"25": "kexuedeshangwang",<br />
"520": "loveyoumygodness",,<br />
"9999": "forever",<br />
},<br />
"local_address": "127.0.0.1",<br />
"local_port": 1080,<br />
"timeout": 300,<br />
"method": "aes-256-cfb",<br />
"fast_open": false,<br />
"workers": 1,<br />
"prefer_ipv6": false<br />
}<br />
}}<br />
<br />
{{提示|有反映多端口配置后使用systemd进行守护进程运行会失败,该情况下可使用上文{{ic|-d}}参数的方法。}}<br />
====加密方法====<br />
<br />
{{注意|默认加密方法{{ic|table}}速度很快,但很不安全。请不要使用{{ic|rc4}},它不安全。}}<br />
<br />
{{提示|安装{{ic|M2Crypto}}可略微提升加密速度,对于Python2来说,安装{{pkg|python2-m2crypto}}即可。}}<br />
<br />
可选的加密方式:<br />
* aes-256-cfb(Shadowsocks经典、传统的加密算法,也是Shadowsocks的作者推荐过的加密算法,移动平台可能开销稍高)<br />
* aes-128-cfb<br />
* aes-192-cfb<br />
* aes-256-ofb<br />
* aes-128-ofb<br />
* aes-192-ofb<br />
* aes-128-ctr<br />
* aes-192-ctr<br />
* aes-256-ctr<br />
* aes-128-cfb8<br />
* aes-192-cfb8<br />
* aes-256-cfb8<br />
* aes-128-cfb1<br />
* aes-192-cfb1<br />
* aes-256-cfb1<br />
* aes-256-gcm<br />
* aes-128-gcm<br />
* aes-192-gcm<br />
* bf-cfb<br />
* camellia-128-cfb<br />
* camellia-192-cfb<br />
* camellia-256-cfb<br />
* cast5-cfb<br />
* chacha20<br />
* idea-cfb<br />
* rc2-cfb<br />
* rc4-md5<br />
* salsa20<br />
* seed-cfb<br />
<br />
{{注意|官方软件源的{{pkg|shadowsocks}}不支持全部加密方式,官方软件源Chacha20以及salsa20的支持可以安装libsodium(For salsa20 and chacha20 support) 。若对非主流加密方式有需求,可尝试[[Arch User Repository (简体中文)|aur]]中的{{aur|shadowsocks-nodejs}}{{Broken package link|{{aur-mirror|shadowsocks-nodejs}}}}}}<br />
<br />
加密类别列表参见[https://github.com/shadowsocks/shadowsocks/wiki/Encryption]。<br />
并且可以使用[https://github.com/shadowsocks/shadowsocks-libev/blob/0437e05aa8ec7f36f1eeb8c366dfd2b2b3b0288b/scripts/iperf.sh]脚本来比较和找出在你机器上运行最快的加密方法。<br />
<br />
====性能优化====<br />
* 多用户使用的情况下,建议使用[[#多端口运行]],尽量避免一个端口有过多用户连接。<br />
* 使用[https://www.google.com/search?newwindow=1&q=%E5%B8%B8%E7%94%A8%E7%AB%AF%E5%8F%A3%E5%8F%B7&oq=%E5%B8%B8%E7%94%A8%E7%AB%AF%E5%8F%A3%E5%8F%B7&gs_l=psy-ab.3...30218.34357.0.34596.9.8.1.0.0.0.552.2392.4-4j1.5.0....0...1.1.64.psy-ab..4.3.1400...35i39k1j0i5i30k1.0.tTk_3WbYY-g 常用端口]如25、443、21等等,[https://zh.wikipedia.org/wiki/%E9%98%B2%E7%81%AB%E9%95%BF%E5%9F%8E GFW]为减轻压力,对常用端口检查相对较少。<br />
* 使用{{Pkg|python-gevent}}提升python的{{Pkg|shadowsocks}}运行的速度。<br />
* 使用{{Pkg|python-pip}}安装{{ic|M2Crypto}}可略微提升加密速度;使用较弱的加密方式CR4-MD5提升加密速度(但是会降低安全程度,请根据实际使用情况考虑加密强度的选择)。<br />
* 优化内核参数,参看[https://github.com/shadowsocks/shadowsocks/wiki/Optimizing-Shadowsocks Optimizing-Shadowsocks]进行设置。<br />
* 开启fast open降低延迟<br />
# echo 'net.ipv4.tcp_fastopen = 3' >> /etc/sysctl.conf<br />
<br />
* 开启TCP[https://github.com/google/bbr BBR]拥塞控制算法<br />
{{注意|需要内核4.9及以上版本,可使用{{ic|uname -r}}查看。}}<br />
{{警告|该算法增加发包率从而提升流量消耗;可能消耗更多的系统资源;如果使用openvz的服务器,不建议使用bbr,据反映容易导致判定为滥用而被服务商禁用。}}<br />
<br />
modprobe tcp_bbr<br />
echo "tcp_bbr" >> /etc/modules-load.d/modules.conf<br />
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf<br />
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf<br />
sysctl -p<br />
<br />
检查:<br />
sysctl net.ipv4.tcp_available_congestion_control<br />
sysctl net.ipv4.tcp_congestion_control<br />
<br />
如果结果都有 bbr字样, 则证明你的内核已开启 bbr。<br />
执行{{ic|lsmod | grep bbr}},看到有{{ic|tcp_bbr}}模块即说明 bbr 已启动。<br />
<br />
==参阅==<br />
* [https://www.v2ex.com/t/32777 shadowsocks announcement]<br />
* [https://github.com/clowwindy/shadowsocks shadowsocks@gitHub]<br />
* [https://github.com/clowwindy/shadowsocks/wiki/Shadowsocks-%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E shadowsocks使用说明]<br />
* [http://blog.robotshell.org/2014/about-shadowsocks/ About Shadowsocks]<br />
* [http://blog.pcwuyu.com/index.php/Arch/archlinux-shadowsocks-configuration.html shadowsocks最新配置]<br />
* [https://www.zhihu.com/question/53559433 Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?]</div>
Callofdutyops
https://wiki.archlinux.org/index.php?title=Hadoop&diff=509311
Hadoop
2018-02-02T08:08:43Z
<p>Callofdutyops: /* Set up passphraseless ssh */</p>
<hr />
<div>[[Category:Distributed computing]]<br />
{{Related articles start}}<br />
{{Related|Apache spark}}<br />
{{Related articles end}}<br />
[[ja:Hadoop]]<br />
[[zh-hans:Hadoop]]<br />
[https://hadoop.apache.org Apache Hadoop] is a framework for running applications on large cluster built of commodity hardware. The Hadoop framework transparently provides applications both reliability and data motion. Hadoop implements a computational paradigm named Map/Reduce, where the application is divided into many small fragments of work, each of which may be executed or re-executed on any node in the cluster. In addition, it provides a distributed file system (HDFS) that stores data on the compute nodes, providing very high aggregate bandwidth across the cluster. Both MapReduce and the Hadoop Distributed File System are designed so that node failures are automatically handled by the framework. <br />
<br />
== Installation ==<br />
<br />
[[Install]] the {{AUR|hadoop}} package.<br />
<br />
== Configuration ==<br />
<br />
By default, hadoop is already configured for pseudo-distributed operation. Some environment variables are set in {{ic|/etc/profile.d/hadoop.sh}} with different values than traditional hadoop.<br />
<br />
{| class="wikitable"<br />
|-<br />
! ENV<br />
! Value<br />
! Description <br />
! Permission <br />
|-<br />
| HADOOP_CONF_DIR<br />
| {{ic|/etc/hadoop}}<br />
| Where configuration files are stored.<br />
| Read<br />
|-<br />
| HADOOP_LOG_DIR<br />
| {{ic|/tmp/hadoop/log}}<br />
| Where log files are stored.<br />
| Read and Write<br />
|-<br />
| HADOOP_SLAVES<br />
| {{ic|/etc/hadoop/slaves}}<br />
| File naming remote slave hosts.<br />
| Read <br />
|-<br />
| HADOOP_PID_DIR<br />
| {{ic|/tmp/hadoop/run}}<br />
| Where pid files are stored.<br />
| Read and Write<br />
|}<br />
<br />
You also should set up the following files correctly. <br />
<br />
/etc/hosts<br />
/etc/hostname <br />
/etc/locale.conf<br />
<br />
You need to tell hadoop your JAVA_HOME in {{ic|/etc/hadoop/hadoop-env.sh}} because it doesn't assume the location where it's installed to in Arch Linux by itself:<br />
<br />
{{hc|1=/etc/hadoop/hadoop-env.sh|2=<br />
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk/<br />
}}<br />
<br />
== Single Node Setup ==<br />
{{Note|This section is based on the [http://hadoop.apache.org/docs/stable/ Hadoop Official Documentation] }}<br />
<br />
=== Standalone Operation ===<br />
<br />
By default, Hadoop is configured to run in a non-distributed mode, as a single Java process. This is useful for debugging.<br />
<br />
The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.<br />
<br />
$ HADOOP_CONF_DIR=/usr/lib/hadoop/orig_etc/hadoop/<br />
$ mkdir input<br />
$ cp /etc/hadoop/*.xml input<br />
$ hadoop jar /usr/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'<br />
$ cat output/*<br />
<br />
=== Pseudo-Distributed Operation ===<br />
<br />
Hadoop can also be run on a single-node in a pseudo-distributed mode where each Hadoop daemon runs in a separate Java process.<br />
<br />
By default, Hadoop will run as the user root. You can change the user in {{ic|/etc/conf.d/hadoop}}:<br />
<br />
HADOOP_USERNAME="<your user name>"<br />
<br />
==== Set up passphraseless ssh ====<br />
<br />
Make sure you have [[sshd]] enabled, or start it with {{ic|systemctl enable sshd}}. Now check that you can connect to localhost without a passphrase:<br />
<br />
$ ssh localhost<br />
<br />
If you cannot ssh to localhost without a passphrase, execute the following commands:<br />
<br />
$ ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa<br />
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2<br />
$ chmod 0600 ~/.ssh/authorized_keys<br />
<br />
Also make sure this line is commented in {{ic|/etc/ssh/sshd_config}}<br />
<br />
{{hc|/etc/ssh/sshd_config|<br />
#AuthorizedKeysFile .ssh/authorized_keys}}<br />
<br />
==== Execution ====<br />
<br />
Format a new distributed-filesystem:<br />
$ hadoop namenode -format<br />
<br />
[[Start]] the following hadoop systemd units: {{ic|hadoop-datanode}}, {{ic|hadoop-jobtracker}}, {{ic|hadoop-namenode}}, {{ic|hadoop-secondarynamenode}}, {{ic|hadoop-tasktracker}}.<br />
<br />
The hadoop daemon log output is written to the {{ic|<nowiki>${HADOOP_LOG_DIR}</nowiki>}} directory (defaults to {{ic|/var/log/hadoop}}).<br />
<br />
Browse the web interface for the NameNode and the JobTracker; by default they are available at:<br />
<br />
* NameNode - http://localhost:50070/<br />
* JobTracker - http://localhost:50030/<br />
<br />
Copy the input files into the distributed filesystem:<br />
$ hadoop fs -put /etc/hadoop input<br />
<br />
Run some of the examples provided:<br />
$ hadoop jar /usr/lib/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'<br />
<br />
Examine the output files:<br />
<br />
Copy the output files from the distributed filesystem to the local filesytem and examine them:<br />
$ hadoop fs -get output output<br />
$ cat output/*<br />
<br />
or<br />
<br />
View the output files on the distributed filesystem:<br />
$ hadoop fs -cat output/*<br />
<br />
When you're done, stop the daemons with:<br />
# systemctl stop hadoop-datanode<br />
# systemctl stop hadoop-jobtracker<br />
# systemctl stop hadoop-namenode<br />
# systemctl stop hadoop-secondarynamenode<br />
# systemctl stop hadoop-tasktracker</div>
Callofdutyops
https://wiki.archlinux.org/index.php?title=Fcitx_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=415975
Fcitx (简体中文)
2016-01-17T20:00:40Z
<p>Callofdutyops: /* Vim */</p>
<hr />
<div>[[Category:简体中文]]<br />
[[Category:Internationalization (简体中文)]]<br />
[[en:Fcitx]]<br />
[[ja:Fcitx]]<br />
{{Related articles start}}<br />
{{Related|IBus}}<br />
{{Related|SCIM}}<br />
{{Related|UIM}}<br />
{{Related articles end}}<br />
[http://code.google.com/p/fcitx/ Fcitx] (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的[http://en.wikipedia.org/wiki/Input_method 输入法]平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。<br />
<br />
== 安装 ==<br />
<br />
安装位于 [[Official repositories (简体中文)]] 里的 {{Pkg|fcitx}}.<br />
<br />
=== 输入法 ===<br />
<br />
==== 第三方拼音输入法 ====<br />
<br />
Fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果. 在 Fcitx 支持的拼音输入法中,内置拼音响应速度最快,{{Pkg|fcitx-sunpinyin}} 的综合效果最好,{{Pkg|fcitx-libpinyin}} 算法比 sunpinyin 先进,但是尚有很多 bug 而且欠缺良好的词库。其它的还有:<br />
<br />
* {{Pkg|fcitx-rime}}, 即著名中文输入法 [https://code.google.com/p/rimeime/ Rime] 的 Fcitx 版本。但它不支持 Fcitx 本身的 [[#特殊符号]] 和 [[#快速输入]] 功能,自定义设置请参见[http://rime.im 官方],<br />
* {{Pkg|fcitx-googlepinyin}}, Google 拼音输入法 for Android.<br />
* {{AUR|fcitx-sogoupinyin}}, 搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输入。[http://pinyin.sogou.com/linux/ 官方网址]<br />
<br />
==== 云拼音 ====<br />
<br />
{{Pkg|fcitx-cloudpinyin}} 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。<br />
<br />
启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。<br />
<br />
{{注意|不推荐将云拼音候选词设为第一个候选词,因为当网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置,于是这个过程可能会涉及到默认候选词的改变。}}<br />
<br />
==== 异国语言输入引擎 ====<br />
<br />
* {{Pkg|fcitx-anthy}}, 为 Fcitx 添加 anthy (日语) 输入引擎支持。<br />
* {{Pkg|fcitx-chewing}}, 为 Fcitx 添加 chewing (繁体中文注音) 输入引擎支持。<br />
* {{Pkg|fcitx-hangul}}, 为 Fcitx 添加 hangul (韩语) 输入引擎支持。<br />
* {{Pkg|fcitx-m17n}}, 为 Fcitx 添加 m17n (多国语言码表) 输入引擎支持。<br />
* {{Pkg|fcitx-mozc}}, 为 Fcitx 添加 mozc (日语) 输入引擎支持,mozc 是 Google 日语输入法的开源版本。<br />
* {{Pkg|fcitx-unikey}}, 为 Fcitx 添加 unikey (越南语) 输入引擎支持。<br />
* {{Pkg|fcitx-sayura}}, 为 Fcitx 添加 sayura (僧伽罗语) 输入引擎支持。<br />
<br />
=== 输入法模块 ===<br />
<br />
Fcitx 提供对 Gtk+/Qt 提供了输入法模块,请根据需要安装 {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}}, {{Pkg|fcitx-qt4}} 和 {{Pkg|fcitx-qt5}}. 多软件包 {{Grp|fcitx-im}} 打包了全部.(现在已经包括 {{Pkg|fcitx-qt5}}).<br />
<br />
{{警告|即使未安装输入法模块,一般还是可以在大部分程序中使用输入法,不过很可能出现从无法光标跟随、无法显示预编辑字符串、无法输入甚至程序卡死等情况。如无特殊情况请直接安装 {{Grp|fcitx-im}}.}}<br />
<br />
某些程序不使用 Gtk+/Qt 的输入法模块,这些程序包括: <br />
<br />
* 所有不使用 Gtk+/Qt的程序,如使用 Tk, motif, 甚至 xlib 的程序<br />
* Emacs<br />
* Opera<br />
* OpenOffice<br />
* LibreOffice<br />
* Skype<br />
* Wine<br />
* Java<br />
* Xterm<br />
* urxvt<br />
* WPS<br />
<br />
=== 其它 ===<br />
<br />
* {{Pkg|fcitx-ui-light}}, Fcitx 的轻量 UI.<br />
* {{Pkg|fcitx-fbterm}}, Fbterm 对 Fcitx 的支持。<br />
* {{Pkg|fcitx-table-extra}} Fcitx 的一些额外码表支持,包括仓颉 3, 仓颉 5, 粤拼, 速成, 五笔, 郑码等等<br />
* {{Pkg|fcitx-table-other}}, Fcitx 的一些更奇怪的码表支持,包括 Latex, Emoji, 以及一大堆不明字符等等。<br />
* {{Pkg|kcm-fcitx}}, KDE 的 Fcitx 输入法模块。<br />
<br />
您还可以在 [[Arch User Repository (简体中文)]] 找到更多以上软件包的 Git 版以及其它。<br />
<br />
== 使用 ==<br />
<br />
=== 桌面环境 ===<br />
<br />
如果您用 XDG 兼容的桌面环境,比如 [[KDE]], [[GNOME]], [[XFCE]], [[LXDE]], 那么当您安装好 Fcitx 并重新登录后,Fcitx 应该会自动启动。如果没有的话,可以打开控制台并运行:<br />
<br />
fcitx<br />
<br />
为检验 Fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。<br />
<br />
如果 Fcitx 没有随桌面环境自动启动,或者您想修改下 Fcitx 启动参数,请用桌面环境提供的自动启动工具配置,或者直接编辑用户目录{{ic|~/.config/autostart/}} 下的 {{ic|fcitx-autostart.desktop}} 文件以确认自动启动是否被禁用。如果用户目录下的文件并不存在,您可以复制自动启动文件 {{ic|/etc/xdg/autostart/fcitx-autostart.desktop}} 到用户目录:<br />
<br />
cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/<br />
<br />
如果您使用的桌面环境并不自动支持 XDG, 请在您使用的启动脚本里面添加:<br />
<br />
fcitx<br />
<br />
以实现自动启动。<br />
<br />
{{注意|当 iBus 等其它输入法程序同时启动且开启了 Xim 支持时, 可能会害 Fcitx 启动不了,请确保已禁用了其它输入法程序的自动启动。}}<br />
<br />
=== 非桌面环境 ===<br />
<br />
使用 Fcitx 之前,您必须先设置一些环境设定变量:<br />
<br />
如果您用 KDM, GDM, LightDM 等显示管理器,请在 {{ic|~/.xprofile}} 中加入以下代码;如果您用 {{ic|startx}} 或者 Slim 启动,即使用 {{ic|.xinitrc}} 的场合,则改在 {{ic|~/.xinitrc}} 中加入:<br />
<br />
export GTK_IM_MODULE=fcitx<br />
export QT_IM_MODULE=fcitx<br />
export XMODIFIERS="@im=fcitx"<br />
<br />
{{警告|这一部非常重要请不要忽略,即便你原来默认没有.xprofile文件也要新建一个然后写入这几行,不然中文输入法是启动不了的。还有.xprofile文件名一定要全部小写,不要看到.Xauthority这种文件名以为首字母要大写就大写成.Xprofile了,不然也是没法用中文输入法的。}}<br />
<br />
{{警告|请不要在 {{ic|.bashrc}} 设置这些环境变量。{{ic|bashrc}}只应用于交互性 bash 会话的初始化,并不应用于非交互性脚本或 X 会话的初始化。否则,从命令行启动的某程序会误以为该环境变量在 X 会话中已正确设置,哪怕 X 会话并没有启动。}}<br />
<br />
重新登录后让环境变量生效。<br />
<br />
=== Xim ===<br />
<br />
您还可以在 Gtk+/Qt 程序中用 xim, 为此您要将 [[Fcitx (简体中文)#非桌面环境]] 里的环境变量改成如下的值:<br />
<br />
export GTK_IM_MODULE=xim<br />
export QT_IM_MODULE=xim<br />
<br />
{{警告|使用 xim, 很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由 Fcitx 解决的问题,且官方不支持解决。}}<br />
<br />
重新登录后让环境变量生效。<br />
<br />
== 配置==<br />
<br />
=== 配置工具 ===<br />
<br />
{{警告|Fcitx 不支持手动编辑配置文件,否则后果自负。}}<br />
<br />
Fcitx 提供了若干图形界面的配置程序:基于 KDE 之 kcm 的 {{Pkg|kcm-fcitx}}, 基于 GTK+3 的 {{Pkg|fcitx-configtool}}, 或者来自 [[Arch User Repository|AUR]], 基于 GTK+2, 但不被官方支持的 {{AUR|fcitx-configtool-gtk2}}{{Broken package link|{{aur-mirror|fcitx-configtool-gtk2}}}}.<br />
<br />
安装完配置工具{{Pkg|fcitx-configtool}}之后打开配置工具的方法是用终端运行fcitx-config-gtk3,打开这个配置工具之后还要添加中文输入法。<br />
<br />
添加中文输入法的方法是在第一个标签,点下面的加号,然后它默认本身是勾选了之显示当前语言的输入法的(Only Show Current Language),因为一般按照默认的方法安装Archlinux的是英文语言,在这种状态下是找不到中文输入法的,一定要先取消勾选这个选项,然后才能在上面的列表中找到中文输入法(可能叫Pinyin, Libpinyin之类的)。然后添加这个才会有中文输入法。<br />
<br />
=== 替换自带的经典界面 ===<br />
<br />
Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合体验.<br />
<br />
==== Gnome-Shell ====<br />
<br />
您可以在 [[Arch User Repository|AUR]] 安装 {{AUR|gnome-shell-extension-kimpanel-git}}, 它提供了类似 ibus-gjs 的用户体验,其候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 Fcitx 的输入法状态图标。<br />
<br />
==== KDE ====<br />
<br />
您可以安装 {{Pkg|kdeplasma-addons-applets-kimpanel}}{{Broken package link|package not found}}, 其用 plasma 作为输入法界面, 候选框风格将与 plasma 主题保持一致。<br />
<br />
==== 独立 kimpanel 界面 ====<br />
<br />
目前有 {{Pkg|kimtoy}},它都可以使用搜狗输入法和 Fcitx 本身的皮肤。<br />
<br />
=== 输入法 ===<br />
<br />
您可以在配置界面工具中添加/移除启用的输入法。列表第一项将作为「未激活」状态使用,请遵从界面上的提示将列表中的此项设为键盘布局输入法,比如「(键盘 - 英文)」,列表第二项则是默认输入法,其它项则为可切换到的输入法。<br />
<br />
{{警告|请必须将键盘布局输入法设为列表中第一项, 否则可能会无法禁用中文输入。}}<br />
<br />
==== 扩充内置拼音词库 ====<br />
<br />
用户配置拼音词库在 {{ic|~/.config/fcitx/pinyin}}, 其中 {{ic|pybase.mb}} 为拼音单字库,{{ic|pyphrase.mb}} 为拼音词库。如果这两文件并不存在,直接将您下载的词库放置到 {{ic|/usr/share/fcitx/pinyin}}. 重启 Fcitx 即可。<br />
<br />
mv pybase.mb pyphrase.mb ~/.config/fcitx/pinyin/<br />
<br />
== 提示与技巧 ==<br />
<br />
=== 快捷键 ===<br />
<br />
部分常用默认快捷键:<br />
<br />
* Ctrl + Space 激活输入法<br />
* 左Shift 临时切换到英文<br />
* Ctrl + Shift 输入法间切换<br />
* -/= 向前/向后翻页<br />
* Shift + Space 全角、半角切换<br />
<br />
{{注意|您可以在配置界面的全局配置中修改这些快捷键。}}<br />
<br />
=== Vim ===<br />
<br />
如果您经常在 Vim 下使用 Fcitx, 可以安装 {{AUR|vim-fcitx}} 插件,或者在 {{ic|~/.vimrc}} 添加如下代码。以退出插入模式时,自动关闭 Fcitx, 反之则反:<br />
<br />
"##### auto fcitx ###########<br />
let g:input_toggle = 1<br />
function! Fcitx2en()<br />
let s:input_status = system("fcitx-remote")<br />
if s:input_status == 2<br />
let g:input_toggle = 1<br />
let l:a = system("fcitx-remote -c")<br />
endif<br />
endfunction<br />
<br />
function! Fcitx2zh()<br />
let s:input_status = system("fcitx-remote")<br />
if s:input_status != 2 && g:input_toggle == 1<br />
let l:a = system("fcitx-remote -o")<br />
let g:input_toggle = 0<br />
endif<br />
endfunction<br />
<br />
set ttimeoutlen=150<br />
"退出插入模式<br />
autocmd InsertLeave * call Fcitx2en()<br />
"进入插入模式<br />
autocmd InsertEnter * call Fcitx2zh()<br />
"##### auto fcitx end ######<br />
<br />
{{注意|由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写相关映射,用带 Python 支持的 Vim 加以配合 fcitx.vim 亦可改善效率。}}<br />
<br />
=== 剪贴板 ===<br />
<br />
[https://www.csslayer.info/wordpress/fcitx-dev/fcitx-clipboard/ Fcitx 自带剪贴板],其快捷键为 {{ic|Ctrl + ;}}, 小小功能拯救世界。<br />
<br />
=== 特殊符号 ===<br />
<br />
创建 {{ic|~/.config/fcitx/data/pySym.mb}}, 文件内容示范如下:<br />
<br />
#第一个字符为“#”的行是注释<br />
#格式:编码 符号<br />
#编码只能为小写字母,经拼音解析后最长为10(如py为2,pinyin也为2)<br />
#数学符号<br />
sxfh +<br />
sxfh -<br />
sxfh <<br />
sxfh =<br />
sxfh ><br />
sxfh ±<br />
sxfh ×<br />
sxfh ÷<br />
sxfh ∈<br />
sxfh ∏<br />
sxfh ∑<br />
sxfh ∕<br />
sxfh √<br />
sxfh ∝<br />
<br />
直接输入某编码,可以匹配出对应的特殊符号。<br />
<br />
{{注意|编码只能用二十六个小写字母表示;以 v 开头,无效。}}<br />
<br />
=== 快速输入 ===<br />
<br />
确保在 {{ic|~/.config/fcitx/config}} 里把 {{ic|SemiColonAction}} 修改为 {{ic|QuickPhrase}}.<br />
<br />
创建 {{ic|~/.config/fcitx/data/QuickPhrase.mb}}, 文件内容示范如下:<br />
<br />
#第一个字符为“#”的行是注释<br />
#格式:编码 符号<br />
#数学符号<br />
<br />
dianhua 123456789<br />
youbian 123456<br />
dizhi 中华人民共和国北京市长安街一号<br />
aowu ┗<(=`O′=)>┛ <br />
mobai m<(_ _)>m <br />
baobao <(=′▽')爻 (`▽`=)> <br />
baobao <(=*′д`)爻(′д`*=)> <br />
qiangbi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)><br />
<br />
按 {{ic|;}} 并输入编码,可实现快速输入,自然也能用来当 [http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 颜文字库]。<br />
<br />
{{注意|编码除了不得有空格,不得以 {{ic|;}} 开头之外,没有其它限制。}}<br />
<br />
=== 皮肤 ===<br />
<br />
下载皮肤并解压缩到下面任一目录,如果没有可以新建目录:<br />
<br />
/usr/share/fcitx/skin ##全局设置<br />
~/.config/fcitx/skin #特定用户设置<br />
<br />
== 故障排除 ==<br />
<br />
=== 首先诊断问题所在 ===<br />
当你遇到任何 fcitx 有关的问题,比如 ctrl+space 在有的程序中不能工作,首先应该用 {{ic|fcitx-diagnose}} 命令诊断问题的原因。<br />
{{ic|fcitx-diagnose}} 会列出所有 fcitx 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。<br />
在网上(比如在 irc 或者论坛里)询问别人关于 fcitx 配置的问题时,也请首先提供你的 {{ic|fcitx-diagnose}} 输出结果(比如贴到 pastebin 服务),这将加速别人帮你找到问题所在。<br />
<br />
=== Emacs 无法使用输入法 ===<br />
<br />
当 {{ic|LC_CTYPE}} 为英文时, 在 Emacs 上可能无法使用输入法。若遇到此情况,请在启动 Emacs 时将 {{ic|LC_CTYPE}} 设为 {{ic|zh_CN.UTF-8}}. 终端下并不会遇到此现象,因为输入法会交给终端程序处理。<br />
<br />
Emacs 默认 fontset 会使用 "-*-*-*-r-normal--14-*-*-*-*-*-*-*" 字体 (terminus, 75dpi 等等,可以通过 {{ic|xlsfonts}} 命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.<br />
<br />
=== Firefox 右键菜单不弹出 ===<br />
<br />
[[Firefox]] 升级到 13 后可能与 xim 发生冲突,害得菜单没法弹出,解决办法是确定安装了 {{Pkg|fcitx-gtk2}} 并且把环境配置文件中的<br />
<br />
export GTK_IM_MODULE=xim<br />
<br />
换成<br />
<br />
export GTK_IM_MODULE=fcitx<br />
<br />
=== 在 GTK2 程序中用 {{ic|Ctrl + Space}} 不能调出输入法 ===<br />
<br />
当 {{ic|locale}} 为英文时,在 GTK+2 程序中有可能无法正常使用 Fcitx,例如 [[Chromium (简体中文)]] 或 [[Firefox (简体中文)]] 等。请确认 {{Pkg|fcitx-gtk2}} 已安装且已设置 {{ic|GTK_IM_MODULE}}。<br />
<br />
=== 在 gnome-terminal中 {{ic|Ctrl + Space}} 不能调出输入法 ===<br />
<br />
使用 GDM 3.16 启动 GNOME,可能在某些程序中无法使用 {{ic|Ctrl + Space}} 调出输入法。解决方法是修改GSettings配置<br />
<br />
gsettings set \<br />
org.gnome.settings-daemon.plugins.xsettings overrides \<br />
"{'Gtk/IMModule':<'fcitx'>}"<br />
<br />
=== {{ic|Ctrl + ;}} 会调出 Fcitx 的剪贴板 ===<br />
<br />
严格的说,这不是 BUG, Fcitx 的 {{ic|Ctrl + ;}} 会覆盖很多用户自己的快捷键,特别是 Emacs 用户。有必要时,可以在配置界面中禁用剪贴板插件,或更改其激活快捷键。<br />
<br />
=== fcitx-sogoupinyin 卡死、联想失败 ===<br />
<br />
如果您遇到下列的问题:<br />
<br />
* 输入类似「安装」、「暗影」等 "a" 开头的词语,出现卡死的情况。<br />
* 输入并不以拼音 "a" 开头的词语时,却出现「阿拉伯」、「阿里巴巴」等以 "a" 开头的错误联想词语等。<br />
<br />
可以通过删除 {{ic|~/.config/fcitx/sogou}} 下的所有内容的方式解决。<br />
<br />
{{注意|此操作会清空用户词库。}}<br />
<br />
=== 在某些程序下输入法总是被切换到美语键盘 ===<br />
<br />
比如在 XMind 下,当 Enter 出新结点时,输入法就会被切换到美语键盘,不得不按 Ctrl-Space 以重新切回中文输入法。<br />
<br />
启动 Fcitx 的 Config, 在 Global Config 选项卡下的「Share State Among Window」选项里选中「PerProgram」或「All」即可解决。<br />
<br />
== 参见 ==<br />
<br />
*[https://github.com/fcitx/fcitx/ Fcitx GitHub]<br />
*[https://code.google.com/p/fcitx/ Fcitx Google Code]<br />
*[http://fcitx-im.org/ Fcitx Wiki]<br />
*[http://kde-look.org/index.php?xcontentmode=88 Fcitx Themes]<br />
*[http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 猫颜文字 For Fcitx QuickPhrase]<br />
*[https://forum.suse.org.cn/viewtopic.php?f=16&t=731 史前大坑 Fcitx 官方 Artwork 团队出品:Fcitx 输入法皮肤制作全教程]<br />
*[https://bintray.com/rime-aca/dictionaries/luna_pinyin.dict/view/general rime 朙(ming)月拼音擴充詞庫]<br />
*[https://bugzilla.gnome.org/show_bug.cgi?id=747825#c6 Fcitx not work in terminal, nautilus, gedit]</div>
Callofdutyops
https://wiki.archlinux.org/index.php?title=Fcitx_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)&diff=415463
Fcitx (简体中文)
2016-01-15T12:36:03Z
<p>Callofdutyops: /* 输入法模块 */</p>
<hr />
<div>[[Category:简体中文]]<br />
[[Category:Internationalization (简体中文)]]<br />
[[en:Fcitx]]<br />
[[ja:Fcitx]]<br />
{{Related articles start}}<br />
{{Related|IBus}}<br />
{{Related|SCIM}}<br />
{{Related|UIM}}<br />
{{Related articles end}}<br />
[http://code.google.com/p/fcitx/ Fcitx] (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的[http://en.wikipedia.org/wiki/Input_method 输入法]平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。<br />
<br />
== 安装 ==<br />
<br />
安装位于 [[Official repositories (简体中文)]] 里的 {{Pkg|fcitx}}.<br />
<br />
=== 输入法 ===<br />
<br />
==== 第三方拼音输入法 ====<br />
<br />
Fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果. 在 Fcitx 支持的拼音输入法中,内置拼音响应速度最快,{{Pkg|fcitx-sunpinyin}} 的综合效果最好,{{Pkg|fcitx-libpinyin}} 算法比 sunpinyin 先进,但是尚有很多 bug 而且欠缺良好的词库。其它的还有:<br />
<br />
* {{Pkg|fcitx-rime}}, 即著名中文输入法 [https://code.google.com/p/rimeime/ Rime] 的 Fcitx 版本。但它不支持 Fcitx 本身的 [[#特殊符号]] 和 [[#快速输入]] 功能,自定义设置请参见[http://rime.im 官方],<br />
* {{Pkg|fcitx-googlepinyin}}, Google 拼音输入法 for Android.<br />
* {{AUR|fcitx-sogoupinyin}}, 搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输入。[http://pinyin.sogou.com/linux/ 官方网址]<br />
<br />
==== 云拼音 ====<br />
<br />
{{Pkg|fcitx-cloudpinyin}} 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。<br />
<br />
启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。<br />
<br />
{{注意|不推荐将云拼音候选词设为第一个候选词,因为当网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置,于是这个过程可能会涉及到默认候选词的改变。}}<br />
<br />
==== 异国语言输入引擎 ====<br />
<br />
* {{Pkg|fcitx-anthy}}, 为 Fcitx 添加 anthy (日语) 输入引擎支持。<br />
* {{Pkg|fcitx-chewing}}, 为 Fcitx 添加 chewing (繁体中文注音) 输入引擎支持。<br />
* {{Pkg|fcitx-hangul}}, 为 Fcitx 添加 hangul (韩语) 输入引擎支持。<br />
* {{Pkg|fcitx-m17n}}, 为 Fcitx 添加 m17n (多国语言码表) 输入引擎支持。<br />
* {{Pkg|fcitx-mozc}}, 为 Fcitx 添加 mozc (日语) 输入引擎支持,mozc 是 Google 日语输入法的开源版本。<br />
* {{Pkg|fcitx-unikey}}, 为 Fcitx 添加 unikey (越南语) 输入引擎支持。<br />
* {{Pkg|fcitx-sayura}}, 为 Fcitx 添加 sayura (僧伽罗语) 输入引擎支持。<br />
<br />
=== 输入法模块 ===<br />
<br />
Fcitx 提供对 Gtk+/Qt 提供了输入法模块,请根据需要安装 {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}}, {{Pkg|fcitx-qt4}} 和 {{Pkg|fcitx-qt5}}. 多软件包 {{Grp|fcitx-im}} 打包了全部.(现在已经包括 {{Pkg|fcitx-qt5}}).<br />
<br />
{{警告|即使未安装输入法模块,一般还是可以在大部分程序中使用输入法,不过很可能出现从无法光标跟随、无法显示预编辑字符串、无法输入甚至程序卡死等情况。如无特殊情况请直接安装 {{Grp|fcitx-im}}.}}<br />
<br />
某些程序不使用 Gtk+/Qt 的输入法模块,这些程序包括: <br />
<br />
* 所有不使用 Gtk+/Qt的程序,如使用 Tk, motif, 甚至 xlib 的程序<br />
* Emacs<br />
* Opera<br />
* OpenOffice<br />
* LibreOffice<br />
* Skype<br />
* Wine<br />
* Java<br />
* Xterm<br />
* urxvt<br />
* WPS<br />
<br />
=== 其它 ===<br />
<br />
* {{Pkg|fcitx-ui-light}}, Fcitx 的轻量 UI.<br />
* {{Pkg|fcitx-fbterm}}, Fbterm 对 Fcitx 的支持。<br />
* {{Pkg|fcitx-table-extra}} Fcitx 的一些额外码表支持,包括仓颉 3, 仓颉 5, 粤拼, 速成, 五笔, 郑码等等<br />
* {{Pkg|fcitx-table-other}}, Fcitx 的一些更奇怪的码表支持,包括 Latex, Emoji, 以及一大堆不明字符等等。<br />
* {{Pkg|kcm-fcitx}}, KDE 的 Fcitx 输入法模块。<br />
<br />
您还可以在 [[Arch User Repository (简体中文)]] 找到更多以上软件包的 Git 版以及其它。<br />
<br />
== 使用 ==<br />
<br />
=== 桌面环境 ===<br />
<br />
如果您用 XDG 兼容的桌面环境,比如 [[KDE]], [[GNOME]], [[XFCE]], [[LXDE]], 那么当您安装好 Fcitx 并重新登录后,Fcitx 应该会自动启动。如果没有的话,可以打开控制台并运行:<br />
<br />
fcitx<br />
<br />
为检验 Fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。<br />
<br />
如果 Fcitx 没有随桌面环境自动启动,或者您想修改下 Fcitx 启动参数,请用桌面环境提供的自动启动工具配置,或者直接编辑用户目录{{ic|~/.config/autostart/}} 下的 {{ic|fcitx-autostart.desktop}} 文件以确认自动启动是否被禁用。如果用户目录下的文件并不存在,您可以复制自动启动文件 {{ic|/etc/xdg/autostart/fcitx-autostart.desktop}} 到用户目录:<br />
<br />
cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/<br />
<br />
如果您使用的桌面环境并不自动支持 XDG, 请在您使用的启动脚本里面添加:<br />
<br />
fcitx<br />
<br />
以实现自动启动。<br />
<br />
{{注意|当 iBus 等其它输入法程序同时启动且开启了 Xim 支持时, 可能会害 Fcitx 启动不了,请确保已禁用了其它输入法程序的自动启动。}}<br />
<br />
=== 非桌面环境 ===<br />
<br />
使用 Fcitx 之前,您必须先设置一些环境设定变量:<br />
<br />
如果您用 KDM, GDM, LightDM 等显示管理器,请在 {{ic|~/.xprofile}} 中加入以下代码;如果您用 {{ic|startx}} 或者 Slim 启动,即使用 {{ic|.xinitrc}} 的场合,则改在 {{ic|~/.xinitrc}} 中加入:<br />
<br />
export GTK_IM_MODULE=fcitx<br />
export QT_IM_MODULE=fcitx<br />
export XMODIFIERS="@im=fcitx"<br />
<br />
{{警告|这一部非常重要请不要忽略,即便你原来默认没有.xprofile文件也要新建一个然后写入这几行,不然中文输入法是启动不了的。还有.xprofile文件名一定要全部小写,不要看到.Xauthority这种文件名以为首字母要大写就大写成.Xprofile了,不然也是没法用中文输入法的。}}<br />
<br />
{{警告|请不要在 {{ic|.bashrc}} 设置这些环境变量。{{ic|bashrc}}只应用于交互性 bash 会话的初始化,并不应用于非交互性脚本或 X 会话的初始化。否则,从命令行启动的某程序会误以为该环境变量在 X 会话中已正确设置,哪怕 X 会话并没有启动。}}<br />
<br />
重新登录后让环境变量生效。<br />
<br />
=== Xim ===<br />
<br />
您还可以在 Gtk+/Qt 程序中用 xim, 为此您要将 [[Fcitx (简体中文)#非桌面环境]] 里的环境变量改成如下的值:<br />
<br />
export GTK_IM_MODULE=xim<br />
export QT_IM_MODULE=xim<br />
<br />
{{警告|使用 xim, 很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由 Fcitx 解决的问题,且官方不支持解决。}}<br />
<br />
重新登录后让环境变量生效。<br />
<br />
== 配置==<br />
<br />
=== 配置工具 ===<br />
<br />
{{警告|Fcitx 不支持手动编辑配置文件,否则后果自负。}}<br />
<br />
Fcitx 提供了若干图形界面的配置程序:基于 KDE 之 kcm 的 {{Pkg|kcm-fcitx}}, 基于 GTK+3 的 {{Pkg|fcitx-configtool}}, 或者来自 [[Arch User Repository|AUR]], 基于 GTK+2, 但不被官方支持的 {{AUR|fcitx-configtool-gtk2}}{{Broken package link|{{aur-mirror|fcitx-configtool-gtk2}}}}.<br />
<br />
安装完配置工具{{Pkg|fcitx-configtool}}之后打开配置工具的方法是用终端运行fcitx-config-gtk3,打开这个配置工具之后还要添加中文输入法。<br />
<br />
添加中文输入法的方法是在第一个标签,点下面的加号,然后它默认本身是勾选了之显示当前语言的输入法的(Only Show Current Language),因为一般按照默认的方法安装Archlinux的是英文语言,在这种状态下是找不到中文输入法的,一定要先取消勾选这个选项,然后才能在上面的列表中找到中文输入法(可能叫Pinyin, Libpinyin之类的)。然后添加这个才会有中文输入法。<br />
<br />
=== 替换自带的经典界面 ===<br />
<br />
Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合体验.<br />
<br />
==== Gnome-Shell ====<br />
<br />
您可以在 [[Arch User Repository|AUR]] 安装 {{AUR|gnome-shell-extension-kimpanel-git}}, 它提供了类似 ibus-gjs 的用户体验,其候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 Fcitx 的输入法状态图标。<br />
<br />
==== KDE ====<br />
<br />
您可以安装 {{Pkg|kdeplasma-addons-applets-kimpanel}}{{Broken package link|package not found}}, 其用 plasma 作为输入法界面, 候选框风格将与 plasma 主题保持一致。<br />
<br />
==== 独立 kimpanel 界面 ====<br />
<br />
目前有 {{Pkg|kimtoy}},它都可以使用搜狗输入法和 Fcitx 本身的皮肤。<br />
<br />
=== 输入法 ===<br />
<br />
您可以在配置界面工具中添加/移除启用的输入法。列表第一项将作为「未激活」状态使用,请遵从界面上的提示将列表中的此项设为键盘布局输入法,比如「(键盘 - 英文)」,列表第二项则是默认输入法,其它项则为可切换到的输入法。<br />
<br />
{{警告|请必须将键盘布局输入法设为列表中第一项, 否则可能会无法禁用中文输入。}}<br />
<br />
==== 扩充内置拼音词库 ====<br />
<br />
用户配置拼音词库在 {{ic|~/.config/fcitx/pinyin}}, 其中 {{ic|pybase.mb}} 为拼音单字库,{{ic|pyphrase.mb}} 为拼音词库。如果这两文件并不存在,直接将您下载的词库放置到 {{ic|/usr/share/fcitx/pinyin}}. 重启 Fcitx 即可。<br />
<br />
mv pybase.mb pyphrase.mb ~/.config/fcitx/pinyin/<br />
<br />
== 提示与技巧 ==<br />
<br />
=== 快捷键 ===<br />
<br />
部分常用默认快捷键:<br />
<br />
* Ctrl + Space 激活输入法<br />
* 左Shift 临时切换到英文<br />
* Ctrl + Shift 输入法间切换<br />
* -/= 向前/向后翻页<br />
* Shift + Space 全角、半角切换<br />
<br />
{{注意|您可以在配置界面的全局配置中修改这些快捷键。}}<br />
<br />
=== Vim ===<br />
<br />
如果您经常在 Vim 下使用 Fcitx, 可以安装 [https://aur.archlinux.org/packages/vim-fcitx fcitx.vim] 插件,或者在 {{ic|~/.vimrc}} 添加如下代码。以退出插入模式时,自动关闭 Fcitx, 反之则反:<br />
<br />
"##### auto fcitx ###########<br />
let g:input_toggle = 1<br />
function! Fcitx2en()<br />
let s:input_status = system("fcitx-remote")<br />
if s:input_status == 2<br />
let g:input_toggle = 1<br />
let l:a = system("fcitx-remote -c")<br />
endif<br />
endfunction<br />
<br />
function! Fcitx2zh()<br />
let s:input_status = system("fcitx-remote")<br />
if s:input_status != 2 && g:input_toggle == 1<br />
let l:a = system("fcitx-remote -o")<br />
let g:input_toggle = 0<br />
endif<br />
endfunction<br />
<br />
set ttimeoutlen=150<br />
"退出插入模式<br />
autocmd InsertLeave * call Fcitx2en()<br />
"进入插入模式<br />
autocmd InsertEnter * call Fcitx2zh()<br />
"##### auto fcitx end ######<br />
<br />
{{注意|由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写相关映射,用带 Python 支持的 Vim 加以配合 fcitx.vim 亦可改善效率。}}<br />
<br />
=== 剪贴板 ===<br />
<br />
[https://www.csslayer.info/wordpress/fcitx-dev/fcitx-clipboard/ Fcitx 自带剪贴板],其快捷键为 {{ic|Ctrl + ;}}, 小小功能拯救世界。<br />
<br />
=== 特殊符号 ===<br />
<br />
创建 {{ic|~/.config/fcitx/data/pySym.mb}}, 文件内容示范如下:<br />
<br />
#第一个字符为“#”的行是注释<br />
#格式:编码 符号<br />
#编码只能为小写字母,经拼音解析后最长为10(如py为2,pinyin也为2)<br />
#数学符号<br />
sxfh +<br />
sxfh -<br />
sxfh <<br />
sxfh =<br />
sxfh ><br />
sxfh ±<br />
sxfh ×<br />
sxfh ÷<br />
sxfh ∈<br />
sxfh ∏<br />
sxfh ∑<br />
sxfh ∕<br />
sxfh √<br />
sxfh ∝<br />
<br />
直接输入某编码,可以匹配出对应的特殊符号。<br />
<br />
{{注意|编码只能用二十六个小写字母表示;以 v 开头,无效。}}<br />
<br />
=== 快速输入 ===<br />
<br />
确保在 {{ic|~/.config/fcitx/config}} 里把 {{ic|SemiColonAction}} 修改为 {{ic|QuickPhrase}}.<br />
<br />
创建 {{ic|~/.config/fcitx/data/QuickPhrase.mb}}, 文件内容示范如下:<br />
<br />
#第一个字符为“#”的行是注释<br />
#格式:编码 符号<br />
#数学符号<br />
<br />
dianhua 123456789<br />
youbian 123456<br />
dizhi 中华人民共和国北京市长安街一号<br />
aowu ┗<(=`O′=)>┛ <br />
mobai m<(_ _)>m <br />
baobao <(=′▽')爻 (`▽`=)> <br />
baobao <(=*′д`)爻(′д`*=)> <br />
qiangbi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)><br />
<br />
按 {{ic|;}} 并输入编码,可实现快速输入,自然也能用来当 [http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 颜文字库]。<br />
<br />
{{注意|编码除了不得有空格,不得以 {{ic|;}} 开头之外,没有其它限制。}}<br />
<br />
=== 皮肤 ===<br />
<br />
下载皮肤并解压缩到下面任一目录,如果没有可以新建目录:<br />
<br />
/usr/share/fcitx/skin ##全局设置<br />
~/.config/fcitx/skin #特定用户设置<br />
<br />
== 故障排除 ==<br />
<br />
=== 首先诊断问题所在 ===<br />
当你遇到任何 fcitx 有关的问题,比如 ctrl+space 在有的程序中不能工作,首先应该用 {{ic|fcitx-diagnose}} 命令诊断问题的原因。<br />
{{ic|fcitx-diagnose}} 会列出所有 fcitx 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。<br />
在网上(比如在 irc 或者论坛里)询问别人关于 fcitx 配置的问题时,也请首先提供你的 {{ic|fcitx-diagnose}} 输出结果(比如贴到 pastebin 服务),这将加速别人帮你找到问题所在。<br />
<br />
=== Emacs 无法使用输入法 ===<br />
<br />
当 {{ic|LC_CTYPE}} 为英文时, 在 Emacs 上可能无法使用输入法。若遇到此情况,请在启动 Emacs 时将 {{ic|LC_CTYPE}} 设为 {{ic|zh_CN.UTF-8}}. 终端下并不会遇到此现象,因为输入法会交给终端程序处理。<br />
<br />
Emacs 默认 fontset 会使用 "-*-*-*-r-normal--14-*-*-*-*-*-*-*" 字体 (terminus, 75dpi 等等,可以通过 {{ic|xlsfonts}} 命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.<br />
<br />
=== Firefox 右键菜单不弹出 ===<br />
<br />
[[Firefox]] 升级到 13 后可能与 xim 发生冲突,害得菜单没法弹出,解决办法是确定安装了 {{Pkg|fcitx-gtk2}} 并且把环境配置文件中的<br />
<br />
export GTK_IM_MODULE=xim<br />
<br />
换成<br />
<br />
export GTK_IM_MODULE=fcitx<br />
<br />
=== 在 GTK2 程序中用 {{ic|Ctrl + Space}} 不能调出输入法 ===<br />
<br />
当 {{ic|locale}} 为英文时,在 GTK+2 程序中有可能无法正常使用 Fcitx,例如 [[Chromium (简体中文)]] 或 [[Firefox (简体中文)]] 等。请确认 {{Pkg|fcitx-gtk2}} 已安装且已设置 {{ic|GTK_IM_MODULE}}。<br />
<br />
=== 在 gnome-terminal中 {{ic|Ctrl + Space}} 不能调出输入法 ===<br />
<br />
使用 GDM 3.16 启动 GNOME,可能在某些程序中无法使用 {{ic|Ctrl + Space}} 调出输入法。解决方法是修改GSettings配置<br />
<br />
gsettings set \<br />
org.gnome.settings-daemon.plugins.xsettings overrides \<br />
"{'Gtk/IMModule':<'fcitx'>}"<br />
<br />
=== {{ic|Ctrl + ;}} 会调出 Fcitx 的剪贴板 ===<br />
<br />
严格的说,这不是 BUG, Fcitx 的 {{ic|Ctrl + ;}} 会覆盖很多用户自己的快捷键,特别是 Emacs 用户。有必要时,可以在配置界面中禁用剪贴板插件,或更改其激活快捷键。<br />
<br />
=== fcitx-sogoupinyin 卡死、联想失败 ===<br />
<br />
如果您遇到下列的问题:<br />
<br />
* 输入类似「安装」、「暗影」等 "a" 开头的词语,出现卡死的情况。<br />
* 输入并不以拼音 "a" 开头的词语时,却出现「阿拉伯」、「阿里巴巴」等以 "a" 开头的错误联想词语等。<br />
<br />
可以通过删除 {{ic|~/.config/fcitx/sogou}} 下的所有内容的方式解决。<br />
<br />
{{注意|此操作会清空用户词库。}}<br />
<br />
=== 在某些程序下输入法总是被切换到美语键盘 ===<br />
<br />
比如在 XMind 下,当 Enter 出新结点时,输入法就会被切换到美语键盘,不得不按 Ctrl-Space 以重新切回中文输入法。<br />
<br />
启动 Fcitx 的 Config, 在 Global Config 选项卡下的「Share State Among Window」选项里选中「PerProgram」或「All」即可解决。<br />
<br />
== 参见 ==<br />
<br />
*[https://github.com/fcitx/fcitx/ Fcitx GitHub]<br />
*[https://code.google.com/p/fcitx/ Fcitx Google Code]<br />
*[http://fcitx-im.org/ Fcitx Wiki]<br />
*[http://kde-look.org/index.php?xcontentmode=88 Fcitx Themes]<br />
*[http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 猫颜文字 For Fcitx QuickPhrase]<br />
*[https://forum.suse.org.cn/viewtopic.php?f=16&t=731 史前大坑 Fcitx 官方 Artwork 团队出品:Fcitx 输入法皮肤制作全教程]<br />
*[https://bintray.com/rime-aca/dictionaries/luna_pinyin.dict/view/general rime 朙(ming)月拼音擴充詞庫]<br />
*[https://bugzilla.gnome.org/show_bug.cgi?id=747825#c6 Fcitx not work in terminal, nautilus, gedit]</div>
Callofdutyops