Я недавно установил FreeFileSync на свой ПК и сумел заставить RealTimeSync работать отлично. Все, что осталось сделать, это автоматически вызвать скрипт при запуске. Сначала я использовал Cron с параметром @reboot, но это не сработало. Поэтому я решил использовать systemd. Я создал файл службы пользователя с именем sync.service, который я включил и прекрасно работает при вызове вручную с помощью команды systemctl --user start sync_1. Тем не менее, он сталкивается с ошибками при запуске. Кто-нибудь может, пожалуйста? Я не уверен, в чем я ошибаюсь.
[Unit]
After=network.service
[Service]
Environment="DISPLAY=:0"
ExecStart=/home/user/Desktop/sync.sh
[Install]
WantedBy=default.target
Ниже приведена ошибка, с которой я сталкиваюсь при проверке состояния файла systemd после запуска.
sync_1.service Loaded: загружено (/ etc / xdg / systemd / user / sync_1.service; включено; предустановка поставщика: включена) Активна: не выполнена (Результат: код выхода) с Sun 2020-06-14 21:19:19 BST; 47 с. Назад Процесс: 1859 ExecStart = / home / user / Desktop / sync.sh (код = выход, статус = 255 / ИСКЛЮЧЕНИЕ) Основной PID: 1859 (код = выход, статус = 255 / ИСКЛЮЧЕНИЕ)
Хорошо, после много взад-вперед в комментариях, Я считаю, что нашел правильный способ найти настройки:
Это описано в https://wiki.ubuntu.com/Keybindings
Чтобы найти все (системные) привязки клавиш:
позволяет просто добавьте все три упомянутые команды:
gsettings list-recursively org.gnome.desktop.wm.keybindings; gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys; gsettings list-recursively org.gnome.settings-daemon.plugins.power
Чтобы найти специальный ключ, вы должны передать вывод каждой команды через grep -i <то, что вы ищете>
( флаг -i должен игнорировать регистр букв), поэтому, если вы ищете print, он будет выглядеть так:
gsettings list-recursively org.gnome.desktop.wm.keybindings | grep -i print; gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys | grep -i print; gsettings list-recursively org.gnome.settings-daemon.plugins.power | grep -i print
с некоторой магией bash, это явно может выглядеть лучше - но это работает;)
Относительно пользовательских ярлыков
Пользовательские ярлыки
Пользовательские ярлыки хранятся в dconf с использованием «перемещаемой схемы». имя схемы "Org.gnome.settings-daemon.plugins.media-keys.custom-KeyBinding". каждый Пользовательская привязка ключа имеет три свойства: имя, команда и привязка. Из-за перемещаемой схемы труднее использовать «gsettings» с пользовательскими ярлыками. Вот пример получения имени Первая пользовательская привязка клавиш:
gsettings get org.gnome.settings-daemon.plugins.media-keys.custom-keybinding: / org / gnome / settings-daemon / plugins / media-keys / custom-keybindings / custom0 / name
Обратите внимание, что последняя часть custom0 /
относится к первой привязке ключа пользовательского набора.
С помощью следующей команды gsettings list-recursively org.gnome.settings-daemon.plugins.media -keys.custom-keybinding: / org / gnome / settings-daemon / plugins / media-keys / custom-keybindings / custom0 /
вы получите что-то вроде:
org.gnome.settings-daemon.plugins Команда .media-keys.custom-keybinding 'LibreOffice' org.gnome.settings-daemon.plugins.media-keys.custom-keybinding name 'LibreOffice' org.gnome.settings-daemon.plugins.media-keys.custom-keybinding 'l'
Чтобы найти правильную запись, вам может потребоваться увеличить число в custom0
.
Чтобы изменить, например, команду, используйте:
gsettings get org.gnome.settings-daemon. plugins.media-keys.custom-keybinding: / org / gnome / settings-daemon / plugins / media-keys / custom-keybindings / custom0 / command '<ваша команда>'
Это также будет работать для имени
или привязка
.
Чтобы «очистить» пользовательскую привязку ключа, вы можете использовать:
gsettings сбросить-рекурсивно org.gnome.settings-daemon.plugins.media-keys.custom-keybinding: / org / gnome / settings-daemon / plugins / media-keys / custom-keybindings / custom0 /
- это очистило бы записи внутри, но в Gnome-Settings все еще будет существовать как пустая запись, но они «деактивированы», вроде того.
Как это работает с gsettings - второй вопрос: Посмотрите здесь: https://developer.gnome.org/gio/stable/GSettings.html
Спокойной ночи и удачи! ;)
X-сервер не запускается во время запуска системы, но только после того, как вы выполните вход в систему с графическим интерфейсом. Итак, когда /home/user/Desktop/sync.sh
во время запуска системы пытается поговорите с обработкой X-сервера DISPLAY: = 0
, NO-сервера НЕТ, и все очень хорошо взрывается.
Запуск зависимых от X-сервера задач должен выполняться с помощью .desktop
файл в $ HOME / .config / autostart /
. Прочитайте man desktop-file-edit desktop-file-validate
. Найдите примеры с locate .desktop
. Прочтите «Спецификация записи рабочего стола» https://freedesktop.org/wiki/Specifications/desktop-entry-spec/