2021-05-12 14:32:11
如何更改 Linux 控制台上的字型
我嘗試盡可能的保持心靈祥和,然而總有一些事情讓我意難平,比如控制台字型太小了。記住我的話,朋友,有一天你的眼睛會退化,無法再看清你編碼時用的那些細小字型,到那時你就後悔莫及了。
幸好,Linux 死忠們,你可以更改控制台的字型。按照 Linux 一貫的尿性,不斷變化的 Linux 環境使得這個問題變得不太簡單明瞭,而 Linux 上也沒有字型管理這麼個東西,這使得我們很容易就被搞暈了。本文,我將會向你展示,我找到的更改字型的最簡方法。
Linux 控制台是個什麼鬼?
首先讓我們來澄清一下我們說的到底是個什麼東西。當我提到 Linux 控制台,我指的是 TTY1-6,即你從圖形環境用 Ctrl-Alt-F1
到 F6
切換到的虛擬終端。按下 Ctrl+Alt+F7
會切回圖形環境。(不過這些熱鍵已經不再通用,你的 Linux 發行版可能有不同的鍵對映。你的 TTY 的數量也可能不同,你圖形環境對談也可能不在 F7
。比如,Fedora 的預設圖形對談是 F2
,它只有一個額外的終端在 F1
。) 我覺得能同時擁有 X 對談和終端對談實在是太酷了。
Linux 控制台是核心的一部分,而且並不執行在 X 對談中。它和你在沒有圖形環境的無頭headless伺服器中用的控制台是一樣的。我稱呼在圖形對談中的 X 終端為終端,而將控制台和 X 終端統稱為終端模擬器。
但這還沒完。Linux 終端從早期的 ANSI 時代開始已經經歷了長久的發展,多虧了 Linux framebuffer,它現在支援 Unicode 並且對圖形也有了有限的一些支援。而且出現了很多在控制台下執行的多媒體應用,這些我們在以後的文章中會提到。
控制台截圖
獲取控制台截圖的最簡單方法是讓控制台跑在虛擬機器內部。然後你可以在宿主系統上使用中意的截圖軟體來抓取。不過借助 fbcat 和 fbgrab 你也可以直接在控制台上截圖。fbcat
會建立一個可移植的畫素對映格式(PPM)的影象; 這是一個高度可移植的未壓縮影象格式,可以在所有的作業系統上讀取,當然你也可以把它轉換成任何喜歡的其他格式。fbgrab
則是 fbcat
的一個封裝指令碼,用來生成一個 PNG 檔案。很多人寫過多個版本的 fbgrab
。每個版本的選項都有限而且只能建立擷取全螢幕。
fbcat
的執行需要 root 許可權,而且它的輸出需要重定向到檔案中。你無需指定副檔名,只需要輸入檔名就行了:
$ sudo fbcat >Pictures/myfile
在 GIMP 中裁剪後,就得到了圖 1。
圖 1 : 裁剪後檢視
如果能在左邊空白處有一點填充就好了,如果有讀者知道如何實現請在留言框中告訴我。
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"
下面我們還將學習一些更加酷的控制台小技巧,以及一些在控制台上執行的多媒體應用。
本文永久更新連結地址:https://www.linuxidc.com/Linux/2018-02/150953.htm
相關文章