Tự động nhận các màu thiết bị đầu cuối khác nhau mỗi lần tôi mở thiết bị đầu cuối


14

Tôi thường thấy mình mở ba thiết bị đầu cuối và tôi thực sự thích giao diện của mỗi bảng màu.

Tôi có một vài bảng màu được lưu và tôi muốn mặc định tiến hành thông qua các hồ sơ đã lưu của mình mỗi khi tôi mở một thiết bị đầu cuối, để nếu tôi mở 3 thì mỗi màu sẽ khác nhau mà tôi không phải thay đổi hồ sơ theo cách thủ công trên 2.

Có suy nghĩ gì không?

Cảm ơn!


Chỉ cần chỉnh sửa câu trả lời của tôi với một kịch bản làm những gì bạn muốn. Nó nên được thêm vào tệp ./bashrc . Hy vọng nó phù hợp với nhu cầu của bạn!
IanC

Câu trả lời:


10

Phiên bản chức năng

Hướng dẫn:

Script xem xét bạn đang sử dụng gnome-terminal , là thiết bị đầu cuối Ubuntu mặc định.

Trước khi chạy tập lệnh, hãy mở gnome-terminal và tạo một số cấu hình (Chỉnh sửa> Tùy chọn> Cấu hình) với các cài đặt khác nhau theo ý muốn (màu nền, màu văn bản, ..). Bạn có thể đặt tên cho chúng là Profile1, Profile2, Profile3, v.v. Tạo đủ Hồ sơ để bao gồm số lượng Thiết bị đầu cuối sẽ được mở, nhưng nếu số lượng thiết bị đầu cuối được mở nhiều hơn, cấu hình mặc định sẽ được sử dụng.

Tập lệnh tạo một tệp ~ / .Bash_Color_Changer , tùy thuộc vào nó, vì nó sẽ báo cho tập lệnh nếu thiết bị đầu cuối được mở thường xuyên hoặc sau cuộc gọi trên .bashrc .

Thêm tập lệnh vào cuối tệp ~ / .bashrc của bạn .

Kịch bản:

Thêm vào .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

Đã thử nghiệm nhưng không rộng rãi. Thưởng thức!


Ý tưởng cho ngày mai là thêm một điều kiện exitdựa trên một số tệp như ~/bashcolor.txt. Nó có thể có một dòng để nói nếu bash đang được mở là "bản gốc" hay "bản sao". Vì vậy, nếu cat ~/bashcolor.txttrả về "ORIGINAL", exitlệnh sẽ được chạy và echo COPY > ~/bashcolor.txt. Khác, lối ra không chạy nhưng tập tin trở về bản gốc ( echo ORIGINAL > ~/bashcolor.txt). Nó sẽ giải quyết vấn đề thiết bị đầu cuối nhấp nháy.
IanC

Kịch bản thú vị để thực hiện, thậm chí có thể tự sử dụng nó :) Mọi đề xuất cải tiến đều được chào đón!
IanC

Điều này hoạt động trong +1 đáng tin cậy
boomt14

