xdotool, открывать и закрывать Unity Dash при запуске

в Ubuntu 14.04 первый поиск в Unity Dash намного медленнее, чем в следующих.

С помощью xdotool я пытаюсь открыть, а затем закрыть пользовательский интерфейс Unity Dash при запуске Ubuntu.

~ / .config / autostart / unity_dash_update.desktop

[Desktop Entry]
Type=Application
Exec=~/.config/autostart/unity_dash_update.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[it]=Unity Dash Update
Name=Unity Dash Update
Comment[it]=
Comment=

~ / .config / autostart / unity_dash_update.sh

#!/bin/bash
sleep 1
xdotool key Alt+F2
sleep 3
window="$(xdotool getactivewindow)"
xdotool key --window $window "Escape"
exit 0

Если я вручную запускаю сценарий bash, это работает, но во время запуска системы Dash появляется и не исчезает.

Я пробовал с или без сна между выполнением xdotool, но безуспешно.

Что я делаю не так?

update

Как полагает Джейкоб Влейм, параметр Exec был неверным, потому что это должен быть абсолютный путь.

Это была моя ошибка, потому что я попробовал быстрый (слишком быстрый) способ удалить свое имя из кода, который я публиковал.

Извините.

Так что исправленный файл .desktop будет

[Desktop Entry]
Type=Application
Exec=/home/myname/.config/autostart/unity_dash_update.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[it]=Unity Dash Update
Name=Unity Dash Update
Comment[it]=
Comment=

Спасибо Джейкобу за помощь.

0
задан 6 February 2016 в 14:07

2 ответа

dbus на самом деле имеет метод для закрытия меню Dash. Используя qdbus Ваш сценарий мог быть изменен следующим образом:

#!/bin/bash
DISPLAY=:0
sleep 10
xdotool key Alt+F2
sleep 0.25 
qdbus com.canonical.Unity /com/canonical/Unity/Dash \
      com.canonical.Unity.Dash.HideDash
exit 0

Примечание, что, кроме того, я увеличил время сна до 10 секунд, потому что Единица может занять время для запуска. Таким образом, если Единица еще не запустилась, который сделает команды выполнения сценария, но те команды не имели бы никакого эффекта.

1
ответ дан 7 February 2016 в 00:07
  • 1
    Вы не использовали способность, Вы использовали apt, который отличается. И apt всегда предлагают удалить автоматически установленные пакеты, которые больше не требуются – Anwar 29 April 2017 в 00:33

У Вас есть несколько проблем в Вашей установке: каждый определенно заставит его не работать, другой, скорее всего:

1. Самый важный:

В .desktop файл, Вы используете:

Exec=~/.config/autostart/unity_dash_update.sh

но ~ не работает INA a .desktop файл, необходимо использовать полный путь, если сценарий не находится в $PATH (и исполняемый файл), затем просто выполняет его его именем.

2. Скорее всего, необходимо установить повреждение перед выполнениями команды

Теперь это просто работает слишком рано и или повредится или пропустит цель. Это часто имеет место с:

  • сенсорная панель, мышь и клавиатура связанные с (настройками) команды.
  • xrandr команды, особенно когда второй монитор присоединяется
  • Индикаторы

и еще много... Связанные с единицей команды находятся в списке по определению, так как это настольное связанный по своей природе.

Завершение: измените Ваш Exec= строка в:

Exec=/bin/bash -c "sleep 15 && /absolute/path/to/unity_dash_update.sh

Править

Важные примечания

  1. В Вашем вопросе Вы упоминаете, что "Поиск Тире единицы намного медленнее". Однако Ваш xdotool команда не называет Поиск Единицы, но запись команды. Для вызова Поиска Единицы просто (фактически) нажимают, Super достаточен. Затем сделайте сценарий:

    xdotool key Super && sleep 3 && xdotool key Super
    

    Или лучше, не используйте сценарий вообще и добавляйте это для запущения приложений, включая повреждение, которое Вы должны перед ним выполнить:

    /bin/bash -c "sleep 15 && xdotool key Super && sleep 3 && xdotool key Super"
    

    Конечно, можно экспериментировать с sleep 15 время.

  2. Ваш .desktop файл вполне расширяется, в то время как для основного задания как запущение скрипта на запуске:

    [Desktop Entry]
    Name=name
    Exec=command
    Type=Application
    

    достаточно.
    Если Вы используете меньше, меньше может пойти не так, как надо :)

    См. также здесь.

  3. Если Вы настаиваете на том, чтобы использовать отдельный сценарий, не храните его в ~/.config/autostart. Тот каталог конкретно предназначен для запуска (входят в систему) средства запуска.

1
ответ дан 7 February 2016 в 00:07
  • 1
    @Anwar, значение конфигурации находится в /etc/apt/apt.conf.d/ и звонило Apt::, и это работает, таким образом, it' s определенно для способного - добираются. Я делаю способные-cacher конфигурации прокси для способного - входят /etc/apt/apt.conf.d/ также... – Velkan 29 April 2017 в 00:42

Другие вопросы по тегам:

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