diff options
author | Jonas Heinrich <onny@project-insanity.org> | 2022-05-20 14:21:27 +0200 |
---|---|---|
committer | Yt <raphael@megzari.com> | 2022-05-26 08:33:49 -0400 |
commit | f81c763c1de3fc0d2f746b82891684e3c08c919a (patch) | |
tree | 87b8ae5e8a0e1fc1b1f36a12035069bc88038b33 /pkgs/applications/virtualization/appvm | |
parent | 87d9910cefec95a47f2fac7f0b7db89c8f69c4b9 (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')
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; + }; +} |