Improve dependency checking on setup

This commit is contained in:
wheaney 2025-03-12 08:56:38 -07:00
parent f7b91a13dd
commit 82f88b3121
17 changed files with 158 additions and 91 deletions

View File

@ -19,6 +19,42 @@ check_command "update-desktop-database"
check_command "gtk-update-icon-cache"
check_command "python" "python3"
PYTHON_GI_CHECK="import gi; gi.require_version('Gtk', '4.0'); gi.require_version('Adw', '1'); gi.require_version('Gio', '2.0'); gi.require_version('GLib', '2.0'); gi.require_version('GObject', '2.0'); gi.require_version('Gst', '1.0'); from gi.repository import Gtk, Adw, Gio, GLib, GObject, Gst"
if ! { python3 -c "$PYTHON_GI_CHECK" 2>/dev/null || python -c "$PYTHON_GI_CHECK" 2>/dev/null; }; then
echo "Please install the required GTK4, libadwaita, and GStreamer libraries:"
echo "For Debian/Ubuntu: sudo apt install python3-gi gir1.2-gtk-4.0 libadwaita-1-0 gir1.2-adw-1 gir1.2-glib-2.0 gir1.2-gobject-2.0 gir1.2-gstreamer-1.0"
echo "For Fedora: sudo dnf install python3-gobject gtk4 libadwaita gstreamer1-python"
echo "For Arch Linux: sudo pacman -S python-gobject gtk4 libadwaita gst-python"
exit 1
fi
if ! gst-inspect-1.0 &>/dev/null; then
echo "Please install the gstreamer package, and make sure it's available in your \$PATH, then rerun the setup."
echo "For Debian/Ubuntu: sudo apt install gstreamer1.0-tools gstreamer1.0-pipewire"
echo "For Fedora: sudo dnf install gstreamer1-plugins-base-tools gstreamer1-plugin-pipewire"
echo "For Arch Linux: sudo pacman -S gst-plugins-base gst-plugin-pipewire"
exit 1
fi
if ! gst-inspect-1.0 pipewiresrc &>/dev/null; then
echo "Please install the gst-plugin-pipewire package, and make sure it's available in your \$PATH, then rerun the setup."
echo "For Debian/Ubuntu: sudo apt install gstreamer1.0-pipewire"
echo "For Fedora: sudo dnf install gstreamer1-plugin-pipewire"
echo "For Arch Linux: sudo pacman -S gst-plugin-pipewire"
exit 1
fi
if [ "$XDG_SESSION_TYPE" != "wayland" ]; then
printf "\033[1;33mWARNING:\033[0m Windowing system is %s\n" "$XDG_SESSION_TYPE"
printf "\033[1;33mWARNING:\033[0m Virtual display functionality requires GNOME on Wayland\n"
fi
if ! systemctl --user is-active gnome-remote-desktop &>/dev/null; then
printf "\033[1;33mWARNING:\033[0m gnome-remote-desktop service is not running\n"
printf "\033[1;33mWARNING:\033[0m Virtual display functionality requires the gnome-remote-desktop service running\n"
fi
# This script gets packaged with the release and should do the bulk of the setup work. This allows this setup to be tied
# to a specific release of the code, and guarantees it will never run along-side newer or older binaries.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 14:24-0700\n"
"POT-Creation-Date: 2025-03-12 08:57-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -43,17 +43,17 @@ msgstr ""
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
msgid "Focused display"
msgstr ""
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
msgid "All displays"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 20:54-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@ -47,18 +47,18 @@ msgstr "Display-Entfernung"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Display-Entfernung"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Gebogenes Display"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Spanish <es@tp.org.es>\n"
@ -46,18 +46,18 @@ msgstr "Distancia de la pantalla"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Distancia de la pantalla"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Pantalla curvada"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 20:54-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: French <traduc@traduc.org>\n"
@ -49,18 +49,18 @@ msgstr "Distance d'affichage"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Distance d'affichage"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Affichage incurvé"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 21:14-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@ -47,18 +47,18 @@ msgstr "Distanza del display"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Distanza del display"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Display curvo"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@ -49,18 +49,18 @@ msgstr "すべてのディスプレイ距離"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr "遠くに設定すると視線の外れたディスプレイがズームアウトします。"
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr "仮想ディスプレイが追加できません。"
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "フォーカスされたディスプレイ"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "すべてのディスプレイ"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-16 10:26-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@ -44,17 +44,17 @@ msgstr ""
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
msgid "Focused display"
msgstr ""
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
msgid "All displays"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-19 09:39-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Brazilian Portuguese <ldpbr-"
@ -36,8 +36,9 @@ msgstr "Distância da tela"
#: src/connecteddevice.py:142
msgid "Use a closer value so the display zooms in when you look at it."
msgstr "Use um valor mais aproximado para que as telas se aproximem "
"quando olha para ela."
msgstr ""
"Use um valor mais aproximado para que as telas se aproximem quando olha para "
"ela."
#: src/connecteddevice.py:149
msgid "Set All Displays Distance"
@ -45,21 +46,23 @@ msgstr "Distância da tela"
#: src/connecteddevice.py:150
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr "Use um valor mais distante para que as telas se afastem "
"quando olha para elas."
msgstr ""
"Use um valor mais distante para que as telas se afastem quando olha para "
"elas."
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr "Não é possível adicionar telas neste dispositivo. "
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
"Não é possível adicionar telas neste dispositivo. "
"xdg-desktop-portal é requerido."
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
msgid "Focused display"
msgstr "Distância da tela"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
msgid "All displays"
msgstr "Tela curva"
@ -121,6 +124,7 @@ msgid "Inactive"
msgstr "Inativo"
#: src/licensetierrow.py:41
#, python-brace-format
msgid "<b>${amount}</b> USD"
msgstr "<b>${amount}</b> USD"
@ -222,8 +226,8 @@ msgid ""
" "
msgstr ""
"Mover automaticamente a tela mais perto quando olha nela.\n"
"Defina as suas distâncias preferidas focadas e não focadas nos "
"Ajustes de secção.\n"
"Defina as suas distâncias preferidas focadas e não focadas nos Ajustes de "
"secção.\n"
" "
#: src/gtk/connected-device.ui:70
@ -241,7 +245,9 @@ msgstr "Desativar as telas físicas"
#: src/gtk/connected-device.ui:82 src/gtk/no-device.ui:35
msgid ""
"Automatically disable all physical displays when the XR effect is enabled."
msgstr "Desactive automaticamente todos as telas físicas quando o efeito XR estiver activado."
msgstr ""
"Desactive automaticamente todos as telas físicas quando o efeito XR estiver "
"activado."
#: src/gtk/connected-device.ui:92
msgid "Virtual displays"
@ -300,7 +306,9 @@ msgstr "Tamanho da tela"
#: src/gtk/connected-device.ui:247
msgid ""
"When there are multiple displays, choose how they should angle towards you."
msgstr "Quando existirem várias telas, escolha o ângulo em que devem estar virados para si."
msgstr ""
"Quando existirem várias telas, escolha o ângulo em que devem estar virados "
"para si."
#: src/gtk/connected-device.ui:261
msgid "Automatic"
@ -332,7 +340,9 @@ msgstr "Deslocamento horizontal da janela de visualização"
#: src/gtk/connected-device.ui:306
msgid "Move the viewport to the left or right of its default position."
msgstr "Mova a janela de visualização para a esquerda ou direita da sua posição predefinida."
msgstr ""
"Mova a janela de visualização para a esquerda ou direita da sua posição "
"predefinida."
#: src/gtk/connected-device.ui:323
msgid "left"
@ -352,7 +362,9 @@ msgstr "Deslocamento vertical da janela de visualização"
#: src/gtk/connected-device.ui:336
msgid "Move the viewport up or down from its default position."
msgstr "Mova a janela de visualização para cima ou para baixo da sua posição predefinida."
msgstr ""
"Mova a janela de visualização para cima ou para baixo da sua posição "
"predefinida."
#: src/gtk/connected-device.ui:353
msgid "down"
@ -374,8 +386,9 @@ msgstr "Atalho para ligar/desligar o efeito XR"
msgid ""
"Quickly enable or disable the XR Effect. You may need to enable the effect "
"manually once in order to enable the shortcut."
msgstr "Ative ou desative rapidamente o Efeito XR. Pode ser necessário "
"ativar o efeito manualmente para ativar o atalho."
msgstr ""
"Ative ou desative rapidamente o Efeito XR. Pode ser necessário ativar o "
"efeito manualmente para ativar o atalho."
#: src/gtk/connected-device.ui:410
msgid "Re-center display shortcut"
@ -435,8 +448,9 @@ msgstr "Centralize na exposição dos óculos"
msgid ""
"Center the viewport on the glasses' display, even if the display is not in "
"the middle."
msgstr "Centralize a janela de visualização no ecrã dos óculos, mesmo que a "
"tela não esteja no meio."
msgstr ""
"Centralize a janela de visualização no ecrã dos óculos, mesmo que a tela não "
"esteja no meio."
#: src/gtk/connected-device.ui:551
msgid "Always primary display"
@ -453,7 +467,8 @@ msgstr "Tela curva"
#: src/gtk/connected-device.ui:563
msgid "Automatically remove virtual displays when the XR effect is disabled."
msgstr "Remove automaticamente as telas virtuais quando o efeito XR está desativado."
msgstr ""
"Remove automaticamente as telas virtuais quando o efeito XR está desativado."
#: src/gtk/connected-device.ui:573
msgid "Enable multi-tap detection"
@ -702,6 +717,13 @@ msgstr "Forçar redefinição"
msgid "About BreezyDesktop"
msgstr "Sobre o BreezyDesktop"
#~ msgid ""
#~ "Unable to add virtual displays on this machine. xdg-desktop-portal is "
#~ "required."
#~ msgstr ""
#~ "Não é possível adicionar telas neste dispositivo. xdg-desktop-portal é "
#~ "requerido."
#~ msgid "Fast SBS mode switching"
#~ msgstr "Alternância rápida do modo SBS"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-17 09:39-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Russian <gnu@d07.ru>\n"
@ -47,18 +47,18 @@ msgstr "Расстояние дисплея"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Расстояние дисплея"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Изогнутый дисплей"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-16 10:31-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@ -47,18 +47,18 @@ msgstr "Avstånd till skärmen"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Avstånd till skärmen"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Böjd skärm"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-17 10:08-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
@ -46,18 +46,18 @@ msgstr "Відстань дисплея"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr ""
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
#, fuzzy
msgid "Focused display"
msgstr "Відстань дисплея"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
#, fuzzy
msgid "All displays"
msgstr "Викривлений дисплей"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-03-11 13:47-0700\n"
"POT-Creation-Date: 2025-03-12 08:49-0700\n"
"PO-Revision-Date: 2024-08-02 20:55-0700\n"
"Last-Translator: <wayne@xronlinux.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@ -42,17 +42,18 @@ msgstr "设定所有屏幕的距离"
msgid "Use a farther value so the displays are zoomed out when you look away."
msgstr "远的数值会将您所看向的屏幕缩小"
#: src/connecteddevice.py:263
#: src/connecteddevice.py:266
msgid ""
"Unable to add virtual displays on this machine. xdg-desktop-portal is "
"required."
msgstr "无法增加模拟显示。需要安装xdg-desktop-portal"
"Unable to add virtual displays on this machine. Wayland and xdg-desktop-"
"portal are required."
msgstr ""
"无法增加模拟显示。需要安装xdg-desktop-portal"
#: src/connecteddevice.py:297
#: src/connecteddevice.py:300
msgid "Focused display"
msgstr "注视中的屏幕"
#: src/connecteddevice.py:303
#: src/connecteddevice.py:306
msgid "All displays"
msgstr "所有的屏幕"
@ -675,6 +676,11 @@ msgstr "强制重置"
msgid "About BreezyDesktop"
msgstr "关于 Breezy Desktop"
#~ msgid ""
#~ "Unable to add virtual displays on this machine. xdg-desktop-portal is "
#~ "required."
#~ msgstr "无法增加模拟显示。需要安装xdg-desktop-portal"
#~ msgid "Fast SBS mode switching"
#~ msgstr "快速并排模式切换"

View File

@ -203,6 +203,9 @@ class ConnectedDevice(Gtk.Box):
for id in self._custom_resolution_options:
self.add_virtual_display_menu.insert(self._default_resolution_options_count, id, id)
# wayland is required to create virtual displays
self.is_wayland = "WAYLAND_DISPLAY" in os.environ
def _bind_switch_to_config(self, switch, config_key):
self.config_manager.bind_property(config_key, switch, 'active', Gio.SettingsBindFlags.DEFAULT)
switch.set_active(self.config_manager.get_property(config_key))
@ -258,9 +261,9 @@ class ConnectedDevice(Gtk.Box):
for widget in self.all_enabled_state_inputs:
widget.set_sensitive(requesting_enabled)
if not is_screencast_available():
if not is_screencast_available() or not self.is_wayland:
self.virtual_displays_row.set_subtitle(
_("Unable to add virtual displays on this machine. xdg-desktop-portal is required."))
_("Unable to add virtual displays on this machine. Wayland and xdg-desktop-portal are required."))
self.add_virtual_display_button.set_sensitive(False)
self.add_virtual_display_menu.set_sensitive(False)