Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(guides): add autostart guide #3287

Merged
merged 27 commits into from
Oct 16, 2024

Conversation

midwesternrodent
Copy link
Contributor

Description

Add a new guide for how to enable autostart for Sunshine without enabling autologin. This is the significantly revised document from my previous PR #3200

This guide works by first starting a system service that creates an SSH tunnel to the localhost to start sunshine, similar to Eric Dong's guide on Remote SSH headless setup, but we're SSHing from the local machine instead of a remote machine so you don't need to leave the moonlight client to get streaming setup. After you login to SDDM, there is a second user service that kills the first system service, and runs sunshine with the permissions of the graphical desktop; this is to fix the issues I encountered in #3200 where pipewire was not working, and the system tray icon did not appear.

This guide also gives some non-sunshine related advice around configuring SDDM so you don't end up with a situation where the display streaming to moonlight does not have the mouse captured on it.

There are a few caveats to this guide:

  1. When you login via moonlight, you will be temporarily disconnected until the next user service starts.
  2. I haven't found a way to disable sleep on the login screen, so sometimes the screen can time out and moonlight can't connect if you leave it sit too long. This would happen on Eric Dong's guide as well though.

I have also made some changes to Eric Dong's guide, one just to call out that there is an issue with pipewire audio over SSH and directing people to this guide to fix it.

The second edit, is more of a style / best practices change that I'm more than happy to drop from this PR if anyone disagrees. However, I did change the sections where they're editing a file in sudoers.d to use visudo rather than echoing the edits directly just for the sake of user safety.

I also added some tips to the KDE Plasma (X11, Wayland) section of the app config examples, just to call out how to find the names of the displays with kscreen-doctor since that was a little difficult for me to find online otherwise.

Problems with these documents:
I couldn't figure out how to do internal links properly, so I ended up hardlinking in quite a few areas to docs.lizardbyte.dev, and I imagine that's not the right way to do things. If someone can let me know how you'd like me to do those links, I can get them changed for you so they work better internally.

Because of this issue, I also wasn't able to link to my guide from Eric Dong's guide so once I know how to do the internal links, I'll want to add that just to redirect people.

Also - I didn't want to take away from Eric Dong's voice so I pointed out my authorship of the pipewire issue callout, but I did not call out that I made the visudo change. I don't really care about attribution in that (or any) part, I just wanted to make clear that the comments on pipewire's audio streaming issues over SSH were not from the original author of that guide. If you want me to change that, that's fine by me.

Let me know what I can do to help get this merged or make it more understandable. Thanks!

Screenshot

Issues Fixed or Closed

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Dependency update (updates to dependencies)
  • Documentation update (changes to documentation)
  • Repository update (changes to repository files, e.g. .github/...)

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated the in code docstring/documentation-blocks for new or existing methods/components

@ReenigneArcher ReenigneArcher changed the title docs(guides) Create a new guide for starting sunshine on boot without enabling autologin. docs(guides): add autostart guide Oct 11, 2024
Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Before I review this in detail, could you make the max line length of your changes 120 characters?

@midwesternrodent
Copy link
Contributor Author

Thanks for the PR! Before I review this in detail, could you make the max line length of your changes 120 characters?

Absolutely. I had a little extra time tonight and get them all reduced and fixed some spelling and formatting issues.

If there are any parts you'd like me to condense, please let me know - I fully recognize it's a book.

