歡迎光臨
每天分享高質量文章

如何更改 Linux 控制臺上的字體 | Linux 中國

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


本文導航
編譯自 | https://www.linux.com/learn/intro-to-linux/2018/1/how-change-your-linux-console-fonts 
 作者 | Carla Schroder
 譯者 | DarkSun

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

幸好,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 並且對圖形也有了有限的一些支持。而且出現了很多在控制臺下運行的多媒體應用[1],這些我們在以後的文章中會提到。

控制台截屏

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

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

  1. $ sudo fbcat > Pictures/myfile

在 GIMP 中裁剪後,就得到了圖 1。

圖 1 : 裁剪後查看

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

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

  1. $ 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[4] 中下載到它。

你也可以直接編輯 /etc/default/console-setup 檔案。下麵這個例子中設置字體為 32 點大小的 Terminus Bold 字體,這是我的最愛,並且嚴格限制控制台寬度為 80 列。

  1. ACTIVE_CONSOLES="/dev/tty[1-6]"

  2. CHARMAP="UTF-8"

  3. CODESET="guess"

  4. FONTFACE="TerminusBold"

  5. FONTSIZE="16x32"

  6. 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 的內容修改為:

  1. KEYMAP="us"

  2. FONT="ter-v32b"

下周我們還將學習一些更加酷的控制台小技巧,以及一些在控制臺上運行的多媒體應用[1]


via: https://www.linux.com/learn/intro-to-linux/2018/1/how-change-your-linux-console-fonts

作者:Carla Schroder[6] 譯者:lujun9972 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

LCTT 譯者

DarkSun(lujun9972) ? ? ? ?
共計翻譯:77 篇
貢獻時間:78 天


推薦文章

< 左右滑動查看相關文章 >

點擊圖片、輸入文章 ID 或識別二維碼直達

赞(0)

分享創造快樂