OS X终端命令以更改颜色主题


17

是否存在可用于更改Mac OS X终端的配色方案的命令?我喜欢能够根据运行的脚本更改颜色的想法。到目前为止,我只是使用PS1更改bash提示的颜色,这是可以的,但没有我想要的那么明显。


我想要做的是更改终端背景颜色,就像Terminal -> Preferences -> Settings我要通过命令执行此操作一样,更改终端背景颜色的方法也一样。我想创建一个如下所示的脚本:changeBackgroundTheme; ssh; changeBackgroundTheme。这将有助于提醒我当前处于哪个窗口ssh
stytyfootersdude”,2010年

Answers:


18

完全取决于要完成,这是一个使用你的终端样式AppleScript的一些想法。它们比更加健壮tput,因为这会通过彩色提示重置。等等(至少对我来说)。

这会将所有运行Python的选项卡(目前没有可用于测试的SSH服务器)设置为Homebrew,其他选项卡设置为Ocean:

tell application "Terminal"
    repeat with w from 1 to count windows
        repeat with t from 1 to count tabs of window w
            if processes of tab t of window w contains "Python" then
                set current settings of tab t of window w to (first settings set whose name is "Homebrew")
            else
                set current settings of tab t of window w to (first settings set whose name is "Ocean")
            end if
        end repeat
    end repeat
end tell

另存为脚本并以osascript Name.scpt您希望为外壳重新着色的时间运行(当然,您可以将其包装为外壳脚本或其他内容)。

如果要以不同方式显示所有长时间运行的进程,请使用以下条件:

if busy of tab t of window w is true then


或者,您可以设置手动选择的单个标签的样式:

on run argv
    tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run

像这样运行它:

osascript StyleTerm.scpt 3 Homebrew

->最前面的终端窗口的第三个选项卡获得自制的样式!

如果要修改背景窗口,请用括号括起来的表达式代替“前窗口”,例如“ tab”之后。如果您始终要修改所选的“当前标签”,请使用selected tab代替tab (item 1 of argv as number)


.bash_profile如果第一个解决方案对您来说太麻烦,请添加以下内容:

PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

现在,它在每个提示之前就执行了(唯一的问题:不是在启动某些东西之后,即ssh。但是本主题无论如何都不是花哨的bash技巧。这只是一个指针。)


6

您的脚本可以使用该tput命令以可移植的方式设置颜色。尝试以下脚本,您将看到终端清除为深青色背景,并带有一些亮青色文本。

#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World

您可以在下面查看有关此的更多信息 man 5 terminfo在“颜色处理”部分中。

您可以通过回显终端直接识别的转义序列来执行相同的操作。它将更快,但是可能无法使用其他终端程序。它们中的许多可以识别xterm序列,这就是上面的脚本使用它们的样子。

#!/bin/bash
printf "\033[48;5;6m"  # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World

有一个关于xterm的控制序列的详细信息在这里


这似乎对颜色有一定影响,但是setaf似乎对我没有任何作用。我真正想要的是更改Mac OS终端主题的方法,如waiwai建议,但可以通过编程方式使用,而不使用GUI。
satur9nine 2010年

有没有办法改变正在使用的主题类似于Terminal -> Preferences -> Settings
sixtyfootersdude 2010年

@sixtyfootersdude:可能有一种方法可以执行此操作osascript,但是我对此并不熟悉。
暂停,直到另行通知。

1

您可以使用applescript为每个新终端提供一个随机主题。

编辑您的.bash_profile并添加此命令

osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

如果您使用相同的随机主题终端,则可以随时点击 ⌘I并手动进行设置。

如果您获得许多看起来不同的终端主题,这将更加有用。如果您四处看看,有很多网站。


喜欢它。我通过此命令创建了别名,因此可以手动将其随机更改为新设置。
WeakPointer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.