[NixOS] Move package customizations to overlay
This commit is contained in:
parent
44718aeb57
commit
731b61918c
@ -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
|
||||
'';
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user