47 lines
1.3 KiB
Python
Executable File
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()
|