1
0
Fork 0

add lf-dbus service

This commit is contained in:
Luca Bilke 2024-05-15 18:51:59 +02:00
parent 7249b7f01a
commit 0f114c3bba
3 changed files with 54 additions and 0 deletions
.local
libexec/daemons
share/service/lf-dbus

46
.local/libexec/daemons/lf-dbus Executable file
View File

@ -0,0 +1,46 @@
#!/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()

View File

@ -0,0 +1,2 @@
#!/bin/sh
exec vlogger -t lf-dbus

View File

@ -0,0 +1,6 @@
#!/bin/sh
exec 2>&1
. "$XDG_STATE_HOME/dbus"
exec $HOME/.local/libexec/daemons/lf-dbus