Closed WBP20 closed 6 months ago
Hi @WBP20,
You need to install X11 server on your Linux host.
https://wiki.archlinux.org/title/xorg https://archlinux.org/packages/extra/x86_64/xorg-xhost/
Did you have warning or error messages when creating your container ?
@QU35T-code is it mandatory to install X11 server ? Xwayland could not be sufficient ?
@Dramelac when creating new container (test), i have this error message :
[D] Adding xhost ACL to local:exegol-test
Authorization required, but no authorization protocol specified
xhost: unable to open display ":0"
Oh yes, I had forgotten that. Wayland should be supported by exegol, @Dramelac will give you more information !
Hello @WBP20
It seems like your X11 server need authentication (through xauth
) which isn't supported by Exegol for the moment unfortunately.
Regarding wayland, it should work but i can see it hasn't been connected to your container... Can you create a new container in debug mode (-vvv
) and share the full output ?
Thank you !
Hello @Dramelac , sure
[?] Select an image by its name (light): light
[V] Config: Enabling display sharing
[V] Config: Enabling host timezones
[V] File /etc/timezone is missing on host, cannot create volume for
this.
[V] Volume was successfully added for /etc/localtime
[V] Config: Enabling my-resources volume
[V] Updating the permissions of /root/.exegol/my-resources (and
sub-folders) to allow file sharing between the container and the
host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/my-resources
[D] Git submodule repository detected
[D] Loading git at /opt/Exegol/exegol-resources
[D] Repo path: /opt/Exegol/.git/modules/exegol-resources
[D] Git repository successfully loaded
[V] Config: Enabling exegol resources volume
⭐ Container summary
┌──────────────────┬───────────────────────────────────────────────┐
│ Name │ newContainer │
│ Image │ light - v.3.1.3 (Up to date) (arm64) │
├──────────────────┼───────────────────────────────────────────────┤
│ Credentials │ root : dsdsdsdsdsdsdsdsdsdsdsds │
│ Remote Desktop │ Off 🪓 │
│ Console GUI │ On ✔ (X11) │
│ Network │ host │
│ Timezone │ On ✔ │
│ Exegol resources │ On ✔ (/opt/resources) │
│ My resources │ On ✔ (/opt/my-resources) │
│ Shell logging │ Off 🪓 │
│ Privileged │ Off ✔ │
│ Workspace │ Dedicated (/workspace) │
│ Envs │ DISPLAY=:0 │
│ │ _JAVA_AWT_WM_NONREPARENTING=1 │
│ │ QT_X11_NO_MITSHM=1 │
│ Volumes │ (RO) │
│ │ /opt/Exegol/exegol/utils/imgsync/spawn.sh ➡ │
│ │ /.exegol/spawn.sh │
│ │ (RW) /tmp/.X11-unix ➡ /tmp/.X11-unix │
│ │ (RO) /etc/localtime ➡ /etc/localtime │
│ │ (RW) /root/.exegol/my-resources ➡ │
│ │ /opt/my-resources │
│ │ (RW) /opt/Exegol/exegol-resources ➡ │
│ │ /opt/resources │
└──────────────────┴───────────────────────────────────────────────┘
[*] Creating new exegol container
[V] Updating the permissions of
/root/.exegol/workspaces/newContainer (and sub-folders) to allow
file sharing between the container and the host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/workspaces/newContainer
[D] newContainer - light
Privileged: False
Capabilities: []
Sysctls: {}
X: True
TTY: True
Network host: host
Ports: {}
Share timezone: True
Common resources: True
Envs (3): {'DISPLAY': ':0', '_JAVA_AWT_WM_NONREPARENTING': '1',
'QT_X11_NO_MITSHM': '1'}
Labels (0): {}
Shares (6): [{'Target': '/.exegol/spawn.sh', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Type': 'bind',
'ReadOnly': True}, {'Target': '/tmp/.X11-unix', 'Source':
'/tmp/.X11-unix', 'Type': 'bind', 'ReadOnly': False}, {'Target':
'/etc/localtime', 'Source': '/etc/localtime', 'Type': 'bind',
'ReadOnly': True}, {'Target': '/opt/my-resources', 'Source':
'/root/.exegol/my-resources', 'Type': 'bind', 'ReadOnly': False},
{'Target': '/opt/resources', 'Source':
'/opt/Exegol/exegol-resources', 'Type': 'bind', 'ReadOnly': False},
{'Target': '/workspace', 'Source':
'/root/.exegol/workspaces/newContainer', 'Type': 'bind', 'ReadOnly':
False}]
Devices (0): []
VPN: N/A
[D] Entrypoint: ['/bin/bash', '/.exegol/entrypoint.sh']
[D] Cmd: ['load_setups', 'endless']
[+] Exegol container successfully created !
[D] Loading container: exegol-newContainer
[D] └── Parsing envs : DISPLAY=:0
[D] └── Parsing envs : _JAVA_AWT_WM_NONREPARENTING=1
[D] └── Parsing envs : QT_X11_NO_MITSHM=1
[D] └── Parsing envs : EXEGOL_RANDOMIZE_SERVICE_PORTS=true
[D] └── Parsing envs :
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] └── Parsing label : org.exegol.app
[D] └── Parsing label : org.exegol.build_date
[D] └── Parsing label : org.exegol.metadata.creation_date
[D] └── Parsing label : org.exegol.metadata.passwd
[D] └── Parsing label : org.exegol.src_repository
[D] └── Parsing label : org.exegol.tag
[D] └── Parsing label : org.exegol.version
[D] └── Capabilities : []
[D] └── Load devices : []
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/workspaces/newContainer', 'Destination':
'/workspace', 'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Loading workspace volume source :
/root/.exegol/workspaces/newContainer
[D] └── Private workspace detected
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Destination':
'/.exegol/spawn.sh', 'Mode': '', 'RW': False, 'Propagation':
'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/tmp/.X11-unix',
'Destination': '/tmp/.X11-unix', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/etc/localtime',
'Destination': '/etc/localtime', 'Mode': '', 'RW': False,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/my-resources', 'Destination': '/opt/my-resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol-resources', 'Destination': '/opt/resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] Adding xhost ACL to local:exegol-newContainer
Authorization required, but no authorization protocol specified
xhost: unable to open display ":0"
[D] Entrypoint script path:
/opt/Exegol/exegol/utils/imgsync/entrypoint.sh
[V] Starting exegol
[V] Installing my-resources custom setup ...
[V] Compressing my-resources logs
[V] My-resources loaded
[D] Updating the root password inside the container
[*] Location of the exegol workspace on the host :
/root/.exegol/workspaces/newContainer
[+] Opening shell in Exegol 'newContainer'
[D] Opening shell with: docker exec -e EXEGOL_START_SHELL=zsh -ti
94e9a1a61ffe5dae6270[?] Select an image by its name (light): light
[V] Config: Enabling display sharing
[V] Config: Enabling host timezones
[V] File /etc/timezone is missing on host, cannot create volume for
this.
[V] Volume was successfully added for /etc/localtime
[V] Config: Enabling my-resources volume
[V] Updating the permissions of /root/.exegol/my-resources (and
sub-folders) to allow file sharing between the container and the
host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/my-resources
[D] Git submodule repository detected
[D] Loading git at /opt/Exegol/exegol-resources
[D] Repo path: /opt/Exegol/.git/modules/exegol-resources
[D] Git repository successfully loaded
[V] Config: Enabling exegol resources volume
⭐ Container summary
┌──────────────────┬───────────────────────────────────────────────┐
│ Name │ newContainer │
│ Image │ light - v.3.1.3 (Up to date) (arm64) │
├──────────────────┼───────────────────────────────────────────────┤
│ Credentials │ root : PJlDHhyv6YmD4RFt5AUOR6xuAZnsH2 │
│ Remote Desktop │ Off 🪓 │
│ Console GUI │ On ✔ (X11) │
│ Network │ host │
│ Timezone │ On ✔ │
│ Exegol resources │ On ✔ (/opt/resources) │
│ My resources │ On ✔ (/opt/my-resources) │
│ Shell logging │ Off 🪓 │
│ Privileged │ Off ✔ │
│ Workspace │ Dedicated (/workspace) │
│ Envs │ DISPLAY=:0 │
│ │ _JAVA_AWT_WM_NONREPARENTING=1 │
│ │ QT_X11_NO_MITSHM=1 │
│ Volumes │ (RO) │
│ │ /opt/Exegol/exegol/utils/imgsync/spawn.sh ➡ │
│ │ /.exegol/spawn.sh │
│ │ (RW) /tmp/.X11-unix ➡ /tmp/.X11-unix │
│ │ (RO) /etc/localtime ➡ /etc/localtime │
│ │ (RW) /root/.exegol/my-resources ➡ │
│ │ /opt/my-resources │
│ │ (RW) /opt/Exegol/exegol-resources ➡ │
│ │ /opt/resources │
└──────────────────┴───────────────────────────────────────────────┘
[*] Creating new exegol container
[V] Updating the permissions of
/root/.exegol/workspaces/newContainer (and sub-folders) to allow
file sharing between the container and the host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/workspaces/newContainer
[D] newContainer - light
Privileged: False
Capabilities: []
Sysctls: {}
X: True
TTY: True
Network host: host
Ports: {}
Share timezone: True
Common resources: True
Envs (3): {'DISPLAY': ':0', '_JAVA_AWT_WM_NONREPARENTING': '1',
'QT_X11_NO_MITSHM': '1'}
Labels (0): {}
Shares (6): [{'Target': '/.exegol/spawn.sh', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Type': 'bind',
'ReadOnly': True}, {'Target': '/tmp/.X11-unix', 'Source':
'/tmp/.X11-unix', 'Type': 'bind', 'ReadOnly': False}, {'Target':
'/etc/localtime', 'Source': '/etc/localtime', 'Type': 'bind',
'ReadOnly': True}, {'Target': '/opt/my-resources', 'Source':
'/root/.exegol/my-resources', 'Type': 'bind', 'ReadOnly': False},
{'Target': '/opt/resources', 'Source':
'/opt/Exegol/exegol-resources', 'Type': 'bind', 'ReadOnly': False},
{'Target': '/workspace', 'Source':
'/root/.exegol/workspaces/newContainer', 'Type': 'bind', 'ReadOnly':
False}]
Devices (0): []
VPN: N/A
[D] Entrypoint: ['/bin/bash', '/.exegol/entrypoint.sh']
[D] Cmd: ['load_setups', 'endless']
[+] Exegol container successfully created !
[D] Loading container: exegol-newContainer
[D] └── Parsing envs : DISPLAY=:0
[D] └── Parsing envs : _JAVA_AWT_WM_NONREPARENTING=1
[D] └── Parsing envs : QT_X11_NO_MITSHM=1
[D] └── Parsing envs : EXEGOL_RANDOMIZE_SERVICE_PORTS=true
[D] └── Parsing envs :
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] └── Parsing label : org.exegol.app
[D] └── Parsing label : org.exegol.build_date
[D] └── Parsing label : org.exegol.metadata.creation_date
[D] └── Parsing label : org.exegol.metadata.passwd
[D] └── Parsing label : org.exegol.src_repository
[D] └── Parsing label : org.exegol.tag
[D] └── Parsing label : org.exegol.version
[D] └── Capabilities : []
[D] └── Load devices : []
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/workspaces/newContainer', 'Destination':
'/workspace', 'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Loading workspace volume source :
/root/.exegol/workspaces/newContainer
[D] └── Private workspace detected
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Destination':
'/.exegol/spawn.sh', 'Mode': '', 'RW': False, 'Propagation':
'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/tmp/.X11-unix',
'Destination': '/tmp/.X11-unix', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/etc/localtime',
'Destination': '/etc/localtime', 'Mode': '', 'RW': False,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/my-resources', 'Destination': '/opt/my-resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol-resources', 'Destination': '/opt/resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] Adding xhost ACL to local:exegol-newContainer
Authorization required, but no authorization protocol specified
xhost: unable to open display ":0"
[D] Entrypoint script path:
/opt/Exegol/exegol/utils/imgsync/entrypoint.sh
[V] Starting exegol
[V] Installing my-resources custom setup ...
[V] Compressing my-resources logs
[V] My-resources loaded
[D] Updating the root password inside the container
[*] Location of the exegol workspace on the host :
/root/.exegol/workspaces/newContainer
[+] Opening shell in Exegol 'newContainer'
[D] Opening shell with: docker exec -e EXEGOL_START_SHELL=zsh -ti
94e9a1a61ffe5dae62706a12a50bf9dc20bb4ce99b329d4edb1b13366d3ce5d56a12a5x329d4edb1bv13366d3ce5d5
/.exegol/spawn.sh
[Apr 22, 2024 - 19:39:18 (CEST)] exegol-newContainer /workspace #
Ok i think i know. Because you use sudo
to run exegol, wayland env var are missing.
Try to create a new container with sudo -E exegol start newcontainer light
and wayland should work.
Hi @Dramelac, I still have the error message, even through wayland env variables seem be forwared.
[?] Select an image by its name (light): light
[V] Config: Enabling display sharing
[V] Config: Enabling host timezones
[V] File /etc/timezone is missing on host, cannot create volume for
this.
[V] Volume was successfully added for /etc/localtime
[V] Config: Enabling my-resources volume
[V] Updating the permissions of /root/.exegol/my-resources (and
sub-folders) to allow file sharing between the container and the
host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/my-resources
[D] Git submodule repository detected
[D] Loading git at /opt/Exegol/exegol-resources
[D] Repo path: /opt/Exegol/.git/modules/exegol-resources
[D] Git repository successfully loaded
[V] Config: Enabling exegol resources volume
⭐ Container summary
┌──────────────────┬───────────────────────────────────────────────┐
│ Name │ newcontainer │
│ Image │ light - v.3.1.3 (Up to date) (arm64) │
├──────────────────┼───────────────────────────────────────────────┤
│ Credentials │ root : sdsdsdsdsddsdsddssdssdsdsdddsdds │
│ Remote Desktop │ Off 🪓 │
│ Console GUI │ On ✔ (X11 + Wayland) │
│ Network │ host │
│ Timezone │ On ✔ │
│ Exegol resources │ On ✔ (/opt/resources) │
│ My resources │ On ✔ (/opt/my-resources) │
│ Shell logging │ Off 🪓 │
│ Privileged │ Off ✔ │
│ Workspace │ Dedicated (/workspace) │
│ Envs │ DISPLAY=:0 │
│ │ XDG_SESSION_TYPE=wayland │
│ │ XDG_RUNTIME_DIR=/tmp │
│ │ WAYLAND_DISPLAY=wayland-1 │
│ │ _JAVA_AWT_WM_NONREPARENTING=1 │
│ │ QT_X11_NO_MITSHM=1 │
│ Volumes │ (RO) │
│ │ /opt/Exegol/exegol/utils/imgsync/spawn.sh ➡ │
│ │ /.exegol/spawn.sh │
│ │ (RW) /tmp/.X11-unix ➡ /tmp/.X11-unix │
│ │ (RW) /run/user/1000/wayland-1 ➡ │
│ │ /tmp/wayland-1 │
│ │ (RO) /etc/localtime ➡ /etc/localtime │
│ │ (RW) /root/.exegol/my-resources ➡ │
│ │ /opt/my-resources │
│ │ (RW) /opt/Exegol/exegol-resources ➡ │
│ │ /opt/resources │
└──────────────────┴───────────────────────────────────────────────┘
[*] Creating new exegol container
[V] Updating the permissions of
/root/.exegol/workspaces/newcontainer (and sub-folders) to allow
file sharing between the container and the host user
[D] Adding setgid permission recursively on directories from
/root/.exegol/workspaces/newcontainer
[D] newcontainer - light
Privileged: False
Capabilities: []
Sysctls: {}
X: True
TTY: True
Network host: host
Ports: {}
Share timezone: True
Common resources: True
Envs (6): {'DISPLAY': ':0', 'XDG_SESSION_TYPE': 'wayland',
'XDG_RUNTIME_DIR': '/tmp', 'WAYLAND_DISPLAY': 'wayland-1',
'_JAVA_AWT_WM_NONREPARENTING': '1', 'QT_X11_NO_MITSHM': '1'}
Labels (0): {}
Shares (7): [{'Target': '/.exegol/spawn.sh', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Type': 'bind',
'ReadOnly': True}, {'Target': '/tmp/.X11-unix', 'Source':
'/tmp/.X11-unix', 'Type': 'bind', 'ReadOnly': False}, {'Target':
'/tmp/wayland-1', 'Source': '/run/user/1000/wayland-1', 'Type':
'bind', 'ReadOnly': False}, {'Target': '/etc/localtime', 'Source':
'/etc/localtime', 'Type': 'bind', 'ReadOnly': True}, {'Target':
'/opt/my-resources', 'Source': '/root/.exegol/my-resources', 'Type':
'bind', 'ReadOnly': False}, {'Target': '/opt/resources', 'Source':
'/opt/Exegol/exegol-resources', 'Type': 'bind', 'ReadOnly': False},
{'Target': '/workspace', 'Source':
'/root/.exegol/workspaces/newcontainer', 'Type': 'bind', 'ReadOnly':
False}]
Devices (0): []
VPN: N/A
[D] Entrypoint: ['/bin/bash', '/.exegol/entrypoint.sh']
[D] Cmd: ['load_setups', 'endless']
[+] Exegol container successfully created !
[D] Loading container: exegol-newcontainer
[D] └── Parsing envs : DISPLAY=:0
[D] └── Parsing envs : XDG_SESSION_TYPE=wayland
[D] └── Parsing envs : XDG_RUNTIME_DIR=/tmp
[D] └── Parsing envs : WAYLAND_DISPLAY=wayland-1
[D] └── Parsing envs : _JAVA_AWT_WM_NONREPARENTING=1
[D] └── Parsing envs : QT_X11_NO_MITSHM=1
[D] └── Parsing envs : EXEGOL_RANDOMIZE_SERVICE_PORTS=true
[D] └── Parsing envs :
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[D] └── Parsing label : org.exegol.app
[D] └── Parsing label : org.exegol.build_date
[D] └── Parsing label : org.exegol.metadata.creation_date
[D] └── Parsing label : org.exegol.metadata.passwd
[D] └── Parsing label : org.exegol.src_repository
[D] └── Parsing label : org.exegol.tag
[D] └── Parsing label : org.exegol.version
[D] └── Capabilities : []
[D] └── Load devices : []
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/tmp/.X11-unix',
'Destination': '/tmp/.X11-unix', 'Mode': '', 'RW': True,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/run/user/1000/wayland-1', 'Destination': '/tmp/wayland-1', 'Mode':
'', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source': '/etc/localtime',
'Destination': '/etc/localtime', 'Mode': '', 'RW': False,
'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/my-resources', 'Destination': '/opt/my-resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol-resources', 'Destination': '/opt/resources',
'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/root/.exegol/workspaces/newcontainer', 'Destination':
'/workspace', 'Mode': '', 'RW': True, 'Propagation': 'rprivate'}
[D] └── Loading workspace volume source :
/root/.exegol/workspaces/newcontainer
[D] └── Private workspace detected
[D] └── Parsing mount : {'Type': 'bind', 'Source':
'/opt/Exegol/exegol/utils/imgsync/spawn.sh', 'Destination':
'/.exegol/spawn.sh', 'Mode': '', 'RW': False, 'Propagation':
'rprivate'}
[D] Adding xhost ACL to local:exegol-newcontainer
Authorization required, but no authorization protocol specified
xhost: unable to open display ":0"
[D] Entrypoint script path:
/opt/Exegol/exegol/utils/imgsync/entrypoint.sh
[V] Starting exegol
[V] Installing my-resources custom setup ...
[V] Compressing my-resources logs
[V] My-resources loaded
[D] Updating the root password inside the container
[*] Location of the exegol workspace on the host :
/root/.exegol/workspaces/newcontainer
[+] Opening shell in Exegol 'newcontainer'
[D] Opening shell with: docker exec -e EXEGOL_START_SHELL=zsh -ti
1266b4538f6f8b304fd40ec36be28efd3b4a6b7fbfdc82b4b806da83a2e68876
/.exegol/spawn.sh
Following #126 I can manage to open firefox, but through x11 and with error message
[Apr 23, 2024 - 19:31:50 (CEST)] exegol-newcontainer /workspace # firefox
Authorization required, but no authorization protocol specified
Error: cannot open display: :0
[Apr 23, 2024 - 19:32:30 (CEST)] exegol-newcontainer /workspace # useradd -o -m -u 1000 john
[Apr 23, 2024 - 19:35:02 (CEST)] exegol-newcontainer /workspace # su john
$ firefox
libGL error: MESA-LOADER: failed to retrieve device information
libGL error: MESA-LOADER: failed to open asahi: /usr/lib/dri/asahi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/aarch64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: asahi
$ exit
The issue has been solved after allowing docker/exegol to be executed with user (without sudo).
Describe the bug
I have this error message when starting my container, then I am not able to launch firefox from the container.
Steps To Reproduce
Exegol Wrapper Version
Host OS
Linux
Configuration of the concerned container
Execution logs in debug mode
Exception
No response
Anything else?
I am running Asahi Fedora Linux on MacM1 hardware with Hyprland Some of my host ENV if it may help XDG_CURRENT_DESKTOP=Hyprland WAYLAND_DISPLAY=wayland-1 DISPLAY=:0 XDG_SESSION_TYPE=wayland