File: util_x.py

package info (click to toggle)
displaycal-py3 3.9.16-1
  • links: PTS
  • area: main
  • in suites: forky, sid, trixie
  • size: 29,120 kB
  • sloc: python: 115,777; javascript: 11,540; xml: 598; sh: 257; makefile: 173
file content (28 lines) | stat: -rw-r--r-- 896 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# -*- coding: utf-8 -*-

import os
import warnings


def get_display(display_name=None):
    """Parse X display name and return (hostname, display number, screen number)"""
    if not display_name:
        display_name = (os.getenv("DISPLAY", ":0.0")).encode("utf-8")
    display_parts = display_name.split(b":")
    hostname = display_parts[0].decode()
    display, screen = 0, 0
    if len(display_parts) > 1:
        try:
            display_screen = tuple(int(n) for n in display_parts[1].split(b"."))
        except ValueError:
            warnings.warn(
                f"invalid value for display name: '{display_name.decode()}'",
                Warning,
            )
        else:
            display = display_screen[0]
            if len(display_screen) > 1:
                screen = display_screen[1]
            else:
                screen = 0
    return hostname, display, screen