Кнопка действия приостановки Xfce4 продолжает игнорировать мои настройки приостановки.

Вопрос или проблема

Очевидно, кнопка действия «Приостановить» в Панели использует 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" и его нормальное выполнение в терминале не приводит к аналогичному результату при использовании через панель.

Анализ и решение

  1. Проверка пути к вашему сценарию:
    Убедитесь, что ваш скрипт располагается по правильному пути (/usr/local/bin) и имеет необходимые права на выполнение. Для этого выполните команду:

    chmod +x /usr/local/bin/ваш_скрипт
  2. Изменение переменной окружения PATH:
    Убедитесь, что /usr/local/bin добавлен в переменную окружения PATH. Для этого добавьте следующую строку в файл ~/.bashrc или ~/.profile:

    export PATH="/usr/local/bin:$PATH"

    Примените изменения:

    source ~/.bashrc
  3. Создание символической ссылки:
    Xfce4 может не видеть ваш сценарий, если он не называется systemctl. Вы можете создать символическую ссылку, которая будет указывать на ваш скрипт. Выполните следующую команду:

    sudo ln -s /usr/local/bin/ваш_скрипт /usr/bin/systemctl

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

  4. Проверка содержимого скрипта:
    Убедитесь, что ваш скрипт обрабатывает аргументы корректно. В вашем случае вы используете $@, что может возвращать неверные значения. Попробуйте изменить соответствующий фрагмент кода:

    case "$1" in
       suspend)
           canberra-gtk-play -i desktop-suspend
           /usr/bin/xfce4-session-logout -s
           ;;
       *)
           /usr/bin/systemctl "$@"
           ;;
    esac
  5. Проверка системных логов:
    Если проблема сохраняется, проверьте системные логи (journalctl -xe), чтобы выявить возможные ошибки, связанные с действиями systemctl.

  6. Перезагрузка Xfce4 или системы:
    После всех изменений рекомендуется перезагрузить среду рабочего стола Xfce4 или всю систему, чтобы убедиться, что все настройки применились корректно.

Заключение

Следуя указанным шагам, вы должны быть в состоянии заставить кнопку "Suspend" в Xfce4 использовать вашу пользовательскую версию скрипта. Если проблема не решится, рассмотрите возможность участия в обсуждениях и обсуждение вашего случая на форумах пользователей Xfce. Это может помочь найти дополнительные решения или выявить системные ограничения, влияющие на выполнение вашего скрипта.

Оцените материал
Добавить комментарий

Капча загружается...