aboutsummarylogtreecommitdiffstats
path: root/nvim-wrapper
blob: df381352e4e16bb3f4397db0b25736b862c67602 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3

from sys import argv
from subprocess import Popen
from time import time
import dbus

session_bus = dbus.SessionBus()

# launch the terminal server with a custom app-id and window class (so the .desktop file gets associated)
if not session_bus.name_has_owner('org.neovim'):
    Popen("/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.neovim --class=neovim".split())
# wait until the name is registered, or 2 seconds pass (when launching from cold cache it might more time)
timeout = time() + 2
while not session_bus.name_has_owner('org.neovim') and time() <= timeout:
    pass
# launch nvim in a gnome-terminal instance
if session_bus.name_has_owner('org.neovim'):
    Popen("gnome-terminal --app-id org.neovim -x nvim".split() + argv[1:])