Powerline: Dukungan Gnome 3.22

Dibuat pada 1 Okt 2016  ·  44Komentar  ·  Sumber: powerline/powerline

Inilah yang saya lihat setelah peningkatan Gnome 3.22:

output

ctmux linux sforeign bug bug

Komentar yang paling membantu

Karena ini masih bermasalah, pengguna OS X / macOS pada versi baru iTerm2 mungkin mengalami masalah ini jika profil Anda diatur untuk menggunakan lebar karakter Unicode versi 9 - solusinya di sini adalah hanya menghapus centang pada kotak centang di bawah Preferensi -> Profil -> Teks -> Unicode.

Semua 44 komentar

Powerline menentukan apa yang akan ditampilkan, menulis ini dengan benar ke terminal adalah tanggung jawab tmux. Tangkapan layar Anda sepertinya ada

  1. tmux salah mengira bahwa terminal adalah satu sel lebih lebar dari yang sebenarnya.
  2. ada satu karakter yang menurut tmux adalah lebar satu sel dan emulator terminal menganggapnya selebar dua.

Powerline tidak dapat melakukan apapun dengan ini. Anda dapat mengatasi masalah ini dengan memilih set karakter lain (misalnya setel tema top_level ke ascii atau cari tahu dan timpa hanya satu karakter yang menyinggung), tetapi ini adalah bug tmux.

Sepertinya @frol juga ada di Gnome. Saya tidak punya masalah dengan tmux 2.3.1 yang diperbarui menurut manajer paket Arch pada 30 Sep. Sepertinya lebih seperti masalah dengan terminal Gnome dan mungkin powerline karena beberapa bug misterius. tmux tanpa powerline berfungsi dengan baik di Gnome 3.22.

Bekerja dengan baik dengan urxvt!

Dalam perubahan powerline.json:

image

untuk

            "time": {
                    "before": " "
            },

@mrmodolo Ya, ini membantu!

@ BurningTyger Saya menggunakan testing repo, jadi saya mendapatkan Tmux 2.3.1 dan Gnome 3.22 pada hari yang sama dan hanya berpikir bahwa itu adalah ketidakcocokan Tmux, tetapi tampaknya saya salah.

@mrmodolo simbol arloji adalah pelakunya tetapi simbol lain tidak tersedia di font powerline saya jadi saya membiarkan string sebelumnya kosong yang memecahkannya untuk saat ini juga. Terima kasih.

Dalam konfigurasi saya, "" adalah UTF8 char f017 .
Anda dapat mencetak simbol di VIM:
Ubah ke mode penyisipan;
CTRL + v lalu ketik uf017

Karakter Unicode manakah yang merupakan simbol arloji yang menyebabkan masalah (pada tangkapan layar berlatar kuning di komentar sebelumnya)?

(Catatan: U + F017 berada di area penggunaan pribadi, di sistem saya tampilannya mirip dengan simbol tilde (~), tapi mungkin ini yang muncul sebagai jam tangan di sistem Anda ?? Jika demikian, lalu apa @ mrmodolo sebenarnya merekomendasikan untuk mengubah ??)

$ printf "% d \ n" \ 'image
8986
$ echo "obase = 16; 8986" | bc
231A

Dalam tipe VIM:
CTRL + v lalu ketik uf231A

Sekarang saya punya ini!
image
Saya menggunakan Arch, tetapi Ubuntu menggunakan  di powerline secara default!

Jadi ... apakah saya melakukannya dengan benar bahwa:

  • dengan U + 231A tidak berfungsi dengan benar,
  • dengan U + F017 bukan pada posisi yang sama berfungsi dengan benar?

(Atau sebaliknya? Maaf saya cukup tersesat.)

Dalam kasus saya, U + F017 pada posisi yang sama berfungsi dengan baik!
File konfigurasi saya adalah:

"waktu": {
"sebelum": ""
},

Membaca laporan bug gnome-terminal terlebih dahulu Saya pikir itu adalah prompt powerline bash / zsh yang berperilaku buruk. Melihat screencast di sini, menurut saya itu adalah bilah status tmux powerline.

