Terminali her açışımda farklı terminal renklerini otomatik olarak al


15

Sık sık kendimi üç terminal açarken buluyorum ve her birinde farklı renk paletlerine sahip olmanın görünüşünü ve hissini gerçekten seviyorum.

Birkaç renk paleti kaydedildi ve bir terminali her açtığımda varsayılan olarak kaydedilmiş profillerimde ilerlemek istiyorum, böylece 3'ü açarsam 2'de profili manuel olarak değiştirmek zorunda kalmadan her biri farklı renkler.

Düşüncesi olan var mı?

Teşekkürler!


Cevabımı istediğini yapan bir senaryo ile düzenledim. Bu eklenmelidir ./bashrc dosyası. İhtiyacınıza uygun olmasını umuyoruz!
IanC

Yanıtlar:


10

Fonksiyonel Versiyon

Talimatlar:

Komut Dosyası , varsayılan Ubuntu terminali olan gnome-terminalini kullandığınızı düşünür .

Komut dosyasını çalıştırmadan önce, gnome terminalini açın ve istediğiniz farklı ayarlarla (arka plan rengi, metin rengi, ..) bazı profiller (Düzen> Tercihler> Profiller) oluşturun. Onlara Profile1, Profile2, Profile3 vb. Ad verebilirsiniz. Açılacak Terminal miktarını karşılamak için yeterli sayıda Profil oluşturun, ancak daha fazla sayıda terminal açılırsa, varsayılan profil kullanılır.

Komut dosyası, ~ / .Bash_Color_Changer adlı bir dosya oluşturur ; bu, komut dosyasının terminalin düzenli olarak açıldığını veya .bashrc çağrısından sonra açıklanacağını bildirir .

Komut dosyasını ~ / .bashrc dosyanızın sonuna ekleyin .

Senaryo:

Şuraya ekle .bashrc:

#Change color according to the number of Bash shells opened
#Creates the .Bash_Color_Changer file if it's not present
if ! [ -f ~/.Bash_Color_Changer ]; then
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

#Array holding the name of the profiles: Substitute it for the names you're using
Color_counter=(Profile1 Profile2 Profile3)
#Finds out the number of opened bashs counting the lines containing "bash"
#in the pstree function. (-c deactivates compact display to avoid it showing
#lines with "2*[bash]" instead of one for each bash)
Number_of_bashs=$(($(pstree -c | grep "bash" | wc -l)-1))

