Move overlays into their own dirs

This commit is contained in:
Dave Gallant
2021-01-20 21:31:47 -05:00
parent 405d4e6f1b
commit 801f878edc
16 changed files with 196 additions and 159 deletions

View File

@@ -33,8 +33,9 @@
nixpkgs-unstable.flake = nixpkgs-unstable; nixpkgs-unstable.flake = nixpkgs-unstable;
}; };
# nixpkgs.overlays = (import ./overlays); nixpkgs.overlays = [
nixpkgs.overlays = import ./overlays { inherit nixpkgs; }; (import ./overlays)
];
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;

View File

@@ -8,7 +8,6 @@
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "hephaestus"; # Define your hostname. networking.hostName = "hephaestus"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# The global useDHCP flag is deprecated, therefore explicitly set to false here. # The global useDHCP flag is deprecated, therefore explicitly set to false here.
# Per-interface useDHCP will be mandatory in the future, so this generated config # Per-interface useDHCP will be mandatory in the future, so this generated config
@@ -50,14 +49,14 @@
# Open ports in the firewall. # Open ports in the firewall.
networking.firewall.enable = true; networking.firewall.enable = true;
# systemd.services.g810-led = { systemd.services.g810-led = {
# description = "Set Logitech G810 Led Profile"; description = "Set Logitech G810 Led Profile";
# serviceConfig = { serviceConfig = {
# ExecStart = "${pkgs.g810-led}/bin/g810-led -p /etc/g610-led/profile"; ExecStart = "${pkgs.g810-led}/bin/g810-led -p /etc/g610-led/profile";
# Type = "oneshot"; Type = "oneshot";
# }; };
# wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
# }; };
} }

View File

@@ -26,10 +26,10 @@
hardware.video.hidpi.enable = lib.mkDefault true; hardware.video.hidpi.enable = lib.mkDefault true;
# Enable g810-led and set profile. # Enable g810-led and set profile.
# hardware.g810-led.enable = true; hardware.g810-led.enable = true;
# hardware.g810-led.profile = builtins.toFile "g610-led-profile" '' hardware.g810-led.profile = builtins.toFile "g610-led-profile" ''
# a ff3000 # Set all keys to orange-red. a 000000 # Set all keys to orange-red.
# c # Commit changes. c # Commit changes.
# ''; '';
} }

View File

@@ -1,7 +1,7 @@
{ unstable, ... }: { unstable, ... }:
{ {
# Use the latest stable kernel # Use the latest kernel
boot.kernelPackages = unstable.linuxPackages_latest; boot.kernelPackages = unstable.linuxPackages_latest;
# Enable support for additional filesystems # Enable support for additional filesystems

View File

@@ -159,6 +159,7 @@
rfd rfd
srv srv
vpngate vpngate
g810-led
]; ];
in common; in common;

View File

