summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/virtualization/appvm
diff options
context:
space:
mode:
authorJonas Heinrich <onny@project-insanity.org>2022-05-20 14:21:27 +0200
committerYt <raphael@megzari.com>2022-05-26 08:33:49 -0400
commitf81c763c1de3fc0d2f746b82891684e3c08c919a (patch)
tree87b8ae5e8a0e1fc1b1f36a12035069bc88038b33 /pkgs/applications/virtualization/appvm
parent87d9910cefec95a47f2fac7f0b7db89c8f69c4b9 (diff)
nixos/appvm: init at unstable-2021-12-20
Co-authored-by: Mikhail Klementev <blame@dumpstack.io> Co-authored-by: Cabia Rangris <me@cab404.ru>
Diffstat (limited to 'pkgs/applications/virtualization/appvm')
-rw-r--r--pkgs/applications/virtualization/appvm/0001-Remove-menu-bar.patch12
-rw-r--r--pkgs/applications/virtualization/appvm/0002-Do-not-grab-keyboard-mouse.patch15
-rw-r--r--pkgs/applications/virtualization/appvm/0003-Use-name-of-appvm-applications-as-a-title.patch14
-rw-r--r--pkgs/applications/virtualization/appvm/0004-Use-title-application-name-as-subtitle.patch12
-rw-r--r--pkgs/applications/virtualization/appvm/default.nix48
5 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/applications/virtualization/appvm/0001-Remove-menu-bar.patch b/pkgs/applications/virtualization/appvm/0001-Remove-menu-bar.patch
new file mode 100644
index 000000000000..5a15686353a3
--- /dev/null
+++ b/pkgs/applications/virtualization/appvm/0001-Remove-menu-bar.patch
@@ -0,0 +1,12 @@
+diff --git a/src/resources/ui/virt-viewer.ui b/src/resources/ui/virt-viewer.ui
+index 430f879..68856fc 100644
+--- a/src/resources/ui/virt-viewer.ui
++++ b/src/resources/ui/virt-viewer.ui
+@@ -137,7 +137,6 @@
+ </child>
+ <child type="titlebar">
+ <object class="GtkHeaderBar" id="header">
+- <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="show-close-button">True</property>
+ <child>
diff --git a/pkgs/applications/virtualization/appvm/0002-Do-not-grab-keyboard-mouse.patch b/pkgs/applications/virtualization/appvm/0002-Do-not-grab-keyboard-mouse.patch
new file mode 100644
index 000000000000..012c37be6452
--- /dev/null
+++ b/pkgs/applications/virtualization/appvm/0002-Do-not-grab-keyboard-mouse.patch
@@ -0,0 +1,15 @@
+diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
+index 2265f02..1d60d81 100644
+--- a/src/virt-viewer-display-spice.c
++++ b/src/virt-viewer-display-spice.c
+@@ -317,8 +317,8 @@ virt_viewer_display_spice_new(VirtViewerSessionSpice *session,
+ gtk_container_add(GTK_CONTAINER(self), GTK_WIDGET(self->display));
+ gtk_widget_show(GTK_WIDGET(self->display));
+ g_object_set(self->display,
+- "grab-keyboard", TRUE,
+- "grab-mouse", TRUE,
++ "grab-keyboard", FALSE,
++ "grab-mouse", FALSE,
+ "resize-guest", FALSE,
+ "scaling", TRUE,
+ NULL);
diff --git a/pkgs/applications/virtualization/appvm/0003-Use-name-of-appvm-applications-as-a-title.patch b/pkgs/applications/virtualization/appvm/0003-Use-name-of-appvm-applications-as-a-title.patch
new file mode 100644
index 000000000000..51a47bbbac6d
--- /dev/null
+++ b/pkgs/applications/virtualization/appvm/0003-Use-name-of-appvm-applications-as-a-title.patch
@@ -0,0 +1,14 @@
+diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
+index fe740ce..d45fd4f 100644
+--- a/src/virt-viewer-window.c
++++ b/src/virt-viewer-window.c
+@@ -1342,6 +1342,9 @@ virt_viewer_window_update_title(VirtViewerWindow *self)
+ grabhint,
+ g_get_application_name());
+ }
++ } else if (g_str_has_prefix(self->subtitle, "appvm_")) {
++ /* Use name of the application as a title */
++ title = g_strdup_printf(_("%s"), &self->subtitle[strlen("appvm_")]);
+ } else if (self->subtitle) {
+ /* translators:
+ * This is "<subtitle> - <appname>"
diff --git a/pkgs/applications/virtualization/appvm/0004-Use-title-application-name-as-subtitle.patch b/pkgs/applications/virtualization/appvm/0004-Use-title-application-name-as-subtitle.patch
new file mode 100644
index 000000000000..3c517867aac7
--- /dev/null
+++ b/pkgs/applications/virtualization/appvm/0004-Use-title-application-name-as-subtitle.patch
@@ -0,0 +1,12 @@
+diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
+index b977b7b..36bce34 100644
+--- a/src/virt-viewer-app.c
++++ b/src/virt-viewer-app.c
+@@ -976,6 +976,7 @@ virt_viewer_app_set_window_subtitle(VirtViewerApp *app,
+ *d = '%';
+ } else
+ subtitle = g_strdup_printf("%s (%s)", title, desc);
++ subtitle = g_strdup_printf("%s", title);
+ g_free(desc);
+ }
+
diff --git a/pkgs/applications/virtualization/appvm/default.nix b/pkgs/applications/virtualization/appvm/default.nix
new file mode 100644
index 000000000000..27002bac405f
--- /dev/null
+++ b/pkgs/applications/virtualization/appvm/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, nix
+, virt-viewer
+, fetchpatch
+, makeWrapper }:
+
+let
+ # Upstream patches fail with newer virt-viewer. These are own ports to the
+ # newest virt-viewer version, see:
+ # https://github.com/jollheef/appvm/issues/28
+ virt-manager-without-menu = virt-viewer.overrideAttrs(oldAttrs: {
+ patches = oldAttrs.patches ++ [
+ ./0001-Remove-menu-bar.patch
+ ./0002-Do-not-grab-keyboard-mouse.patch
+ ./0003-Use-name-of-appvm-applications-as-a-title.patch
+ ./0004-Use-title-application-name-as-subtitle.patch
+ ];
+ });
+in
+buildGoModule rec {
+ pname = "appvm";
+ version = "unstable-2021-12-20";
+
+ src = fetchFromGitHub {
+ owner = "jollheef";
+ repo = pname;
+ rev = "17f17be7846d872e7e26d5cb6759a52ea4113587";
+ sha256 = "sha256-FL5olOy1KufULyqI2dJeS0OnKzC3LfPWxnia2i4f4yY=";
+ };
+
+ vendorSha256 = "sha256-8eU+Mf5dxL/bAMMShXvj8I1Kdd4ysBTWvgYIXwLStPI=";
+
+ buildInputs = [ makeWrapper ];
+
+ postFixup = ''
+ wrapProgram $out/bin/appvm \
+ --prefix PATH : "${lib.makeBinPath [ nix virt-manager-without-menu ]}"
+ '';
+
+ meta = with lib; {
+ description = "Nix-based app VMs";
+ homepage = "https://code.dumpstack.io/tools/${pname}";
+ maintainers = with maintainers; [ dump_stack cab404 onny ];
+ license = licenses.gpl3;
+ };
+}