guake的多屏幕问题

我一直使用guake这个下拉式的终端模拟器,好处是能够全屏(不留任何边框,看起来就像console一样),自定义快捷键呼之即来挥之即去,依赖gtk不依赖qt。

最近在使用双屏幕的时候发现了新问题,第一次呼出挂科的时候,当鼠标焦点在哪个屏幕上,以后也只能在这个屏幕上出现,而不会出现在鼠标所在的屏幕。原来使用fedora 17的时候时没有这个问题的。上网搜索了一下,大家对“guake multiple monitor”的抱怨还不少。

最后找到了这个ticket这个patch。这个patch的做法就是先判断主屏幕,然后在主屏幕上显示,但问题是一直在主屏幕上出现。自己对patch进行小修改,每次都找到“current monitor”,这样就好了,patch如下

--- /usr/bin/guake.bak  2013-05-27 14:29:48.589649485 +0800
+++ /usr/bin/guake      2013-05-27 15:00:05.067180502 +0800
@@ -844,7 +844,8 @@
         # get the rectangle just from the first/default monitor in the
         # future we might create a field to select which monitor you
         # wanna use
-        window_rect = screen.get_monitor_geometry(0)
+        current_monitor = screen.get_current_monitor()
+        window_rect = screen.get_monitor_geometry(current_monitor)
         total_width = window_rect.width
         window_rect.height = window_rect.height * height / 100
         window_rect.width = window_rect.width * width / 100

非常简单。这里guake的好处又体现出一个,python写的,改起来方便:)

Leave a Reply