Archlinux下桌面办公环境配置

前言

最近翻出了一台早年DIY台式机,配置Z170主板 + i5-6500 + 32G内存 + 500G NVME,运行Windows 11性能已经力不从心,所以试着给它安装Linux系统看看能否当作办公机发挥余热。

Linux发行版选择了EndeavourOS,它可以看作是提供了图形化安装界面以及预装了桌面环境的Archlinux,所以当作Archlinux毫无问题。嗯,我是一名自豪的Arch用户了~

换国内源

直接使用清华大学的Archlinux软件仓库即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat /etc/pacman.d/mirrorlist

################################################################################
################# Arch Linux mirrorlist generated by Reflector #################
################################################################################
# With: reflector --verbose -c CN --protocol https --sort age --latest 20 --download-timeout 5
# When: 2024-12-15 02:07:30 UTC
# From: https://archlinux.org/mirrors/status/json/
# Retrieved: 2024-12-15 02:07:10 UTC
# Last Check: 2024-12-15 01:46:50 UTC

## China
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
#Server = https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch

sudo pacman -Syu

安装配置雾凇拼音

全拼用户没有特殊需求雾凇拼音已经很好用,至于五笔等形码输入法Linux下也有完整实现,比如98五笔。想要全拼、双拼、五笔等方案共存的可以尝试薄荷输入法

1
2
3
4
sudo pacman -S paru fcitx5-rime fcitx5-configtool
cd ~/.local/share/fcitx5
rm -rf ./rime
git clone https://github.com/iDvel/rime-ice.git rime --depth 1

这里记得重启一次系统。

安装配置字体

安装字体

1
2
sudo pacman -S noto-fonts inter-font noto-fonts-cjk noto-fonts-emoji ttf-sarasa-gothic
paru -S ttf-wps-fonts freetype2-wps wps-office-fonts

其他字体可以通过KDE自带的Font Management方便导入。

配置字体

抄袭自Linux 下的字体调校指南:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
$ cat ~/.config/fontconfig

<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>

<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>

<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>

<!-- Map fonts that are commonly used by web pages to our preferred fonts -->
<match target="pattern">
<test qual="any" name="family"><string>Arial</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Liberation Sans</string></test>
<edit name="family" mode="assign" binding="same"><string>sans-serif</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Liberation Mono</string></test>
<edit name="family" mode="assign" binding="same"><string>monospace</string></edit>
</match>

<!-- Default font for the zh_CN locale (no fc-match pattern) -->
<match>
<test compare="contains" name="lang">
<string>zh_CN</string>
</test>
<edit mode="prepend" name="family">
<string>Noto Sans CJK SC</string>
</edit>
</match>

<!-- Default sans-serif font -->
<match target="pattern">
<test qual="any" name="family">
<string>sans-serif</string></test>
<edit name="family" mode="prepend" binding="same">
<string>Inter</string>
</edit>
</match>

<!-- Default serif fonts -->
<match target="pattern">
<test qual="any" name="family">
<string>serif</string>
</test>
<edit name="family" mode="prepend" binding="same">
<string>Noto Serif</string>
</edit>
</match>

<!-- Default monospace fonts -->
<match target="pattern">
<test qual="any" name="family">
<string>monospace</string>
</test>
<edit name="family" mode="prepend" binding="same">
<string>Sarasa Term SC</string>
</edit>
</match>

<!-- Fallback fonts preference order -->
<alias>
<family>sans-serif</family>
<prefer>
<family>Inter</family>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
<family>Noto Sans CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>Noto Serif</family>
<family>Noto Serif CJK SC</family>
<family>Noto Serif CJK TC</family>
<family>Noto Serif CJK JP</family>
<family>Noto Serif CJK KR</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Sarasa Term SC</family>
<family>Sarasa Term TC</family>
<family>Sarasa Term J</family>
<family>Noto Color Emoji</family>
<family>Noto Emoji</family>
</prefer>
</alias>

<selectfont>
<rejectfont>
<pattern>
<patelt name="family" >
<!-- This font is causing problem with GitHub -->
<string>Nimbus Sans</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>

