logo 范 · 拾光录
网址收集 关于作者 Github Gitee
杂文随笔5
Hexo博客:基础使用Hexo博客:Next主题Hexo博客:Next进阶使用Hexo博客:Next高级配置基于Node的WIKI管理
前端知识16
HTML常用知识CSS常用知识CSS美化checkbox复选框JavaScript常用知识JavaScript格式化时间戳JavaScript窗口宽高处理JavaScript黑夜主题切换实现方案JavaScript数字转大写简易图片查看器TypeScript基础知识Threejs基础三要素Threejs网格辅助和轨道控制器Threejs物体绘制Electron基础使用Nodejs基础知识animate.css页面动画
Vue框架19
Vite的使用及扩展Vue3父子组件Vue3使用Marked解析MarkdownMermaid图表生成库初始化页面加载动画Axios表单提交二维码解决方案NProgress加载进度条Vue3动态菜单实现Vue3使用ECharts图表Vue3处理Excel导入导出keep-alive页面缓存及setup问题Element:文件上传Element:结合Pinia实现动态菜单Element:图片上传组件Element:自定义统一弹窗组件Element:表格自定义指令控制按钮显示(鉴权)可视化大屏使用缩放适配分辨率
UniApp15
UniApp的基础使用封装网络请求工具及文件上传uni-app的开发记录微信小程序分享原生文件上传Pinia取消滚动条(兼容小程序)tabbar消息数量显示scroll-view上滑到底部加载数据状态栏高度动态设配数据共享与传递uview-plus导航栏实现背景融合Wot UIWot UI实现顶部背景图融合uni-app x
Java基础知识10
基础知识面向对象Lambda表达式常用API常用知识积累try-with-resource注解反射多线程经纬度距离计算
SpringBoot31
application配置Maven创建聚合项目全局异常处理锁机制项目启动初始化数据方式邮件功能集成原生定时任务异步集成阿里云OSS阿里OSS预签名上传基于hutool读excelJSR303WebSocketWebSocket版AI接口流式调用Smart-Doc接口文档生成器application配置信息加密雪花算法工具AOP实现请求参数脱敏思路JWT生成Token及工具类SpringBoot默认JSON与对象转换若依框架:安装使用若依框架:优化和调整文件上传若依框架:管理后台页面优化若依框架:后端接口代码优化SpringAISpringBoot实现AI接口流式调用服务启动时创建MySQL连接自建项目工程树形结构处理工具微信支付代码微信手机号登录
SpringMVC14
跨域处理拦截器RESTful风格伪前后端分离Jackson转换器调整Thymeleaf基于拦截器做权限校验AOP打印接口请求响应日志AOP打印接口请求响应耗时文件上传和回显POST请求加解密实现(AES)POST请求加解密实现(RSA+AES)参数动态校验实现方案真实IP和归属地
MyBatis8
MyBatis基本使用与配置Mapper使用相关MaBatis多数据源配置MyBatisPlus数据统计类处理方案MyBatisPlus条件查询正向工程的实现(H2)mybatis-plus-join
SpringCloud15
Netflix:微服务与搭建Netflix:服务的消费与提供Netflix:EurekaNetflix:ActuatorNetflix:RibbonNetflix:FeignNetflix:HystrixNetflix:ZuulAlibaba:简介与搭建Alibaba:Nacos注册中心Alibaba:RibbonAlibaba:OpenFeignAlibaba:Nacos配置中心Alibaba:GetewayAlibaba:Sentinel
MySQL6
MySQL基础知识MySQL多表查询与事务MySQL常用函数及解决方案MySQL视图MySQL索引安装MySQL
Redis7
Redis介绍和安装Redis配置文件Redis持久化Redis集群Redis语法基础Redis相关问题及解决方案SpringBoot集成Redis使用记录
MongoDB10
Linux安装MongoDBMongoDB基础语法MongoTemplate及SpringBoot配置MongoTemplate中Update操作MongoTemplate中聚合查询MongoTemplate日期归档示例项目使用相关知识归纳地理位置存储与距离查询MongoDB副本集与事务获取类名和属性名工具类
其他数据库1
H2数据库
Python编程6
Python基础知识Python语法yolo目标检测OpenCV的使用及树莓派平台condauv
工具集合13
IDEAMavenGradleGitNginx安装Nginx配置VSCodeJMeter压测DockerOllamaRustFSPicGoObs录制
Linux知识11
Linux常用命令Jar启动脚本VirtualBox安装CentOSVirtualBox安装Ubuntu树莓派安装及使用frp内网穿透ArchLinux:基础系统安装ArchLInux:图形化界面安装ArchLinux:常用软件ArchLinux:深度优化ArchLinux:Niri
创意设计2
Blender:入门知识UI设计基础知识
AI相关9
Claude CodeHermes AgentOpenAI基本使用OpenAI工具调用OpenAI记忆管理OpenAI推理执行OpenAI开发框架Langchainllama.cpp

