如何配置终端中字体大小变化的步骤?

如何配置终端中字体大小变化的步骤?

如何配置终端中字体大小变化的步长?我现在使用 10pt,使用键盘快捷键时下一步太大。如何配置步长?

答案1

下面的脚本将一次性设置所有配置文件的字体大小,步长为 0.5。您必须看看这是否足够;终端不会对所有步骤做出反应。

就我而言,

10 --> 10.5 --> 11

10.5

在此处输入图片描述

11

在此处输入图片描述

但随后从

11 --> 11.5

没有效果直到再次增加

12

在此处输入图片描述

这可能与字体大小有关,相对于窗口大小,由于您在终端中使用单型字体,因此不允许浮动。

尽管如此,脚本提供了这种情况下存在的尺寸。

剧本

#!/usr/bin/env python3
import subprocess
import sys
import ast

"""
Copyright (C) 2016  Jacob Vlijm
https://launchpad.net/~vlijm/+contactuser
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or any later version. This
program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details. You
should have received a copy of the GNU General Public License along with this
program.  If not, see <http://www.gnu.org/licenses/>.
"""

arg = sys.argv[1]

k = ["/org/gnome/terminal/legacy/profiles:/:", "/use-system-font", "font"]

def get(cmd):
    return subprocess.check_output(cmd).decode("utf-8").strip()

def run(cmd):
    subprocess.Popen(cmd)

def set_size(profile):
    def_font = k[0]+profile+k[1]
    # first set use default font to false
    run(["dconf", "write", def_font, "false"])
    # read the current font
    currfont = ast.literal_eval(get(["dconf", "read", k[0]+profile+"/"+k[2]])).split()
    # read the current size
    currsize = float(currfont[-1])
    # set the newsize
    if arg == "up":
        newsize = currsize+0.5
    elif arg == "down":
        newsize = currsize-0.5
    run(["dconf", "write", k[0]+profile+"/"+k[2], "'"+currfont[0]+" "+str(newsize)+"'"])

# get profiles
prf = k[0][:-1]+"list"
# set fontsize up/down 0.5
for p in ast.literal_eval(get(["dconf", "read", prf])):
    set_size(p)

如何使用

  1. 将脚本复制到一个空文件中,另存为terminalfont.py
  2. 通过以下命令测试运行脚本:

    python3 /path/to/terminalfont.py up
    

    增加字体大小,以及

    python3 /path/to/terminalfont.py down
    

    减小字体大小

  3. 如果一切正常,请将两个命令都添加到快捷方式

解释

不幸的是,没有可用于gsettings设置终端字体大小的键。我们需要dconf直接使用它来读取和编辑设置。

我们可以首先通过以下命令获取配置文件列表:

dconf read /org/gnome/terminal/legacy/profiles:/list

一旦我们有了配置文件列表,脚本就会首先禁用使用默认字体(每个配置文件):

dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/use-system-font false

b1dcc9dd-5262-4d8d-a863-c897e6d979b9个人资料的 ID 在哪里

随后我们使用以下命令读取当前字体和大小:

dconf read /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font

...我们解析字体大小,添加或减去0.5,然后通过以下方式设置新的大小:

dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font 'Monospace 14.0'

笔记

如上所述,这是否足够,只能由您自己测试。但是,如果不够,恐怕我们无法修复它,因为在单色字体上,字体大小必须与终端窗口保持一定比例。

相关内容