diff --git a/Ansible/roles/kodi/files/kodi.service b/Ansible/roles/kodi/files/kodi.service
index 55300b2b0f4c01585c18c90ac1248e9d1cbbb798..b6d13604c4bb841bee8f9c447b56f4b8628f0279 100644
--- a/Ansible/roles/kodi/files/kodi.service
+++ b/Ansible/roles/kodi/files/kodi.service
@@ -1,7 +1,7 @@
 # vim: filetype=systemd
 [Unit]
 Description=Kodi Media Center on %i
-After=systemd-user-sessions.service sound.target network-online.target xorg.service
+After=systemd-user-sessions.service sound.target network-online.target
 
 # Require the library to be mounted.
 After=srv-library.mount
@@ -18,8 +18,11 @@ User=kodi
 PAMName=login
 SupplementaryGroups=audio
 SupplementaryGroups=cdrom
+SupplementaryGroups=input
+SupplementaryGroups=render
+SupplementaryGroups=video
 Environment="DISPLAY=:0"
-ExecStart=flatpak run --device=all --share=network --filesystem=/etc/group --filesystem=/srv/library tv.kodi.Kodi --standalone --windowing=x11 -fs
+ExecStart=flatpak run --device=all --share=network --filesystem=/etc/group --filesystem=/srv/library tv.kodi.Kodi --standalone --windowing=gbm -fs
 Type=simple
 Restart=always
 RestartSec=5
diff --git a/Ansible/roles/kodi/files/xorg.service b/Ansible/roles/kodi/files/xorg.service
deleted file mode 100644
index a710e418832881f9283f3ac2cccd045a4069d1e1..0000000000000000000000000000000000000000
--- a/Ansible/roles/kodi/files/xorg.service
+++ /dev/null
@@ -1,44 +0,0 @@
-# vim: filetype=systemd
-[Unit]
-Description=X Windows display server
-After=systemd-user-sessions.service
-
-# D-Bus is necessary for contacting logind. Logind is required.
-Wants=dbus.socket
-After=dbus.socket
-
-Conflicts=getty@tty7.service
-Before=graphical.target
-
-# On systems without virtual consoles, don't start
-ConditionPathExists=/dev/tty7
-
-[Service]
-User=kodi
-SupplementaryGroups=input
-SupplementaryGroups=tty
-SupplementaryGroups=video
-PAMName=login
-ExecStart=startx
-Type=simple
-Restart=on-abort
-RestartSec=5
-KillMode=control-group
-
-# A virtual terminal is needed.
-TTYPath=/dev/tty7
-TTYReset=yes
-TTYVHangup=yes
-TTYVTDisallocate=yes
-
-# Fail to start if not controlling the tty.
-StandardOutput=tty
-StandardInput=tty
-StandardError=journal
-
-# Log this user with utmp, letting it show up with commands 'w' and 'who'.
-UtmpIdentifier=tty7
-UtmpMode=user
-
-[Install]
-WantedBy=graphical.target
diff --git a/Ansible/roles/kodi/tasks/main.yml b/Ansible/roles/kodi/tasks/main.yml
index 7945bb013d66a0b4a39580e48059fe30a60c4ce2..732d814de44171ff7e6115d7d0a78bc2c4f2e39f 100644
--- a/Ansible/roles/kodi/tasks/main.yml
+++ b/Ansible/roles/kodi/tasks/main.yml
@@ -12,9 +12,7 @@
       - plymouth-themes
       - firmware-linux
       - udisks2
-      - unison
       - upower
-      - xorg
     state: present
     update_cache: true
 
@@ -32,8 +30,7 @@
 - name: Enable boot splash
   ansible.builtin.lineinfile:
     backup: true
-    # yamllint disable-line rule:line-length
-    line: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash systemd.unified_cgroup_hierarchy=0"
+    line: GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
     path: /etc/default/grub
   notify:
     - Update GRUB
@@ -86,29 +83,16 @@
     system: true
     uid: '{{ 900 + idx }}'
   notify:
-    - Restart Xorg
     - Restart Kodi
 
-- name: Configure rootless Xorg
-  ansible.builtin.copy:
-    backup: true
-    content: |
-      allowed_users=anybody
-    dest: /etc/X11/Xwrapper.config
-    mode: 0o0644
-  notify:
-    - Restart Xorg
-
 - name: Copy services
   with_items: &services
-    - xorg.service
     - kodi.service
   ansible.builtin.copy:
     dest: /etc/systemd/system/
     mode: preserve
     src: '{{ item }}'
   notify:
-    - Restart Xorg
     - Restart Kodi
 
 - name: Enable services