mirror of
https://github.com/theniceboy/.config.git
synced 2025-12-26 14:44:57 +08:00
28 lines
776 B
Bash
Executable file
28 lines
776 B
Bash
Executable file
#!/usr/bin/env zsh
|
|
|
|
_fps() {
|
|
local render
|
|
if (( $+commands[grcat] )); then
|
|
render='grcat fps.grc'
|
|
else
|
|
render='cat'
|
|
fi
|
|
|
|
ps -eo user,pid,ppid,pgid,stat,tname,cmd | awk '
|
|
BEGIN { "ps -p $$ -o pgid --no-headers | tr -d \"[:blank:]\"" | getline pgid } {
|
|
if ($4 != pgid || $2 == pgid)
|
|
print
|
|
}' | ${(z)render}
|
|
}
|
|
|
|
setopt localoptions pipefail
|
|
|
|
local fzf_opts="--header-lines=1 -m \
|
|
${commands[grcat]:+--ansi} --height=50% \
|
|
--min-height=15 --tac --reverse \
|
|
--preview-window=down:2"
|
|
|
|
local fzf_preview_cmd="ps -o pcpu,pmem,vsz,rss,thcount,start_time,time -p {2}"
|
|
|
|
_fps | fzf ${(z)fzf_opts} --preview=$fzf_preview_cmd |
|
|
awk -v sep=${FZF_MUL_DELIM:- } '{ printf "%s%c", $2, sep }' | sed -E "s/${FZF_MUL_DELIM:- }$//"
|