首頁  >  文章  >  系統教程  >  教你如何更改Linux控制台上的字體

教你如何更改Linux控制台上的字體

WBOY
WBOY原創
2024-06-02 17:16:591001瀏覽

教你如何更改Linux控制台上的字體

#我嘗試盡可能的保持心靈祥和,然而總有一些事情讓我意難平,例如控制台字體太小了。記住我的話,朋友,有一天你的眼睛會退化,無法再看清你編碼時用的那些細小字體,到那時你就後悔莫及了。

幸好,Linux 死忠們,你可以更改控制台的字體。按照 Linux 一貫的尿性,不斷變化的 Linux 環境使得這個問題變得不太簡單明了,而 Linux 上也沒有字體管理這麼個東西,這使得我們很容易就被搞暈了。本文,我將會向你展示,我找到的更改字體的最簡方法。

Linux 控制台是個什麼鬼?

首先讓我們來澄清一下我們說的到底是什麼東西。當我提到 Linux 控制台,我指的是 TTY1-6,也就是你從圖形環境用 Ctrl-Alt-F1 到 F6 切換到的虛擬終端。按下 Ctrl+Alt+F7 會切回圖形環境。 (不過這些熱鍵已經不再通用,你的Linux 發行版可能有不同的鍵映射。你的TTY 的數量也可能不同,你圖形環境會話也可能不在F7。例如,Fedora 的預設圖形會話是F2,它只有一個額外的終端在F1。

Linux 控制台是核心的一部分,而且不會運行在 X 會話中。它和你在沒有圖形環境的無頭伺服器中使用的控制台是一樣的。我稱呼在圖形會話中的 X 終端為終端,而將控制台和 X 終端統稱為終端模擬器。

但這還沒完。 Linux 終端從早期的 ANSI 時代開始經歷了長久的發展,多虧了 Linux framebuffer,它現在支援 Unicode 並且對圖形也有了有限的一些支援。而且出現了很多在控制台下運行的多媒體應用,這些我們在以後的文章中會提到。

控制台截圖

#取得控制台截圖最簡單的方法是讓控制台跑在虛擬機器內部。然後你可以在宿主系統上使用中意的截圖軟體來抓取。不過借助 fbcat 和 fbgrab 你也可以直接在控制台上截圖。 fbcat 會創建一個可移植的像素映射格式(PPM)的圖像; 這是一個高度可移植的未壓縮圖像格式,可以在所有的作業系統上讀取,當然你也可以把它轉換成任何喜歡的其他格式。 fbgrab 則是 fbcat 的封裝腳本,用來產生一個 PNG 檔案。很多人寫過多個版本的 fbgrab。每個版本的選項都有限且只能建立截取全螢幕。

fbcat 的執行需要 root 權限,它的輸出需要重定向到檔案。你無需指定檔案副檔名,只需要輸入檔名就行了:

$ sudo fbcat > Pictures/myfile

在 GIMP 中裁剪後,就得到了下圖。
教你如何更改Linux控制台上的字體

如果能在左邊空白處有一點填充就好了,如果有讀者知道如何實現請在留言框中告訴我。

fbgrab 還有一些選項,你可以透過 man fbgrab 來查看,這些選項包括對另一個控制台進行截圖,以及延時截圖等。在下面的例子中可以看到,fbgrab 截圖跟 fbcat 截圖類似,只是你無需明確進行輸出重定性了:

$ sudo fbgrab Pictures/myOtherfile
尋找字體

#就我所知,除了查看字體儲存目錄/usr/share/consolefonts/(Debian 等),/lib/kbd/consolefonts/ (Fedora),/usr/share/kbd/consolefonts (openSUSE)外沒有其他方法可以列出已安裝的字型了。

更改字型

可读字体不是什么新概念。我们应该尊重以前的经验!可读性是很重要的。可配置性也很重要,然而现如今却不怎么看重了。

在 Debian/Ubuntu 等系统上,可以运行 sudo dpkg-reconfigure console-setup 来设置控制台字体,然后在控制台运行 setupcon 命令来让变更生效。setupcon 属于 console-setup 软件包中的一部分。若你的 Linux 发行版中不包含该工具,可以在 openSUSE 中下载到它。

你也可以直接编辑 /etc/default/console-setup 文件。下面这个例子中设置字体为 32 点大小的 Terminus Bold 字体,这是我的最爱,并且严格限制控制台宽度为 80 列。

ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
CODESET="guess"
FONTFACE="TerminusBold"
FONTSIZE="16x32"
SCREEN_WIDTH="80"

这里的 FONTFACE 和 FONTSIZE 的值来自于字体的文件名 TerminusBold32x16.psf.gz。是的,你需要反转 FONTSIZE 中值的顺序。计算机就是这么搞笑。然后再运行 setupcon 来让新配置生效。可以使用 showconsolefont 来查看当前所用字体的所有字符集。要查看完整的选项说明请参考 man console-setup。

Systemd

Systemd 与 console-setup 不太一样,除了字体之外,你无需安装任何东西。你只需要编辑 /etc/vconsole.conf 然后重启就行了。我在 Fedora 和 openSUSE 系统中安装了一些额外的大字号的 Terminus 字体包,因为默认安装的字体最大只有 16 点而我想要的是 32 点。然后将 /etc/vconsole.conf 的内容修改为:

KEYMAP="us"
FONT="ter-v32b"

以上是教你如何更改Linux控制台上的字體的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn