-
-
Save nightuser/2ec1b91a66ec33ef0a0a67b6c570eb40 to your computer and use it in GitHub Desktop.
Add an option to use the existing Xorg session with | |
chrome-remote-desktop. | |
The original idea of the patch: https://superuser.com/a/850359 | |
--- a/chrome-remote-desktop 2024-03-27 16:03:20.518579015 +0000 | |
+++ b/chrome-remote-desktop 2024-03-27 16:17:58.241912847 +0000 | |
@@ -110,6 +110,8 @@ | |
X_LOCK_FILE_TEMPLATE = "/tmp/.X%d-lock" | |
FIRST_X_DISPLAY_NUMBER = 20 | |
+EXISTING_X_DISPLAY_FILE_PATH = os.path.join(CONFIG_DIR, "Xsession") | |
+X_SESSION_FILE_TEMPLATE = "/tmp/.X11-unix/X%d" | |
# Amount of time to wait between relaunching processes. | |
SHORT_BACKOFF_TIME = 5 | |
@@ -738,16 +740,33 @@ | |
return True | |
return False | |
+ def _use_existing_session(self): | |
+ with open(EXISTING_X_DISPLAY_FILE_PATH) as fh: | |
+ try: | |
+ display_raw = fh.readline().rstrip() | |
+ display = int(display_raw) | |
+ except ValueError: | |
+ logging.error("Display must be a number; got: '%s'" % display_raw) | |
+ sys.exit(1) | |
+ if not os.path.exists(X_SESSION_FILE_TEMPLATE % display): | |
+ logging.error("Xorg session file doesn't exist") | |
+ sys.exit(1) | |
+ logging.info("Using existing Xorg session: %d" % display) | |
+ self.child_env["DISPLAY"] = ":%d" % display | |
+ | |
def launch_session(self, server_args, backoff_time): | |
"""Launches process required for session and records the backoff time | |
for inhibitors so that process restarts are not attempted again until | |
that time has passed.""" | |
logging.info("Setting up and launching session") | |
self._setup_gnubby() | |
- self._launch_server(server_args) | |
- if not self._launch_pre_session(): | |
- # If there was no pre-session script, launch the session immediately. | |
- self.launch_desktop_session() | |
+ if os.path.exists(EXISTING_X_DISPLAY_FILE_PATH): | |
+ self._use_existing_session() | |
+ else: | |
+ self._launch_server(server_args) | |
+ if not self._launch_pre_session(): | |
+ # If there was no pre-session script, launch the session immediately. | |
+ self.launch_desktop_session() | |
self.server_inhibitor.record_started(MINIMUM_PROCESS_LIFETIME, | |
backoff_time) | |
self.session_inhibitor.record_started(MINIMUM_PROCESS_LIFETIME, |
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
I wonder if it is possible for a similar fix under wayland, given that without the patch you can use remote desktop without issue... albeit still under a different session. :p
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
that isn't me!! that was from the quote
but yeah, that almost got me, @SitramSoft might wanna edit both the one liner and individual commands π
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
that isn't me!! that was from the quote but yeah, that almost got me, @SitramSoft might wanna edit both the one liner and individual commands π
π± Thanks for pointing out that mistake. It should be fixed now in both places.
I hope nobody deleted their home directory with that command π
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
that isn't me!! that was from the quote but yeah, that almost got me, @SitramSoft might wanna edit both the one liner and individual commands π
it's still in your quote reply. the sloppy readers like me will totally copypasta themselves into doom.
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
that isn't me!! that was from the quote but yeah, that almost got me, @SitramSoft might wanna edit both the one liner and individual commands π
it's still in your quote reply. the sloppy readers like me will totally copypasta themselves into doom.
fixed also
@JovannMC I hope you are aware of the rm ~/ bomb in that one liner of yours.
that isn't me!! that was from the quote but yeah, that almost got me, @SitramSoft might wanna edit both the one liner and individual commands π
π± Thanks for pointing out that mistake. It should be fixed now in both places.
I hope nobody deleted their home directory with that command π
iirc for me it tried to but didn't really do anything (esp since it didnt have -rf
thankfully)
FYI @JovannMC the gist referenced in your expanded one liner is from 2022. It's not the current patch.
This worked for me (Linux Mint 22, version
129.0.6668.14
) with some tweaks.I had issues with
chrome-remote-desktop
erroring out, which I solved by changing~/.config/chrome-remote-desktop/Xsession
's contents to be0
instead of0.0
. I also had to run thesystemctl
commands without--user
and appending@$USER
to the commands, so the last two commands became the following: