Thay đổi màu sắc trong bảng điều khiển / thiết bị đầu cuối ảo


7

Có cách nào để thay đổi tất cả các màu có sẵn trong bàn điều khiển / thiết bị đầu cuối ảo không?
Theo bảng điều khiển, ý tôi là những gì bạn nhận được sau khi nhấn CTRL + ALT + F1 và không phải bất cứ thứ gì như xterm hoặc urxvt. Vì vậy, tôi đoán điều đó có nghĩa là thay đổi

Tôi có thể thay đổi 8 màu bằng cách sử dụng các chuỗi thoát như vậy:

echo -en "\e]PY######"

Trong đó Y là id số của màu (0 đến 7) và ###### là giá trị màu hex.

Mục tiêu cuối cùng của tôi là chuyển giao bảng màu năng lượng mặt trời sang bàn điều khiển, bởi vì tôi muốn trông giống như vim bất kể tôi đang ở trong giao diện điều khiển hay X.

Bất kỳ đề nghị về điều này?

htop in xterm:
htop in xterm, màu mặt trời

htop trong console, sau khi áp dụng 8 màu:
htop trong console, sau khi áp dụng 8 màu tôi có thể


2
Bảng điều khiển bộ đệm khung TTY không có cách nào có nhiều hơn 8-16 màu mà không bị hack kernel, hãy xem trích dẫn này: "Mặc dù bộ đệm khung Linux hỗ trợ 256 (hoặc nhiều hơn) màu, nhưng trình điều khiển bảng điều khiển Linux thì không; Giới hạn ở 16 màu trên bảng điều khiển Linux, có đệm khung hay không. " Vì vậy, bạn có không quá 16 hoặc 8 màu. Có hướng dẫn cách thay đổi màu cho thiết bị đầu cuối framebuffer (còn gọi là ctrl + alt + 1) bằng cách sử dụng các lệnh giống như bạn mô tả trong ~ / .bashrc: phraktured.net/linux-console-colors.html
IBr

Vâng, tôi biết. Khi tôi nhận được 16 màu khác nhau, tôi phải có sẵn 16 màu, nhưng chỉ có thể cấu hình 8 màu. 16 sẽ là đủ cho tôi. Nhưng 8 ist thì không.
Daniel Jour

Cụ thể hơn: Mã được đưa ra trong liên kết của bạn chính xác là những gì tôi đã thử, nhưng các giá trị hex có id số trên 7 (8 đến F) dường như bị bỏ qua bởi bảng điều khiển. Bạn có thể kiểm tra nếu mã trong liên kết của bạn đang làm việc cho bạn?
Daniel Jour

@IBr Tôi đã sai, nó chắc chắn đang hoạt động. Vấn đề là tôi nghĩ màu id 8 sẽ là màu trắng, nhưng nó là F như trong liên kết của bạn. Bạn có muốn trả lời câu hỏi, vì vậy tôi có thể đóng nó không?
Daniel Jour

Ok tôi đã trả lời cho những người khác để tìm giải pháp dễ dàng hơn, bạn có thể đóng nó. Tôi nghĩ rằng bạn đã tự mình làm việc đó.
IBr

Câu trả lời:


6

Bảng điều khiển bộ đệm khung TTY không có cách nào có nhiều hơn 8-16 màu mà không bị hack kernel, hãy xem trích dẫn này: "Mặc dù bộ đệm khung Linux hỗ trợ 256 (hoặc nhiều hơn) màu, nhưng trình điều khiển bảng điều khiển Linux thì không; Giới hạn ở 16 màu trên bảng điều khiển Linux, có đệm khung hay không. "

Vì vậy, bạn có thể có không quá 16 hoặc 8 màu. Có hướng dẫn cách thay đổi màu cho thiết bị đầu cuối bộ đệm (hay còn gọi là ctrl + alt + 1) bằng cách sử dụng các lệnh giống như bạn đã mô tả trong ~ / .bashrc: colors trong hướng dẫn TTY


1
Liên kết bị hỏng
Antonios Hadjigeorgalis

Các "Solarized" phối màu chỉ 16 màu, nốt nhạc.
JdeBP



3

Hãy thử chức năng bash này trong giao diện điều khiển. Một cách phù hợp, nó không hoạt động trong một thiết bị đầu cuối X (tôi nghĩ vì các tab). Đặc biệt là kiểm tra ba tập tin được sử dụng cuối cùng, cụ thể là

/sys/module/vt/parameters/default_red
/sys/module/vt/parameters/default_grn
/sys/module/vt/parameters/default_blu

clr () {
    clear # GFX bug otherwise
    setterm -regtabs 4
    Color_names="bla red gre yel blu mag cya whi"
    Color_arr=($Color_names)

    tput setaf 4
    tput setab 7
    echo -n "            normal             "
    tput sgr0

    echo -n " "

    tput setaf 7
    tput setab 4   
    echo "            bright             "

    tput sgr0
    for cmd in sgr0 bold
    do
        tput $cmd
        for m in 0 1 2 3 4 5 6 7
        do
            tput setaf $m
            echo -n ${Color_arr[$m]}" "
        done
    done
    echo

    tput sgr0
    cat /sys/module/vt/parameters/default_red \
        /sys/module/vt/parameters/default_grn \
        /sys/module/vt/parameters/default_blu | sed s/,0/", "/g | \
                                                sed s/^0/" "/g | \
                                                tr "," "\t"
}

Chỉnh sửa để phản hồi bình luận

Ví dụ: thay đổi chữ số thứ hai trong tệp màu xanh lá cây ( sys/module/vt/parameters/default_grn) thành 170- điều này sẽ cho màu thứ hai (với chỉ số 1) nhiều màu xanh lục như màu đỏ và không có màu xanh lam (ít nhất là trong trường hợp của tôi, vì tôi có chữ số tương ứng trong default_red 170, và 0trong default_blu).

Bây giờ, gõ tput setaf 1; echo hi. Ở đây bạn đặt màu nền trước thành màu với chỉ số 1 (màu bạn đã thay đổi), sau đó bạn in nó. (Lưu ý oneliner có dấu hai chấm để phân tách các lệnh, nếu không, dấu nhắc của bạn có thể đặt lại tputở giữa.)

Nếu nó xuất hiện giống như mọi khi, hãy thử echo -n '\033]R'và sau đó tputdòng một lần nữa. Bây giờ, cả hai chữ "hi" nên có màu vàng.

Hãy cho tôi biết nếu bạn làm cho nó hoạt động (hoặc không).


Tôi có thể đang thiếu một cái gì đó, nhưng điều này hiển thị cho tôi các màu khác nhau. Bạn có thể giải thích nội dung của ba tập tin đó cho tôi?
Daniel Jour

@DanielOertwig: Thực hiện chỉnh sửa.
Emanuel Berg

Thật không may khi cố gắng thay đổi một trong 3 tệp dẫn đến lỗi ("fsync fail" - vim là root).
Daniel Jour

@DanielOertwig: Kiểm tra trang này để biết một số tài liệu tốt hơn về điều này (hy vọng).
Emanuel Berg
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.