Compare commits
2 Commits
8f0cb6cd3f
...
e33af718dc
| Author | SHA1 | Date | |
|---|---|---|---|
| e33af718dc | |||
| 6579dac3a4 |
@ -1,21 +1,37 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
tmp = os.popen("lutris -ojl").read()
|
||||
games = json.loads(tmp)
|
||||
try:
|
||||
# Получаем список игр
|
||||
result = subprocess.run(["lutris", "-ojl"], capture_output=True, text=True)
|
||||
games = json.loads(result.stdout)
|
||||
|
||||
gameslist = ""
|
||||
concat = ""
|
||||
for item in games:
|
||||
gameslist = gameslist + concat + item["name"]
|
||||
concat = "\n"
|
||||
# Формируем список названий
|
||||
game_names = [game["name"] for game in games]
|
||||
games_list = "\n".join(game_names)
|
||||
|
||||
tmp = subprocess.getoutput("echo \"" + gameslist + "\" | wofi -n -d -p \"Select Game:\"")
|
||||
# Выбор игры через wofi
|
||||
wofi_process = subprocess.Popen(
|
||||
["wofi", "-n", "-d", "-p", "Select Game:"],
|
||||
stdin=subprocess.PIPE,
|
||||
stdout=subprocess.PIPE,
|
||||
text=True
|
||||
)
|
||||
selected_game, _ = wofi_process.communicate(input=games_list)
|
||||
selected_game = selected_game.strip()
|
||||
|
||||
for item in games:
|
||||
if item["name"] == tmp:
|
||||
subprocess.Popen(["lutris","lutris:rungameid/" + str(item["id"])])
|
||||
if not selected_game:
|
||||
sys.exit(0)
|
||||
|
||||
# Запускаем выбранную игру
|
||||
for game in games:
|
||||
if game["name"] == selected_game:
|
||||
subprocess.Popen(["lutris", f"lutris:rungameid/{game['id']}"])
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"Error: {e}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user