feat(gnome): Add "Add to Steam" option to right click menu of executable files

This commit is contained in:
Kyle Gospodnetich 2023-10-25 19:19:51 -07:00
parent c008482ebd
commit b11d3c4d52
2 changed files with 43 additions and 0 deletions

View File

@ -13,6 +13,7 @@ Requires: steamdeck-backgrounds
Requires: dbus-x11
Requires: zenity
Requires: inxi
Requires: nautilus-python
Conflicts: steamdeck-kde-presets
Conflicts: steamdeck-kde-presets-desktop
@ -37,6 +38,7 @@ cp -rv usr/bin/* %{buildroot}%{_bindir}
%files
%{_bindir}/steamos-add-to-steam
%{_bindir}/steamos-nested-desktop
%{_datadir}/nautilus-python/extensions/steamos-add-to-steam.py
%{_datadir}/applications/steam/steamos-nested-desktop/*
# Finally, changes from the latest release of your application are generated from

View File

@ -0,0 +1,41 @@
import os
from urllib.parse import unquote
from gi.repository import Nautilus, GObject
from typing import List
class AddToSteamExtension(GObject.GObject, Nautilus.MenuProvider):
def _add_to_steam(self, file: Nautilus.FileInfo) -> None:
filename = unquote(file.get_uri()[7:])
os.system("/usr/bin/steamos-add-to-steam " + filename)
def menu_activate_cb(
self,
menu: Nautilus.MenuItem,
file: Nautilus.FileInfo,
) -> None:
self._add_to_steam(file)
def get_file_items(
self,
files: List[Nautilus.FileInfo],
) -> List[Nautilus.MenuItem]:
if len(files) != 1:
return []
file = files[0]
if file.get_uri_scheme() != "file":
return []
if not os.access(unquote(file.get_uri()[7:]), os.X_OK):
return []
item = Nautilus.MenuItem(
name="SteamOS::steamos_add_to_steam",
label="Add to Steam",
)
item.connect("activate", self.menu_activate_cb, file)
return [
item,
]