mate-desktop / mate-terminal

The MATE Terminal Emulator
http://www.mate-desktop.org
GNU General Public License v3.0
135 stars 73 forks source link

sixel image possible in terminal after vte-2.91 supporting it. #410

Open trappedinspacetime opened 2 years ago

trappedinspacetime commented 2 years ago

I am on Ubuntu 20.04.3 Mate Desktop. After vte-2.91 adding sixel support, gnome-terminal can be built with sixel. I tested it and it works well in my system:

What I did:

       git clone https://github.com/GNOME/vte.git
       cd vte
       meson build -Dsixel=true
       ninja -C build install
       sudo ldconfig
       sudo apt install appstream
       git clone https://gitlab.gnome.org/GNOME/gnome-terminal
       cd gnome-terminal
       meson build -Dsearch_provider=false
       ninja -C build install

After launching gnome-terminal you need to check Edit>preferences>Unnamed>Compatibility>Enable Sixel Images tick.

Is it possible with mate-terminal too?

nufeng1999 commented 1 year ago

I am on Ubuntu 20.04.3 Mate Desktop. After vte-2.91 adding sixel support, gnome-terminal can be built with sixel. I tested it and it works well in my system:

What I did:

       git clone https://github.com/GNOME/vte.git
       cd vte
       meson build -Dsixel=true
       ninja -C build install
       sudo ldconfig
       sudo apt install appstream
       git clone https://gitlab.gnome.org/GNOME/gnome-terminal
       cd gnome-terminal
       meson build -Dsearch_provider=false
       ninja -C build install

After launching gnome-terminal you need to check Edit>preferences>Unnamed>Compatibility>Enable Sixel Images tick.

Is it possible with mate-terminal too?

root@MyW541:~/vte# meson build -Dsixel=true Directory already configured.

Just run your build command (e.g. ninja) and Meson will regenerate as necessary. If ninja fails, run "ninja reconfigure" or "meson --reconfigure" to force Meson to regenerate.

