diff options
Diffstat (limited to 'notes.txt')
-rw-r--r-- | notes.txt | 45 |
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 |