因为图形界面我用的相对比较少,所以喜欢安装小巧一些的桌面管理器。Centos中我比较喜欢使用openbox,但在是archlinux不知道在openbox使用中文输入法,搞了半天也没解决,不想折腾了,就想安装一下Xfce吧。
# 更新下系统
sudo pacman -Syyu
#安装xfce4
sudo pacman -S xfce4 --noconfirm
# 没有安装X服务的,桌面环境都依赖它,需要安装一下
sudo pacman -S xorg-server --noconfirm
# 安装中文字体,解决乱码的问题
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei --noconfirm
# 安装xinit
sudo pacman -S xorg-xinit --noconfirm
# 安装中文输入法,基础包组
sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-im fcitx5-configtool --noconfirm
#lxdm显示管理器
sudo pacman -S lxdm --noconfirm
输入法相关软件包:
-
fcitx5 主包,不用多解释啦~
-
fcitx5-chinese-addons 中文输入法包…. Arch Wiki 里面是这样解释的:
-
fcitx5-chinese-addons 包含了大量中文输入方式:拼音、双拼、五笔拼音、自然码、仓颉、冰蟾全息、二笔等
-
fcitx5-im 环境依赖包,要装的,不然在一些软件上打不出字
-
fcitx5-configtool fcitx5 的 GUI 配置工具,因为我不懂怎么修改配置文件,所以就装了这个。在上面三个装完之后装。
编辑 ~/.pam_environment
vim ~/.pam_environment
并增加以下内容:
INPUT_METHOD DEFAULT=fcitx5
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE DEFAULT=fcitx5
XMODIFIERS DEFAULT=\@im=fcitx5
SDL_IM_MODULE DEFAULT=fcitx
启动图形界面
命令行手动启动
这个archlinux是安装在虚拟机中的,我平时不太用图形界面,所以需要用时命令行执行一下,如下命令就可以了。
sudo xinit /usr/bin/startxfce4
如果此时输入法不能用,重启试试。
开机自动启动当然有喜欢图形界面的朋友,喜欢很次开机都自动进界面而不是图形界面,可以如下设置:
#开机启动显示管理器
systemctl enable lxdm
#立即开启lxdm
systemctl start lxdm
不知道为什么,我使用LightDM无法启动服务,后来换成lxdm就可以正常访问了。
安装vncserver我个人使用场景中,直接使用图形界面的场景不多。更多的时候是vnc远程使用。那就来讲讲vnc如何实现吧!
VNC 服务由 tigervnc 提供
sudo pacman -S tigervnc --noconfirm
注意: 在物理内存允许的条件下,Linux系统可以拥有任意数量的VNC服务器——它们同时并行运行,互不干扰。
简易教程如下。但是推荐阅读vncserver的man手册来了解所有的配置项。
-
用
vncpasswd
创建密码,它会将哈希处理之后的密码存储在~/.vnc/passwd
。 -
编辑/etc/tigervnc/vncserver.users来定义用户映射。这文件中定义的用户都会拥有独有的端口来运行它的会话。这文件中的数字对应的是TCP端口。默认情况下,:1 是TCP端口5901(5900+1)。如果需要运行一个并行的服务器,第二个实例可以运行在下一个最大的、未被占用的端口,即5902(5900+2)。
-
创建
~/.vnc/config
session=xfce
geometry=1024x768
alwaysshared
至少要定义会话的类型,比如session=foo(将foo替换为你想要运行的桌面环境)。你可以通过查看/usr/share/xsessions/里的.desktop文件来知道有哪些桌面环境在当前系统上可以使用。
权限 像对待 ~/.ssh 一样保护 ~/.vnc 是很好的做法,虽然并非必须。执行下面的命令来达到该目的:
chmod 700 ~/.vnc
启动与停止tigervnc
Start vncserver@.service,如果需要让它随系统启动,enable它。注意/etc/tigervnc/vncserver.users中定义的编号需要在@符号后面指定,比如启动:1的命令是:
sudo systemctl start vncserver@:1
Note: 已经不再支持直接调用/usr/bin/vncserver了,因为这样做不会建立完整可用的会话环境。systemd服务是唯一受支持的使用TigerVNC的方式。参见Issue #1096。
连接vnc我的ip是172.16.184.12上面我们设置的是:1也就是TCP端口5901(5900+1)。所以我们的连接地址是
172.16.184.12:5901
- 如何你发现vnc连接不上,就把之前已经打开的xfce界面注销
- 不知道为什么xfce只能打开一个,vnc打开后,普通的xfce界面也无法登录
- 不知道为什么xfce通过vnc连接的话,无法使用中文输入法
编辑~/.xprofile
文件
vim ~/.xprofile
写入以下内容:
export INPUT_METHOD=fcitx5
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5
这时重启vnc服务,重新连接就可以中文输入了。
sudo systemctl restart vncserver@:1
- https://weepingdogel.github.io/posts/%E5%85%B3%E4%BA%8Efcitx5/
- https://docs.xfce.org/xfce/display_managers