If build failures persist, run "meson setup --wipe" to rebuild from scratch using the same options as passed when configuring the build. To change option values, run "meson configure" instead. root@MyW541:~/vte# ninja -C build install ninja: Entering directory build' [3/219] Generating src/marshal_h with a custom command INFO: Reading ../src/marshal.list... [11/219] Generating src/marshal_c with a custom command INFO: Reading ../src/marshal.list... [59/219] Linking target src/decoder-cat FAILED: src/decoder-cat c++ -o src/decoder-cat src/decoder-cat.p/glib-glue.cc.o src/decoder-cat.p/utf8.cc.o src/decoder-cat.p/debug.cc.o src/decoder-cat.p/decoder-cat.cc.o src/decoder-cat.p/icu-converter.cc.o src/decoder-cat.p/icu-decoder.cc.o src/decoder-cat.p/icu-glue.cc.o -Wl,--as-needed -Wl,--no-undefined -Wl,-O1 -Wl,-Bsymbolic -Wl,-Bsymbolic-functions -fstack-protector -fstack-protector-strong -Wl,--start-group /usr/lib/x86_64-linux-gnu/libglib-2.0.so /usr/lib/x86_64-linux-gnu/libicuuc.so /usr/lib/x86_64-linux-gnu/libicudata.so -Wl,--end-group /bin/ld: src/decoder-cat.p/icu-glue.cc.o: warning: relocation against_ZTVN12icu_65_swift9ErrorCodeE' in read-only section .text' /bin/ld: src/decoder-cat.p/decoder-cat.cc.o: in functionmake_decoder(Options const&)': decoder-cat.cc:(.text+0x29): undefined reference to vtable for icu_65_swift::ErrorCode' /bin/ld: decoder-cat.cc:(.text+0x43): undefined reference toucnv_open_65_swift' /bin/ld: decoder-cat.cc:(.text+0x79): undefined reference to ucnv_close_65_swift' /bin/ld: decoder-cat.cc:(.text+0xcb): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: decoder-cat.cc:(.text+0x10a): undefined reference to icu_65_swift::ErrorCode::reset()' /bin/ld: decoder-cat.cc:(.text+0x119): undefined reference toucnv_open_65_swift' /bin/ld: decoder-cat.cc:(.text+0x149): undefined reference to ucnv_close_65_swift' /bin/ld: decoder-cat.cc:(.text+0x1dc): undefined reference toicu_65_swift::ErrorCode::errorName() const' /bin/ld: decoder-cat.cc:(.text+0x254): undefined reference to icu_65_swift::ErrorCode::errorName() const' /bin/ld: decoder-cat.cc:(.text+0x294): undefined reference toicu_65_swift::ErrorCode::reset()' /bin/ld: decoder-cat.cc:(.text+0x2a0): undefined reference to ucnv_getName_65_swift' /bin/ld: decoder-cat.cc:(.text+0x340): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: src/decoder-cat.p/decoder-cat.cc.o: in function bool Processor::process_file<Sink>(int, Options const&, Sink&) [clone .isra.0]': decoder-cat.cc:(.text+0x6c0): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/decoder-cat.cc.o: in function std::unique_ptr<vte::base::ICUDecoder, std::default_delete<vte::base::ICUDecoder> >::~unique_ptr()': decoder-cat.cc:(.text._ZNSt10unique_ptrIN3vte4base10ICUDecoderESt14default_deleteIS2_EED2Ev[_ZNSt10unique_ptrIN3vte4base10ICUDecoderESt14default_deleteIS2_EED5Ev]+0x1c): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/decoder-cat.cc.o: in function make_decoder(Options const&) [clone .cold]': decoder-cat.cc:(.text.unlikely+0x27): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: decoder-cat.cc:(.text.unlikely+0x3d): undefined reference to ucnv_close_65_swift' /bin/ld: decoder-cat.cc:(.text.unlikely+0x51): undefined reference toucnv_close_65_swift' /bin/ld: src/decoder-cat.p/decoder-cat.cc.o: in function bool Processor::process_file<Printer>(int, Options const&, Printer&)': decoder-cat.cc:(.text._ZN9Processor12process_fileI7PrinterEEbiRK7OptionsRT_[_ZN9Processor12process_fileI7PrinterEEbiRK7OptionsRT_]+0x2f2): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-converter.cc.o: in function vte::base::ICUConverter::make(char const*, _GError**)': icu-converter.cc:(.text+0x28c): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: icu-converter.cc:(.text+0x642): undefined reference to vtable for icu_65_swift::ErrorCode' /bin/ld: icu-converter.cc:(.text+0x937): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: src/decoder-cat.p/icu-converter.cc.o: in function vte::base::ICUConverter::convert[abi:cxx11](std::basic_string_view<char, std::char_traits<char> > const&)': icu-converter.cc:(.text+0xae8): undefined reference toucnv_resetToUnicode_65_swift' /bin/ld: icu-converter.cc:(.text+0xafd): undefined reference to vtable for icu_65_swift::ErrorCode' /bin/ld: icu-converter.cc:(.text+0xb13): undefined reference toucnv_toUChars_65_swift' /bin/ld: icu-converter.cc:(.text+0xb45): undefined reference to icu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: icu-converter.cc:(.text+0xb8b): undefined reference toicu_65_swift::ErrorCode::reset()' /bin/ld: icu-converter.cc:(.text+0xba7): undefined reference to ucnv_toUChars_65_swift' /bin/ld: icu-converter.cc:(.text+0xbf5): undefined reference toucnv_resetFromUnicode_65_swift' /bin/ld: icu-converter.cc:(.text+0xbfd): undefined reference to icu_65_swift::ErrorCode::reset()' /bin/ld: icu-converter.cc:(.text+0xc15): undefined reference toucnv_fromUChars_65_swift' /bin/ld: icu-converter.cc:(.text+0xc5e): undefined reference to icu_65_swift::ErrorCode::reset()' /bin/ld: icu-converter.cc:(.text+0xc87): undefined reference toucnv_fromUChars_65_swift' /bin/ld: src/decoder-cat.p/icu-converter.cc.o: in function vte::base::ICUConverter::convert[abi:cxx11](std::basic_string_view<char, std::char_traits<char> > const&) [clone .cold]': icu-converter.cc:(.text.unlikely+0xa9): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in function vte::base::get_icu_charset_supported(char const*)': icu-glue.cc:(.text+0x6c3): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: icu-glue.cc:(.text+0x6dc): undefined reference to ucnv_countAliases_65_swift' /bin/ld: icu-glue.cc:(.text+0x6f7): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in function vte::base::make_icu_converter(char const*, _GError**)': icu-glue.cc:(.text+0x749): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: icu-glue.cc:(.text+0x75b): undefined reference to ucnv_open_65_swift' /bin/ld: icu-glue.cc:(.text+0x7a7): undefined reference toucnv_close_65_swift' /bin/ld: icu-glue.cc:(.text+0x7c4): undefined reference to icu_65_swift::ErrorCode::errorName() const' /bin/ld: icu-glue.cc:(.text+0x819): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: icu-glue.cc:(.text+0x851): undefined reference to icu_65_swift::ErrorCode::reset()' /bin/ld: icu-glue.cc:(.text+0x858): undefined reference toUCNV_FROM_U_CALLBACK_STOP_65_swift' /bin/ld: icu-glue.cc:(.text+0x86a): undefined reference to ucnv_setFromUCallBack_65_swift' /bin/ld: icu-glue.cc:(.text+0x8dc): undefined reference toicu_65_swift::ErrorCode::errorName() const' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in function vte::base::get_icu_charsets(bool)': icu-glue.cc:(.text+0x1f4e): undefined reference toucnv_countAvailable_65_swift' /bin/ld: icu-glue.cc:(.text+0x1fe3): undefined reference to ucnv_getAvailableName_65_swift' /bin/ld: icu-glue.cc:(.text+0x2014): undefined reference tovtable for icu_65_swift::ErrorCode' /bin/ld: icu-glue.cc:(.text+0x202b): undefined reference to ucnv_countAliases_65_swift' /bin/ld: icu-glue.cc:(.text+0x2071): undefined reference toicu_65_swift::ErrorCode::reset()' /bin/ld: icu-glue.cc:(.text+0x2080): undefined reference to ucnv_getAlias_65_swift' /bin/ld: icu-glue.cc:(.text+0x2137): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: icu-glue.cc:(.text+0x2524): undefined reference to icu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: icu-glue.cc:(.text+0x286b): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in function vte::base::get_icu_charset_supported(char const*) [clone .cold]': icu-glue.cc:(.text.unlikely+0x4): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in function vte::base::make_icu_converter(char const*, _GError**) [clone .cold]': icu-glue.cc:(.text.unlikely+0x1f): undefined reference toicu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: icu-glue.cc:(.text.unlikely+0x34): undefined reference to ucnv_close_65_swift' /bin/ld: src/decoder-cat.p/icu-glue.cc.o: in functionvte::base::get_icu_charsets(bool) [clone .cold]': icu-glue.cc:(.text.unlikely+0x62): undefined reference to icu_65_swift::ErrorCode::~ErrorCode()' /bin/ld: src/decoder-cat.p/icu-decoder.cc.o: in functionvte::base::ICUDecoder::decode(unsigned char const*, bool)': icu-decoder.cc:(.text+0x72): undefined reference to icu_65_swift::ErrorCode::reset()' /bin/ld: icu-decoder.cc:(.text+0xa2): undefined reference toucnv_toUnicode_65_swift' /bin/ld: icu-decoder.cc:(.text+0x12b): undefined reference to ucnv_fromUnicode_65_swift' /bin/ld: src/decoder-cat.p/icu-decoder.cc.o: in functionvte::base::ICUDecoder::reset()': icu-decoder.cc:(.text+0x1dd): undefined reference to ucnv_resetToUnicode_65_swift' /bin/ld: icu-decoder.cc:(.text+0x1e6): undefined reference toucnv_resetFromUnicode_65_swift' /bin/ld: icu-decoder.cc:(.text+0x1ef): undefined reference to `icu_65_swift::ErrorCode::reset()' /bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status [64/219] Compiling C++ object src/libvte-2.91.so.0.7100.0.p/vteseq.cc.o ../src/vteseq.cc: In member function ‘void vte::terminal::Terminal::XTERM_WM(const vte::parser::Sequence&)’: ../src/vteseq.cc:9191:51: warning: ‘gint gdk_screen_get_height(GdkScreen)’ is deprecated [-Wdeprecated-declarations] 9191 | int height = gdk_screen_get_height(gdkscreen); | ~~~~~^~~ In file included from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31, from /usr/include/gtk-3.0/gdk/gdk.h:32, from /usr/include/gtk-3.0/gtk/gtk.h:30, from ../src/vte/vte.h:21, from ../src/vteseq.cc:32: /usr/include/gtk-3.0/gdk/gdkscreen.h:60:14: note: declared here 60 | gint gdk_screen_get_height (GdkScreen screen); | ^~~~~ ../src/vteseq.cc:9192:49: warning: ‘gint gdk_screen_get_width(GdkScreen)’ is deprecated [-Wdeprecated-declarations] 9192 | int width = gdk_screen_get_width(gdkscreen); | ~~~~^~~ In file included from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31, from /usr/include/gtk-3.0/gdk/gdk.h:32, from /usr/include/gtk-3.0/gtk/gtk.h:30, from ../src/vte/vte.h:21, from ../src/vteseq.cc:32: /usr/include/gtk-3.0/gdk/gdkscreen.h:58:14: note: declared here 58 | gint gdk_screen_get_width (GdkScreen screen); | ^~~~~~~~ [66/219] Compiling C++ object src/libvte-2.91.so.0.7100.0.p/vtegtk.cc.o ../src/vtegtk.cc: In function ‘void vte_terminal_class_init(VteTerminalClass)’: ../src/vtegtk.cc:1223:71: warning: ‘void gdk_window_set_debug_updates(gboolean)’ is deprecated [-Wdeprecated-declarations] 1223 | _VTE_DEBUG_IF (VTE_DEBUG_UPDATES) gdk_window_set_debug_updates(TRUE); | ~~~~~~^~~~ In file included from /usr/include/gtk-3.0/gdk/gdkseat.h:28, from /usr/include/gtk-3.0/gdk/gdkdisplay.h:33, from /usr/include/gtk-3.0/gdk/gdkscreen.h:32, from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31, from /usr/include/gtk-3.0/gdk/gdk.h:32, from /usr/include/gtk-3.0/gtk/gtk.h:30, from ../src/vtegtk.cc:46: /usr/include/gtk-3.0/gdk/gdkwindow.h:1074:12: note: declared here 1074 | void gdk_window_set_debug_updates (gboolean setting); | ^~~~~~~~ [68/219] Compiling C++ object src/libvte-2.91.so.0.7100.0.p/vte.cc.o ninja: build stopped: subcommand failed.

ftoledo commented 3 months ago

i like sixel in mate-terminal too! =)