vim

配置,针对当前用户在在配置.vimrc,全局配置文件在/etc/vimrc

syntax on                     " 设置语法高亮
set nu                        " 设置行数显示
set tabstop=2                 " 设置tab缩进长度
set noautoindent              " 关闭自动缩进
set nosmartindent             " 关闭智能缩进
set nocindent                 " 关闭 C 语言风格缩进
set indentkeys=               " 清空缩进触发键

操作方式

普通模式:esc
编辑:ia
保存退出(普通模式):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 &

while true
do
  power=$(cat /sys/class/power_supply/BAT0/capacity)%
  volume=$(amixer get Master | awk -F'[][]' '/%/ { print $2 }' | head -n 1)
  light=$(cat /sys/class/backlight/nvidia_0/brightness)%
  cpu=$(top -bn1 | sed -n '3p' | tr -s '[:space:]' | cut -d' ' -f2)%
  mem=$(free -m | sed -n '2p' | tr -s '[:space:]' | cut -d' ' -f3)MB
  disk_total=$(df -hl | sed -n '5p' | tr -s '[:space:]' | cut -d' ' -f2)
  disk_use=$(df -hl | sed -n '5p' | tr -s '[:space:]' | cut -d' ' -f3)
  # 需要安装iw
  wifi_name=$(iw dev wlan0 link | grep "SSID" | cut -d' ' -f2-)
  #adjusted_time=$(date -d "$(date +"%F %R") -7 hours" +"%F %R")
  adjusted_time=$(date +"%F %R")
  xsetroot -name " $wifi_name  󰠖 $cpu  󰬔 $mem   $disk_use/$disk_total$volume  󰌵 $light$power  $adjusted_time"
  sleep 1s
done &

exec dwm

调整圆角,sudo vim /etc/xdg/picom.conf

corner-radius = 8

声音

经过很久测试,我的笔记本是核显加独显,需要核显进行声音播放才可

检查声卡
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  # 启动交互式截图

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/binvim ~/.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

IDEA aur地址

缩放,适应个人字体大小

WPS

WPS aur地址

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

JDK

sudo pacman -S jdk17-openjdk

SSH

sudo pacman -S openssh

# 使用
ssh root@8.137.9.75 -p 22

文件传输

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 aur

无法安装问题:

☁  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

pycharmpycharm aur

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

picom升级

通过aur安装v12版本 https://aur.archlinux.org/picom-git.git
~/.config/picom/picom.conf


# 使用 GPU 加速
backend = "glx";
# 防止撕裂
vsync = true;

use-damage = true;
experimental-backends = true;

# 圆角设置
corner-radius = 6;
# 排除 DWM 状态栏
rounded-corners-exclude = ["class_g = 'dwm'"];

# 启用模糊效果
blur-background = true;
blur-method = "dual_kawase";
blur-strength = 5;

# 阴影和透明度
shadow = true;
shadow-radius = 10;
shadow-opacity = 0.6;
inactive-opacity = 0.9;

# 淡入淡出效果
fading = true;
fade-in-step = 0.02;
fade-out-step = 0.02;
fade-delta = 5;

增加模糊、状态栏不圆角

清理系统

清理包缓存
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

快照

https://wiki.archlinuxcn.org/wiki/Timeshift

# 安装
sudo pacman -S timeshift
# 图形化使用
sudo timeshift-launcher

Jetbrains字体

https://www.jetbrains.com/lp/mono/

小米字体

https://hyperos.mi.com/font/zh/details/sc/

带动画的picom

https://yaocc.cc/linuxpicomanimation/

git clone https://github.com/yaocccc/picom
cd picom

rm -rf build
LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" meson --buildtype=release . build
# sudo pacman -S pcre
ninja -C build
sudo ninja -C build install

steam

sudo pacman -Syu

启用 Multilib 仓库(如果尚未启用)Steam 是 32 位应用程序,需要启用 multilib 仓库
sudo vim /etc/pacman.conf

取消注释以下两行(删除前面的 #)
[multilib]
Include = /etc/pacman.d/mirrorlist

sudo pacman -Sy

sudo pacman -S steam

启动 Steam
steam

图片处理

ps的替代

sudo pacman -S gimp

或者在线PS

https://www.photopea.com/

vim
git
picom合成器
声音
截图
锁屏
微信
dwm绑定音量
dwm绑定亮度
IDEA
WPS
VsCode
node
JDK
SSH
配置代理
微信开发者工具
wifi名称显示
pycharm
pip
picom升级
清理系统
蓝牙
解压缩
光标配置
obs
vlc
kdenlive剪辑
blender
快照
Jetbrains字体
小米字体
带动画的picom
steam
图片处理