Извините, но это потому, что он жестко закодирован, по крайней мере для Unity и Gnome:
Диалог блокировки и блокировка являются частью пакета gnome-screensaver. Положение диалога контролируется с помощью этого бита кода на линии 1212 в строке gnome-screensaver/src/gs-window-x11.c: window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0); 0.5, 0.5 - это относительные координаты центра X и Y размеров диалогового окна блокировки (в диапазоне от 0=left/top к 1=right/bottom). Установка его, например, 0.1, 0.9 дает желаемое выравнивание по левому краю. Конечно, это требует перекомпиляции из источника :( Результат: старый широкоэкранный скриншотили см. Raw pastebin
Диалоговое окно блокировки и блокировка являются частью пакета gnome-screensaver.Нет необходимости в выходе из системы или перезагрузке. Для удаления просто выполните команду apt-get --reinstall install gnome-screensaver. Вам нужно будет повторить весь процесс установки патчей-build-install всякий раз, когда обновляется gnome-screensaver, поэтому держите его, чтобы сделать жизнь проще и обновить, когда вы
Нет, я не один из разработчиков, но у меня есть достойное знание C / C ++. В противном случае это все Google и эвристика.:)
Google говорит вам, что нет очевидного способа ответить на этот вопрос. Он также сообщает вам, что диалог блокировки предоставляется gnome-screensaver. Загрузите источник и проверьте. Хм, gs-lock-plug.c звучит интересно: create_page_one (GSLockPlug *plug) { GtkWidget *align; ... align = gtk_alignment_new (0.5, 0.5, 1, 1); Это может быть так! Найдите синтаксис gtk_alignment_new, перейдите в 0.1, 0.9 и перестройте. Не работает :( Обратите внимание на debug-screensaver.sh в исходной папке, запустите его, а затем заблокируйте и зайдите в систему. Вывод содержит: [find_window_at_pointer] gs-manager.c:668 (19:26:42): Requesting unlock for screen 0 [gs_window_request_unlock] gs-window-x11.c:1522 (19:26:42): Requesting unlock [window_dialog_up_changed_cb] gs-manager.c:909 (19:26:42): Handling window dialog up changed: up [handle_window_dialog_up] gs-manager.c:851 (19:26:42): Handling dialog up Посмотрите на gs-manager.h, который включает в себя: gboolean gs_manager_request_unlock (GSManager *manager); Изучить gs-manager.c: gs_manager_request_unlock (GSManager *manager) { GSWindow * window; ... /* Find the GSWindow that contains the pointer */ window = find_window_at_pointer (manager); gs_window_request_unlock (window); } [ f26] не из gs-manager. grep -i -r -n gs_window_request . показывает: ./gs-manager.c:1353: gs_window_request_unlock (window); ./gs-window.h:92:void gs_window_request_unlock (GSWindow *window); ./test-window.c:66: gs_window_request_unlock (window); ./gs-window-x11.c:1518:gs_window_request_unlock (GSWindow *window) Эвристический переход к строке 1518 в gs-window-x11.c, gs_window_request_unlock не помогает напрямую, но содержит ряд window->priv упоминаний. Посмотрите на struct GSWindowPrivate ] в начале gs-window-x11.c. Он содержит GtkWidget *lock_box и GtkWidget *lock_socket Поиск вхождения файла lock_box в файл, третий результат: window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0); Сделайте немного умственного танца победы, измените, постройте, испытайте, ответить на сообщение, отредактировать ответ .. и выиграть баунти? :)