Учебники (How-To & F.A.Q)
   1932

Как в XFCE при автозапуске открыть окно программы на определенном рабочем столе и в определенном месте.

У некоторых возникает вопрос Как в XFCE в автозапуске открыть окно программы на определенном рабочем столе?
есть несколько способов как это сделать (я знаю два) очень удобен был способ при котором использовалась спец гуи утилита, с помощью которой можно было настроить правила для каждого окна любой программы. я пишу «было» потому, что основана она на питоне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 контролируем последовательность активирования рабочих столов, а так же даем возможность отработать предыдущей команде с учетом времени активации окна. именно в этом и заключается костыльность такого способа, так как для каждого окна, каждой программы это значение придется подбирать индивидуально.
выше я привел примеры строк автозапуска коньков на первом рабочем столе и телеги на втором рабочем столе. первым делается активным второй рабочий стол и запускается телега, потом активируется первый рабочий стол и запускаются коньки.
Учебники (How-To & F.A.Q): Как в XFCE в автозапуске открыть окно программы на определенном рабочем столе.
зы. как расположить окно в нужном месте рабочего стола описано ниже в моем комментарии

4 комментария

avatar
годнота! как раз я тож с телегой на 3 столе подумывал про автозапуск, а тут готовое решение прямо до последнего параметра))
0
avatar
теперь мне захотелось не только открывать приложение на определенном рабочем столе, но и в определенном месте рабочего стола. так как таких приложений стало больше, то я решил, что эффективнее создать скрипт, в котором будут решаться все эти задачи, а не втыкать каждый запуск в автозапуск xfce. вот пример такого скрипта:
#!/bin/bash
sleep 5; wmctrl -s 1 && conky -c "/home/kostya/.conky/Conky_left_small_v3/conkysmall-v3-Manjaro/ConkySmall-3" &
sleep 5; wmctrl -s 0 && /opt/Telegram/Telegram -workdir /home/kostya/.local/share/TelegramDesktop/ &
sleep 1; wmctrl -s 0 && bash -c "/usr/lib/firefox/firefox " &
sleep 5; wmctrl -s 0 && (bash -c "/usr/bin/galculator " &); sleep 1 ; wmctrl -r galculator -e '0,1008,674,-1,-1'

вот этот скрипт уже можно положить в автозапуск крысы.
следует обратить внимание на амперсанд & в конце каждой строки кроме последней, он позволяет перейти к следующей команде не прерывая выполненную.
в последней команде происходит позиционирование окна калькулятора с помощью wmctrl. в качестве координат указывается левый верхний угол окна приложения. краткий ман:

wmctrl -r <Имя_окна> -e G,X,Y,W,H

Где:

    G - Притяжение окна к краям экрана (0 - как настроено в системе)
    X - Координаты окна по оси X (от левого края окна) [-1 -не менять]
    Y - Координаты окна по оси Y (от верхнего края окна) [-1 -не менять]
    W - Высота окна в пикселах [-1 -не менять]
    H - Ширина окна в пикселах [-1 -не менять]


определить координаты можно с помощью команды:

xdotool getmouselocation


предварительно расположив указатель мыши в нужном месте рабочего стола. эти координаты и подставлены в последней команде в качестве параметров
Последний раз редактировалось
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
0
avatar
А как же devilspie(2)? Написано на C, работает на основе правил. Прекрасно чувствует себя в роли демона.
Плюс в том, что как только окно с указанными параметрами появится, к нему будут применены меры. И не важно, будет это автостарт, ручной запуск или вообще пробуждение Ктулху.
Тот, который «2», скриптуется на Lua, что, в принципе, позволяет создавать правила любой степени извращенности.
Последний раз редактировалось
0
avatar
пока мне он не нужен. те задачи, которые я описал, решаются без лишних сущностей, так как они очень просты
?
Всегда есть быстрое простое неправильное решение.
быстрые простые правильные (иногда) ответы здесь t.me/ManjaroRu
+1
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.