Do you have any tips on how you'd like me to handle the internal linking? Right now I'm doing things like this which seems wrong based on what I'm seeing in other guides. [Static IP Setup](https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/guides/linux/headless_ssh.html#static-ip-setup)

Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to be great guide, and really informative! I learned a lot by reading all of this (although I haven't run through any of it myself).

My suggestions are mostly to improve formatting and consistency. Thank you!

Edit:

Do you have any tips on how you'd like me to handle the internal linking?

I have some suggestions below on that as well.

docs/app_examples.md Outdated Show resolved Hide resolved
docs/app_examples.md Outdated Show resolved Hide resolved
docs/app_examples.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Show resolved Hide resolved
@midwesternrodent
Copy link
Contributor Author

I've reviewed all your suggestions and they look great. Thank you for taking the time to do that, I'll certainly be taking some of your style suggestions to heart for future guides, they're very clean.

I don't want to merge this quite yet, because I remember finding an error in one of my commands the other day so I'm gonna take some time to proofread this once or twice more tomorrow and make sure I caught all of those. I'll let you know when I think it's perfect (or at least good enough).

Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found a few more things, but this is getting close.

If you want to see the docs rendered, they appear here https://lizardbyte--3287.org.readthedocs.build/projects/sunshine/en/3287/md_docs_2guides.html for your PR.

docs/app_examples.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/app_examples.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
@midwesternrodent
Copy link
Contributor Author

I think I've gotten all the issues with the last two proofreads, and we should be good to merge. Let me know if you agree, or if you think there are a few things left to change still. Thanks for all your help in moving this along, I appreciate it!

Copy link
Member

@ReenigneArcher ReenigneArcher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working through all these points!

I think these are my final requests.

I reviewed the rendered docs, and everything appears nice there.

docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
docs/guides.md Outdated Show resolved Hide resolved
@midwesternrodent
Copy link
Contributor Author

Sounds good, I've accepted all of your suggestions. Let me know if there's anything else!

midwesternrodent and others added 18 commits October 16, 2024 14:15
Add a new guide for starting sunshine on boot, fixing streaming audio with pipewire, and configuring the displays for SDDM.

Also edit some of Eric Dong's guide on the Remote SSH Headless Setup, to call out the issues with pipewire.

Also edited the Remote SSH Headless guides to recommend users to edit with visudo to ensure they don't mess up their sudo configuration.
Add some tips on how to find the right monitor using kscreen-doctor on KDE Plasma for Wayland and X11.
Reduce the maximum line length to 120 characters.

Fix some spelling errors that Obsidian didn't pick up for me. (whoops!)
Accidentally expanded the KDE Plasma (Wayland, X11) table. Fixed it.
Fixed some spelling errors, formatting problems, and fixed the maximum line length to less than 120 characters.
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Co-authored-by: ReenigneArcher <[email protected]>
Apply formatting, grammar, and style suggestions.

Co-authored-by: ReenigneArcher <[email protected]>
Testing some options for putting code in admonition blocks to see how they look on readthedocs.

Don't merge with these changes active, they'll look weird.
Applying all suggestions except those about code snippets in admonition blocks.

Co-authored-by: ReenigneArcher <[email protected]>
Fixing the previously added codeblock changes to make sure they look right in readthedocs.
midwesternrodent and others added 9 commits October 16, 2024 14:15
Changing the @code{} and @encode blocks originally suggested to double and triple backticks.
Fixing code snippets in admonition blocks.

Fixed the code block I broke on line 868 in a previous commit.
Spelling, formatting, and style changes. Fixed a single misnamed command in one of the service files referenced in my guide.
minor grammar fix
Final proofread, fixed a few minor spelling and style problems.
Copy link

Copy link

codecov bot commented Oct 16, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 11.13%. Comparing base (f429d34) to head (af3cb10).
Report is 79 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #3287   +/-   ##
=======================================
  Coverage   11.12%   11.13%           
=======================================
  Files          99       99           
  Lines       17211    17211           
  Branches     8023     8023           
=======================================
+ Hits         1915     1916    +1     
  Misses      12737    12737           
+ Partials     2559     2558    -1     
Flag Coverage Δ
Linux 8.42% <ø> (ø)
Windows 5.19% <ø> (ø)
macOS-13 13.60% <ø> (+0.01%) ⬆️
macOS-14 12.59% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

see 1 file with indirect coverage changes

@ReenigneArcher ReenigneArcher enabled auto-merge (squash) October 16, 2024 18:26
@ReenigneArcher
Copy link
Member

Thanks for all the changes! This will be merged once all the CI passes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants