短小精悍的终端-st

前言

如果你使用dwm这个窗口管理器,那你肯定知道st,一个短小精悍的终端,也是dwm的默认终端,是suckless社区开发的终端,整体十分轻便快捷,但是默认的st十分简单,简单到连历史翻页都没有,不过这些都是可以通过打补丁的方式来扩展和自定义你的st,所以本篇博文我会教你从零开始配置一个短小精悍的终端-st

下载

首先我们肯定有先把他下载下来,我们使用git工具把他克隆到本地:
git clone https://git.suckless.org/st

克隆完成进入该目录,可以看到很多文件,我们主要修改的是config.def.h文件,虽然在第一次编译安装后产生的config.h也可以配置st,但是很多补丁在添加快捷键和变量时都是修改config.def.h文件的,如果修改config.h来配置,那每次打好补丁都要自己手动添加快捷键什么的也太麻烦了,相比之下直接修改config.def.h文件就比较方便了,但是需要注意的是,st在应用配置时是使用config.h的,所以在修改好config.def.h后记得执行rm -rf config.h把之前的配置删除,比如编译安装后还是之前的配置,那我们先不着急修改配置,我们先下载补丁,因为没有补丁的st能修改的也就几个

打补丁&补丁推荐

那么我们先在该st目录下新建一个叫patches的文件夹,方便以后的补丁管理,不然你总不能把补丁直接下载到目录下面吧,那得有多乱,我们使用命令新建文件夹:
mkdir patches

文件夹创建好后我们就要下载补丁了,不过在此之前你也可以试试我的st配置(st配置在文件st里):
https://github.com/Aidens-fox/dwm

  1. st-font2
    一个可以添加备用字体的补丁,因为我英文文喜欢JetBrainsMono字体,中文布局喜欢Sarasa Mono SC(更纱黑体),但是默认st只支持一个字体这个插件很好的解决了这个问题
    下载链接: https://st.suckless.org/patches/font2/
    因为补丁是会更新版本的,所以我就直接贴出下载页面了,我们只需要选择新版本然后鼠标右键选择从链接另存为文件,选择刚才创建的patches文件夹,下载完成后直接使用patch命令来打补丁:
    patch < patches/st-font2-0.8.5.diff
    打好后看看有没有产生config.def.h.rej,如果有就说明要手动添加或删除一些代码,我们打开config.def.h配置font2:
1
2
3
4
5
6
7
// 默认字体
static char *font = "JetBrainsMono Nerd Font:pixelsize=30:antialias=true:autohint=true";
// 备用字体
static char *font2[] = {
"Sarasa Mono SC:pixelsize=30:antialias=true:autohint=true",
"Noto Color Emoji:pixelsize=30:antialias=true:autohint=true",
};

修改完成后在编译安装(如果你在打补丁之前编译安装了,记得把config.h删除了,然后建议每个补丁安装配置完成后都编译安装看看有没有什么问题)
sudo make clean install

  1. st-colorschemes
    这个补丁添加了多种配色方案,只需要使用默认的alt+1~8即可切换配色方案,在原版的st只有一个很刺眼的配色(个人),没有Gruvbox那种柔和的感觉
    下载链接:https://st.suckless.org/patches/colorschemes/
    选择完成后还是使用patch命令来打补丁
    patch < patches/st-colorschemes-0.8.5.diff
    打好后看看有没有产生config.def.h.rej,如果有就说明要手动添加或删除一些代码,我们打开config.def.h配置colorschemes,主要是配置默认的配色方案
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static const ColorScheme schemes[] = {

// Gruvbox dark (默认配色方案)
{{"#282828", "#cc241d", "#98971a", "#d79921",
"#458588", "#b16286", "#689d6a", "#a89984",
"#928374", "#fb4934", "#b8bb26", "#fabd2f",
"#83a598", "#d3869b", "#8ec07c", "#ebdbb2",
[256]="#ebdbb2", "#555555"}, 15, 0, 256, 257},

// Alacritty (dark)
{{"#1d1f21", "#cc6666", "#b5bd68", "#f0c674",
"#81a2be", "#b294bb", "#8abeb7", "#c5c8c6",
"#666666", "#d54e53", "#b9ca4a", "#e7c547",
"#7aa6da", "#c397d8", "#70c0b1", "#eaeaea",
[256]="#cccccc", "#555555"}, 7, 0, 256, 257},

...

};

修改完成后在删除config.h文件来编译安装看看有没有问题:
sudo make clean install

  1. scrollback-reflow-standalone
    这个补丁集成了集成历史的 st 的独立滚动回滚和回流实现存储、鼠标滚动、选择处理和调整回流大小统一
    下载链接:https://st.suckless.org/patches/scrollback-reflow-standalone/
    使用patch命令来打补丁:
    patch < patches/st-scrollback-reflow-standalone-extended-0.9.3.diff
    打好后看看有没有产生config.def.h.rej,如果有就说明要手动添加或删除一些代码,修改完成后在删除config.h文件来编译安装看看有没有问题:
    sudo make clean install

  2. copyurl
    这个补丁用于复制URL,默认快捷键alt+l,有多个版本可下载,根据自己需求下载
    下载链接: https://st.suckless.org/patches/copyurl/
    使用patch命令来打补丁:
    patch < patches/st-copyurl-20190202-0.8.1.diff
    打好后看看有没有产生config.def.h.rej,如果有就说明要手动添加或删除一些代码,修改完成后在删除config.h文件来编译安装看看有没有问题:
    sudo make clean install

  3. clipboard
    这个插件为st添加了更现代的复制粘贴快捷键,也就是ctrl+c和ctrl+v
    下载链接:https://st.suckless.org/patches/clipboard/
    使用patch命令来打补丁:
    patch < patches/st-clipboard-0.8.3.diff
    打好后看看有没有产生config.def.h.rej,如果有就说明要手动添加或删除一些代码,修改完成后在删除config.h文件来编译安装看看有没有问题:
    sudo make clean install