Arch配置

中文目录调整

mv ~/桌面 ~/Desktop
mv ~/图片 ~/Pictures
mv ~/文档 ~/Documets
mv ~/音乐 ~/Music
mv ~/视频 ~/Videos
mv ~/下载 ~/Download
mv ~/模板 ~/Templates
mv ~/公共 ~/Publicshare
vim ~/.config/user-dirs.dirs
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Download"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Publicshare"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

软件源

sudo vim /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
sudo pacman -Sy archlinuxcn-keyring
sudo pacman -R $(sudo pacman -Qdtq)

软件周期

https://endoflife.date/oracle-jdk

输入法

wayland

sudo pacman -S fcitx5-im fcitx5-rime

fcitx5-im 包含 fcitx5fcitx5-configtoolfcitx5-gtkfcitx5-qt

要使用 Wayland 输入法协议, 首先退出正在运行的 Fcitx 5 进程, 前往 系统设置 > 输入设备 > 虚拟键盘, 选择 Fcitx 5

对于 XWayland 程序, 需要设置 XMODIFIERS 环境变量以集成到桌面环境

# /etc/environment

XMODIFIERS=@im=fcitx

xrog

sudo pacman -S fcitx5-im fcitx5-rime

配置环境变量以集成到桌面环境

yay -S fcitx5-input-support

或手动配置

# ~/.xprofile
## 加入:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

## 或
# /etc/environment

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

输入方案

https://github.com/iDvel/rime-ice

.local/share/fcitx5/rime/

字体

sudo pacman -S adobe-source-han-sans-cn-fonts ttf-hack wqy-microhei wqy-zenhei wqy-bitmapfont wqy-microhei-lite

sudo cp -R WindowsFonts /usr/share/fonts/
sudo fc-cache --force

透明代理

sudo pacman -S v2ray v2raya
sudo systemctl enable --now v2raya

电源管理

sudo pacman -Rns power-profiles-daemon
sudo systemctl disable power-profiles-daemon.service --now
sudo pacman -S tlp
sudo paru -S tlpui
sudo systemctl enable tlp.service --now

自定义配置待补充

显卡驱动

https://arch.icekylin.online/guide/rookie/graphic-driver.html

# amd
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon

# nvidia
sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils lib32-nvidia-utils nvidia-prime

电源管理内核模块

sudo pacman -S bbswitch-dkms

optimus-manager切换显卡

yay -S optimus-manager optimus-manager-qt

sudo systemctl enable optimus-manager --now

optimus-manager --temp-config /mnt/optimus-manager.conf

如果你在安装 optimus manager 并重启后,直接黑屏卡死,不能进入系统,很有可能是遇到了常见的"ACPI ISSUE",简单来说,这是笔记本制造商的实现问题。可以尝试在内核启动参数中加入acpi_osi=! acpi_osi="Windows 2009" 后再尝试

https://learn.microsoft.com/en-us/windows-hardware/drivers/acpi/winacpi-osi#_osi-strings-for-windows-operating-systems
https://docs.kernel.org/admin-guide/kernel-parameters.html
https://github.com/Bumblebee-Project/Bumblebee/issues/764

acpi_osi=! acpi_osi="Windows 2015"

sudo grub-mkconfig -o /boot/grub/grub.cfg

https://arch.icekylin.online/guide/rookie/graphic-driver.html
https://archlinuxstudio.github.io/ArchLinuxTutorial/#/rookie/graphic_driver?id=独立显卡

动态切换

prime-run 方法

sudo pacman -S nvidia-prime

使用 NVIDIA 独立显卡运行程序

prime-run %command%

# 运行 steam 游戏的例子
prime-run steam steam://rungameid/570 # 运行 Dota 2
prime-run steam steam://rungameid/730 # 运行 CS:GO

环境变量方法

手动输入

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only" %command%
# 运行 steam 游戏的例子
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only"  steam steam://rungameid/570 # 运行 Dota 2
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME="nvidia" __VK_LAYER_NV_optimus="NVIDIA_only"  steam steam://rungameid/730 # 运行 CS:GO

全局变量

使用 vim 编辑 /etc/environment 文件

