Pidgeot / python-lnp

Cross-platform re-implementation of the Lazy Newb Pack launcher.
ISC License
65 stars 10 forks source link

Improve terminal spawning on Linux #148

Closed Pidgeot closed 4 years ago

Pidgeot commented 4 years ago

Until now, the xdg-terminal has been (trying to) take care of spawning terminals.

It's not always working too well. It would be a good idea to get this overhauled.

Planned steps:

  1. Port the basic functionality to pure Python. That gets rid of the dependency on an external file.
  2. When auto-detection fails, let the user know (ideally at launch). Provide a list of common DEs that are preconfigured appropriately, or let the user specify a custom command for more exotic cases.
  3. Make it possible to verify if the settings work as expected (terminal spawns with a program, PyLNP does not freeze up, terminal does not die if PyLNP quits). If possible, make this fully automatic (but if necessary, basic user interaction is okay).

[Issue created by Pidgeot: 2015-12-06] [Last updated on bitbucket: 2016-08-08]

[Comment created by Pidgeot: 2016-08-08] Removing milestone: 0.12 (automated comment)

[Comment created by Pidgeot: 2016-08-08] Add custom terminal command tests to terminal UI (fixes #100)

→ <>

[Comment created by Pidgeot: 2016-08-08] I've decided that, at least for the first release with this feature, the UI will block while the test is running. While there is support for providing status messages throughout the process, I feel it's better to have the basic system tested first, and then I can show those status messages with threading later on.

For now, however, I'll consider this issue fixed.

[Comment created by Pidgeot: 2016-07-04] Should be mostly done now. I've made a UI to choose between several different terminals (only those detected on the system), and still preserve the ability to set a custom terminal.

I've also created an automated test sequence to ensure the spawned processes are well-behaved, but this has yet to be integrated into the UI (because it'll have to run a separate thread and I don't want to deal with that tonight). Will do that before next release.

[Comment created by Pidgeot: 2016-07-03] Configuration interface for terminals on Linux (see #100)

→ <<cset 4b9629b010cb>>

[Comment created by Pidgeot: 2016-07-03] Move terminal handling into separate unit Add test of terminal spawning (for Linux) (see #100)

→ <<cset 30b9d76f449d>>

[Comment created by Pidgeot: 2016-06-22] Add Python-based terminal detection and handling methods (see #100)

→ <<cset 174bcd8ed0c0>>

[Comment created by Pidgeot: 2016-03-14] Did some preliminary tests just now; although results were promising, I believe implementing it now will delay the release for too long.

[Comment created by Pidgeot: 2015-12-06] I'd actually quite like to have this ready for 0.11, but I'm not too confident that I'll be able to get around to this in time, so it's planned for 1.0 for now.