Merge branch 'master' of https://github.com/tobi-wan-kenobi/bumblebee-status
This commit is contained in:
commit
ce6133acd4
38 changed files with 82 additions and 9 deletions
54
bumblebee/modules/xrandr.py
Normal file
54
bumblebee/modules/xrandr.py
Normal file
|
@ -0,0 +1,54 @@
|
|||
import bumblebee.module
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
def description():
|
||||
return "Shows all connected screens"
|
||||
|
||||
def parameters():
|
||||
return [
|
||||
]
|
||||
|
||||
class Module(bumblebee.module.Module):
|
||||
def __init__(self, output, config, alias):
|
||||
super(Module, self).__init__(output, config, alias)
|
||||
self._state = "off"
|
||||
|
||||
def widgets(self):
|
||||
process = subprocess.Popen([ "xrandr", "-q" ], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
output, error = process.communicate()
|
||||
|
||||
widgets = []
|
||||
|
||||
# TODO: sort by position
|
||||
for line in output.split("\n"):
|
||||
if not " connected" in line:
|
||||
continue
|
||||
screen = line.split(" ", 2)[0]
|
||||
m = re.search(r'\d+x\d+\+(\d+)\+\d+', line)
|
||||
|
||||
widget = bumblebee.output.Widget(self, screen)
|
||||
if m:
|
||||
self._state = "on"
|
||||
widget.set("pos", int(m.group(1)))
|
||||
else:
|
||||
self._state = "off"
|
||||
widget.set("pos", sys.maxint());
|
||||
|
||||
widgets.append(widget)
|
||||
|
||||
widgets.sort(key=lambda widget : widget.get("pos"))
|
||||
|
||||
return widgets
|
||||
|
||||
def state(self, widget):
|
||||
return self._state
|
||||
|
||||
def warning(self, widget):
|
||||
return False
|
||||
|
||||
def critical(self, widget):
|
||||
return False
|
||||
|
||||
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
|
Loading…
Add table
Add a link
Reference in a new issue