Repository navigation
Build the LCOS GitHub Pages satire desktop - #1
Conversation
Reviewer's GuideImplements a fully client-side LCOS “browser desktop” experience with boot screen, multi-window LCDE UI, fake system apps, and a GitHub Pages deployment workflow, while updating documentation to emphasize the satire/non-distro nature and describe the hosted site. Sequence diagram for LCOS browser desktop boot and app interactionssequenceDiagram
actor User
participant Browser as browser
participant app_js as app_js
User->>Browser: load index_html
Browser->>app_js: execute IIFE
app_js->>bootLog: runBoot
app_js->>boot: finishBoot
app_js->>desktop: show LCDE desktop
app_js->>aboutWindow: openWindow
loop clock updates
app_js->>clock: updateClock
end
User->>applicationsButton: click
app_js->>applicationsMenu: toggleApplicationsMenu
User->>applicationsMenu: select LundukeTerminal
app_js->>terminalWindow: openWindow
app_js->>terminalOutput: initTerminal
User->>terminalForm: submit "ethics"
app_js->>terminalOutput: appendTerminal
app_js->>terminalCommands: executeTerminal ethics
terminalCommands->>ethicsWindow: openWindow
terminalCommands->>terminalOutput: appendTerminal
User->>window-titlebar: drag
app_js->>window: makeDraggable
app_js->>window: focusWindow
User->>taskButtons: click task_button
app_js->>window: minimizeWindow / focusWindow
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Sorry @EmergentMonk, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2c52616d2c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| on: | ||
| push: | ||
| branches: [master] |
There was a problem hiding this comment.
Trigger Pages deployment from main
The repository's base branch is main and no master ref exists in the inspected repository, so ordinary merges and pushes to main never trigger this deployment job; only a manual dispatch can publish the advertised live site. Configure this branch filter for main (or otherwise derive the default branch), matching the repository's actual release flow.
Useful? React with 👍 / 👎.
| setTimeout(() => { | ||
| summary.textContent = '3 updates available; 1 eternal argument held back'; | ||
| showToast('Updates checked. Your computer is now 12% more aware of discourse.'); | ||
| }, 650); |
There was a problem hiding this comment.
Cancel the pending update check before applying
If the user clicks Apply Everything Recklessly within 650 ms of Check for Updates, the apply handler reports that the system is current, but this still-pending callback subsequently overwrites that summary with “3 updates available” and shows the stale check-complete toast. Track and cancel the timer, or have the callback verify that an apply has not superseded the check.
Useful? React with 👍 / 👎.
| .window { | ||
| position: absolute; z-index: 100; left: var(--x); top: var(--y); width: min(var(--w), calc(100vw - 30px)); height: min(var(--h), calc(100vh - 100px)); | ||
| border: 1px solid #5d5d5d; background: var(--window); color: var(--window-text); box-shadow: var(--shadow); overflow: hidden; resize: both; | ||
| min-width: 340px; min-height: 240px; |
There was a problem hiding this comment.
Let windows shrink on narrow mobile screens
On viewports narrower than 356 px, such as a 320 px-wide phone, this min-width overrides the mobile rule's width: calc(100vw - 16px), making every window wider than the viewport. Because both the body and desktop hide overflow, the right edge and most of the rightmost window control are inaccessible; reset the minimum width in the mobile media query or cap it relative to the viewport.
Useful? React with 👍 / 👎.
| appsMenu.hidden = true; | ||
| appsButton.setAttribute('aria-expanded', 'false'); | ||
|
|
||
| if (id === 'terminalWindow') { | ||
| setTimeout(() => $('#terminalInput')?.focus(), 0); |
There was a problem hiding this comment.
Move keyboard focus into every opened window
When a keyboard user activates a non-terminal item in the Applications menu, opening the window immediately hides the menu button that still owns DOM focus, but focus is moved into the destination only for terminalWindow. The user is consequently returned to an unclear document position and must traverse the desktop controls to reach the window they just opened; focus the destination window or its first meaningful control for every application.
Useful? React with 👍 / 👎.
| <section id="updatesWindow" class="window" style="--x: 12vw; --y: 20vh; --w: 760px; --h: 470px;" hidden aria-label="Package manager window"> | ||
| <div class="window-titlebar"> | ||
| <span class="window-title">LCOS Package Manager — Definitely Stable</span> | ||
| <div class="window-controls"><button type="button" data-minimize>—</button><button type="button" data-maximize>□</button><button type="button" data-close>×</button></div> |
There was a problem hiding this comment.
Give symbol-only window controls accessible action names
In the Package Manager—and likewise in the Issues, Ethics, and Gallery windows—the three controls expose only —, □, and × as their accessible names. Screen-reader users therefore hear punctuation or glyph descriptions rather than “Minimize,” “Maximize,” and “Close,” even though the About and Terminal controls already provide those labels; add the same action-specific aria-label values consistently.
Useful? React with 👍 / 👎.
What changed
Turns the LCOS satire fork into a complete interactive GitHub Pages desktop rather than a README-only concept.
Browser OS
Fake system applications
help,neofetch,uname -a,apt update,systemctl,x11,wayland,ethics, etc..debatepackage formatCodeOfEthics.mdrulesGitHub Pages
.github/workflows/pages.ymlapp.jswithnode --check.nojekyllDocumentation
Why
The fork's stated purpose is to visualize what LCOS could look like via GitHub Pages, while explicitly not becoming a real distro. This PR actually builds that visualization and keeps the joke unmistakable.
Validation
The Pages workflow performs JavaScript syntax validation and static asset checks before deployment. The branch is based directly on current
masterand is not behind it.No real package manager, init system, telemetry daemon, installer or kernel was injured during development.
Summary by Sourcery
Turn the LCOS satire fork into a fully interactive browser-based desktop experience hosted on GitHub Pages.
New Features:
Build:
Documentation: