Tuesday, August 11, 2020

Gnome-terminal with sixel support

I like terminal applications - usually TUI applications are fast and clean, and well readable.  This interface is too simply, and then developers has to much more think about UI, and has not too much possibilities. On second hand sometimes the output of terminal applications are too limited. We run our terminal from GUI (usually), and then some graphic possibilities can be practical - graphs are better in pixel graphics than ascii art.

There is solution - from terminal's dark age there is a SIXEL protocol. Unfortunately only few terminals supports this protocol. But there is great hope - Gnome terminal in develop version supports this protocol now. I can call gnuplot from psql and I can have well looked graphs in psql too.

For more comfort work I define a psql macro (variable):

\set gnuplot '\\g (format=csv) |gnuplot -p -e "set datafile separator \',\'; set key autotitle columnhead; set terminal sixelgd enhanced font \'verdana,9\';" -e'

and a statement

SELECT i, sin(i) FROM generate_series(0, 6.3, 0.05) g(i) :gnuplot "plot '-'with lines ls 3"

generates this image:




8 Comments:

At August 27, 2020 at 7:47 PM , Blogger Ryan Erwin said...

Did you come across a good guide for building the most recent commit of gnome-terminal, or found a package or something?

On Ubuntu 20.04 I got started installing from source, but it looks like it also requires building vte, dconf, and pcre... Just running ./autogen.sh I get:


```
error: Package requirements (vte-2.91 >= 0.61.90
glib-2.0 >= 2.52.0
gio-2.0 >= 2.34.0
gio-unix-2.0 >= 2.34.0
gtk+-3.0 >= 3.22.27
gsettings-desktop-schemas >= 0.1.0
dconf >= 0.14.0
uuid
libpcre2-8 >= 10.00
x11) were not met:

and

No package 'gsettings-desktop-schemas' found
No package 'dconf' found

```

I see that Dconf depends on glib and gtk... So did you have to completely rebuild gtk for this also?

Would love to hear more about how you go sixel support in gnome-terminal working!

 
At September 10, 2020 at 10:26 PM , Blogger Pavel Stěhule said...

@Ryan Erwin - I have Fedora 32, and there is not necessary to build gtk. I had build vte and gnome-terminal only.

 
At September 11, 2020 at 8:47 AM , Blogger Ryan Erwin said...

Today I installed Fedora 32 to try this, but I still get the same:
> error: Package requirements (vte-2.91 >= 0.61.90

vte-2.91 installed just fine:
> [ryan@localhost gnome-terminal]$ PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig pkg-config --list-all | grep vte
> vte-2.91 vte - VTE widget for GTK+ 3.0

When I try to build gnome-terminal even specifying the PKG_CONFIG_PATH, I still get:

PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig ./autogen.sh
> checking for TERM... no
> configure: error: Package requirements (vte-2.91 >= 0.61.90

 
At September 13, 2020 at 7:46 AM , Blogger Pavel Stěhule said...

@Ryan Ervin - first you have to build VTE (from gitlab) - sixel should be enabled explicitly "meson --reconfigure _build -Dsixel=true --prefix=/usr; ninja -C _build; sudo ninja -C _build install". The option "--prefix is necessary"

important - it should print

pkg-config vte-2.91 --libs
-lvte-2.91 -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0

./autogen.sh -- fails,
./configure --disable-search-provider --without-nautilus-extension
make
sudo make install



Next step is build of gnome-terminal. ./autogen.sh fails, but with different error, and I can run

 
At September 13, 2020 at 7:48 AM , Blogger Pavel Stěhule said...

I had same problem, and I have a problem with path /usr/local/ that is default. The most simply solution is change a prefix.

 
At September 13, 2020 at 7:51 AM , Blogger Pavel Stěhule said...

Last step is enabling SIXEL in compatibility tab

 
At September 14, 2020 at 3:02 AM , Blogger Ryan Erwin said...

I kept on reading that makefile error as a problem locating `vte` but in my case it was actually that I was missing: `libuuid-devel`

For anyone else who has problems building, in addition to Pavel's instructions, if you get stuck on this... `error: Package requirements`, all of the lines are literally being tested at the same time and you don't know which line fails...

You need to make sure you've got each of these libraries:

```
pkg-config --exists --print-errors "vte-2.91 >= 0.61.90" "glib-2.0 >= 2.52.0" "gio-2.0 >= 2.34.0" "gio-unix-2.0 >= 2.34.0" "gtk+-3.0 => 3.22.27" "gsettings-desktop-schemas >= 0.1.0" "dconf >= 0.14.0" "uuid" "libpcre2-8 >= 1.000"
```

 
At September 18, 2020 at 10:02 PM , Blogger Pavel Stěhule said...

You need to install libuuid-devel

sudo dnf install libuuid-devel

 

Post a Comment

Subscribe to Post Comments [Atom]

<< Home