nixos-config/modules/overlay.nix

112 lines
3.1 KiB
Nix
Raw Normal View History

2020-04-27 05:39:00 +04:00
{ pkgs, config, lib, inputs, ... }:
2020-02-17 17:00:59 +04:00
let
filterGit =
builtins.filterSource (type: name: name != ".git" || type != "directory");
2020-04-28 21:48:57 +04:00
system = "x86_64-linux";
old = import inputs.nixpkgs-old ({
config = config.nixpkgs.config;
localSystem = { inherit system; };
});
2021-05-25 15:04:21 +04:00
mkKeyValue = key: value:
let
mvalue = if builtins.isBool value then
(if value then "true" else "false")
else if (builtins.isString value && key != "include-file") then
value
else
builtins.toString value;
2021-06-03 19:15:00 +04:00
in ''${key}=${mvalue}'';
2021-05-25 15:04:21 +04:00
attrsToList = with builtins;
x:
(map (key: {
name = key;
value = getAttr key x;
}) (attrNames x));
2020-04-28 21:48:57 +04:00
in {
2020-02-17 17:00:59 +04:00
nixpkgs.overlays = [
2021-03-11 02:57:37 +04:00
(import inputs.emacs-overlay)
2020-11-19 14:40:03 +04:00
(self: super: rec {
nix = super.nix // {
meta = super.nix.meta // { platforms = lib.platforms.unix; };
};
2020-04-28 21:48:57 +04:00
2021-05-25 15:04:21 +04:00
my-lib = rec {
genIni = lib.generators.toINI { inherit mkKeyValue; };
genIniOrdered = lst:
(builtins.concatStringsSep "\n" (map ({ name ? "widget", ... }@attrs:
builtins.concatStringsSep "\n" ([ "[${name}]" ]
++ (map ({ name, value }: mkKeyValue name value)
(attrsToList (builtins.removeAttrs attrs [ "name" ]))))) lst))
+ "\n";
thm = config.themes.colors;
splitHex = hexStr:
map (x: builtins.elemAt x 0) (builtins.filter (a: a != "" && a != [ ])
(builtins.split "(.{2})" (builtins.substring 1 6 hexStr)));
hex2decDigits = rec {
"0" = 0;
"1" = 1;
"2" = 2;
"3" = 3;
"4" = 4;
"5" = 5;
"6" = 6;
"7" = 7;
"8" = 8;
"9" = 9;
"a" = 10;
"b" = 11;
"c" = 12;
"d" = 13;
"e" = 14;
"f" = 15;
A = a;
B = b;
C = c;
D = d;
E = e;
F = f;
};
doubleDigitHexToDec = hex:
16 * hex2decDigits."${builtins.substring 0 1 hex}"
+ hex2decDigits."${builtins.substring 1 2 hex}";
thmDec = builtins.mapAttrs (name: color: colorHex2Dec color) thm;
colorHex2Dec = color:
builtins.concatStringsSep ","
(map (x: toString (doubleDigitHexToDec x)) (splitHex color));
};
2020-11-19 14:40:03 +04:00
nur = (import inputs.NUR {
pkgs = old;
nurpkgs = pkgs;
}).repos;
2020-02-17 17:00:59 +04:00
2020-11-19 14:40:03 +04:00
inherit (nur.balsoft.pkgs) termNote nix-patch;
2020-06-21 22:48:26 +04:00
2021-01-13 15:24:22 +04:00
lambda-launcher = inputs.lambda-launcher.defaultPackage.x86_64-linux;
2020-07-03 12:59:36 +04:00
2020-11-19 14:40:03 +04:00
simple-osd = inputs.simple-osd-daemons.packages.x86_64-linux;
2020-09-14 02:47:04 +04:00
2020-11-19 14:40:03 +04:00
inherit old;
2020-05-22 22:30:25 +04:00
2020-11-19 14:40:03 +04:00
yt-utilities = inputs.yt-utilities.defaultPackage.x86_64-linux;
2020-02-17 17:00:59 +04:00
2020-11-19 14:40:03 +04:00
nerdfonts = nur.balsoft.pkgs.roboto-mono-nerd;
2020-08-25 14:35:54 +04:00
2021-05-25 15:04:21 +04:00
weechatScripts.wee-slack = super.weechatScripts.wee-slack.overrideAttrs
(oa: {
src = inputs.wee-slack;
patches = [ (builtins.elemAt oa.patches 0) ];
});
2021-02-25 12:10:02 +04:00
2021-05-25 15:04:21 +04:00
nix-zsh-completions = super.nix-zsh-completions.overrideAttrs
(_: { src = inputs.nix-zsh-completions; });
2020-11-19 14:40:03 +04:00
})
2020-02-17 17:00:59 +04:00
];
2020-04-27 05:39:00 +04:00
nixpkgs.config = {
allowUnfree = true;
android_sdk.accept_license = true;
};
2020-02-17 17:00:59 +04:00
}