Commit Graph

697 Commits

Author SHA1 Message Date
Daniel Johnson
44acabb77e Make lutris-wrapper self-bootstrap in source-tree mode. Resolves #6730
8789d2bbb stopped publishing PYTHONPATH when launching lutris-wrapper,
on the assumption the wrapper's own sys.path bootstrap covered every
case it needed to. It didn't: anyone running `./bin/lutris` from a
git checkout without installing Lutris would now hit

    ModuleNotFoundError: No module named 'lutris'

at the wrapper's `from lutris.util.log import logger` line, before
the wrapper had a chance to do anything.

Two compounding causes:

1. The wrapper's bootstrap code lived inside `if __name__ == "__main__"`,
   meaning it ran AFTER the top-level `from lutris...` imports. The
   imports had to succeed first, and they were silently relying on the
   parent process having injected PYTHONPATH=":".join(sys.path) into
   the env before exec.
2. Even when it did run, the bootstrap's source-mode detection was
   checking `LAUNCH_PATH/../lutris` — i.e. `share/lutris/lutris/` —
   which has never existed. The check fell through to a second
   never-existent path. So the bootstrap was, in practice, dead code
   regardless of when it ran.

This commit fixes both:

* Move the source-tree detection above the lutris imports and look
  three directories up (`share/lutris/bin/` → repo root), where the
  `lutris/` package actually lives. Confirm via the package's
  `__init__.py` rather than just a directory match.
* Restore `env["PYTHONPATH"] = ":".join(sys.path)` in monitored_command
  as defense-in-depth. The wrapper now runs on the same Python as
  Lutris (sys.executable, via the existing 8789d2bbb change), so the
  inherited PYTHONPATH is ABI-compatible; and lutris-wrapper deletes
  PYTHONPATH from os.environ before spawning the game, so the leak
  doesn't reach Wine, umu-launcher, or any other runner subprocess.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-11 17:14:52 -04:00
Mathieu Comandon
5aa61a238e Add "Kill all Wine processes" menu option
Adds a nuclear option to kill all Wine processes system-wide,
useful when games or launchers leave orphan processes behind.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:00:28 -07:00
Daniel Johnson
a981bf8f23 Merge pull request #6622 from ItsAllAboutTheCode/fix-tic80-runner-install
Added download_url for TIC-80 emulator to fix install
2026-04-02 16:36:46 -04:00
ItsAllAboutTheCode
8f263fa060 Added download_url for TIC-80 emulator to fix install 2026-04-02 08:42:09 -05:00
ItsAllAboutTheCode
aa3bf6d113 Add "name" field to vita3K.json 2026-04-02 08:10:41 -05:00
Daniel Johnson
6ec3d47e93 Merge pull request #6616 from ItsAllAboutTheCode/fix-runner-get-executable
Add support for setting an explict runner name
2026-04-02 06:15:03 -04:00
ItsAllAboutTheCode
619100d6ba Adding "name" field to all json runners.
Updated the "runner_executable" field to remove the prefix directory which is equal to the runner name
2026-04-01 20:56:12 -05:00
ItsAllAboutTheCode
449ea73254 Converted Vita3K runner to a hybrid JSON/Python runner
The Vita3K runner field definition now resides in the vita3k.json file.
The Python file contains a custom play() method which maps runner old entry_point_option field of "main_file" to the new "title_id" entry point since the Vita3K doesn't use file paths to run.

This commit is to be an example of how to define a runner in JSON and then use Python to extend that runners functionality.
2026-03-31 01:13:29 -05:00
Daniel Johnson
f82d1d4aca Move game return code file from /tmp to ~/.cache/lutris/tmp/
The wrapper script and MonitoredCommand communicated the game's return
code via a hardcoded /tmp/lutris-{uuid} path. This was the only place
Lutris used /tmp directly in normal operation.