#Checks if the terminal being opened was opened by the user or by
#the script, and act according to it
if [ $(cat ~/.Bash_Color_Changer) = ORIGINAL ]; then 
    if ((Number_of_bashs < ${#Color_counter[*]})); then
        echo COPY > ~/.Bash_Color_Changer
        gnome-terminal --tab-with-profile-internal-id=${Color_counter[${Number_of_bashs}]} 
        exit
    fi
else 
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

Test edilmiş ancak kapsamlı değil. Zevk almak!


Yarın için fikir exitgibi bazı dosyalara dayalı bir koşul ekliyor ~/bashcolor.txt. Açılan bashın "orijinal" veya "kopya" olup olmadığını söyleyecek bir satır olabilir. Yani cat ~/bashcolor.txt"ORİJİNAL" döndürürse, exitkomut çalıştırılır ve echo COPY > ~/bashcolor.txt. Aksi takdirde, çıkış çalışmaz ancak dosya orijinaline ( echo ORIGINAL > ~/bashcolor.txt) döner . Yanıp sönen terminal sorununu çözecektir.
IanC

Eğlenceli komut dosyası yapmak, hatta kendim kullanabilirsiniz :) Herhangi bir iyileştirme önerileri bekliyoruz!
IanC

Bu güvenilir +1 çalışır
boomt14

2
Sürümümde 1 değişiklik yaptım ... Bu şekilde profillerinizden daha fazla terminal açtığınızda bisiklet sürmeye devam ediyor. Number_of_bashs=$(($(($(pstree -c | grep "bash" | wc -l)-1))%${#Color_counter[@]}))
kpie

Güzel! Yineleme döngüsünü korumak için modül kullanmak aklıma gelmedi: p
IanC

9

Bir seçenek kullanıyor olabilir xfce4-terminal. Varsayılan Ubuntu terminaline (yani gnome-terminal) çok benzer ve bağımlılık paketlerinin çoğu gtk bileşenini kullanır, bu da onu uygun bir alternatif yapar.

İlk önce

sudo apt-get install xfce4-terminal

Ardından açın, Düzenle -> Tercihler'e gidin , Renkler Sekmesini seçin ve her Sekme için arka plan rengini değiştirin ve Şimdi çıkın seçeneğini işaretleyin.

Varsayılan terminali yapın xfce4-terminalveya Ctrl-Alt-Taçmak için kısayolunu değiştirin .

Şimdi, her açışınızda size farklı renk paleti sunulacak. farklı renkli terminal

Kullanışlı bağlantılar:


5

Haha, çok ilginç. Bunu da deneyebilirim. Çoğunlukla sadece birden fazla terminal ve bir tarayıcı çalıştırıyorum.

Bu yüzden etrafa baktım ve buldum - https://github.com/sos4nt/dynamic-colors . İstediğiniz şeyin bir kısmını elde etmenize yardımcı olan çok düzgün küçük bir proje.

Şimdi, colorschemes/o projenin dizininde , şu anda 4 renk şeması olduğunu göreceksiniz. İstediğiniz / istediğiniz kadar ekleyebilirsiniz.

Bu yüzden her terminalin farklı bir renk şeması seçmesini sağlamak için, benim .bash_profileya .bashrcda herhangi bir yere bir işlev eklerim , böylece işlev iki şey yapar:

  1. Şu anda kaç terminalin çalıştığını anlar
  2. dynamic-colors switch colorscheme-name(1) 'e dayalı bir komut verin.

Bu yardımcı olur umarım!

PS Senin için bir senaryo yazardım, ama kaşıkla beslemekten nefret ediyorum ve tembelim. :)


iyi olan ... terminal komutuna bir sarıcı / takma ad oluşturmak bunu başarmak olacaktır.
Vishnu Kumar

@VishnuKumar, evet, akla ilk gelen şey bu olsa da, en iyi çözüm olmayabilir. beğendiğine sevindim.
theabhinavdas

Tamam bir cevap için +1, gerçekten "işler" ile savaşmak istemiyorum ama bu cevap dinamik renkler projemde kullanılan özel stil tanımlarını kullanmamı gerektiriyor, ayrıca (ve bu beni gerçekten yakaladı) donukluğu desteklemiyor: (Cevabıngnome-terminal --load-config=FILE
kpie'nin

@ kpie, haha. Soruda adil değil, opaklıktan bahsedilmedi. Ayrıca, opaklığı komut satırından ayarlamak zordur ve birçok şeye bağlıdır. Ayrıca, bu soru çeşitli şekillerde cevaplanabilir, ancak cevabımın oldukça uygun olduğunu düşündüm (sadece benim için haha) :)
theabhinavdas

Umarım gerekli komut dosyalarını sağlayarak örgü seçimini telafi edebilirim ... github.com/Krewn/stylingTerminalOnOpen Ve değişken opaklığı desteklemediğini belirtmeliyim, renk şemaları varsayılan profilinizin opaklığını koruyacaktır.
kpie

1

Konsole aslında bu işlevselliği doğal olarak desteklemektedir. Konsole gerçekten güçlü ve son derece özelleştirilebilir.

Konsole'niz yoksa basitçe sudo apt install konsole

  1. Ayarlara git
  2. Konsole Ayarları
  3. Görünüm sekmesini seçin
  4. Renk düzeninizi seçin
  5. Sağ taraftaki "Düzenle" yi seçin
  6. "Her sekme için arka plan rengini değiştirme" seçeneğini belirleyen bir kutu var

Bunun da ötesinde, aynı anda üç sunucu üzerinde çalışıyorsanız, burada gösterilen bazı şık takma adlar ekleyebilirsiniz


Tamam cevap için +1 ama konsole sahip değilim. @ <MemoryAddress> 'in cevabı daha fazla terminal arayüzünü (OSC kaçış dizilerini destekleyen herhangi biri) destekler. Ama seninkini kullanmak daha kolay. Ödülünü birkaç gün içinde en çok oyu alan kişiye vereceğim. Cevabınız için teşekkürler!
kpie

Burada kaç kişinin gerçekten yorum yapacağına şaşıracaksınız, size nasıl kurulacağını söylemem gerektiğini söylerim -_-
Matt O.

Diğer ans hakkındaki yorumları okudun mu?
kpie

Yaptım. Belki bir şey eksik ama değişken opaklık ve takma ad gerektirmeyen bir şey arıyorsanız. Konsole her ikisini de başarıyor, ama kaçış dizilerinden emin değilim.
Matt O.

1
haha anladım. Beni suçlama, burada yeterince ceviz insanı düzenlemeler önerdiğinde bunu otomatik olarak yapıyorum. Zekanıza hakaret etmeye çalışmıyorum.
Matt O.
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.