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-screensavergs-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_socketlock_box文件中的出现;第三个结果是:
window->priv->lock_box = gtk_alignment_new (0.5, 0.5, 0, 0);| 归档时间: |
|
| 查看次数: |
2098 次 |
| 最近记录: |