sudo vim /etc/environment
__NV_PRIME_RENDER_OFFLOAD=1
__GLX_VENDOR_LIBRARY_NAME="nvidia"
__VK_LAYER_NV_optimus="NVIDIA_only"

nvidia-xrun切换显卡

yay -S nvidia-xrun virtualgl lib32-virtualgl opencl-nvidia lib32-opencl-nvidia

bumblebee切换显卡

sudo pacman -S bumblebee primus lib32-primus primus_vk lib32-primus_vk

sudo gpasswd -a eonun bumblebee
# 正在将用户“eonun”加入到“bumblebee”组中

sudo systemctl enable --now bumblebeed.service

集显模式使用如下命令验证 NVIDIA 独立显卡是否被禁用:
若有 rev ff 字样,则表示独显已经成功禁用,或在列表中没有 nvidia 相关信息

lspci | grep NVIDIA

关闭开机代码

编辑 /etc/default/grub 文件,并在 GRUB_CMDLINE_LINUX_DEFAULT 行的引号之间添加您的内核选项:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

然后使用以下命令自动重新生成 grub.cfg 文件:

sudo grub-mkconfig -o /boot/grub/grub.cfg

开关机会显示三条[FAILED] Failed to start virtual console setup

sudo vim /etc/vconsole.conf

修改为如下

KEYMAP=us
FONT=lat9w-16

重建 initramfs:

sudo mkinitcpio -P

或禁用 vconsole 服务(如果问题仍然存在):

sudo systemctl disable systemd-vconsole-setup.service
sudo systemctl mask systemd-vconsole-setup.service

挂载其他盘

所有 5.15 及更新版本的官方支持的内核都默认使用了 CONFIG_NTFS3_FS=m 参数,因此支持该驱动。在 5.15 版本前,NTFS 读写支持由 NTFS-3G FUSE 文件系统提供。或者也可以通过 ntfs3-dkmsAUR 使用向后移植的 NTFS3。

sudo mkdir -p /mnt/ntfs/{other,games,data}
sudo chown -R eonun:eonun /mnt/ntfs
# 查看UUID
sudo blkid
lsblk -o NAME,UUID

sudo vim /etc/fstab
#UUID=54707BF1707BD7E6                     /mnt/ntfs/data     ntfs    defaults   0 0
UUID=33E22B0EE35DCAF1                     /mnt/ntfs/games    ntfs3    iocharset=utf8,uid=1000,gid=1000,umask=0,prealloc   0 0
UUID=BB108B7D355E278C                     /mnt/ntfs/other    ntfs3    iocharset=utf8,uid=1000,gid=1000,umask=0,prealloc   0 0

使用 ntfs3 驱动替换 ntfs-3g 挂载 windows NTFS 分区

虚拟机

VirtualBox

sudo pacman -S virtualbox virtualbox-host-dkms virtualbox-ext-oracle
sudo usermod -a -G vboxusers eonun
yay -S virtualbox-bin-guest-iso

6.1.28起需要修改白名单才可自定义仅主机的网卡地址

cat << EOF | sudo tee /etc/vbox/networks.conf 
* 0.0.0.0/0
EOF
* 192.0.0.0/8
* 172.0.0.0/8
* 10.0.0.0/8

VMware

https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware Workstation Pro

sudo sh VMware-Workstation-Full-17.5.1-23298084.x86_64.bundle
# 提升如下是输入后面的内容
System service scripts directory (commonly /etc/init.d).: /etc/init.d/vmware

sudo modprobe -a vmw_vmci vmmon

列出所有已安装的产品

sudo vmware-installer -l
Product Name         Product Version     
==================== ====================
vmware-workstation   17.5.1.23298084 

卸载

sudo vmware-installer -u vmware-workstation --required

--required 跳过确认

sudo rm -rf /etc/vmware*

自版本 14 以来,VMware 已放弃对许多 CPU 的支持,包括早期的 Intel Core i7 CPU。请查看 Processor Requirements for Host Systems 。如果较新版本不支持您的 CPU,则可以使用 vmware-workstation12.

yay -S vmware-workstation

启动相关服务

# 启动 vmware-networks-configuration.service 生成 /etc/vmware/networking.
sudo systemctl enable --now vmware-networks-configuration.service

