OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
pyvirtualdisplay
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
09/05/2025 09:34:06 AM
rwxr-xr-x
📄
__init__.py
241 bytes
12/18/2024 10:23:15 AM
rw-r--r--
📁
__pycache__
-
02/07/2025 10:01:35 PM
rwxr-xr-x
📄
about.py
20 bytes
12/18/2024 10:23:15 AM
rw-r--r--
📄
abstractdisplay.py
12.29 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
display.py
3.18 KB
12/18/2024 10:23:15 AM
rw-r--r--
📁
examples
-
02/07/2025 10:01:35 PM
rwxr-xr-x
📄
py.typed
0 bytes
12/18/2024 10:23:15 AM
rw-r--r--
📄
smartdisplay.py
2.6 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
util.py
486 bytes
12/18/2024 10:23:15 AM
rw-r--r--
📄
xauth.py
1.14 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
xephyr.py
1.6 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
xvfb.py
1.9 KB
12/18/2024 10:23:15 AM
rw-r--r--
📄
xvnc.py
1.87 KB
12/18/2024 10:23:15 AM
rw-r--r--
Editing: display.py
Close
from typing import Dict, List, Optional, Tuple from pyvirtualdisplay.xephyr import XephyrDisplay from pyvirtualdisplay.xvfb import XvfbDisplay from pyvirtualdisplay.xvnc import XvncDisplay _class_map = {"xvfb": XvfbDisplay, "xvnc": XvncDisplay, "xephyr": XephyrDisplay} class Display(object): """ Proxy class :param color_depth: [8, 16, 24, 32] :param size: screen size (width,height) :param bgcolor: background color ['black' or 'white'] :param visible: True -> Xephyr, False -> Xvfb :param backend: 'xvfb', 'xvnc' or 'xephyr', ignores ``visible`` :param xauth: If a Xauthority file should be created. :param manage_global_env: if True then $DISPLAY is set in os.environ which is not thread-safe. Use False to make it thread-safe. """ def __init__( self, backend: Optional[str] = None, visible: bool = False, size: Tuple[int, int] = (1024, 768), color_depth: int = 24, bgcolor: str = "black", use_xauth: bool = False, # check_startup=False, retries: int = 10, extra_args: List[str] = [], manage_global_env: bool = True, **kwargs ): self._color_depth = color_depth self._size = size self._bgcolor = bgcolor self._visible = visible self._backend = backend if not self._backend: if self._visible: self._backend = "xephyr" else: self._backend = "xvfb" cls = _class_map.get(self._backend) if not cls: raise ValueError("unknown backend: %s" % self._backend) self._obj = cls( size=size, color_depth=color_depth, bgcolor=bgcolor, retries=retries, use_xauth=use_xauth, # check_startup=check_startup, extra_args=extra_args, manage_global_env=manage_global_env, **kwargs ) def start(self) -> "Display": """ start display :rtype: self """ self._obj.start() return self def stop(self) -> "Display": """ stop display :rtype: self """ self._obj.stop() return self def __enter__(self): """used by the :keyword:`with` statement""" self.start() return self def __exit__(self, *exc_info): """used by the :keyword:`with` statement""" self.stop() def is_alive(self) -> bool: return self._obj.is_alive() # @property # def return_code(self): # return self._obj.return_code @property def pid(self) -> int: """ PID (:attr:`subprocess.Popen.pid`) :rtype: int """ return self._obj.pid @property def display(self) -> int: """The new $DISPLAY variable as int. Example 1 if $DISPLAY=':1'""" return self._obj.display @property def new_display_var(self) -> str: """The new $DISPLAY variable like ':1'""" return self._obj.new_display_var def env(self) -> Dict[str, str]: """env() copies global os.environ and adds disp.new_display_var""" return self._obj._env()