pi-sync-system-theme 0.2.2 → 0.2.3
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/index.ts +8 -6
- package/package.json +1 -1
package/index.ts
CHANGED
|
@@ -61,7 +61,7 @@ const DEFAULT_CONFIG: Config = {
|
|
|
61
61
|
const GLOBAL_CONFIG_PATH = path.join(os.homedir(), ".pi", "agent", "system-theme.json");
|
|
62
62
|
const DETECTION_TIMEOUT_MS = 1200;
|
|
63
63
|
const MIN_POLL_MS = 1000;
|
|
64
|
-
const OSC11_QUERY_TIMEOUT_MS =
|
|
64
|
+
const OSC11_QUERY_TIMEOUT_MS = 2200;
|
|
65
65
|
const OSC11_MIN_INTERVAL_MS = 15_000;
|
|
66
66
|
const OSC11_DISABLE_AFTER_FAILURES = 3;
|
|
67
67
|
const OSC11_DISABLE_COOLDOWN_MS = 60_000;
|
|
@@ -216,14 +216,16 @@ let fd;
|
|
|
216
216
|
try { fd = fs.openSync('/dev/tty', fs.constants.O_RDWR | fs.constants.O_NOCTTY | O_NONBLOCK); }
|
|
217
217
|
catch { process.exit(1); }
|
|
218
218
|
|
|
219
|
-
// Send OSC 11 query.
|
|
220
|
-
|
|
221
|
-
|
|
219
|
+
// Send OSC 11 query. Emit both ST and BEL terminated variants for compatibility.
|
|
220
|
+
try {
|
|
221
|
+
fs.writeSync(fd, '\x1b]11;?\x1b\\');
|
|
222
|
+
fs.writeSync(fd, '\x1b]11;?\x07');
|
|
223
|
+
}
|
|
222
224
|
catch { try { fs.closeSync(fd); } catch {} process.exit(1); }
|
|
223
225
|
|
|
224
226
|
const buf = Buffer.alloc(1024);
|
|
225
227
|
let response = '';
|
|
226
|
-
const deadline = Date.now() +
|
|
228
|
+
const deadline = Date.now() + 1800;
|
|
227
229
|
|
|
228
230
|
function tryRead() {
|
|
229
231
|
while (true) {
|
|
@@ -250,7 +252,7 @@ function to8Bit(hex) {
|
|
|
250
252
|
function done() {
|
|
251
253
|
try { fs.closeSync(fd); } catch {}
|
|
252
254
|
// Keep parser permissive: tmux may wrap control sequences, but rgb payload remains stable.
|
|
253
|
-
const m = response.match(/rgb:([0-9a-fA-F]{2,
|
|
255
|
+
const m = response.match(/rgb:([0-9a-fA-F]{2,8})\\/([0-9a-fA-F]{2,8})\\/([0-9a-fA-F]{2,8})/);
|
|
254
256
|
if (m) {
|
|
255
257
|
const r = to8Bit(m[1]);
|
|
256
258
|
const g = to8Bit(m[2]);
|