Có cách nào để thay đổi màu sắc được sử dụng trong bảng điều khiển TTY trên Linux không?


13

Bằng cách "thay đổi màu sắc", ý tôi là một cái gì đó như thay đổi màu đen từ #000000sang #111111và "TTY console", ý tôi là những gì bạn nhận được khi bạn làm Ctrl+ Alt+ F1từ X11, không phải là trình giả lập đầu cuối như xtermhay urxvt.

Tôi đang sử dụng Arch Linux, nhưng tôi nghĩ nó có liên quan nhiều hơn đến chương trình cung cấp TTY ( agettytôi nghĩ vậy).


Thiết bị đầu cuối không hoạt động theo màu hex - chúng sử dụng mã màu giống như màu được tìm thấy trong "/ etc / shell-colors".
new123456

1
@ new123456 - Tôi không có bất kỳ tệp nào được gọi là "shell-colors" ở bất cứ đâu dưới/
Austin Hyde

Huh. Bạn không nêu phân phối của mình ở đây - Tôi đang chạy Zenwalk, vì vậy phân phối của bạn có thể thay đổi. Tìm kiếm color in bashđể có được một danh sách tất cả các lối thoát.
new123456

2
@ new123456 - Tôi đã đề cập rằng tôi đang sử dụng Arch và tôi không tìm kiếm các chuỗi thoát bash cho màu sắc, như \e[0;30mđối với màu đen, tôi đang tìm cách tùy chỉnh màu thực tế cho từng màu được đặt tên.
Austin Hyde

1. Xin lỗi - Tôi nhìn vào các thẻ trước;) 2. Chỉ cần thông tin, không hoàn toàn phù hợp với câu hỏi nhưng phù hợp với tên miền.
new123456

Câu trả lời:


3

Lệnh setterm là những gì bạn đang tìm kiếm.

setterm -foreground black -background white

BIÊN TẬP

Không, không có cách nào để thay đổi tên của các màu như bạn yêu cầu. Họ không được tham chiếu theo cách đó bất cứ nơi nào trong các lời nguyền, terminfo hoặc thiết bị đầu cuối. Bạn có thể thay đổi định nghĩa của các chỉ mục màu (0-15 tôi nghĩ) bằng cách chỉnh sửa nguồn kernel và biên dịch lại.


Không, đó không phải là điều tôi đang tìm kiếm. Tôi muốn thay đổi định nghĩa về màu sắc, không phải màu nền trước và màu nền.
Austin Hyde

13

Điều này là hoàn toàn có thể và là điều tôi làm trong thiết lập Arch của mình.

Bạn có thể thả một cái gì đó như thế này trong một tập lệnh shell và để nó chạy khi đăng nhập:

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0151515" # Black
    echo -en "\e]P1ac4142" # Red
    ...
    echo -en "\e]PEac4142" # Bright Cyan
    echo -en "\e]PFac4142" # Bright White
    clear # Clear artifacts
fi

Các \e]P0để \e]PF(cơ sở 16) là những chuỗi thoát bạn cần phải thiết lập số 16 (8 rưỡi sáng, 8 sáng) màu sắc. Sau đó, bạn đặt màu thay thế mong muốn của bạn, ví dụ 151515.


dường như không hoạt động trong Ubuntu 16.04 với bash fwiw
G Gordon Worley III

2

Đây là lệnh tốt nhất mà tôi biết:

setterm -clear all -foreground green -bold -store

Bạn chỉ có thể có 8 màu khác nhau. Có thể một số chi tiết bằng cách sử dụng sáng trước 8 cơ bản.

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.