MENU

【Linux】Back to Linux, to Some Extent...

2026 年 04 月 20 日 • 文章

我真的需要一台Linux设备吗?并不是,我只是怀念平铺式窗口管理器的感受了……

相比于技术,这更像是一种美学的选择。

随便水一篇~

无米难炊:设备购置

最近没什么事情干,在工位百无聊赖。突然怀念本科阶段用的Arch Linux,平铺式窗口管理器+很Geek的Editor……正好最近手头比较宽裕,买一台设备来玩玩。

那么买什么设备呢……树莓派?太玩具了,而且性价比不高,这个东西只适合当个小型家用服务的服务器。新笔记本?太贵了,现在笔记本可是溢价严重。最后我打算买一个二手的笔记本。那么二手笔记本又要买什么型号?当然是大名鼎鼎的ThinkPad产线。最后在淘宝的雷伊数码小店,购买了一台二手ThinkPad T14。

为什么要买这台机子?因为我一直很想试试大名鼎鼎的ThinkPad,可是新款的笔记本还是太贵,对我这个学生党还不是很友好。除此之外,这台机子是纯用来coding的,不玩游戏,不做渲染,不做剪辑,没什么太高的性能需求,于是就买了这台设备,配置大概是R5 PRO 4650U + 16G + 512G,是ThinkPad T14 Gen2。

不过是二手,到手之后触控板不是很好用,倒也无伤大雅,反正是要被我丢在工位连键鼠用的。正好,也不用碰触控板那坨了。ThinkPad有个小红点,但是我感觉这个人人都觉得很优秀的小红点并不如触控板好用。

身外之物:发行版&桌面环境

仍然是Arch Linux,人人都说Arch不稳定,容易滚挂,但我一次都没有遇到过,最严重的时候,也就回滚一下linux内核版本就足够了。这次使用的是btrfs文件系统,换掉了之前的ext4。不过,为了稳定性的考量,我依然安装了timeshift进行定时的备份操作。

发行版里,Debian总给我一种死气沉沉的感觉;Ubuntu又很容易autoremove出现一些问题。

对于桌面环境,是X11还是Wayland?X11。因为我听说wayland还有问题没有解决,而x11我很熟悉,能够很快上手配置。我也不喜欢什么特别花哨的动效和分数缩放功能。

至于窗口管理器,KDE太花哨,Gnome太古板,xfce太廉价,i3wm玩不明白——我最终还是选择了最对我胃口的bspwm,利用二叉树管理window,很符合直觉。bspwm的配置文件是极其简单极其易懂的,不会有特别多复杂的配置。

对于键位绑定,bspwm采用sxhkd进行配置,每个配置块只有两行,第一行便是键位绑定,第二行便是执行的命令,比如:

super + Return
        alacritty

super + Escape
        pkill -USR1 -x sxhkd

XF86AudioRaiseVolume
        wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+

super + {Left,Right}
        bspc node focused --to-desktop {prev.local,next.local} --follow

至于状态条,就是polybar。用ai vibe一个配置即可。bar上有10个桌面编号,用来显示当前的桌面索引,方便在不同的桌面之间切换,又有一个小托盘,模拟Mac和Win上托盘的表现,除此之外就是一些系统信息,CPU占用率啦,内存之类的。

一点配置:投屏和远程访问

因为这次工位有个显示器,所以相比于之前,还需要折腾一下多显示器的配置,我为了只使用外接显示器:

xrandr --output HDMI-1 --primary --auto --output eDP-1 --off &

但是这遇到了一个问题,就是这样的话,会导致polybar的桌面编号不显示,那这是因为,polybar的桌面编号是来自于bspwm的,而bspwm是一个显示器一个编号,之前的桌面是绑定在笔记本的显示器下,新显示器下没有绑定,解决办法也很简单,就是先切换显示器,再重新排列桌面编号,这样bspwm就在新显示器上面绑定了几个桌面,最后运行polybar:

xrandr --output HDMI-1 --primary --auto --output eDP-1 --off &
bspc wm --reorder-monitors HDMI-1

bspc monitor HDMI-1 -d 1 2 3 4 5 6 7 8 9 10

~/.config/polybar/launch.sh

我总有不在实验室的时候——比如犯懒的时候——这个时候,如何在宿舍操作实验室的机器,就很重要了,我选择的solution是tailscale,因为它配置简单,又不要求外部服务器。只需要根据文档在不同设备上安装tailscale,就可以彼此连接了。

除此之外,为了最大限度提升安全性,我不仅将ssh的端口修改了,也阻断了密码登入的方式,统一密钥登入。