Reorganize nix files to use overlays

auto-flake-update
Yorick van Pelt 2017-08-15 17:55:19 +02:00
parent beb878bfd0
commit 69bac4cd68
15 changed files with 273 additions and 335 deletions

View File

@ -0,0 +1,11 @@
{
allowUnfree = true;
# chromium = {
# enablePepperFlash = true;
# enablePepperPDF = true;
# };
}

View File

@ -0,0 +1,19 @@
self: super:
let
overrideOlder = original: override: let
lib = super.lib;
newpkgver = lib.getVersion (override original);
oldpkgver = lib.getVersion original;
in if (lib.versionOlder oldpkgver newpkgver) then original.overrideDerivation override else original;
in
{
# spotify = overrideOlder pkgs.spotify (attrs: rec {
# version = "1.0.48.103.g15edf1ec-94";
# name = "spotify-${version}";
# src = fetchurl {
# url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
# sha256 = "0rpwxgxv2ihfhlri98k4n87ynlcp569gm9q6hd8jg0vd2jgji8b3";
# };
#});
}

View File

@ -0,0 +1,36 @@
self: super: {
ftb = super.callPackage ../pkgs/ftb.nix {};
pyroscope = super.callPackage ../pkgs/pyroscope {};
peageprint = super.callPackage ../pkgs/peageprint.nix {};
nottetris2 = super.callPackage ../pkgs/nottetris2.nix {};
libinput-gestures = super.callPackage ../pkgs/libinput-gestures.nix {};
gitFire = super.stdenv.mkDerivation {
src = super.fetchFromGitHub {
owner = "qw3rtman";
repo = "git-fire";
rev = "f485fffedbc4f719c55547be22ccd0080e592c9a";
sha256 = "1f7m1rypir85p33bgaggw5kgxjv7qy69zn1ci3b26rxr2a06fqwy";
};
name = "git-fire";
installPhase = ''
mkdir -p $out/bin/
install git-fire $out/bin/
'';
};
weiightminder = super.callPackage (super.fetchgit {
url = https://gist.github.com/yorickvP/229d21a7da13c9c514dbd26147822641;
rev = "9749ef4d83c0078bc0248215ee882d7124827cf3";
sha256 = "0kxi20ss2k22sv3ndplnklc6r7ja0lcgklw6mz43qcj7vmgxxllf";
}) {};
node2nix_git = (super.callPackage (super.fetchFromGitHub {
owner = "svanderburg";
repo = "node2nix";
rev = "b6545937592e7e54a14a2df315598570480fee9f";
sha256 = "1y50gs5mk2sdzqx68lr3qb71lh7jp4c38ynybf8ikx7kfkzxvasb";
}) {}).package;
yscripts = super.callPackage /home/yorick/dotfiles/bin {};
}

View File

@ -0,0 +1,22 @@
self: super: {
spotify = super.spotify.overrideDerivation (attrs: rec {
installPhase = builtins.replaceStrings
["wrapProgram $out/share/spotify/spotify"]
["wrapProgram $out/share/spotify/spotify --add-flags --force-device-scale-factor=\\$SPOTIFY_DEVICE_SCALE_FACTOR"]
attrs.installPhase;
});
mpv = super.mpv.override { vaapiSupport = true; };
polybar = super.polybar.override {i3GapsSupport = true; githubSupport = false;};
python36Packages = let py3 = super.python36Packages; in (py3 // {
# pycrypto runs slow tests by default
pycrypto = py3.pycrypto.overrideDerivation (attrs: {
installCheckPhase = ''
${py3.python.interpreter} nix_run_setup.py test --skip-slow-tests
'';
});
});
# wine = pkgs.wine.override { wineRelease = "staging"; wineBuild = "wineWow"; };
}

View File

@ -0,0 +1,67 @@
self: super: {
myEmacs = super.emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
company
paredit
counsel
flycheck
ivy
magit
projectile
use-package
org-bullets
solarized-theme
evil
evil-magit
evil-leader
evil-tutor
evil-surround
epkgs.evil-goggles
# evil-commentary
password-store
pass
linum-relative
(epkgs.trivialBuild {
pname = "emacs-nix-mode";
src = pkgs.fetchFromGitHub {
owner = "matthewbauer";
repo = "nix-mode";
rev = "v1.2.1";
sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
};
preConfigure = ''
rm nix-company.el nix-mode-mmm.el
'';
})
nix-buffer
which-key
git-gutter-fringe
neotree
all-the-icons
epkgs.org-cliplink
pandoc-mode
markdown-mode
interleave
# all-the-icons-dired
org-ref
avy
# nixos-sandbox # https://github.com/travisbhartwell/nix-emacs
haskell-mode
]));
# todo: emacs-all-the-icons-fonts
pandocdeps = (super.texlive.combine {
inherit (super.texlive)
scheme-basic
# explicit list pandoc tex dependencies
amsfonts amsmath lm ec ifxetex ifluatex eurosym listings fancyvrb
# longtable
booktabs
hyperref ulem geometry setspace
# linestretch
babel
# some optional dependencies of pandoc
upquote microtype csquotes
mathtools
;
});
}

