diff --git a/config/misc/.config/MangoHud/MangoHud.conf b/config/misc/.config/MangoHud/MangoHud.conf index 4f73544..26aaeb2 100644 --- a/config/misc/.config/MangoHud/MangoHud.conf +++ b/config/misc/.config/MangoHud/MangoHud.conf @@ -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 diff --git a/config/shell/.config/fish/post.d/fetch.fish b/config/shell/.config/fish/post.d/fetch.fish index dbc6c8d..55d7da1 100644 --- a/config/shell/.config/fish/post.d/fetch.fish +++ b/config/shell/.config/fish/post.d/fetch.fish @@ -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 diff --git a/config/wallpaper/Pictures/backgrounds b/config/wallpaper/Pictures/backgrounds index 7cbff00..719962a 160000 --- a/config/wallpaper/Pictures/backgrounds +++ b/config/wallpaper/Pictures/backgrounds @@ -1 +1 @@ -Subproject commit 7cbff002d7f1b234502b8b3db7ca4ae4f18527e0 +Subproject commit 719962a4ae3f87e2d8f3814f19e9fd4bf1a50dbc diff --git a/memo/kmscon.md b/memo/kmscon.md index 82cdc5d..7999ff4 100644 --- a/memo/kmscon.md +++ b/memo/kmscon.md @@ -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 +```