replicas-computer 0.3.27 → 0.3.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/assets/desktop/replicas-symbol.svg +3 -0
- package/assets/desktop/start-services.sh +7 -2
- package/assets/desktop/themes/dark.env +1 -0
- package/assets/desktop/themes/light.env +1 -0
- package/assets/desktop/tint2rc +1 -17
- package/assets/desktop/topbar-tint2rc +33 -0
- package/dist/index.js +4 -3
- package/dist/stream-viewer.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ The versioned computer-use runtime for Replicas workspace images.
|
|
|
15
15
|
- `src/viewer.ts` owns the optional noVNC fallback.
|
|
16
16
|
- `assets/desktop/start-services.sh` owns the X11 and stream process lifecycle.
|
|
17
17
|
- `xsettingsd` broadcasts theme changes to running GTK apps and Chrome. Chrome follows the dashboard theme without reopening tabs; launch it without a `GTK_THEME` override.
|
|
18
|
-
- `assets/desktop/` owns the desktop theme: `wallpapers/` (a light and dark JPEG per scene; each new desktop picks a different scene), `tint2rc` dock, `openbox-theme/`, `gtk-settings.ini`, the `replicas-terminal` wrapper, `themes/` palettes that `start-services.sh` renders into those templates (`--theme light|dark` switches a running desktop), and the bundled fonts (static TTF instances of General Sans and Geist Mono; variable and WOFF2 builds render with wrong metrics in Pango and VTE).
|
|
18
|
+
- `assets/desktop/` owns the desktop theme: `wallpapers/` (a light and dark JPEG per scene; each new desktop picks a different scene), `tint2rc` dock, `topbar-tint2rc` top bar (the `replicas-symbol.svg` logo and the clock), `openbox-theme/`, `gtk-settings.ini`, the `replicas-terminal` wrapper, `themes/` palettes that `start-services.sh` renders into those templates (`--theme light|dark` switches a running desktop), and the bundled fonts (static TTF instances of General Sans and Geist Mono; variable and WOFF2 builds render with wrong metrics in Pango and VTE).
|
|
19
19
|
|
|
20
20
|
The viewer and agent command paths are independent. `start-services.sh` runs Xvfb, the compositor, PulseAudio and the stream server (and so the encoders it spawns) at nice −10 when `sudo` is available, so CPU load from the apps on the desktop slows those apps instead of stalling the picture of them. One on-demand encoder pair is shared by all viewers, stops when the last viewer disconnects, and restarts without reloading the page. A viewer out of sight (the dashboard keeps one connected while the Desktop tab is hidden) reports `standby`, detected with an `IntersectionObserver` because a hidden iframe keeps its last layout size; while every viewer is in standby the encoder runs at 5 fps on the 1.5 Mbps rung, and the first viewer to become visible returns it to full rate in place.
|
|
21
21
|
|
|
@@ -336,6 +336,8 @@ mkdir -p \
|
|
|
336
336
|
"$HOME/.icons/default"
|
|
337
337
|
|
|
338
338
|
[ -f "$REPLICAS_DESKTOP_TEMPLATES/tint2rc" ] && render_template "$REPLICAS_DESKTOP_TEMPLATES/tint2rc" "$HOME/.config/tint2/tint2rc"
|
|
339
|
+
[ -f "$REPLICAS_DESKTOP_TEMPLATES/topbar-tint2rc" ] && render_template "$REPLICAS_DESKTOP_TEMPLATES/topbar-tint2rc" "$HOME/.config/tint2/topbar-tint2rc"
|
|
340
|
+
[ -f "$REPLICAS_DESKTOP_TEMPLATES/replicas-symbol.svg" ] && render_template "$REPLICAS_DESKTOP_TEMPLATES/replicas-symbol.svg" "$HOME/.config/tint2/replicas-symbol.svg"
|
|
339
341
|
[ -f "$REPLICAS_DESKTOP_TEMPLATES/openbox-rc.xml" ] && cp "$REPLICAS_DESKTOP_TEMPLATES/openbox-rc.xml" "$HOME/.config/openbox/rc.xml"
|
|
340
342
|
[ -f "$REPLICAS_DESKTOP_TEMPLATES/picom.conf" ] && cp "$REPLICAS_DESKTOP_TEMPLATES/picom.conf" "$HOME/.config/picom/picom.conf"
|
|
341
343
|
[ -f "$REPLICAS_DESKTOP_TEMPLATES/gtk-settings.ini" ] && render_template "$REPLICAS_DESKTOP_TEMPLATES/gtk-settings.ini" "$HOME/.config/gtk-3.0/settings.ini"
|
|
@@ -395,14 +397,17 @@ paint_wallpaper
|
|
|
395
397
|
|
|
396
398
|
if [ -n "$REQUESTED_THEME" ] && [ "$THEME" != "$PREVIOUS_THEME" ]; then
|
|
397
399
|
DISPLAY=":$DISPLAY_NUM" openbox --reconfigure >/dev/null 2>&1 || true
|
|
398
|
-
kill_pids "$(cat "$STATE_DIR/tint2.pid" 2>/dev/null)"
|
|
399
|
-
rm -f "$STATE_DIR/tint2.pid"
|
|
400
|
+
kill_pids "$(cat "$STATE_DIR/tint2.pid" "$STATE_DIR/topbar.pid" 2>/dev/null)"
|
|
401
|
+
rm -f "$STATE_DIR/tint2.pid" "$STATE_DIR/topbar.pid"
|
|
400
402
|
fi
|
|
401
403
|
|
|
402
404
|
# tint2 panel anchors window stacking on bare openbox.
|
|
403
405
|
start_bg tint2 \
|
|
404
406
|
"false" \
|
|
405
407
|
"DISPLAY=:$DISPLAY_NUM exec tint2"
|
|
408
|
+
start_bg topbar \
|
|
409
|
+
"false" \
|
|
410
|
+
"DISPLAY=:$DISPLAY_NUM exec tint2 -c $HOME/.config/tint2/topbar-tint2rc"
|
|
406
411
|
|
|
407
412
|
if [ "$COMPOSITOR" = "1" ]; then
|
|
408
413
|
start_bg picom \
|
package/assets/desktop/tint2rc
CHANGED
|
@@ -47,7 +47,7 @@ border_width = 1
|
|
|
47
47
|
background_color = @SURFACE_ALT@ 96
|
|
48
48
|
border_color = @LINE@ 16
|
|
49
49
|
|
|
50
|
-
panel_items = LT
|
|
50
|
+
panel_items = LT
|
|
51
51
|
panel_size = 100% 72
|
|
52
52
|
panel_margin = 0 12
|
|
53
53
|
panel_padding = 10 7 6
|
|
@@ -103,22 +103,6 @@ task_active_icon_asb = 100 0 0
|
|
|
103
103
|
task_iconified_icon_asb = 55 0 0
|
|
104
104
|
urgent_nb_of_blink = 8
|
|
105
105
|
|
|
106
|
-
separator = new
|
|
107
|
-
separator_background_id = 0
|
|
108
|
-
separator_color = @LINE@ 18
|
|
109
|
-
separator_style = line
|
|
110
|
-
separator_size = 1
|
|
111
|
-
separator_padding = 6 14
|
|
112
|
-
|
|
113
|
-
time1_format = %H:%M
|
|
114
|
-
time2_format = %a %-d %b
|
|
115
|
-
time1_font = General Sans Semibold 12
|
|
116
|
-
time2_font = Geist Mono 8
|
|
117
|
-
clock_font_color = @INK@ 100
|
|
118
|
-
clock_padding = 12 0
|
|
119
|
-
clock_background_id = 0
|
|
120
|
-
clock_tooltip = %A, %B %-d
|
|
121
|
-
|
|
122
106
|
tooltip_padding = 10 6
|
|
123
107
|
tooltip_show_timeout = 0.4
|
|
124
108
|
tooltip_hide_timeout = 0.1
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
rounded = 0
|
|
2
|
+
border_width = 1
|
|
3
|
+
border_sides = B
|
|
4
|
+
background_color = @SURFACE@ 100
|
|
5
|
+
border_color = @LINE@ 10
|
|
6
|
+
|
|
7
|
+
panel_items = PFC
|
|
8
|
+
panel_size = 100% 36
|
|
9
|
+
panel_margin = 0 0
|
|
10
|
+
panel_padding = 0 0 0
|
|
11
|
+
panel_background_id = 1
|
|
12
|
+
panel_position = top center horizontal
|
|
13
|
+
panel_layer = top
|
|
14
|
+
panel_monitor = all
|
|
15
|
+
panel_window_name = tint2-topbar
|
|
16
|
+
disable_transparency = 1
|
|
17
|
+
strut_policy = follow_size
|
|
18
|
+
wm_menu = 0
|
|
19
|
+
font_shadow = 0
|
|
20
|
+
mouse_effects = 0
|
|
21
|
+
|
|
22
|
+
button = new
|
|
23
|
+
button_icon = ~/.config/tint2/replicas-symbol.svg
|
|
24
|
+
button_padding = 13 0 0
|
|
25
|
+
button_background_id = 0
|
|
26
|
+
button_centered = 0
|
|
27
|
+
button_max_icon_size = 24
|
|
28
|
+
|
|
29
|
+
time1_format = %a %-d %b %H:%M
|
|
30
|
+
time1_font = General Sans 11
|
|
31
|
+
clock_font_color = @INK@ 100
|
|
32
|
+
clock_padding = 16 0
|
|
33
|
+
clock_background_id = 0
|
package/dist/index.js
CHANGED
|
@@ -74,7 +74,7 @@ function getDesktopBridgeStatus() {
|
|
|
74
74
|
}
|
|
75
75
|
function desktopStackHealthy() {
|
|
76
76
|
const pids = {};
|
|
77
|
-
for (const name of ["openbox", "tint2", "stream"]) {
|
|
77
|
+
for (const name of ["openbox", "tint2", "topbar", "stream"]) {
|
|
78
78
|
try {
|
|
79
79
|
const pid = Number.parseInt(readFileSync(`${STATE_DIR}/${name}.pid`, "utf8").trim(), 10);
|
|
80
80
|
if (!Number.isFinite(pid)) return false;
|
|
@@ -3243,7 +3243,8 @@ async function computerStatusCommand() {
|
|
|
3243
3243
|
["Xvfb", "Xvfb"],
|
|
3244
3244
|
["openbox", "openbox"],
|
|
3245
3245
|
["XSETTINGS", "xsettingsd"],
|
|
3246
|
-
["
|
|
3246
|
+
["dock", "^tint2$"],
|
|
3247
|
+
["top bar", "tint2 -c .*topbar"],
|
|
3247
3248
|
["PulseAudio", "pulseaudio"],
|
|
3248
3249
|
["desktop stream", "replicas-computer.*stream"]
|
|
3249
3250
|
];
|
|
@@ -3262,7 +3263,7 @@ async function computerStatusCommand() {
|
|
|
3262
3263
|
}
|
|
3263
3264
|
|
|
3264
3265
|
// src/version.ts
|
|
3265
|
-
var COMPUTER_USE_VERSION = "0.3.
|
|
3266
|
+
var COMPUTER_USE_VERSION = "0.3.29";
|
|
3266
3267
|
var COMPUTER_USE_PROTOCOL_VERSION = 1;
|
|
3267
3268
|
|
|
3268
3269
|
// src/program.ts
|
package/dist/stream-viewer.js
CHANGED
|
@@ -859,6 +859,7 @@ var connect = () => {
|
|
|
859
859
|
actionId = 0;
|
|
860
860
|
reconnectAttempt = 0;
|
|
861
861
|
sendSocket({ type: "theme", theme: document.documentElement.dataset.theme === "light" ? "light" : "dark" });
|
|
862
|
+
sendSocket({ type: "standby", standby });
|
|
862
863
|
});
|
|
863
864
|
nextSocket.addEventListener("message", (event) => {
|
|
864
865
|
if (socket !== nextSocket) return;
|