View File

@ -0,0 +1,118 @@
self: super: with super;
let
mkEnv = name: paths: buildEnv {inherit name paths; };
py3 = python36Packages; hs = haskellPackages; js = nodePackages; ml = ocamlPackages;
py2 = python27Packages; elm = elmPackages;
in {
envs = recurseIntoAttrs {
de = mkEnv "y-de-deps" [
gtk-engine-murrine
hicolor_icon_theme
vanilla-dmz
# arc-theme
libnotify
rxvt_unicode-with-plugins
arandr
xorg.xrandr
pavucontrol
light nitrogen
# wpa_supplicant_gui
xclip siji fira-mono playerctl font-awesome-ttf
];
scripts = mkEnv "y-scripts" [
peageprint
weiightminder
];
apps = mkEnv "y-apps" [
gajim
neomutt
torbrowser
chromium
#firefox-bin
gimp
tdesktop
#hexchat
#inkscape
keepassx
# libreoffice
# skype
spotify
quasselClient
sublime3
leafpad
# calibre
#py2.plover
wireshark meld
discord
fanficfare
wpa_supplicant_gui
];
media = mkEnv "y-media" [
streamlink
py3.youtube-dl
mpv
aria2
];
coins = mkEnv "y-coins" [
# altcoins.namecoin
# altcoins.dogecoin
electrum
];
nix = mkEnv "y-nix" [
patchelf nix nix-prefetch-git nix-repl nixopsUnstable nox
];
c = mkEnv "y-cdev" [
valgrind cdecl gdb ltrace cmake radare2 # gcc
];
misc = mkEnv "y-misc" [
#gitAndTools.git-annex # doesn't build
gnupg1 man-pages bup # catdoc
imagemagick
openssl
sshfsFuse
sshuttle iodine stow
expect duplicity
wakelan x2x pass
abduco dvtm w3m
jq jo
];
code = mkEnv "y-code" [
python gitAndTools.hub gnumake cloc silver-searcher gitFire gti
];
java = openjdk;
games = mkEnv "y-games" [
# steam openttd wine winetricks minecraft
# steam nottetris2 # ftb
];
js = mkEnv "y-jsdev" [
js.jshint nodejs-6_x electron node2nix_git
];
pdf = mkEnv "y-pdf" [
ml.cpdf zathura pandoc poppler_utils
];
hs = mkEnv "y-hs" [
ghc stack cabal-install
];
};
# install with nix-env -iAr nixos.hosts.$(hostname -s)
# will remove all your previously installed nix-env stuff
# so check with nix-env -q first
hosts = with self; with self.envs; {
ascanius = [apps code de games envs.js pdf nix media gcc misc scripts coins];
jarvis = [apps code de games envs.js pdf nix media gcc misc scripts];
woodhouse = [de media misc kodi chromium spotify];
pennyworth = [];
frumar = [bup gitAndTools.git-annex rtorrent pyroscope];
};
}

View File