2
Tôi đã thực hiện 1 thay đổi trong phiên bản của mình ... Bằng cách này, nó tiếp tục đạp xe khi bạn mở nhiều thiết bị đầu cuối hơn là bạn có hồ sơ. Number_of_bashs=$(($(($(pstree -c | grep "bash" | wc -l)-1))%${#Color_counter[@]}))
kpie

Đẹp! Tôi không nghĩ đến việc sử dụng mô-đun để giữ chu kỳ lặp: p
IanC

9

Một lựa chọn có thể được sử dụng xfce4-terminal. Nó rất giống với thiết bị đầu cuối Ubuntu mặc định (vốn là gnome-terminal) và nhiều gói phụ thuộc của nó sử dụng thành phần gtk, làm cho nó trở thành một lựa chọn phù hợp.

Đầu tiên cài đặt nó với

sudo apt-get install xfce4-terminal

Sau đó mở nó, Chuyển đến Chỉnh sửa -> Tùy chọn , Chọn Tab Màu sắc và kiểm tra tùy chọn cho biết, Thay đổi màu nền cho mỗi Tab và thoát Bây giờ.

Tạo thiết bị đầu cuối mặc định xfce4-terminalhoặc thay đổi phím tắt Ctrl-Alt-Tđể mở nó.

Bây giờ, mỗi lần bạn mở, bạn sẽ được trình bày với bảng màu khác nhau. thiết bị đầu cuối màu khác nhau

Liên kết hữu ích:


5

Haha, rất thú vị Tôi có thể thử làm điều này là tốt. Tôi chủ yếu chỉ chạy nhiều thiết bị đầu cuối và một trình duyệt.

Vì vậy, tôi nhìn xung quanh và tìm thấy điều này - https://github.com/sos4nt/dynamic-colors . Một dự án nhỏ rất gọn gàng giúp bạn đạt được một phần của những gì bạn muốn.

Bây giờ, trong thư mục colorschemes/của dự án đó, bạn sẽ thấy rằng nó hiện có 4 bảng màu. Bạn có thể thêm bao nhiêu tùy ý.

Vì vậy, để có được tất cả các thiết bị đầu cuối để chọn một màu chương trình khác nhau, tôi sẽ thêm một chức năng để tôi .bash_profilehoặc .bashrchoặc bất cứ nơi nào, như vậy chức năng thực hiện hai điều:

  1. Chỉ ra có bao nhiêu thiết bị đầu cuối hiện đang chạy
  2. Ban hành dynamic-colors switch colorscheme-namelệnh dựa trên (1).

Hi vọng điêu nay co ich!

Tái bút: Tôi sẽ viết kịch bản cho bạn, nhưng tôi ghét việc cho ăn bằng thìa và tôi lười biếng. :)


tốt ... tạo một trình bao bọc / bí danh cho lệnh đầu cuối sẽ đạt được nó.
Vishnu Kumar

@VishnuKumar, vâng, đây là điều đầu tiên bạn nghĩ đến mặc dù nó có thể không phải là giải pháp tốt nhất. vui vì bạn thích nó.
thableshinavdas

+1 cho một câu trả lời ok, tôi thực sự không muốn chiến đấu với "tác phẩm" nhưng câu trả lời này yêu cầu tôi sử dụng các định nghĩa kiểu độc quyền đã sử dụng dự án màu động của tôi, ngoài ra (và đây là những gì thực sự có được tôi) 't hỗ trợ độ mờ đục: (Tôi cảm thấy câu trả lời nên liên quan đến sự kết hợp củagnome-terminal --load-config=FILE
kpie

@kpie, haha. Không công bằng, độ mờ đục không được đề cập trong câu hỏi. Ngoài ra, rất khó để thiết lập độ mờ từ dòng lệnh và phụ thuộc rất nhiều vào rất nhiều thứ. Ngoài ra, câu hỏi này có thể được trả lời theo nhiều cách khác nhau, nhưng tôi nghĩ câu trả lời của tôi khá thuận tiện (nếu chỉ dành cho tôi, haha) :)
thableshinavdas

Tôi hy vọng tôi có thể bù cho việc chọn đan bằng cách cung cấp các tập lệnh cần thiết ... github.com/Krewn/stommeTerminalOnOpen Và tôi nên chỉ định nó không hỗ trợ độ mờ thay đổi, bảng màu sẽ duy trì độ mờ của cấu hình mặc định của bạn.
kpie

1

Konsole thực sự hỗ trợ chức năng này nguyên bản. Konsole thực sự mạnh mẽ và tùy biến cao.

Nếu bạn không có Konsole thì đơn giản là sudo apt install konsole

  1. Chuyển đến Cài đặt
  2. Cài đặt Konsole
  3. Chọn tab Giao diện
  4. Chọn bảng màu của bạn
  5. Chọn "Chỉnh sửa" ở bên phải
  6. Có một hộp để đặt "Thay đổi màu nền cho mỗi tab"

Trên hết, nếu bạn làm việc trên ba máy chủ cùng một lúc, bạn có thể bao gồm một số bí danh tiện lợi được hiển thị ở đây


+1 cho một câu trả lời ok nhưng tôi không có konsole. Câu trả lời của @ <MemoryAddress> hỗ trợ nhiều giao diện đầu cuối hơn (bất kỳ giao diện nào hỗ trợ các chuỗi thoát OSC). Nhưng bạn dễ sử dụng hơn. Tôi sẽ đưa tiền thưởng cho bất cứ ai có nhiều phiếu bầu nhất trong một vài ngày. Cảm ơn câu trả lời của bạn!
kpie

Bạn sẽ ngạc nhiên khi có nhiều người thực sự bình luận ở đây nói với tôi rằng tôi cần cho bạn biết cách cài đặt nó -_-
Matt O.

Bạn đã đọc những bình luận về những người khác?
kpie

Tôi đã làm. Có thể tôi đang thiếu một cái gì đó nhưng bạn đang tìm kiếm độ mờ thay đổi và thứ gì đó không yêu cầu bí danh. Konsole đạt được cả hai điều đó, nhưng tôi không chắc về các chuỗi thoát.
Matt O.

1
haha tôi hiểu rồi Đừng đổ lỗi cho tôi, sau khi có đủ người hấp dẫn ở đây đề nghị chỉnh sửa tôi chỉ cần thực hiện tự động. Tôi không cố gắng xúc phạm trí thông minh của bạn.
Matt O.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.