diff --git a/dotfiles/config/systemd/user/gitter.service b/dotfiles/config/systemd/user/gitter.service index 5779ba95..dfe54e37 100644 --- a/dotfiles/config/systemd/user/gitter.service +++ b/dotfiles/config/systemd/user/gitter.service @@ -4,7 +4,8 @@ Wants=taffybar.service After=taffybar.service [Service] -ExecStart=/usr/bin/env run_unity.sh gitter +ExecStart=/usr/bin/env Gitter +ExecStart/usr/bin/env pkill Gitter Restart=always [Install] diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 43d1ebc8..e6166b94 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -1,5 +1,6 @@ { config, pkgs, ... }: let + gitter = with pkgs; callPackage ./gitter.nix { }; my-python-packages = python-packages: with python-packages; [ appdirs requests @@ -134,6 +135,7 @@ in emacs firefox kleopatra + gitter google-chrome hexchat keybase-gui-fixed diff --git a/nixos/gitter.nix b/nixos/gitter.nix new file mode 100644 index 00000000..a7da1cb4 --- /dev/null +++ b/nixos/gitter.nix @@ -0,0 +1,65 @@ +{ stdenv, alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl +, fontconfig, freetype, gdk_pixbuf, glib, gnome3, gtk3, libX11 +, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext, libXfixes +, libXi, libXrandr, libXrender, libXtst, libappindicator-gtk3, libcxx +, libnotify, libpulseaudio, libxcb, makeDesktopItem, makeWrapper, nspr, nss +, nwjs, pango, systemd }: + +stdenv.mkDerivation rec { + pname = "gitter"; + version = "4.1.0"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "https://update.gitter.im/linux64/${pname}_${version}_amd64.deb"; + sha256 = "1gny9i2pywvczzrs93k8krqn6hwm6c2zg8yr3xmjqs3p88817wbi"; + }; + + nativeBuildInputs = [ makeWrapper dpkg ]; + + unpackPhase = "dpkg -x $src ."; + + libPath = stdenv.lib.makeLibraryPath [ + alsaLib atk cairo cups dbus expat fontconfig freetype gdk_pixbuf glib + gnome3.gconf gtk3 libX11 libXScrnSaver libXcomposite libXcursor libXdamage + libXext libXfixes libXi libXrandr libXrender libXtst libappindicator-gtk3 + libcxx libnotify libpulseaudio libxcb nspr nss pango stdenv.cc.cc systemd + ]; + + gitterDirectorySuffix = "opt/gitter"; + + installPhase = '' + mkdir -p $out/{bin,opt/gitter,share/pixmaps} + mv ./opt/Gitter/linux64/* $out/opt/gitter + + patchelf --debug --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \ + --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/Gitter + + patchelf --debug --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \ + $out/${gitterDirectorySuffix}/lib/libnw.so + + wrapProgram $out/${gitterDirectorySuffix}/Gitter --prefix LD_LIBRARY_PATH : ${libPath} + + ln -s $out/${gitterDirectorySuffix}/Gitter $out/bin/ + ln -s $out/${gitterDirectorySuffix}/logo.png $out/share/pixmaps/gitter.png + ln -s "${desktopItem}/share/applications" $out/share/ + ''; + + desktopItem = makeDesktopItem { + name = pname; + exec = "Gitter"; + icon = pname; + desktopName = "Gitter"; + genericName = meta.description; + categories = "Network;InstantMessaging;"; + }; + + meta = with stdenv.lib; { + description = "Where developers come to talk"; + downloadPage = "https://gitter.im/apps"; + license = licenses.mit; + maintainers = [ maintainers.imalison ]; + platforms = [ "x86_64-linux" ]; + }; +}