Установить wmctrl
x11-misc/wmctrl
Homepage: http://tomas.styblo.name/wmctrl/
Description: command line tool to interact with an EWMH/NetWM compatible
X Window Manager
Запустите "именованный" терминал
urxvt -name moo
Напишите свой скрипт для минимизации, используя
wmctrl -x -r moo.URxvt -b toggle,hidden
и позвоните, если из файла ключей.
F11 :ExecCommand /home/me/script/toogle-hidden moo
Если вам нужны дополнительные советы, я буду рад помочь.
Кстати, я не думаю, что ваш предыдущий подход плох. Помимо того, как вы находите pid и некоторые предупреждения (некритические), в этом нет ничего плохого.
Обновить:
Отказ от экрана на самом деле не является проблемой, потому что вы можете сделать прокрутку (в режиме копирования, нажав ^ A + [) и потому что X может быть достигнуто путем установки DISPLAY. Некоторые люди заставят вас поверить, что tmux
- следующая лучшая вещь для просветления, но я склонен списывать их, как я делаю с фанатами Zsh ...
Другое дело несостоятельно, потому что вы ищете pid с определенными смещениями строк (head -c) и потому что ключевое слово grep обязательно даст вам неправильный pid (несколько строк) в какой-то момент. например:
$ ps -ef | grep moo
jaroslav 20089 1 0 Jul23 ? 00:00:00 SCREEN -dR moo
jaroslav 26545 26420 0 08:21 pts/10 00:00:01 rxvt-unicode -name moo
jaroslav 27702 26981 0 08:52 pts/12 00:00:00 /usr/bin/perl /usr/bin/cowsay moo
jaroslav 27704 26771 0 08:52 pts/7 00:00:00 grep --colour=auto moo
Это убило бы экран, а не эмулятор терминала. "Небезопасно" предполагать, что ps производит определенное количество строк или что некоторые столбцы имеют заданную ширину (я думаю, что вы предполагали 3 строки с заголовками и 14 символов для первых двух столбцов).
Я бы пошел с чем-то вроде этого вместо:
ps `pidof rxvt-unicode` | grep -m1 -e '-nam[e] moo' | awk '{ print $1 }'
или же
ps ax | awk '$0 ~ /rxvt-unicode.*-nam[e] moo/ {print $1; exit}'
С обоими из них, по крайней мере, я вполне уверен, что pid принадлежит терминалу rxvt, который был запущен с -name moo в качестве двух аргументов. И абсолютно уверен, что на выходе будет максимум один пид. -Nam [e] - старый трюк, чтобы избежать совпадения с ps | grep
Команда grep в выводе.
Все это придирки ... Эмпирические правила есть.
- не допускайте, чтобы выходные данные программы имели ширину x символов или длину y строк.
- длинные регулярные выражения (более строгие) почти всегда лучше коротких.