39 lines
977 B
Python
39 lines
977 B
Python
# Antonio Sarosi
|
|
# https://youtube.com/c/antoniosarosi
|
|
# https://github.com/antoniosarosi/dotfiles
|
|
|
|
# Multimonitor support
|
|
|
|
from libqtile.config import Screen
|
|
from libqtile import bar
|
|
from libqtile.log_utils import logger
|
|
from .widgets import primary_widgets, secondary_widgets
|
|
import subprocess
|
|
|
|
|
|
def status_bar(widgets):
|
|
return bar.Bar(widgets, 24, opacity=0.92)
|
|
|
|
|
|
screens = [Screen(top=status_bar(primary_widgets))]
|
|
|
|
xrandr = "xrandr | grep -w 'connected' | cut -d ' ' -f 2 | wc -l"
|
|
|
|
command = subprocess.run(
|
|
xrandr,
|
|
shell=True,
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.PIPE,
|
|
)
|
|
|
|
if command.returncode != 0:
|
|
error = command.stderr.decode("UTF-8")
|
|
logger.error(f"Failed counting monitors using {xrandr}:\n{error}")
|
|
connected_monitors = 1
|
|
else:
|
|
connected_monitors = int(command.stdout.decode("UTF-8"))
|
|
|
|
if connected_monitors > 1:
|
|
for _ in range(1, connected_monitors):
|
|
screens.append(Screen(top=status_bar(secondary_widgets)))
|