Renk temalarını değiştirmek için OS X Terminal komutu


17

Mac OS X Terminalinin renk düzenini değiştirmek için kullanılabilecek bir komut var mı? Çalıştığım komut dosyalarına bağlı olarak renkleri değiştirebilme fikrini seviyorum. Şimdiye kadar sadece bash istemimin rengini değiştiriyorum, ancak PS1 ile tamam ama istediğim kadar fark edilmiyor.


Ne yapmak Terminal -> Preferences -> Settingsistiyorum bir komutla bunu yapmak istiyorum dışında aynı şekilde değiştirilecek gibi terminal arka plan rengini değiştirmek . Bunun gibi görünecek bir komut dosyası oluşturmak istiyorum: changeBackgroundTheme; ssh; changeBackgroundTheme. Bu bana şu anda hangi pencerelerin bulunduğunu hatırlatmaya yardımcı olacaktır ssh.
sixtyfootersdude

Yanıtlar:


18

Tam olarak neyi başarmak istediğinize bağlı olarak , AppleScript'te Terminal stillerinizi kullanan birkaç fikir. Bunlar daha sağlamdır tput, çünkü bu renkli istemlerle sıfırlanır. vs (en azından benim için).

Bu, Python (şu anda test için kullanılabilir SSH sunucusu yok) çalıştıran tüm sekmeleri Homebrew'a, diğerleri Ocean'a ayarlar:

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

komut dosyası olarak kaydedin ve osascript Name.scptkabuklarınızı yeniden renklendirmek istediğinizde çalıştırın (elbette bunu kabuk komut dosyası veya başka bir şey olarak sarabilirsiniz).

Tüm uzun süren işlemleri farklı görüntülemek istiyorsanız, aşağıdaki koşulu kullanın:

if busy of tab t of window w is true then


Veya manuel olarak seçilen tek bir sekmenin stilini ayarlayabilirsiniz:

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

Bu şekilde çalıştırın:

osascript StyleTerm.scpt 3 Homebrew

-> En öndeki Terminal penceresinin üçüncü sekmesi Homebrew stilini alır!

Arka plan pencerelerini değiştirmek isterseniz, "ön pencere" yi "sekme" den hemen sonra olduğu gibi parantez içine alınmış bir ifadeyle değiştirin. Seçili "geçerli sekmeyi" her zaman değiştirmek istiyorsanız, selected tabyerine kullanın tab (item 1 of argv as number).


.bash_profileİlk çözüm sizin için çok manuel işçilik ise aşağıdakileri ekleyin :

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

Şimdi her istemden önce yürütülüyor (tek sorun: bir şeye başladıktan sonra değil, yani ssh. Ama bu konu yine de süslü bash hileleriyle ilgili değil. Bu sadece bir işaretçi.)


6

Komut dosyalarınız tput renkleri taşınabilir bir şekilde ayarlamak komutu . Aşağıdaki komut dosyasını deneyin ve terminalin parlak mavi bir metinle koyu camgöbeği bir arka plan için net olduğunu göreceksiniz.

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

Bununla ilgili daha fazla bilgiyi man 5 terminfo"Renk İşleme" bölümünde görebilirsiniz.

Aynı şeyleri, terminalinizin doğrudan tanıdığı kaçış dizilerini yansıtarak da yapabilirsiniz. Daha hızlı olacak, ancak başka bir terminal programı kullanarak çalışmayabilir. Birçoğu xterm dizilerini tanır ve işte yukarıdaki komut dosyası onları kullanmak gibi görünecektir.

#!/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

Burada xterm kontrol dizileri hakkında daha fazla bilgi var .


Bunun renk üzerinde bir etkisi var gibi görünüyor ama setaf benim için hiçbir şey yapmıyor gibi görünüyor. Gerçekten istediğim şey, Mac OS terminal temasını waiwai'nin önerdiği gibi programlamak ve GUI'yi kullanmamak gibi değiştirmek.
satur9nine

Benzer şekilde kullanılan temayı değiştirmenin bir yolu var mı Terminal -> Preferences -> Settings?
sixtyfootersdude

@sixtyfootersdude: Muhtemelen bunu yapmanın bir yolu var osascript, ama buna aşina değilim.
sonraki duyuruya kadar duraklatıldı.

1

Her yeni terminale rastgele bir tema vermek için el yazısını kullanabilirsiniz.

Kendinizi düzenleyin .bash_profileve bu komutu ekleyin

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

Aynı rastgele tema terminalini alırsanız, her zaman ⌘Imanuel olarak vurabilir ve ayarlayabilirsiniz.

Çok sayıda farklı görünümlü terminal teması alırsanız bu daha yararlıdır. Etrafınıza bakarsanız bunun için birçok site var.


Beğendim. El ile yeni bir ayara rastgele geçiş yapabilmek için bu komuttan bir takma ad yaptım.
WeakPointer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.