devilspie обнаруживают, если приложение было запущено с флагом

На основе ответа от Gilles и как найти, рассчитывает страница PDF, я записал

#!/bin/bash

pdforiginal=$1
pdfood=$pdforiginal.odd.pdf
pdfeven=$pdforiginal.even.pdf
pdfout=output_$1
margin=${2:-0}
scale=${3:-1}

pages=$(pdftk $pdforiginal dump_data | grep NumberOfPages | awk '{print $2}')

pagesize=$(pdfinfo $pdforiginal | grep "Page size" | awk '{print $5}')
margin=$(echo $pagesize/2-$margin | bc -l)

pdfjam -o $pdfood --trim "0cm 0cm ${margin}pt 0cm" --scale $scale $pdforiginal
pdfjam -o $pdfeven --trim "${margin}pt 0cm 0cm 0cm" --scale $scale  $pdforiginal

pdftk O=$pdfood E=$pdfeven cat $(i=1; while [ $i -le $pages ]; do echo O$i E$i; i=$(($i+1)); done) output $pdfout

rm $pdfood $pdfeven

Таким образом, я могу работать

./split.sh my.pdf 50 1.2

где 50 для корректируют поле и 1.2 для масштаба.

1
01.10.2013, 00:49
1 ответ

Вы не указали, используете ли Вы устаревшее devilspie или более новое devilspie2. В любом случае, насколько я могу сказать из их руководств, ни у какого из них нет доступа к информации, которую Вы хотите.

Devilspie утилита соответствия окна, она взаимодействует с X-сервером. Переключатели командной строки, которые Вы даете при запуске программы, не передаются X-серверу, так как они только влияют на способ, которым программа запускается и является внутренними коммутаторами той конкретной части программного обеспечения.

Самое близкое, кажется, get_application_name() звоните, но я сомневаюсь, что это включало бы параметры командной строки. Вы смогли делать то, что Вам нужно использование xdotool (см. здесь), и парсинг вывода ps aux или pgrep -al $APP_NAME.

Ссылки:

1
27.01.2020, 23:53

Теги

Похожие вопросы