Bisakah seseorang mengarahkan saya ke dokumentasi tercepat-terpendek yang harus saya ikuti untuk mendapatkan tmux dikonfigurasi ke powerline (sehingga saya dapat mereproduksi bug ini)? Saya belum pernah menggunakan powerline, dan saya juga hampir tidak mengenal tmux, dan Google memberikan terlalu banyak hasil. Saya senang men-debug masalah ini, tetapi saya tidak punya waktu untuk memahami ekosistem powerline. Terima kasih sebelumnya!

Saya menggunakan arch ...
yaourt -S python-powerline

Di .tmux.conf ...
run-shell "powerline-daemon -q"
sumber "/usr/lib/python3.5/site-packages/powerline/bindings/tmux/powerline.conf"

Jika masalah dengan tmux yang berpikir bahwa U + 231A lebih lebar maka terminal GNOME menganggapnya demikian maka masalahnya harus dapat direproduksi secara sempurna tanpa powerline sama sekali: buat saja beberapa opsi status- berisi simbol ini (catatan: Saya tidak yakin apakah dan pengoptimalan rendering yang digunakan tmux, jadi status-right harus berisi sesuatu).

Terima kasih untuk informasi!

Saya menggunakan Ubuntu Yakkety (gtk + gnome 3.20 / glib 2.50.0 [yang dimiliki gnome 3.22] / glibc 2.24) dengan tmux-2.3 dan gnome-terminal / vte git dikompilasi secara manual. Saya tidak dapat mereproduksi bug ini (baik dengan powerline, maupun dengan status-hak sederhana).

Jika masalahnya adalah tmux berpikir bahwa U + 231A lebih luas maka terminal GNOME akan berpikir

Ini tidak akan menjelaskan masalah saat ini. Kemudian tmux akan mencetak satu karakter lebih sedikit (karena menurutnya satu lebih lebar) dan karenanya tidak akan memenuhi seluruh lebar. Saya pikir sebaliknya: tmux menganggapnya sebagai karakter biasa, sementara gnome-terminal menganggapnya sebagai karakter biasa. Oleh karena itu meluap.

Seperti yang dinyatakan di https://bugzilla.gnome.org/show_bug.cgi?id=762052#c30 , gnome-terminal (vte) menggunakan g_unichar_iswide () daripada wcwidth () (yang digunakan oleh xterm dan mungkin juga tmux) .

Bisakah Anda mencoba ini:

echo $'\u231A' | wc -L

Ini mencetak wcwidth () glibc, saya asumsikan outputnya adalah 1.

echo ABCDE; echo a$'\u231A'cde

Apakah huruf besar dan huruf kecil sejajar dengan benar? Saya rasa di xterm mereka melakukannya, sedangkan di gnome-terminal mereka tidak (jam tangan menempati 2 sel).

Bisakah Anda membagikan versi glib dan glibc Anda? Tebakan liar saya adalah Anda memiliki glib 2.50.1 yang changelog-nya mengatakan "Perbarui dukungan Unicode ke Unicode 9.0.0" dan mungkin Unicode 9.0.0 meningkatkan lebar titik kode ini.

Sepertinya tebakan liar saya itu benar:

ftp://ftp.unicode.org/Public/8.0.0/ucd/EastAsianWidth.txt

2313..231F;N     # So    [13] SEGMENT..BOTTOM RIGHT CORNER

ftp://ftp.unicode.org/Public/9.0.0/ucd/EastAsianWidth.txt

2313..2319;N     # So     [7] SEGMENT..TURNED NOT SIGN
231A..231B;W     # So     [2] WATCH..HOURGLASS
231C..231F;N     # So     [4] TOP LEFT CORNER..BOTTOM RIGHT CORNER

Titik kode jam tangan dan jam pasir (dan mungkin lebih banyak lagi) menjadi lebar dengan Unicode 9.0.0.

gnome-terminal menggunakan lebar baru jika dijalankan dengan glib 2.50.1 atau yang lebih baru, sedangkan xterm dan tmux mengandalkan glibc yang rilis terbarunya (2.24) masih menggunakan lebar lama.

Saya tidak dapat menemukan laporan bug gnome-terminal yang ditautkan di sini, jadi ini dia untuk referensi Anda:
https://bugzilla.gnome.org/show_bug.cgi?id=772812
https://bugzilla.gnome.org/show_bug.cgi?id=772890

Apakah huruf besar dan huruf kecil sejajar dengan benar? Saya rasa di xterm mereka melakukannya, sedangkan di gnome-terminal mereka tidak (jam tangan menempati 2 sel).

