Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
trappedinspacetime opened this issue Feb 12, 2022 · 2 comments
Open

Comments

@trappedinspacetime
Copy link

trappedinspacetime commented Feb 12, 2022

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
Copy link

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 function make_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 to ucnv_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 to icu_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 to ucnv_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 to icu_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 to icu_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 to vtable 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 to icu_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 to icu_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 to icu_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 to ucnv_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 to icu_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 to vtable 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 to vtable 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 to ucnv_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 to ucnv_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 to icu_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 to ucnv_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 to ucnv_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 to ucnv_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 to icu_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 to vtable 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 to icu_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 to vtable 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 to ucnv_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 to icu_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 to UCNV_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 to icu_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 to ucnv_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 to vtable 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 to icu_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 to icu_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 to icu_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 to icu_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 to icu_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 function vte::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 function vte::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 to ucnv_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 function vte::base::ICUDecoder::reset()':
icu-decoder.cc:(.text+0x1dd): undefined reference to ucnv_resetToUnicode_65_swift' /bin/ld: icu-decoder.cc:(.text+0x1e6): undefined reference to ucnv_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
Copy link

ftoledo commented Apr 1, 2024

i like sixel in mate-terminal too! =)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants