[MyArch]我的Archlinux与bspwm的重生之途

N1nEmAn / 2023-08-20 / 原文

0x00 前言碎语

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

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,所以很多东西又需要自己从新配置,在此记录也是方便大家或者自己参考了。