def init(self): # Fill space if in a horizontal panel. self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred)) layout = QGraphicsLinearLayout(Qt.Horizontal, self.applet) layout.setContentsMargins(0, 0, 0, 0) self.applet.setLayout(layout) self.icon = Plasma.IconWidget(self.applet) self.label = Plasma.Label(self.applet) # TODO: Improve handling of very long window titles. self.label.setWordWrap(False) layout.addItem(self.icon) layout.addItem(self.label) layout.setStretchFactor(self.label, 1) # Reasonable default size -- can be resized later by user. self.resize(500, 30) self.refreshTimer = QTimer() self.refreshTimer.setInterval(I3STATUS_REFRESH_INTERVAL) self.refreshTimer.timeout.connect(self.reloadI3statusText) self.statusIterator = execute(["i3status"]) self.refreshTimer.start() self.windowChangeTimer = QTimer() self.windowChangeTimer.setSingleShot(True) self.windowChangeTimer.setInterval(TITLE_DISPLAY_TIMEOUT) self.windowChangeTimer.timeout.connect(self.hideTitleText) KWindowSystem.self().windowRemoved.connect(self.windowRemoved) KWindowSystem.self().windowChanged.connect(self.windowChanged) KWindowSystem.self().activeWindowChanged.connect( self.activeWindowChanged)