forked from colonelpanic/dotfiles
		
	[NixOS] Move package customizations to overlay
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
{ config, pkgs, ... }:
 | 
			
		||||
{ config, pkgs, options, ... }:
 | 
			
		||||
let
 | 
			
		||||
  gitter = with pkgs; callPackage ./gitter.nix { };
 | 
			
		||||
  my-overlays = import ./overlays.nix;
 | 
			
		||||
  my-python-packages = python-packages: with python-packages; [
 | 
			
		||||
    appdirs
 | 
			
		||||
    requests
 | 
			
		||||
@@ -11,81 +11,16 @@ let
 | 
			
		||||
    pip
 | 
			
		||||
  ];
 | 
			
		||||
  python-with-my-packages = pkgs.python3.withPackages my-python-packages;
 | 
			
		||||
  udiskie-appindicator = pkgs.udiskie.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "1.7.5";
 | 
			
		||||
    src = pkgs.fetchFromGitHub {
 | 
			
		||||
      owner = "coldfix";
 | 
			
		||||
      repo = "udiskie";
 | 
			
		||||
      rev = version;
 | 
			
		||||
      sha256 = "1mcdn8ha5d5nsmrzk6xnnsqrmk94rdrzym9sqm38zk5r8gpyl1k4";
 | 
			
		||||
    };
 | 
			
		||||
    propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [pkgs.libappindicator-gtk3];
 | 
			
		||||
  });
 | 
			
		||||
  clipit-master = pkgs.clipit.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "50d983514386029a1f133187902084b753458f32";
 | 
			
		||||
    preConfigure = "./autogen.sh";
 | 
			
		||||
    configureFlags = ["--with-gtk3" "--enable-appindicator"];
 | 
			
		||||
    src = pkgs.fetchFromGitHub {
 | 
			
		||||
      owner = "IvanMalison";
 | 
			
		||||
      repo = "ClipIt";
 | 
			
		||||
      sha256 = "1d52zjnxmcp2kr4wvq2yn9fhr61v9scp91fxfvasvz5m7k1zagdn";
 | 
			
		||||
      rev = version;
 | 
			
		||||
    };
 | 
			
		||||
    buildInputs = with pkgs; [
 | 
			
		||||
      autoconf automake intltool gtk3 xdotool hicolor-icon-theme
 | 
			
		||||
      libappindicator-gtk3
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
  pasystray-appindicator = with pkgs; pasystray.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    buildInputs = oldAttrs.buildInputs ++ [libappindicator-gtk3];
 | 
			
		||||
  });
 | 
			
		||||
  customizable-notify-osd = with pkgs; notify-osd.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "0.9.35+16.04.20160415";
 | 
			
		||||
    baseURI = "https://launchpad.net/~leolik/+archive/leolik";
 | 
			
		||||
    src = fetchurl {
 | 
			
		||||
      url = "${baseURI}/+files/notify-osd_${version}-0ubuntu1-leolik~ppa0.tar.gz";
 | 
			
		||||
      sha256 = "026dr46jh3xc4103wnslzy7pxbxkkpflh52c59j8vzwaa7bvvzkv";
 | 
			
		||||
      name = "notify-osd-customizable.tar.gz";
 | 
			
		||||
    };
 | 
			
		||||
    preConfigure = "./autogen.sh --libexecdir=$(out)/bin";
 | 
			
		||||
    buildInputs = with pkgs; [
 | 
			
		||||
      glib libwnck3 libnotify dbus-glib gnome3.gsettings-desktop-schemas
 | 
			
		||||
      makeWrapper libtool gnome3.gnome-common
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
  keybase-gui-fixed = with pkgs; keybase-gui.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    installPhase = ''
 | 
			
		||||
    mkdir -p $out/bin
 | 
			
		||||
    mv usr/share $out/share
 | 
			
		||||
    mv opt/keybase $out/share/
 | 
			
		||||
    cat > $out/bin/keybase-gui <<EOF
 | 
			
		||||
    #!${stdenv.shell}
 | 
			
		||||
    checkFailed() {
 | 
			
		||||
      if [ "\$NIX_SKIP_KEYBASE_CHECKS" = "1" ]; then
 | 
			
		||||
        return
 | 
			
		||||
      fi
 | 
			
		||||
      echo "Set NIX_SKIP_KEYBASE_CHECKS=1 if you want to skip this check." >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
    }
 | 
			
		||||
    if [ ! -S "\$XDG_RUNTIME_DIR/keybase/keybased.sock" ]; then
 | 
			
		||||
      echo "Keybase service doesn't seem to be running." >&2
 | 
			
		||||
      echo "You might need to run: keybase service" >&2
 | 
			
		||||
      checkFailed
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -z "\$(keybase status | grep kbfsfuse)" ]; then
 | 
			
		||||
      echo "Could not find kbfsfuse client in keybase status." >&2
 | 
			
		||||
      echo "You might need to run: kbfsfuse" >&2
 | 
			
		||||
      checkFailed
 | 
			
		||||
    fi
 | 
			
		||||
    exec $out/share/keybase/Keybase "\$@"
 | 
			
		||||
    EOF
 | 
			
		||||
    chmod +x $out/bin/keybase-gui
 | 
			
		||||
    substituteInPlace $out/share/applications/keybase.desktop \
 | 
			
		||||
      --replace run_keybase $out/bin/keybase-gui
 | 
			
		||||
  '';
 | 
			
		||||
  });
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  nixpkgs.overlays = [ my-overlays ];
 | 
			
		||||
  # XXX: This ensures that all nix tools pick up the overlays that are set here
 | 
			
		||||
  nix.nixPath =
 | 
			
		||||
    # Prepend default nixPath values.
 | 
			
		||||
    options.nix.nixPath.default ++
 | 
			
		||||
    # Append our nixpkgs-overlays.
 | 
			
		||||
    [ "nixpkgs-overlays=/etc/nixos/overlays-compat/" ];
 | 
			
		||||
 | 
			
		||||
  nixpkgs.config.allowUnfree = true;
 | 
			
		||||
  security.sudo.wheelNeedsPassword = false;
 | 
			
		||||
  networking.networkmanager.enable = true;
 | 
			
		||||
