支援自訂圖示、遊標顏色以及所有其他顏色的 Linux 終端機

支援自訂圖示、遊標顏色以及所有其他顏色的 Linux 終端機

除了vilvte之外,Linux上是否有任何終端模擬器(不會崩潰)允許我在每個主機的基礎上指定遊標、前景背景顏色並且圖標(即最小化正在運行的應用程式時顯示的圖標)?

我正在透過 SSH 連接到大量不同的主機,為了讓我更容易追蹤我登入的主機,每個主機都有一個獨特的配色方案(即背景、背景的獨特組合)前景和遊標顏色)我用於它的終端Windows。為了更輕鬆地在這些終端會話之間正確導航,我還依賴自訂終端模擬器設置,以便在最小化時(或在我的XFCE 桌面中執行ALT-TAB 時)使用的圖標反映了它的配色方案正在使用中。

(我有一個 perl 程序,可以產生一個終端圖形,其背景、前景和遊標顏色與我用於主機的配色方案相匹配,因此我可以輕鬆地為我應該使用的每個主機生成適當的圖標)

這種方法的問題不是它不起作用(它確實很有魅力!),而是很難選擇一個足夠好的終端模擬器來支援全部以下的:

  • 每個會話可自訂圖示圖形(從某種意義上說,我可以指定磁碟上的任何圖像)。
  • 每個會話可自訂背景、前景遊標顏色。
  • 最好每個會話都可自訂 ANSI 顏色(包括「明亮」顏色 8 到 15),因為如果背景顏色是紅色,我想調整 ANSI 紅色和亮紅色,使它們與背景顏色略有不同。 (是的,我也有一個可以自動進行調整的腳本)

現在我依賴 evilvte,因為它是唯一允許我自訂圖標以及所有顏色(遊標、前景、背景、粗體、暗淡和所有 ANSI 顏色)的終端軟體。 evilvte 的問題是我必須為每個會話編譯一個單獨的二進位(部分自動化並且可以工作,但坦白說是相當醜陋的方法)。此外,evilvte 不支援您減少終端視窗的寬度或高度(即減少列數或行數),儘管允許您增加寬度/高度。 evilvte 的另一個潛在問題是,我做了一個相當難看的 hack 來調整它的所有 ANSI 顏色,這可能適用於未來的 evilvte 版本,也可能不起作用。

我嘗試過 gnome-terminal,但它最初確實缺乏自訂遊標顏色的能力,一旦包含對我們決定取消在每個會話的基礎上自訂圖示的功能。

任何指向一個提供我需要的所有功能但又不會讓我在使用vilvte時遇到麻煩的終端的指針將不勝感激。

編輯: Matt Jenkins 提供了一個寫得很好的答案,他建議我使用 xterm 並為如何使用它提供了一些很好的提示。不幸的是,xterm 確實有一些限制,使其不適合我的需求(xterm 僅支援單色黑白圖示像素圖,並且它已硬編碼,以 ANSI 顏色編譯)。所以,我沒有接受他的回答(點擊複選標記),但我仍然「提高」了一點。

答案1

看來「konsole」是你的朋友。

經過對多個終端程序的廣泛調查後,我發現:

  • konsole支援設定自訂配色方案:

在此輸入影像描述

  • konsole支援自訂圖示:

在此輸入影像描述

  • konsole支援多個設定檔 - 無需編寫腳本。只需為每個伺服器建立一個新的設定檔即可。您甚至可以在設定檔中包含 ssh 命令以自動登入伺服器。

在此輸入影像描述

哦,它konsole也是選項卡式的,因此您可以減少混亂,並在更少的視窗中將伺服器分組在一起。 (也許您的所有 Web 伺服器都在一個視窗中,所有檔案伺服器都在另一個視窗中,等等)。

要在視窗管理器中設定圖示(這是「設定檔」圖示的單獨圖示),您需要為 konsole 命令指定 --icon 標誌:

$ konsole --icon /usr/share/icons/oxygen/16x16/apps/java.png

這使:

在此輸入影像描述

將其耦合--profile應該會產生您想要的結果。

Note that this window manager icon doesn't change when you change tabs, so it could be used as an icon to identify groups of tabs - say all your web servers - or you don't use the tabs and just stick to 1 window per伺服器.

答案2

大多數 Linux 終端軟體都會為您提供命令列標誌來設定行為 - 即使是最基本的xterm.

讓我們滿足您的一些要求:

  • 每個會話可自訂圖示圖形(從某種意義上說,我可以指定磁碟上的任何圖像)。

這些與終端程序無關。這些是啟動終端程式的“快捷方式”圖示(我認為這就是您想要的)。你應該看看文件格式。

  • 每個會話可自訂背景、前景和遊標顏色。

您應該調查您最喜歡的終端程式有哪些命令列標誌。例如,xterm 有-fg-bg

$ xterm -fg gold -bg darkblue
  • 最好每個會話都可自訂 ANSI 顏色(包括「明亮」顏色 8 到 15),因為如果背景顏色是紅色,我想調整 ANSI 紅色和亮紅色,使它們與背景顏色略有不同。 (是的,我也有一個可以自動進行調整的腳本)

ANSI 顏色是預先定義的標準。它們不應該被改變。大多數終端程式將允許您從一個大的顏色調色板中指定「預設」前景和背景,這些顏色不限於正常的 16 種 ANSI 顏色。有關這些顏色的完整列表,請查看 rgb.txt 檔案。它位於您的 Linux 發行版中的某個位置,包含「標準」X11 顏色。在 Ubuntu 上,它位於 /usr/share/X11/rgb.txt 中。

作為附加的標識,大多數終端程式將允許您設定視窗標題。例如,使用好的 ol' xterm 您可以使用:

$ xterm -bg darkblue -fg gold -title "My terminal"

甚至輸入一個指令來執行:

$ xterm -bg darkblue -fg gold -title "Web Server" -e "ssh [email protected]"

你最終得到的是這樣的:

在此輸入影像描述

將該指令連同指向網頁伺服器圖示的指標放入「Web Server.desktop」檔案的目標中,鮑伯就是你的叔叔!

編輯:

我剛剛讀了一些關於如何使用圖標的內容。

設定標題列中的圖示是設定「iconPixmap」X資源的情況。這可以透過-xrm指向「XBM」檔案的標誌來完成:

$ xterm -xrm '*iconPixmap: /path/to/icon.xbm'

相關內容