[MyArch]我的Archlinux与bspwm的重生之途
0x00 前言碎语
2023.8.19
好久不见。这些日子一直在和bspwm和archlinux打交道。自从上次NepCTF的前几天和CuB3y0nd小师傅的bspwm配置打交道之后我一发不可收拾。中间为了恢复数据重装系统进kde,结果空手而归。收获是连续两次重装archlinux,我对这个系统的认识更加深刻了。


0x01 参考
开始就是用refus烧一个u盘,使用最新的archlinux镜像即可。也可以使用ventoy。
然后就是分区挂载,装基础包,配置引导,开机就行。整体来说也没有什么。主要是后续的配置。
主要参考文章
辅助参考文章
辅助参考主要是格式化swap分区的时候使用mkswap /dev/xxx命令。
并且注意最好使用linux-zen内核。
cubey小师傅的后续参考博客
这里没有梯子只能这样先获取bspwm配置。
git clone https://gitclone.com/github.com/CuB3y0nd/1llusion.git
#这是git clone https://gitclone.com/(后面是你原本要clone的地址去掉 https://)
#这是使用了国内镜像加速
双系统引导
双系统引导的部分发现上面几个博客讲的都不是很详细。
其实主要就是在已经有grub之后,使用fdisk -l /dev/xxx命令查看分区,找到Windows的efi分区,然后挂载到/mnt上,使用os-prober,探测到windows的boot文件之后,再次使用grub-mkconfig -o /boot/grub/grub.cfg命令创建grub文件即可。
后续bspwm配置就很杂乱了,可以参考后续参考的那个文章和其他文章吧。
0x02 特殊软件包和脚本
nemo文件管理器
flameshot截图
oh-my-zsh我的主题是af-magic
gpaste作为剪贴板
移动窗口到空闲桌面
#!/bin/bash
# 上面这行指定了解释器为 bash
# 获取桌面列表
desktops=$(bspc query -D --names)
# 这一行运行了 bspc 命令,获取当前所有桌面的名称,并将结果赋值给变量 desktops
# 函数:检查桌面是否为空
is_desktop_empty() {
local desktop=$1
window_count=$(bspc query -N -d "$desktop" -n '.leaf.!hidden')
[ -z "$window_count" ]
}
# 这里定义了一个函数 is_desktop_empty,它会检查给定桌面是否为空(没有窗口)
# 遍历所有桌面,寻找空闲桌面
for desktop in $desktops; do
if is_desktop_empty "$desktop"; then
# 获取焦点窗口的ID
focused_window=$(bspc query -N -n focused)
# 获取当前焦点窗口的 ID
if [ -n "$focused_window" ]; then
# 将焦点窗口移动到空闲桌面
bspc node "$focused_window" -d "$desktop"
# 使用 bspc 命令将焦点窗口移动到空闲桌面
exit 0
else
echo "未找到焦点窗口"
exit 1
fi
fi
done
echo "未找到空闲桌面"
exit 1
# 如果没有找到空闲桌面或焦点窗口,会显示相应的消息并退出脚本
0x03 小尾巴
后续会不断更新。因为我是使用bspwm而不再是kde,所以很多东西又需要自己从新配置,在此记录也是方便大家或者自己参考了。