# 然后再手动启动服务
sudo systemctl enable --now vmware-networks.service vmware-usbarbitrator.service

# 在 16 前还需要运行
sudo systemctl enable --now vmware-hostd.service

https://laptopmedia.com/cn/video-card/amd-radeon-rx-vega-8-ryzen-4000-15w/

https://9e9b6786-e4a3-4dd1-bd1c-5c223c791f33.nginxsd.xyz/api/v1/client/subscribe?token=0d01094d6d609858a4582995d4b9d95f

https://github.com/MetaCubeX/mihomo/tree/Alpha
https://github.com/haishanh/yacd
https://github.com/MetaCubeX/metacubexd

美化(xfce)

vinceliuice 真是大神,https://www.xfce-look.org 主题网站几乎都是高分主题,本来开始只是找高评分的,找着找着发现几乎都是 vinceliuice 大神的,不得不佩服。

主题

https://github.com/vinceliuice/WhiteSur-gtk-theme
https://github.com/vinceliuice/Orchis-theme
https://github.com/vinceliuice/Qogir-theme
https://github.com/vinceliuice/Mojave-gtk-theme
https://github.com/vinceliuice/Fluent-gtk-theme
https://github.com/EliverLara/Nordic

WhiteSur-gtk-theme
flat-remix-gtk

图标

https://github.com/vinceliuice/Fluent-icon-theme
https://github.com/vinceliuice/Qogir-icon-theme
https://github.com/vinceliuice/Colloid-icon-theme

Fluent-icon-theme
tela-circle-icon-theme-black

sudo pacman -S tela-circle-icon-theme-black

光标

https://github.com/vinceliuice/Fluent-icon-theme/tree/master/cursors
https://github.com/vinceliuice/Qogir-icon-theme/tree/master/src/cursors
https://github.com/vinceliuice/Colloid-icon-theme/tree/main/cursors
https://github.com/vinceliuice/WhiteSur-cursors
https://github.com/vinceliuice/Graphite-cursors

vimix-cursors

sudo pacman -S vimix-cursors

grub2

https://github.com/vinceliuice/grub2-themes

键盘提示(通过插件 xfce4-genmon-plugin,一般监视器 实现)

示例:大小写转换的提示器

简介

xfce4-genmon-plugin 可用于监控命令或脚本的执行,通过定时执行命令脚本可实现一些提示信息的高级使用比如 xfce 默认不能对大小写、数字键盘等进行提示,通过 xfce4-genmon-plugin 就能实现。

触摸板多指

sudo gpasswd -a $USER input
sudo pacman -S libinput xf86-input-libinput

配置

libinput安装后默认的配置文件在/usr/share/X11/xorg.conf.d目录下,如何你安装多个驱动,会存在多个文件,通过以下命令查看

ls /usr/share/X11/xorg.conf.d -l

-rw-r--r-- 1 root root 126 4月 1日 04:16 10-amdgpu.conf
-rw-r--r-- 1 root root 227 7月 2日 10:26 10-nvidia-drm-outputclass.conf
-rw-r--r-- 1 root root 1350 4月13日 02:22 10-quirks.conf
-rw-r--r-- 1 root root 92 4月 1日 04:28 10-radeon.conf
-rw-r--r-- 1 root root 105 6月16日 14:38 30-touchpad.conf
-rw-r--r-- 1 root root 1429 7月11日 04:08 40-libinput.conf

这里驱动文件夹前面的数字指的是优先级,优先使用数字较大的驱动,可以看到 libinput 的是 40
需要把默认配置文件复制到/etc/X11/xorg.conf.d/目录下:

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/40-libinput.conf
Section "InputClass"
        Identifier "touchpad"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "on"
        Option "ButtonMapping" "1 3 0 4 5 6 7"
        Option "TappingButtonMap" "lrm"
        Option "DisableWhileTyping" "on"
        Option "TappingDrag" "on"
EndSection

上述配置文件时的效果是单指=左键双指=右键三指=中键

调试

查看已有设备,确定touchpad设备

xinput list

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ ELAN050B:00 04F3:31C3 Touchpad id=15 [slave pointer (2)]
⎜ ↳ ELAN050B:00 04F3:31C3 Mouse id=14 [slave pointer (2)]

查看touchpad的详细配置

xinput list-props "ELAN050B:00 04F3:31C3 Touchpad"

找到 Device Node 行 ,获取到设备映射地址

....
Device Node (316): "/dev/input/event11"
....

通过监控touchpad事件,判断可用的手势

# 使用libinput debug-events (命令行) 监控touchpad事件
libinput debug-events --device /dev/input/event11
# 使用libinput debug-gui (图形化) 监控touchpad事件
libinput debug-gui --device /dev/input/event11

libinput-gestures 是通过 xdotool 模拟键盘来解析touchpad的数据,然后执行相关的操作

libinput-gestures安装后会有默认的配置,位置在 /etc/libinput-gestures.conf ,用户可以在~/.config/libinput-gestures.conf 配置自己的配置

cp /etc/libinput-gestures.conf ~/.config/libinput-gestures.conf

添加以下内容实现更多手势

# 切换到下一个桌面
gesture swipe right 4   xdotool key ctrl+F1
# 切换到上一个桌面
gesture swipe left 4 xdotool key ctrl+F2

# 显示当前桌面的窗口
gesture swipe down 3 xdotool key ctrl+F9
# 显示所有桌面的窗口
gesture swipe down 4 xdotool key ctrl+F10

# 显示桌面
gesture swipe up 3 xdotool key super+d
# 显示桌面网格
gesture swipe up 4 xdotool key ctrl+F8

# 放大/缩小
gesture pinch in 2 xdotool key ctrl+minus # 2指捏: 缩小
gesture pinch out 2 xdotool key ctrl+plus # 2指张: 放大

执行libinput-gestures-setup start来启动手势支持
执行libinput-gestures-setup autostart来添加服务自启动

可通过 gestures 通过图形化配置

sudo pacman -S gestures

会自动生成 ~/.config/libinput-gestures.conf 配置

# Gestures
gesture swipe up 4 _internal ws_up
gesture swipe down 4 _internal ws_down
gesture swipe left 4 xdotool key alt+Right
gesture swipe right 4 xdotool key alt+Left
gesture pinch in 4 xdotool key super+s
gesture pinch out 4 xdotool key super+s
gesture swipe right 4   xdotool key ctrl+F1
gesture swipe left 4 xdotool key ctrl+F2
gesture swipe down 3 xdotool key ctrl+F9
gesture swipe down 4 xdotool key ctrl+F10
gesture swipe up 3 xdotool key super+d
gesture swipe up 4 xdotool key ctrl+F8
gesture pinch in 2 xdotool key ctrl+minus # 2指捏: 缩小
gesture pinch out 2 xdotool key ctrl+plus # 2指张: 放大

参考1
参考2
手势习惯可参考mac

快捷键

xfce4快捷键

xfce4 有两个快捷键设置的地方

软件

wps

yay -S wps-office-365 wps-office-365-fonts
# 后台进程退出不关闭,禁用云服务
sudo chmod -x /opt/kingsoft/wps-office/office6/wpscloudsvr
# 重置试用时间
quickstartoffice stop && rm ~/.config/Kingsoft/AuthInfo.conf
# KDE walyalnd环境无法输入
sudo sed -i '2i export QT_IM_MODULE=fcitx' /usr/bin/{wps,wpp,et,wpspdf}
# 杀死全部进程重启应用即可输入
quickstartoffice stop
# 删除协作开机自动启动
rm ~/.config/autostart/xiezuo.desktop


yay -S wps-office-cn wps-office-mui-zh-cn wps-office-mime-cn ttf-wps-fonts

