2214
Как в XFCE при автозапуске открыть окно программы на определенном рабочем столе и в определенном месте.
У некоторых возникает вопрос Как в XFCE в автозапуске открыть окно программы на определенном рабочем столе?
есть несколько способов как это сделать (я знаю два) очень удобен был способ при котором использовалась спец гуи утилита, с помощью которой можно было настроить правила для каждого окна любой программы. я пишу «было» потому, что основана она на питоне2, который практически выпилен из системы и его использовать не рекомендуют. когда создатели этих утилит очнуться и перепишут код, я добавлю этот обзор. а пока расскажу про несколько костыльный, но рабочий способ достичь желаемого. есть утилита wmctrl, которая позволяет сделать активным необходимый рабочий стол, рабочие столы нумеруются начиная с 0, запись вида wmctrl -s 1 означает сделать активным второй рабочий стол.
в Автозапуск приложений настроек Сеансы и запуск крысы нужно добавить строки подобного плана
записью sleep 10 контролируем последовательность активирования рабочих столов, а так же даем возможность отработать предыдущей команде с учетом времени активации окна. именно в этом и заключается костыльность такого способа, так как для каждого окна, каждой программы это значение придется подбирать индивидуально.
выше я привел примеры строк автозапуска коньков на первом рабочем столе и телеги на втором рабочем столе. первым делается активным второй рабочий стол и запускается телега, потом активируется первый рабочий стол и запускаются коньки.
зы. как расположить окно в нужном месте рабочего стола описано ниже в моем комментарии
есть несколько способов как это сделать (я знаю два) очень удобен был способ при котором использовалась спец гуи утилита, с помощью которой можно было настроить правила для каждого окна любой программы. я пишу «было» потому, что основана она на питоне2, который практически выпилен из системы и его использовать не рекомендуют. когда создатели этих утилит очнуться и перепишут код, я добавлю этот обзор. а пока расскажу про несколько костыльный, но рабочий способ достичь желаемого. есть утилита wmctrl, которая позволяет сделать активным необходимый рабочий стол, рабочие столы нумеруются начиная с 0, запись вида wmctrl -s 1 означает сделать активным второй рабочий стол.
в Автозапуск приложений настроек Сеансы и запуск крысы нужно добавить строки подобного плана
bash -c "sleep 1;wmctrl -s 1 && /opt/Telegram/Telegram -workdir /home/kostya/.local/shar/TelegramDesktop/ -autostart"
bash -c "sleep 10;wmctrl -s 0 && conky -c "/home/kostya/.conky/Conky_left_small_v3/conkysmall-v3-Manjaro/ConkySmall-3" &"
записью sleep 10 контролируем последовательность активирования рабочих столов, а так же даем возможность отработать предыдущей команде с учетом времени активации окна. именно в этом и заключается костыльность такого способа, так как для каждого окна, каждой программы это значение придется подбирать индивидуально.
выше я привел примеры строк автозапуска коньков на первом рабочем столе и телеги на втором рабочем столе. первым делается активным второй рабочий стол и запускается телега, потом активируется первый рабочий стол и запускаются коньки.
зы. как расположить окно в нужном месте рабочего стола описано ниже в моем комментарии
4 комментария
вот этот скрипт уже можно положить в автозапуск крысы.
следует обратить внимание на амперсанд & в конце каждой строки кроме последней, он позволяет перейти к следующей команде не прерывая выполненную.
в последней команде происходит позиционирование окна калькулятора с помощью wmctrl. в качестве координат указывается левый верхний угол окна приложения. краткий ман:
определить координаты можно с помощью команды:
предварительно расположив указатель мыши в нужном месте рабочего стола. эти координаты и подставлены в последней команде в качестве параметров
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
Плюс в том, что как только окно с указанными параметрами появится, к нему будут применены меры. И не важно, будет это автостарт, ручной запуск или вообще пробуждение Ктулху.
Тот, который «2», скриптуется на Lua, что, в принципе, позволяет создавать правила любой степени извращенности.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu