Вопрос или проблема
Очевидно, кнопка действия «Приостановить» в Панели использует systemctl suspend
(код), но продолжает игнорировать мою настроенную команду systemctl suspend
.
Я создал скрипт, который поместил в папку /usr/local/bin
:
#!/bin/bash
case $@ in
suspend)
canberra-gtk-play -i desktop-suspend
/usr/bin/xfce4-session-logout -s
;;
*)
/usr/bin/systemctl $@
;;
esac
Команда работает нормально в Терминале.
Как заставить кнопку действия «Приостановить» использовать мою собственную версию?
.
Ответ или решение
Решение проблемы: Кнопка "Suspend" в Xfce4 игнорирует вашу настройку
Описание проблемы
Проблема заключается в том, что кнопка "Suspend" в панели Xfce4 использует команду systemctl suspend
, игнорируя при этом вашу пользовательскую настройку, реализованную через сценарий, размещенный в директории /usr/local/bin
. Сценарий был создан для добавления звуковой индикации при выполнении действия "Suspend" и его нормальное выполнение в терминале не приводит к аналогичному результату при использовании через панель.
Анализ и решение
-
Проверка пути к вашему сценарию:
Убедитесь, что ваш скрипт располагается по правильному пути (/usr/local/bin
) и имеет необходимые права на выполнение. Для этого выполните команду:chmod +x /usr/local/bin/ваш_скрипт
-
Изменение переменной окружения
PATH
:
Убедитесь, что/usr/local/bin
добавлен в переменную окруженияPATH
. Для этого добавьте следующую строку в файл~/.bashrc
или~/.profile
:export PATH="/usr/local/bin:$PATH"
Примените изменения:
source ~/.bashrc
-
Создание символической ссылки:
Xfce4 может не видеть ваш сценарий, если он не называетсяsystemctl
. Вы можете создать символическую ссылку, которая будет указывать на ваш скрипт. Выполните следующую команду:sudo ln -s /usr/local/bin/ваш_скрипт /usr/bin/systemctl
Эта команда создаст символическую ссылку с именем
systemctl
, которая будет указывать на ваш кастомизированный скрипт. -
Проверка содержимого скрипта:
Убедитесь, что ваш скрипт обрабатывает аргументы корректно. В вашем случае вы используете$@
, что может возвращать неверные значения. Попробуйте изменить соответствующий фрагмент кода:case "$1" in suspend) canberra-gtk-play -i desktop-suspend /usr/bin/xfce4-session-logout -s ;; *) /usr/bin/systemctl "$@" ;; esac
-
Проверка системных логов:
Если проблема сохраняется, проверьте системные логи (journalctl -xe
), чтобы выявить возможные ошибки, связанные с действиямиsystemctl
. -
Перезагрузка Xfce4 или системы:
После всех изменений рекомендуется перезагрузить среду рабочего стола Xfce4 или всю систему, чтобы убедиться, что все настройки применились корректно.
Заключение
Следуя указанным шагам, вы должны быть в состоянии заставить кнопку "Suspend" в Xfce4 использовать вашу пользовательскую версию скрипта. Если проблема не решится, рассмотрите возможность участия в обсуждениях и обсуждение вашего случая на форумах пользователей Xfce. Это может помочь найти дополнительные решения или выявить системные ограничения, влияющие на выполнение вашего скрипта.