replicas-computer 0.3.27 → 0.3.28

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 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
 
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="@BRAND@" shape-rendering="crispEdges">
2
+ <path d="M3 0h12v6H3zm12 6h6v6h-6zM3 12h12v6H3zm0 6h6v6H3zm12 0h6v6h-6z"/>
3
+ </svg>
@@ -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 \
@@ -12,3 +12,4 @@ INK_DISABLED='#5c5c5c'
12
12
  LINE='#ffffff'
13
13
  ACCENT='#3cba85'
14
14
  ACCENT_INK='#3cba85'
15
+ BRAND='#3eeba3'
@@ -12,3 +12,4 @@ INK_DISABLED='#b9c1b8'
12
12
  LINE='#162118'
13
13
  ACCENT='#2fc487'
14
14
  ACCENT_INK='#2f9d57'
15
+ BRAND='#2f9d57'
@@ -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:C
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
- ["tint2", "tint2"],
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.27";
3266
+ var COMPUTER_USE_VERSION = "0.3.28";
3266
3267
  var COMPUTER_USE_PROTOCOL_VERSION = 1;
3267
3268
 
3268
3269
  // src/program.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "replicas-computer",
3
- "version": "0.3.27",
3
+ "version": "0.3.28",
4
4
  "description": "Replicas workspace computer-use runtime",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",