feat(shell): a launcher, a browser, a player and an updater - #8
Merged
Merged
Conversation
Ten changes to VsCodeOsCore, most of them about the same thing: a desktop
whose only window is the editor should not have to leave it.
* An all-apps button in the bottom-left corner, opening a searchable grid
of every program. The list it draws comes from src/apps/registry.ts -
one array, replacing the hand-maintained copies that had drifted apart.
* Files opens everything in the editor. The list of known text extensions
is gone: `vscode.open` already routes a file to whatever editor claims
it, and media with a soundtrack goes to the new player.
* A media player, and a browser. The browser is the awkward one - every
site worth visiting refuses to be framed, so it drives a headless
Chromium through puppeteer-core and streams its picture into a webview.
That costs a JPEG per frame, so the rate and quality are settings, the
stream stops with the tab, and "Open in browser" is always there.
* An Updater, with a GUI for pacman, VS Code and the shell itself. It
checks unprivileged (checkupdates, which never touches the real sync
database) and applies through one script over pkexec. sudo could not do
this: the installed system asks for a password and this session has
nowhere to draw the prompt.
* The tray menus move out of the bottom panel and into the side bar, so
clicking the clock stops closing the terminal. VS Code has no API for a
popup anchored to a status bar item; vscodeos.flyout.location puts them
back where they were.
* The battery tile's menu is now three things - energy saver, brightness,
charge left. Wi-Fi and airplane mode moved to the network card, night
light onto the brightness slider, Bluetooth to a card of its own.
* A Bluetooth button next to the network one, with the scanning, pairing
and forgetting the quick-settings tile never had.
* Print Screen starts a region capture. It has to be bound in openbox:
on X11 the key never reaches Electron, so the window manager hands a
vscode:// URI back to the editor instead.
* Notepad is gone. The editor is a better one.
polkit gains a password-free grant for /usr/local/bin/vscodeos-update, so
both image builds now pin that script to root:root 0755 explicitly - a copy
the kiosk user could write to would turn the grant into a path to root.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBDGUghMYM2AKqqEYLDnGe
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ten changes to VsCodeOsCore, most of them about the same thing: a desktop
whose only window is the editor should not have to leave it.
An all-apps button in the bottom-left corner, opening a searchable grid
of every program. The list it draws comes from src/apps/registry.ts -
one array, replacing the hand-maintained copies that had drifted apart.
Files opens everything in the editor. The list of known text extensions
is gone:
vscode.openalready routes a file to whatever editor claimsit, and media with a soundtrack goes to the new player.
A media player, and a browser. The browser is the awkward one - every
site worth visiting refuses to be framed, so it drives a headless
Chromium through puppeteer-core and streams its picture into a webview.
That costs a JPEG per frame, so the rate and quality are settings, the
stream stops with the tab, and "Open in browser" is always there.
An Updater, with a GUI for pacman, VS Code and the shell itself. It
checks unprivileged (checkupdates, which never touches the real sync
database) and applies through one script over pkexec. sudo could not do
this: the installed system asks for a password and this session has
nowhere to draw the prompt.
The tray menus move out of the bottom panel and into the side bar, so
clicking the clock stops closing the terminal. VS Code has no API for a
popup anchored to a status bar item; vscodeos.flyout.location puts them
back where they were.
The battery tile's menu is now three things - energy saver, brightness,
charge left. Wi-Fi and airplane mode moved to the network card, night
light onto the brightness slider, Bluetooth to a card of its own.
A Bluetooth button next to the network one, with the scanning, pairing
and forgetting the quick-settings tile never had.
Print Screen starts a region capture. It has to be bound in openbox:
on X11 the key never reaches Electron, so the window manager hands a
vscode:// URI back to the editor instead.
Notepad is gone. The editor is a better one.
polkit gains a password-free grant for /usr/local/bin/vscodeos-update, so
both image builds now pin that script to root:root 0755 explicitly - a copy
the kiosk user could write to would turn the grant into a path to root.
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01NBDGUghMYM2AKqqEYLDnGe