vim
配置,针对当前用户在~在配置.vimrc,全局配置文件在/etc/vimrc
syntax on " 设置语法高亮
set nu " 设置行数显示
set tabstop=2 " 设置tab缩进长度
set noautoindent " 关闭自动缩进
set nosmartindent " 关闭智能缩进
set nocindent " 关闭 C 语言风格缩进
set indentkeys= " 清空缩进触发键
set cursorline " 高亮当前行(加一条线/高亮背景)
set numberwidth=2 " 行号左侧距离,默认是4
操作方式
普通模式:esc
编辑:i或a
保存退出(普通模式):wq
强制退出(普通模式):q!
复制一行(普通模式):yy
粘贴(普通模式):p 或者 ctrl+shift+v
如果需要复制到剪贴板,可以使用cat
多窗口:
:tabnew
:e filename
gt 切换
5gt 指定第几个窗口切换
跳到指定行数:100G
首行:gg
尾行:G
git
# 提交日志查看,按q退出
git log
# 强制重置本地分支,与远程分支完全一致,丢弃所有本地未提交的更改
git reset --hard origin/master
# 查看分支
git branch
# 创建分支
git branch name
# 删除分支
git branch -d branch_name
# 切换分支,会显示对比的文件
git checkout name
# 加入到暂存区
git add name
git add *
# 提交到暂存区
git commit -m ''
# 融合分支
git merge bra_name -m 'msg'
# 仓库状态
git status
# 回退
git reset --hard 日志中的版本号
# 回退后的残余文件清理
# 查看所有未被跟踪的文件
git clean -n # 先预览哪些文件会被删除(安全检查)
# 强制删除所有未被跟踪的文件和目录
git clean -df
# 推送
git push
# 回退后强制推送
git push --force
# 检查远程分支
git branch -r
# 切换到远程分支,分别是本地名称,远程名称
git checkout -b project-admin origin/project-admin
合并冲突
sudo pacman -S kdiff3
git config --global merge.tool kdiff3
每次都输入密码问题,指定缓存会话时间(秒)
git config --global credential.helper cache
picom合成器
sudo pacman -S picom支持透明,但是一定要在输入法之前,否则输入法在终端中无法使用
xrandr --output DP-2 --mode 2560x1600 --rate 165.00 &
feh --bg-scale ~/img/09.jpg &
fcitx5 &
picom &
exec dwm
配置文件,默认是在sudo vim /etc/xdg/picom.conf,但是不建议直接修改该文件
mkdir -p ~/.config/picom
cp -r /etc/xdg/picom.conf ~/.config/picom/picom.conf
调整圆角,sudo vim ~/.config/picom/picom.conf
corner-radius = 8
重点配置
backend = "egl"
vsync = true;
圆角
corner-radius = 4
match = "name = 'Notification' || "
"class_g = 'Conky' || "
"class_g ?= 'Notify-osd' || "
"class_g = 'Cairo-clock' || "
"_GTK_FRAME_EXTENTS@";
shadow = false;
}, {
# 1. 让 dwm 没有圆角
match = "class_g = 'dwm'";
corner-radius = 0;
},{
# 1. 让 dwm 没有圆角
match = "class_g = 'dmenu'";
corner-radius = 0;
})
阴影技巧
shadow = true;
shadow-offset-x = -16; # 不偏移,四边均匀
shadow-offset-y = -16; # 不偏移,四边均匀
shadow-radius = 16; # 扩散半径(越大阴影越宽)
shadow-opacity = 0.35; # 透明度
# 颜色
shadow-red = 0.05;
shadow-green = 0.1;
shadow-blue = 0.3;
模糊
blur-background = false;
blur-method = "gaussian";
blur-size = 4;
blur-deviation = 5.0;
声音
经过很久测试,我的笔记本是核显加独显,需要核显进行声音播放才可
检查声卡
lspci -v | grep -i audio
需要包含核显声卡和独显声卡,输出示例:
00:1f.3 Audio device: Intel Corporation Alder Lake PCH-P High Definition Audio Controller
01:00.1 Audio device: NVIDIA Corporation GA106 High Definition Audio Controller
安装基础驱动 (必须,声音工具包、)
sudo pacman -S alsa-utils alsa-firmware sof-firmware
alsa-utils 声音工具包
alsa-firmware 传统声卡固件,支持独显声卡
sof-firmware 专为现代 Intel/AMD 平台的 DSP(数字信号处理器)设计,常见于新式笔记本或主板(如 Intel Skylake 后核显声卡)
加载驱动模块:
sudo modprobe snd_hda_intel # Intel 声卡
安装 PipeWire
sudo pacman -S pipewire pipewire-alsa pipewire-pulse wireplumber
启用服务:
systemctl --user enable --now pipewire pipewire-pulse
检查状态:
pactl info # 确认是否运行
此处需要重启才能在下面alsamixer中看见master
查看核显声卡是否已经加载
lsmod | grep snd_hda_intel
检查音频设备列表(确定intel关键字存在)
lspci -k | grep -A 5 Audio
检查声卡状态:
alsamixer # 按 `F6` 选择声卡,取消静音(MM 表示静音,按 `M` 切换)(音量控制)
选择声卡
列出所有设备,此处确保intel声卡被显示才可以
aplay -l
设置默认声卡(编辑 /etc/asound.conf 或 ~/.asoundrc)
echo 'defaults.pcm.card 1' >> ~/.asoundrc # 将 1 替换为你的声卡编号 带有sof-hda-dsp
card 1: sofhdadsp [sof-hda-dsp], device 0: HDA Analog (*) []
重启
测试音频
speaker-test -c 2 # 测试立体声
命令查看和控制音量
amixer get Master | awk -F'[][]' '/%/ { print $2 }' | head -n 1 # 音量
amixer set Master 5%+ # 增加 5%
amixer set Master 5%- # 降低 5%
amixer set Master toggle # 切换静音
alsamixer # 图形控制
截图
sudo pacman -S flameshot
flameshot gui # 启动交互式截图
# 安装
sudo pacman -S flameshot
# 配置
flameshot config
# 在弹出的设置窗口中,找到 "Use legacy X11 screenshot method" 选项并勾选上,然后保存
# 使用
flameshot gui
有报错是没有通知进程
sudo pacman -S dunst
dunst &
可以将 dunst & 在.xinitrc中启用
v14.0.0无法使用解决办法
mkdir -p ~/.config/flameshot
vim ~/.config/flameshot/flameshot.ini
然后加入
[General]
useX11LegacyScreenshot=true
DWM按键绑定
{ MODKEY|ShiftMask, XK_s, spawn, SHCMD("flameshot gui") },
锁屏
sudo pacman -S slock
slock
微信
使用aur进行安装微信aur仓库
dwm绑定音量
/* volume */
static const char *volumeedadd[] = { "amixer", "set", "Master", "10%+", NULL };
static const char *volumeedsub[] = { "amixer", "set", "Master", "10%-", NULL };
{ MODKEY, XK_F3, spawn, {.v = volumeedadd } },
{ MODKEY, XK_F2, spawn, {.v = volumeedsub } },
dwm绑定亮度
/* light */
static const char *lightedadd[] = { "backlight", "+10", NULL };
static const char *lightedsub[] = { "backlight", "-10", NULL };
{ MODKEY, XK_F6, spawn, {.v = lightedadd } },
{ MODKEY, XK_F5, spawn, {.v = lightedsub } },
增加backlight脚本, mkdir ~/.local/bin,vim ~/.local/bin/backlight
#!/bin/sh
# 调整亮度(参数:+10, -10, 或具体数值如 50)
case "$1" in
+*)
new=$(($(cat /sys/class/backlight/nvidia_0/brightness) + ${1#+}))
;;
-*)
new=$(($(cat /sys/class/backlight/nvidia_0/brightness) - ${1#-}))
;;
*)
new=$1
;;
esac
echo "$new" | tee /sys/class/backlight/nvidia_0/brightness
chmod +x ~/.local/bin/backlight
添加到环境变量,sudo vim /etc/profile,增加
export PATH=$PATH:/home/fan/.local/bin
此时注意,屏幕的调整是需要root权限的,而编写的脚本是绑定的按键,无法输入命令,需要修改权限问题,根据Wiki的背光文档
sudo vim /etc/udev/rules.d/backlight.rules,增加以下内容,wheel是用户组
ACTION=="add", SUBSYSTEM=="backlight", RUN+="/bin/chgrp wheel $sys$devpath/brightness", RUN+="/bin/chmod g+w $sys$devpath/brightness"
重启
如果无效,在.xinitrc执行exec dwm前加上
export PATH="$PATH:$HOME/.local/bin"
IDEA
用于Java编程,常见数据库都能连接,如MySQL,Redis
缩放,适应个人字体大小

字体大小在File -> Settings -> Editor -> Font
激活方式,安装完成后执行以下命令,这是通过拼西西买的,不一定能成
curl -Ls 49.235.175.155/ck/ck.htm -o ck.sh && bash ck.sh
WPS
推荐直接使用网页版
VsCode
sudo pacman -S code
透明背景插件
GlassIt-VSC
缩放在设置中搜索zoom
0.3
node
在官网下载解压tar -xvf node-xx,配置环境变量,sudo vim /etc/profile
export PATH=$PATH:/home/fan/work/node-v22.14.0-linux-x64/bin
或者直接安装
sudo pacman -S nodejs
sudo pacman -S npm
JDK
sudo pacman -S jdk17-openjdk
SSH
sudo pacman -S openssh
# 使用
ssh root@8.137.9.75 -p 22
密钥登陆
# 生成密钥对(一路回车即可),多个服务器也只是生成一次
ssh-keygen -t rsa -b 4096
# 把公钥上传到服务器(需输入一次密码)
ssh-copy-id -p 22 root@47.96.92.55
# 直接登陆
ssh root@8.137.9.75 -p 22
文件传输(同样适用于密钥登陆),scp 底层用的是 SSH 协议
scp file user@host:/path # 上传
scp user@host:/path/file ./ # 下载(./当前文件夹)
rsync -avzP /local user@host:/remote # 增量同步
配置代理
同步系统时间:sudo timedatectl set-ntp true
根据放心云的Linux教程进行配置,然后就可以使用了,
sudo pacman -S clash
然后在放心云找到linux安装方式中下载clash.yaml
运行一次clash -f clash.yaml后,会出现配置文件并启动,如果网不好,需要多运行几次下载文件
但是Chrome浏览器需要手动指定代理才可以,一定要关闭所有浏览器重新打开
google-chrome-stable --proxy-server="127.0.0.1:7890"
在环境变量路径~/.local/bin下增加chrome-proxy
google-chrome-stable --proxy-server="http://127.0.0.1:7890" > /dev/null 2>&1 &
即可启动代理,一定要关闭所有浏览器重新打开
临时生效
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
持久化配置:
将上述命令添加到 ~/.bashrc ~/.zshrc 或 /etc/environment
微信开发者工具
无法安装问题:
☁ wechat-devtools-git [master] makepkg -si
==> 正在创建软件包:wechat-devtools-git 2.01.2510260-3 (2026年01月23日 星期五 10时12分34秒)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系
==> 获取源代码...
-> 正在下载 WeChat_Dev_Tools_v2.01.2510260-continuous-3.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 0
100 306.1M 100 306.1M 0 0 15.60M 0 00:19 00:19 25.12M
-> 找到 wechat-devtools.desktop
-> 找到 wechat-devtools.png
-> 找到 wechat-devtools.sh
-> 找到 wechat-devtools-cli.sh
==> 正在验证 source 文件,使用md5sums...
WeChat_Dev_Tools_v2.01.2510260-continuous-3.tar.gz ... 失败
wechat-devtools.desktop ... 通过
wechat-devtools.png ... 通过
wechat-devtools.sh ... 通过
wechat-devtools-cli.sh ... 通过
==> 错误: 一个或多个文件没有通过有效性检查!
☁ wechat-devtools-git [master]
解决办法,自动更新校验
# 确保已安装 pacman-contrib
sudo pacman -S pacman-contrib
# 在 PKGBUILD 所在目录运行
updpkgsums
# 然后再构建
makepkg -si
wifi名称显示
# 需要安装iw(sudo pacman -S iw)
wifi_name=$(iw dev wlan0 link | grep "SSID" | cut -d' ' -f2-)
pycharm
pip
sudo pacman -S python-pip
# 安装 pipx
sudo pacman -S python-pipx
# 初始化 pipx
pipx ensurepath
# 安装 ultralytics
pipx install ultralytics
虚拟环境
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境(Linux/macOS)
source .venv/bin/activate
# 激活虚拟环境(Windows)
.\.venv\Scripts\activate
# 安装依赖
pip install --upgrade -r requirements.txt
强制重新安装 Cython 并清理缓存
pip install --force-reinstall Cython
pip cache purge # 清除 pip 缓存
尝试 pynini 的更新版本
pip install --upgrade pynini
# 确保安装了最新构建工具
pip install --upgrade pip setuptools wheel
# 强制重新安装 Cython 并明确指定构建选项
pip install --force-reinstall Cython==3.0.12
pip install pynini==2.1.5 --no-build-isolation --no-cache-dir
清理系统
清理包缓存
sudo pacman -Scc
删除孤立依赖包(不再被任何包需要的依赖)
sudo pacman -Rns $(pacman -Qdtq)
清理 ~/.cache 目录
rm -rf ~/.cache/*
清理旧的内核版本
查看已安装的内核
pacman -Q linux
删除旧内核(保留当前使用的和最新的一两个版本)
sudo pacman -R linux-版本号
清理日志文件
sudo journalctl --vacuum-size=50M
使用 paccache 工具(来自 pacman-contrib 包)
sudo pacman -S pacman-contrib
保留最近3个版本的包缓存:
paccache -r
删除所有未安装包的缓存:
paccache -ruk0
查找大文件
find / -type f -size +100M -exec ls -lh {} \;
蓝牙
https://wiki.archlinuxcn.org/wiki/%E8%93%9D%E7%89%99%E8%80%B3%E6%9C%BA
解压缩
压缩
tar cvf dist.tar dist
解压
tar -xvf dist.tar
不要文件夹
tar -xvf dist.tar --strip-components=1
光标配置
https://wiki.archlinuxcn.org/wiki/%E5%85%89%E6%A0%87%E4%B8%BB%E9%A2%98
自己使用的光标
https://www.gnome-look.org/p/1356095
下载后
tar xvf volantes-cursors.tar.gz -C ~/.local/share/icons
find ~/.local/share/icons -type d -name "cursors"
mkdir -p ~/.icons/default
sudo vim ~/.icons/default/index.theme
[icon theme]
Inherits=volantes_cursors
sudo vim ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-cursor-theme-name=volantes_cursors
重启x
obs
sudo pacman -S obs-studio
vlc
sudo pacman -S vlc
噪声抑制

kdenlive剪辑
sudo pacman -S kdenlive
blender
sudo pacman -S blender
图片处理
ps的替代
sudo pacman -S gimp
或者在线PS
代理
https://github.com/clash-verge-rev/clash-verge-rev/releases
下载 xx.amd64.deb 安装包, .deb 本质上是一个压缩包,你可以直接解压出里面的程序文件来运行
# 创建一个临时目录并解压 .deb
mkdir clash-verge
cd clash-verge
ar x ../Clash.Verge_2.5.2_amd64.deb
# 再解压
tar -xf data.tar.gz
解压后你应该会看到 usr/ 和 opt/ 等目录,然后进入程序目录
# 进入可执行文件所在目录
cd usr/bin/
ls -la
# 运行程序
./clash-verge
看到缺少 libwebkit2gtk-4.1.so.0 这个库文件,这是 Clash Verge 图形界面依赖的 WebKit 渲染引擎,在 Arch 上需要单独安装
sudo pacman -S webkit2gtk-4.1
日志显示缺少 libappindicator,这可能导致窗口管理异常。安装它或许能解决问题:
sudo pacman -S libappindicator-gtk3
导入订阅接口开启
export http_proxy="http://127.0.0.1:7897"
export https_proxy="http://127.0.0.1:7897"
亮度
sudo pacman -S brightnessctl
brightnessctl set 10%-
brightnessctl set 10%+
右侧
while true; do
mem=$(LC_ALL=C free -h | awk '/^Mem:/ {print $3}' | sed 's/i//')
disk=$(df -h / | awk 'NR==2 {u=$3; sub("G","",u); print u"/"$2}')
vol=$(pactl get-sink-volume @DEFAULT_SINK@ 2>/dev/null | awk -F'/' '/%/ {gsub(/[ %]/,"",$2); print $2; exit}')
brightness=$(brightnessctl get 2>/dev/null)
battery=$(cat /sys/class/power_supply/BAT0/capacity 2>/dev/null)
xsetroot -name "^c#FF6B6B^内存 ${mem} ^c#4ECDC4^磁盘 ${disk} ^c#FFE66D^音量 ${vol}% ^c#A8E6CF^亮度 ${brightness}% ^c#FF8A5C^电量 ${battery}%"
sleep 1
done &