@@ -137,13 +72,14 @@ in
 | 
			
		||||
    kleopatra
 | 
			
		||||
    gitter
 | 
			
		||||
    google-chrome
 | 
			
		||||
 | 
			
		||||
    dfeet
 | 
			
		||||
    hexchat
 | 
			
		||||
    quassel
 | 
			
		||||
    keybase-gui-fixed
 | 
			
		||||
    kodi
 | 
			
		||||
    lxappearance
 | 
			
		||||
    rxvt_unicode
 | 
			
		||||
    pulseeffects
 | 
			
		||||
    spotify
 | 
			
		||||
    termite
 | 
			
		||||
    vlc
 | 
			
		||||
@@ -160,7 +96,7 @@ in
 | 
			
		||||
    # Desktop
 | 
			
		||||
    # haskellPackages.status-notifier-item
 | 
			
		||||
    autorandr
 | 
			
		||||
    clipit-master
 | 
			
		||||
    clipit
 | 
			
		||||
    compton
 | 
			
		||||
    feh
 | 
			
		||||
    gnome3.gpaste
 | 
			
		||||
@@ -209,8 +145,9 @@ in
 | 
			
		||||
    # Tools
 | 
			
		||||
    bazaar
 | 
			
		||||
    binutils
 | 
			
		||||
    dfeet
 | 
			
		||||
    dex
 | 
			
		||||
    dpkg
 | 
			
		||||
    file
 | 
			
		||||
    gcc
 | 
			
		||||
    gdb
 | 
			
		||||
    gitAndTools.git-sync
 | 
			
		||||
@@ -236,6 +173,7 @@ in
 | 
			
		||||
    silver-searcher
 | 
			
		||||
    stow
 | 
			
		||||
    tmux
 | 
			
		||||
    unzip
 | 
			
		||||
    valgrind
 | 
			
		||||
    wget
 | 
			
		||||
    wmctrl
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,15 @@
 | 
			
		||||
, nwjs, pango, systemd }:
 | 
			
		||||
 | 
			
		||||
