aboutsummaryrefslogtreecommitdiff
path: root/notes.txt
diff options
context:
space:
mode:
Diffstat (limited to 'notes.txt')
-rw-r--r--notes.txt45
1 files changed, 45 insertions, 0 deletions
diff --git a/notes.txt b/notes.txt
new file mode 100644
index 00000000..820543c7
--- /dev/null
+++ b/notes.txt
@@ -0,0 +1,45 @@
+- declare local _p9k_worker_reset in _p9k_worker_receive. it can be set when replies from worker
+ are eval'd. initial value 0. 1 means reset-prompt is needed. 2 for _p9k_set_prompt + reset-prompt.
+- battery: when state or icon change, update with _p9k_set_prompt. make sure icons can be sent with
+ `typset -p` in zsh 5.1.
+- ram: reduce precision to 2 digits. check if it makes sense for all segments that use the same
+ function.
+- to avoid resetting prompt too often (e.g., when battery remaining time changes by 1 minute), can
+ do the following: send the current state from master to worker; worker sends new state if it's
+ different but it only triggers prompt reset if it's sufficiently different. this requires
+ disabling implicit reset on every eval in _p9k_worker_receive.
+- implement fake gitstatus api on top of vcs_info (or plain git?) + worker and use it if there is no
+ gitstatus.
+
+zmodload zsh/system
+
+() {
+ emulate -L zsh
+ unsetopt monitor
+ setopt monitor
+ [[ -o monitor ]] && echo monitor on
+ typeset -gi fd
+ (( fd )) && exec {fd}>&-
+ sysopen -r -o cloexec -u fd <(
+ local pid=$sysparams[pid]
+ (
+ echo $sysparams[pid] $sysparams[ppid] $pid >>/tmp/log
+ echo $pid
+ sleep 2 &
+ : <(sleep 3)
+ sleep 4
+ sleep 5
+ ) &)
+ sleep 1
+ ps axjf
+ local pid
+ IFS= read -r -u $fd pid
+ kill -- -$pid
+ ps axjf
+ exec {fd}>&-
+ fd=0
+}
+
+_p9k_worker_await <(...) callback
+
+callback gets access to REPLY and STATUS; no prev