</fontconfig>

记得重启系统使配置生效。

安装配置WPS

1
paru -S wps-office-cn wps-office-mui-zh-cn

系统语言为英文情况下,刚装好的WPS无法输入中文,无法识别中文字体名称,也无法显示中文界面,需要手动调整启动配置。

/usr/share/applications找到这几个文件,使用kate修改。kate不需要以root权限执行,保存修改时,会提示输入root密码提权,十分便利:

  • /usr/share/applications/wps-office-wps.desktop
  • /usr/share/applications/wps-office-et.desktop
  • /usr/share/applications/wps-office-wpp.desktop
  • /usr/share/applications/wps-office-pdf.desktop
  • /usr/share/applications/wps-office-prometheus.desktop

wps-office-wps.desktop为例,使用kate打开后,将

1
Exec=/usr/bin/wps %U

修改为

1
Exec=env LANGUAGE=zh_CN LC_ALL=zh_CN.UTF-8 QT_SCREEN_SCALE_FACTORS=1 XMODIFIERS="@im=fcitx" GTK_IM_MODULE="fcitx" QT_IM_MODULE="fcitx" SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus /usr/bin/wps %U

其他几个修改方式相同,都是在调用程序之前添加了一堆环境变量,简单解释一下:

  • LANGUAGE=zh_CN :将WPS界面语言变成中文。如果不声明,WPS还是英文界面。参考自某博客。
  • LC_ALL=zh_CN.UTF-8 :使WPS能够正确识别中文字体名称。例如,在字体栏中输入宋体,文字就会被正确设置为宋体,而不是必须输入 simsun,参考自某博客。
  • env QT_SCREEN_SCALE_FACTORS=1 : 解决KDE下dpi不对称导致的字体模糊问题,参考自archwiki。
  • XMODIFIERS=”@im=fcitx” GTK_IM_MODULE=”fcitx” QT_IM_MODULE=”fcitx” SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus :设置输入法环境变量,如果没有设置,在WPS中无法输入中文。参考自某博客。

另外~/.config/Kingsoft/中存在一些WPS的配置文件,有兴趣的可以研究下。总体而言WPS在Linux下并不能做到开箱即用,虽然通过自行配置能够解决一些问题,但诸如系统黑暗模式下,WPS一些界面显示不正常的问题目前尚无解决办法,期待WPS日后能修复吧。

安装其他应用

1
paru -S wechat-bin masterpdfeditor-free

安装微信和一款免费的pdf编辑器。

安装配置打印机

终于可以在 Linux 下愉快打印了:Linux 发行版配置打印机攻略这篇教程写得非常好,此处只稍作补充整理。

前排提示:HP打印机不要使用hplip配置!!!

实测hplip无法发现局域网中的HP Color LaserJet MFP M281fdw。虽说能够通过手动输入IP地址方式添加,但是自动双面打印功能失效。请安装并使用system-config-printer添加打印机,它不仅不存在hplip的这些问题,而且还支持查看墨粉余量:

1
2
3
sudo pacman -S cups cups-browsed system-config-printer nss-mdns
sudo systemctl enable --now cups.service
sudo systemctl enable --now cups-browsed

最后打开 Print settings 添加网络打印机,选择IPP协议。总而言之HP打印机对Linux支持还不错,而且摆脱了Windows平台下又卡又难用的HP Smart令人心情愉悦。至于扫描文件可以安装使用KDE项目提供的Skanlite

1
sudo pacman -S skanlite

配置Canokey

OpenPGP操作参见前几篇文章,这里解决的是Linux下 gpg --card-status 命令提示找不到设备问题,几经搜索终于搞定。

创建 ~/.gnupg/scdaemon.conf 这个文件,加入

1
disable-ccid

保存后重启系统,gpg --card-status 就能正确读取到卡片信息了,深入了解可以参考GnuPG and PC/SC conflicts, episode 2


Archlinux下桌面办公环境配置
http://xiaofami.github.io/2024/12/17/office/
作者
tccmu
发布于
2024年12月17日
许可协议