Running a second instance of Sublime should merge with existing

Tor 13 years ago updated by Jon Skinner 13 years ago 11
On Linux, opening a second file using

./sublime_text newfile

create a new instance of Sublime Text 2 instead of merging it with the one running. This is very annoying since the new instance duplicates all of the tabs of the old one.

The same thing thus happens if you try to open a file from Nautilus or another file explorer.


Added in build 2027
Added in build 2027
This still occurs in Build 2047. :-(
It requires a specific version of libgio to work - if you run from the command line, a message will be printed to stderr if single instance support is disabled

What version of libgio?
I have tried with libgio-cil 2.22.2 and libgio-fam 2.22.0 but it doesn't work.

It lacks of documentation.

Ubuntu 10.04 64 bits
I have tested with build 2051 and libgio-cil 2.22.2-2 but this problem still occurs! :-(
"unable to load libgio, single instance support disabled"

$ ldd sublime_text
    linux-vdso.so.1 =>  (0x00007fff81f01000)
    libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00007f771a22b000)
    libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00007f7719f7e000)
    libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007f7719d5c000)
    libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f7719a4b000)
    libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007f7719821000)
    libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007f7719613000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007f77193f7000)
    libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f7719174000)
    libpng12.so.0 => /lib/libpng12.so.0 (0x00007f7718f4c000)
    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007f7718d02000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f7718a7c000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f7718846000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f77185f7000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f77183f3000)
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f77181ed000)
    librt.so.1 => /lib/librt.so.1 (0x00007f7717fe5000)
    libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f7717d06000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007f7717ae8000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007f77178e4000)
    libutil.so.1 => /lib/libutil.so.1 (0x00007f77176e1000)
    libm.so.6 => /lib/libm.so.6 (0x00007f771745d000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f7717127000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f7716e13000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f7716bfb000)
    libc.so.6 => /lib/libc.so.6 (0x00007f7716878000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f7716666000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f771645b000)
    libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f7716258000)
    libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f7716048000)
    libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f7715e3e000)
    libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f7715c34000)
    libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007f7715a31000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f771582d000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f7715627000)
    libz.so.1 => /lib/libz.so.1 (0x00007f7715410000)
    libpcre.so.3 => /lib/libpcre.so.3 (0x00007f77151e1000)
    libresolv.so.2 => /lib/libresolv.so.2 (0x00007f7714fc8000)
    libselinux.so.1 => /lib/libselinux.so.1 (0x00007f7714da9000)
    libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f7714b50000)
    libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007f77148cc000)
    libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007f77146c2000)
    libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007f77144a9000)
    libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007f77142a4000)
    libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f771409b000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f7713e7f000)
    libexpat.so.1 => /lib/libexpat.so.1 (0x00007f7713c55000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f771a86d000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f7713a50000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f771384a000)

I think this is a bug.

The version of libgio on Ubuntu 10.04 is too old. libgio is part of gnome, and can only be upgraded by moving to a newer version of Ubuntu - 10.10 is required.
This is happening for me in build 2051, on Ubuntu 10.10 32 bit, libgio-cil 2.22 installed.

"unable to load libgio, single instance support disabled"

I'm using sublime 2 in Ubuntu 10.10 with latest libgio:

dpkg -l | grep libgio

ii  libgio-cil                            2.22.2-2                                                  CLI binding for the GIO I/O stack 2.22

ii  libgio-fam                            2.22.0-0ubuntu1                                           GLib Input, Output and Streaming Library (fam module)

but this problem still there, I have checked with ldd and see that sublime 2 still use libgio-2.0 not 2.22.2-2 from Gnome

ldd /usr/lib/sublime-text-2/sublime_text | grep libgio

        libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00110000)

After that, I also check libgio-2.0.so.0 existing in my system:

whereis libgio-2.0.so.0

libgio-2.0.so: /usr/lib/libgio-2.0.so.0

ls -lh /usr/lib/libgio-2.0.so.0

lrwxrwxrwx 1 root root 22 2011-03-19 20:46 /usr/lib/libgio-2.0.so.0 -> libgio-2.0.so.0.2600.1

I think this is a problem with old dev lib using to compile sublime, pls fix it!


Best regard!

Uoc Nguyen

libgio-cli is the mono binding for libgio, and libgio-fam is a fam module - both are separate things entirely from libgio itself, which is part of glib

Can you verify that the file /usr/lib/libgio-2.0.so exists, and that it exports the symbol "g_bus_own_name" (you can check via nm -D /usr/lib/libgio-2.0.so | grep g_bus_own_name)
I just checked and see there is now such file '/usr/lib/libgio-2.0.so' but I see:

$ ls -lh /usr/lib/libgio*

lrwxrwxrwx 1 root root   22 2011-03-19 20:46 /usr/lib/libgio-2.0.so.0 -> libgio-2.0.so.0.2600.1

-rw-r--r-- 1 root root 937K 2010-11-19 21:14 /usr/lib/libgio-2.0.so.0.2600.1

lrwxrwxrwx 1 root root   21 2011-02-28 21:38 /usr/lib/libgiomm-2.4.so.1 -> libgiomm-2.4.so.1.3.0

-rw-r--r-- 1 root root 830K 2010-09-28 06:53 /usr/lib/libgiomm-2.4.so.1.3.0

$ nm -D /usr/lib/libgio-2.0.so.0 | grep g_bus_own_name

0009fab0 T g_bus_own_name

000a03f0 T g_bus_own_name_on_connection

000a0600 T g_bus_own_name_on_connection_with_closures

0009fcb0 T g_bus_own_name_with_closures

Now I'm using Linux Mint 10, it has based on Ubuntu 10.10 and I also installed many libraries & applications like Ubuntu Maverick one :) (Linux Mint also use same repository source as Ubuntu)

Fixed by create a symlink with this command, everyone can use command below to make it work :-)

$ cd /usr/lib; ln -s libgio-2.0.so.0.2600.1 libgio-2.0.so

Worked like charm for me, I think Sublime has check for 'libgio-2.0.so' but it is not exists in some system and skip to load.


Best regard!

Uoc Nguyen

For some reason on Ubuntu Natty (AMD x86_64) I had to:

cd /usr/lib

sudo ln -s x86_64-linux-gnu/libgio-2.0.so.0 libgio-2.0.so

to get this to work (even with latest 2076).

With build 2056 this works well in Lucid! :-)