Ist es möglich, das Fenster, in dem Sie Ihr Passwort auf dem Sperrbildschirm eingegeben haben, von der Mitte weg zu verschieben, z. B. am unteren Rand?
quelle
Ist es möglich, das Fenster, in dem Sie Ihr Passwort auf dem Sperrbildschirm eingegeben haben, von der Mitte weg zu verschieben, z. B. am unteren Rand?
gnome-screensaver
und 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-screensaver
Pakets.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.5
ist die relative X- und Y-Dimension Mittelpunktskoordinaten des Verriegelungs Dialogs ( im Bereich von 0=left/top
an 1=right/bottom
).
0.1, 0.9
einstellen, 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.9
nach 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-screensaver
Aktualisierung 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-screensaver
gs-lock-plug.c
hört sich interessant an:
create_page_one (GSLockPlug * Plug) { GtkWidget * align; ... align = gtk_alignment_new (0,5, 0,5, 1, 1);
gtk_alignment_new
Syntax, Änderung 0.1, 0.9
und wieder aufzubauen. Funktioniert nicht :( debug-screensaver.sh
im 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_unlock
ist 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_unlock
hilft nicht direkt, enthält aber eine Reihe von window->priv
Erwähnungen.struct GSWindowPrivate
Anfang von an gs-window-x11.c
. Es enthält GtkWidget *lock_box
undGtkWidget *lock_socket
lock_box
in der Datei; Das dritte Ergebnis ist:
window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);