不想wpscloudsvr后台在主wps进程退出后停留后台,又不想完全禁用wpscloudsvr的话,有以下几种方法:

  1. 可以使用 https://github.com/7Ji/wpscloudsvr-wrapper ,这个项目会替换wpscloudsvr,启动后会作为wpscloudsvr的父进程fork启动真正的wpscloudsvr并会在托盘区生成一个图标(名称为 WPS云服务)。所有wps进程退出后,可以点击托盘图标退出,其会将wpscloudsvr正确结束。
  2. 可以以 systemd-run --user -- wps 的形式启动相应进程,wpscloudsvr会和主进程一起被systemd user套入一个Type=oneshot的临时.service中,当主进程退出时,wpscloudsvr会作为service的孤儿进程被杀死。这个方案存在问题是wpscloudsvr会和首个主进程绑定,若保留其后启动的wps窗口而关闭首个,则wpscloudsvr会直接退出,不会等待其余wps进程。

QQ、微信

yay -S wechat-uos-qt linuxqq electerm-bin

迅雷、motrix

yay -S xunlei-bin
yay -S motrix-bin

dock栏

sudo pacman -S plank
sudo pacman -S cairo-dock

防止播放时锁屏

可自行添加程序,当该程序运行是将不会锁屏,或手动在状态栏开启防止锁屏

sudo paru -S caffeine-ng

Timeshift 快照

yay -S timeshift

eos安装的KDE可能出现桌面卡死现象

可能是整个 KDE Plasma 桌面环境有问题,可以尝试重新安装整个桌面环境

sudo pacman -S plasma

蓝牙

blueman
sudo systemctl enbale --now bluetooth.service

历史剪切板

用不惯KDE、xfce的历史剪切板可以用 copyq

sudo pacman -S copyq

在首选项中通用里配置自动启动
配置 显示/隐藏主窗口 快捷键,实现快速调用

远程控制

# todesk
yay -S todesk-bin
sudo systemctl start todeskd.service
sudo systemctl enable todeskd.service

# 向日葵
yay -S sunloginclient
sudo systemctl start runsunloginclient.service
sudo systemctl enable runsunloginclient.service

# teamviewer
yay -S teamviewer
# 启动服务
sudo teamviewer daemon start
sudo teamviewer daemon enable
sudo teamviewer daemon restart

启动器

用户目录:~/.local/share/applications/

全局目录:/usr/share/applications/

shell 脚本

[Desktop Entry]
Version=1.0
Name=BurpProEN
Comment=Burp Pro
Exec=nohup /home/eonun/Tools/Penetest/burpsuite_pro/Burp_En.sh >/dev/null 2>&1 &
Icon=/home/eonun/Tools/Penetest/burpsuite_pro/BurpSuite.ico
Terminal=false
Type=Application
Categories=Utility;

可执行程序

[Desktop Entry]
Version=1.0
Name=ChatBox
Comment=ChatBox
Exec=/home/eonun/Tools/Chatbox/Chatbox.AppImage
Icon=/home/eonun/Tools/Chatbox/chatbox.png
Terminal=false
Type=Application
Categories=Utility;

分类

.directory 文件定义分类

[Desktop Entry]
Name=My Custom Category
Comment=This is my custom category
Icon=folder
Type=Directory

用户目录:~/.local/share/desktop-directories/

全局目录:/usr/share/desktop-directories/

其他

sudo cp /opt/dbeaver-ee/dbeaver.ini /opt/dbeaver-ee/dbeaver-agent.jar
sudo cp  /etc/optimus-manager/optimus-manager.conf

内核相关

==> WARNING: Possibly missing firmware for module: 'xhci_pci'
==> WARNING: Possibly missing firmware for module: 'ast'
==> WARNING: Possibly missing firmware for module: 'xhci_pci'
==> WARNING: Possibly missing firmware for module: 'aic94xx'
==> WARNING: Possibly missing firmware for module: 'bfa'
==> WARNING: Possibly missing firmware for module: 'qed'
==> WARNING: Possibly missing firmware for module: 'qla1280'
==> WARNING: Possibly missing firmware for module: 'qla2xxx'
==> WARNING: Possibly missing firmware for module: 'wd719x'
sudo pacman -S linux-firmware
yay -S aic94xx-firmware wd719x-firmware

重建 initramfs:

sudo mkinitcpio -P

backarch

curl -O https://blackarch.org/strap.sh
echo 26849980b35a42e6e192c6d9ed8c46f0d6d06047 strap.sh | sha1sum -c
chmod +x strap.sh
sudo ./strap.sh
sudo pacman -Syu

Arch安装BlackArch工具