Allow standalone home-manager installation

This commit is contained in:
Leonardo Eugênio 2023-01-23 20:56:18 -03:00
parent 55a36b27e2
commit 7025bdae9e
6 changed files with 91 additions and 60 deletions

View file

@ -69,13 +69,17 @@
pkgs = import nixpkgs {
inherit system;
config = { allowUnfree = true; };
overlays = old_overlays.all;
};
lib = nixpkgs.lib;
packages = import ./pkgs { inherit pkgs; };
packages = import ./pkgs { inherit pkgs inputs; };
old_overlays = (import ./overlays (inputs // { inherit system packages; }));
specialArgs = { inherit inputs; };
common_modules = [
{ nixpkgs.pkgs = pkgs; }
./system/configuration.nix
./system/secrets.nix
./system/specialisation.nix
@ -86,7 +90,6 @@
programs.hyprland.enable = true;
# programs.hyprland.package = null;
}
(import ./overlays (inputs // { inherit system packages; }))
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
@ -132,6 +135,15 @@
}];
};
};
homeConfigurations.lelgenio = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit inputs; };
modules = [ ./user/home.nix ];
};
packages.${system}.linuxPackages = packages;
};
}

View file

@ -1,55 +1,72 @@
(inputs@{ system, packages, ... }:
{ pkgs, ... }: {
nixpkgs.overlays = [
inputs.nur.overlay
(import ../scripts)
(import ./sway.nix)
(final: prev: {
unstable = inputs.nixpkgs-unstable.legacyPackages.${prev.system};
})
(import ./sixel-patches.nix (inputs // { inherit pkgs; }))
(final: prev: {
inherit (packages) dzgui;
plymouth-theme-red = (import ./plymouth-theme-red.nix (inputs // { inherit pkgs; }));
uservars = import ../user/variables.nix;
dhist = inputs.dhist.packages.${system}.dhist;
demoji = inputs.demoji.packages.${system}.demoji;
devenv = inputs.devenv.packages.${system}.devenv;
mpvpaper = inputs.wegank.packages.${prev.system}.mpvpaper;
bemenu = prev.bemenu.overrideAttrs (o: {
preBuild = ''
sed -i 's/ZWLR_LAYER_SHELL_V1_LAYER_TOP/ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY/g' lib/renderers/wayland/window.c
'';
});
sea-orm-cli =
inputs.sea-orm-cli.legacyPackages.${prev.system}.sea-orm-cli;
webcord = inputs.webcord.legacyPackages.${prev.system}.webcord;
nil-lsp = inputs.nil-lsp.packages.${prev.system}.nil;
sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: {
patches = old.patches
++ [ ../patches/sway/fix-hide_cursor-clearing-focus.patch ];
});
material-wifi-icons = final.stdenv.mkDerivation rec {
name = "material-wifi-icons";
src = inputs.material-wifi-icons;
installPhase =
let dest = "$out/share/fonts/${name}";
in ''
mkdir -p ${dest}
cp material-wifi.ttf ${dest}
'';
};
papirus_red =
(final.unstable.papirus-icon-theme.override { color = "red"; });
orchis_theme_compact =
(final.orchis-theme.override { tweaks = [ "compact" "solid" ]; });
nerdfonts_fira_hack =
(final.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; });
steam = prev.steam.override {
extraPkgs = pkgs: with pkgs; [ capitaine-cursors bibata-cursors ];
};
})
(inputs@{ system, packages, ... }: rec {
all = [
nur
scripts
sway
unstable
sixel-patches
themes
new-packages
patches
variables
];
nur = inputs.nur.overlay;
scripts = (import ../scripts);
sway = (import ./sway.nix);
unstable = (final: prev: {
unstable = inputs.nixpkgs-unstable.legacyPackages.${prev.system};
});
sixel-patches = (import ./sixel-patches.nix (inputs));
themes = (final: prev: {
material-wifi-icons = final.stdenv.mkDerivation rec {
name = "material-wifi-icons";
src = inputs.material-wifi-icons;
installPhase =
let dest = "$out/share/fonts/${name}";
in ''
mkdir -p ${dest}
cp material-wifi.ttf ${dest}
'';
};
papirus_red = (final.unstable.papirus-icon-theme.override { color = "red"; });
orchis_theme_compact = (final.orchis-theme.override { tweaks = [ "compact" "solid" ]; });
nerdfonts_fira_hack = (final.nerdfonts.override { fonts = [ "FiraCode" "Hack" ]; });
});
new-packages = (final: prev: {
inherit (packages) dzgui plymouth-theme-red;
dhist = inputs.dhist.packages.${system}.dhist;
demoji = inputs.demoji.packages.${system}.demoji;
devenv = inputs.devenv.packages.${system}.devenv;
mpvpaper = inputs.wegank.packages.${prev.system}.mpvpaper;
sea-orm-cli = inputs.sea-orm-cli.legacyPackages.${prev.system}.sea-orm-cli;
webcord = inputs.webcord.legacyPackages.${prev.system}.webcord;
nil-lsp = inputs.nil-lsp.packages.${prev.system}.nil;
});
patches = (final: prev: {
bemenu = prev.bemenu.overrideAttrs (o: {
preBuild = ''
sed -i 's/ZWLR_LAYER_SHELL_V1_LAYER_TOP/ZWLR_LAYER_SHELL_V1_LAYER_OVERLAY/g' lib/renderers/wayland/window.c
'';
});
sway-unwrapped = prev.sway-unwrapped.overrideAttrs (old: {
patches = old.patches
++ [ ../patches/sway/fix-hide_cursor-clearing-focus.patch ];
});
steam = prev.steam.override {
extraPkgs = pkgs: with pkgs; [ capitaine-cursors bibata-cursors ];
};
});
variables = (final: prev: {
uservars = import ../user/variables.nix;
});
})

View file

@ -1,5 +1,4 @@
inputs@{ pkgs, ... }:
(final: prev: {
inputs: (final: prev: {
alacritty = (prev.unstable.alacritty.overrideAttrs (old-alacritty: rec {
src = inputs.alacritty-sixel;
cargoDeps = old-alacritty.cargoDeps.overrideAttrs (prev.lib.const {

View file

@ -1,6 +1,7 @@
# Custom packages, that can be defined similarly to ones from nixpkgs
# You can build them using 'nix build .#example' or (legacy) 'nix-build -A example'
{ pkgs }: {
{ pkgs, inputs }: {
dzgui = pkgs.callPackage ./dzgui.nix { };
plymouth-theme-red = pkgs.callPackage ./plymouth-theme-red.nix { inherit inputs; };
}

View file

@ -1,4 +1,4 @@
inputs@{ pkgs, ... }:
{ pkgs, inputs }:
pkgs.stdenv.mkDerivation rec {
pname = "red-loader-plymouth";
version = "0.0.1";

View file

@ -39,8 +39,10 @@
home.homeDirectory = "/home/lelgenio";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
# programs.home-manager.enable = true;
home.packages = with pkgs; [
# home-manager
terminal # see flake.nix
pulse_sink