more about kmscon

This commit is contained in:
2025-12-18 19:19:55 +01:00
parent 4a9d8189b1
commit 3cf506fedf
4 changed files with 50 additions and 20 deletions

View File

@@ -120,7 +120,7 @@ cpu_load_color=39F900,FDFD09,FF0000
### Display per process memory usage
## Show resident memory and other types, if enabled
procmem
# procmem
# procmem_shared
# procmem_virt

View File

@@ -2,10 +2,6 @@ if not set -q fetch_logo_type
set -g fetch_logo_type auto
end
if ps -e -o pid,comm | grep -q (pgrep kmscon)
set -g fetch_logo_type logo
end
if not set -q fetch_color
set -g fetch_color "#89b4fa"
end

View File

@@ -19,7 +19,6 @@ sudo systemctl enable getty@tty1.service
理由:
- kmscon 中通过命令行启动图形 session 会遇到问题。
- 通常 tty1 用于运行图形界面,不需要 kmscon 提供的各种特性。
## 修改默认配置
@@ -39,7 +38,6 @@ ExecStart=/usr/bin/kmscon --vt=%I --seats=seat0 --no-switchvt
解释:
- 默认的 `ExecStart` 携带的参数会覆盖所有配置文件中的对应项,需要先清空。
- 保留默认参数 `--login` 前的部分,因为我看不出不这么做的理由。
然后就可以在 `/etc/kmscon/kmscon.conf` 添加自定义的配置了。
@@ -57,25 +55,53 @@ font-size=14
- `login=/bin/login -p -f kolkas` 指定自动登录用户。
- `font-name``font-size` 用于设置字体和大小。
## 关于字体的补充说明
### 关于自动登录的补充说明
1. kmscon 上 2 字符宽的 nerd font 图标会被裁剪至 1 字符宽。因此我使用带有 Mono 后缀的 Meslo 系字体作为首选字体,它的图标字符只有 1 字符宽。
如果想让 kmscon 在自动登录的同时启动非登陆 shell (例如 fish),可以将配置改为:
2. [Archwiki - KMSCON](https://wiki.archlinux.org/title/KMSCON) 上提供了另一种更改字体的方法,即修改 fontconfig 配置,具体做法为在 monospace 字体族中前置添加字体。但这会影响所有使用 fontconfig 和 monospace 字体族的程序,包括图形界面中的终端模拟器。
```conf
login=/usr/bin/su - kolkas -s /usr/local/bin/fish-login-wrapper
```
其中 `fish-login-wrapper` 内容为:
```sh
#!/bin/bash
if [ -f /etc/profile ]; then
source /etc/profile
fi
if [ -f ~/.bash_profile ]; then
source ~/.bash_profile
fi
# 设置环境变量以供后续脚本检测
export IS_KMSCON=1
# 设定 fastfetch 的 logo 类型为 logo (config/shell/.config/fish/post.d/fetch.fish 会读取该变量)
export fetch_logo_type=logo
exec /usr/bin/fish
```
如果不需要读取 profile 文件而直接将 fish 作为登陆 shell可以将配置改为
```conf
login=/usr/bin/su - kolkas -s /usr/bin/fish --login
```
### 关于字体的补充说明
- kmscon 上 2 字符宽的 nerd font 图标会被裁剪至 1 字符宽。可以使用带有 Mono 后缀的 Meslo 系字体作为首选字体,它的图标字符只有 1 字符宽。
- [Archwiki - KMSCON](https://wiki.archlinux.org/title/KMSCON) 上提供了另一种更改字体的方法,即修改 fontconfig 配置,具体做法为在 monospace 字体族中前置添加字体。但这会影响所有使用 fontconfig 和 monospace 字体族的程序,个人认为并非首选。
## 检测当前终端是否为 kmscon
> 以下代码片段适用于 fish shell
检测父进程和祖父进程是否 kmscon
```sh
if ps -e -o pid,comm | grep -q (pgrep kmscon)
# 在 kmscon 中
end
```
或者更精细地检测所有祖先进程 (fish)
检测所有祖先进程是否 kmscon
```sh
function is_kmscon
@@ -97,3 +123,11 @@ if is_kmscon
# 在 kmscon 中
end
```
或如果配置了 [环境变量](#关于自动登录的补充说明)
```sh
if test -n "$IS_KMSCON"
# 在 kmscon 中
end
```