ish*_*ish 22
gnome-screensaver
源并重建它我不认为这会很困难
抱歉,它是,因为它是硬编码的,至少对于 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
可提供您所需的左下角对齐方式。当然,这需要从源代码重新编译:(结果:
--- gnome-screensaver-3.4.1.orig/src/gs-window-x11.c 2012-06-04 18:14:11.000000000 -0700 +++ gnome-screensaver-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(); - 窗口->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);
或查看原始的 pastebin
0.1, 0.9
口味。sudo apt-get install build-essential dpkg-dev sudo apt-get build-dep gnome-screensaver mkdir gssrc && cd gssrc apt-get 源 gnome-screensaver wget -Olockbox-left.patch http://pastebin.com/raw.php?i=pqDYRrW1 patch -i lockbox-left.patch cd gnome-screensaver-3.4.1 dpkg-source --commit dpkg-buildpackage -us -uc 光盘.. 须藤 dpkg -i gnome-screensaver_3.4.1-0ubuntu1_{i386|amd64}.deb 光盘.. rm -rf gssrc killall /usr/bin/gnome-screensaver
无需注销或重新启动。要卸载,只需执行一个apt-get --reinstall install gnome-screensaver
. 每当gnome-screensaver
更新时,您都需要重复整个补丁-构建-安装过程,因此请保留它以使生活更轻松,并在您准备好时进行更新。
不,我不是开发人员之一,但我对 C/C++ 有一定的了解。否则,这一切都是谷歌和启发式的。:)
gnome-screensaver
gs-lock-plug.c
听起来很有趣:
create_page_one (GSLockPlug *plug) { GtkWidget *对齐; ... 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):请求解锁屏幕 0 [gs_window_request_unlock] gs-window-x11.c:1522 (19:26:42):请求解锁 [window_dialog_up_changed_cb] gs-manager.c:909 (19:26:42):处理窗口对话框向上更改:向上 [handle_window_dialog_up] gs-manager.c:851 (19:26:42):向上处理对话框
gs-manager.h
,其中包括:
gboolean gs_manager_request_unlock (GSManager *manager);
gs-manager.c
:
gs_manager_request_unlock (GSManager *manager) { GSWindow * 窗口; ... /* 找到包含指针的 GSWindow */ window = find_window_at_pointer (manager); gs_window_request_unlock(窗口); }
gs_window_request_unlock
不是来自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)
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);
归档时间: |
|
查看次数: |
2098 次 |
最近记录: |