2012-05-06 16 views
9

Ich versuche, Guake-Terminal in Unity korrekt arbeiten. Sein Fenster hat eine Breite, die der Bildschirmbreite entspricht. Aber wegen Unity wird das linke Fenster der linken Leiste unsichtbar. Also, ich möchte die richtige Breite für das Fenster einstellen. Es muss kleiner als die tatsächliche Fenstergröße sein. Und der Code muss mit oder ohne Unity korrekt funktionieren. DieseWie bekomme ich die Größe des Bildschirms außer Unity Side Panel in GDK

ist, wie Guake Position und Größe der Fenster bestimmt:

def get_final_window_rect(self): 

    """Gets the final size of the main window of guake. The height 
    is the window_height property, width is window_width and the 
    horizontal alignment is given by window_alignment. 
    """ 
    screen = self.window.get_screen() 
    height = self.client.get_int(KEY('/general/window_height')) 
    width = 100 
    halignment = self.client.get_int(KEY('/general/window_halignment')) 

    # 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) 
    total_width = window_rect.width 
    window_rect.height = window_rect.height * height/100 
    window_rect.width = window_rect.width * width/100 

    if width < total_width: 
     if halignment == ALIGN_CENTER: 
      window_rect.x = (total_width - window_rect.width)/2 
     elif halignment == ALIGN_LEFT: 
      window_rect.x = 0 
     elif halignment == ALIGN_RIGHT: 
      window_rect.x = total_width - window_rect.width 
    window_rect.y = 0 
    window_rect.width = 250 
    return window_rect 

Antwort

1

So möchten Sie Einheit Launcher Breite von Ihrem total_width subtrahieren. Diese Größe kann mit gconf bestimmt werden, um den Wert der Launcher Icons zu erhalten:

self.client.get_int('/apps/compiz-1/plugins/unityshell/screen0/options/icon_size') 

natürlich auch ist in der Tat die Einheit, wenn die laufenden Sitzung wissen wollen:

os.environ.get('DESKTOP_SESSION') == 'ubuntu' 

scheint gut zu sein Lösung. (http://stackoverflow.com/questions/2035657/what-is-my-current-desktop-environment)

+0

Launcher Breite ist größer als 'icon_size' Wert. Jetzt habe ich launcher width = 50 und icon_size = 32. –