@@ -40,8 +40,8 @@ in {
# Workaround mentioned here: # Workaround mentioned here:
# https://github.com/MatMoul/g810-led/blob/14e331ad2ab7c5ffb546e0c14dd6164b517ff9ca/PROFILES.md # https://github.com/MatMoul/g810-led/blob/14e331ad2ab7c5ffb546e0c14dd6164b517ff9ca/PROFILES.md
systemd.services.g810-led-workaround = mkIf cfg.enableFlashingWorkaround { systemd.services.g810-led-workaround = mkIf cfg.enableFlashingWorkaround {
description = "Turn off all g810-led keys"; description = "Turn off all leds";
script = "${pkgs.g810-led}/bin/g810-led -a 000000"; script = "${pkgs.g810-led}/bin/g610-led -a 000000";
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
unitConfig.DefaultDependencies = false; unitConfig.DefaultDependencies = false;

View File

@@ -1,9 +1,9 @@
{ ... }: final: prev: {
[ g810-led = prev.callPackage ./g810-led { };
(import ./lastpass.nix) lpass = prev.callPackage ./lastpass { };
(import ./rfd.nix) rfd = prev.callPackage ./rfd { };
(import ./srv.nix) srv = prev.callPackage ./srv { };
(import ./vpngate.nix) vpngate = prev.callPackage ./vpngate { };
]
}

View File

@@ -0,0 +1,47 @@
{ stdenv, lib, fetchFromGitHub, hidapi, profile ? "/etc/g810-led/profile" }:
stdenv.mkDerivation rec {
pname = "g810-led";
version = "0.4.2";
src = fetchFromGitHub {
owner = "MatMoul";
repo = pname;
rev = "v${version}";
hash = "sha256-FFaOGRLk9wCQ+Xkf/KacXF3rOrvg8xSyeDEwe+K5s/o=";
};
buildInputs = [ hidapi ];
installPhase = ''
runHook preInstall
install -D bin/g810-led $out/bin/g810-led
ln -s \./g810-led $out/bin/g213-led
ln -s \./g810-led $out/bin/g410-led
ln -s \./g810-led $out/bin/g413-led
ln -s \./g810-led $out/bin/g512-led
ln -s \./g810-led $out/bin/g513-led
ln -s \./g810-led $out/bin/g610-led
ln -s \./g810-led $out/bin/g815-led
ln -s \./g810-led $out/bin/g910-led
ln -s \./g810-led $out/bin/gpro-led
substituteInPlace udev/g810-led.rules \
--replace "/usr" $out \
--replace "/etc/g810-led/profile" "${profile}"
install -D udev/g810-led.rules $out/etc/udev/rules.d/90-g810-led.rules
runHook postInstall
'';
meta = with lib; {
description =
"Linux LED controller for Logitech G213, G410, G413, G512, G513, G610, G810, G815, G910 and GPRO Keyboards";
inherit (src.meta) homepage;
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = with maintainers; [ samuelgrf ];
};
}

View File

@@ -1,36 +0,0 @@
self: super: rec {
lpass = with self;
stdenv.mkDerivation rec {
pname = "lpass";
version = "1.3.4-unreleased";
src = fetchFromGitHub {
owner = "lastpass";
repo = "lastpass-cli";
rev = "8767b5e53192ad4e72d1352db4aa9218e928cbe1";
sha256 = "sha256:1d4m5h9byq5cccdg98m8d8457rbvp28q821d8rpglykgrfgnknwp";
};
nativeBuildInputs = [ asciidoc cmake docbook_xsl pkgconfig ];
buildInputs = [ bash-completion curl openssl libxml2 libxslt ];
enableParallelBuilding = true;
installTargets = [ "install" "install-doc" ];
postInstall = ''
install -Dm644 -T ../contrib/lpass_zsh_completion $out/share/zsh/site-functions/_lpass
install -Dm644 -T ../contrib/completions-lpass.fish $out/share/fish/vendor_completions.d/lpass.fish
'';
meta = with lib; {
description =
"Stores, retrieves, generates, and synchronizes passwords securely";
homepage = "https://github.com/lastpass/lastpass-cli";
license = licenses.gpl2Plus;
platforms = platforms.unix;
};
};
}

View File

@@ -0,0 +1,35 @@
{ stdenv, lib, fetchFromGitHub, asciidoc, cmake, docbook_xsl, pkgconfig
, bash-completion, curl, openssl, libxml2, libxslt }:
stdenv.mkDerivation rec {
pname = "lpass";
version = "1.3.4-unreleased";
src = fetchFromGitHub {
owner = "lastpass";
repo = "lastpass-cli";
rev = "8767b5e53192ad4e72d1352db4aa9218e928cbe1";
sha256 = "sha256:1d4m5h9byq5cccdg98m8d8457rbvp28q821d8rpglykgrfgnknwp";
};
nativeBuildInputs = [ asciidoc cmake docbook_xsl pkgconfig ];
buildInputs = [ bash-completion curl openssl libxml2 libxslt ];
enableParallelBuilding = true;
installTargets = [ "install" "install-doc" ];
postInstall = ''
install -Dm644 -T ../contrib/lpass_zsh_completion $out/share/zsh/site-functions/_lpass
install -Dm644 -T ../contrib/completions-lpass.fish $out/share/fish/vendor_completions.d/lpass.fish
'';
meta = with lib; {
description =
"Stores, retrieves, generates, and synchronizes passwords securely";
homepage = "https://github.com/lastpass/lastpass-cli";
license = licenses.gpl2Plus;
platforms = platforms.unix;
};
}

View File

@@ -1,44 +0,0 @@
self: super: rec {
python38 = with super; super.python38.override { };
pythonPackages = python38.pkgs;
rfd = with self;
pythonPackages.buildPythonApplication rec {
pname = "rfd";
version = "v0.6.0";
src = fetchFromGitHub {
owner = "davegallant";
repo = "rfd";
rev = version;
hash = "sha256:0cllhbca4dykl6j8snmml4kk6kzamlzhcrdf49f5v0zk7zljgkl1";
};
postPatch = ''
substituteInPlace requirements.txt --replace "soupsieve<=2.0" "soupsieve"
substituteInPlace requirements.txt --replace "beautifulsoup4<=4.8.2" "beautifulsoup4"
'';
# No tests included
doCheck = false;
propagatedBuildInputs = with pythonPackages; [
beautifulsoup4
click
colorama
requests
soupsieve
];
passthru.python3 = python3;
meta = with super.lib; {
homepage = "https://www.redflagdeals.com/";
description = "View RedFlagDeals from the command line";
license = licenses.asl20;
maintainers = [ ];
};
};
}

41
overlays/rfd/default.nix Normal file
View File

@@ -0,0 +1,41 @@
{ lib, fetchFromGitHub, python3, }:
let py = python3.override { };
in with py.pkgs;
buildPythonApplication rec {
pname = "rfd";
version = "v0.6.0";
src = fetchFromGitHub {
owner = "davegallant";
repo = "rfd";
rev = version;
hash = "sha256:0cllhbca4dykl6j8snmml4kk6kzamlzhcrdf49f5v0zk7zljgkl1";
};
postPatch = ''
substituteInPlace requirements.txt --replace "soupsieve<=2.0" "soupsieve"
substituteInPlace requirements.txt --replace "beautifulsoup4<=4.8.2" "beautifulsoup4"
'';
# No tests included
doCheck = false;
propagatedBuildInputs = with py.pkgs; [
beautifulsoup4
click
colorama
requests
soupsieve
];
passthru.python3 = python3;
meta = with lib; {
homepage = "https://www.redflagdeals.com/";
description = "View RedFlagDeals from the command line";
license = licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -1,26 +0,0 @@
self: super:
rec {
srv = with self;
buildGoModule rec {
pname = "srv";
version = "v0.1.2";
vendorSha256 = "sha256-ebumpo9hgr7A+Fsznga4ksYu4mcOIfaaKz0uJu2rivE=";
src = fetchFromGitHub {
owner = "davegallant";
repo = "srv";
rev = version;
sha256 = "sha256-x5l/NFEbbRPMBY061g4qRHYV6QUShO7yHqSw+Hir9M0=";
};
meta = with super.lib; {
description = "a simple rss viewer";
license = licenses.unlicense;
maintainers = with maintainers; [ davegallant ];
platforms = platforms.linux ++ platforms.darwin;
};
};
}

22
overlays/srv/default.nix Normal file
View File

@@ -0,0 +1,22 @@
{ lib, fetchFromGitHub, buildGoModule }:
buildGoModule rec {
pname = "srv";
version = "v0.1.2";
vendorSha256 = "sha256-ebumpo9hgr7A+Fsznga4ksYu4mcOIfaaKz0uJu2rivE=";
src = fetchFromGitHub {
owner = "davegallant";
repo = "srv";
rev = version;
sha256 = "sha256-x5l/NFEbbRPMBY061g4qRHYV6QUShO7yHqSw+Hir9M0=";
};
meta = with lib; {
description = "a simple rss viewer";
license = licenses.unlicense;
maintainers = with maintainers; [ davegallant ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -1,27 +0,0 @@
self: super:
rec {
vpngate = with self;
buildGoModule rec {
pname = "vpngate";
version = "v0.0.2";
vendorSha256 = "1ys2rvrbxgsrvmjdxqgpmxf0m9nlp905gnr2mrf3c7iaxm86wgf8";
src = fetchFromGitHub {
owner = "davegallant";
repo = "vpngate";
rev = version;
sha256 = "0ky3wd04xd4sb2zskrrlbgys2gw88yqhngg3bl0sjy8kr6099vfn";
};
meta = with super.lib; {
homepage = "https://www.vpngate.net";
description = "a client for vpngate.net";
license = licenses.asl20;
maintainers = with maintainers; [ davegallant ];
platforms = platforms.linux ++ platforms.darwin;
};
};
}

View File

@@ -0,0 +1,24 @@
{ lib, fetchFromGitHub, buildGoModule }:
buildGoModule rec {
pname = "vpngate";
version = "v0.0.2";
vendorSha256 = "1ys2rvrbxgsrvmjdxqgpmxf0m9nlp905gnr2mrf3c7iaxm86wgf8";
src = fetchFromGitHub {
owner = "davegallant";
repo = "vpngate";
rev = version;
sha256 = "0ky3wd04xd4sb2zskrrlbgys2gw88yqhngg3bl0sjy8kr6099vfn";
};
meta = with lib; {
homepage = "https://www.vpngate.net";
description = "a client for vpngate.net";
license = licenses.asl20;
maintainers = with maintainers; [ davegallant ];
platforms = platforms.linux ++ platforms.darwin;
};
}