Antworten:
gnome-screensaverund Wiederherstellen der QuelleIch erwarte nicht, dass dies sehr schwierig wird
Tut mir leid, aber es ist , weil es fest codiert ist, zumindest für Unity und Gnome:
gnome-screensaverPakets.Die Position des Dialogs wird über dieses Codebit in / um Zeile 1212 in gesteuert gnome-screensaver/src/gs-window-x11.c:
window-> priv-> lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);
Das 0.5, 0.5ist die relative X- und Y-Dimension Mittelpunktskoordinaten des Verriegelungs Dialogs ( im Bereich von 0=left/topan 1=right/bottom).
0.1, 0.9einstellen, erhalten Sie die gewünschte Ausrichtung unten links. Dies erfordert natürlich eine Neukompilierung aus der Quelle :(Ergebnis:
--- gnome-screenaver-3.4.1.orig / src / gs-window-x11.c 2012-06-04 18: 14: 11.000000000 -0700
+++ gnome-screenaver-3.4.1 / src / gs-window-x11.c 2012-06-04 18: 14: 36.972433823 -0700
@@ -1209,7 +1209,7 @@
guint32 id)
{
window-> priv-> lock_socket = gtk_socket_new ();
- window-> priv-> lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);
+ window-> priv-> lock_box = gtk_alignment_new (0.1, 0.9, 0, 0);
gtk_widget_show (window-> priv-> lock_box);
gtk_box_pack_start (GTK_BOX (window-> priv-> vbox), window-> priv-> lock_box, TRUE, TRUE, 0);
oder siehe roher Pastebin
0.1, 0.9nach Geschmack an.sudo apt-get install build-essential dpkg-dev
sudo apt-get build-dep gnome-bildschirmschoner
mkdir gssrc && cd gssrc
apt-get source gnome-bildschirmschoner
wget -Olockbox-left.patch http://pastebin.com/raw.php?i=pqDYRrW1
patch -i lockbox-left.patch
cd gnome-screenaver-3.4.1
dpkg-source --commit
dpkg-buildpackage -us -uc
cd ..
sudo dpkg -i gnome-screenaver_3.4.1-0ubuntu1_ {i386 | amd64} .deb
cd ..
rm -rf gssrc
killall / usr / bin / gnome-Bildschirmschoner
Kein Abmelden oder Neustart erforderlich. Zum Deinstallieren einfach eine apt-get --reinstall install gnome-screensaver. Sie müssen den gesamten Patch-Build-Installationsprozess bei jeder gnome-screensaverAktualisierung wiederholen. Halten Sie ihn also gedrückt, um das Leben zu vereinfachen, und aktualisieren Sie ihn, wenn Sie bereit sind.
Nein, ich bin nicht einer der Entwickler, aber ich habe gute Kenntnisse in C / C ++. Ansonsten ist alles Google und Heuristik. :) :)
gnome-screensavergs-lock-plug.chört sich interessant an:
create_page_one (GSLockPlug * Plug)
{
GtkWidget * align;
...
align = gtk_alignment_new (0,5, 0,5, 1, 1);
gtk_alignment_newSyntax, Änderung 0.1, 0.9und wieder aufzubauen. Funktioniert nicht :( debug-screensaver.shim Quellordner, führen Sie ihn aus, sperren Sie ihn und melden Sie sich an. Die Ausgabe enthält:
[find_window_at_pointer] gs-manager.c: 668 (19:26:42): Freischaltung für Bildschirm 0 anfordern [gs_window_request_unlock] gs-window-x11.c: 1522 (19:26:42): Freischaltung anfordern [window_dialog_up_changed_cb] gs-manager.c: 909 (19:26:42): Die Behandlung des Fensterdialogs wurde geändert: up [handle_window_dialog_up] gs-manager.c: 851 (19:26:42): Dialog wird bearbeitet
gs-manager.h, was beinhaltet:
gboolean gs_manager_request_unlock (GSManager *manager);gs-manager.c:
gs_manager_request_unlock (GSManager * Manager)
{
GSWindow * -Fenster;
...
/ * Finde das GSWindow, das den Zeiger enthält * /
window = find_window_at_pointer (Manager);
gs_window_request_unlock (Fenster);
}}
gs_window_request_unlockist nicht von gs-manager. grep -i -r -n gs_window_request .enthüllt:
./gs-manager.c:1353: gs_window_request_unlock (Fenster); ./gs-window.h:92:void gs_window_request_unlock (GSWindow * -Fenster); ./test-window.c:66: gs_window_request_unlock (Fenster); ./gs-window-x11.c:1518:gs_window_request_unlock (GSWindow * -Fenster)
gs-window-x11.c; gs_window_request_unlockhilft nicht direkt, enthält aber eine Reihe von window->privErwähnungen.struct GSWindowPrivateAnfang von an gs-window-x11.c. Es enthält GtkWidget *lock_boxundGtkWidget *lock_socketlock_boxin der Datei; Das dritte Ergebnis ist:
window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);