@ -1,305 +0,0 @@
{
allowUnfree = true;
firefox = {
enableGoogleTalkPlugin = true;
enableAdobeFlash = true;
};
# chromium = {
# enablePepperFlash = true;
# enablePepperPDF = true;
# };
packageOverrides = pkgs: with pkgs;
let
mkEnv = name: paths: pkgs.buildEnv { inherit name paths; };
py3 = python35Packages; hs = haskellPackages; js = nodePackages; ml = ocamlPackages;
py2 = python27Packages; elm = elmPackages;
overrideOlder = original: override: let
newpkgver = lib.getVersion (override original);
oldpkgver = lib.getVersion original;
in if (lib.versionOlder oldpkgver newpkgver) then original.overrideDerivation override else original;
in rec {
#wine = pkgs.wine.override { wineRelease = "staging"; wineBuild = "wineWow"; };
ftb = pkgs.callPackage ./ftb.nix {};
pyroscope = pkgs.callPackage ./pyroscope {};
peageprint = pkgs.callPackage ./peageprint.nix {};
nottetris2 = pkgs.callPackage ./nottetris2.nix {};
spotify = pkgs.spotify.overrideDerivation (attrs: rec {
# version = "1.0.48.103.g15edf1ec-94";
# name = "spotify-${version}";
# src = fetchurl {
# url = "http://repository-origin.spotify.com/pool/non-free/s/spotify-client/spotify-client_${version}_amd64.deb";
# sha256 = "0rpwxgxv2ihfhlri98k4n87ynlcp569gm9q6hd8jg0vd2jgji8b3";
# };
installPhase = builtins.replaceStrings
["wrapProgram $out/share/spotify/spotify"]
["wrapProgram $out/share/spotify/spotify --add-flags --force-device-scale-factor=\\$SPOTIFY_DEVICE_SCALE_FACTOR"]
attrs.installPhase;
});
python35Packages = py3 // {
# pycrypto runs slow tests by default
pycrypto = py3.pycrypto.overrideDerivation (attrs: {
installCheckPhase = ''
${py3.python.interpreter} nix_run_setup.py test --skip-slow-tests
'';
});
};
gitFire = stdenv.mkDerivation {
src = fetchFromGitHub {
owner = "qw3rtman"; repo = "git-fire"; rev = "f485fffedbc4f719c55547be22ccd0080e592c9a";
sha256 = "1f7m1rypir85p33bgaggw5kgxjv7qy69zn1ci3b26rxr2a06fqwy";
};
name = "git-fire";
installPhase = ''
mkdir -p $out/bin/
install git-fire $out/bin/
'';
};
libinput-gestures = pkgs.callPackage ./libinput-gestures.nix {};
weiightminder = pkgs.callPackage (fetchgit {
url = https://gist.github.com/yorickvP/229d21a7da13c9c514dbd26147822641;
rev = "9749ef4d83c0078bc0248215ee882d7124827cf3";
sha256 = "0kxi20ss2k22sv3ndplnklc6r7ja0lcgklw6mz43qcj7vmgxxllf";
}) {};
node2nix_git = (pkgs.callPackage (fetchFromGitHub {
owner = "svanderburg";
repo = "node2nix";
rev = "b6545937592e7e54a14a2df315598570480fee9f";
sha256 = "1y50gs5mk2sdzqx68lr3qb71lh7jp4c38ynybf8ikx7kfkzxvasb";
}) {}).package;
asterisk = overrideOlder pkgs.asterisk (attrs: rec {
version = "13.11.2";
src = fetchurl {
url = "http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${version}.tar.gz";
sha256 = "0fjski1cpbxap1kcjg6sgd6c8qpxn8lb1sszpg6iz88vn4dh19vf";
};
});
mpv = pkgs.mpv.override { vaapiSupport = true; };
# this can be dropped once i3status-2.11 is in unstable
i3status = overrideOlder pkgs.i3status (attrs: rec {
name = "i3status-2.11";
src = fetchurl {
url = "http://i3wm.org/i3status/${name}.tar.bz2";
sha256 = "0pwcy599fw8by1a1sf91crkqba7679qhvhbacpmhis8c1xrpxnwq";
};
});
streamlink = overrideOlder pkgs.streamlink (attrs: rec {
version = "0.3.0";
name = "streamlink-${version}";
src = fetchFromGitHub {
owner = "streamlink";
repo = "streamlink";
rev = "${version}";
sha256 = "1bjih6y21vmjmsk3xvhgc1innymryklgylyvjrskqw610niai59j";
};
});
streamer = if (builtins.hasAttr "streamlink" pkgs) then streamlink else pythonPackages.livestreamer;
i3lock-color = overrideOlder pkgs.i3lock-color (attrs: rec {
version = "2.7-2017-04-01";
name = "i3lock-color-${version}";
src = fetchFromGitHub {
owner = "chrjguill";
repo = "i3lock-color";
rev = "61f6428aedbe4829d3e0f51d137283c8aec1e206";
sha256 = "0h4nzx46kcsp6b1i2lm9y4d1w1icrpvjl8g1h3wbpa5x4crh4703";
};
});
polybar = pkgs.polybar.override {i3GapsSupport = true; githubSupport = false;};
yscripts = pkgs.callPackage ../dotfiles/bin {};
envs = recurseIntoAttrs {
de = mkEnv "y-de-deps" [
gtk-engine-murrine
hicolor_icon_theme
vanilla-dmz
# arc-theme
libnotify
rxvt_unicode-with-plugins
arandr
xorg.xrandr
pavucontrol
light nitrogen
# wpa_supplicant_gui
xclip siji fira-mono playerctl font-awesome-ttf
];
scripts = mkEnv "y-scripts" [
peageprint
weiightminder
];
apps = mkEnv "y-apps" [
gajim
neomutt
torbrowser
chromium
#firefox-bin
gimp
tdesktop
#hexchat
#inkscape
keepassx
# libreoffice
# skype
spotify
quasselClient
sublime3
leafpad
# calibre
#py2.plover
wireshark meld
discord
fanficfare
wpa_supplicant_gui
];
media = mkEnv "y-media" [
streamer
py3.youtube-dl
mpv
aria2
];
coins = mkEnv "y-coins" [
# altcoins.namecoin
# altcoins.dogecoin
electrum
];
nix = mkEnv "y-nix" [
patchelf nix nix-prefetch-git nix-repl nixopsUnstable nox
];
c = mkEnv "y-cdev" [
valgrind cdecl gdb ltrace cmake radare2 # gcc
];
misc = mkEnv "y-misc" [
#gitAndTools.git-annex # doesn't build
gnupg1 man-pages bup # catdoc
imagemagick
openssl
sshfsFuse
sshuttle iodine stow
expect duplicity
wakelan x2x pass
abduco dvtm w3m
jq jo
];
code = mkEnv "y-code" [
python gitAndTools.hub gnumake cloc silver-searcher gitFire gti
];
java = openjdk;
games = mkEnv "y-games" [
# steam openttd wine winetricks minecraft
# steam nottetris2 # ftb
];
js = mkEnv "y-jsdev" [
js.jshint nodejs-6_x electron node2nix_git
];
pdf = mkEnv "y-pdf" [
ml.cpdf zathura pandoc poppler_utils
];
hs = mkEnv "y-hs" [
ghc stack cabal-install
];
};
myEmacs = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
company
paredit
counsel
flycheck
ivy
magit
projectile
use-package
org-bullets
solarized-theme
evil
evil-magit
evil-leader
evil-tutor
evil-surround
epkgs.evil-goggles
# evil-commentary
password-store
pass
linum-relative
(epkgs.trivialBuild { pname = "emacs-nix-mode"; src = pkgs.fetchFromGitHub {
owner = "matthewbauer";
repo = "nix-mode";
rev = "v1.2.1";
sha256 = "1zpqpq6hd83prk80921nbjrvcmk0dykqrrr1mw3b29ppjma5zjiz";
};
preConfigure = ''
rm nix-company.el nix-mode-mmm.el
'';
})
nix-buffer
which-key
git-gutter-fringe
neotree
all-the-icons
epkgs.org-cliplink
pandoc-mode
markdown-mode
interleave
# all-the-icons-dired
org-ref
avy
# nixos-sandbox # https://github.com/travisbhartwell/nix-emacs
haskell-mode
]));
# todo: emacs-all-the-icons-fonts
# install with nix-env -iAr nixos.hosts.$(hostname -s)
# will remove all your previously installed nix-env stuff
# so check with nix-env -q first
hosts = {
ascanius = with envs; [apps code de games envs.js pdf nix media gcc misc scripts coins];
jarvis = with envs; [apps code de games envs.js pdf nix media gcc misc scripts];
woodhouse = with envs; [de media misc kodi chromium spotify];
pennyworth = [];
frumar = with envs; [bup gitAndTools.git-annex rtorrent pyroscope];
};
pandocdeps = (pkgs.texlive.combine {
inherit (pkgs.texlive)
scheme-basic
# explicit list pandoc tex dependencies
amsfonts amsmath lm ec ifxetex ifluatex eurosym listings fancyvrb
# longtable
booktabs
hyperref ulem geometry setspace
# linestretch
babel
# some optional dependencies of pandoc
upquote microtype csquotes
mathtools
;
});
};
}

View File

@ -1,30 +0,0 @@
{ stdenv, pythonPackages, fetchFromGitHub, rtmpdump }:
pythonPackages.buildPythonApplication rec {
version = "0.3.0";
name = "streamlink-${version}";
src = fetchFromGitHub {
owner = "streamlink";
repo = "streamlink";
rev = "${version}";
sha256 = "1bjih6y21vmjmsk3xvhgc1innymryklgylyvjrskqw610niai59j";
};
propagatedBuildInputs = (with pythonPackages; [ pycrypto requests2 ]) ++ [ rtmpdump ];
meta = with stdenv.lib; {
homepage = https://github.com/streamlink/streamlink;
description = "CLI for extracting streams from various websites to video player of your choosing";
longDescription = ''
Streamlink is a CLI utility that pipes flash videos from online
streaming services to a variety of video players such as VLC, or
alternatively, a browser.
Streamlink is a fork of the livestreamer project.
'';
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = [ maintainers.dezgeg ];
};
}