diff --git a/defaults/desktop/hardware.nix b/defaults/desktop/hardware.nix index b336235..4071ec5 100644 --- a/defaults/desktop/hardware.nix +++ b/defaults/desktop/hardware.nix @@ -10,7 +10,6 @@ hardware = { pulseaudio.enable = true; opengl.enable = true; - u2f.enable = true; acpilight.enable = true; bluetooth.enable = true; }; diff --git a/defaults/desktop/multimedia.nix b/defaults/desktop/multimedia.nix index c901a9e..f413b2e 100644 --- a/defaults/desktop/multimedia.nix +++ b/defaults/desktop/multimedia.nix @@ -39,10 +39,6 @@ libdvbpsi # TODO: librtmp? xvidcore x264 - gst-plugins-base - gst-plugins-bad - gst-plugins-good - gst-plugins-ugly gst_all_1.gstreamer gst_all_1.gst-vaapi gst_all_1.gst-rtsp-server diff --git a/defaults/desktop/office-suite.nix b/defaults/desktop/office-suite.nix index a18611d..bc551fd 100644 --- a/defaults/desktop/office-suite.nix +++ b/defaults/desktop/office-suite.nix @@ -11,7 +11,6 @@ google-fonts lalezar-fonts nahid-fonts - fontconfig-penultimate nika-fonts agave aileron diff --git a/defaults/games/default.nix b/defaults/games/default.nix index 4470bc6..8e59781 100644 --- a/defaults/games/default.nix +++ b/defaults/games/default.nix @@ -9,8 +9,19 @@ superTuxKart extremetuxracer zeroad - #TODO: smc - ]; - services.gnome3.games.enable = true; + ] ++ (with pkgs.gnome3; [ # Selection of gnome3 games + five-or-more + four-in-a-row + gnome-chess + gnome-klotski + gnome-mahjongg + gnome-nibbles + gnome-robots + gnome-sudoku + gnome-taquin + gnome-tetravex + lightsoff + quadrapassel + ]); } diff --git a/overlays/applications/networking/remote/vmware-horizon-client/default.nix b/overlays/applications/networking/remote/vmware-horizon-client/default.nix new file mode 100644 index 0000000..09b7011 --- /dev/null +++ b/overlays/applications/networking/remote/vmware-horizon-client/default.nix @@ -0,0 +1,80 @@ +{ stdenv, buildFHSUserEnv, fetchurl, makeWrapper, makeDesktopItem, libxslt, atk +, fontconfig, freetype, gdk-pixbuf, glib, gtk2, libudev0-shim, libxml2 +, pango, pixman, libX11, libXext, libXinerama, libXrandr , libXrender +, libXtst, libXcursor, libXi, libxkbfile , libXScrnSaver, zlib, liberation_ttf +, libtiff, dbus, at-spi2-atk, harfbuzz, gtk3-x11, libuuid, pcsclite +}: + +let + version = "2006"; + + sysArch = + if stdenv.hostPlatform.system == "x86_64-linux" then "x64" + else throw "Unsupported system: ${stdenv.hostPlatform.system}"; + # The downloaded archive also contains i386 and ARM binaries, but these have not been tested. + + vmwareHorizonClientFiles = stdenv.mkDerivation { + name = "vmwareHorizonClientFiles"; + inherit version; + src = fetchurl { + url = https://download3.vmware.com/software/view/viewclients/CART21FQ2/vmware-view-client-linux-2006-8.0.0-16522670.tar.gz; + sha256 = "8c46d49fea42f8c1f7cf32a5f038f5a47d2b304743b1e4f4c68c658621b0e79c"; + }; + buildInputs = [ makeWrapper ]; + installPhase = '' + mkdir ext $out + find ${sysArch} -type f -print0 | xargs -0n1 tar -Cext --strip-components=1 -xf + mv ext/bin ext/lib ext/share "$out"/ + + # Horizon includes a copy of libstdc++ which is loaded via $LD_LIBRARY_PATH + # when it cannot detect a new enough version already present on the system. + # The checks are distribution-specific and do not function correctly on NixOS. + # Deleting the bundled library is the simplest way to force it to use our version. + rm -f "$out/lib/vmware/gcc/libstdc++.so.6" + + # Force the default GTK theme (Adwaita) because Horizon is prone to + # UI usability issues when using non-default themes, such as Adwaita-dark. + makeWrapper "$out/bin/vmware-view" "$out/bin/vmware-view_wrapper" \ + --set GTK_THEME Adwaita \ + --suffix LD_LIBRARY_PATH : "$out/lib/vmware/view/crtbora:$out/lib/vmware" + ''; + }; + + vmwareFHSUserEnv = buildFHSUserEnv { + name = "vmware-view"; + + runScript = "${vmwareHorizonClientFiles}/bin/vmware-view_wrapper"; + + targetPkgs = pkgs: [ + pcsclite dbus vmwareHorizonClientFiles atk fontconfig freetype gdk-pixbuf glib gtk2 + libudev0-shim libxml2 pango pixman liberation_ttf libX11 libXext libXinerama + libXrandr libXrender libXtst libXcursor libXi libxkbfile at-spi2-atk libXScrnSaver + zlib libtiff harfbuzz gtk3-x11 libuuid + ]; + }; + + desktopItem = makeDesktopItem { + name = "vmware-view"; + desktopName = "VMware Horizon Client"; + icon = "${vmwareHorizonClientFiles}/share/icons/vmware-view.png"; + exec = "${vmwareFHSUserEnv}/bin/vmware-view %u"; + mimeType = "x-scheme-handler/vmware-view"; + }; + +in stdenv.mkDerivation { + name = "vmware-view"; + dontUnpack = true; + installPhase = '' + mkdir -p $out/bin $out/share/applications + cp "${desktopItem}"/share/applications/* $out/share/applications/ + ln -s "${vmwareFHSUserEnv}/bin/vmware-view" "$out/bin/" + ''; + + meta = with stdenv.lib; { + description = "Allows you to connect to your VMware Horizon virtual desktop"; + homepage = "https://www.vmware.com/go/viewclients"; + license = licenses.unfree; + platforms = platforms.linux; + maintainers = with maintainers; [ buckley310 ]; + }; +} diff --git a/overlays/default.nix b/overlays/default.nix index 1ffdb20..1670671 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -1,3 +1,4 @@ self: super: { lib = (super.lib or { }) // { qois = import ../lib { lib = self.lib; }; }; + vmware-horizon-client = super.callPackage ./applications/networking/remote/vmware-horizon-client { }; # TODO: Should be included in 21.03 }