Anda bisa mendapatkan warna dengan beberapa kode konsol .. saya menulis contoh di sini https://github.com/oblique/configs/blob/master/.zsh.d/get_term_rgb_color.py
layar, tmux, dan konsol virtual tidak mendukung operasi ini.
juga beberapa program dapat mengubah warna di sana, misalnya cmatrixreloaded
ini adalah contoh bagaimana mereka melakukannya https://github.com/oblique/configs/blob/master/.zshrc#L160
benar-benar melihat fungsi ncmpcpp () dan wicd-curses () saya
Saya mencoba skrip Anda tetapi saya mendapatkan kesalahan berikut:
~ % get_term_rgb_color.py 1
Traceback (most recent call last):
File "/home/kill/bin/get_term_rgb_color.py", line 30, in <module>
os.write(fd, bytes("\033]4;%d;?\033\\" % int(x), "UTF-8"))
TypeError: str() takes at most 1 argument (2 given)
skrip bekerja di python3.
untuk python2 ubah barisnya menjadi:
os.write (fd, "\ 033] 4;% d;? \ 033 \"% int (x))
Saya berpikir tentang sth seperti ini untuk beberapa waktu. Terima kasih telah melakukan ini.
Sayangnya ini hanya berfungsi di bawah (u) rxvt dan xterm. Pada gnome-terminal, layar, tmux tidak. Jadi tidak banyak gunanya. Jika mungkin ada cara lain (atau tambahan) untuk mendapatkan info ini, saya akan dengan senang hati menggunakannya.
Atau mungkin ada beberapa cara untuk mendapatkan hanya info "apakah kita di bawah terminal fg terang / bg gelap atau di bawah fg gelap / bg terang".
Saya belum memeriksanya ... tapi mungkin sesuatu dari sini ? (awalnya dari jawaban stackoverflow ini)
Ia bekerja di gnome-terminal tetapi tidak di konsole.
Saya akan mencoba mencari cara lain.
Saya menemukan bahwa dengan tmux Anda dapat meneruskan kode konsol ke terminal dan saya memodifikasi skrip saya https://github.com/oblique/configs/blob/master/.zsh.d/get_term_rgb_color.py
Saya tidak berhasil melakukannya dengan layar.
Jika Anda memiliki pertanyaan, silakan tanyakan.
Maaf, saya lupa mendorong perubahan saya pada fungsi ncmpcpp () dan wicd-curses (), sekarang sudah diperbarui.
Saya baru saja memeriksanya di bawah urxvt, xterm, gnome-terminal dan tmux. Hanya di bawah gnome-terminal itu tidak berfungsi.
Apakah menurut Anda ini juga dapat berfungsi pada beberapa terminal OSX seperti Terminal.app atau ITerm2?
Saat ini saya sedikit merefaktor ulang perekam (di sini: https://github.com/sickill/ascii.io-cli/tree/split). Setelah saya selesai dengan pemfaktoran ulang, saya akan mencoba menggunakan kode yang Anda berikan di sini.
Terima kasih!
Saya tidak tahu tentang Terminal.app atau ITerm2, jika mereka mendukung perubahan warna itu akan berhasil ..
Hanya untuk referensi, saya juga menemukan ini: https://github.com/dranjan/termcolors
Tidak yakin apakah itu memberi kita lebih dari kode @oblique sekalipun.
Sepertinya https://github.com/dranjan/termcolors bergantung pada select.poll
, yang sepertinya tidak berfungsi di OSX.
Gores itu, saya salah. @ sigmavirus24 menemukan bahwa ada masalah dengan alat yang melewatkan -1 * 2 sebagai nilai batas waktu, bukan hanya -1. Diperlukan penyelidikan lebih lanjut ... tetapi ini mungkin akan berhasil.
Perhatikan juga bahwa ketika saya mencoba ini di OSX + iTerm2 itu tidak benar-benar mengambil istilah warna dengan benar. Jadi bahkan dengan perbaikan itu, itu masih belum optimal karena C API yang mendasari yang digunakan termcolors ( select
/ select.poll
) tidak sefleksibel rasa * nix lainnya yang akan menerima negatif apa pun. nilai.
Jadi saya mengerjakan ini dengan @ sigmavirus24 dan menghasilkan ini: https://gist.github.com/joshuarh/7904813. Hal-hal berikut ini masih perlu dilakukan / dicek:
'\x1b[30m'
, jadi saya tidak yakin bagaimana mengubahnya menjadi sesuatu yang kita dapat digunakan di web.Tampaknya tidak mudah mendapatkan skema warna terminal. Sebaliknya, dapatkah kita mengizinkan pengguna untuk menentukan skema warnanya dalam file JSON? Jika penerapannya dilakukan secara umum, akan sangat mudah untuk beralih ke teknik baru apa pun untuk menangkap warna terminal yang akan kita temukan nanti.
Sepertinya tidak mudah, tapi saya tidak yakin itu tidak bisa dilakukan. Saya rasa kita bisa merekam kode escape, kita hanya perlu mengubahnya kembali ke warna xterm.
OTOH, jika kami mengizinkan pengguna untuk menentukan warna mana yang mereka inginkan, itu akan menampilkan fitur dan bug yang menarik. Kami dapat membiarkan orang memilih skema mana yang ingin mereka lihat saat menjelajah, tetapi bergantung pada warna latar depan yang direkam, ini bisa menjadi masalah (misalnya, inilah tema default dengan warna latar depan terpisahkan dalam mode fallback: https: // asciinema .org / a / 2214).
Yang saya maksud sebenarnya adalah bahwa pengunggah harus menentukan skema warna. Mengenai sisanya, saya tidak tahu dan saya tidak benar-benar bisa menilai.
@losingkeys kita SUDAH merekam kode warna escape. Masalahnya mereka hanyalah angka tunggal seperti 1, 2 atau 3. Artinya merah, hijau dan kuning. Dan seterusnya. Orang-orang menggunakan skema warna yang berbeda di terminal mereka, tetapi sebagian besar skema mendekati warna xterm "asli" sehingga terlihat "ok" di sebagian besar kasus.
@losingkeys Membiarkan pengguna menentukan skema warnanya (katakanlah dalam format .Xresources) adalah hal yang mudah dilakukan dan saya sedang mempertimbangkan untuk melakukan hal itu. Jadi, jika Anda menggunakan solarized atau tema terminal lain yang sepenuhnya mengubah arti setiap warna, ini akan menjadi solusi untuk warna yang salah.
@mrabault solusi ideal adalah menggunakan perekam untuk mendeteksi dan mengunggah skema terminal, ya. Tetapi kami belum menemukan (belum!) Solusi yang cukup baik yang akan berfungsi untuk sebagian besar emulator terminal di berbagai OS.
Apakah ada kemajuan yang dicapai dalam hal ini, misalnya cabang dalam perjalanan?
Akankah menanyakan xrdb
untuk warna menjadi pilihan? Ini bisa mengambil tema khusus (misalnya terpisahkan) secara otomatis.
@blueyed tidak ada kemajuan sejauh ini.
Mengkueri xrdb
hanya akan masuk akal untuk xterm / rxvt / other-terminal-using-x-resources. Orang-orang menggunakan istilah berbasis libvte (Terminal Gnome, Terminal XFCE, Terminator, ...) dan terminal non-Linux (iTerm, Terminal.app pada OS X) juga.
@blueyed btw, Anda dapat mengubah tema untuk asciicast Anda, baik untuk seluruh akun (di halaman pengaturan akun Anda) atau per asciicast (di halaman edit asciicast). Misalnya, ini adalah asciicast Anda dalam solarized-dark: https://asciinema.org/a/13855?theme=solarized-dark
Ini akan menjadi fitur yang mematikan!
Kami sedang mendiskusikan versi 2 dari format asciicast di # 196, dan saya pikir menambahkan objek opsional colors
ke meta-data, yang berisi teks latar depan / warna latar belakang dan palet untuk semua 8 (16) warna akan menyenangkan tambahan. Seperti yang dikatakan @mrabault , kita dapat menggunakan dan memperbarui teknik untuk mendapatkan warna, selama representasi palet di JSON tetap sama / kompatibel dengan pemutar web.
Adapun teknik sebenarnya, masalah ini sangat lama dan solusi terkait tampaknya hilang. Saya menginginkan sesuatu yang berfungsi di semua platform, dan saya ragu-ragu untuk menyelesaikan solusi yang tidak 100% berfungsi. Sekarang saya pikir lebih baik hanya mendukung apa yang kita bisa sekarang, memperlakukan palet colors
sebagai opsional, dan kembali ke tema default pemain ketika tidak ada di JSON (untuk alasan apa pun).
Adakah yang punya sesuatu yang mengerjakan Python 3.3+?
@timofonic mohon jangan pernah lagi menyebutkan secara harfiah setiap orang yang telah berhubungan dengan sebuah repositori. Saya bahkan bukan kontributor di sini dan saya tidak punya "berita" untuk Anda.
Selain itu, jika ada yang memiliki "berita" tentang ini - atau 2 masalah lainnya yang Anda sebutkan sendiri dan banyak lainnya - itu akan diposting di sini sebagai komentar atau permintaan tarik yang menutup masalah ini. Jika Anda tidak melihat sesuatu yang relevan dengan masalah tersebut, anggaplah bahwa "tidak ada berita" untuk Anda.
@timonic mati di neraka
Komentar yang paling membantu
@timofonic mohon jangan pernah lagi menyebutkan secara harfiah setiap orang yang telah berhubungan dengan sebuah repositori. Saya bahkan bukan kontributor di sini dan saya tidak punya "berita" untuk Anda.
Selain itu, jika ada yang memiliki "berita" tentang ini - atau 2 masalah lainnya yang Anda sebutkan sendiri dan banyak lainnya - itu akan diposting di sini sebagai komentar atau permintaan tarik yang menutup masalah ini. Jika Anda tidak melihat sesuatu yang relevan dengan masalah tersebut, anggaplah bahwa "tidak ada berita" untuk Anda.