O script abaixo definirá o tamanho da fonte, de todos os perfis de uma só vez, em etapas de 0,5. Você terá que ver se isso é suficiente para você; o terminal não reage em todas as etapas.
No meu caso, houve uma mudança visível de
10 --> 10.5 --> 11
10.5
11
mas aumentando a partir de
11 --> 11.5
não teve nenhum efeito até aumentar mais uma vez para
12
Isso provavelmente está relacionado ao tamanho da fonte, em relação ao tamanho da janela, que não permite floats, já que você está usando uma fonte monotype no terminal.
No entanto, o script oferece os tamanhos que existem nessa situação.
O script
#!/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)
Como usar
- Copie o script em um arquivo vazio, salve-o como
terminalfont.py
-
Teste- execute o script pelos comandos:
python3 /path/to/terminalfont.py up
para aumentar o tamanho da fonte e
python3 /path/to/terminalfont.py down
para diminuir o tamanho da fonte
- Se tudo funcionar bem, adicione os dois comandos aos atalhos
Explicação
Infelizmente, não há chave disponível em gsettings
para definir o tamanho da fonte do terminal. Precisamos usar dconf
diretamente para ler e editar configurações.
Primeiramente, podemos buscar a lista de perfis pelo comando:
dconf read /org/gnome/terminal/legacy/profiles:/list
Quando tivermos a lista de perfis, o script primeiro desativa a utilização da fonte padrão (por perfil):
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/use-system-font false
onde b1dcc9dd-5262-4d8d-a863-c897e6d979b9
é o ID do perfil
Posteriormente, lemos a fonte atual & amp; tamanho com o comando:
dconf read /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font
... analisamos o tamanho da fonte, adicionamos ou subtraí 0.5
e definimos o novo tamanho por:
dconf write /org/gnome/terminal/legacy/profiles:/:b1dcc9dd-5262-4d8d-a863-c897e6d979b9/font 'Monospace 14.0'
Nota
Como mencionado, se isso for suficiente para você só pode ser testado por você. Se isso não acontecer, receio que não consigamos consertá-lo, porque o tamanho da fonte deve estar em certa proporção da janela do terminal em uma fonte de tipo mono.