Pass the path via LUTRIS_RETURN_CODE_FILE env var instead of having
both sides construct it independently, and place it in settings.TMP_DIR
(~/.cache/lutris/tmp/) alongside other Lutris temp files. The wrapper
falls back to the old /tmp path if the env var is absent, for
compatibility with older Lutris versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 19:29:11 -04:00
Mathieu Comandon
67b10dea60 Bump version to 0.5.23
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 00:43:17 -07:00
Daniel Johnson
589b92e9ff Strip all the default paths that are for "game_path"- the default path we use without it is smarter- preferring the games own directory if available, and falling back to the game_path. 2026-03-11 20:05:39 -04:00
Mathieu Comandon
df3cff0b52 Add Playtron import 2026-03-05 01:54:52 -08:00
Mathieu Comandon
159d7a21e5 Release 0.5.22 2026-02-24 17:09:14 -08:00
Mathieu Comandon
9781657d4e Release 0.5.21 2026-02-24 12:50:04 -08:00
Mathieu Comandon
90c812c0b6 Add .lutris file type association to desktop entry 2026-02-18 11:03:05 -08:00
Mathieu Comandon
9834a5b692 Add env and working_dir support to JSON runners
Supermodel: set SDL_VIDEODRIVER=x11, working_dir to runner,
and add netboard option enabled by default.
2026-02-14 20:19:33 -08:00
Mathieu Comandon
89b1d794fa Add recent fixes to changelog 2026-02-14 18:30:02 -08:00
Mathieu Comandon
6381ec0c56 Update metainfo for 0.5.20 release 2026-02-14 15:50:57 -08:00
Alexander Weber
00d084fe4f add --fullscreen parameter to melonDS runner 2026-02-14 14:15:26 -08:00
Mathieu Comandon
3964326af3 Add vcs-browser URL to metainfo 2026-02-10 13:58:05 -08:00
Daniel Johnson
b07a43fed7 Use NoDisplay to hide the .desktop entry for the file association
Resolves #6358
2026-01-21 04:53:01 -05:00
Eikeno
0429ebde29 update version and modify runner to adapt to upstream (#6113)
- make options use '--' to adapt upstream change
- removed surf option as no longer supported
- added option to enable software rendering
- added option to enable fullscreen
- adapated "no sound" option to new syntax
- removed standalone binary URL because:
  - it is very outdated, causing compatibility issues with recent cartridges
  - upstream no longer provides tar.gz linux binary asset, only source code and .deb archives
  - flatpak version is updated and allow keeping most of configurations options we used before

For reference, new supported options are:

    -h, --help        show this help message and exit
    --skip            skip startup animation
    --volume=<int>    global volume value [0-15]
    --cli             console only output
    --fullscreen      enable fullscreen mode
    --vsync           enable VSYNC
    --soft            use software rendering
    --fs=<str>        path to the file system folder
    --scale=<int>     main window scale
    --cmd=<str>       run commands in the console
2026-01-18 05:38:59 -08:00
Eikeno
829f69298d bump version to 0.10.5 (#6112) 2026-01-18 05:38:27 -08:00
Eikeno
3461e82f5b rmg: bump version to 0.7.9 (#6114)
* bump version to 0.8.8

* bump to latest available version

* Revert "bump to latest available version"

This reverts commit 1cc921cbd5.

* bump version to 0.7.9
2026-01-18 05:38:14 -08:00
Eikeno
8dbe8c7f2e bump to latest available version (#6115)
since current one is ~= 1 y.o this seems required
2026-01-18 05:38:10 -08:00
Eikeno
d959e90ad2 bump version to new stable v5.0 2026-01-18 05:35:10 -08:00
Eikeno
0792697f90 bump version to 4.2.1 2026-01-18 05:35:10 -08:00
Mathieu Comandon
16dfc02472 Merge branch 'master' into dj/service_game_isolation 2026-01-17 20:29:45 -08:00
Christophe Henry
30ea8468dc Add a .lutris file association that execute local file installation 2026-01-17 20:09:19 -08:00
Daniel Johnson
2319953617 Fix settings for melonDS to work with the AppImage the new download URL will download. 2025-12-04 18:28:03 -05:00
ItsAllAboutTheCode
80a36eaf88 Allow the melonDS emulator to be launched standalone
This looks like an oversight, as the emulator can be launched without a game
2025-12-04 12:47:53 -06:00
Daniel Johnson
02770d6b65 Add a teeny-tiny checkbox on each source in Preferences to show or hide its games in the main games view. 2025-08-30 08:35:55 -04:00
Mathieu Comandon
d69693d5c0 Enable library sync by default 2025-05-19 05:07:37 -07:00
Mathieu Comandon
25fd828b78 Formatting 2025-05-19 05:06:42 -07:00
fiftydinar
251010ee40 Update StartupWMClass in the desktop file 2025-04-29 20:04:47 +07:00
Kolja
c58edf1ee5 Add PackageManager subcategory
Similar to what steam does here https://github.com/flathub/com.valvesoftware.Steam/blob/master/com.valvesoftware.Steam.metainfo.xml#L25
2025-04-14 14:05:10 -07:00
Kristen McWilliam
a8a0b4b780 feat: add buttons to zoom log text
The log text can be quite small and present an
accessibility issue. This change will implement
buttons that allow users to zoom in and out
for better readability.
2025-04-14 04:51:40 -07:00
Noxellar
c20172c30f Update melonds download config to use AppImage
Doing it this way means we don't have to bundle in a bunch of Qt libraries as well
2025-04-14 02:43:28 -07:00
xenoxriar
f9772dda03 Update melonDS to the latest version
melonDS has been updated to 1.0RC so it would be good to point to the new linux package. I *guessing???* that this is a permalink that always points to the newest package though I could be wrong.

There is a pretty major caveat, that being that melonDS now requires a bunch of Qt6 libraries. I'm currently using the latest stable flatpak release of Lutris which doesn't have those. Not sure how this affects the regular packaged version/s of Lutris. It would be nice if somebody could troubleshoot that for me since I'm not experienced enough to deal with it. Thanks!
2025-04-14 02:43:28 -07:00
Mathieu Comandon
73f03e36bb Remove more traces of 0.5.19 2025-03-11 08:40:01 -07:00
Mathieu Comandon
2bae9539a2 Remove redundant add game menu entry 2025-02-23 12:34:42 -08:00
Mathieu Comandon
1003c15e22 Bump t0 0.5.20 2025-02-23 11:46:05 -08:00
RayJW
3d1c8130bb fix: whoops, forget to commit the .ui files 2025-02-17 13:20:22 -08:00
RayJW
a7bd98170c fix: fix icon name in desktop file 2025-02-17 13:20:22 -08:00
RayJW
693fea3b26 refactor: rename icons to match reverse domain name notation 2025-02-17 13:20:22 -08:00
tobil4sk
fc2e1fa6f6 Add opengl backend option for ruffle runner 2024-12-28 11:26:42 -08:00
Daniel Johnson
9f972eaa95 Remove padding from the reset buttons in configuration options.
That padding makes the button too big to fit with a switch, so when it appears the switch option gets taller, which is surely undesired.
2024-12-27 09:45:53 -05:00
Daniel Johnson
3916f95d1d Fix the styling of the options in the configuration window
Bold for set-at-this-level and italic for set-at-another-level.

The style property thing being used here did not work, so I have replaced it with style classes that do.
2024-12-24 16:23:14 -05:00
legluondunet
85407f79d2 Update net.lutris.Lutris.metainfo.xml 2024-12-12 14:43:47 -08:00
legluondunet
6a1d28aec6 Update net.lutris.Lutris.metainfo.xml 2024-12-12 14:43:47 -08:00