Inilah masalahnya: Saya ingin dapat melihat apakah terminal saya mampu unicode yang layak atau tidak, untuk menggunakan beberapa karakter atau tidak, seperti halnya sekilas, yang kadang-kadang menggunakan warna dan yang lainnya menggarisbawahi.
Motivasi muncul karena dalam segala jenis terminal virtual saya mendapatkan font yang layak, tetapi saya mengerti bahwa konsol Linux dasar memiliki seperangkat karakter 256 atau 512 simbol simultan, sehingga Anda tidak dapat mengharapkan dukungan font penuh.
Pada awalnya saya berpikir bahwa saya bisa menggunakan $TERM
atau tty, tapi inilah masalahnya: Saya menggunakan byobu juga, jadi $TERM
selalu "screen.linux". Output dari tty juga tidak terlalu jitu: /dev/pts/<some number>
dalam istilah "nyata" dan virtual.
$BYOBU_TTY
juga tidak membantu, karena misalnya mungkin /dev/tty1
dan ketika sesi dibuka di Ctrl+ Alt+ F1karakter tidak muncul tetapi ketika melampirkan sesi yang sama dari beberapa istilah X, mereka tampil dengan baik dan masih $BYOBU_TTY
tidak berubah. Selain itu, saya ingin dapat mendeteksi ini tanpa menganggap byobu ada atau tidak.
Selain itu, lokal menunjukkan dalam semua kasus en_US.UTF-8
Namun entah bagaimana melirik (untuk memberi nama alat tertentu yang saya lihat mendeteksi ini), bahkan di dalam byobu, menggunakan output yang berbeda tergantung pada terminal yang saya lampirkan pada sesi byobu.
Saya mengalami masalah dengan google karena terminal dan tty tampaknya istilah pencarian yang terlalu umum. Paling-paling saya tiba di solusi merekomendasikan $TERM
atau tty.
Pertanyaan aktual OP adalah: apa nilai-nilai Unicode yang didukung oleh konsol Linux, dan dapatkah itu terdeteksi saat dijalankan
screen
. Pada prinsipnya, orang dapat melakukan ini dengan mengambil peta Unicode untuk konsol.The
kbd
source mengandunggetunimap
(dan halaman manualnya). Halaman manual mengatakan ituyang tidak sepenuhnya benar.
setfont
memiliki opsi yang kira - kira melakukan hal yang sama:Perbedaan:
setfont
menulis ke file, sementaragetunimap
menulis ke output standargetunimap
menunjukkan karakter yang akan dipetakan, sebagai komentar.Sebagai contoh:
melawan
Jika Anda menjalankan
screen
(atau misalnya berjalanxterm
dan tidak di konsol), Anda akan mendapatkan kesalahan izin yang bisa Anda selesaikansudo
.Jika saya mengetahui font mana yang dimuat, saya dapat memeriksanya (tanpa izin khusus) menggunakan
psfgettable
, misalnya,dan lihat data pemetaan yang
setfont
akan digunakan untuk memuat font (dengan pemetaan Unicode):Keduanya
getunimap
dansetfont
memberikan data yang tidak disortir, sementarapsfgettable
tampaknya disortir (serta menggabungkan garis untuk nilai Unicode yang memetakan ke mesin terbang yang sama). Jadi ada perbedaan, tetapi informasinya dapat diakses.Bacaan lebih lanjut (menggambarkan mengapa Anda tidak dapat menggunakan
showconsolefont
untuk memecahkan masalah ini):sumber
sudo
bukanlah halangan untuk use case saya.setfont
tidak menghasilkan apa-apa (tidak membuat file yang diberikan atau menghasilkan kesalahan) dalam terminal virtual, tetapi bekerja di terminal aktual seperti yang diharapkan. Ini ada di Ubuntu 16.04Saya menemukan pertanyaan ini ketika saya mencoba untuk mencapai hal yang sama, tetapi tidak ingin meninggalkan apa pun di layar dan mengatur variabel, jadi saya memasukkan yang berikut ini dalam skrip shell yang saya sumber:
sumber