Ada kemungkinan kesalahan lain yang saya miliki dengan simbol ini: baik konsole dan tmux mengira itu adalah satu sel lebar, tetapi perpustakaan rendering font tidak (tidak bisa?) Diberitahu untuk menskalakannya ke sel tampilan itu (mesin terbang sebenarnya diambil dari font lain karena terminus tidak memiliki mesin terbang ini), menghasilkan sesuatu seperti

e is off compared to E

. Hal ini _tidak_ menyebabkan masalah yang dialami orang-orang di sini, tetapi hal ini dapat membuat pengujian Anda memberikan hasil yang salah.

Konsole adalah satu-satunya emulator yang saya ketahui yang melakukan kegilaan karena tidak selaras dengan sel.

Di semua emulator lain, simbol arloji mungkin meluap ke sel c , tetapi huruf-hurufnya akan persis di bawah satu sama lain: Cc, Dd, Ee, atau (seperti yang saya harapkan di gnome-terminal dengan glib-2.50 .1) Dc dan Ed akan sejajar.

Saya memiliki masalah yang sama di Rayap, dengan Arch x86 + tmux. Namun mengedit ikon arloji di themes / powerline.json tidak mengubah apa pun.

Muncul hari ini di Debian Stretch (pengujian). Saya menggunakan LXDE dan Tilda.
tmux versi 2-3-1
tilda versi 1.3.1-1 + b1

Saya benar-benar tidak tahu paket glib / glibc mana yang Anda minati, jadi saya telah membuat tangkapan layar:
zrzut ekranu z 2016-10-19 14-10-01

Pembaruan: Ini adalah _Liberation Mono untuk font Powerline_, tetapi output dari _Linux Libertine Mono_ sama (dan yang lainnya juga, saya kira).

Edit: Mengedit ikon arloji (U + 231A atau U + F017) juga tidak berhasil untuk saya. Ada saran?
Edit2: Di tangkapan layar saya, saya telah salah dan menggunakan wc -l alih-alih wc -L , tetapi dalam contoh ini hasilnya sama. 1.
Sunting3: Akhirnya, tmux + powerline berfungsi kembali, terima kasih! Tanda jam dihapus dari/ usr / local / lib / ..., seperti yang disebutkan di atas dan dari file lokal pengguna saya di
~/.local/lib/python2.7/site-packages/powerline/config_files/themes/powerline.json
Setelah restart itu berfungsi seperti pesona.

@dunemkk , apa yang Anda maksud dengan menghapus jam masuk / usr / local / lib?

@ s0rt Saya buruk. Memperbarui komentar saya.
Sekarang saya melihat bahwa lokasi ini tidak disebutkan sama sekali.

Pada awalnya, saya bahkan tidak tahu bahwa saya memiliki file powerline.json di direktori pengguna saya. Saya menemukan file itu dalam format
/usr/local/lib/python2.7/dist-packages/powerline/config_files/themes/powerline.json
(karena saya menggunakan powerline pengikat lokasi serupa untuk zsh / tmux / vim) dan tidak repot-repot memeriksa apakah itu ada di tempat lain di sistem saya. Mungkin inilah mengapa itu tidak berhasil. ; P

Komit ahaasler membantu saya: https://github.com/ahaasler/dotfiles/commit/aafef1f7a0b5a1d398c8ac33062b5d223b9a25a6

Terima kasih, saya sudah memperbaikinya.

Bekerja seperti pesona.
FYI: U + 23F2 dengan dua spasi di belakang, terlihat seperti yang lama (kecuali tidak rusak). Hanya dengan jam pengatur waktu, bukan jam tangan.

