Скрипт
#!/bin/bash -x
# Скрипт запускается по нажатию горячих клавиш и открывает файл с названием заголовка активного окна из своей директории.
bdir="$HOME/scripts/context_notes"
#notify-send "$(xprop -id $(xdotool getactivewindow)|grep _NET_STARTUP)" -t 9000
cd $bdir
view=""
if [ -z "$1" ]; then
if [ ! "$1" == "view" ]; then
view="view"
fi
wid="$(xdotool getactivewindow)"
else
wid="$1"
echo $wid
fi
#notify-send "$wid" -t 2000
pid="$(xprop -id $wid |grep "_NET_WM_PID(CARDINAL)" |grep -o "[0-9]*")"
#title="$(xwininfo -id $wid |grep xwininfo | grep -o "\".*\"" )"
#title="${title//\"/}" #удалить кавычки
comm="$(ps -q $pid -o comm=)"
args="$(ps -q $pid -o args=)"
#notify-send "$args" -t 9000
#notify-send "$title w:$wid pid:$pid comm:$comm" -t 9000
if [ -e "$comm" ]; then
echo "Ok";
else
mkdir "$comm"
fi
cd $comm
if [ "$comm" = "firefox" ]; then
s="$(xwininfo -id $wid |grep xwininfo | grep xwininfo | grep -o "\".*\*\/;\*")"
title="${s:1:(-4)}"
url="$(xwininfo -id $wid |grep xwininfo | grep -o "\*\/;\*.*\ Mozilla" | cut -d" " -f 2)"
# notify-send $url -t 9000
elif [ "$comm" = "zathura" ]; then
title="$(xwininfo -id $wid |grep xwininfo | sed -e "s/[^\"]*\"\([^[]*\).*/\1/" )"
url="$(xwininfo -id $wid| grep xwininfo | sed -e "s/.*\[\(.*\)\]\"/\1/")"
notify-send "title:$title url:$url" -t 9000
elif [ "$comm" = "viewnior" ]; then
title="$(xwininfo -id $wid |grep xwininfo | sed -e "s/[^\"]*\"\([^\"]*\)\"/\1/" |rev | sed -e "s/%[0-9]*\ -\ [0-9]*\/[0-9]*\ -\ \(.*\)/\1/" |rev )"
url="$(xwininfo -id $wid |grep xwininfo | sed -e "s/[^\"]*\"\([^\"]*\)\"/\1/" |rev | sed -e "s/\(%[0-9]*\ -\ [0-9]*\/[0-9]*\)\ -\ .*/\1/" |rev )"
#notify-send "title:$title url:$url" -t 9000
else
title="$(xwininfo -id $wid |grep xwininfo | grep -o "\".*\"" )"
title="${title//\"/}" #удалить кавычки
url=""
fi
cur="command:\"$args\" url:\"$url\""
#Нужно проверить последнюю запись и если изменений нет, то не добавлять.
last="$(cat "$title" |grep "command")"
if [ "$view" = "view" ]; then
notify-send "$(cat "$title")" -t 10000
else
touch "$title"
if [ "$last" == "$cur" ]; then
notify-send "Равно" -t 9000
echo
else
echo "$cur" >> "$title"
fi
gvim --role context_notes -geometry 58x21+792-90 "$title"
fi
#cur="pid:$pid wid:$wid url:$url"
#notify-send "$(lsof -w -p $pid |grep home)" -t 9000
#notify-send "$(ps -q $pid -o comm=)" -t 9000
#Заголовок, win_id, нужно бы имя файла
#Структура -- pdir / имя приложения / заголовок=имя файла, дописать в файл всю информацию и открыть её в gvim, в плавающем окнежен
# disown
+++++++++++++++++++++++
Если прилепить поиск grep+dmenu будет совсем кошаладно
на фарефокс нужен плагин, шоб url в title /выводил
разделитель */;* или типа того. zathura eтоже и страницы правится в config/