let gitterDirectorySuffix = "opt/gitter";
 | 
			
		||||
    doELFPatch = target: ''
 | 
			
		||||
    doELFExePatch = target: ''
 | 
			
		||||
      patchelf --set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
 | 
			
		||||
         --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
 | 
			
		||||
         $out/${gitterDirectorySuffix}/${target}
 | 
			
		||||
       '';
 | 
			
		||||
   doELFLibPatch = target: ''
 | 
			
		||||
      patchelf --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
 | 
			
		||||
         $out/${gitterDirectorySuffix}/${target}
 | 
			
		||||
       '';
 | 
			
		||||
   libPath = stdenv.lib.makeLibraryPath [
 | 
			
		||||
     alsaLib atk cairo cups dbus expat fontconfig freetype gdk_pixbuf glib
 | 
			
		||||
     gnome3.gconf gtk3 libX11 libXScrnSaver libXcomposite libXcursor libXdamage
 | 
			
		||||
@@ -35,15 +39,16 @@ in stdenv.mkDerivation rec {
 | 
			
		||||
    mkdir -p $out/{bin,opt/gitter,share/pixmaps}
 | 
			
		||||
    mv ./opt/Gitter/linux64/* $out/opt/gitter
 | 
			
		||||
 | 
			
		||||
    ${doELFPatch "Gitter"}
 | 
			
		||||
    ${doELFPatch "nacl_helper"}
 | 
			
		||||
    ${doELFPatch "minidump_stackwalk"}
 | 
			
		||||
    ${doELFPatch "nwjc"}
 | 
			
		||||
    ${doELFPatch "chromedriver"}
 | 
			
		||||
    ${doELFPatch "payload"}
 | 
			
		||||
    ${doELFExePatch "Gitter"}
 | 
			
		||||
    ${doELFExePatch "nacl_helper"}
 | 
			
		||||
    ${doELFExePatch "minidump_stackwalk"}
 | 
			
		||||
    ${doELFExePatch "nwjc"}
 | 
			
		||||
    ${doELFExePatch "chromedriver"}
 | 
			
		||||
    ${doELFExePatch "payload"}
 | 
			
		||||
 | 
			
		||||
    patchelf --set-rpath "$out/${gitterDirectorySuffix}/lib:${libPath}" \
 | 
			
		||||
         $out/${gitterDirectorySuffix}/lib/libnw.so
 | 
			
		||||
    ${doELFLibPatch "lib/libnw.so"}
 | 
			
		||||
    ${doELFLibPatch "lib/libnode.so"}
 | 
			
		||||
    ${doELFLibPatch "lib/libffmpeg.so"}
 | 
			
		||||
 | 
			
		||||
    wrapProgram $out/${gitterDirectorySuffix}/Gitter --prefix LD_LIBRARY_PATH : ${libPath}
 | 
			
		||||
 | 
			
		||||
@@ -54,7 +59,7 @@ in stdenv.mkDerivation rec {
 | 
			
		||||
 | 
			
		||||
  desktopItem = makeDesktopItem {
 | 
			
		||||
    name = pname;
 | 
			
		||||
    exec = "Gitter";
 | 
			
		||||
    exec = "/usr/bin/env Gitter";
 | 
			
		||||
    icon = pname;
 | 
			
		||||
    desktopName = "Gitter";
 | 
			
		||||
    genericName = meta.description;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										78
									
								
								nixos/overlays.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								nixos/overlays.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,78 @@
 | 
			
		||||
self: super:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  gitter = super.callPackage ./gitter.nix { };
 | 
			
		||||
  clipit = super.clipit.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "50d983514386029a1f133187902084b753458f32";
 | 
			
		||||
    preConfigure = "./autogen.sh";
 | 
			
		||||
    configureFlags = ["--with-gtk3" "--enable-appindicator"];
 | 
			
		||||
    src = super.fetchFromGitHub {
 | 
			
		||||
      owner = "IvanMalison";
 | 
			
		||||
      repo = "ClipIt";
 | 
			
		||||
      sha256 = "1d52zjnxmcp2kr4wvq2yn9fhr61v9scp91fxfvasvz5m7k1zagdn";
 | 
			
		||||
      rev = version;
 | 
			
		||||
    };
 | 
			
		||||
    buildInputs = with self; [
 | 
			
		||||
      autoconf automake intltool gtk3 xdotool hicolor-icon-theme
 | 
			
		||||
      libappindicator-gtk3
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
  udiskie-appindicator = super.udiskie.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "1.7.5";
 | 
			
		||||
    src = super.fetchFromGitHub {
 | 
			
		||||
      owner = "coldfix";
 | 
			
		||||
      repo = "udiskie";
 | 
			
		||||
      rev = version;
 | 
			
		||||
      sha256 = "1mcdn8ha5d5nsmrzk6xnnsqrmk94rdrzym9sqm38zk5r8gpyl1k4";
 | 
			
		||||
    };
 | 
			
		||||
    propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [self.libappindicator-gtk3];
 | 
			
		||||
  });
 | 
			
		||||
  pasystray-appindicator = super.pasystray.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    buildInputs = oldAttrs.buildInputs ++ [self.libappindicator-gtk3];
 | 
			
		||||
  });
 | 
			
		||||
  customizable-notify-osd = super.notify-osd.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    version = "0.9.35+16.04.20160415";
 | 
			
		||||
    baseURI = "https://launchpad.net/~leolik/+archive/leolik";
 | 
			
		||||
    src = super.fetchurl {
 | 
			
		||||
      url = "${baseURI}/+files/notify-osd_${version}-0ubuntu1-leolik~ppa0.tar.gz";
 | 
			
		||||
      sha256 = "026dr46jh3xc4103wnslzy7pxbxkkpflh52c59j8vzwaa7bvvzkv";
 | 
			
		||||
      name = "notify-osd-customizable.tar.gz";
 | 
			
		||||
    };
 | 
			
		||||
    preConfigure = "./autogen.sh --libexecdir=$(out)/bin";
 | 
			
		||||
    buildInputs = with self; [
 | 
			
		||||
      glib libwnck3 libnotify dbus-glib gnome3.gsettings-desktop-schemas
 | 
			
		||||
      makeWrapper libtool gnome3.gnome-common
 | 
			
		||||
    ];
 | 
			
		||||
  });
 | 
			
		||||
  keybase-gui-fixed = super.keybase-gui.overrideAttrs (oldAttrs: rec {
 | 
			
		||||
    installPhase = ''
 | 
			
		||||
    mkdir -p $out/bin
 | 
			
		||||
    mv usr/share $out/share
 | 
			
		||||
    mv opt/keybase $out/share/
 | 
			
		||||
    cat > $out/bin/keybase-gui <<EOF
 | 
			
		||||
    #!${self.stdenv.shell}
 | 
			
		||||
    checkFailed() {
 | 
			
		||||
      if [ "\$NIX_SKIP_KEYBASE_CHECKS" = "1" ]; then
 | 
			
		||||
        return
 | 
			
		||||
      fi
 | 
			
		||||
      echo "Set NIX_SKIP_KEYBASE_CHECKS=1 if you want to skip this check." >&2
 | 
			
		||||
      exit 1
 | 
			
		||||
    }
 | 
			
		||||
    if [ ! -S "\$XDG_RUNTIME_DIR/keybase/keybased.sock" ]; then
 | 
			
		||||
      echo "Keybase service doesn't seem to be running." >&2
 | 
			
		||||
      echo "You might need to run: keybase service" >&2
 | 
			
		||||
      checkFailed
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -z "\$(keybase status | grep kbfsfuse)" ]; then
 | 
			
		||||
      echo "Could not find kbfsfuse client in keybase status." >&2
 | 
			
		||||
      echo "You might need to run: kbfsfuse" >&2
 | 
			
		||||
      checkFailed
 | 
			
		||||
    fi
 | 
			
		||||
    exec $out/share/keybase/Keybase "\$@"
 | 
			
		||||
    EOF
 | 
			
		||||
    chmod +x $out/bin/keybase-gui
 | 
			
		||||
    substituteInPlace $out/share/applications/keybase.desktop \
 | 
			
		||||
      --replace run_keybase $out/bin/keybase-gui
 | 
			
		||||
  '';
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user