Karakter lain yang mungkin, tetapi tidak diuji adalah:
U + 23F0 (jam alarm)
U + 1F570 (jam rak perapian)
U + 1F570 sampai U + 1F567 (div.

Terima kasih atas pekerjaannya!

Karena ini masih bermasalah, pengguna OS X / macOS pada versi baru iTerm2 mungkin mengalami masalah ini jika profil Anda diatur untuk menggunakan lebar karakter Unicode versi 9 - solusinya di sini adalah hanya menghapus centang pada kotak centang di bawah Preferensi -> Profil -> Teks -> Unicode.

mengalami masalah ini tiba-tiba di ubuntu 16.10 - minggu lalu ini tidak terjadi. aneh. mungkin ada sesuatu yang berubah selama pembaruan apt-get atau peningkatan pip, jangan ingat.

jadi apa perbaikan resminya?

@binarykitchen sama di sini sejak kemarin juga!

Menemukan solusi

cp /usr/share/powerline/config_files/themes/powerline.json ~ / .config / powerline / themes /

kemudian edit ~ / .config / powerline / themes / powerline.json dan temukan blok yang mengatakan:

                "time": {
                        "before": "  "
                },

Saya mengganti nilai untuk "sebelum" dengan "◴"

@CVirus terima kasih tetapi dalam kasus saya, sudah ada arloji itu.

Tetapi saya tidak memiliki file json di folder .config saya ... mungkinkah itu penyebabnya?

Dan beberapa komentar di atas utas ini mengatakan untuk menghapus atau mengganti karakter arloji. Bingung.

@binarykitchen mengganti jam yang Anda miliki dengan yang saya tempelkan atau dengan karakter lain

@CVirus akan dilakukan - untuk memperjelas, apakah saya harus memulai ulang sesuatu setelah mengganti karakter? mesin saya, sesi zsh?

dan untuk memperjelas, ini hanya terjadi selama sesi tmux ke server jarak jauh saya. dan saya hanya mengoreksi json itu di sisi saya, klien, bukan di sisi server.

biarkan aku tahu ...

@binarykitchen Anda perlu memulai ulang proses apa pun yang ada di powerline. Kemungkinan besar ini berarti powerline-daemon, tetapi bukan shell atau tmux. Meskipun zsh istimewa di sini: jika Anda menginstal zpython maka powerline akan hidup di dalam proses shell. Ini tidak mungkin terjadi kecuali Anda menginstal zpython sendiri.

@ ZyX-Saya terima kasih - tidak tahu apakah saya telah menginstal zpython dan btw, saya telah menginstal powerline melalui apt-get, bukan pip.

dan pertanyaan terakhir saya: "ini hanya terjadi selama sesi tmux ke server jarak jauh saya" - bagaimana saya bisa mengetahui apakah masalah powerline ada di sisi klien atau server?

@binarykitchen Aplikasi apa pun yang menggunakan saluran listrik, ia menggunakan saluran listrik di sampingnya sedang dijalankan.

@ ZyX-I "Apapun aplikasi yang menggunakan powerline, ia menggunakan powerline pada sisi yang sedang dijalankan."

-> masalah saya adalah, ketika saya menjalankan sesi ssh melalui tmux saya mulai percaya bahwa itu adalah masalah dengan instalasi powerline di sisi server. tetapi semakin saya membaca tentang powerline, saya rasa itu adalah masalah sisi klien. ini benar-benar abstrak ...

telah me-restart mesin saya dan bug masih terjadi - ada petunjuk lain? semakin putus asa di sini ...

jika saya tidak dapat memiliki sesi ssh yang tepat segera untuk memeriksa server saya, saya harus mencopot kabel listrik :(

Saya hanya menggunakan stopwatch dan bukan jam untuk memperbaiki ini. Jadi di /usr/share/powerline/config_files/themes/powerline.json , saya mengubah baris ini

"time": {
    "before": "◴ "
},

untuk

"time": {
    "before": "⏱ "
},

Konfigurasi @binarykitchen diambil dari saluran listrik mesin menyala. Menampilkan simbol terjadi pada klien. Perbaikan yang disarankan saat ini mengubah konfigurasi.

Jika Anda tidak mengonfigurasi tema, cukup perbarui semua kabel listrik untuk mengembangkan versi, sekarang menggunakan tema tanpa simbol bermasalah secara default.

mencoba memperbaiki stopwatch tetapi nah, itu tidak membantu

pikir saya hanya akan menghapus powerline - maaf guys

@binarykitchen Mungkin hanya menggunakan spasi sebagai pengganti ikon jam.

@binarykitchen Hanya mengubah file saja tidak cukup. Anda juga harus membuat powerline menggunakan konfigurasi baru (mungkin reboot paling mudah). Mungkin powerline-daemon menggunakan pengaturan lama jadi membunuh yang mungkin bekerja juga, namun saya tidak yakin.

@ liuhuiping2013 apakah kamu membaca komentar di atas?

Apakah halaman ini membantu?
0 / 5 - 0 peringkat