1
0
Fork 0
dotfiles/.local/libexec/daemons/lf-dbus

47 lines
1.3 KiB
Python
Executable File

#!/bin/env python3
import subprocess
import urllib.parse
from gi.repository import GLib
from pydbus import SessionBus
terminal_cmd = ["st", "-e"]
class FMService(object):
"""
<node>
<interface name='org.freedesktop.FileManager1'>
<method name='ShowFolders'>
<arg type='as' name='URIs' direction='in'/>
<arg type='s' name='StartupId' direction='in'/>
</method>
<method name='ShowItems'>
<arg type='as' name='URIs' direction='in'/>
<arg type='s' name='StartupId' direction='in'/>
</method>
<method name='ShowItemProperties'>
<arg type='as' name='URIs' direction='in'/>
<arg type='s' name='StartupId' direction='in'/>
</method>
</interface>
</node>
"""
def ShowItems(self, uris, startup_id):
uri = urllib.parse.unquote(uris[0]).replace("file://", "")
subprocess.Popen([*terminal_cmd, "lf", uri])
def ShowFolders(self, uris, startup_id):
self.ShowItems(uris, startup_id)
def ShowItemProperties(self, uris, startup_id):
self.ShowItems(uris, startup_id)
session_bus = SessionBus()
session_bus.publish("org.freedesktop.FileManager1", FMService())
loop = GLib.MainLoop()
loop.run()