From 07e232129084bd84a5de70592d0a9cf08bc8cbc3 Mon Sep 17 00:00:00 2001 From: Ben Grande Date: Mon, 27 Jan 2025 18:32:18 +0100 Subject: [PATCH] feat: add monitor resize helper --- salt/dom0/files/bin/qubes-gui-resolution | 25 ++++++++++++++++++++++++ salt/dom0/helpers.sls | 11 ++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100755 salt/dom0/files/bin/qubes-gui-resolution diff --git a/salt/dom0/files/bin/qubes-gui-resolution b/salt/dom0/files/bin/qubes-gui-resolution new file mode 100755 index 0000000..dceb53b --- /dev/null +++ b/salt/dom0/files/bin/qubes-gui-resolution @@ -0,0 +1,25 @@ +#!/bin/sh + +# SPDX-FileCopyrightText: 2025 Benjamin Grande M. S. +# +# SPDX-License-Identifier: AGPL-3.0-or-later +# +# https://www.qubes-os.org/doc/gui-configuration/#video-ram-adjustment-for-high-resolution-displays + +set -eu + +if ! command -v xrandr >/dev/null; then + print '%s\n' "missing program: xrandr" >&2 + exit 1 +fi + +gui_mem="$(xrandr --listactivemonitors | + awk -F'[ /x]' '/^\s+[0-9]+/{if($4>max) max=$4; sum+=$6} + END {print max*sum*4/1024}')" + +if test "${gui_mem}" = "0"; then + exit +fi + +qvm-features dom0 gui-videoram-min "${gui_mem}" +qvm-features dom0 gui-videoram-overhead 0 diff --git a/salt/dom0/helpers.sls b/salt/dom0/helpers.sls index 1a6de1f..80da59a 100644 --- a/salt/dom0/helpers.sls +++ b/salt/dom0/helpers.sls @@ -1,5 +1,5 @@ {# -SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. +SPDX-FileCopyrightText: 2024 - 2025 Benjamin Grande M. S. SPDX-License-Identifier: AGPL-3.0-or-later #} @@ -44,4 +44,13 @@ SPDX-License-Identifier: AGPL-3.0-or-later - group: root - makedirs: True +"{{ slsdotpath }}-qubes-gui-resolution-helper": + file.managed: + - name: /usr/local/bin/qubes-gui-resolution + - source: salt://{{ slsdotpath }}/files/bin/qubes-gui-resolution + - mode: "0755" + - user: root + - group: root + - makedirs: True + {% endif -%}