Gio.Settings поведение меняется с окружающей средойPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Gio.Settings поведение меняется с окружающей средой

Сообщение Anonymous »

У меня есть проект Cmake, в котором я хочу выполнить сценарий Python как часть цели установки, чтобы автоматически установить мировой сочетание клавиш для цели, которая установлена. < /p>
Сам скрипт Работает при запуске с терминала, но когда я добавляю его в цель установки, как < /p>

Код: Выделить всё

install(
CODE
"execute_process(
COMMAND  /usr/bin/python3 \"${CMAKE_SOURCE_DIR}/tools/enable-shutdown-menu-keybind.py\" --command \"${CMAKE_INSTALL_FULL_BINDIR}/shutdown_menu\"
RESULT_VARIABLE _ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT
)
if (_ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT GREATER 0)
message(FATAL_ERROR \"Enabling shutdown-menu keybinds failed with exit code \${_ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT}\")
endif()"
CONFIGURATIONS Release RelWithDebInfo MinSizeRel
)
< /code>
Внезапно терпит неудачу.
, в частности, он, кажется, не удается при получении списка пользовательских связей с ключами от org.gnome.settings-demon.plugins.media-keys < /code> Как вы бы с GSETTINGS получили org.gnome.settings-demon.plugins.media-keys Custom-KeyBindings 
.
i Не думайте, что это проблема, возникающая в результате запуска Cmake с повышенными правами, чтобы установить программу в качестве запуска сценария из терминала с использованием Sudo Works, как и ожидалось. До сих пор:
  • Изменение команды на/usr/bin/bash -c \ "/usr/bin/python3 '$ {Cmake_source_dir} /tools/enable-shutdown-menu-keybind.py'-command '$ {cmake_install_full_bindir}/shutdown_menu' \ "
    Gnome_shell_session_mode = '$ env {gnome_shell_session_mode}' перед командой (да, я позаботился о том, чтобы это имел желаемый эффект)
Я предполагаю, что У него есть что -то, что с окружающей средой (именно поэтому я попробовал второй момент), но я не уверен, чего мне не хватает.
Редактировать: < /p>
Я просто подумал о чем -то еще, что мог бы протестировать. Я временно установил cmake_install_prefix в каталог, принадлежащий мной, и запустил команду установки Cmake без повышенных прав. К моему удивлению, сценарий префекционно префектно хорошо. В случае, если это важно, я поднимаю Cmake, используя Pkexec. Он работал, когда я запустил скрипт, используя конфигурацию запуска VSCODE с помощью опции «sudo»: true tho.
edit 3:
< P> Я расширил вызов функции установки на следующее: < /p>

install(
CODE
"if (DEFINED ENV{PKEXEC_UID})
set(UID \$ENV{PKEXEC_UID})
elseif(DEFINED ENV{SUDO_UID})
set(UID \$ENV{SUDO_UID})
else()
message(FATAL_ERROR \"Unable to determine callee UID.\")
endif()
execute_process(
COMMAND sudo -H -u \"#\${UID}\" env DISPLAY=$ENV{DISPLAY} /usr/bin/python3 \"${CMAKE_SOURCE_DIR}/tools/enable-shutdown-menu-keybind.py\" --command \"${CMAKE_INSTALL_FULL_BINDIR}/shutdown_menu\"
RESULT_VARIABLE _ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT
)
if (_ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT GREATER 0)
message(FATAL_ERROR \"Enabling shutdown-menu keybinds failed with exit code \${_ENABLE_SHUTDOWN_MENU_KEYBIND_RESULT}\")
endif()"
)
< /code>
, что приводит к выполнению программы и отчетности, чтобы установить значения. Но изменения, кажется, не применяются, так как связки с ключами не отображаются ни в DConf, гном-комманде-центре, ни GSETTINGS.


Подробнее здесь: https://stackoverflow.com/questions/794 ... nvironment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»